以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(第1の実施の形態)
本発明の第1の実施の形態としてのデータストリーム処理システム1の構成を図1に示す。図1において、データストリーム処理システム1は、管理装置10と、クライアント装置20と、ノード装置30a〜30c(以降、総称してノード装置30ともいう)を含む。
管理装置10は、データストリーム処理システム1において行われるデータストリーム処理に関する各種管理情報を記憶するとともに、その照会に対する応答等の管理動作を行う装置である。例えば、管理装置10は、ネットワークを介して他の装置から各種管理情報の照会を受け付けるウェブサービスを提供する装置であってもよい。
ノード装置30は、データストリームに対してリアルタイムに任意のクエリを実行可能な装置である。各ノード装置30には、データストリーム処理システム1の外部のデータストリーム出力装置90a〜90c(以降、総称してデータストリーム出力装置90とも記載する)から、それぞれデータストリームが入力される。データストリーム出力装置90は、1つ以上の属性を有するタプルを、時間の経過に伴って逐次生成して出力する。例えば、データストリームは、変動する株価データ、各種センサにより継続的に取得される測定値データ、車両等の移動体の位置データ等を表すものであってもよい。また、このようなデータストリームの情報の種類を、以降、情報種というものとする。なお、各装置30に入力されるデータストリームの情報種は、互いに異なるものであってもよいし、少なくとも一部が同一のものであってもよい。また、各ノード装置30に入力されるデータストリームの情報種およびその属性は、あらかじめ設定されているものとする。本実施の形態では、ノード装置30aに情報種aのデータストリームが入力され、ノード装置30bに情報種bのデータストリームが入力され、ノード装置30cに情報種cのデータストリームが入力されるものとして説明を行う。
クライアント装置20は、ノード装置30に入力されるデータストリームに対する任意のクエリを入力する装置である。ここで、クエリとは、例えば、CQL(Continuous Query Language)に従って記載された処理であってもよい。また、クエリは、データストリームに対する問い合わせに適用可能なその他の問い合わせ言語に従って記載された処理であってもよい。また、このようなクエリにおいて入力として用いられる情報は、データストリームであってもよいし、他のクエリにより出力される情報であってもよい。また、このようなクエリから出力される情報は、データストリームであってもよいし、データストリームの処理において生成される中間的な情報であってもよい。このようなクエリによって出力される情報も、1つ以上の属性を有するタプルからなる。また、このようなクエリによって出力される情報の種類も、情報種というものとする。
また、管理装置10、クライアント装置20およびノード装置30は、インターネット、LAN(Local Area Network)、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して互いに通信可能に接続されている。なお、図1において、1つの管理装置10、1つのクライアント装置20および3つのノード装置30を示したが、本発明のデータストリーム処理システムが備える各装置の数を限定するものではない。
次に、データストリーム処理システム1を構成する各装置の機能ブロックを図2に示す。図2において、管理装置10は、構成情報記憶部11と、クエリ定義情報記憶部12と、構成情報予測部13と、構成情報送信部14とを備える。また、クライアント装置20は、情報種一覧取得部21と、クエリ入力部22と、クエリ送信部23と、クエリ処理結果出力部24とを備える。また、ノード装置30は、クエリ実行部31と、クエリ処理結果送信部32とを備える。ここで、管理装置10およびノード装置30は、CPU(Central Processing Unit)と、RAM(Random Access Memory)と、ROM(Read Only Memory)と、ハードディスク等の記憶装置と、ネットワークインタフェースとを備えたコンピュータ装置によって構成されている。クライアント装置20は、CPUと、RAMと、ROMと、ハードディスク等の記憶装置と、ネットワークインタフェースと、入力装置と、表示装置とを備えたコンピュータ装置によって構成されている。また、構成情報記憶部11およびクエリ定義情報記憶部12は、記憶装置によって構成される。また、構成情報予測部13は、ROMまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをRAMに読み込んで実行するCPUによって構成される。また、構成情報送信部14は、ネットワークインタフェースと、ROMまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをRAMに読み込んで実行するCPUとによって構成される。また、情報種一覧取得部21、クエリ送信部23およびクエリ処理結果出力部24は、ネットワークインタフェースと、ROMまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをRAMに読み込んで実行するCPUとによって構成される。また、クエリ入力部22は、入力装置と、表示装置と、ROMまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをRAMに読み込んで実行するCPUとによって構成される。また、クエリ実行部31およびクエリ処理結果送信部32は、ネットワークインタフェースと、ROMまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをRAMに読み込んで実行するCPUとによって構成される。なお、各装置の各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
まず、管理装置10の各機能ブロックについて説明する。
構成情報記憶部11は、クエリによって得られる情報の種類を識別する情報種と、その情報種の情報が有する属性を表す属性情報と、その情報種の情報を出力可能なノード装置30を表すノード情報と、その情報種の情報を得るためのクエリと、を含む構成情報を記憶する。構成情報記憶部11に記憶される構成情報の一例を図3に示す。図3において、各行は、構成情報を示す。例えば、1行目の構成情報によれば、情報種aの情報が有する属性は、α、β、γである。この場合、情報種aの情報は、属性αの値、属性βの値、および、属性γの値を含むタプルからなる。また、情報種aの情報を出力可能なノード装置30は、ノード装置30aである。また、情報種aの情報は、情報種aのデータストリームをそのまま出力するクエリ(そのようなクエリを単にクエリaとも記載する)によって得られる。また、4行目の構成情報によれば、情報種dの情報は、βおよびζの属性を有している。また、情報種dの情報は、ノード装置30aによって出力可能である。また、情報種dの情報は、情報種aの情報に対してF(x)で表される演算式を適用したクエリF(a)により得られる。
クエリ定義情報記憶部12は、クエリの種類を識別するクエリ種と、クエリの演算式と、その演算式で用いられる情報の属性を表す入力属性情報と、その演算式により出力される情報の属性を表す出力属性情報と、を含むクエリ定義情報を記憶する。クエリ定義情報記憶部12に記憶されるクエリ定義情報の一例を図4に示す。図4において、各行は、クエリ定義情報を示す。例えば、1行目のクエリ定義情報によれば、クエリ種Fのクエリの演算式は、F(x)で表され、その入力属性情報はαおよびβであり、出力属性情報はβおよびζである。つまり、クエリ種Fのクエリは、属性αおよびβを少なくとも有する情報に対して、属性αおよびβを用いた演算を行うことにより、属性βおよびζを有する情報を出力するものである。例えば、クエリ種Fのクエリは、属性αおよびβを有する情報に対して、αの値が所定範囲に含まれるものにおけるβの平均値、および、該当するデータのカウント数を求める演算を行うものであってもよい。この場合、このクエリ種Fから出力される情報は、βおよびζ(カウント数)を有することになる。
構成情報予測部13は、構成情報記憶部11およびクエリ定義情報記憶部12にそれぞれ記憶された情報に基づいて、新たな構成情報の予測処理を行う。具体的には、構成情報予測部13は、クエリ定義情報記憶部12に記憶されたクエリ定義情報のうち、その入力属性情報が、構成情報記憶部11に記憶された構成情報の属性情報に含まれるものがあるか否かを判断する。そして、属性情報に入力属性情報を含む構成情報がある場合、構成情報予測部13は、その入力属性情報を有するクエリ定義情報が示す演算式の入力に、その構成情報が示す情報種の情報を適用したクエリにより得られることが予測される新たな情報種に関する構成情報を生成する。ここで、構成情報予測部13は、新たな構成情報として、新たな情報種と、新たな情報種の情報が有する属性として該クエリ定義情報に含まれる出力属性情報と、予測したクエリと、該構成情報に含まれるノード情報とを含む構成情報を生成すればよい。そして、構成情報予測部13は、生成した構成情報を構成情報記憶部11に登録する。
構成情報送信部14は、構成情報記憶部11に記憶された構成情報が示す情報種の一覧を、クライアント装置20に対して送信する。このとき、構成情報送信部14は、情報種の一覧に、その情報種の情報が有する属性情報を含めてもよい。
また、構成情報送信部14は、指定された情報種の情報を出力可能なノード装置30を照会する情報をクライアント装置20から受信する。また、構成情報送信部14は、構成情報記憶部11を参照することにより、照会された情報種を出力可能なノード装置30を識別するノード情報を、照会元のクライアント装置20に対して送信する。
また、構成情報送信部14は、指定された情報種を得るためのクエリを照会する情報をノード装置30から受信する。また、構成情報送信部14は、構成情報記憶部11を参照することにより、照会された情報種を得るためのクエリを、照会元のノード装置30に対して送信する。
次に、クライアント装置20の各機能ブロックについて説明する。
情報種一覧取得部21は、管理装置10に照会することにより、構成情報記憶部11に登録済みの構成情報が示す情報種の一覧を取得する。
クエリ入力部22は、情報種の一覧を表示装置等に出力することにより、一覧に含まれる情報種を用いて入力されるクエリを、入力装置を介して取得する。その他、クエリ入力部22は、表示した一覧に含まれる情報種を用いずに新たに入力されるクエリを取得してもよい。
クエリ送信部23は、入力されたクエリにおいて用いられる情報の情報種を出力可能なノード装置30に対して、このクエリを送信する。ここで、クエリにおいて用いられる情報の情報種について説明する。例えば、「情報種aのデータストリームから、属性αの値が所定範囲のものを抽出する」というクエリであれば、このクエリにおいて用いられる情報の情報種はaである。また、このとき、クエリ送信部23は、送信先となるノード装置30を決定するため、入力されたクエリにおいて用いられる情報の情報種を特定し、特定した情報種の情報を出力可能なノード装置30を照会する情報を、管理装置10に対して送信すればよい。
クエリ処理結果出力部24は、入力されたクエリの送信先のノード装置30から、その処理結果を受信することにより出力する。
次に、ノード装置30の各機能ブロックについて説明する。
クエリ実行部31は、クライアント装置20からクエリを受信すると、受信したクエリを実行する。このとき、クエリ実行部31は、受信したクエリにおいて用いられる情報の情報種を得るためのクエリを照会する情報を、管理装置10に対して送信する。そして、クエリ実行部31は、そのような情報の情報種を得るためのクエリを管理装置10から取得し、取得したクエリを実行して得られる情報を用いて、クライアント装置20から受信したクエリを実行する。
クエリ処理結果送信部32は、クエリ実行部31により実行されたクエリの処理結果を、クライアント装置20に送信する。
以上のように構成されたデータストリーム処理システム1の動作について、図面を参照して説明する。なお、管理装置10の構成情報記憶部11およびクエリ定義情報記憶部12には、図3および図4に一例を示したような情報が既に記憶されているものとする。
まず、データストリーム処理システム1のクエリ実行動作を図5に示す。
図5において、まず、クライアント装置20の情報種一覧取得部21は、管理装置10に対して、情報種の一覧を要求する情報を送信する(ステップS1)。
次に、管理装置10の構成情報送信部14は、構成情報記憶部11に記憶されている構成情報が示す情報種一覧を、クライアント装置20に送信する(ステップS2)。また、前述のように、構成情報送信部14は、このような情報種一覧に、各情報種の情報が有する属性情報を含めてもよい。例えば、構成情報記憶部11に図3に示した構成情報が記憶されていれば、構成情報送信部14は、「情報種a(属性α、β、γ)」、「情報種b(属性α、β、δ)」、「情報種c(属性α、ε)」、「情報種d(属性β、ζ)」の一覧を送信してもよい。
次に、クライアント装置20のクエリ入力部22は、ステップS2で取得された情報種の一覧を、表示装置等に出力する(ステップS3)。
次に、クエリ入力部22は、出力した一覧に含まれる情報種を用いて入力されるクエリを、入力装置を介して取得する(ステップS4)。例えば、情報種dを用いたクエリが入力されたものとする。
次に、クエリ送信部23は、入力されたクエリにおいて用いられている情報種を特定し、特定した情報種の情報を出力可能なノード装置30を照会する情報を、管理装置10に対して送信する(ステップS5)。例えば、クエリ送信部23は、情報種dの情報を出力可能なノード装置30を照会する情報を、管理装置10に対して送信すればよい。
次に、管理装置10の構成情報送信部14は、ステップS5で照会された情報種を出力可能なノード装置30を構成情報記憶部11より取得し、そのノード情報をクライアント装置20に送信する(ステップS6)。例えば、構成情報送信部14は、情報種dの情報を出力可能なノード装置30aを表すノード情報を、クライアント装置20に対して送信する。
次に、クライアント装置20のクエリ送信部23は、ステップS6で受信したノード情報が示すノード装置30へ、ステップS4で入力されたクエリを送信する(ステップS7)。例えば、クエリ送信部23は、情報種dの情報を出力可能なノード装置30aに対して、入力されたクエリを送信する。
次に、ノード装置30のクエリ実行部31は、受信したクエリで用いられる情報種を得るためのクエリを照会する情報を、管理装置10に対して送信する(ステップS8)。
管理装置10の構成情報送信部14は、ステップS8で照会された情報種を得るためのクエリをクエリ定義情報記憶部12より取得し、そのクエリを照会元のノード装置30に対して送信する(ステップS9)。例えば、情報種dを得るためのクエリを照会する情報をノード装置30aから受信した場合、構成情報送信部14は、クエリF(a)を、ノード装置30aに対して送信する。
次に、ノード装置30のクエリ実行部31は、ステップS9で管理装置10から取得したクエリを実行して得られる情報種を用いて、ステップS7でクライアント装置20から受信したクエリを実行する(ステップS10)。
次に、クエリ処理結果送信部32は、ステップS10の処理結果を、クライアント装置20に対して送信する(ステップS11)。
次に、クライアント装置20のクエリ処理結果出力部24は、受信した処理結果を出力する(ステップS12)。
以上で、データストリーム処理システム1は、クエリ実行動作を終了する。
次に、データストリーム処理システム1の構成情報予測動作を図6に示す。
図6では、管理装置10の構成情報予測部13は、クエリ定義情報記憶部12に記憶された各クエリ定義情報について、以下のステップS21〜S26の処理を行う。
ここでは、まず、構成情報予測部13は、このクエリ定義情報の入力属性情報を含む属性情報を有する情報種の構成情報を、構成情報記憶部11から検索する(ステップS21)。例えば、構成情報予測部13は、クエリ種Fの入力属性情報「α、β」を含む属性情報を有する構成情報を、構成情報記憶部11から検索し、情報種aおよび情報種bの構成情報を得る。
ここで、そのような情報種の構成情報がなければ(ステップS22でNo)、構成情報予測部13は、このクエリ定義情報についての処理を終了する。
一方、そのような構成情報がある場合(ステップS22でYes)、構成情報予測部13は、得られた各構成情報について、以下のステップS23〜S26の処理を行う。例えば、構成情報予測部13は、情報種aおよび情報種bの各構成情報について、以下の処理を行う。
ここでは、構成情報予測部13は、この構成情報が示す情報種の情報を、このクエリ定義情報の演算式に適用したクエリを生成する(ステップS23)。例えば、構成情報予測部13は、このクエリ定義情報の演算式F(x)に、この情報種aを適用したクエリF(a)を生成する。
ここで、生成したクエリによって得られる情報種に関する構成情報が、既に登録されている場合(ステップS24でYes)、構成情報予測部13は、この構成情報に関する処理を終了する。例えば、クエリF(a)によって得られる情報種dの構成情報は既に登録されているので、構成情報予測部13は、この構成情報に関する処理を終了する。
一方、生成したクエリによって得られる情報種に関する構成情報が、未だ登録されていない場合(ステップS24でNo)、構成情報予測部13は、このクエリによって得られる新たな情報種の構成情報を生成する(ステップS25)。例えば、情報種bについてステップS23が実行されることによりクエリF(b)が生成されたとする。この場合、クエリF(b)から得られる情報種に関する構成情報は、未登録である。そこで、構成情報予測部13は、このクエリF(b)によって得られる情報の種類を表す新たな情報種(例えば、情報種e)を新規に生成する。また、構成情報予測部13は、情報種eの情報が有する属性情報として、このクエリ定義情報の出力属性情報(β、ζ)を得る。また、構成情報予測部13は、情報種eの情報を出力可能なノード装置30として、このクエリF(b)で用いられている情報種bを出力可能なノード装置30bを得る。そして、構成情報予測部13は、情報種eと、ノード装置30bと、クエリF(b)と、属性情報(β、ζ)とを対応付けた構成情報を生成すればよい。
次に、構成情報予測部13は、生成した構成情報を、構成情報記憶部11に登録する(ステップS26)。
以上で、データストリーム処理システム1は、構成情報予測動作を終了する。
このような構成情報予測動作後に、データストリーム処理システム1が、図5に示したクエリ入力から実行までの動作を行うと、クライアント装置20において提示可能な情報種が増加していることになる。
次に、本発明の第1の実施の形態の効果について述べる。
本発明の第1の実施の形態としてのデータストリーム処理システムは、ユーザによるクエリの入力を支援するためのより有効でより豊富な情報を提示することができる。
その理由は、構成情報記憶部が、クエリによって得られる情報の情報種について、その情報種が有する属性情報を記憶しておき、クエリ定義情報記憶部が、クエリについてその入力となる属性情報と、出力となる属性情報とを記憶しておき、構成情報予測部が、クエリ定義情報の入力属性情報をその属性情報に含む構成情報がある場合に、そのクエリ定義情報の演算式に、その構成情報が示す情報種を適用したクエリにより得られる新たな情報種を予測するからである。このように、本実施の形態としてのデータストリーム処理システムは、既存のクエリの演算式に既存の情報種を適用して新たなクエリを予測する際に、その属性情報も考慮している。このように予測される新規のクエリは、単に既存のクエリの演算式に既存の情報種を適用して生成されるクエリに比べて、より実行可能性が高く、かつ、より有効性の高いものとなる。そして、本発明の第1の実施の形態としてのデータストリーム処理システムは、このように予測されたクエリにより得られる情報種も含む情報種の一覧を、クライアント装置において提示する。これにより、本発明の第1の実施の形態としてのデータストリーム処理システムは、既存のクエリに基づいて、実行可能性の高い未知のクエリを予測し、そのように予測したクエリによって得られることが予測される情報種をユーザに提示することができる。その結果、本実施の形態としてのデータストリーム処理システムは、ユーザによるクエリの入力に際して、クエリで用いることが可能な情報種として、実行済みの情報種からだけではユーザにとって容易に想到できないような情報種を含む、より多様な情報種を提示することになる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
本発明の第2の実施の形態としてのデータストリーム処理システム4の構成を、図7に示す。図7において、データストリーム処理システム4は、管理装置40と、クライアント装置50と、ノード装置60a〜60c(以降、総称してノード装置60ともいう)を含む。本実施形態では、ノード装置60aに情報種aのデータストリームが入力され、ノード装置60bに情報種bのデータストリームが入力され、ノード装置60cに情報種cのデータストリームが入力されるものとして説明を行う。また、管理装置40、クライアント装置50およびノード装置60は、本発明の第1の実施の形態における各装置と同様に、ネットワークを介して互いに通信可能に接続されている。なお、図7に示した各装置の数は、本発明のデータストリーム処理システムが備える各装置の数を限定するものではない。
次に、データストリーム処理システム4を構成する各装置の機能ブロックを図8に示す。図8において、管理装置40は、本発明の第1の実施の形態としての管理装置10に対して、クエリ定義情報記憶部12に替えてクエリ定義情報記憶部42と、構成情報予測部13に替えて構成情報予測部43と、構成情報送信部14に替えて構成情報送信部44とを備え、さらに、構成情報登録部45と、クエリ定義情報登録部46とを備える点が異なる。また、クライアント装置50は、本発明の第1の実施の形態としてのクライアント装置20に対して、クエリ送信部23に替えてクエリ送信部53を備え、さらに、クエリ定義情報登録要求部55を備える点が異なる。また、ノード装置60は、本発明の第1の実施の形態としてのノード装置30に対して、クエリ実行部31に替えてクエリ実行部61と、クエリ処理結果送信部32に替えてクエリ処理結果送信部62とを備え、さらに、構成情報登録要求部63を備える点が異なる。また、構成情報登録部45と、クエリ定義情報登録部46と、クエリ定義情報登録要求部55と、構成情報登録要求部63とは、それぞれ、ネットワークインタフェースと、ROMまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをRAMに読み込んで実行するCPUとによって構成される。なお、各装置の各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
まず、管理装置40の各機能ブロックについて説明する。
クエリ定義情報記憶部42は、本発明の第1の実施の形態のクエリ定義情報記憶部12と同様に、クエリ定義情報を記憶する。ただし、クエリ定義情報記憶部42に記憶されるクエリ定義情報は、1つ以上の入力属性情報を含む点が、本発明の第1の実施の形態におけるクエリ定義情報に対して異なる。具体的には、n(nは1以上の整数)種類の情報種が入力として用いられるクエリに関するクエリ定義情報は、クエリにおいて利用されている1つ目の情報種の属性を入力属性情報1として含み、2つ目の情報種の属性を入力属性情報2として含み、n個目の情報種の属性を入力属性情報nとして含む。
構成情報予測部43は、本発明の第1の実施の形態の構成情報予測部13と同様の予測処理を実行する。ただし、クエリ定義情報記憶部42に記憶されたクエリ定義情報のうち、複数の入力属性情報が含まれるものについては、それぞれの入力属性情報について、その入力属性情報を属性情報にそれぞれ含む複数の構成情報が構成情報記憶部11に記憶されているか否かを検索する。そして、そのような複数の構成情報が検索された場合に、構成情報予測部43は、該クエリ定義情報が示す演算式の入力として、検索された複数の構成情報がそれぞれ示す情報種の情報を適用したクエリにより得られることが予測される新たな情報種に関する構成情報を生成する。
また、構成情報予測部43は、新たな情報種の予測処理を所定のタイミング毎に繰り返し実行する。
構成情報送信部44は、指定された情報種を出力可能なノード装置60を照会する情報を、クライアント装置50からだけでなく、ノード装置60からも受信する点が、本発明の第1の実施の形態としての構成情報送信部14に対して異なる。ノード装置60からそのような情報を受信した場合、構成情報送信部44は、照会された情報種の情報を出力可能なノード装置60のノード情報を、照会元のノード装置60に送信する。
構成情報登録部45は、外部から構成情報の登録を要求する情報(構成情報登録要求)を受信すると、新たな構成情報を構成情報記憶部11に登録する。具体的には、構成情報登録部45は、ノード装置60から、実行済みのクエリを表す情報を含む構成情報登録要求を受信する。そして、構成情報登録部45は、構成情報登録要求に含まれるクエリによって得られる情報の種類を識別する情報種を新たに生成する。そして、構成情報登録部45は、新たな情報種の属性情報として、そのクエリの種類を識別するクエリ種のクエリ定義情報に含まれる出力属性情報を、クエリ定義情報記憶部42から取得する。そして、構成情報登録部45は、新たな情報種の情報を出力可能なノード装置60として、構成情報登録要求の送信元のノード装置60を得る。このようにして、構成情報登録部45は、新たな情報種と、その情報種を出力可能なノード装置60のノード情報と、その情報種を得るためのクエリと、新たな情報種の属性情報とを含む構成情報を、新たに構成情報記憶部11に登録する。
クエリ定義情報登録部46は、外部からクエリ定義情報の登録を要求する情報(クエリ定義情報登録要求)を受信すると、新たなクエリ定義情報をクエリ定義情報記憶部42に登録する。具体的には、クエリ定義情報登録部46は、入力されたクエリを表す情報を含むクエリ定義情報登録要求を受信する。そして、クエリ定義情報登録部46は、クエリ定義情報登録要求に含まれるクエリを解析することにより、その演算式を得る。また、クエリ定義情報登録部46は、この演算式が、既にクエリ定義情報記憶部42に記憶されたものでなければ、この演算式で表されるクエリの種別を識別する新たなクエリ種を生成する。また、クエリ定義情報登録部46は、演算式で用いられている属性(入力属性情報)を得る。また、クエリ定義情報登録部46は、演算式で用いられている入力属性情報および演算子の種類に基づいて、出力される情報の属性(出力属性情報)を得る。このようにして、クエリ定義情報登録部46は、新たなクエリ種と、演算式と、入力属性情報と、出力属性情報とを対応付けたクエリ定義情報を、クエリ定義情報記憶部42に登録する。
例えば、クエリ定義情報登録要求にクエリF(a)が含まれる場合を想定する。また、情報種aは、属性α、β、γを有するものとする。このとき、演算式F(x)において、情報種aが有する属性α、β、γのうち、αおよびβが用いられていたとする。また、演算式F(x)において、所定時間単位のβの最大値を求める演算子と、所定時間単位のデータのカウント数を求める演算子が用いられていたとする。この場合、クエリ定義情報登録部46は、クエリ種Fと、演算子F(x)と、入力属性情報(α、β)と、出力属性情報(β、ζ)とを対応付けたクエリ定義情報を、クエリ定義情報記憶部42に登録すればよい。
次に、クライアント装置50の各機能ブロックについて説明する。
クエリ送信部53は、クエリ入力部22に入力されたクエリにおいて複数の情報種の情報が用いられているとき、いずれかの情報種の情報を出力可能なノード装置60に対して、入力されたクエリを送信する。このとき、クエリ送信部53は、入力されたクエリにおいて用いられているいずれかの情報種を特定し、特定した情報種の情報を出力可能なノード装置60を照会する情報を管理装置40に送信すればよい。
クエリ定義情報登録要求部55は、クエリ入力部22に入力されたクエリを表す情報を含むクエリ定義情報登録要求を、管理装置40に対して送信する。
次に、ノード装置60の各機能ブロックについて説明する。
クエリ実行部61は、他の装置からクエリを受信すると、受信したクエリにおいて用いられている各情報種の情報について、それぞれを出力可能なノード装置60を照会する情報、および、それぞれを得るためのクエリを照会する情報を、管理装置40に送信する。そして、クエリ実行部61は、各情報種の情報のうち、自装置で出力可能なものに関するクエリを実行することにより、その情報種の情報を取得する。また、クエリ実行部61は、自装置で出力可能でない情報種を得るためのクエリを、該情報種の情報を出力可能な他のノード装置60に対して送信することにより、その処理結果を取得する。このようにして、クエリ実行部61は、他の装置から受信したクエリにおいて用いられている各情報種の情報を取得する。そして、クエリ実行部61は、各情報種の情報を用いて、前述の他の装置から受信したクエリを実行する。
クエリ処理結果送信部62は、クエリ実行部61によって実行されたクエリの処理結果を、クエリ実行部61によって受信されたクエリの送信元の装置に送信する。
構成情報登録要求部63は、クエリ実行部61によって実行されたクエリを表す情報を含む構成情報登録要求を、管理装置40に送信する。
また、構成情報登録要求部63は、データストリーム出力装置90から自装置に入力されるデータストリームに関する構成情報の登録を要求する構成情報登録要求を、管理装置40に送信するようにしてもよい。
以上のように構成されたデータストリーム処理システム4の動作について、図面を参照して説明する。
まず、データストリーム処理システム4の初期の構成情報登録動作を、図9に示す。なお、データストリーム処理システム4は、ノード装置60が初めて管理装置40に接続されたときや、ノード装置60に入力されるデータストリームの種類が変更されたときに、以下の動作を実行するものとする。
図9では、まず、ノード装置60の構成情報登録要求部63は、自装置に入力されるデータストリームの情報種および属性情報を得る(ステップS31)。
次に、構成情報登録要求部63は、ステップS31で取得した情報種および属性情報を含む構成情報登録要求を、管理装置40に対して送信する(ステップS32)。
次に、構成情報登録要求を受信した管理装置40の構成情報登録部45は、新たな構成情報を登録する(ステップS33)。具体的には、構成情報登録部45は、構成情報登録要求に含まれる情報種と、属性情報と、入力される情報をそのまま出力するクエリと、構成情報登録要求の送信元のノード装置60のノード情報とを含む構成情報を、構成情報記憶部11に登録すればよい。
以上で、データストリーム処理システム4は、初期の構成情報登録動作を終了する。
次に、データストリーム処理システム4のクエリ入力から実行までの動作を、図10に示す。
図10では、まず、クライアント装置50は、ステップS1〜S4まで本発明の第1の実施の形態におけるクライアント装置20と同様に動作して、入力されたクエリを得る。
次に、クエリ定義情報登録要求部55は、ステップS4で得られたクエリを、クエリ定義情報登録要求に含めて、管理装置40に対して送信する(ステップS41)。
次に、管理装置40のクエリ定義情報登録部46は、受信したクエリ定義情報登録要求に応じて、新たなクエリ定義情報をクエリ定義情報記憶部42に登録する(ステップS42)。このステップの詳細については後述する。
次に、クエリ送信部53は、入力されたクエリにおいて用いられているいずれかの情報種を特定する。そして、クエリ送信部53は、特定した情報種の情報を出力可能なノード装置60を照会する情報を、管理装置40に対して送信する(ステップS43)。
次に、データストリーム処理システム4は、ステップS6〜S7まで、本発明の第1の実施の形態と同様に動作する。すなわち、管理装置40の構成情報送信部44は、ステップS43で照会された情報種を出力可能なノード装置60のノード情報を、クライアント装置50に送信する。そして、クライアント装置50のクエリ送信部53は、そのノード情報が示すノード装置60へ、ステップS4で入力されたクエリを送信する。
次に、ノード装置60のクエリ実行部61は、ステップS7で受信されたクエリにおいて用いられている各情報種に関する情報を管理装置40に照会しながら、ステップS7で受信されたクエリを実行する(ステップS44)。このステップの詳細については後述する。
次に、データストリーム処理システム4は、ステップS11〜S12まで、本発明の第1の実施の形態と同様に動作する。すなわち、ノード装置60のクエリ処理結果送信部62は、ステップS44の処理結果を、ステップS7において受信されたクエリの送信元のクライアント装置50に対して送信する。そして、クライアント装置50のクエリ処理結果出力部24は、処理結果を出力する。
次に、ノード装置60の構成情報登録要求部63は、ステップS44で実行したクエリの処理結果の情報種の構成情報登録要求を、管理装置40に送信する(ステップS45)。具体的には、構成情報登録要求部63は、ステップS44で実行したクエリを構成情報登録要求に含めて、管理装置40に送信する
管理装置40の構成情報登録部45は、受信した構成情報登録要求に応じて、新たな構成情報を構成情報記憶部11に登録する(ステップS46)。このステップの詳細については後述する。
次に、ステップS44におけるクエリ実行動作の詳細を、図11に示す。このクエリ実行動作は、上述のステップS44において実行される他、以下に説明するステップS55におけるクエリ実行動作や、ステップS56における動作によりクエリを受信する他のノード装置60において、再帰的に実行される。
図11では、まず、ノード装置60のクエリ実行部61は、他の装置からクエリを受信する(ステップS50)。ここで、他の装置とは、クライアント装置50、管理装置40、または、他のノード装置60である。
次に、クエリ実行部61は、受信したクエリで用いられる各情報種について、以下のステップS51〜ステップS57の処理を行う。
ここでは、まず、クエリ実行部61は、この情報種の情報を出力可能なノード装置60を問い合わせる情報を、管理装置40に対して送信する(ステップS51)。
次に、管理装置40の構成情報送信部44は、ステップS51で照会された情報種を出力可能なノード装置60のノード情報を、要求元のノード装置60に対して送信する(ステップS52)。
次に、ノード装置60のクエリ実行部61は、この情報種を得るためのクエリを問い合わせる情報を、管理装置40に対して送信する(ステップS53)。
次に、管理装置40の構成情報送信部44は、ステップS53で照会された情報種を得るためのクエリを、要求元のノード装置60に対して送信する(ステップS54)。
次に、ノード装置60のクエリ実行部61は、ステップS52で受信したノード情報が自装置を示していれば、ステップS54で受信したクエリを実行することにより、この情報種の情報を得る(ステップS55)。ここで、クエリ実行部61は、ステップS54で受信したクエリで用いられる情報種が、自装置に入力されるデータストリームの情報種のみであれば、そのデータストリームに対して、ステップS54で受信したクエリが示す処理を適用することにより、この情報種の情報を得る。また、クエリ実行部61は、ステップS54で受信したクエリにおいて複数の情報種が用いられている場合や、自装置に入力されるデータストリーム以外の情報種が用いられている場合は、ステップS55において、ステップS51からの処理を再帰的に実行すればよい。
一方、クエリ実行部61は、ステップS52で受信したノード情報が他のノード装置60を示していれば、ステップS54で受信したクエリを、該他のノード装置60に対して送信する(ステップS56)。
前述のように、このステップ56で送信されたクエリを受信した他のノード装置60では、ステップS50〜ステップS59に示したクエリ実行動作が行われる。そして、他のノード装置60は、ステップS56で受信したクエリの処理結果を、このノード装置60に送信する(ステップS57)。
次に、このノード装置60のクエリ実行部61は、ステップS51〜S57を各情報種について実行することにより得られた各情報を用いて、ステップS50で受信したクエリを実行する(ステップS58)。
次に、クエリ処理結果送信部62は、ステップS58における処理結果を、ステップS50におけるクエリの送信元の装置に対して送信する(ステップS59)。
以上で、データストリーム処理システム4は、クエリ実行動作を終了する。
次に、図10のステップS42におけるクエリ定義情報登録動作の詳細を、図12に示す。
ここでは、まず、管理装置40のクエリ定義情報登録部46は、クライアント装置50からクエリ定義情報登録要求を受信する(ステップS61)。
次に、クエリ定義情報登録部46は、受信したクエリ定義情報登録要求に含まれるクエリを解析することにより、その演算式を得る(ステップS62)。
次に、クエリ定義情報登録部46は、この演算式を含むクエリ定義情報が、既にクエリ定義情報記憶部42に登録されたものであるか否かを判断する(ステップS63)。
ここで、既に登録されていれば、管理装置40は、クエリ定義情報登録動作を終了する。
一方、未だ登録されていなければ、クエリ定義情報登録部46は、この演算式で表されるクエリの種類を識別する新たなクエリ種を生成する(ステップS64)。
次に、クエリ定義情報登録部46は、この演算式で用いられている属性(入力属性情報)を得る(ステップS65)。
次に、クエリ定義情報登録部46は、この演算式で用いられている属性および演算子の種類に基づいて、出力される情報の属性(出力属性情報)を得る(ステップS66)。
次に、クエリ定義情報登録部46は、ステップS64で生成した新たなクエリ種と、ステップS62で得られた演算式と、ステップS65で得られた入力属性情報と、ステップS66で得られた出力属性情報とを含むクエリ定義情報を、クエリ定義情報記憶部42に登録する(ステップS67)。
以上で、管理装置40は、クエリ定義情報登録動作を終了する。
次に、図10のステップS46における構成情報登録動作の詳細を図13に示す。
ここでは、まず、構成情報登録部45は、ノード装置60から構成情報登録要求を受信する(ステップS71)。
次に構成情報登録部45は、受信した構成情報登録要求に含まれるクエリによって得られる情報種に関する構成情報が、既に構成情報記憶部11に登録されているか否かを判断する(ステップS72)。
ここで、既にそのような構成情報が登録されている場合、管理装置40は、構成情報登録動作を終了する。
一方、未だそのような構成情報が登録されていない場合、構成情報登録部45は、新たな情報の種類を識別する情報種を生成する(ステップS73)。
次に、構成情報登録部45は、その構成情報登録要求に含まれるクエリのクエリ定義情報を、クエリ定義情報記憶部42から取得する。そして、構成情報登録部45は、取得したクエリ定義情報に含まれる出力属性情報を、新たに生成した情報種の属性情報とする(ステップS74)。
次に、構成情報登録部45は、ステップS71で受信した構成情報登録要求の送信元のノード装置60を識別するノード情報を得る(ステップS75)。構成情報登録部45は、このようにして得たノード情報を、新たに生成した情報種の情報を出力可能なノード情報とする。
次に、構成情報登録部45は、ステップS73で生成した情報種と、ステップS74で得られた属性情報と、ステップS75で得られたノード情報と、この構成情報登録要求に含まれていたクエリとを対応付けた構成情報を、構成情報記憶部11に新たに登録する(ステップS76)。
以上で、管理装置40は、構成情報登録動作を終了する。
次に、データストリーム処理システム4の構成情報予測動作について説明する。構成情報予測部43は、所定のタイミング毎に、図6に示した本発明の第1の実施の形態における構成情報予測動作と同様の動作を実行する。ただし、本実施の形態における構成情報予測部43は、ステップS21において、クエリ定義情報に含まれる1つ以上の入力属性情報のそれぞれについて、その入力属性情報を属性情報に含む構成情報があるか否かを検索する。また、本実施の形態としての構成情報予測部43は、ステップS23〜S26の動作を、ステップS21で検索された各構成情報のうち該クエリ定義情報の演算式の入力として適用可能な全ての組み合わせについて実行する。
例えば、構成情報予測部43は、入力属性情報1および入力属性情報2を含むクエリ定義情報について、入力属性情報1を属性情報に含む構成情報Aおよび構成情報Bを検索し、入力属性情報2を属性情報に含む構成情報Cを検索したとする。この場合、構成情報予測部43は、このクエリ定義情報が示す演算式の入力として、構成情報Aおよび構成情報Cを適用するケースと、構成情報Bおよび構成情報Cを適用するケースとについて、それぞれステップS23〜S26の動作を実行すればよい。また、所定のタイミングとは、例えば、あらかじめ定められた時間間隔毎であってもよい。あるいは、所定のタイミングとは、構成情報またはクエリ定義情報が新たに登録されたタイミングであってもよい。
次に、データストリーム処理システム4の動作の具体例について説明する。
なお、以下の説明において、管理装置40の構成情報記憶部11およびクエリ定義情報記憶部42は、初期状態では何も登録されていないものとする。
また、ノード装置60aには、情報種aのデータストリームが入力され、その属性はα、β、γであると設定されているものとする。
また、ノード装置60bには、情報種bのデータストリームが入力され、その属性はα、β、δであると設定されているものとする。
また、ノード装置60cには、情報種cのデータストリームが入力され、その属性はα、εであると設定されているものとする。
<初期の構成情報の登録動作>
まず、ノード装置60aの構成情報登録要求部63は、管理装置40に接続されると、自装置から出力可能な情報種aについて、その属性情報であるα、β、γを含む構成情報登録要求を管理装置40に対して送信する。そして、管理装置40の構成情報登録部45は、情報種「a」、ノード情報「30a」、クエリ「a(情報種aをそのまま出力するクエリを表す)」、属性情報「α、β、γ」を含む構成情報を、構成情報記憶部11に登録する。
同様にして、ノード装置60bおよび60cは、それぞれ情報種bおよび情報種cの構成情報登録要求を送信する。そして、構成情報登録部45は、情報種「b」、ノード情報「30b」、クエリ「b(情報種bをそのまま出力するクエリを表す)」、属性情報「α、β、δ」を含む構成情報を、構成情報記憶部11に登録する。また、構成情報登録部45は、情報種「c」、ノード情報「30c」、クエリ「c(情報種cをそのまま出力するクエリを表す)」、属性情報「α、ε」を含む構成情報を、構成情報記憶部11に登録する。
このようにして得られた構成情報記憶部11に記憶される情報は、図14(a)に示す通りとなる。
<クエリF(a)の入力実行動作>
ここで、情報種aのデータストリームに対する単純な問い合わせF(a)が入力される場合の動作の具体例を説明する。
まず、クライアント装置50において、情報種一覧取得部21は、情報種の一覧を管理装置40に照会する。そして、クエリ入力部22は、情報種の一覧を表示する。このとき、構成情報記憶部11には、図14(a)に示した情報が記憶されているので、クエリ入力部22は、情報種a、b、cの一覧を表示する。
ここで、クエリ入力部22には、表示した情報種のうち情報種aを利用したクエリF(a)が入力されたとする。また、F(a)は、情報種aを構成する属性α、β、γのうち、αおよびβを用いた問い合わせであるものものとする。なお、クエリ入力部22は、問い合わせ言語を直接記載するエディタや、GUI(Graphical User Interface)を用いて問い合わせ言語を生成するエディタ等を提供してもよい。
次に、クエリ定義情報登録要求部55は、このクエリF(a)を含めたクエリ定義情報登録要求を、管理装置40に送信する。
次に、管理装置40のクエリ定義情報登録部46は、クエリ定義情報登録要求に含まれるF(a)を解析し、F(x)の演算式を得る。そして、この演算式F(x)を含むクエリ定義情報が未だ登録されていないので、クエリ定義情報登録部46は、新しいクエリの種類を識別するクエリ種「F」を生成する。そして、クエリ定義情報登録部46は、F(x)で利用されている入力属性情報として「α、β」を得る。また、クエリ定義情報登録部46は、α、βを用いた演算子の種別に基づいて、出力属性を得る。ここでは、クエリ定義情報登録部46は、出力属性β、ζを得たものとする。そして、クエリ定義情報登録部46は、新しいクエリ種「F」、演算式「F(x)」、入力属性情報1「α、β」、出力属性情報「β、ζ」を対応付けたクエリ定義情報を、クエリ定義情報記憶部42に登録する。
このようにして得られたクエリ定義情報記憶部42に記憶される情報は、図15(a)に示す通りとなる。
次に、クライアント装置50のクエリ送信部53は、入力されたクエリF(a)で用いられる情報種aを出力可能なノード装置60を管理装置40に問い合わせる。そして、クエリ送信部53は、ノード装置60aを示すノード情報を得る。そこで、クエリ送信部53は、入力されたクエリF(a)を、ノード装置60aに対して送信する。
ノード装置60aのクエリ実行部61は、受信したクエリF(a)で用いられる情報種aについて、出力可能なノード装置60およびクエリを、管理装置40に問い合わせる。そして、クエリ実行部61は、情報種aを出力可能なノード装置60が自装置であることを示すノード情報を得る。また、クエリ実行部61は、情報種aを得るための「入力される情報種aのデータストリームをそのまま出力する」ことを表すクエリを得る。なお、クエリ実行部61は、このように、受信したクエリにおいて、自装置に入力されるデータストリームの情報種がそのまま用いられている場合には、管理装置40にそのクエリを問い合わせる処理を省略してもよい。
次に、クエリ実行部61は、自装置に入力される情報種aのデータストリームに対して、クエリF(a)を実行する。
そして、クエリ処理結果送信部62は、クエリF(a)の処理結果を、クライアント装置50に送信する。
次に、クライアント装置50のクエリ処理結果出力部24は、受信した処理結果を出力する。
さらに、構成情報登録要求部63は、クエリ実行部61によって実行されたクエリF(a)を含む構成情報登録要求を、管理装置40に送信する。これにより、管理装置40の構成情報登録部45は、新たな情報種「m」、ノード情報「30a」、クエリ「F(a)」、属性情報「β、ζ」を含む構成情報を、構成情報記憶部11に登録する。このとき、構成情報登録部45は、情報種「m」の属性情報を、図15(a)に示したクエリ種Fのクエリ定義情報の出力属性情報を参照することにより取得可能である。
このようにして得られた構成情報記憶部11に記憶される情報は、図14(b)に示す通りとなる。
<クエリG(b)の入力実行動作>
次に、情報種bのデータストリームに対する単純な問い合わせG(b)が入力される場合の動作の具体例を説明する。
まず、クライアント装置50において、情報種一覧取得部21が情報種の一覧を管理装置40に照会することにより、クエリ入力部22は、情報種の一覧を表示装置に表示する。このとき、構成情報記憶部11には、図14(b)に示した情報が記憶されているので、クエリ入力部22は、情報種a、b、c、mの一覧を表示する。
ここで、クエリ入力部22には、表示した情報種のうち情報種bを利用したクエリG(b)が入力されたものとする。また、G(b)は、情報種bを構成する属性α、β、δのうち、αおよびδを用いた問い合わせであるものものとする。
次に、クエリ定義情報登録要求部55は、このクエリG(b)を含めたクエリ定義情報登録要求を、管理装置40に送信する。
次に、管理装置40のクエリ定義情報登録部46は、クエリ定義情報登録要求に含まれるG(b)を解析し、G(x)の演算式を得る。そして、この演算式G(x)を含むクエリ定義情報が未だ登録されていないので、クエリ定義情報登録部46は、新しいクエリの種類を識別するクエリ種「G」を生成する。そして、クエリ定義情報登録部46は、G(x)で利用されている入力属性情報として「α、δ」を得る。また、クエリ定義情報登録部46は、G(b)において用いられる入力属性情報「α、δ」および演算子の種別に基づいて、出力属性情報を得る。ここでは、クエリ定義情報登録部46は、出力属性情報「δ、ζ、η」を得たものとする。そして、クエリ定義情報登録部46は、新しいクエリ種「G」、演算式「G(x)」、入力属性情報「α、δ」、出力属性情報「δ、ζ、η」を対応付けたクエリ定義情報を、クエリ定義情報記憶部42に登録する。
このようにして得られたクエリ定義情報記憶部42に記憶される情報は、図15(b)に示す通りとなる。
次に、クライアント装置50のクエリ送信部53は、入力されたクエリG(b)で用いられる情報種bを出力可能なノード装置60を管理装置40に問い合わせることにより、ノード装置60bを示すノード情報を得る。そこで、クエリ送信部53は、入力されたクエリF(b)を、ノード装置60bに対して送信する。
ノード装置60bのクエリ実行部61は、前述のF(a)を受信したノード装置60aのクエリ実行部61と同様に動作することにより、自装置に入力される情報種bのデータストリームに対して、クエリG(b)を実行する。
そして、ノード装置60bのクエリ処理結果送信部62は、クエリG(b)の処理結果を、クライアント装置50に送信する。
次に、クライアント装置50のクエリ処理結果出力部24は、受信した処理結果を出力する。
さらに、ノード装置60bの構成情報登録要求部63は、クエリ実行部61によって実行されたクエリG(b)を含む構成情報登録要求を、管理装置40に送信する。これにより、管理装置40の構成情報登録部45は、新たな情報種「n」、ノード情報「30b」、クエリ「G(b)」、属性情報「δ、ζ、η」を含む構成情報を、構成情報記憶部11に登録する。このとき、構成情報登録部45は、情報種「n」の属性情報を、図15(b)に示したクエリ種Gの出力属性情報を参照することにより取得可能である。
このようにして得られた構成情報記憶部11に記憶される情報は、図14(c)に示す通りとなる。
なお、これらのF(a)やG(b)のような単純な問い合わせにより得られる情報種の構成情報やクエリ定義情報について、構成情報記憶部11およびクエリ定義情報記憶部42は、データストリーム処理システム4の管理者により事前に登録されたものを記憶しておいてもよい。
<クエリH(c,m)の入力実行動作>
次に、他のクエリから得られた情報種も利用した問い合わせH(c,m)が入力される場合の動作を説明する。
まず、クライアント装置50において、クエリ入力部22は、情報種一覧を表示する。このとき、構成情報記憶部11には、図14(c)に示した情報が記憶されているので、クエリ入力部22は、情報種a、b、c、m、nの一覧を表示する。
ここで、クエリ入力部22には、表示した情報種のうち情報種cおよびmを利用したクエリH(c,m)が入力されたものとする。H(c,m)は、情報種cを構成する属性αおよびεと、情報種mを構成するβおよびζを用いた問い合わせであるものものとする。
次に、クエリ定義情報登録要求部55は、このクエリH(c,m)を含めたクエリ定義情報登録要求を、管理装置40に送信する。
次に、管理装置40のクエリ定義情報登録部46は、クエリ定義情報登録要求に含まれるH(c,m)を解析し、H(x,y)の演算式を得る。そして、この演算式H(x,y)を含むクエリ定義情報が未だ登録されていないので、クエリ定義情報登録部46は、新しいクエリの種類を識別するクエリ種「H」を生成する。そして、クエリ定義情報登録部46は、H(x,y)で利用されている入力属性情報1として「α、ε」、入力属性情報2として「β、ζ」を得る。また、クエリ定義情報登録部46は、H(c,m)において用いられる演算子の種別に基づいて、出力属性情報を得る。ここでは、クエリ定義情報登録部46は、出力属性ζ、ιを得たものとする。そして、クエリ定義情報登録部46は、新しいクエリ種「H」、演算式「H(x,y)」、入力属性情報1「α、ε」、入力属性情報2「β、ζ」、出力属性情報「ζ、ι」を対応付けたクエリ定義情報を、クエリ定義情報記憶部42に登録する。
このようにして得られたクエリ定義情報記憶部42に記憶される情報は、図15(c)に示す通りとなる。
次に、クライアント装置50のクエリ送信部53は、入力されたクエリH(c,m)で用いられる情報種c,mのうち、任意に選択した情報種cを出力可能なノード装置60を管理装置40に問い合わせる。そして、クエリ送信部53は、そのようなノード装置60として、ノード装置60cを示すノード情報を得る。そこで、クエリ送信部53は、入力されたクエリH(c,m)を、ノード装置60cに対して送信する。
ノード装置60cのクエリ実行部61は、受信したクエリH(c,m)で利用されている情報種cおよびmについて、それぞれ出力可能なノード装置60およびクエリを、管理装置40に問い合わせる。その結果、ノード装置60cのクエリ実行部61は、入力される情報種cのデータストリームをそのまま適用することにより、情報種cの情報を得る。また、ノード装置60cのクエリ実行部61は、情報種mを出力可能なノードはノード装置60aであり、情報種mを得るためのクエリとしてF(a)を得る。そこで、ノード装置60cのクエリ実行部61は、ノード装置60aに対して、クエリF(a)を送信する。
クエリF(a)を受信したノード装置60aのクエリ実行部61は、前述と同様に動作することによりクエリF(a)を実行する。そして、ノード装置60aのクエリ処理結果送信部62は、クエリF(a)の送信元であるノード装置60cに、クエリF(a)の処理結果を送信する。
ノード装置60cのクエリ実行部61は、このようにして得た情報種aおよび情報種mを用いて、H(c,m)を実行する。
そして、ノード装置60cのクエリ処理結果送信部62は、クエリH(c,m)の送信元であるクライアント装置50に、H(c,m)の処理結果を送信する。
次に、クライアント装置50のクエリ処理結果出力部24は、受信した処理結果を出力する。
さらに、ノード装置60cの構成情報登録要求部63は、クエリ実行部61によって実行されたクエリH(c,m)を含む構成情報登録要求を、管理装置40に送信する。これにより、管理装置40の構成情報登録部45は、新たな情報種「o」、ノード情報「30c」、クエリ「H(c,m)」、属性情報「ζ、ι」を含む構成情報を、構成情報記憶部11に登録する。このとき、構成情報登録部45は、情報種「o」の属性情報を、図15(c)に示したクエリ種Hの出力属性情報を参照することにより取得可能である。
このようにして得られた構成情報記憶部11に記憶される情報は、図14(d)に示す通りとなる。
<構成情報予測動作>
次に、図14(d)に示す構成情報記憶部11および図15(c)に示すクエリ定義情報記憶部42を用いて行われる構成情報予測動作の具体例を説明する。
まず、構成情報予測部43は、クエリ定義情報記憶部42に記憶された各クエリ定義情報について、順に予測動作を行う。
<<クエリ種Fについての予測動作>>
まず、構成情報予測部43は、クエリ種Fの入力属性情報「α、β」を得る。
次に、構成情報予測部43は、属性αおよびβを属性情報に含む構成情報を、構成情報記憶部11から検索する。そして、構成情報予測部43は、属性αおよびβを含む属性情報を有する情報種a(属性情報α、β、γ)および情報種b(属性情報α、β、δ)を得る。
そこで、構成情報予測部43は、まず、情報種aをクエリ種Fの演算式F(x)に適用し、F(a)を生成する。しかし、F(a)に関する構成情報は既に登録されているので、構成情報予測部43は、F(a)に関する新たな登録を実行しない。
次に、構成情報予測部43は、情報種bをクエリ種Fの演算式F(x)に適用し、F(b)を生成する。F(b)に関する構成情報は未だ登録されていないので、構成情報予測部43は、F(b)に関する新たな構成情報を生成する。具体的には、構成情報予測部43は、F(b)により得られることが予測される新たな情報の種類を識別する情報種pを生成する。また、構成情報予測部43は、情報種pを出力可能なノード装置60として、F(b)において用いられる情報種bを出力可能なノード装置60bを得る。また、構成情報予測部43は、F(b)の属性情報として、クエリ種Fの出力属性情報を適用し、「β、ζ」を得る。そこで、構成情報予測部43は、情報種p、クエリF(b)、ノード装置60b、属性情報「β、ζ」を対応付けた新たな構成情報を、構成情報記憶部11に登録する。
このようにして得られた構成情報記憶部11に記憶される情報は、図16(a)に示す通りとなる。
<<クエリ種Gについての予測動作>>
次に、構成情報予測部43は、クエリ種Gの入力属性情報「α、δ」を得る。
次に、構成情報予測部43は、属性αおよびδを属性情報に含む構成情報を、構成情報記憶部11から検索する。そして、構成情報予測部43は、情報種b(属性情報α、β、δ)を得る。
そこで、構成情報予測部43は、情報種bをクエリ種Gの演算式G(x)に適用し、G(b)を生成する。しかし、G(b)に関する構成情報は既に登録されているので、構成情報予測部43は、G(b)に関する新たな登録を実行しない。
<<クエリ種Hについての予測動作>>
まず、構成情報予測部43は、クエリ種Hの入力属性情報1「α、ε」および入力属性情報2「β、ζ」を得る。
次に、構成情報予測部43は、入力属性情報1「α、ε」を属性情報に含む構成情報として、情報種c(属性情報α、ε)を検索する。また、構成情報予測部43は、入力属性情報2「β、ζ」を属性情報に含む構成情報として、情報種m(属性情報β、ζ)および情報種p(属性情報β、ζ)を得る。
そこで、構成情報予測部43は、まず、情報種cおよび情報種mをクエリ種Hの演算式H(x,y)に適用し、H(c,m)を生成する。しかし、H(c,m)に関する構成情報は既に登録されているので、構成情報予測部43は、H(c,m)に関する新たな登録を実行しない。
次に、構成情報予測部43は、情報種cおよび情報種pをクエリ種Hの演算式H(x,y)に適用し、H(c,p)を生成する。H(c,p)に関する構成情報は未だ登録されていないので、構成情報予測部43は、H(c,p)に関する新たな構成情報を生成する。具体的には、構成情報予測部43は、H(c,p)により得られることが予測される新たな情報の種類を識別する情報種qを生成する。また、構成情報予測部43は、新たな情報種qを出力可能なノード装置60として、H(c,p)において用いられる情報種cを出力可能なノード装置60cを得る。また、構成情報予測部43は、H(c,p)の属性情報として、クエリ種Hの出力属性情報を参照することにより、「ζ、ι」を得る。そこで、構成情報予測部43は、情報種q、クエリH(c,p)、ノード装置60c、属性情報「ζ、ι」を対応付けた新たな構成情報を、構成情報記憶部11に登録する。
このような予測動作により得られた構成情報記憶部11に記憶される情報は、図16(b)に示す通りとなる。図16(b)において、情報種a〜c、m〜oの情報種に関する構成情報は、実行済みのクエリから得られる情報種に関する構成情報である。また、構成情報p、qは、構成情報予測部43によって予測された情報種の構成情報である。
以上で、データストリーム処理システム4の動作の具体例の説明を終了する。
次に、本発明の第2の実施の形態の効果について述べる。
本発明の第2の実施の形態としてのデータストリーム処理システムは、ユーザによるクエリの入力を支援するため、さらに有効でさらに豊富な情報を提示することができる。
その理由は、管理装置のクエリ定義情報登録部が、入力されたクエリに関するクエリ定義情報を、その入力属性および出力属性とともにクエリ定義情報記憶部に追加していき、構成情報登録部が、実行済みのクエリにより得られる情報種の構成情報を、その属性情報とともに構成情報記憶部に追加していき、構成情報予測部が、追加されていくクエリ定義情報および構成情報に基づいて、新たな情報種を予測してその構成情報を構成情報記憶部に追加していく予測処理を、所定のタイミング毎に実行するからである。
その結果、本実施の形態としてのデータストリーム処理システムは、多様な情報種のデータストリームがそれぞれ入力される多数のノード装置を含む大規模な構成となった場合にも、クエリの実行数が少ないノード装置に入力されるデータストリームを利用した情報種を予測してクライアント装置に提示することができる。その結果、本発明の第2の実施の形態としてのデータストリーム処理システムは、さらに多様な情報種の情報を利用したクエリをより容易に入力させることが可能となる。
次に、本発明の最小構成について説明する。図17は、本発明の最小構成例としての管理装置100を示す機能ブロック図である。図17において、管理装置100は、構成情報記憶部101と、クエリ定義情報記憶部102と、構成情報予測部103と、構成情報送信部104とを備える。ここで、管理装置100は、CPUと、RAMと、ROMと、ハードディスク等の記憶装置と、ネットワークインタフェースとを備えたコンピュータ装置によって構成されている。また、構成情報記憶部101およびクエリ定義情報記憶部102は、記憶装置によって構成される。また、構成情報予測部103は、ROMまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをRAMに読み込んで実行するCPUによって構成される。また、構成情報送信部104は、ネットワークインタフェースと、ROMまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをRAMに読み込んで実行するCPUとによって構成される。なお、各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
構成情報記憶部101は、ノード装置から出力可能な情報の種類を識別する情報種と、この情報種の情報が有する属性を表す属性情報と、を含む構成情報を記憶する。ノード装置は、時間の経過に伴って逐次生成されるデータストリームに対するクエリを実行する装置である。
クエリ定義情報記憶部12は、クエリの種類を識別するクエリ種と、このクエリ種のクエリの演算式と、この演算式で用いられる情報の属性を表す入力属性情報と、この演算式により出力される情報の属性を表す出力属性情報と、を含むクエリ定義情報を記憶する。
構成情報予測部103は、構成情報記憶部101とクエリ定義情報記憶部102とを用いて新たな構成情報を予測する。具体的には、構成情報予測部103は、クエリ定義情報記憶部102に記憶されたクエリ定義情報のうち、その入力属性情報が、構成情報記憶部101に記憶された構成情報の属性情報に含まれるものがあるか否かを判断する。そのようなクエリ定義情報および構成情報があると判断した場合、構成情報予測部103は、該クエリ定義情報が示す演算式の入力として該構成情報が示す情報種の情報を適用したクエリにより得られることが予測される情報の新たな情報種と、該情報種の情報が有する属性として該クエリ定義情報に含まれる出力属性情報と、を含む構成情報を生成する。そして、構成情報予測部103は、生成した構成情報を、構成情報記憶部101に登録する。
構成情報送信部104は、構成情報記憶部101に記憶されている構成情報が示す情報種の一覧を、クライアント装置に対して送信する。クライアント装置は、前述のノード装置に実行させるためのクエリが入力される装置である。
以上のように構成された管理装置100は、図6に示した本発明の第1の実施の形態における管理装置10の構成情報予測動作と同様に動作する。ただし、ステップS25において、構成情報予測部103は、新たな情報種と、新たな情報種の情報が有する属性として該クエリ定義情報に含まれる出力属性情報と、を少なくとも含む構成情報を生成すればよい。そして、管理装置100は、このようにして予測した構成情報を含む構成情報記憶部101に記憶された情報種の一覧を、クエリが入力される装置であるクライアント装置に対して送信する。
このように、本発明の最小構成例としての管理装置は、ユーザによるクエリの入力を支援するため、より有効かつより豊富な情報を提示することができる。
その理由は、既知のクエリによって得られる情報の情報種について、その情報種が有する属性情報を記憶しておくとともに、既知のクエリの演算式についてその入力属性情報および出力属性情報を記憶しておき、構成情報予測部が、既知のクエリの演算式の入力属性情報を、その属性情報に含む既知の情報種がある場合に、該当するクエリの演算式の入力に、該当する情報種を適用して得られる新たな情報種を予測するからである。このように、属性情報を考慮して予測された新たな情報種は、有効性の高いものとなる。そして、構成情報送信部が、予測した情報種を含む情報種の一覧を、クライアント装置に送信するからである。これにより、そのような予測されたものを含む情報種の一覧を受信するクライアント装置において、新たなクエリの入力において使用可能な情報種として提示される情報は、より豊富でより有効なものとなる。
なお、上述した本発明の各実施の形態において、管理装置、クライアント装置およびノード装置は、それぞれ異なるコンピュータ装置によって構成されるものとして説明した。これに限らず、各実施の形態における各装置は、少なくとも2つが同一のコンピュータ装置によって構成されていてもよい。
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した管理装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置(記憶媒体)に格納しておき、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。