以下、本発明の一実施形態を、図面を参照して詳細に説明する。
図1は、本実施形態のシステム構成例を示す図である。図1において、本実施形態のシステムは、拠点101、拠点102、工場103の各々内の機器から成る。拠点101、拠点102、工場103の各々内の機器は、通信ネットワーク104を介して接続されている。拠点101、拠点102内の機器は、例えば、情報系のネットワークを構成する。また、工場103内の機器は、制御系のネットワークを構成する。通信ネットワーク104は、例えば、WAN(Wide Area Network)、LAN、専用線、公衆網等、任意の通信ネットワークである。
以下、拠点101、拠点102、工場103の各々内の機器において同じ機能を有するものを区別する場合、それらの機器に例えば「-a1」、「-b」等の符号を付与して説明する。
拠点101は、データ管理サーバ111-a、ユーザ端末121-a、アプリケーションサーバ131‐a、ゲートウェイサーバ141-a等を有する。データ管理サーバ111-a、ユーザ端末121-a、アプリケーションサーバ131‐a、ゲートウェイサーバ141-a等は、通信ネットワーク151-aを介して互いに接続される。通信ネットワーク151-aは、ゲートウェイサーバ141-aを介して通信ネットワーク104と接続する。
拠点102は、データ管理サーバ111-b、ユーザ端末121-b1、ユーザ端末121-b2、ゲートウェイサーバ141-b等を有する。データ管理サーバ111-b、ユーザ端末121-b1、ユーザ端末121-b2、ゲートウェイサーバ141-b等は、通信ネットワーク151-bを介して互いに接続される。通信ネットワーク151-bは、ゲートウェイサーバ141-bを介して通信ネットワーク104と接続する。
工場103は、通信ネットワーク151-c、通信ネットワーク151-d、通信ネットワーク151-e、通信ネットワーク151-f等を有する。通信ネットワーク151-cには、通信ネットワーク151-d、通信ネットワーク151-e、通信ネットワーク151-fの各々が接続される。通信ネットワーク151-d、通信ネットワーク151-e、通信ネットワーク151-fの各々は、通信ネットワーク151-cを介して通信ネットワーク104と接続する。
通信ネットワーク151-cには、データ管理サーバ111-c、ユーザ端末121-c1、ユーザ端末121-c2、ゲートウェイサーバ141-c等が接続される。通信ネットワーク151-cは、ゲートウェイサーバ141-cを介して通信ネットワーク104と接続する。
通信ネットワーク151-dには、データ管理サーバ111-d、ユーザ端末121-d、機器161-d1、機器161-d2、機器161-d3、ゲートウェイサーバ141-d等が接続される。通信ネットワーク151-dは、ゲートウェイサーバ141-dを介して通信ネットワーク151-cと接続する。
通信ネットワーク151-eには、データ管理サーバ111-e、機器161e、ゲートウェイサーバ141-e等が接続される。通信ネットワーク151-eは、ゲートウェイサーバ141-eを介して通信ネットワーク151-cと接続する。
通信ネットワーク151-fには、データ管理サーバ111-f、機器161-f、ゲートウェイサーバ141-f等が接続される。通信ネットワーク151-fは、ゲートウェイサーバ141-fを介して通信ネットワーク151-cと接続する。
各データ管理サーバ111は、例えば、情報処理装置であり、データを一時的に蓄積し、そのデータの流通を管理する。ユーザ端末121は、例えば、PC(Personal Computer)や携帯電話等の任意の情報端末である。ユーザ端末121は、ユーザプログラムを稼動させ、ユーザがデータを要求するのに用いる。アプリケーションサーバ131は、業務用途で用いる任意のプログラムが導入されている。機器161は、データを取得し、データ管理サーバ111に提供するものである。この機器161は任意であるが、例えば、センサや、各種設備や機器を制御する制御装置(コントローラ、PLC)等を含む。例えば、図1の例では、工場103内で、測定値や測定時間、制御実績、設備の稼動状況、接点データ、I/O出力等のデータを取得し、取得したデータを何れかのデータ管理サーバ111に出力する。機器161は特に限定するわけではなく、通信機能及びデータ取得機能を有するものであればよい。機器161の具体例は、例えば、任意の設備やデバイス、短距離無線通信により最寄りのアクセスポイント等(図示略)を介して測定値等のデータを発信するセンサやRFID(Radio Frequency Identification)タグ等である。なお、機器161の通信機能及びデータ取得機能は、同じ機器により実現するものでもよく、また、複数の機器により実現するものでもよい。各ゲートウェイサーバ141は、各通信ネットワーク151に設置され、ネットワーク間の通信の中継等を行う。通信ネットワーク151は、例えば、WAN、LAN、専用線、公衆網等、任意の通信ネットワークである。
ユーザ端末121、アプリケーションサーバ131、ゲートウェイサーバ141、通信ネットワーク151、機器161等は、従来技術と特に異なるものではないので、詳細な説明は省略する。
なお、本実施形態のシステム構成は任意であり、図1に示すものに限られるわけではない。本実施形態は、1つ以上の通信ネットワークが相互に接続されるシステムに適用可能である。また、各通信ネットワーク151に接続されるデータ管理サーバ111、ユーザ端末121、アプリケーションサーバ131、ゲートウェイサーバ141、機器161の数は任意であり、図1に示すものに限られるわけではない。
次に、図2を参照し、データ管理サーバ111の構成例を説明する。
まず、図2(a)を参照し、データ管理サーバ111のハードウエア構成例を説明する。
図2(a)において、データ管理サーバ111は、演算装置201、メモリ202、2次記憶装置203、入力装置204、出力装置205、通信装置206等を有する。演算装置201、メモリ202、2次記憶装置203、入力装置204、出力装置205、通信装置206等はバス207により互いに接続する。
演算装置201は、例えばCPU(Central Processing Unit)等である。演算装置201は、メモリ202にロードしたプログラム(図示略)を実行することにより、後述する機能を実現する。
2次記憶装置203は、例えば、CD(Compact Disc)やDVD(Digital Versatile Disk)等の記憶メディア及び当該記憶メディアの駆動装置、HDD(Hard Disk Drive)やシリコンディスク等、データ書き込み及び読出し可能な記憶媒体である。
入力装置204は、例えば、マウス、キーボード、スキャナ、マイク等である。出力装置205は、例えば、ディスプレイ装置、スピーカ、プリンタ等である。通信装置206は、例えば、LANユニット等の任意の通信装置である。
次に、図2(b)を参照し、データ管理サーバ111の機能ブロックの例を説明する。
図2(b)において、データ管理サーバ111のメモリ202は、収集データテーブル231、利用者管理情報テーブル232、自ネットワーク情報テーブル233、履歴管理情報テーブル234等を有する。収集データテーブル231は、現在、各機器161から収集しているデータ値、及び、それらのデータの収集・蓄積に関連する情報を格納する。なお、収集データテーブル231に格納されるデータに重複は無い。利用者管理情報テーブル232は、機器161からデータを取得する条件、データをユーザ端末121に送信する条件等を格納する。自ネットワーク情報テーブル233は、自身と同じ通信ネットワーク151と接続する機器161から取得可能なデータに関する情報を格納する。履歴管理情報テーブル234は、機器161等から収集・蓄積したデータの収集実績に関する情報を格納する。履歴管理情報テーブル234には、過去に収集・蓄積及び送信していたものの、現在は収集・蓄積及び送信していないデータに関する情報が格納される。
なお、収集データテーブル231、利用者管理情報テーブル232、自ネットワーク情報テーブル233、履歴管理情報テーブル234等の詳細については後述する。
演算装置201は、上述のように、メモリ202にロードしたプログラムを実行することにより、ミドルウェア211を実現する。ミドルウェア211は、データ提供部221、受付部222、データ利用者管理部223、データ管理部224、通信制御部225等を有する。
データ提供部221は、利用者管理情報テーブル232のユーザ毎の送信条件に基づいて、収集データテーブル231からデータを抽出し、ユーザ端末121に送信する。受付部222は、データ要求受付部226、応答処理部227、実行指示判定部228等を有する。データ要求受付部226は、ユーザ端末121からのデータ要求を受け付けると、該当するデータを収集データテーブル231、自ネットワーク情報テーブル233、履歴管理情報テーブル234等から検索等する。さらに、データ要求受付部226は、他のデータ管理サーバ111に、要求されたデータの問合せを送信し、この問合せに対する応答と、自身の検索結果等とから、複数のデータ管理サーバ111のうち1つを選択し、選択したデータ管理サーバ111に対しデータ応答実行指示を発行する。応答処理部227は、収集データテーブル231、自ネットワーク情報テーブル233、履歴管理情報テーブル234等を参照し、他のデータ管理サーバ111からの問合せに対し応答する。実行指示判定部228は、データ応答実行指示を受け付けると、複数のデータ管理サーバ111のうち、予め定められたポリシーに適合するものを選択し、選択したデータ管理サーバ111に、データ応答実行指示を発行する。なお、データ応答実行指示の発行先は、自身の場合もある。データ利用者管理部223は、利用者管理情報テーブル232を更新等する。データ管理部224は、収集データテーブル231等を更新すると共に、収集データテーブル231内の情報を参照し、各機器161からデータを取得する。通信制御部225は、ミドルウェア211によるデータの送受信を制御する。この通信制御部225の機能は従来技術と同じである。
次に、データ管理サーバ111のメモリ202内の各テーブルの詳細を説明する。
まず、図3を参照し、収集データテーブル231の一例を説明する。
図3において、収集データテーブル231は、データ名301、データ値302、タイムスタンプ303、収集周期304、利用者数305、データソース情報306等のフィールドを含む。各行のデータ名301、データ値302、タイムスタンプ303、収集周期304、利用者数305、データソース情報306等は互いに対応付けられている。
データ名301は、ユーザにより要求されたデータのデータ名である。本実施形態では、データ名は、システム内で流通するデータに対し一意であるものとする。データ値302は、対応するデータ名301のデータ値である。本実施形態では、1つのデータ名301に対し、時系列に複数のデータ値302が格納されるものとする。なお、1つのデータ名301に対応するデータ値302の個数は任意である。この個数は、例えば、システム毎に決定されてもよい。タイムスタンプ303は、対応する各データ値302を取得した日時等である。収集周期304は、対応するデータ名301のデータ値を収集する周期である。利用者数305は、現在、対応するデータ名301のデータを要求しているユーザのうち、自身が応答を返す利用者の数を格納する。この利用者数305の値は、データ要求の有効期間が無効となる度に更新される。データソース情報306は、対応するデータ名301のデータソース(機器161)に関する情報である。本実施形態では、データソース情報306は、経路情報311、プロパティ312等を有する。経路情報311は、対応するデータ名301のデータソースである機器161と自身(データ管理サーバ111)との間でデータの送受信を行う際に通過するネットワークやゲートウェイサーバ等(何れも図示略)である。プロパティ情報312は、対応するデータ名301のデータソースの有効期間、サンプリング周期等である。
次に、図4を参照し、利用者管理情報テーブル232の一例を説明する。
図4において、利用者管理情報テーブル232は、ユーザ名401、要求データ402、フィルタリング条件403、有効期間404、ユーザ端末情報405、最終送信日時406等のフィールドを有する。各行のユーザ名401、要求データ402、フィルタリング条件403、有効期間404、ユーザ端末情報405、最終送信日時406等は互いに対応付けられている。
ユーザ名401は、自身(データ管理サーバ111)が応答データを送信するユーザのユーザ名である。要求データ402は、対応するユーザ名401のユーザの要求する全てのデータ名である。なお、この要求データ402のデータ名のデータに関する情報は、上述の収集データテーブル231に格納されている。フィルタリング条件403は、対応する要求データ402のデータ値を、対応するユーザ名401のユーザのユーザ端末121に対して送信する際の条件である。例えば、フィルタリング条件403「cycle=20」は、20秒に1回、対応する要求データ402のデータ値を取得し、さらに、対応するユーザ名401のユーザのユーザ端末121に送信することを示す。また、例えば、フィルタリング条件403「Line=X」は、対応する要求データ402のうち、「X」番目の製造ラインのデータ値を、対応するユーザ名401のユーザのユーザ端末121に送信することを示す。なお、フィルタリング条件403は任意であり、上述のほかに、例えば、データ要求を受け付けてから5時間等所定時間や、毎日10:00から13:00等所定時間帯等でもよい。有効期間404は、対応するユーザ名401のユーザのユーザ端末121に対して、対応する要求データ402のデータ値の送信を行う残りの時間である。ユーザ端末情報405は、対応するユーザ名401のユーザに関する情報である。ユーザ端末情報405は、経路情報411、識別情報412等を含む。経路情報411は、ユーザのユーザ端末121の接続される通信ネットワーク151と自身(データ管理サーバ111)との間でデータの送受信を行う際に通過するネットワークやゲートウェイサーバ等である。識別情報412は、ユーザ端末121の識別情報である。本実施形態では、ユーザ端末の識別情報は特に限定するものではないが、例えば、ユーザ端末121のアドレス、携帯電話であるユーザ端末121の電話番号、ホスト名等である。最終送信日時406は、対応するユーザ名401のユーザのユーザ端末121に対して送信した日時のうち、最新のものを送信した日時である。
次に、図5を参照し、自ネットワーク情報テーブル233の一例を説明する。
図5において、自ネットワーク情報テーブル233は、データ名501、プロパティ502等のフィールドを有する。各行のデータ名501、プロパティ502等は互いに対応付けられている。
データ名501は、データのデータ名である。プロパティ502は、対応するデータ名501のデータソース(機器161)に関する情報である。ここでは、プロパティ502は、アドレス511、インタフェース512、データ型513、データサイズ514等を有する。アドレス511は、対応するデータ名501のデータソースである機器161のアドレスである。インタフェース512は、対応するデータ名501のデータソースである機器161のインタフェースである。データ型513は、対応するデータ名501のデータソースである機器161が送信するデータ値のデータ型である。データサイズ514は、対応するデータ名501のデータソースである機器161が送信するデータ値のデータサイズである。
なお、自ネットワーク情報テーブル233には、その自ネットワーク情報テーブル233を有するデータ管理サーバ111と同じ通信ネットワーク151と接続する機器161の取得するデータ名及びプロパティのみが格納される。具体的には、例えば、図1に一例を示すデータ管理サーバ111-dの場合、自ネットワーク情報テーブル233には、機器161-d1、機器161-d2、機器161-d3各々の取得するデータのデータ名及びそのデータのプロパティが格納される。図5に一例を示す自ネットワーク情報テーブル233は、図1に一例を示すデータ管理サーバ111-dの記憶するテーブルの例である。
次に、図6を参照し、履歴管理情報テーブル234の一例を説明する。
図6において、履歴管理情報テーブル234は、データ名601、データソース情報602、最終収集日時603等のフィールドを有する。各行のデータ名601、データソース情報602、最終収集日時603等は互いに対応付けられている。
データ名601は、データのデータ名である。データソース情報602は、対応するデータ名601のデータソース(機器161)に関する情報である。データソース情報602は、経路情報611、プロパティ612等を有する。経路情報611は、対応するデータ名601のデータソースである機器161と自身(データ管理サーバ111)との間でデータの送受信を行う際に通過するネットワークやゲートウェイサーバ等である。プロパティ情報612は、対応するデータ名601のデータソースの有効期間、サンプリング周期等である。最終収集日時603は、対応するデータ名601のデータソースから送信されたデータ値のうち、最新のものを受信した日時である。
次に、本実施形態のシステムの動作例を説明する。
まず、図7を参照し、本実施形態のシステムの概要を説明する。
図7は、図1に一例を示すシステム構成において、データソースである機器161と、ユーザのユーザ端末121との間の情報流通を行う概要の一例を示す。
ここでは、前提条件として、誰もデータの収集・蓄積及び送信を行なっていない状態であるものとする。このような場合に、まず、ユーザc1が、通信ネットワーク151-cに接続しているユーザ端末121-c1を用いて、データ名「dataA」、「dataB」のデータ値を要求するものとする。さらに、ユーザc2が、通信ネットワーク151-cに接続しているユーザ端末121-c2を用いて、データ名「dataA」、「dataC」のデータ値を要求するものとする。また、通信ネットワーク151-dに接続されている機器161-d1、機器161-d2、機器161-d3の各々は、データ名「dataA」、「dataB」、「dataC」であるデータ値を送信するものとする。
上述のようにデータが要求されると、データ管理サーバ111が、データ管理サーバ111のうちいずれか1つに対し、データ応答実行指示を発行する。このデータ応答実行指示が発行されたデータ管理サーバ111は、データ管理サーバ111のうち、予め定められたポリシーに従うものから1つ選択する。選択されたデータ管理サーバ111が、要求されたデータの収集・蓄積及び送信を行なう。ここでは、このポリシーは、ユーザへの応答性を優先するか、或いは、データソースである機器161からデータ管理サーバ111までの通信負荷の低減を優先するか、何れか一方であるものとする。ここでは、要求されたデータの収集・蓄積及び送信を行なうデータ管理サーバ111として、データ管理サーバ111-dが選択されるものとする。データ管理サーバ111-dは、データ名「dataA」、「dataB」、「dataC」の各々のデータ値の収集・蓄積を開始する。データ管理サーバ111-dは、ユーザ端末121-c1に対してデータ名「dataA」、「dataB」のデータ値を送信する。さらに、データ管理サーバ111-dは、ユーザ端末121-c2に対してデータ名「dataA」、「dataC」のデータ値を送信する。
上述のようにデータ送信を開始した後、ユーザb1が、通信ネットワーク151-bに接続しているユーザ端末121-b1を用いて、データ名「dataA」、「dataB」、「dataD」のデータを要求するものとする。さらに、ユーザb2が、通信ネットワーク151-bに接続しているユーザ端末121-b2を用いて、データ名「dataC」、「dataD」のデータを要求するものとする。また、通信ネットワーク151-eに接続されている機器161-eは、データ名「dataD」であるデータ値を送信するものとする。
この場合、各データ管理サーバ111は、上述のように、データ応答実行指示が発行されたデータ管理サーバ111が、データ管理サーバ111のうち、予め定められたポリシーに従うものから1つ選択する。選択されたデータ管理サーバ111が、要求されたデータの収集・蓄積及び送信を行なう。ここでは、要求されたデータの収集・蓄積及び送信を行なうデータ管理サーバ111として、データ管理サーバ111-cが選択されるものとする。また、現在、データ値を収集・蓄積及び送信しているデータ名と、今回要求されたデータ名とが少なくとも一部一致するので、新たに選択されたデータ管理サーバ111-cが、現在データ管理サーバ111-dの行なっているデータ値の収集・蓄積及び送信を引き継ぐ。即ち、データ管理サーバ111-dは、データ名「dataA」、「dataB」、「dataC」の各々のデータ値の収集・蓄積及び送信を停止する。一方、データ管理サーバ111-cは、データ名「dataA」、「dataB」、「dataC」、「dataD」の各々のデータ値の収集・蓄積を開始する。データ管理サーバ111-cは、ユーザ端末121-c1に、データ名「dataA」、「dataB」の各々のデータ値を送信する。データ管理サーバ111-cは、ユーザ端末121-c2に、データ名「dataA」、「dataC」の各々のデータ値を送信する。データ管理サーバ111-cは、ユーザ端末121-b1に、データ名「dataA」、「dataB」、「dataD」の各々のデータ値を送信する。データ管理サーバ111-cは、ユーザ端末121-b2に、データ名「dataC」、「dataD」の各々のデータ値を送信する。
次に、図8を参照し、上述の図7に一例を示す概要のシーケンスの例を説明する。図8では、ユーザ端末121-b1からのデータ要求を受信した場合以降の例を説明する。なお、図示していないが、他のユーザ端末121にも同じ処理を行なうことはいうまでもない。
図8において、ユーザ端末121-b1は、データ要求を送信する(S801)。ここで、各ユーザ端末121のデータ要求の宛先は、自身と同じ通信ネットワーク151に接続されているデータ管理サーバ111である。従って、ユーザ端末121-b1は、データ管理サーバ111-bにデータ要求を送信する。このデータ要求には、ユーザb1のユーザ名やユーザ端末121-b1の識別情報、要求したいデータのデータ名、データ収集及び送信の条件等が含まれる。ユーザ端末121-b1からのデータ要求を受信すると、データ管理サーバ111-bは、他のデータ管理サーバ111に、受信したデータ要求に関する問合せをマルチキャストで送信する(S802、S803)。この問合せには、データ要求に含まれていたデータ名等が含まれる。さらに、データ管理サーバ111-bは、自身のメモリ202内を参照し、受信したデータ要求に含まれていた名称のデータを検索する(S804)。
問合せを受信したデータ管理サーバ111-c、データ管理サーバ111-dの各々は、自身のメモリ202内を参照し、受信したデータ要求で要求されたデータを検索する(S805、S806)。なお、図示していないが、データ管理サーバ111-bは、同じ問合せをデータ管理サーバ111-a、111-e、データ管理サーバ111-fの各々に送信してもよい。この問合せを受信したデータ管理サーバ111-a、111-e、データ管理サーバ111-f各々の動作例は、データ管理サーバ111-c、データ管理サーバ111-dと同じである。S805、S806の検索の結果、該当するデータを収集・蓄積及び送信等している場合、データ管理サーバ111-c、データ管理サーバ111-dの各々は、該当するデータを収集・蓄積及び送信等していることを、問合せを送信したデータ管理サーバ111-bに送信する。ここでは、データ管理サーバ111-dが、該当するデータを収集・蓄積及び送信等していることをデータ管理サーバ111-bに送信したものとする(S807)。また、図示していないが、ここでは、データ管理サーバ111-eが、該当するデータを自身と同じ通信ネットワーク151に接続されている機器161から取得可能なことをデータ管理サーバ111-bに送信する。
データ管理サーバ111-bは、他のデータ管理サーバ111からの応答、及び、自身の検索結果から、受信したデータ要求への応答処理を行うデータ管理サーバ111を選択する(S808)。ここでは、データ管理サーバ111-bは、データ管理サーバ111-dを選択するものとする。データ管理サーバ111-bは、受信したデータ要求のデータ応答実行指示をデータ管理サーバ111-dに送信する(S809)。このデータ応答実行指示には、データ要求に含まれていたユーザb1のユーザ名や識別情報、要求したいデータ名、データ収集及び送信の条件に加え、データ管理サーバ111-bが現在収集・蓄積及び送信していたデータのうち、S801で受信したデータ要求で要求されたデータと同じものを要求しているユーザに送信するデータのデータ名、そのデータを送信するユーザやユーザ端末121に関する情報が含まれる。
データ応答実行指示を受信したデータ管理サーバ111-dは、予め定められている負荷軽減優先、応答性優先のうち一方のポリシーに従い、データ応答をするのに適したデータ管理サーバ111を選択する(S810)。ここでは、データ管理サーバ111-dは、データ管理サーバ111-cを選択するものとする。データ管理サーバ111-dは、データ管理サーバ111-cに、データ応答実行指示を行なう(S811)。このデータ応答実行指示に含まれる情報は、上述と同じである。
データ応答実行指示を受信したデータ管理サーバ111-cは、予め定められている負荷軽減優先、応答性優先のうち一方のポリシーに従い、データ応答をするのに適したデータ管理サーバ111を選択する(S812)。ここでは、データ管理サーバ111-cは、自身を選択するものとする。データ管理サーバ111-cは、データ応答実行指示に含まれるデータ収集条件に基づき、機器161からデータの収集・蓄積を行う(S813)。また、データ管理サーバ111-cは、収集・蓄積したデータを、データ応答実行指示に含まれるデータ送信条件に従い、ユーザ端末121-b1に送信する(S814)。図8には図示しないが、ユーザ端末121-c1、ユーザ端末121-c2、ユーザ端末121-b2の各々にも、同様にデータを送信する。
なお、図3に一例を示す収集データテーブル231は、上述の図7、図8に一例を示す動作例において、ユーザ端末121-c1、ユーザ端末121-c2の各々にデータの送信を開始してから、ユーザ端末121-b1、ユーザ端末121-b2の各々からのデータ要求を受信するまでの間の、データ管理サーバ111-dのものである。また、図4に一例を示す利用者管理情報テーブル232は、上述の図7、図8に一例を示す動作例において、ユーザ端末121-c1、ユーザ端末121-c2の各々にデータの送信を開始してから、ユーザ端末121-b1、ユーザ端末121-b2の各々からのデータ要求を受信するまでの間の、データ管理サーバ111-dのものである。
次に、データ管理サーバ111単体の動作例を詳細に説明する。
まず、図9を参照し、ユーザ端末121の何れかから、最初にデータ要求を受信した場合の動作例を説明する。
データ管理サーバ111のデータ要求受付部226は、ユーザ端末121から送信されたデータ要求を受け付ける(S901)。このデータ要求には、ユーザ名、そのユーザのユーザ端末の識別情報、要求するデータのデータ名、要求するデータのフィルタリング条件、データを送信する残りの時間等が含まれる。
具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、ユーザc1の用いるユーザ端末121-c1から送信されるデータ要求には、ユーザ名「user c1」、識別情報「ID_c1」、要求するデータ毎のデータ名「dataA、dataB」、フィルタリング条件「cycle=20」、データを送信する残りの時間「06:00:00」等が含まれる。データ管理サーバ111-cは、これらの情報が含まれるデータ要求を受信する。
また、具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、ユーザb1の用いるユーザ端末121-b1から送信されるデータ要求には、ユーザ名「user b1」、識別情報「ID_b1」、及び、要求するデータ毎のデータ名「dataA、dataB、dataD」、フィルタリング条件「cycle=10」、データを送信する残りの時間「18:00:00」等が含まれる。データ管理サーバ111-bは、これらの情報が含まれるデータ要求を受信する。
データ要求受付部226は、他のデータ管理サーバ111に、S901で受け付けたデータ要求で要求されたデータに関する情報を保有するか否かの問合せを、マルチキャスト送信する(S902)。このとき、データ要求受付部226は、この問合せに、少なくとも、受信したデータ要求に含まれるデータ名を含ませる。
具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、ユーザ端末121-c1から送信されるデータ要求を受信したデータ管理サーバ111-cは、データ管理サーバ111-a、データ管理サーバ111-b、データ管理サーバ111-d、データ管理サーバ111-e、データ管理サーバ111-fの各々に、データ名「dataA」、「dataB」等を含む問合せを送信する。
また、具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、ユーザ端末121-b1から送信されるデータ要求を受信したデータ管理サーバ111-bは、データ管理サーバ111-a、データ管理サーバ111-c、データ管理サーバ111-d、データ管理サーバ111-e、データ管理サーバ111-fの各々に、データ名「dataA」、「dataB」、「dataD」等を含む問合せを送信する。
次に、データ要求受付部226は、メモリ202を参照し、S901で受け付けたデータ要求で要求されたデータを検索する(S903)。そのために、データ要求受付部226は、収集データテーブル231のデータ名301を参照し、S901で受け付けたデータ要求に含まれるデータ名と一致するものを検索する。この検索により一致するものが、現在、収集・蓄積及び送信しているデータのうち、データ要求に含まれるデータと一致するものである。また、データ要求受付部226は、履歴管理情報テーブル234のデータ名601を参照し、S901で受け付けたデータ要求に含まれるデータ名と一致するものを検索する。この検索により一致するものが、過去に、収集・蓄積及び送信したデータのうち、データ要求に含まれるデータと一致するものである。さらに、データ要求受付部226は、自ネットワーク情報テーブル233のデータ名501を参照し、S901で受け付けたデータ要求に含まれるデータ名と一致するものを検索する。この検索により一致するものが、自身と同じ通信ネットワーク151と接続されている機器161から取得可能なデータのうち、データ要求に含まれるデータと一致するものである。
具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、ユーザ端末121-c1から送信されるデータ要求を受信したデータ管理サーバ111-cのデータ要求受付部226は、収集データテーブル231のデータ名301を参照し、「dataA」、「dataB」の各々と一致するものを検索する。データ要求受付部226は、履歴管理情報テーブル234のデータ名601を参照し、「dataA」、「dataB」の各々と一致するものを検索する。さらに、データ要求受付部226は、自ネットワーク情報テーブル233のデータ名501を参照し、「dataA」、「dataB」の各々と一致するものを検索する。図7、図8に一例を示す動作例の場合、上述のように、ユーザ端末121-c1からのデータ要求を受信した時点では、誰もデータの収集・蓄積及び送信を行なっていない状態であるので、データ要求受付部226は、収集データテーブル231、自ネットワーク情報テーブル233、履歴管理情報テーブル234の何れにも、該当する情報が含まれていないと判定する。
また、具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、ユーザ端末121-b1から送信されるデータ要求を受信したデータ管理サーバ111-bのデータ要求受付部226は、収集データテーブル231のデータ名301を参照し、「dataA」、「dataB」、「dataD」の各々と一致するものを検索する。データ要求受付部226は、履歴管理情報テーブル234のデータ名601を参照し、「dataA」、「dataB」、「dataD」の各々と一致するものを検索する。さらに、データ要求受付部226は、自ネットワーク情報テーブル233のデータ名501を参照し、「dataA」、「dataB」、「dataD」の各々と一致するものを検索する。図7、図8に一例を示す動作例の場合、上述のように、ユーザ端末121-b1からのデータ要求を受信した時点では、データ管理サーバ111-dのみがデータの収集・蓄積及び送信を行なっている状態である。従って、データ管理サーバ111-bのデータ要求受付部226は、収集データテーブル231、自ネットワーク情報テーブル233、履歴管理情報テーブル234の何れにも、該当する情報が含まれていないと判定する。
データ要求受付部226は、他のデータ管理サーバ111への問合せに対する応答を待ち受ける(S904)。なお、各データ管理サーバ111から送信される応答には、現在、収集・蓄積及び送信しているデータのうち問合せに含まれるデータと一致するもののデータ名、過去に収集・蓄積及び送信しているデータのうち問合せに含まれるデータと一致するもののデータ名、及び、自身と同じ通信ネットワーク151に接続されている機器161から取得するデータ名等のうち、少なくとも1つが含まれる。この詳細は後述する。
具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、上述のように、ユーザ端末121-c1からのデータ要求を受信した時点では、誰もデータの収集・蓄積及び送信を行なっていない状態である。従って、データ管理サーバ111-dのみが、データ名「dataA」、「dataB」と、これらのデータが自身と同じ通信ネットワーク151-dに接続されている機器161-dから取得可能なことを示す情報等を含む応答を送信する。データ管理サーバ111-cは、データ管理サーバ111-dから送信された応答を受信する。
また、具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、上述のように、ユーザ端末121-b1からのデータ要求を受信した時点では、データ管理サーバ111-dのみが、データ名「dataA」、「dataB」、「dataC」のデータの収集・蓄積及び送信を行なっている状態である。従って、データ管理サーバ111-dが、データ名「dataA」、「dataB」と、これらのデータを現在、収集・蓄積及び送信していることを示す情報等を含む応答を送信する。また、データ管理サーバ111-eが、データ名「dataD」と、このデータが自身と同じ通信ネットワーク151-eに接続されている機器161-eから取得可能なことを示す情報等を含む応答を送信する。データ管理サーバ111-cは、データ管理サーバ111-dから送信された応答と、データ管理サーバ111-eから送信された応答とを受信する。
データ要求受付部226は、上述のS901で受け付けたデータ要求に応答するデータ管理サーバ111を選択する(S905)。この選択処理の詳細は後述する。次に、データ要求受付部226は、S905で選択したデータ管理サーバ111に、データ応答実行指示を行なう(S906)。このデータ応答実行指示には、要求するデータのデータ名、要求するデータのフィルタリング条件、データを送信する残りの時間、及び、データを要求するユーザのユーザ名、そのユーザのユーザ端末の識別情報等が含まれる。なお、ここで、S905で選択したデータ管理サーバ111が自身である場合、データ要求受付部226は、後述する収集データテーブル231、利用者管理情報テーブル232等の更新処理を起動する。
具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、ユーザ端末121-c1からのデータ要求を受信したデータ管理サーバ111-cのデータ要求受付部226は、S905の処理で、データ管理サーバ111-dを選択するものとする。この場合、データ要求受付部226は、データ管理サーバ111-dに、ユーザ名「user c1」、識別情報「ID_c1」、及び、要求するデータ毎のデータ名「dataA、dataB」、フィルタリング条件「cycle=20」、データを送信する残りの時間「06:00:00」等を含むデータ応答実行指示を行なう。
また、具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、ユーザ端末121-b1からのデータ要求を受信したデータ管理サーバ111-bのデータ要求受付部226は、S905の処理で、データ管理サーバ111-dを選択するものとする。この場合、データ要求受付部226は、データ管理サーバ111-dに、ユーザ名「user b1」、識別情報「ID_b1」、及び、要求するデータ毎のデータ名「dataA、dataB、dataD」、フィルタリング条件「cycle=10」、データを送信する残りの時間「18:00:00」等を含むデータ応答実行指示を行なう。
ここで、同じ図9を参照し、上述のS905の、データ管理サーバ111の選択処理例の詳細を説明する。
図9において、データ要求受付部226は、まず、上述のS902の処理で送信した問合せの応答を受信したか否か判定する(S911)。この判定は任意でよく、データ要求受付部226は、例えば、上述のS902の問合せを送信してから所定時間の間に応答を受信したか否か、又は、問合せに対する応答を所定数以上受信した否か等により判定してもよい。
S911の判定の結果、応答を受信していない場合、データ要求受付部226は、自身を、上述のS901で受け付けたデータ要求に応答するものとして選択する(S912)。
S911の判定の結果、応答を受信している場合、データ要求受付部226は、受信した応答、及び、上述のS903の検索結果のうち少なくとも1つが、上述のS901で受け付けたデータ要求で要求されたデータを、現在、収集・蓄積及び送信しているか否か判定する(S913)。
S913の判定の結果、上述のS901で受け付けたデータ要求で要求されたデータを、現在、収集・蓄積及び送信しているものがある場合、データ要求受付部226は、その応答を送信したデータ管理サーバ111及び自身のうち、要求されたデータと同じデータを、最も多く、収集・蓄積及び送信しているものを、上述のS901で受け付けたデータ要求に応答するものとして選択する(S914)。そのために、データ要求受付部226は、応答の各々に対し、現在、収集・蓄積及び送信しているデータのデータ名の件数をカウントする。さらに、データ要求受付部226は、上述のS903の処理で検索したデータの件数をカウントする。データ要求受付部226は、これらの件数を比較して、最も件数の大きい応答を送信したデータ管理サーバ111又は自身を選択する。
一方、S913の判定の結果、上述のS901で受け付けたデータ要求で要求されたデータを、現在、収集・蓄積及び送信しているものがない場合、データ要求受付部226は、上述のS901で受け付けたデータ要求で要求されたデータを、過去に、収集・蓄積及び送信したものがあるか否か判定する(S915)。
S915の判定の結果、上述のS901で受け付けたデータ要求で要求されたデータを、過去に、収集・蓄積及び送信したものがある場合、データ要求受付部226は、その応答を送信したデータ管理サーバ111及び自身のうち、要求されたデータと同じデータを、最も多く、収集・蓄積及び送信しているものを、上述のS901で受け付けたデータ要求に応答するものとして選択する(S916)。この具体的な処理例は、過去に収集・蓄積及び送信したデータのデータ名の件数をカウントする点を除き、上述のS914と同じであるので省略する。
S915の判定の結果、上述のS901で受け付けたデータ要求で要求されたデータを、過去に、収集・蓄積及び送信したものがない場合、データ要求受付部226は、応答を送信したデータ管理サーバ111及び自身のうち、要求されたデータのデータソースとなる機器161と、最も多く、同じ通信ネットワーク151と接続されているものを、上述のS901で受け付けたデータ要求に応答するものとして選択する(S917)。この具体的な処理例は、同じ通信ネットワーク151と接続されている機器161から取得可能なデータのうち、問合せに含まれるデータと一致するデータのデータ名の件数をカウントする点を除き、上述のS914、S916と同じであるので省略する。
具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、上述のように、ユーザ端末121-c1からのデータ要求を受信したデータ管理サーバ111-cのデータ要求受付部226は、S903の処理で、収集データテーブル231、自ネットワーク情報テーブル233、履歴管理情報テーブル234の何れにも、該当する情報が含まれていないと判定しており、かつ、S904で、データ管理サーバ111-dからの、データ名「dataA」、「dataB」と、これらのデータが自身と同じ通信ネットワーク151-dに接続されている機器161から取得することを示す情報等を含む応答を受信している。従って、データ管理サーバ111-cのデータ要求受付部226は、S917の処理で、要求されたデータと同じデータのデータソースとなる機器161と、最も多く、同じ通信ネットワーク151と接続されているデータ管理サーバ111-dを選択する。
また、具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、上述のように、ユーザ端末121-b1からのデータ要求を受信したデータ管理サーバ111-bのデータ要求受付部226は、S903の処理で、収集データテーブル231、自ネットワーク情報テーブル233、履歴管理情報テーブル234の何れにも、該当する情報が含まれていないと判定しており、かつ、S904で、データ管理サーバ111-dからの、データ名「dataA」、「dataB」と、これらのデータを現在、収集・蓄積及び送信していることを示す情報とを含む応答と、データ管理サーバ111-eからの、データ名「dataD」と、これらのデータが自身と同じ通信ネットワーク151-eに接続されている機器161から取得することを示す情報等を含む応答とを受信している。従って、データ管理サーバ111-cのデータ要求受付部226は、S914の処理で、要求されたデータと同じデータを現在、収集・蓄積及び送信しているデータ管理サーバ111-dを選択する。
なお、S915の判定の結果、上述のS901で受け付けたデータ要求で要求されたデータを、過去に、収集・蓄積及び送信したものがない場合とは、即ち、上述のS901で受け付けたデータ要求で要求されたデータを、これまでに収集・蓄積及び送信していない場合である。
次に、図10を参照し、他のデータ管理サーバ111から送信された問合せを受け付けた場合の動作例を説明する。
上述の図9で説明したように、ユーザ端末121からのデータ要求を受け付けると、データ管理サーバ111は、他のデータ管理サーバ111に、要求されたデータのデータ名を含む問合せをマルチキャスト送信する。
図10において、データ管理サーバ111の応答処理部227は、問合せを受け付けると(S1001)、収集データテーブル231を参照し、現在、収集・蓄積及び送信しているデータのデータ名のうち、問合せに含まれるものと一致するものが含まれているか否か判定する(S1002)。そのために、応答処理部227は、例えば、収集データテーブル231の各行のデータ名301を参照し、問合せに含まれるデータ名と一致するものを検索する。
具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、上述のように、ユーザ端末121-c1からのデータ要求を受信したデータ管理サーバ111-cは、データ管理サーバ111-a、データ管理サーバ111-b、データ管理サーバ111-d、データ管理サーバ111-e、データ管理サーバ111-fの各々に、データ名「dataA」、「dataB」等を含む問合せを送信する。上述のように、ユーザ端末121-c1からのデータ要求を受信した時点では、誰もデータの収集・蓄積及び送信を行なっていない状態である。従って、データ管理サーバ111-a、データ管理サーバ111-b、データ管理サーバ111-d、データ管理サーバ111-e、データ管理サーバ111-fの各々の応答処理部227は、収集データテーブル231には、該当する情報が含まれていないと判定する。
また、具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、上述のように、ユーザ端末121-b1からのデータ要求を受信したデータ管理サーバ111-bは、データ管理サーバ111-a、データ管理サーバ111-c、データ管理サーバ111-d、データ管理サーバ111-e、データ管理サーバ111-fの各々に、データ名「dataA」、「dataB」、「dataD」等を含む問合せを送信する。この問合せを受信したデータ管理サーバ111-dの応答処理部227は、図3に一例を示す収集データテーブル231の各行のデータ名301を参照し、「dataA」、「dataB」、「dataD」の各々と一致するものを検索する。図3に一例を示す収集データテーブル231の場合、データ名301「dataA」、データ名301「dataB」が含まれているので、応答処理部227は、該当する情報が含まれていると判定する。
S1002の判定の結果、一致するものが含まれている場合、応答処理部227は、一致するデータのデータ名を、現在、収集・蓄積及び送信中のものとして、メモリ202の所定領域等に保持する(S1003)。このとき、応答処理部227は、該当するものが2つ以上ある場合、全てのデータ名をメモリ202の所定領域に格納する。
具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、ユーザ端末121-b1から送信されたデータ要求に対する問合せを受信したデータ管理サーバ111-dの応答処理部227は、上述のS1002の処理で、図3に一例を示す収集データテーブル231に、データ名「dataA」、「dataB」が含まれていると判定している。従って、応答処理部227は、メモリ202の所定領域等に、現在、収集・蓄積及び送信しているものとして、データ名「dataA」、「dataB」を格納する。
S1002の判定の結果、一致するものが含まれていない場合、又は、上述のS1003の処理の後、応答処理部227は、履歴管理情報テーブル234を参照し、過去に、収集・蓄積及び送信したデータのデータ名のうち、問合せに含まれるものと一致するものが含まれているか否か判定する(S1004)。そのために、応答処理部227は、例えば、履歴管理情報テーブル234の各行のデータ名601を参照し、問合せに含まれるデータのデータ名と一致するものを検索する。
具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、上述のように、ユーザ端末121-c1からのデータ要求を受信したデータ管理サーバ111-cは、データ管理サーバ111-a、データ管理サーバ111-b、データ管理サーバ111-d、データ管理サーバ111-e、データ管理サーバ111-fの各々に、データ名「dataA」、「dataB」等を含む問合せを送信する。上述のように、ユーザ端末121-c1からのデータ要求を受信した時点では、誰もデータの収集・蓄積及び送信を行なっていない状態である。従って、データ管理サーバ111-a、データ管理サーバ111-b、データ管理サーバ111-d、データ管理サーバ111-e、データ管理サーバ111-fの各々の応答処理部227は、履歴管理情報テーブル234には、該当する情報が含まれていないと判定する。
S1004の判定の結果、一致するものが含まれている場合、応答処理部227は、一致するデータのデータ名を、過去に収集・蓄積及び送信したものとして、メモリ202の所定領域等に保持する(S1005)。このとき、応答処理部227は、該当するものが2つ以上ある場合、全てのデータ名をメモリ202の所定領域に格納する。
S1004の判定の結果、一致するものが含まれていない場合、又は、上述のS1005の処理の後、応答処理部227は、自ネットワーク情報テーブル233を参照し、自身と同じ通信ネットワーク151に接続されている機器161から取得するデータのデータ名のうち、問合せに含まれるものと一致するものが含まれているか否か判定する(S1006)。そのために、応答処理部227は、例えば、自ネットワーク情報テーブル233の各行のデータ名501を参照し、問合せに含まれるデータのデータ名と一致するものを検索する。
具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、上述のように、ユーザ端末121-c1からのデータ要求を受信したデータ管理サーバ111-cは、データ管理サーバ111-a、データ管理サーバ111-b、データ管理サーバ111-d、データ管理サーバ111-e、データ管理サーバ111-fの各々に、データ名「dataA」、「dataB」等を含む問合せを送信する。この問合せを受信したデータ管理サーバ111-dの応答処理部227は、図5に一例を示す自ネットワーク情報テーブル233の各行のデータ名501を参照する。図5に一例を示す自ネットワーク情報テーブル233の場合、データ名501に「dataA」、「dataB」が含まれている。従って、データ管理サーバ111-dの応答処理部227は、収集データテーブル231には、該当する情報が含まれていると判定する。
S1006の判定の結果、一致するものが含まれている場合、応答処理部227は、一致するデータのデータ名を、自身と同じ通信ネットワーク151に接続されている機器161から取得するものとして、メモリ202の所定領域等に保持する(S1007)。このとき、応答処理部227は、該当するものが2つ以上ある場合、全てのデータ名をメモリ202の所定領域に格納する。
具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、上述のS1006の処理で、ユーザ端末121-c1から送信されたデータ要求に対する問合せを受信したデータ管理サーバ111-dの応答処理部227は、自ネットワーク情報テーブル233に、データ名「dataA」、「dataB」が含まれていると判定している。従って、応答処理部227は、メモリ202の所定領域等に、自身と同じ通信ネットワーク151に接続されている機器161から取得するものとして、データ名「dataA」、「dataB」を格納する。
S1006の判定の結果、一致するものが含まれていない場合、又は、上述のS1007の処理の後、応答処理部227は、メモリ202の所定領域を参照し、上述のS1003、S1005、S1007のうち少なくとも1つの処理で格納されたデータ名があるか否か判定する(S1008)。
S1008の判定の結果、データ名が格納されている場合、応答処理部227は、応答を送信する(S1009)。このとき、応答処理部227は、応答に、そのデータ名と、その各データが現在、収集・蓄積及び送信中のものか、過去に収集・蓄積及び送信したものか、あるいは、自身と同じ通信ネットワーク151に接続されている機器161から取得するものかを示す情報とを含めて送信する。
具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、ユーザ端末121-c1から送信されたデータ要求に対する問合せを受信したデータ管理サーバ111-dの応答処理部227は、上述のS1007の処理で、メモリ202の所定領域等に、自身と同じ通信ネットワーク151に接続されている機器161から取得するものとして、データ名「dataA」、「dataB」を格納している。従って、応答処理部227は、自身と同じ通信ネットワーク151に接続されている機器161から取得するデータであることを示す情報と、データ名「dataA」、「dataB」とを含む応答を、データ管理サーバ111-cに送信する。
また、具体的には、例えば、上述の図7、図8に一例を示す動作例の場合、ユーザ端末121-b1から送信されたデータ要求に対する問合せを受信したデータ管理サーバ111-dの応答処理部227は、上述のS1002の処理で、メモリ202の所定領域等に、現在、収集・蓄積及び送信しているものとして、データ名「dataA」、「dataB」を格納している。従って、応答処理部227は、現在、収集・蓄積及び送信しているデータであることを示す情報と、データ名「dataA」、「dataB」とを含む応答を、データ管理サーバ111-bに送信する。
S1008の判定の結果、データのデータ名が格納されていない場合、応答処理部227は、処理を終了する。
次に、図11を参照し、他のデータ管理サーバ111から送信されたデータ応答実行指示、又は、自身に対し実行指示されたデータ応答実行指示を受け付けた場合の動作例を説明する。
上述の図9で説明したように、データ管理サーバ111は、選択したデータ管理サーバ111に、データ応答実行指示を行なう。図11において、選択されたデータ管理サーバ111は、データ応答実行指示を受け付ける(S1101)。上述のように、データ応答実行指示には、要求するデータのデータ名、要求するデータのフィルタリング条件、データを要求する期限、及び、データを要求するユーザのユーザ名、そのユーザのユーザ端末121の識別情報等が含まれる。
次に、実行指示判定部228は、要求されたデータのデータソースとなる機器161に関する情報を取得する(S1102)。そのために、例えば、実行指示判定部228は、要求されたデータを、現在、収集・蓄積及び送信しているか否か判定する。そのために、実行指示判定部228は、例えば、収集データテーブル231の各行のデータ名301を参照し、データ応答実行指示に含まれるデータ名と一致するものが含まれているか否か判定する。この判定の結果、データ応答実行指示に含まれるデータ名と一致するものが含まれている場合、実行指示判定部228は、収集データテーブル231から、データ応答実行指示に含まれるデータ名と一致するデータ名301を検索し、該当するデータ名301に対応する経路情報311及びプロパティ312を参照する。また、要求されたデータを、現在、収集・蓄積及び送信していない場合、実行指示判定部228は、要求されたデータを、過去に、収集・蓄積及び送信してしたか否か判定する。そのために、実行指示判定部228は、例えば、履歴管理情報テーブル234の各行のデータ名601を参照し、データ応答実行指示に含まれるデータのデータ名と一致するものが含まれているか否か判定する。この判定の結果、データ応答実行指示に含まれるデータのデータ名と一致するものが含まれている場合、実行指示判定部228は、履歴管理情報テーブル234から、データ応答実行指示に含まれるデータのデータ名と一致するデータ名601を検索し、該当するデータ名601に対応する経路情報611及びプロパティ612を参照する。また、要求されたデータを、現在及び過去にも、収集・蓄積及び送信していない場合、実行指示判定部228は、要求されたデータのデータソースとなる機器161が、自身の接続する通信ネットワーク151に接続されているものか否か判定する。そのために、実行指示判定部228は、例えば、自ネットワーク情報テーブル233の各行のデータ名501を参照し、データ応答実行指示に含まれるデータのデータ名と一致するものが含まれているか否か判定する。この判定の結果、データ応答実行指示に含まれるデータのデータ名と一致するものが含まれている場合、実行指示判定部228は、自ネットワーク情報テーブル233から、データ応答実行指示に含まれるデータのデータ名と一致するデータ名501を検索し、該当するデータ名501に対応するプロパティ502を参照する。要求されたデータのデータ名と一致するものが、収集データテーブル231、自ネットワーク情報テーブル233、履歴管理情報テーブル234の何れにも含まれていない場合、実行指示判定部228は、他のデータ管理サーバ111に、要求されたデータのデータ名を含むデータソース問合せを送信してもよい。このデータソース問合せを受信した各データ管理サーバ111は、自身の自ネットワーク情報テーブル233の各行のデータ名501を参照して、データソース問合せに含まれるデータ名と一致するものを検索し、該当するデータ名501が有る場合、そのデータ名501に対応するプロパティ502を読出し、読み出したプロパティ502のデータを、応答として送信してもよい。この応答を受信したデータ管理サーバ111は、応答に含まれるプロパティ502のアドレス511を含む所定コマンドを送信等することにより、要求されたデータのデータソースとなる機器161までの経路情報を取得しても良い。また、例えば、データソースとなる機器161の各々は、自ネットワーク内に、自身の取得するデータ名及びデータ値や、上述のようなデータ管理サーバ111からの問い合わせに対する応答等をブロードキャスト送信する。データ管理サーバ111は、各機器161によりブロードキャスト送信されたデータ名及びデータ値や応答等のうち、取得対象となる機器161のものを選択受信することにより、経路情報を取得してもよい。
具体的には、例えば、図7、図8に一例を示す動作例の場合、上述のように、ユーザ端末121-c1からのデータ要求を受信したデータ管理サーバ111-cは、データ管理サーバ111-dに、ユーザ名「user c1」、識別情報「ID_c1」、及び、要求するデータ毎のデータ名「dataA、dataB」、フィルタリング条件「cycle=20」、データを送信する残りの時間「06:00:00」等を含むデータ応答実行指示を行なう。この場合、データ管理サーバ111-dの実行指示判定部228は、データ名「dataA」、「dataB」の各々のデータのデータソースとなる機器161に関する情報を取得する。そのために、実行指示判定部228は、収集データテーブル231の各行のデータ名301を参照し、データ名「dataA」、「dataB」の各々と一致するものが含まれているか否か判定する。また、実行指示判定部228は、例えば、履歴管理情報テーブル234の各行のデータ名601を参照し、データ名「dataA」、「dataB」の各々と一致するものが含まれているか否か判定する。上述のように、ユーザ端末121-c1からのデータ要求を受信した時点では、誰もデータの収集・蓄積及び送信を行なっていない状態である。従って、収集データテーブル231、履歴管理情報テーブル234の何れにも、該当するデータは含まれていない。さらに、実行指示判定部228は、図5に一例を示す自ネットワーク情報テーブル233の各行のデータ名501を参照し、データ名「dataA」、「dataB」の各々と一致するものが含まれているか否か判定する。この判定の結果、該当するデータが含まれているので、実行指示判定部228は、自ネットワーク情報テーブル233から、データ名501「dataA」に対応するプロパティ502、及び、データ名501「dataB」に対応するプロパティ502を参照する。
また、具体的には、例えば、図7、図8に一例を示す動作例の場合、上述のように、ユーザ端末121-b1からのデータ要求を受信したデータ管理サーバ111-bは、データ管理サーバ111-dに、ユーザ名「user b1」、識別情報「ID_b1」、及び、要求するデータ毎のデータ名「dataA、dataB、dataD」、フィルタリング条件「cycle=10」、データを送信する残りの時間「18:00:00」等を含むデータ応答実行指示を行なう。この場合、データ管理サーバ111-dの実行指示判定部228は、データ名「dataA」、「dataB」、「dataD」の各々のデータのデータソースとなる機器161に関する情報を取得する。上述のように、ユーザ端末121-b1からのデータ要求を受信した時点では、データ名「dataA」、「dataB」のデータの収集・蓄積及び送信を行なっている状態である。従って、実行指示判定部228は、図3に一例を示す収集データテーブル231の各行のデータ名301を参照し、データ名「dataA」、「dataB」の各々と一致するものが含まれているか否か判定する。この判定の結果、該当するデータが含まれているので、実行指示判定部228は、収集データテーブル231から、データ名301「dataA」に対応するデータソース情報306、データ名301「dataB」に対応するデータソース情報306を参照する。また、実行指示判定部228は、他のデータ管理サーバ111に、データ名「dataD」を含むデータソース問合せを送信する。このデータソース問合せを受信したデータ管理サーバ111-eが、自身の自ネットワーク情報テーブル233から、データ名501「dataD」に対応するプロパティ502を読出し、応答としてデータ管理サーバ111-dに送信する。
次に、実行指示判定部228は、システム全体のポリシーとして、「負荷軽減優先」が設定されているか、或いは、「応答性優先」が設定されているか否か判定する(S1103)。なお、ここでは、このポリシーは、予め、全てのデータ管理サーバ111の各々に対し、同じポリシーが定められ、各々の2次記憶装置203等の所定領域等に何れかのポリシーを示す情報が格納されており、実行指示判定部228は、この情報を参照することで判定するものとする。ここで「負荷軽減優先」は、データ管理サーバ111が、ユーザの要求するデータを収集・蓄積する際に発生するネットワーク負荷等を軽減することを優先するものである。また、「応答性優先」は、データ管理サーバ111が、ユーザ端末121に要求されたデータを含む応答を送信する際の確実性を優先するものである。
S1103の判定の結果、「負荷軽減優先」である場合、実行指示判定部228は、データ管理サーバ111のうち、要求されたデータのデータソースの機器161からのデータ取得に関し最も負荷の少ないものを選択する(S1104)。ここで、負荷の少ないデータ管理サーバ111を選択する技術は特に限定するものではない。例えば、実行指示判定部228は、データ管理サーバ111の各々と、要求されたデータのデータソースの機器161の各々との間の経路情報を参照し、この経路が最小となるデータ管理サーバ111を選択してもよい。また、例えば、実行指示判定部228は、各通信ネットワーク151のネットワーク負荷や、各データ管理サーバ111のサーバ負荷等を取得し、ネットワーク負荷が最小である通信ネットワーク151に接続されているデータ管理サーバ111、サーバ負荷が最小であるデータ管理サーバ111を選択しても良い。経路が最小であるか否かによりデータ管理サーバ111を選択する場合、実行指示判定部228は、まず、経路情報を取得する。この経路情報は、上述のS1102の処理で取得した情報に含まれるものである。即ち、例えば、収集データテーブル231のデータ名301に、データ応答実行指示に含まれるデータのデータ名と一致するものが含まれている場合、実行指示判定部228は、該当するデータ名301に対応する経路情報311を参照する。また、例えば、履歴管理情報テーブル234のデータ名601に、データ応答実行指示に含まれるデータのデータ名と一致するものが含まれている場合、実行指示判定部228は、該当するデータ名601に対応する経路情報611を参照する。また、例えば、自ネットワーク情報テーブル233のデータ名501に、データ応答実行指示に含まれるデータのデータ名と一致するものが含まれている場合、実行指示判定部228は、該当するデータ名501に対応するプロパティ502を参照する。また、例えば、他のデータ管理サーバ111からの、要求されたデータのデータ名を含むデータソース問合せに対する応答に含まれるプロパティ502等から取得した経路情報を参照する。実行指示判定部228は、データ管理サーバ111の各々と、要求されたデータのデータソースの機器161の各々との間のゲートウェイ、ルータ等の数をカウントし、この数が最小になるものを選択する。また、各通信ネットワーク151のネットワーク負荷や、各データ管理サーバ111のサーバ負荷等からデータ管理サーバ111を選択する場合、実行指示判定部228は、例えば、ネットワーク負荷、サーバ負荷のうち少なくとも一方を取得する。この、ネットワーク負荷、サーバ負荷の各々は、例えば、トラフィック量やリソース使用率等である。これらを取得する技術そのものは従来技術と同じであり、自身の問合せに対する応答やブロードキャストされた情報から抽出するものでもよく、また、図示しない他機器が取得したものでもよい。実行指示判定部228は、取得したネットワーク負荷、サーバ負荷等から、ネットワーク負荷、サーバ負荷が最小となるデータ管理サーバ111を選択する。
なお、このとき、実行指示判定部228は、要求されたデータと同じものを、現在、収集・蓄積及び送信しているか否か判定する。そのために、実行指示判定部228は、収集データテーブル231の各行のデータ名301を参照し、S1101で受け付けたデータ応答実行指示に含まれるデータ名と同じものがあるか否か判定する。この判定の結果、同じものがある場合、実行指示判定部228は、そのデータのデータ名等を、メモリ202の所定領域等に格納する。このデータ名が、S1104で選択したデータ管理サーバ111に、自身の代わりに、収集・蓄積及び送信させるデータのデータ名である。
一方、S1103の判定の結果、「応答性優先」である場合、実行指示判定部228は、データ管理サーバ111のうち、データ要求を送信したユーザ端末121までの応答性が最良となるものを選択する(S1105)。ここで、応答性が最良となるものを選択する技術は特に限定するものではないが、例えば、データ管理サーバ111の各々と、データ要求を送信したユーザ端末121との間の経路情報から、応答性が最良となるものを選択してもよい。また、例えば、また、例えば、予め、ユーザ端末121毎のネットワーク環境情報から、応答性が最良となるものを選択してもよい。また、例えば、各データ管理サーバ111の性能情報から、応答性が最良となるものを選択してもよい。経路情報から選択する場合、実行指示判定部228は、まず、経路情報を取得する。この経路情報は、例えば、データ管理サーバ111の各々のアドレスと、データ応答実行指示に含まれるデータ要求を送信したユーザ端末121の識別情報(アドレス等)とを含む所定コマンド(例えば“telnet”や“traceroute”等)を発行することにより取得するものである。実行指示判定部228は、経路情報に含まれる、経路上のゲートウェイ、ルータ等の数をカウントし、この数が最小になるものを選択する。また、例えば、ネットワーク環境情報から選択する場合、実行指示判定部228は、2次記憶装置203等に予め記憶しているネットワーク環境情報、及び、ネットワーク構成情報(何れも図示略)を参照する。このネットワーク環境情報には、ユーザ端末121の識別情報の各々と対応付けて、そのユーザ端末121が有線接続か無線接続であるか、又は、常時接続であるか否かを示す情報が含まれる。また、このネットワーク構成情報には、データ管理サーバ111毎の位置情報、ユーザ端末121毎の位置情報、ユーザ端末121等のアクセスポイント毎の位置情報等が含まれる。実行指示判定部228は、ネットワーク環境情報を参照し、データ応答実行指示に含まれるユーザ端末121の識別情報から、そのユーザの用いるユーザ端末121が有線接続か無線接続であるか、又は、常時接続であるか否かを判定する。この判定の結果、そのユーザの用いるユーザ端末121が無線接続である場合、又は、常時接続でない場合、実行指示判定部228は、ネットワーク構成情報を参照し、そのユーザ端末121の位置情報を検索する。実行指示判定部228は、ネットワーク構成情報の各アクセスポイントの位置情報を参照し、検索したユーザ端末121に最も近いアクセスポイントを検索する。次に、実行指示判定部228は、ネットワーク構成情報の各データ管理サーバ111の位置情報を参照し、検索したアクセスポイントに最も近いものを選択する。また、例えば、各データ管理サーバ111の性能情報から選択する場合、実行指示判定部228は、予め2次記憶装置203等に性能情報を記憶しておく。この性能情報は、データ管理サーバ111毎に、現在収集・蓄積及び送信しているデータの数、現在及び過去に収集・蓄積したデータを記憶する記憶領域の容量、現在収集・蓄積しているデータを送信しているユーザの数等を含む。実行指示判定部228は、性能情報を参照し、現在収集・蓄積及び送信しているデータの数、現在及び過去に収集・蓄積したデータを記憶する記憶領域の容量、現在収集・蓄積しているデータを送信しているユーザの数等のうち1つ又は組合せから、データ管理サーバ111のうち現在最もデータ応答の性能の高いものを選択する。
なお、このとき、実行指示判定部228は、要求されたデータを送信するユーザ端末121と同じユーザ端末121に、現在、データを送信しているか否か判定する。そのために、実行指示判定部228は、利用者管理情報テーブル232の各行の識別情報412等を参照し、S1101で受け付けたデータ応答実行指示に含まれる識別情報と同じものがあるか否か判定する。この判定の結果、同じものがある場合、実行指示判定部228は、その識別情報等を、メモリ202の所定領域等に格納する。この識別情報のユーザ端末121が、S1104で選択したデータ管理サーバ111に、自身の代わりにデータ等を送信させる宛先のものである。
具体的には、例えば、図7、図8に一例を示す動作例の場合、上述のように、データ管理サーバ111-b1からのデータ応答実行指示を受信したデータ管理サーバ111-dの実行指示判定部228は、上述のS1105の処理で、データ管理サーバ111-cを選択したものとする。この場合、図3に一例を示す収集データテーブル231の各行のデータ名301には、受信したデータ応答実行指示に含まれているデータ名と同じデータ名「dataA」、「dataB」が含まれているので、実行指示判定部228は、「dataA」、「dataB」等を、メモリ202の所定領域等に格納する。また、実行指示判定部228は、図4に一例を示す利用者管理情報テーブル232の各行の要求データ402を参照し、「dataA」、「dataB」の各々が含まれているものと対応する識別情報412「ID_c1」、「ID_c2」を読出し、メモリ202の所定領域に格納する。
次に、実行指示判定部228は、上述のS1104、又は、S1105の処理で選択したデータ管理サーバ111が自身であるか否か判定する(S1106)。
S1106の判定の結果、選択したデータ管理サーバ111が自身である場合、実行指示判定部228は、収集データテーブル231、利用者管理情報テーブル232等を更新する(S1107)。そのために、例えば、実行指示判定部228は、まず、要求されたデータを既に収集・蓄積及び送信しているか否か、及び、要求されたデータのデータソースとなる機器161が自身と同じ通信ネットワーク151に接続されているか否か判定する。そのために、実行指示判定部228は、例えば、収集データテーブル231の各行のデータ名301を参照し、データ応答実行指示に含まれるデータ名と一致するものがあるか否か判定する。また、実行指示判定部228は、例えば、履歴管理情報テーブル234の各行のデータ名601を参照し、データ応答実行指示に含まれるデータ名と一致するものがあるか否か判定する。また、実行指示判定部228は、例えば、自ネットワーク情報テーブル233の各行のデータ名501を参照し、データ応答実行指示に含まれるデータ名と一致するものがあるか否か判定する。
これらの判定の結果、収集データテーブル231に該当するデータが含まれている場合、実行指示判定部228は、収集データテーブル231の、データ応答実行指示に含まれるデータ名の各々と一致する各データ名301に対応する収集周期304、利用者数305を更新する。ここで、実行指示判定部228は、データ応答実行指示に含まれるフィルタリング条件「cycle」の値と、データ応答実行指示に含まれるデータ名の各々と一致するデータ名301に対応する収集周期304の値とが異なる場合、それらの周期の最大公約数を、新たな収集周期304とする。また、実行指示判定部228は、収集データテーブル231の、データ応答実行指示に含まれるデータ名の各々と一致するデータ名301に対応する利用者数305の値を更新する。また、データ利用者管理部223は、利用者管理情報テーブル232に新たな行を追加し、追加した行のユーザ名401、要求データ402、フィルタリング条件403、有効期間404、経路情報411、識別情報412等として、データ応答実行指示に含まれるユーザのユーザ名、フィルタリング条件、データを送信する残りの時間、自身からユーザ端末121までの経路情報、ユーザ端末121の識別情報等を格納する。ここで、自身からユーザ端末121までの経路情報は、例えば、上述と同様に、自身のアドレスと、データの送信先となるユーザ端末121の識別情報とを含む所定コマンドを発行することにより取得してもよい。
また、例えば、上述の判定の結果、収集データテーブル231に該当するデータが含まれてなく、かつ、履歴管理情報テーブル234に該当するデータが含まれている場合、実行指示判定部228は、履歴管理情報テーブル234から、データ応答実行指示に含まれているデータ名と一致するデータ名601、このデータ名601に対応するデータソース情報602等を読出し、収集データテーブル231に追加した新たな行のデータ名301、データソース情報306等として格納する。さらに、実行指示判定部228は、このデータ名301に対応する収集周期304、利用者数305等に、データ応答実行指示に含まれるフィルタリング条件「cycle」の値、利用者数「1」を格納する。さらに、データ利用者管理部223は、利用者管理情報テーブル232に新たな行を追加し、追加した行のユーザ名401、要求データ402、フィルタリング条件403、有効期間404、経路情報411、識別情報412等として、データ応答実行指示に含まれるユーザ名、フィルタリング条件、データを送信する残りの時間、自身からユーザ端末121までの経路情報、ユーザ端末121の識別情報等を格納する。ここで、自身からユーザ端末121までの経路情報は、例えば、上述と同様に、自身のアドレスと、データの送信先となるユーザ端末121の識別情報とを含む所定コマンドを発行することにより取得してもよい。
また、例えば、上述の判定の結果、収集データテーブル231、履歴管理情報テーブル234の両方に該当するデータが含まれてなく、かつ、自ネットワーク情報テーブル233に該当するデータが含まれている場合、実行指示判定部228は、収集データテーブル231に追加した新たな行のデータ名301、収集周期304、利用者数305として、データ応答実行指示に含まれるデータ名、フィルタリング条件「cycle」の値、利用者数「1」等を格納する。なお、上述のように、収集データテーブル231のデータソース情報306は、経路情報311、プロパティ312等を含む。経路情報311を取得するために、実行指示判定部228は、上述と同様に、自身のアドレスと、データソースとなる機器161のアドレスとを含む所定コマンドを発行することにより取得してもよい。また、プロパティ311を取得するために、実行指示判定部228は、自ネットワーク情報テーブル233の各行のデータ名501のうち、データ応答実行指示に含まれるデータ名と一致するものと対応するプロパティ502を読み出す。実行指示判定部228は、このように取得した経路情報、プロパティを、上記処理で追加したデータ名301に対応するデータソース情報306として格納する。さらに、データ利用者管理部223は、利用者管理情報テーブル232に新たな行を追加し、追加した行のユーザ名401、要求データ402、フィルタリング条件403、有効期間404、経路情報411、識別情報412等として、データ応答実行指示に含まれるユーザの識別情報、フィルタリング条件、データを送信する残りの時間、自身からユーザ端末121までの経路情報、ユーザ端末121の識別情報等を格納する。ここで、自身からユーザ端末121までの経路情報は、例えば、上述と同様に、自身のアドレスと、データの送信先となるユーザ端末121の識別情報とを含む所定コマンドを発行することにより取得してもよい。
なお、上述の処理において、データ応答実行指示にユーザ毎の最終送信日時が含まれている場合、実行指示判定部228は、最終送信日時の各々を、各ユーザのユーザ名401に対応する最終送信日時406の各々に格納する。データ応答実行指示に最終送信日時が含まれていない場合、実行指示判定部228は、このユーザ名401に対応する最終送信日時406の値を「NULL」としてもよい。
具体的には、例えば、図7、図8に一例を示す動作例の場合、上述のように、データ管理サーバ111-cは、データ管理サーバ111-dに、ユーザ名「user c1」、識別情報「ID_c1」、及び、要求するデータ毎のデータ名「dataA、dataB」、フィルタリング条件「cycle=20」、データを送信する残りの時間「06:00:00」等を含むデータ応答実行指示を送信している。上述のように、この時点では、どのデータ管理サーバ111も、データの収集・蓄積及び送信をしていない。従って、データ管理サーバ111-dの実行指示判定部228は、収集データテーブル231のデータ名301、収集周期304、利用者数305等として、「dataA」、「20」、「1」を格納する。また、実行指示判定部228は、上述した動作例により、自身から機器161-d1までの経路情報「AAAAA」を取得し、収集データテーブル231のデータ名301「dataA」に対応する経路情報311として格納する。さらに、実行指示判定部228は、図5に一例を示す自ネットワーク情報テーブル233から、データ名501「dataA」に対応するプロパティ502を読出し、収集データテーブル231のデータ名301「dataA」に対応するプロパティ312として格納する。さらに、データ利用者管理部223は、利用者管理情報テーブル232に新たな行を追加し、追加した行のユーザ名401、要求データ402、フィルタリング条件403、有効期間404、識別情報412等として、「user c1」、「cycle=20」、「06:00:00」、「ID_c1」等を格納する。また、実行指示判定部228は、上述した動作例により、自身からユーザ端末121-c1までの経路情報「ccc1」を取得し、利用者管理情報テーブル232のユーザ名401「user c1」に対応する経路情報411として格納する。実行指示判定部228は、「dataB」に対しても同じ処理を行なう。
なお、ここで、図7、図8に一例を示す動作例の場合、上述のように、ユーザ端末121-c1からのデータ要求を受けて、データ管理サーバ111-cが自身の収集データテーブル231、利用者管理情報テーブル232等に必要な情報を格納した後に、ユーザ端末121-c2から、ユーザ名「user c2」、識別情報「ID_c2」、及び、要求するデータ毎のデータ名「dataA、dataC」、フィルタリング条件「cycle =30、Line=X」、データを送信する残りの時間「03:30:00」等を含むデータ要求を送信し、データ管理サーバ111-dが、S1107の処理で自身を選択した場合の例を説明する。この場合、上述のように、収集データテーブル231には、データ名301「dataA」、収集周期304「20」、利用者数305「1」、データソース情報306等が格納されている。この場合、実行指示判定部228は、収集データテーブル231の、データ名301「dataA」に対応する収集周期304「20」の値と、ユーザ端末121-c2から要求された「dataA」のフィルタリング条件「cycle =30」との最大公約数「10」を取得する。実行指示判定部228は、収集データテーブル231の、データ名301「dataA」に対応する収集周期304の値を、取得した最大公約数「10」に置換え、さらに、データ名301「dataA」に対応する利用者数305の値を、新たに送信するユーザの数を加算した値「2」に置き換える。
一方、S1106の判定の結果、選択したデータ管理サーバ111が自身でない場合、実行指示判定部228は、選択したデータ管理サーバ111に、データ応答実行指示を行なう(S1108)。このデータ応答実行指示には、少なくとも、S1101で受信したデータ応答実行指示と同じ情報が含まれる。さらに、上述のS1104の処理で、メモリ202の所定領域にデータ名が格納されている場合、このデータ名のデータを収集・蓄積及び送信するための情報がさらに含まれる。この情報は、実行指示判定部228が、利用者管理情報テーブル232の各行の要求データ402のうち、メモリ202の所定領域に含まれるデータ名と一致するものが含まれているものを検索し、該当する要求データ402と、その要求データ402に対応するユーザ名401、フィルタリング条件403、有効期間404、ユーザ端末情報405、最終送信日時406等を読み出すことで取得する。また、上述のS1105の処理で、メモリ202の所定領域にユーザ端末121の識別情報が格納されている場合、この識別情報のユーザのユーザ端末121に収集・蓄積したデータを送信するための情報がさらに含まれる。この情報は、実行指示判定部228が、利用者管理情報テーブル232の各行の識別情報412のうち、メモリ202の所定領域に含まれる識別情報と一致するものが含まれているものを検索し、その識別情報412に対応するユーザ名401、要求データ402、フィルタリング条件403、有効期間404、ユーザ端末情報405、最終送信日時406等を読み出すことで取得する。なお、これらの情報をデータ応答実行指示にさらに追加して送信した場合、データ利用者管理部223、実行指示判定部228の各々は、収集データテーブル231、利用者管理情報テーブル232を更新する。そのために、例えば、データ利用者管理部223は、利用者管理情報テーブル232の各行のうち、上述の処理でデータ応答実行指示に含めたユーザ名401、要求データ402、フィルタリング条件403、有効期間404、ユーザ端末情報405(経路情報411、識別情報412)、最終送信日時406等を削除する。さらに、実行指示判定部228は、収集データテーブル231の各行のデータ名301を参照し、上述の処理で利用者管理情報テーブル232から削除した要求データ402に含まれるデータ名を検索する。実行指示判定部228は、該当するデータ名301に対応する利用者数305の値を、削除したユーザに送信していた数の分減算し、新たな値として上書き等する。この更新の結果、利用者数305が「ゼロ」となった場合、実行指示判定部228は、その利用者数305と対応するデータ名301、データソース情報306、タイムスタンプ303のうち最新の日時を、履歴管理情報テーブル234の新たに追加した行のデータ名601、データソース602、最終収集日時603として格納する。さらに、実行指示判定部228は、その利用者数305と対応するデータ名301、データ値302、タイムスタンプ303、収集周期304、利用者数305、データソース情報306等を削除する。
具体的には、例えば、図7、図8に一例を示す動作例の場合、上述のように、ユーザ端末121-b1からのデータ要求を受信したデータ管理サーバ111-bは、データ管理サーバ111-dに、ユーザ名「user b1」、識別情報「ID_b1」、及び、要求するデータ毎のデータ名「dataA、dataB、dataC」、フィルタリング条件「cycle=10」、データを送信する残りの時間「18:00:00」等を含むデータ応答実行指示を行なう。この場合、データ管理サーバ111-dの実行指示判定部228は、上述のように、S1105の処理で、データ管理サーバ111-cを選択する。上述のように、データ管理サーバ111-dの実行指示判定部228は、S1105の処理で、ユーザ端末121の識別情報「ID_c1」、「ID_c2」等を、メモリ202の所定領域等に格納している。従って、実行指示判定部228は、図4に一例を示す利用者管理情報テーブル232から、ユーザ名401「user c1」、要求データ402「dataA,dataB」、フィルタリング条件403「cycle=20」、有効期間404「05:00:30」、経路情報411「ccc1」、識別情報412「ID_c1」、最終送信日時406「2006.12.11 13:00:20」、及び、ユーザ名401「user c2」、要求データ402「dataA,dataC」、フィルタリング条件403「cycle=30、Line=X」、有効期間404「02:30:00」、経路情報411「ccc2」、識別情報412「ID_c2」、最終送信日時406「2006.12.11 13:00:00」等を読出し、データ応答実行指示にさらに含めて、データ管理サーバ111-cに送信する。さらに、データ利用者管理部223は、利用者管理情報テーブル232から、ユーザ名401「user c1」に対応付けられている情報と、ユーザ名401「user c2」に対応付けられている情報とを削除する。実行指示判定部228は、図3に一例を示す収集データテーブル231の、データ名301「dataA」に対応する利用者数305「2」から、削除したユーザの数「2」を減算する。この減算した値は「ゼロ」となる。従って、実行指示判定部228は、データ名「dataA」、このデータ名301「dataA」に対応するデータソース情報306、及び、タイムスタンプ303のうち最も新しいものを、履歴管理情報テーブル234に新たに追加した行のデータ名601、データソース情報602、最終収集日時603等として格納すると共に、収集データテーブル231のデータ名301「dataA」に対応付けられている情報を削除する。これと同様に、実行指示判定部228は、収集データテーブル231のデータ名301「dataB」、「dataC」の各々に対応するデータソース情報306、及び、タイムスタンプ303のうち最も新しいものを、履歴管理情報テーブル234に新たに追加した各行のデータ名601、データソース情報602、最終収集日時603等として格納すると共に、収集データテーブル231のデータ名301「dataB」、「dataC」の各々に対応付けられている情報を削除する。
S1108の処理で送信されたデータ応答実行指示を受信したデータ管理サーバ111は、図11を参照して説明した上述の動作を行なう。
次に、図12を参照し、データ管理サーバ111が、各機器161からデータを収集・蓄積する動作例を説明する。図12に一例を示す動作例は、例えば、所定時間毎に起動するものである。
図12において、データ管理部224は、収集データテーブル231を参照する(S1201)。次に、データ管理部224は、収集データテーブル231から、降順等により1つのデータを選択する(S1202)。次に、データ管理部224は、選択したデータの収集条件が満たされているか否か判定する(S1203)。そのために、データ管理部224は、収集データテーブル231を参照し、上述のS1202で選択したデータのデータ名301と対応するタイムスタンプ303のうち最新のもの、及び、S1202で選択したデータのデータ名301と対応する収集周期304を参照する。次に、データ管理部224は、読み出したタイムスタンプ303の日時と、読み出した収集周期304とから、前回のデータ収集・蓄積から収集周期経過したか否か判定する。そのために、データ管理部224は、現在の日時が、読み出したタイムスタンプ303の日時から、読み出した収集周期304を経過しているか否か判定する。この判定の結果、経過している場合、データ管理部224は、選択したデータの収集条件が満たされていると判定する。
S1203の判定の結果、選択したデータの収集条件が満たされている場合、データ管理部224は、選択したデータを取得し(S1204)、取得したデータを格納する(S1205)。そのために、データ管理部224は、例えば、上述のS1202で選択したデータのデータ名301と対応するデータソース情報306を参照して機器161を特定し、特定した機器161からデータを取得する。この取得技術は特に限定するものではないが、例えば、データ管理部224は、参照したデータソース情報306に含まれる経路情報311から機器161のアドレス等を取得し、取得したアドレス等宛てに、データの送信を要求するコマンド等を送信してもよい。また、例えば、データソースとなる機器161の各々は、自ネットワーク内に、自身の取得するデータ名及びデータ値等をブロードキャスト送信する。データ管理サーバ111は、各機器161によりブロードキャスト送信されたデータ名及びデータ値等のうち、取得対象となるものを選択受信することにより、データを取得してもよい。データ管理部224は、取得したデータを、上述のS1202で選択したデータのデータ名301と対応するデータ値302に追加し、さらに、おなじデータ名301と対応するタイムスタンプ303に現在の日時を追加する。
S1203の判定の結果、選択したデータの収集条件が満たされていない場合、又は、上述のS1205の処理の後、データ管理部224は、収集データテーブル231内のデータの全てを選択したか否か判定する(S1206)。
S1206の判定の結果、全てのデータを選択していない場合、データ管理部224は、上述のS1202以降の処理を再度行ない、未選択のデータを選択する。
S1206の判定の結果、全てのデータを選択している場合、データ管理部224は、処理を終了する。
次に、図13を参照し、データ管理サーバ111が、各機器161から収集・蓄積したデータを各ユーザ端末121に送信する動作例を説明する。図13に一例を示す動作例は、例えば、所定時間毎に起動するものである。
図13において、データ提供部221は、利用者管理情報テーブル232を参照する(S1301)。次に、データ提供部221は、利用者管理情報テーブル232から、降順等により1つのユーザを選択する(S1302)。次に、データ提供部221は、選択したユーザのデータ送信条件が満たされているか否か判定する(S1303)。そのために、データ提供部221は、例えば、利用者管理情報テーブル232の、上述のS1302の処理で選択したユーザのユーザ名401と対応するフィルタリング条件403及び最終送信日時406等を参照する。データ提供部221は、参照したフィルタリング条件403が送信の日時条件を含んでおり、かつ、最終送信日時406及び現在の日時のうち少なくとも一方がそのフィルタリング条件403の条件を満たしているか否か判定する。
S1303の判定の結果、選択したユーザのデータ送信条件が満たされている場合、データ提供部221は、そのユーザに送信すべきデータを読みだし(S1304)、読み出したデータを、そのユーザのユーザ端末121に送信する(S1305)。そのために、データ提供部221は、例えば、上述のS1302の処理で選択したユーザのユーザ名401と対応する要求データ402及びユーザ端末情報405等を読み出す。次に、データ提供部221は、収集データテーブル231から、読み出した要求データ402のデータ名の各々と一致するデータ名301に対応するデータ値302を読み出す。このとき、データ提供部221は、そのユーザのフィルタリング条件403がデータ条件(例えば「Line=X」等)を含む場合、その条件に合致するデータ値302のみを読み出す。データ提供部221は、読み出したデータ値302を、読み出したユーザ端末情報405の経路情報411に含まれる識別情報宛て等に送信する。さらに、データ提供部221は、利用者管理情報テーブル232の、上述のS1302の処理で選択したユーザのユーザ名401と対応する最終送信日時406を、現在の日時に更新する。
S1303の判定の結果、選択したユーザのデータ送信条件が満たされていない場合、又は、上述のS1305の処理の後、データ提供部221は、利用者管理情報テーブル232内のデータの全てを選択したか否か判定する(S1306)。
S1306の判定の結果、全てのデータを選択していない場合、データ提供部221は、上述のS1302以降の処理を再度行ない、未選択のデータを選択する。
S1306の判定の結果、全てのデータを選択している場合、データ提供部221は、処理を終了する。
次に、図14を参照し、各データ管理サーバ111が利用者管理情報テーブル232を更新する動作例を説明する。この動作例は、例えば、所定時間毎に起動するものである。
図14において、データ管理サーバ111のデータ利用者管理部223は、利用者管理情報テーブル232の、各ユーザのデータ送信の有効期限を更新する(S1401)。具体的には、例えば、図14に一例を示す動作例が時間「t」毎に起動される場合、データ利用者管理部223は、利用者管理情報テーブル232の各行の有効期間404の値から「t」を減算した値を、新たな有効期間404の値とする。次に、データ利用者管理部223は、利用者管理情報テーブル232に、データ送信の有効期限の切れたものがあるか否か判定する(S1402)。そのために、データ利用者管理部223は、例えば、利用者管理情報テーブル232の各行の有効期間404に、「ゼロ」等所定値以下のものが含まれているか否か判定する。
S1402の判定の結果、有効期限の切れたものがない場合、データ利用者管理部223は、処理を終了する。
S1402の判定の結果、有効期限の切れたものがある場合、データ利用者管理部223は、その情報を利用者管理情報テーブル232から削除する(S1403)。さらに、データ利用者管理部223は、収集データテーブル231を更新する(S1404)。そのために、例えば、まず、データ利用者管理部223は、所定値以下の有効期間404と対応付けられている要求データ402に含まれているデータ名を読み出す。次に、データ利用者管理部223は、収集データテーブル231の各行のデータ名301のうち、読み出した要求データ402に含まれるデータ名と一致するものを選択し、選択したデータ名301と対応する利用者数305の数を、「1」減算した値に置き換える。さらに、データ利用者管理部223は、利用者管理情報テーブル232の、所定値以下の有効期間404と対応付けられている情報を削除する。データ管理部224は、この処理を、所定値以下の有効期間404の各々に対し行なう。
データ利用者管理部223は、S1404の処理で更新した収集データテーブル231に、データ送信するユーザ数が「ゼロ」となったものがあるか否か判定する(S1405)。そのために、データ利用者管理部223は、収集データテーブル231の各行の利用者数305を参照し、値が「ゼロ」であるものがあるか否か判定する。
S1405の判定の結果、データ送信するユーザ数が「ゼロ」となったものがある場合、データ管理部224は、収集データテーブル231のそのデータを削除する(S1408)。そのために、データ管理部224は、収集データテーブル231の利用者数305「ゼロ」に対応するデータ名301、データソース情報306等を、履歴管理情報テーブル234のデータ名601、データソース情報602等として格納する。さらに、データ管理部224は、このデータ名301等に対応するタイムスタンプ303のうち最新のものを、履歴管理情報テーブル234の最終収集日時603として格納する。データ管理部224は、収集データテーブル231の利用者数305「ゼロ」に対応する情報を削除する。
上述のように収集データテーブル231が更新され、収集するデータに関する情報が削除される。従って、データ管理部224は、収集データテーブル231に情報が無いため、以降のデータの収集・蓄積を停止する。
次に、上述の本実施形態のシステムを適用する具体的な例を説明する。
まず、図15を参照し、本実施形態のシステムを、製造業における情報制御システムに適用する場合の例を説明する。
図15において、情報制御システムは、広域網1503を介して、拠点1501、工場1502等が相互接続されている。工場1502では、複数の生産工程により製品を生産する。ここでは、工場1502では、材料、部品、中間品を加工する「工程A」、製品を検査する「工程B」から製品を生産するものとする。
拠点1501では、データ管理サーバ111g、ユーザ端末121g、ゲートウェイサーバ141gの各々が、通信ネットワーク151gを介して接続されている。通信ネットワーク151gは、ゲートウェイサーバ141gを介して広域網1503と接続する。
工場1502には、通信ネットワーク151h、通信ネットワーク151i、通信ネットワーク151jが設置されている。通信ネットワーク151hは、広域網1503と接続する。通信ネットワーク151i、通信ネットワーク151jの各々は、通信ネットワーク151hを介して広域網1503と接続する。
通信ネットワーク151hには、データ管理サーバ111h、ユーザ端末121h、ゲートウェイサーバ141hが接続されている。通信ネットワーク151hは、ゲートウェイサーバ141hを介して広域網1503と接続する。通信ネットワーク151iには、データ管理サーバ111i、ゲートウェイサーバ141i、制御装置161iが接続されている。この制御装置161iは、「工程A」の工程に関わる情報を取得するものである。制御装置161iには、設備・機器1501iが接続される。設備・機器1501iは、「工程A」にて加工等するためのものである。ここでは、制御装置161iは、設備・機器1501iを制御する。さらに、制御装置161iは、設備・機器1501iの稼働実績、制御実績等を送信するものとする。通信ネットワーク151iは、ゲートウェイサーバ141iを介して通信ネットワーク151hと接続する。通信ネットワーク151jには、データ管理サーバ111j、ゲートウェイサーバ141j、制御装置161jが接続されている。この制御装置161jは、「工程B」の工程に関わる情報を取得するものである。制御装置161jには、設備・機器1501jが接続される。設備・機器1501jは、「工程B」にて検査等をするためのものである。ここでは、制御装置161jは、設備・機器1501jの稼動実績、品質検査結果、測定値等を送信するものとする。通信ネットワーク151jは、ゲートウェイサーバ141jを介して通信ネットワーク151hと接続する。
図15に一例を示すシステムでは、例えば、ユーザgは、資産管理の業務として、拠点1501のユーザ端末121gを用いて、「工程A」で使用する設備・機器1501iの稼働実績であるデータ名「dataE」、「工程B」で使用する設備・機器1501jの稼動実績であるデータ名「dataF」の各々のデータ値を取得するものとする。この業務は、ユーザgの定型的な業務である。また、ユーザhは、品質維持のための製品追跡の業務として、「A工程」で使用する設備・機器1501iの稼働実績であるデータ名「dataE」、「B工程」で使用する設備・機器1501jの品質検査結果であるデータ名「dataG」の各々のデータ値を取得するものとする。この業務は、ユーザhの、定型的な業務ではなく、必要なときのみに行なうものである。
ユーザ端末121gは、「工程A」で使用する設備・機器1501iの稼働実績を示すデータ名「dataE」、「工程B」で使用する設備・機器1501jの稼動実績を示すデータ名「dataF」を含むデータ要求をデータ管理サーバ111gに送信する。データ管理サーバ111gは、上述の動作を行う。これにより、データ管理サーバ111g、データ管理サーバ111h、データ管理サーバ111i、データ管理サーバ111jのうち1つが、制御装置161i、制御装置161jの各々から、「工程A」で使用する設備・機器1501iの稼働実績のデータ値と、「工程B」で使用する設備・機器1501jの稼動実績のデータ値とを取得し、ユーザ端末121gに送信する。
ユーザ端末121hは、「工程A」で使用する設備・機器1501iの稼働実績を示すデータ名「dataE」、「工程B」で使用する設備・機器1501jの品質検査結果を示すデータ名「dataG」を含むデータ要求をデータ管理サーバ111hに送信する。データ管理サーバ111hは、上述の動作を行う。これにより、データ管理サーバ111h、データ管理サーバ111h、データ管理サーバ111i、データ管理サーバ111jのうち1つが、制御装置161i、制御装置161jの各々から、「工程A」で使用する設備・機器1501iの稼働実績のデータ値と、「工程B」で使用する設備・機器1501jの品質検査結果のデータ値とを取得し、ユーザ端末121hに送信する。
このように、本実施形態のシステムでは、定型業務のデータ取得と、定型業務でないデータ取得とを、同一の環境で同時に実現することができる。
次に、図16を参照し、本実施形態のシステムを、走行する列車と線路沿いに設置された無線局の間で無線通信を行う車上-地上間通信システムに適用した場合の例を説明する。このシステムは、列車の乗客が要求したデータを収集・蓄積し、その情報をサービスとして提供するものである。
図16において、システムは、拠点1601、拠点1602、中継局1603、中継局1604、複数の無線基地局1611、列車1605、通信網1606等がある。
無線基地局1611-1、無線基地局1611-2、無線基地局1611-3、無線基地局1611-4の各々は、列車1605の走行する線路に沿って一定間隔で設置される。無線基地局1611-1、無線基地局1611-2、無線基地局1611-3、無線基地局1611-4の各々は、中継局1603、中継局1604の各々と接続される。
列車1605には、機器161-o、無線通信装置1621等が搭載される。また、列車1605には、ユーザ端末121-oを有するユーザoが乗車する。機器161-oは、例えば、列車1605の速度等を取得する。ユーザ端末121-o、機器161-oは、無線通信装置1621と接続する。無線通信装置1621は、通信可能な領域内の無線基地局1611と接続する。
拠点1601は、データ管理サーバ111-k1、ユーザ端末121-k、アプリケーションサーバ131-k、ゲートウェイサーバ141-k、通信ネットワーク151-k等を有する。データ管理サーバ111-k1、ユーザ端末121-k、アプリケーションサーバ131-k、ゲートウェイサーバ141-k等は通信ネットワーク151-kと接続する。また、ゲートウェイサーバ141-kは、通信網1606と接続する。拠点1602は、データ管理サーバ111-l、ユーザ端末121-l、ゲートウェイサーバ141-l、通信ネットワーク151-l等を有する。データ管理サーバ111-l、ユーザ端末121-l、ゲートウェイサーバ141-l等は通信ネットワーク151-lと接続する。また、ゲートウェイサーバ141-lは、通信網1606と接続する。
データ管理サーバ111-k1、データ管理サーバ111-k2、データ管理サーバ111-lの各々は、列車1605の機器161-oから取得したデータを蓄積する。
中継局1603は、データ管理サーバ111m、ゲートウェイサーバ141m、通信ネットワーク151m等を有する。データ管理サーバ111m、ゲートウェイサーバ141m等は互いに接続する。また、ゲートウェイサーバ141mは、通信網1606と接続する。中継局1604は、データ管理サーバ111n、ゲートウェイサーバ141n、通信ネットワーク151n等を有する。データ管理サーバ111n、ゲートウェイサーバ141n等は互いに接続する。また、ゲートウェイサーバ141nは、通信網1606と接続する。
データ管理サーバ111m、データ管理サーバ111nの各々は、列車1605の機器161-oから取得したデータを蓄積する。
なお、中継局1603、中継局1604の各々は、列車1605の走行する線路に沿って設置される。
ユーザは、ユーザ端末121に、データ要求の送信を指示する。例えば、ユーザk、ユーザlの各々は、ユーザ端末121-k、ユーザ端末121-lの各々に、機器161-oの取得するデータを要求する。ユーザ端末121-k、ユーザ端末121-lの各々は、要求されたデータのデータ名を含むデータ要求をデータ管理サーバ111-k、データ管理サーバ111-lの各々に送信する。また、例えば、ユーザoは、ユーザ端末121-oに、データ要求の送信を指示する。ユーザ端末121-oは、要求されたデータのデータ名を含むデータ要求を無線通信装置1621に送信する。無線通信装置1621は、無線基地局1611-1、無線基地局1611-2、無線基地局1611-3、無線基地局1611-4等のうち、通信範囲内にあるものと通信し、このデータ要求を、データ管理サーバ111-m、データ管理サーバ111-nのうち一方に送信する。即ち、無線通信装置1621は、無線基地局1611-1又は無線基地局1611-2と通信した場合、データ要求をデータ管理サーバ111-mに送信する。また、無線通信装置1621は、無線基地局1611-3又は無線基地局1611-4と通信した場合、データ要求をデータ管理サーバ111-nに送信する。
データ管理サーバ111の各々は、受信したデータ要求に対し、上述の処理を行なう。この処理は上述とおなじであるので省略する。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
例えば、上述の実施形態では、各通信ネットワークには1つのデータ管理サーバが接続されているものとするが、これに限られるわけではない。各通信ネットワークに接続されるデータ管理サーバの数は任意である。
また、例えば、上述の実施形態では、データ要求は、同一の通信ネットワークと接続されているデータ管理サーバが受信するものとしたが、これに限られるわけではない。データ要求を受信するデータ管理サーバは任意である。
なお、このデータ要求では、1つのデータ要求で複数のデータを要求してもよい。また、データ毎に、異なる収集条件、フィルタリング条件等を設定してもよい。その場合、データ要求には、フィルタリング条件、データを送信する残りの時間等が含まれる。データ管理サーバは、異なるフィルタリング条件毎等に、上述の処理を行なうと良い。
また、例えば、データ応答実行指示には、転送回数情報をさらに含めても良い。各データ管理サーバ111は、S1108の処理でデータ応答実行指示を転送する度に、この転送回数情報に「1」を加算して送信し、自身の受信したデータ応答実行指示の転送回数情報が所定数以上である場合、上述のS1103〜S1106等の処理を行なわず、自身がデータ収集・蓄積及び送信処理を行なうものとして、S1107等の処理を行なっても良い。
111:データ管理サーバ、121:ユーザ端末、131:アプリケーションサーバ、141:ゲートウェイサーバ、151:通信ネットワーク、201:演算装置、202:メモリ、203:2次記憶装置、204:入力装置、205:出力装置、206:通信装置、211:ミドルウェア、221:データ提供部、222:受付部、223:データ利用者管理部、224:データ管理部、225:通信制御部、226:データ要求受付部、227:応答処理部、228:実行指示判定部、231:収集データテーブル、232:利用者管理情報テーブル、233:自ネットワーク情報テーブル、234:履歴管理情報テーブル、161:機器