(57)【特許請求の範囲】
【請求項１】
複数のノードのいずれかに配置され、処理対象のデータに関する条件がそれぞれ設定された複数のクエリについて、前記複数のノードから送信された、前記複数のノードにそれぞれ配置されたクエリごとに処理対象とするデータが周期性のあるタイミングで配信される時間間隔および所定の基準からの位相に基づき、前記複数のクエリごとの基準時刻および周期に関する周期情報を特定する特定部と、
前記複数のクエリに含まれる第１のクエリが、当該第１のクエリが配置された第１のノードからの移動対象である場合に、前記周期情報に基づき特定される前記第１のクエリが処理対象とするデータが配信されない期間に、前記第１のノードに前記第１のクエリの移動を指示する指示部と、
を備えた管理装置。 
【請求項２】
前記特定部は、前記複数のノードそれぞれから送信された、クエリごとの処理対象データに関する時間間隔および所定の基準からの位相の受信に応じ、前記周期情報を更新することを特徴とする、請求項１記載の管理装置。
【請求項３】
複数のノードのいずれかに配置され、処理対象のデータに関する条件がそれぞれ設定された複数のクエリについて、前記複数のノードとともに配信された、前記複数のクエリが処理対象とするデータより検出される、当該処理対象とするデータが周期性のあるタイミングで配信される時間間隔および所定の基準からの位相に基づき、前記複数のクエリそれぞれの基準時刻および周期に関する周期情報を特定する特定部と、
前記複数のクエリに含まれる第１のクエリが、当該第１のクエリが配置された第１のノードからの移動対象である場合に、前記周期情報に基づき特定される前記第１のクエリが処理対象とするデータが配信されない期間に、前記第１のノードに前記第１のクエリの移動を指示する指示部と、
を備えた管理装置。
【請求項４】
前記特定部は、複数のクエリをグループ化した複数のグループについて、各グループに属するクエリが処理対象とするデータが配信される基準時刻および周期に関する周期情報を特定し、
前記複数のグループに含まれる第１のグループに属する第１のクエリ群が、当該第１のクエリ群が配置された第１ノードからの移動対象である場合に、前記指示部は、前記周期情報に基づき特定される前記第１のグループに属する各クエリが処理対象とするデータがいずれも配信されない期間に、前記第１のクエリ群が配置されたノードに前記第１のグループの各クエリの移動を指示する
ことを特徴とする請求項３に記載の管理装置。
【請求項５】
前記特定部は、複数のクエリをグループ化した複数のグループについて、各グループに属するクエリが処理対象とするデータが配信される基準時刻および周期に関する周期情報を特定し、
前記複数のグループに含まれる第１のグループに属する第１のクエリ群が、当該第１のクエリ群が配置された第１ノードからの移動対象である場合に、前記指示部は、前記周期情報に基づき特定される前記第１のグループに属する各クエリが処理対象とするデータがいずれも配信されない期間に、前記第１のクエリ群が配置されたノードに前記第１のグループの各クエリの移動を指示する
ことを特徴とする請求項１に記載の管理装置。 
【請求項６】
前記特定部は、定期的に前記周期情報を特定し直す
ことを特徴とする請求項５に記載の管理装置。 
【請求項７】
前記特定部は、前記複数のノードから送信されたグループごとの基準時刻および周期に関する情報より前記周期情報を特定することを特徴とする、請求項５記載の管理装置。
【請求項８】
前記特定部は、前記複数のノードそれぞれから送信された、グループごとの基準時刻および周期に関する前記情報の受信に応じ、前記周期情報を更新することを特徴とする、請求項７記載の管理装置。
【請求項９】
移動対象の候補となるクエリが複数ある場合に、前記周期情報に基づき特定される、次に処理対象とするデータが配信されるまでの期間に基づき選択する選択部をさらに有する
ことを特徴とする請求項１に記載の管理装置。 
【請求項１０】
前記選択部は、次に処理対象とするデータが配信されるまでの期間が最も長いクエリを選択することを特徴とする請求項９記載の管理装置。
【請求項１１】
前記周期情報に基づき、前記複数のクエリを複数のグループに分類する分類部をさらに有する
ことを特徴とする請求項１〜４のいずれか１項に記載の管理装置。 
【請求項１２】
前記特定部は、定期的に、前記周期情報を特定し直し、
前記分類部は、前記特定部により特定し直された周期情報に基づき、前記複数のクエリを複数のグループに分類し直す
ことを特徴とする請求項１１に記載の管理装置。 
【請求項１３】
前記周期情報は、所定の基準時刻からの時間位相および周期に関する情報であることを特徴とする請求項１〜１２のいずれか１項に記載の管理装置。
【請求項１４】
周期性のあるタイミングで配信される処理対象のデータに関する条件が設定された１または複数のクエリが配置されたノードとして動作する情報処理装置であって、
前記１または複数のクエリのいずれかについて処理対象とするデータが配信された場合に、当該クエリの処理を実行する実行部と、
前記１または複数のクエリそれぞれが処理対象とするデータが配信される基準時刻および周期に関する周期情報を特定する特定部と、
前記１または複数のクエリに含まれる第１のクエリの移動の指示を受け付ける受付部と、
前記受付部が前記第１のクエリの移動の指示を受け付けた場合に、前記周期情報に基づき特定される前記第１のクエリが処理対象とするデータが配信されない期間に、前記第１のクエリを移動先のノードへ移動する移動部と、
を有することを特徴とする情報処理装置。 
【請求項１５】
前記周期情報は、所定の基準時刻からの時間位相および周期に関する情報であることを特徴とする請求項１４記載の情報処理装置。
【請求項１６】
コンピュータに、
複数のノードのいずれかに配置され、処理対象のデータに関する条件がそれぞれ設定された複数のクエリについて、前記複数のノードから送信された、前記複数のノードにそれぞれ配置されたクエリごとに処理対象とするデータが周期性のあるタイミングで配信される時間間隔および所定の基準からの位相に基づき、前記複数のクエリごとの基準時刻および周期に関する周期情報を特定する処理と、
前記周期情報を記憶装置に記憶する処理と、
前記複数のクエリに含まれる第１のクエリが、当該第１のクエリが配置された第１のノードからの移動対象である場合に、前記周期情報に基づき特定される前記第１のクエリが処理対象とするデータが配信されない期間に、前記第１のノードに前記第１のクエリの移動を指示する処理と、
を実行させることを特徴とする管理プログラム。 
【請求項１７】
コンピュータが、
複数のノードのいずれかに配置され、処理対象のデータに関する条件がそれぞれ設定された複数のクエリについて、前記複数のノードから送信された、前記複数のノードにそれぞれ配置されたクエリごとに処理対象とするデータが周期性のあるタイミングで配信される時間間隔および所定の基準からの位相に基づき、前記複数のクエリごとの基準時刻および周期に関する周期情報を特定し、
前記周期情報を記憶装置に記憶し、
前記複数のクエリに含まれる第１のクエリが、当該第１のクエリが配置された第１のノードからの移動対象である場合に、前記周期情報に基づき特定される前記第１のクエリが処理対象とするデータが配信されない期間に、前記第１のノードに前記第１のクエリの移動を指示する
処理を実行することを特徴とする管理方法。 
【請求項１８】
周期性のあるタイミングで配信される処理対象のデータに関する条件が設定された１または複数のクエリが配置されたノードとして動作するコンピュータに、
前記１または複数のクエリのいずれかについて処理対象とするデータが配信された場合に、当該クエリの処理を実行する処理と、
前記１または複数のクエリそれぞれが処理対象とするデータが配信される基準時刻および周期に関する周期情報を特定する処理と、
前記周期情報を記憶装置に記憶する処理と、
前記１または複数のクエリに含まれる第１のクエリの移動の指示を受け付ける処理と、
前記第１のクエリの移動の指示を受け付けた場合に、前記周期情報に基づき特定される前記第１のクエリが処理対象とするデータが配信されない期間に、前記第１のクエリを移動先のノードへ移動する処理と、
を実行させることを特徴とするプログラム。
【請求項１９】
周期性のあるタイミングで配信される処理対象のデータに関する条件が設定された１または複数のクエリが配置されたノードとして動作するコンピュータが、
前記１または複数のクエリのいずれかについて処理対象とするデータが配信された場合に、当該クエリの処理を実行し、
前記１または複数のクエリそれぞれが処理対象とするデータが配信される基準時刻および周期に関する周期情報を特定し、
前記周期情報を記憶装置に記憶し、
前記１または複数のクエリに含まれる第１のクエリの移動の指示を受け付ける処理と、
前記第１のクエリの移動の指示を受け付けた場合に、前記周期情報に基づき特定される前記第１のクエリが処理対象とするデータが配信されない期間に、前記第１のクエリを移動先のノードへ移動する、
処理を実行する処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理装置、情報処理装置、管理プログラム、管理方法、プログラムおよび処理方法に関する。
【背景技術】
【０００２】
近年、様々な対象から刻々と収集される多数のデータを並列に処理する技術として複合イベント処理（ＣＥＰ（Complex  Event  Processing））が知られている。この複合イベント処理では、受信したデータに対してイベントを検出し、検出したイベントに関する処理が実行される。なお、複合イベント処理は、ＥＳＰ（Event  Stream  Processing）と呼ぶ場合もあるが、ここでは、ＥＳＰも包含してＣＥＰと総称する。
【０００３】
複合イベント処理を行うＣＥＰシステムでは、一時的に大量の受信データを処理する場合があり、処理負荷が高くなり、処理性能が低下する場合がある。また、ＣＥＰシステムは、データをリアルタイムで処理するシステムであるために常時稼働が期待され、停止が許容されない場合がある。
【０００４】
そこで、ＣＥＰシステムでは、クラウド等に用いられる柔軟な資源割り当てが可能なシステム技術を用いて、処理負荷の変動に応じて複数のサーバや仮想マシン（ＶＭ：Virtual  Machine）に処理の分散が行われる。例えば、処理負荷が高いサーバや仮想マシンに配置されたクエリと呼ばれる処理要求文やクエリに付随するデータを処理要素として他のサーバや仮想マシンに移動させて処理の分散を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２５８５５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、ＣＥＰシステムでは、処理要素を移動させる場合、移動する処理要素のクエリの処理が停止し、データ処理に遅延が発生する。
【０００７】
１つの側面では、データ処理の遅延を抑制できる管理装置、情報処理装置、管理プログラム、管理方法、プログラムおよび処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の案では、管理装置は、特定部と、指示部とを有する。特定部は、複数のノードのいずれかに配置され、処理対象のデータに関する条件がそれぞれ設定された複数のクエリについて、処理対象とするデータが配信される基準時刻および周期に関する周期情報を特定する。指示部は、複数のクエリに含まれる第１のクエリが、当該第１のクエリが配置された第１のノードからの移動対象である場合に、前記周期情報に基づき特定される前記第１のクエリが処理対象とするデータが配信されない期間に、前記第１のノードに前記第１のクエリの移動を指示する。
【発明の効果】
【０００９】
データ処理の遅延を抑制できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係るサーバ装置を含むＣＥＰシステムの全体構成を示す図である。
【図２】図２は、実施例２に係るサーバ装置を含むＣＥＰシステムの全体構成を示す図である。
【図３】図３は、実施例３に係るＣＥＰシステムの構成の一例を示す図である。
【図４】図４は、実施例３に係るＣＥＰシステムの構成を模式的に示した図である。
【図５Ａ】図５Ａは、クエリの移動の一例を示す図である。
【図５Ｂ】図５Ｂは、クエリの移動の他の一例を示す図である。
【図６】図６は、クエリ３３のグループ分けの一例を示す図である。
【図７】図７は、ルーティングテーブルのデータ構成の一例を示す図である。
【図８】図８は、格納先テーブルのデータ構成の一例を示す図である。
【図９】図９は、実施例３に係る管理サーバおよびＶＭの機能的な構成の一例を示す図である。
【図１０】図１０は、移動制御処理の手順を示すフローチャートである。
【図１１】図１１は、クエリのグループ分けの一例を示す図である。
【図１２】図１２は、実施例４に係るＣＥＰシステムの構成を模式的に示した図である。
【図１３】図１３は、ノードテーブルのデータ構成の一例を示す図である。
【図１４】図１４は、実施例４に係る管理サーバおよびＶＭの機能的な構成の一例を示す図である。
【図１５】図１５は、分類処理の手順を示すフローチャートである。
【図１６】図１６は、実施例５に係る管理サーバおよびＶＭの機能的な構成の一例を示す図である。
【図１７】図１７は、移動制御プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１１】
以下に、本発明にかかるサーバ装置、移動制御プログラム、および移動制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１２】
実施例１に係るサーバ装置について説明する。図１は、実施例１に係るサーバ装置を含むＣＥＰシステムの全体構成を示す図である。サーバ装置１０は、ＣＥＰシステムを管理する物理サーバであり、例えば、データセンサや各企業に設けられた管理用のサーバコンピュータである。サーバ装置１０は、複数のノード１１と通信可能とする。ノード１１は、サーバ装置またはサーバ装置上で動作する仮想マシンである。各ノード１１には、それぞれ設定された条件にデータが合致した場合に処理を実行するための複数のクエリ１２が分散配置される。各ノード１１には、様々な対象から収集されたデータが配信される。ノード１１は、受信したデータがクエリ１２に設定された条件に合致した場合にクエリ１２に設定された処理を実行する。各ノード１１に配置されたクエリ１２は、ノード１１間の移動が可能とされている。
【００１３】
図１に示すように、サーバ装置１０は、特定部１３と、指示部１４とを有する。
【００１４】
特定部１３は、各種の特定を行う。例えば、特定部１３は、クエリが処理対象とするデータが配信される周期を特定する。例えば、クエリ１２が処理対象とするデータが配信される時間間隔および所定の基準からの位相を各ノード１１が検出してサーバ装置１０へ送信する場合、特定部１３は、各ノード１１から送信された検出結果に基づいて周期を特定してもよい。一例として、処理対象のデータが０時０分１０秒、０時１分１０秒、０時２分１０秒・・・と配信され、所定の基準を０時０分０秒とした場合、時間間隔は１分、基準からの位相は１０秒と検出される。所定の基準は、何れの時刻であってもよい。また、例えば、クエリに対して同じ周期で複数のデータが配信される場合、いずれかのデータの配信される周期を基準として位相を求めてもよい。
【００１５】
また、例えば、クエリが処理対象とするデータがサーバ装置１０にも配信される場合、特定部１３は、データが配信される時間間隔および所定の基準からの位相を検出して周期を特定してもよい。この場合、クエリが処理対象とするデータをノード１１およびサーバ装置１０へ配信してもよい。また、クエリが処理対象とするデータをノード１１がサーバ装置１０へ転送してもよい。
【００１６】
また、例えば、クエリが処理対象とするデータが配信される時間間隔および位相が決まっており、時間間隔および位相を示す周期情報がサーバ装置１０の不図示の記憶部に記憶されている場合、特定部１３は、記憶された周期情報に基づいて周期を特定してもよい。
【００１７】
指示部１４は、各種の指示を行う。例えば、特定部１３により特定した周期に基づき、移動対象のクエリ１２が処理対象とするデータが配信されない期間に、移動元のノード１１に当該クエリ１２の移動の指示を送信する。
【００１８】
各ノード１１は、移動の指示を受信した場合、移動が指示されたクエリ１２を他のノード１１へ移動を移動する。
【００１９】
なお、図１の例では、機能的な構成を示したため、特定部１３と、指示部１４とを別に分けているが、例えば、１つのデバイスで構成してもよい。デバイスの一例としては、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路が挙げられる。なお、デバイスとして、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路を採用することもできる。
【００２０】
ところで、クエリ１２が処理対象とするデータは、配信されるタイミングに周期性がある場合がある。例えば、処理対象とするデータを特定の証券コードの株価のデータとし、株価のデータが証券コードの順に繰り返し配信される場合、特定の証券コードの株価のデータは、所定の時間間隔で繰り返し配信される。また、例えば、処理対象とするデータをセンサから送信されるデータとし、当該センサのデータの送信周期が定まっている場合、センサのデータは、センサの送信周期で繰り返し配信される。
【００２１】
そこで、サーバ装置１０は、データが配信されない期間に、ノード１１に対してクエリ１２の移動の指示を送信する。ノード１１は、クエリ１２の移動の指示を受信すると、クエリ１２を移動する。
【００２２】
このように、サーバ装置１０は、ノード１１に配置されると共にノード１１間の移動が可能とされ、設定された条件にデータが合致した場合に処理を実行するためのクエリ１２が処理対象とするデータが配信される周期を特定する。そして、サーバ装置１０は、特定した周期に基づき、移動対象のクエリ１２が処理対象とするデータが配信されない期間に、移動元のノード１１に当該クエリ１２の移動を指示する。これにより、サーバ装置１０によれば、クエリ１２による処理対象とするデータの処理と、クエリ１２の移動のタイミングが重なることを抑制できるため、データ処理の遅延を抑制できる。
【実施例２】
【００２３】
実施例２について説明する。図２は、実施例２に係るサーバ装置を含むＣＥＰシステムの全体構成を示す図である。なお、上述の実施例１と同一の部分については、同一の符号を付してその説明を省略する。
【００２４】
図２に示すように、サーバ装置１０は、選択部１５をさらに有する。
【００２５】
選択部１５は、各種の選択を行う。例えば、選択部１５は、移動候補のクエリ１２が複数ある場合、特定部１３により特定された周期に基づき、次に処理対象とするデータが配信されるまでの期間が長いクエリを移動対象として選択する。移動候補のクエリ１２は、例えば、管理者が指定してもよい。また、配信されるデータ数が多い、あるいはデータ数が少ないなど所定の条件を満たすクエリ１２を移動候補のクエリ１２としてもよい。
【００２６】
指示部１４は、特定部１３により特定された周期に基づき、選択部１５により選択されたクエリ１２が処理対象とするデータが配信されない期間に、移動元のノード１１に当該クエリ１２の移動の指示を送信する。
【００２７】
このように、サーバ装置１０は、移動候補のクエリ１２が複数ある場合、次に処理対象とするデータが配信されるまでの期間が長いクエリを移動対象として選択する。そして、サーバ装置１０は、選択されたクエリ１２が処理対象とするデータが配信されない期間に、当該クエリ１２の移動の指示を送信する。これにより、サーバ装置１０によれば、データが配信されるまでの期間をより長く確保できるため、クエリ１２による処理対象とするデータの処理と、クエリ１２の移動のタイミングが重なることを抑制できる。
【実施例３】
【００２８】
実施例３について説明する。実施例３では、複数のサーバ装置３０上でそれぞれＶＭ（Virtual  Machine：仮想マシン）３１が動作し、ＶＭ３１に複数のクエリ３３が分散配置されたＣＥＰシステム２０について説明する。図３は、実施例３に係るＣＥＰシステムの構成の一例を示す図である。ＣＥＰシステム２０は、サーバ装置２１と、複数のサーバ装置３０と、管理サーバ４０とを有する。サーバ装置２１と各サーバ装置３０と管理サーバ４０との間は、ネットワーク２２を介して通信可能に接続される。かかるネットワーク２２の一態様としては、有線または無線を問わず、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の通信網が挙げられる。
【００２９】
サーバ装置３０では、ＶＭ３１が動作する。各ＶＭ３１には、複数のクエリ３３が分散配置される。サーバ装置２１は、外部ネットワーク２３を介して様々な対象からデータを受信し、受信したデータを当該データを処理対象とするクエリ３３が配置されたＶＭ３１に配信する。管理サーバ４０は、サーバ装置２１および各サーバ装置３０を管理しており、各ＶＭ３１に配置されたクエリ３３の移動を制御する。なお、図３の例では、サーバ装置３０を３つ図示したが、サーバ装置３０の数は何れであってもよい。
【００３０】
図４は、実施例３に係るＣＥＰシステムの構成を模式的に示した図である。サーバ装置２１、ＶＭ３１および管理サーバ４０は、各クエリ３３が処理対象とするデータ毎に、クエリ３３の配置先を格納したルーティングテーブル５０を記憶する。
【００３１】
サーバ装置２１は、外部ネットワーク２３を介して様々な対象から多数のデータを受信する。サーバ装置２１は、受信したデータを所定のデータ構成に整える前処理を行う。そして、サーバ装置２１は、ルーティングテーブル５０に基づき、受信したデータを処理対象とするクエリ３３の配置先を特定し、特定した配置先のＶＭ３１へ前処理後のデータを送信する。なお、本実施例では、サーバ装置２１を１つ図示したが、サーバ装置２１を複数設け、複数のサーバ装置２１により受信したデータを振り分けてもよい。
【００３２】
ＶＭ３１は、それぞれデータストリーム処理エンジン３２を動作させる。データストリーム処理エンジン３２は、複合イベント処理を実現するソフトウェアである。データストリーム処理エンジン３２は、受信したデータと、クエリ３３の条件式とを突合させてイベントを検出し、検出したイベントの処理を実行する制御を行う。また、ＣＥＰシステム２０では、複数のクエリ３３により一連の処理を実行させることもできる。例えば、上位のクエリ３３による実行結果のデータを下位のクエリ３３へ送信し、下位のクエリ３３の入力のデータとすることもできる。データストリーム処理エンジン３２は、複数のクエリ３３により一連の処理を実行する場合、クエリ３３の実行結果のデータを下位のクエリ３３が動作するＶＭ３１へ送信する。また、データストリーム処理エンジン３２は、管理サーバ４０からのクエリ３３の移動の指示に応じて、他のＶＭ３１上で動作するデータストリーム処理エンジン３２との間でクエリ３３を移動させる制御を行う。
【００３３】
ここで、クエリ３３の移動について説明する。クエリ３３は、付随するデータを有する場合がある。例えば、クエリ３３が処理対象とするデータの一定期間の平均を求める処理を行う場合、平均を算出するために一定期間に受信したデータを保持する。また、クエリ３３は、処理にテーブルなどの所定のデータを用いる場合もある。データストリーム処理エンジン３２は、クエリ３３を移動させる場合、クエリ３３およびクエリ３３に付随するデータを処理要素として移動させる。
【００３４】
また、クエリ３３の移動には、以下のようなケースが考えられる。図５Ａは、クエリの移動の一例を示す図である。図５Ａに示すように、クエリ３３毎に処理対象とするデータが異なる場合、クエリ３３を移動させ、移動先で処理対象とするデータを処理させる。例えば、処理を分散させる場合、各クエリ３３をそれぞれ別なＶＭ３１に移動させて、各ＶＭ３１によりデータを処理させる。一方、例えば、処理負荷が低い場合、クエリ３３を１つのＶＭ３１に移動させ、１つのＶＭ３１によりデータを処理させる。
【００３５】
一方、クエリ３３は、処理対象とするデータが複数である場合がある。例えば、データとして証券コードおよび株価がＶＭ３１に配信され、証券コード毎に株価の一定期間の移動平均を求める処理を１つのクエリ３３により行う場合がある。図５Ｂは、クエリの移動の他の一例を示す図である。図５Ｂの左側に示すように、クエリ３３は、データ１〜ｎを処理対象とする。この場合、処理対象のデータ１〜ｎ毎に、クエリ３３を移動させる。例えば、処理の分散を行う場合、クエリ３３を複製して別なＶＭ３１に移動させ、処理対象のデータ１〜ｎをそれぞれ別なＶＭ３１により処理させる。一方、例えば、処理負荷が低い場合、クエリ３３を１つのＶＭ３１にまとめ、処理対象のデータ１〜ｎを１つのＶＭ３１により処理させる。
【００３６】
ところで、各クエリ３３に対して個別に移動を指示して移動させた場合、移動対象のクエリ３３の数が多くなるほど移動の指示回数が多くなる。また、クエリ３３が処理対象とするデータ毎に、ルーティングテーブル５０に配置先を格納する場合、ルーティングテーブル５０は、クエリ３３が処理対象とするデータが多くなるほどデータ量が大きくなる。そこで、本実施例では、複数のクエリ３３を複数のグループに分け、グループ毎に移動する。また、ルーティングテーブル５０は、グループ毎に格納先を管理する。図６は、クエリ３３のグループ分けの一例を示す図である。例えば、処理対象とする各データに、３２ビットの整数データにより、各データを識別するキーが含まれ、それぞれのクエリ３３の処理の条件に異なるキーが設定されているものとする。この場合、例えば、処理の条件に設定されたキーを所定の整数値で割った余りが同じクエリ３３を同一のグループとしてグループ分けする。一例としては、処理の条件に設定されたキーを８１９１で割った余りが同じクエリ３３を同一のグループとして静的にグループを分ける。これにより、各クエリ３３は、８１９１個のグループに分かれる。図６の例では、クエリ３３をグループ分けした各グループをＶ−Ｎｏｄｅと示している。そして、本実施例では、Ｖ−Ｎｏｄｅ毎に、クエリ３３をＶＭ３１に配置する。
【００３７】
ルーティングテーブル５０には、Ｖ−Ｎｏｄｅ毎に配置先を格納する。図７は、ルーティングテーブルのデータ構成の一例を示す図である。図７に示すように、ルーティングテーブル５０は、ＩＤ、格納先の各項目を有する。ＩＤの項目は、Ｖ−Ｎｏｄｅを識別するＩＤを記憶する領域である。格納先の項目は、格納先のＶＭ３１を示すＩＤを記憶する領域である。図７の例では、ＩＤが「１２」のＶ−Ｎｏｄｅは、格納先のＶＭ３１のＩＤが「１」であることを示す。
【００３８】
サーバ装置２１および各ＶＭ３１のデータストリーム処理エンジン３２は、キーに基づいてクエリ３３の格納先を判別する。例えば、サーバ装置２１は、受信したデータに含まれるキーが８２０３であった場合、８２０３を８１９１で割った余り、１２を求める。そして、サーバ装置２１は、ルーティングテーブル５０からＶ−ＮｏｄｅのＩＤが１２の格納先を求める。図７の例では、Ｖ−ＮｏｄｅのＩＤが１２の格納先のＶＭ３１のＩＤが１であると求まる。
【００３９】
各ＶＭ３１は、それぞれ通信を行うＩＰアドレスおよびポート番号が定められ、各ＶＭ３１のＩＰアドレスおよびポート番号に対応してファイルディスクリプタが割り当てられる。サーバ装置２１、各ＶＭ３１および管理サーバ４０は、それぞれファイルディスクリプタの番号と各ＶＭ３１を示すＩＤを格納先テーブルに記憶する。図８は、格納先テーブルのデータ構成の一例を示す図である。図８に示すように、格納先テーブルは、ＩＤ、ファイルディスクリプタの各項目を有する。ＩＤの項目は、ＶＭ３１のＩＤを記憶する領域である。ファイルディスクリプタの項目は、ＩＤが示すＶＭ３１への通信路に割り当てられファイルディスクリプタの番号を記憶する領域である。図８の例では、ＩＤが「０」のＶＭ３１への通信路に割り当てられファイルディスクリプタの番号が「６」であることを示す。
【００４０】
ＶＭ３１と通信を行う場合、格納先テーブルから通信対象のＶＭ３１のＩＤに対応するファイルディスクリプタの番号を求める。例えば、通信対象のＶＭ３１のＩＤが「１」である場合、格納先テーブルからＶＭ３１のＩＤが１のファイルディスクリプタの番号を「７」と求まる。そして、求めたファイルディスクリプタの番号を用いてＴＣＰ／ＩＰのソケットにより通信対象のＶＭ３１と通信を行う。
【００４１】
各ＶＭ３１は、それぞれ配置されたクエリ３３が処理対象とするデータが配信される時間間隔、および所定の基準からの位相を検出し、検出した期間および位相を周期を示す周期情報として管理サーバ４０へ送信する。管理サーバ４０は、受信した周期情報に基づいて各クエリ３３が処理対象とするデータが配信される周期を特定する。
【００４２】
また、各ＶＭ３１は、それぞれサーバ装置３０から割り当てられたＣＰＵやメモリの使用率などのリソースの負荷状態を検出し、検出した負荷状態を示す負荷情報を管理サーバ４０へ送信する。管理サーバ４０は、各ＶＭ３１から送信された負荷情報に基づき、移動対象のクエリ３３を特定する。そして、管理サーバ４０は、移動対象のクエリ３３にデータが配信されない期間に移動指示を送信する。なお、本実施例では、Ｖ−Ｎｏｄｅ単位でクエリ３３の移動を行う。管理サーバ４０は、移動先のＶＭ３１のＩＤおよび移動対象のＶ−ＮｏｄｅのＩＤを含んだ移動指示を移動元のＶＭ３１に送信する。移動指示を受信したＶＭ３１のデータストリーム処理エンジン３２は、移動対象のＶ−Ｎｏｄｅに属するクエリ３３や当該クエリ３３に付随するデータなどの処理要素をシリアライズして移動先のＶＭ３１へ送信する。
【００４３】
移動先のＶＭ３１のデータストリーム処理エンジン３２は、送信されたデータをデシリアライズして復元し、復元されたクエリ３３の駆動を開始する。また、データストリーム処理エンジン３２は、ルーティングテーブル５０に格納された移動対象のＶ−Ｎｏｄｅに属するクエリ３３の格納先を自身が動作するＶＭ３１のＩＤに更新する。そして、データストリーム処理エンジン３２は、各ＶＭ３１、サーバ装置２１および管理サーバ４０に対して移動対象のＶ−ＮｏｄｅのＩＤおよび移動先のＶＭ３１のＩＤを通知する。
【００４４】
各ＶＭ３１、サーバ装置２１および管理サーバ４０は、移動が通知された場合、ルーティングテーブル５０に格納された移動対象のＶ−Ｎｏｄｅに属するクエリ３３の格納先を通知された移動先のＶＭ３１のＩＤに更新する。
【００４５】
図９は、実施例３に係る管理サーバおよびＶＭの機能的な構成の一例を示す図である。図９に示すように、ＶＭ３１は、データストリーム処理エンジン３２と、検出部３４と、送信部３５と、受付部３６と、移動部３７とを有する。
【００４６】
データストリーム処理エンジン３２は、ＶＭ３１に配信されたデータと、クエリ３３の条件式とを突合させてイベントを検出し、検出したイベントの処理を実行する。
【００４７】
検出部３４は、各種の検出を行う。例えば、検出部３４は、配置された各クエリ３３毎に、当該クエリ３３が処理対象とするデータが配信される時間間隔、および所定の基準からの位相を定期的に検出する。また、検出部３４は、ＶＭ３１のリソースの負荷状態を定期的に検出する。
【００４８】
送信部３５は、各種の送信を行う。例えば、送信部３５は、検出部３４により検出された各クエリ３３が処理対象とするデータが配信の時間間隔および位相を周期を示す周期情報として管理サーバ４０へ定期的に送信する。また、送信部３５は、検出部３４により定期的に検出された負荷状態を示す負荷情報を管理サーバ４０へ移動する。
【００４９】
受付部３６は、各種の指示を受け付ける。例えば、受付部３６は、Ｖ−Ｎｏｄｅの移動の指示を受け付ける。
【００５０】
移動部３７は、各種の移動を行う。例えば、移動部３７は、Ｖ−Ｎｏｄｅの移動指示を受け付けた場合、移動対象のＶ−Ｎｏｄｅの各クエリ３３を移動先のＶＭ３１へ移動する。なお、検出部３４、送信部３５、受付部３６、移動部３７の各処理は、データストリーム処理エンジン３２が行ってもよい。
【００５１】
一方、管理サーバ４０は、通信制御Ｉ／Ｆ部４１と、記憶部４２と、制御部４３とを有する。
【００５２】
通信制御Ｉ／Ｆ部４１は、少なくとも１つのポートを有し、各ＶＭ３１、サーバ装置２１との間の通信を制御するインタフェースである。通信制御Ｉ／Ｆ部４１は、各ＶＭ３１およびサーバ装置２１と各種情報を送受信する。例えば、通信制御Ｉ／Ｆ部４１は、ＶＭ３１から周期情報や負荷情報を受信する。また、通信制御Ｉ／Ｆ部４１は、ＶＭ３１へ各種指示を送信する。
【００５３】
記憶部４２は、各種情報を記憶する。例えば、記憶部４２は、上述したルーティングテーブル５０と、周期情報５１とを記憶する。記憶部４２のデバイスの一例としては、フラッシュメモリやＮＶＳＲＡＭ(Non  Volatile  Static  Random  Access  Memory)などのデータを書き換え可能な半導体メモリや、ハードディスク、光ディスクなどの記憶装置が挙げられる。
【００５４】
制御部４３は、例えば、内部メモリ等を有するＣＰＵなどの電子回路であり、判定部４３ａと、特定部４３ｂと、指示部４３ｃとを有する。
【００５５】
判定部４３ａは、各種の判定を行う。例えば、判定部４３ａは、各ＶＭ３１から送信された負荷情報により示される各ＶＭ３１の負荷状態に許容される負荷以上のものがあるか否か判定する。
【００５６】
特定部４３ｂは、各種の特定を行う。例えば、特定部４３ｂは、記憶部４２に記憶された周期情報５１に基づき、Ｖ−Ｎｏｄｅ毎に、各Ｖ−Ｎｏｄｅに属するクエリが処理対象とするデータが配信される周期を特定する。また、特定部４３ｂは、各ＶＭ３１から周期情報５１を受信する毎に、周期の特定をし直す。
【００５７】
また、特定部４３ｂは、判定部４３ａにより許容される負荷以上と判定されたＶＭ３１がある場合、許容される負荷以上のＶＭ３１を移動元と特定する。また、特定部４３ｂは、負荷状態の低い何れかのＶＭ３１を移動先と特定する。また、特定部４３ｂは、許容される負荷以上のＶＭ３１に配置された何れかのＶ−Ｎｏｄｅを移動対象と特定する。そして、特定部４３ｂは、Ｖ−Ｎｏｄｅ毎のデータが配信される周期に基づき、移動対象のＶ−Ｎｏｄｅの各クエリ３３が処理対象とするデータが配信されない期間を特定する。例えば、特定部４３ｂは、現在の時刻からＶ−Ｎｏｄｅ単位でのクエリ３３の移動が可能な所定期間毎に、当該所定期間に移動対象のＶ−Ｎｏｄｅに属する何れかのクエリ３３の処理対象のデータが受信されるかを判定し、データが受信されない期間を特定する。また、例えば、特定部４３ｂは、Ｖ−Ｎｏｄｅ毎のデータが配信される周期に基づき、移動対象のＶ−Ｎｏｄｅの各クエリ３３が処理対象とするデータが配信されない期間を特定する。そして、特定部４３ｂは、特定した期間がＶ−Ｎｏｄｅ単位でのクエリ３３の移動が可能な所定期間以上である場合、特定した期間をデータが受信されない期間と特定する。
【００５８】
指示部４３ｃは、特定部４３ｂにより特定されたデータが受信されない期間にＶ−Ｎｏｄｅの移動を指示する。例えば、指示部４３ｃは、データが受信されない期間に、許容される負荷以上と判定されたＶＭ３１を移動元とし、負荷状態の低いＶＭ３１を移動先として、移動対象のＶ−Ｎｏｄｅの移動の指示を送信する。
【００５９】
次に、本実施例に係る管理サーバ４０がクエリ３３の移動を指示する処理の流れを説明する。図１０は、移動制御処理の手順を示すフローチャートである。この移動制御処理は、例えば、許容される負荷以上の負荷状態のＶＭ３２がある場合に実行される。
【００６０】
図１０に示すように、特定部４３ｂは、記憶部４２に記憶された周期情報５１に基づき、Ｖ−Ｎｏｄｅ毎に、データが配信される周期を特定する（ステップＳ１０）。また、特定部４３ｂは、許容される負荷以上のＶＭ３１を移動元、負荷状態の低いＶＭ３１を移動先、許容される負荷以上のＶＭ３１に配置された何れかのＶ−Ｎｏｄｅを移動対象のＶ−Ｎｏｄｅと特定する（ステップＳ１１）。そして、特定部４３ｂは、Ｖ−Ｎｏｄｅ毎に特定した周期に基づき、データが配信されない期間を特定する（ステップＳ１２）。指示部４３ｃは、特定された期間にＶ−Ｎｏｄｅの移動を指示し（ステップＳ１３）、処理を終了する。
【００６１】
このように、管理サーバ４０は、Ｖ−Ｎｏｄｅ毎に、Ｖ−Ｎｏｄｅに属するクエリが処理対象とするデータが配信される周期を特定する。そして、管理サーバ４０は、特定した周期に基づき、移動対象のＶ−Ｎｏｄｅの各クエリ３３が処理対象とするデータが配信されない期間に移動元のＶＭ３２に移動対象のＶ−Ｎｏｄｅの各クエリ３３の移動を指示する。これにより、管理サーバ４０によれば、移動対象のＶ−Ｎｏｄｅの各クエリ３３によるデータの処理と、移動対象のＶ−Ｎｏｄｅの各クエリ３３の移動のタイミングが重なることを抑制できるため、データ処理の遅延を抑制できる。
【００６２】
また、管理サーバ４０によれば、定期的に周期を特定し直すため、クエリ３３が処理対象とするデータが配信される周期に変動があっても、クエリ３３によるデータの処理と、クエリ３３の移動のタイミングが重なることを抑制できる。
【実施例４】
【００６３】
実施例４について説明する。実施例４に係るＣＥＰシステムの構成は、上述の実施例３とほぼ同様であるため、異なる部分について説明する。本実施例も、上述の実施例３と同様に、複数のクエリ３３を複数のグループに分け、グループ毎に移動する。また、本実施例は、クエリ３３が所属するグループを動的に変更可能としている。図１１は、クエリのグループ分けの一例を示す図である。図１１に示すように、クエリ３３は、所属するＶ−Ｎｏｄｅを動的に変更可能とされている。そして、本実施例も、Ｖ−Ｎｏｄｅ毎に、クエリ３３をＶＭ３１に配置する。
【００６４】
図１２は、実施例４に係るＣＥＰシステムの構成を模式的に示した図である。なお、上述の実施例３と同一の部分については、同一の符号を付してその説明を省略する。図１２に示すように、サーバ装置２１、ＶＭ３１および管理サーバ４０は、各クエリ３３が所属するＶ−Ｎｏｄｅを格納したノードテーブル５２をさらに記憶する。
【００６５】
ノードテーブル５２は、各クエリ３３の所属するＶ−Ｎｏｄｅを記憶するテーブルである。図１３は、ノードテーブルのデータ構成の一例を示す図である。図１３に示すようにノードテーブル５２は、キー、ノードＩＤの各項目を有する。キーの項目は、各クエリ３３が処理対象とするデータを識別するキーを記憶する領域である。ＩＤの項目は、Ｖ−ＮｏｄｅのＩＤを記憶する領域である。図１３の例では、処理の条件のキーが「１２３４」であるクエリ３３は、ＩＤが「１２」のＶ−Ｎｏｄｅに所属することを示す。本実施例では、クエリ３３が処理対象とするデータに含まれるキーに基づき、データの配信先を求める。また、クエリ３３に処理条件として設定されたキーに基づき、クエリ３３の配置先を求める。例えば、サーバ装置２１は、データを受信した場合、ノードテーブル５２に基づき、受信したデータに含まれるキーに対応するＶ−ＮｏｄｅのＩＤを求める。そして、サーバ装置２１は、ルーティングテーブル５０に基づき、Ｖ−ＮｏｄｅのＩＤに対応する格納先のＶＭ３１のＩＤを求め、受信したデータを格納先のＶＭ３１に送信する。
【００６６】
図１４は、実施例４に係る管理サーバおよびＶＭの機能的な構成の一例を示す図である。なお、上述の実施例３と同一の部分については、同一の符号を付してその説明を省略する。図１４に示すように、管理サーバ４０の制御部４３は、分類部４３ｄをさらに有する。
【００６７】
特定部４３ｂは、記憶部４２に記憶された周期情報５１に基づき、複数のクエリ３３についてそれぞれ処理対象とするデータが配信される周期を特定する。なお、周期情報５１は、各ＶＭ３１から定期的に送信される。特定部４３ｂは、新しい周期情報５１が受信される毎に、周期の特定をし直す。
【００６８】
分類部４３ｄは、各種の分類を行う。例えば、分類部４３ｄは、特定部４３ｂにより特定した周期に基づき、周期が同一かつ位相が近いクエリ３３を同じグループとして各クエリ３３を複数のグループに分類する。一例として、分類部４３ｄは、周期が同一のクエリ３３を位相の順にソートし、所定個ずつのグループに分ける。他の一例として、分類部４３ｄは、周期が同一のクエリ３３について、当該周期を複数の期間に分け、位相が同じ期間に属するクエリ３３を同じグループとしてグループに分ける。そして、分類部４３ｄは、グループ毎にＶ−ＮｏｄｅのＩＤを定める。
【００６９】
指示部４３ｃは、分類部４３ｄによる分類の結果、所属するＶ−Ｎｏｄｅが変化したクエリ３３がある場合、当該クエリ３３を新しいＶ−Ｎｏｄｅの配置先へ移動させる移動の指示を送信する。また、指示部４３ｃは、記憶部４２に記憶されたノードテーブル５２の所属するＶ−Ｎｏｄｅが変化したクエリ３３のＶ−ＮｏｄｅのＩＤを新しいＶ−ＮｏｄｅのＩＤに更新する。さらに、指示部４３ｃは、所属するＶ−Ｎｏｄｅが変化したクエリ３３のキーと新しいＶ−ＮｏｄｅのＩＤを含んだノードテーブル５２の更新の指示を各ＶＭ３１およびサーバ装置２１へ送信する。
【００７０】
各ＶＭ３１およびサーバ装置２１は、ノードテーブル５２の更新の指示を受信した場合、当該指示に基づき、ノードテーブル５２の所属するＶ−Ｎｏｄｅが変化したクエリ３３のＶ−ＮｏｄｅのＩＤを新しいＶ−ＮｏｄｅのＩＤに更新する。
【００７１】
次に、本実施例に係る管理サーバ４０がクエリ３３を分類する処理の流れを説明する。図１５は、分類処理の手順を示すフローチャートである。この分類処理は、例えば、管理者から指示されたタイミング、あるいは、特定部４３ｂによりデータが配信される周期が特定されたタイミングなど定期的に実行される。
【００７２】
図１５に示すように、分類部４３ｄは、特定部４３ｂにより特定された周期に基づき、周期が同一かつ位相が近いクエリ３３を同じグループとして各クエリ３３を複数のグループに分類する（ステップＳ２０）。指示部４３ｃは、分類の結果、所属するＶ−Ｎｏｄｅが変化したクエリ３３があるか否か判定する（ステップＳ２１）。所属するＶ−Ｎｏｄｅが変化したクエリ３３がない場合（ステップＳ２１否定）、処理を終了する。一方、所属するＶ−Ｎｏｄｅが変化したクエリ３３がある場合（ステップＳ２１肯定）、指示部４３ｃは、ノードテーブル５２の所属するＶ−Ｎｏｄｅが変化したクエリ３３のＶ−ＮｏｄｅのＩＤを新しいＶ−ＮｏｄｅのＩＤに更新する（ステップＳ２２）。そして、指示部４３ｃは、ノードテーブル５２の更新の指示を各ＶＭ３１およびサーバ装置２１へ送信し（ステップＳ２３）、処理を終了する。
【００７３】
このように、管理サーバ４０は、周期が同一かつ位相が近いクエリ３３を同じグループとして複数のクエリ３３を複数のＶ−Ｎｏｄｅに分類する。よって、Ｖ−Ｎｏｄｅに属する各クエリが処理対象とするデータが配信される時期が特定の時期に偏る。これにより、管理サーバ４０によれば、Ｖ−Ｎｏｄｅ単位でクエリ３３を移動させる場合に、特定の時期以外の期間にクエリ３３を移動させることより、クエリ３３による処理対象とするデータの処理と、クエリ３３の移動のタイミングが重なることを抑制できる。
【００７４】
また、管理サーバ４０は、定期的にデータが配信される周期を特定し直し、特定し直された周期に基づいてグループの分類をし直す。これにより、管理サーバ４０によれば、クエリ３３が処理対象とするデータが配信される周期に変動があっても、クエリ３３によるデータの処理と、クエリ３３の移動のタイミングが重なることを抑制できる。
【実施例５】
【００７５】
実施例５について説明する。実施例５に係るＣＥＰシステムの構成は、上述の実施例３とほぼ同様であるため、異なる部分について説明する。
【００７６】
図１６は、実施例５に係る管理サーバおよびＶＭの機能的な構成の一例を示す図である。なお、上述の実施例３と同一の部分については、同一の符号を付してその説明を省略する。図１６に示すように、ＶＭ３１は、特定部３８をさらに有する。
【００７７】
特定部３８は、検出部３４により検出された各クエリ３３が処理対象とするデータが配信される時間間隔および位相に基づき、Ｖ−Ｎｏｄｅ毎に、各Ｖ−Ｎｏｄｅに属するクエリ３３が処理対象とするデータが配信される周期を特定する。そして、特定部３８は、Ｖ−Ｎｏｄｅ毎のデータが配信される周期に基づき、Ｖ−Ｎｏｄｅの各クエリ３３が処理対象とするデータが配信されない期間を特定する。
【００７８】
管理サーバ４０の指示部４３ｃは、許容される負荷以上と判定されたＶＭ３１がある場合、Ｖ−Ｎｏｄｅの移動を指示する。例えば、指示部４３ｃは、許容される負荷以上と判定されたＶＭ３１を移動元とし、負荷状態の低いＶＭ３１を移動先として、許容される負荷以上のＶＭ３１の何れかのＶ−Ｎｏｄｅを移動対象として移動の指示を送信する。
【００７９】
移動部３７は、Ｖ−Ｎｏｄｅの移動指示を受け付けた場合、特定部３８により特定されたデータが配信されない期間に、移動対象のＶ−Ｎｏｄｅの各クエリ３３を移動先のＶＭ３１へ移動する。
【００８０】
このように、ＶＭ３１は、配置されたクエリ３３が処理対象とするデータが配信された場合、当該クエリ３３の処理を実行する。また、ＶＭ３１は、クエリ３３が処理対象とするデータが配信される周期を特定する。また、ＶＭ３１は、クエリ３３の移動の指示を受け付ける。そして、ＶＭ３１は、クエリ３３の移動指示を受け付けた場合、特定した周期に基づき、当該クエリ３３が処理対象とするデータが配信されない期間に当該クエリ３３を移動先のＶＭ３１へ移動する。これにより、ＶＭ３１によれば、移動対象のクエリ３３によるデータの処理と、移動対象のクエリ３３の移動のタイミングが重なることを抑制できるため、データ処理の遅延を抑制できる。
【実施例６】
【００８１】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００８２】
例えば、上記の実施例３では、特定部４３ｂは、現在の時刻から所定期間毎に、データが受信されるかを判定してデータが受信されない期間を特定する場合について説明したが、開示の装置はこれに限定されない。例えば、特定部４３ｂは、現在の時刻から移動の遅延が許容される所定の許容期間以内にデータが受信されない所定期間が無い場合、受信されるデータの数が最も少ない所定期間を移動対象のＶ−Ｎｏｄｅを移動させる期間と特定してもよい。また、特定部４３ｂは、受信されるデータの数が最も少ない所定期間に代えて、受信されるデータの数が所定数以下の最も早い所定期間を移動対象のＶ−Ｎｏｄｅを移動させる期間と特定してもよい。これにより、データが受信されない所定期間が無い場合や、所定期間までの時間が許容期間以上の場合も、Ｖ−Ｎｏｄｅを移動させる期間を特定できる。
【００８３】
また、上記の実施例３〜５では、複数のクエリ３３を複数のグループに分けたＶ−Ｎｏｄｅ単位でクエリ３３を移動させる場合について説明したが、開示の装置はこれに限定されない。例えば、クエリ３３単位で移動させてもよい。この場合、ルーティングテーブル５０は、クエリ３３単位で格納先を記憶できるように構成すればよい。
【００８４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図１、図２に示す特定部１３、指示部１４、選択部１５の各処理部が適宜統合されてもよい。また、例えば、図９、図１４、図１６に示す判定部４３ａ、特定部４３ｂ、指示部４３ｃ、分類部４３ｄの各処理部が適宜統合されてもよい。また、例えば、図９、図１４、図１６に示すデータストリーム処理エンジン３２と、検出部３４と、送信部３５と、受付部３６と、移動部３７、特定部３８の各処理部が適宜統合されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８５】
［移動制御プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図１７は、移動制御プログラムを実行するコンピュータを示す図である。
【００８６】
図１７に示すように、コンピュータ３００は、ＣＰＵ（Central  Processing  Unit）３１０、ＲＯＭ（Read  Only  Memory）３２０、ＨＤＤ（Hard  Disk  Drive）３３０、ＲＡＭ（Random  Access  Memory）３４０を有する。これら３１０〜３４０の各部は、バス４００を介して接続される。
【００８７】
ＲＯＭ３２０には上記実施例１〜５の各処理部と同様の機能を発揮する移動制御プログラム３２０ａが予め記憶される。例えば、上記実施例１および実施例２の特定部１３と、指示部１４、選択部１５と同様の機能を発揮する移動制御プログラム３２０ａを記憶させる。あるいは、例えば、上記実施例３および実施例４の判定部４３ａと、特定部４３ｂと、指示部４３ｃ、分類部４３ｄと同様の機能を発揮する移動制御プログラム３２０ａを記憶させる。あるいは、上記実施例３〜５の検出部３４と、送信部３５と、受付部３６と、移動部３７、特定部３８と同様の機能を発揮する移動制御プログラム３２０ａを記憶させる。なお、移動制御プログラム３２０ａについては、適宜分離しても良い。
【００８８】
そして、ＣＰＵ３１０が、移動制御プログラム３２０ａをＲＯＭ３２０から読み出して実行することで、実施例１〜５の各制御部と同様の動作を実行する。すなわち、移動制御プログラム３２０ａは、実施例１および実施例２の特定部１３と、指示部１４、選択部１５と同様の動作を実行する。あるいは、移動制御プログラム３２０ａは、実施例３および実施例４の判定部４３ａと、特定部４３ｂと、指示部４３ｃ、分類部４３ｄと同様の動作を実行する。あるいは、移動制御プログラム３２０ａは、実施例３〜５の検出部３４と、送信部３５と、受付部３６と、移動部３７、特定部３８と同様の動作を実行する。
【００８９】
なお、上記した移動制御プログラム３２０ａについては、必ずしも最初からＲＯＭ３２０に記憶させることを要しない。移動制御プログラム３２０ａはＨＤＤ３３０に記憶させてもよい。
【００９０】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【００９１】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００９２】
１０    サーバ装置
１１    ノード
１２    クエリ
１３    特定部
１４    指示部
１５    選択部
２０    ＣＥＰシステム
２１    サーバ装置
３０    サーバ装置
３１    ＶＭ
３２    データストリーム処理エンジン
３３    クエリ
３４    検出部
３５    送信部
３６    受付部
３７    移動部
３８    特定部
４０    管理サーバ
４２    記憶部
４３ａ  判定部
４３ｂ  特定部
４３ｃ  指示部
４３ｄ  分類部
５０    ルーティングテーブル
５１    周期情報
５２    ノードテーブル
【図１】
0005927871.tif 000002
【図２】
0005927871.tif 000003
【図３】
0005927871.tif 000004
【図４】
0005927871.tif 000005
【図５Ａ】
0005927871.tif 000006
【図５Ｂ】
0005927871.tif 000007
【図６】
0005927871.tif 000008
【図７】
0005927871.tif 000009
【図８】
0005927871.tif 000010
【図９】
0005927871.tif 000011
【図１０】
0005927871.tif 000012
【図１１】
0005927871.tif 000013
【図１２】
0005927871.tif 000014
【図１３】
0005927871.tif 000015
【図１４】
0005927871.tif 000016
【図１５】
0005927871.tif 000017
【図１６】
0005927871.tif 000018
【図１７】
0005927871.tif 000019