(57)【特許請求の範囲】
【請求項１】
複数の処理ノードを用いてデータストリームを処理するデータストリーム処理システムであって、
前記データストリームの処理中に、所定のデータ消失防止処理を行って前記処理ノードを再配置する処理を実行する処理ノード再配置手段と、
前記データストリームの処理を行う処理ネットワークとを備え、
前記処理ネットワークは、前記データストリームを処理する物理的な計算機リソースとして複数の情報処理装置を含み、
前記各処理ノードは、前記処理ネットワークに含まれる前記複数の情報処理装置を用いて割り当てられ、
前記処理ノード再配置手段は、前記データストリームに対して所定の要約処理を実行する要約手段を含み、
前記処理ネットワークは、前記処理ノード再配置手段により前記処理ノードの再配置が行われた後に、前記要約手段によって要約処理された前記データストリームの処理を開始する
ことを特徴とするデータストリーム処理システム。
【請求項２】
複数の処理ノードを用いてデータストリームを処理するデータストリーム処理システムであって、
前記データストリームの処理中に、所定のデータ消失防止処理を行って前記処理ノードを再配置する処理を実行する処理ノード再配置手段と、
前記データストリームの処理を行う処理ネットワークを備え、
前記処理ネットワークは、前記データストリームを処理する物理的な計算機リソースとして複数の情報処理装置を含み、
前記各処理ノードは、前記処理ネットワークに含まれる前記複数の情報処理装置を用いて割り当てられ、
前記処理ノード再配置手段は、前記データストリームに対して所定の圧縮処理を実行する圧縮手段を含み、
前記処理ネットワークは、前記処理ノード再配置手段により前記処理ノードの再配置が行われた後に、前記圧縮手段によって圧縮処理された前記データストリームの処理を開始する
ことを特徴とするデータストリーム処理システム。
【請求項３】
処理ノード再配置手段は、処理ネットワークに含まれる処理ノード間のデータフローを接続したり、前記処理ノード間のデータフローを遮断したりする処理を実行するデータフロー制御手段を含み、
前記データフロー制御手段は、前記処理ノードの再配置を開始するときに、再配置の移動元となる処理ノードである移動元ノードへのデータフローを遮断して、データストリームの入力を停止させる処理を行い、
前記処理ノード再配置手段は、前記データフロー制御手段によって入力を停止されたデータフローを蓄積するバッファノードを生成するバッファノード制御手段をさらに含み、
前記処理ネットワークは、前記処理ノード再配置手段により処理ノードの再配置が行われた後に、前記バッファノードに蓄積されたデータストリームの処理を開始する
請求項２記載のデータストリーム処理システム。
【請求項４】
処理ノード再配置手段は、処理ネットワークに含まれる各処理ノードを起動させたり、前記各処理ノードを停止させたりする処理を実行する処理ノード制御手段を含み、
前記処理ノード制御手段は、
移動元ノードが当該移動元ノードを安全に停止可能な所定のインタフェースを有するか否かを判定し、
前記所定のインタフェースを有すると判定すると、当該所定のインタフェースを用いて前記移動元ノードを停止させる処理を実行する
請求項２又は請求項３記載のデータストリーム処理システム。
【請求項５】
処理ノード制御手段は、移動元ノードが所定のインタフェースを有しないと判定すると、所定時間待機した後に、前記移動元ノードを停止させる処理を実行する
請求項４記載のデータストリーム処理システム。
【請求項６】
処理ノード制御手段は、処理ネットワーク内に複数の移動元ノードが含まれる場合には、前記複数の移動元ノードのうち上流側に位置する移動元ノードから順に停止させる処理を実行する
請求項４又は請求項５記載のデータストリーム処理システム。
【請求項７】
処理ノード再配置手段は、処理ノード制御手段によって移動元ノードが停止されると、前記移動元ノードから内部状態を示す情報を抽出し、抽出した前記内部状態を示す情報を、再配置の移動先となる処理ノードである移動先ノードに格納させる処理ノード内部状態制御手段を含む
請求項４から請求項６のうちのいずれか１項に記載のデータストリーム処理システム。
【請求項８】
処理ノード再配置手段は、処理ネットワークに含まれる複数の情報処理装置間にまたがって処理ノードの再配置が行われる場合に、前記情報処理装置間でデータストリームを送受信するための送信ノード及び受信ノードを生成する送受信ノード生成手段を含む
請求項２から請求項７のうちのいずれか１項に記載のデータストリーム処理システム。
【請求項９】
複数の処理ノードを用いてデータストリームを処理する場合に前記処理ノードの再配置を行う処理ノード再配置装置であって、
前記データストリームの処理中に、所定のデータ消失防止処理を行って前記処理ノードを再配置する処理を実行する処理ノード再配置手段と、
前記データストリームに対して所定の要約処理を実行する要約手段とを備えた
ことを特徴とする処理ノード再配置装置。
【請求項１０】
複数の処理ノードを用いてデータストリームを処理する場合に前記処理ノードの再配置を行う処理ノード再配置装置であって、
前記データストリームの処理中に、所定のデータ消失防止処理を行って前記処理ノードを再配置する処理を実行する処理ノード再配置手段と、
前記データストリームに対して所定の圧縮処理を実行する圧縮手段とを備えた
ことを特徴とする処理ノード再配置装置。
【請求項１１】
複数の処理ノードを用いてデータストリームを処理するデータストリーム処理方法であって、
前記データストリームの処理中に、所定のデータ消失防止処理を行って前記処理ノードを再配置する処理を実行する処理ノード再配置ステップを含み、
前記データストリームは、処理ネットワークにより処理されるものであり、
前記処理ネットワークは、前記データストリームを処理する物理的な計算機リソースとして複数の情報処理装置を含むものであり、
前記各処理ノードは、前記処理ネットワークに含まれる前記複数の情報処理装置を用いて割り当てられるものであり、
前記データストリーム処理方法は、
前記処理ノード再配置ステップに伴って、前記データストリームに対して所定の要約処理を実行するステップと、
前記処理ノードの再配置が行われた後に、前記処理ネットワークが、前記要約処理された前記データストリームの処理を開始するステップとをさらに含む
ことを特徴とするデータストリーム処理方法。
【請求項１２】
複数の処理ノードを用いてデータストリームを処理するデータストリーム処理方法であって、
前記データストリームの処理中に、所定のデータ消失防止処理を行って前記処理ノードを再配置する処理を実行する処理ノード再配置ステップを含み、
前記データストリームは、処理ネットワークにより処理されるものであり、
前記処理ネットワークは、前記データストリームを処理する物理的な計算機リソースとして複数の情報処理装置を含むものであり、
前記各処理ノードは、前記処理ネットワークに含まれる前記複数の情報処理装置を用いて割り当てられるものであり、
前記データストリーム処理方法は、
前記処理ノード再配置ステップに伴って、前記データストリームに対して所定の圧縮処理を実行するステップと、
前記処理ノードの再配置が行われた後に、前記処理ネットワークが、前記圧縮処理された前記データストリームの処理を開始するステップとをさらに含む
ことを特徴とするデータストリーム処理方法。
【請求項１３】
複数の処理ノードを用いてデータストリームを処理する場合に前記処理ノードの再配置を行うための処理ノード再配置用プログラムであって、
コンピュータに、
前記データストリームの処理中に、所定のデータ消失防止処理を行って前記処理ノードを再配置する処理を実行する処理ノード再配置処理と、
前記データストリームに対して所定の要約処理を実行させる処理とを
実行させるための処理ノード再配置用プログラム。
【請求項１４】
複数の処理ノードを用いてデータストリームを処理する場合に前記処理ノードの再配置を行うための処理ノード再配置用プログラムであって、
コンピュータに、
前記データストリームの処理中に、所定のデータ消失防止処理を行って前記処理ノードを再配置する処理を実行する処理ノード再配置処理と、
前記データストリームに対して所定の圧縮処理を実行させる処理とを
実行させるための処理ノード再配置用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データストリームを処理するデータストリーム処理システム、及びデータストリーム処理方法に関する。また、本発明は、データストリームを処理する処理ノードの再配置を行う処理ノード再配置装置、及び処理ノード再配置用プログラムに関する。
【背景技術】
【０００２】
データストリームとは、永続的に時々刻々と生成され続ける大量のデータである。一般に、大量のデータを処理するために、ＤＢＭＳ（Data Base Management System ）が用いられている。しかし、本来静的なデータを処理することに特化したＤＢＭＳでは、動的に変化し続けるデータストリームを効率よく処理できない。そこで、このようなデータを処理するための技術として、非特許文献１及び非特許文献２等に記載されたデータストリーム処理システムがある。例えば、非特許文献１及び非特許文献２には、データストリーム処理システムに関連する技術として、連続クエリを実行する複数の処理ノードから成る処理ネットワークによるデータストリーム処理システムが記載されている。
【０００３】
また、関連する技術として、例えば、特許文献１には、複数のプロセッサを用いてデータストリームを処理し、処理ノードの空き状況に応じて処理の転送を行うデータストリーム処理システムが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−１９５３０９号公報
【非特許文献】
【０００５】
【非特許文献１】The STREAM Group, "STREAM : The Stanford Stream Data Manager", IEEE Data Engineering Bulletin, 2003.
【非特許文献２】Daniel J. Abadi, et al. "Aurora : a new model and architecture for data stream management", VLDB journal, 2003.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図９は、データストリーム処理システムの構成例を示すブロック図である。図９に示すように、データストリーム処理システムは、物理サーバ１０１０−１，１０１０−２，．．．，１０１０−ｎに、処理の最小単位である複数の処理ノード１０２０−１，１０２０−２，．．．，１０２０−ｎが配置されて、処理ネットワークを構成する。そして、データストリーム処理システムは、情報発生源１０３０−１，１０３０−２，．．．，１０３０−ｎから発生するデータストリームが処理ネットワークを流れることによって、処理を行う。なお、データストリーム処理システムにおいて、処理ノード間を接続するインタフェースや、流通するデータの型は、全処理ノードで共通であるため、処理ノード同士は自由に連結することが可能である。
【０００７】
一般にデータストリームの量には変動がある。そのため、データストリームの処理量に合わせたリソースを各処理ノードに配分したいという要求（すなわち、処理ノードを任意の物理サーバに柔軟に再配置したいという要求）がある。
【０００８】
しかし、一般に、データストリーム処理システムでは、処理ノードの配置構成そのものがハードコーディングされているため、処理ノードを再配置し、構成を変更することは容易ではない。そこで、処理ノードの論理的な構成と物理的な構成とを分離し、処理ノードを任意の物理サーバに配置するデプロイメントという技術がある。
【０００９】
図１０は、データストリーム処理システムのデプロイメントの動作の例を示す説明図である。
図１０に示すように、デプロイメントを行う場合、まず、全物理サーバ２０１０−１，２０１０−２，．．．，２０１０−ｎに、それぞれ、単一物理サーバ内で論理構成を満たす全ての処理ノード２０２０−１，２０２０−２，．．．，２０２０−ｎと、どの処理ノードをどの物理サーバで起動するかを指定した物理構成設定部２０３０−１，２０３０−２，．．．，２０３０−ｎとを配置（図１０の上段参照）する。図１０において、物理サーバ上に構築される各処理ノードは、全物理サーバで同じである。一方、物理構成設定部の設定は、物理サーバ毎に異なる。
【００１０】
例えば、図１０に示す例では、物理サーバ２０２０−１の論理構成設定部２０３０−１は、処理ノード２０１０−１，２０１０−２を起動して実行するように設定しており、物理サーバ２０２０−２の論理構成設定部２０３０−２は、処理ノード２０１０−ｎを起動して実行するように設定している。そして、各物理サーバ２０１０−１，２０１０−２，．．．，２０１０−ｎは、それぞれの物理構成設定部２０３０−１，２０３０−２，．．．，２０３０−ｎで設定した処理ノードのみを起動する（図１０の下段参照）ことで、任意の配置を実現する。
【００１１】
なお、物理サーバ間にわたる処理ノードの接続を行う場合には、図１０の下段に示すように、汎用送信ノード２０４０−１，２０４０−２，．．．，２０４０−ｎ及び汎用受信ノード２０５０−１，２０５０−２，．．．，２０５０−ｎを自動的に生成し、データフローを確立する。処理ノード間のインタフェース及び流通データ型は共通であるため、汎用の送受信ノードを用いて自由にデータフローを構築することが可能である。
【００１２】
ここで、上述したデプロイメント技術では、データストリーム処理システムが稼動する前に配置を行うことを想定している。そのため、デプロイメント技術を用いてデータストリーム処理システムが稼動した状態で動的に処理ノードの再配置を行うと、次のような問題が生じる。すなわち、データストリーム処理システムを稼動したままでは再配置できないので、再配置対象の処理ノードを一旦停止する必要がある。しかし、処理ノードを無造作に止めると、処理中のデータが消えてしまう。
【００１３】
そこで、本発明は、データを消失することなく処理ノードの再配置を行えるデータストリーム処理システム、処理ノード再配置装置、データストリーム処理方法、及び処理ノード再配置用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明によるデータストリーム処理システムは、複数の処理ノードを用いてデータストリームを処理するデータストリーム処理システムであって、データストリームの処理中に、所定のデータ消失防止処理を行って処理ノードを再配置する処理を実行する処理ノード再配置手段と、データストリームの処理を行う処理ネットワークとを備え、処理ネットワークは、データストリームを処理する物理的な計算機リソースとして複数の情報処理装置を含み、各処理ノードは、処理ネットワークに含まれる複数の情報処理装置を用いて割り当てられ、処理ノード再配置手段は、データストリームに対して所定の要約処理を実行する要約手段を含み、処理ネットワークは、処理ノード再配置手段により処理ノードの再配置が行われた後に、要約手段によって要約処理されたデータストリームの処理を開始することを特徴とする。
また、本発明によるデータストリーム処理システムの他の態様は、複数の処理ノードを用いてデータストリームを処理するデータストリーム処理システムであって、データストリームの処理中に、所定のデータ消失防止処理を行って処理ノードを再配置する処理を実行する処理ノード再配置手段と、データストリームの処理を行う処理ネットワークを備え、処理ネットワークは、データストリームを処理する物理的な計算機リソースとして複数の情報処理装置を含み、各処理ノードは、処理ネットワークに含まれる複数の情報処理装置を用いて割り当てられ、処理ノード再配置手段は、データストリームに対して所定の圧縮処理を実行する圧縮手段を含み、処理ネットワークは、処理ノード再配置手段により処理ノードの再配置が行われた後に、圧縮手段によって圧縮処理されたデータストリームの処理を開始することを特徴とする。
【００１５】
本発明による処理ノード再配置装置は、複数の処理ノードを用いてデータストリームを処理する場合に処理ノードの再配置を行う処理ノード再配置装置であって、データストリームの処理中に、所定のデータ消失防止処理を行って処理ノードを再配置する処理を実行する処理ノード再配置手段と、データストリームに対して所定の要約処理を実行する要約手段とを備えたことを特徴とする。
また、本発明による処理ノード再配置装置の他の態様は、複数の処理ノードを用いてデータストリームを処理する場合に処理ノードの再配置を行う処理ノード再配置装置であって、データストリームの処理中に、所定のデータ消失防止処理を行って処理ノードを再配置する処理を実行する処理ノード再配置手段と、データストリームに対して所定の圧縮処理を実行する圧縮手段とを備えたことを特徴とする。
【００１６】
本発明によるデータストリーム処理方法は、複数の処理ノードを用いてデータストリームを処理するデータストリーム処理方法であって、データストリームの処理中に、所定のデータ消失防止処理を行って処理ノードを再配置する処理を実行する処理ノード再配置ステップを含み、データストリームは、処理ネットワークにより処理されるものであり、処理ネットワークは、データストリームを処理する物理的な計算機リソースとして複数の情報処理装置を含むものであり、各処理ノードは、処理ネットワークに含まれる複数の情報処理装置を用いて割り当てられるものであり、データストリーム処理方法は、処理ノード再配置ステップに伴って、データストリームに対して所定の要約処理を実行するステップと、処理ノードの再配置が行われた後に、処理ネットワークが、要約処理されたデータストリームの処理を開始するステップとをさらに含むことを特徴とする。
また、本発明によるデータストリーム処理方法の他の態様は、複数の処理ノードを用いてデータストリームを処理するデータストリーム処理方法であって、データストリームの処理中に、所定のデータ消失防止処理を行って処理ノードを再配置する処理を実行する処理ノード再配置ステップを含み、データストリームは、処理ネットワークにより処理されるものであり、処理ネットワークは、データストリームを処理する物理的な計算機リソースとして複数の情報処理装置を含むものであり、各処理ノードは、処理ネットワークに含まれる複数の情報処理装置を用いて割り当てられるものであり、データストリーム処理方法は、処理ノード再配置ステップに伴って、データストリームに対して所定の圧縮処理を実行するステップと、処理ノードの再配置が行われた後に、処理ネットワークが、圧縮処理されたデータストリームの処理を開始するステップとをさらに含むことを特徴とする。
【００１７】
本発明による処理ノード再配置用プログラムは、複数の処理ノードを用いてデータストリームを処理する場合に処理ノードの再配置を行うための処理ノード再配置用プログラムであって、コンピュータに、データストリームの処理中に、所定のデータ消失防止処理を行って処理ノードを再配置する処理を実行する処理ノード再配置処理と、データストリームに対して所定の要約処理を実行させる処理とを実行させるためのものである。
また、本発明による処理ノード再配置用プログラムの他の態様は、複数の処理ノードを用いてデータストリームを処理する場合に処理ノードの再配置を行うための処理ノード再配置用プログラムであって、コンピュータに、データストリームの処理中に、所定のデータ消失防止処理を行って処理ノードを再配置する処理を実行する処理ノード再配置処理と、データストリームに対して所定の圧縮処理を実行させる処理とを実行させるためのである。
【発明の効果】
【００１８】
本発明によれば、データを消失することなく処理ノードの再配置を行えるようにすることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明によるデータストリーム処理システムの構成例を示すブロック図である。
【図２】データストリーム処理システムが処理ノードの再配置を行う処理例を示すフローチャートである。
【図３】処理ノード管理手段が移動元ノードを停止させる処理例を示すフローチャートである。
【図４】第２の実施形態によるデータストリーム処理システムの構成例を示すブロック図である。
【図５】第２の実施形態におけるデータストリーム処理システムが処理ノードの再配置を行う処理例を示すフローチャートである。
【図６】第３の実施形態によるデータストリーム処理システムの構成例を示すブロック図である。
【図７】第３の実施形態におけるデータストリーム処理システムが処理ノードの再配置を行う処理例を示すフローチャートである。
【図８】データストリーム処理システムの最小の構成例を示すブロック図である。
【図９】データストリーム処理システムの構成例を示すブロック図である。
【図１０】データストリーム処理システムのデプロイメントの動作の例を示す説明図である。
【発明を実施するための形態】
【００２０】
実施形態１．
以下、本発明の第１の実施形態について、図面を参照して説明する。図１は、本発明によるデータストリーム処理システムの構成例を示すブロック図である。図１に示すように、本実施形態では、データストリーム処理システムは、データストリーム処理を行う処理ネットワーク（ノードネットワーク）２００と、処理ネットワーク２００を管理する管理部１００とを含む。
【００２１】
なお、本発明は、逐次的に次々と生成される情報（データストリーム）を逐次的に分析する複数の処理ノードから成るデータストリーム処理システムに関し、特に処理ノードの動的再配置を行えるデータストリーム処理システムに関する。
【００２２】
また、本実施形態において、データストリーム処理システムは、例えば、ＩＣカードの利用ログデータを分析して不正利用を検出する用途に適用できる。また、データストリーム処理システムは、例えば、Ｗｅｂデータが発生するログデータに基づいて、Ｗｅｂアクセスの動線解析を行う用途に適用できる。また、データストリーム処理システムは、例えば、交通情報（例えば、道路上の自動車の位置情報）を収集し、道路上の渋滞箇所を検出して提供する渋滞情報提供システムの用途に適用できる。また、例えば、データストリーム処理システムは、株価の変動を監視し、株価の変動と事前入力した売買ルールとをマッチングして、株式の自動売買を行うアルゴリズムトレードの用途に適用できる。すなわち、データストリーム処理システムは、大量のデータが逐次的に発生し、最新のデータをリアルタイムに反映しながら処理を行うあらゆるシステムに適用可能である。
【００２３】
処理ネットワーク２００は、データストリーム処理の最小単位である複数の処理ノード１１，１２，１３，１４，２１，２２，２３，２４と、処理ノードが配置され物理的に処理を実行する複数の物理サーバ１，２とを含む。
【００２４】
具体的には、物理サーバ１，２は、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置（物理的な処理装置）によって実現される。また、物理サーバ１には、データストリーム処理の論理的な処理単位である複数の処理ノード１１，１２，１３，１４（例えば、プログラムやサブルーチン）が割り当てられている。また、物理サーバ２には、複数の処理ノード２１，２２，２３，２４が割り当てられている。
【００２５】
なお、各処理ノードには、情報発生源（例えば、センサ）からのデータストリームや、上流側の処理ノードの処理結果を一時記憶するバッファ（キュー）や、処理中のデータを記録するための一時記憶手段が割り当てられている。物理的には、物理サーバ１，２が備えるメモリ等の記憶部の記憶領域が、バッファ（キュー）や一時記憶手段として各処理ノードに割り当てられることになる。
【００２６】
なお、各物理サーバ１，２には、論理構成を満たす全ての処理ノードが配置されている。例えば、図１に示す例では、物理サーバ１の処理ノード１１は物理サーバ２の処理ノード２１と同様の処理を実行可能であり、処理ノード１２は処理ノード２２と同様の処理を実行可能であり、処理ノード１３は処理ノード２３と同様の処理を実行可能であり、処理ノード１４は処理ノード２４と同様の処理を実行可能である。従って、物理サーバ１は、処理ノード１１，１２，１３，１４を用いて、物理サーバ２が処理ノード２１，２２，２３，２４を用いて行う処理と同様の処理を実行可能である。
【００２７】
なお、図１に示す例では、２つの物理サーバ１，２を用いて処理ネットワーク２００が構築されている場合を示しているが、２つに限らず、例えば、処理ネットワーク２００は、３以上の物理サーバを用いて構築されていてもよい。
【００２８】
また、本実施形態では、データストリーム処理システムは、データストリームとして、時系列に逐次的に発生するデータを入力して処理を実行するものとする。なお、データストリーム処理システムは、何らかの順序性をもつデータであれば、例えば、距離が近い順や遠い順等の位置的な順序性をもったデータを逐次的に入力して処理を行うものであってもよい。また、データストリーム処理システムは、短い時間間隔（例えば、数秒間隔）で連続して発生されるデータに限らず、逐次的に発生するデータであれば、例えば、数時間や数日等の長い時間間隔で発生するデータや、発生間隔が一定しないようなデータを入力して処理を行うものであってもよい。ただし、一般に、入力データの時間間隔が短い程、処理ノードの再配置の際にデータの欠損が生じやすくなるのであるから、本発明によるデータストリーム処理システムは、短い時間間隔で発生するデータストリームを処理する場合に、データが消えないように処理ノードの再配置を行える点で、特に有用である。
【００２９】
管理部１００は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。図１に示すように、管理部１００は、処理ノード管理手段１０１、データフロー管理手段１０２、処理ノード内部状態管理手段１０３、及び送受信ノード管理手段１０４を含む。なお、管理部１００は、処理ネットワーク２００に含まれるいずれかの物理サーバ１，２と同じ情報処理装置を用いて実現されてもよい（すなわち、物理的には１台の情報処理装置を兼用で用いてもよい）し、物理サーバ１，２とは別の情報処理装置（すなわち、管理部１００用の専用の情報処理装置）を用いて実現されてもよい。
【００３０】
処理ノード管理手段１０１は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵによって実現される。処理ノード管理手段１０１は、処理ノードの起動を行ったり、処理ノードの停止を行ったりする機能を備える。
【００３１】
データフロー管理手段１０２は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵによって実現される。データフロー管理手段１０２は、処理ノード間のデータフローの接続を行ったり、処理ノード間のデータフローの遮断（切断）を行ったり、処理ノード間のデータフローの変更や再開を行ったりする機能を備える。
【００３２】
処理ノード内部状態管理手段１０３は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵによって実現される。処理ノード内部状態管理手段１０３は、処理ノードの内部状態のエクスポートやインポートを行う機能を備える。例えば、処理ノード内部状態管理手段１０３は、物理サーバ１の処理ノードの内部状態（例えば、処理中のデータ）を抽出し、抽出した内部状態を、物理サーバ２の対応する処理ノードに記憶させる処理を行う。
【００３３】
送受信ノード管理手段１０４は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵによって実現される。送受信ノード管理手段１０４は、汎用的な送信ノード及び受信ノードの生成を行ったり、送信ノード及び受信ノードの消去を行ったりする機能を備える。
【００３４】
なお、本実施形態において、管理部１００の記憶装置（図示せず）は、処理ネットワーク２００を管理したり、処理ノードを再配置するための各種プログラムを記憶している。例えば、管理部１００の記憶装置は、コンピュータに、データストリームの処理中に、所定のデータ消失防止処理を行って処理ノードを再配置する処理を実行する処理ノード再配置処理を実行させるための処理ノード再配置用プログラムを記憶している。
【００３５】
次に、動作について説明する。図２は、データストリーム処理システムが処理ノードの再配置を行う処理例を示すフローチャートである。
【００３６】
なお、本実施形態では、以下のような状況において処理ノードの再配置を行う場合を想定している。（１）再配置前の状態では、物理サーバ１における全ての処理ノードが動作し、処理ノード１１→処理ノード１２→処理ノード１３→処理ノード１４とデータが流れているものとする。（２）そのような状態で、処理が重い等の理由から処理ノード１２と処理ノード１３とで実行している処理を物理サーバ２に移動するものとする。すなわち、処理ノード１２と処理ノード１３とを停止し、物理サーバ２において、処理ノード１２と処理ノード１３とにそれぞれ対応する処理ノード２２と処理ノード２３とを起動するものとする。（３）そして、処理ノード１１→処理ノード２２→処理ノード２３→処理ノード１４とデータを流し、処理を再開するものとする。
【００３７】
なお、上記の処理ノードの再配置を行う場合に、どの処理ノードを、いつ、どの物理サーバに配置するかを判断することは、本発明の範囲ではないので説明を省略する。なお、具体的には、例えば、人（システム管理者等）が判断して処理ノードの再配置の指示操作を行ったり、あるいは別システム（処理ノード再配置判定システム）が判断し、処理ノードの再配置の指示制御を行うものとする。
【００３８】
まず、管理部１００は、移動元の処理ノードと、その移動先の処理ノードとを指定した処理ノードの再配置の実行指示を、人（システム管理者等）の操作に従って、あるいは別システム（処理ノード再配置判定システム）から入力して受け取る（ステップＳ１０１）。本例では、移動元の処理ノードは物理サーバ１上の処理ノード１２及び処理ノード１３であるものとし、以下、これらの移動元の処理ノードを移動元ノードと呼ぶ。また、移動先の処理ノードは物理サーバ２上の処理ノードであるものとし、物理サーバ２上で移動元ノードに相当する処理ノードは、それぞれ処理ノード２２及び処理ノード２３であるものとする。以下、これらの移動先の処理ノードを移動先ノードと呼ぶ。
【００３９】
次に、管理部１００のデータフロー管理手段１０２は、移動元ノードのうち、最上流に位置する処理ノードへのデータストリームの入力を遮断する（ステップＳ１０２）。本例では、データフロー管理手段１０２は、移動元ノードのうち最上流に位置するのが処理ノード１２であるので、処理ノード１１から処理ノード１２へのデータストリームを遮断する。
【００４０】
次に、管理部１００の処理ノード管理手段１０１は、移動元ノードを上流に位置する処理ノードから順に安全に停止させる（ステップＳ１０３）。本例では、処理ノード管理手段１０１は、処理ノード１２→処理ノード１３の順に停止させる。
【００４１】
ここで、図３を参照して、ステップＳ１０３における処理ノード管理手段１０１が移動元ノードを停止させる処理について説明する。図３は、処理ノード管理手段１０１が移動元ノードを停止させる処理例を示すフローチャートである。まず、処理ノード管理手段１０１は、移動元ノードのうち、まだ稼動している処理ノードがあるか否かを判定する（ステップＳ２０１）。稼動している処理ノードがない場合、処理ノード管理手段１０１は、全ての移動元ノードを安全に停止し終えたと判定し、処理を終了して、図２に示すステップＳ１０４の処理に移行する。
【００４２】
一方、稼動している処理ノードがある場合、次に、処理ノード管理手段１０１は、移動元ノードの中でまだ稼動している処理ノードのうち、最上流の処理ノードに対して、安全に停止するインタフェースがあるか否かを判定する（ステップＳ２０２）。
【００４３】
なお、安全に停止するインタフェースとは、現在その処理ノードで処理中のデータを欠落することなく、強制的に処理し終えるインタフェースである。例えば、安全に停止するインタフェースが存在する場合、処理ノードは、そのインタフェースを用いて、次のように安全に停止することができる。まず、処理ノードは、処理ノード管理手段１０１から停止命令を入力する。すると、処理ノードは、以降、新たなデータの入力の受け付けを停止する。従って、以降、処理ノードは、現在処理中のデータを処理するのみとなり、新たなデータの処理を開始しない。そして、処理ノードは、内部状態として処理中のノードがまだ存在するか否かを監視し、データの処理を終了して処理中のデータがなくなると、処理を停止する。
【００４４】
安全に停止するインタフェースがある場合（ステップＳ２０２のＹ）、処理ノード管理手段１０１は、そのインタフェースを用いて最上流の処理ノードを安全に停止させる（ステップＳ２０３）。なお、具体的には、処理ノード管理手段１０１には、移動元ノードの中の最上流の処理ノードに対して、処理を停止させるための停止命令を出力する。
【００４５】
一方、安全に停止するインタフェースがない場合（ステップＳ２０２のＮ）、処理ノード管理手段１０１は、最上流の処理ノードの処理が終わるまで一定時間待機する（ステップＳ２０４）。
【００４６】
次に、処理ノード管理手段１０１は、一定時間待機後、最上流処理ノードの処理が終了したか判定する（ステップＳ２０５）。例えば、処理ノードは、処理を終了すると、処理を終了した旨を示す通知信号を処理ノード管理手段１０１に対して出力するようにし、処理ノード管理手段１０１は、通知信号を入力したか否かを判断することによって、移動元ノードの中の最上流の処理ノードの処理が終了したか否かを判定するようにすればよい。
【００４７】
最上流処理ノードの処理が終了した場合（ステップＳ２０５のＹ）、処理ノード管理手段１０１は、その処理ノードを普通に停止させる（ステップＳ２０６）。すなわち、既に処理ノード内の全てのデータの処理を終えているため、その処理ノードを停止させても、データの欠落は起きない。なお、具体的には、処理ノード管理手段１０１には、移動元ノードの中の最上流の処理ノードに対して、処理を停止させるための停止命令を出力する。
【００４８】
一方、最上流処理ノードの処理がまだ終了しない場合（あるいは、原理的に永遠に終了しない場合もある。ステップＳ２０５のＮ）、処理ノード管理手段１０１は、その処理ノードを強制的に停止させる（ステップＳ２０７）。なお、原理的に永遠に終了しない場合とは、例えば、処理ノードの処理開始条件が「１０個のデータが揃ったら」等である場合である。すなわち、この場合、１０個のデータが揃う前に入力データストリームの入力を遮断してしまうと、永遠に処理開始条件を満たさず、処理ノードは、データ処理を終了することができない。ただし、このような処理開始条件が設定されている場合には、データフロー管理手段１０２は、１０個のデータ入力があるまで待機してから、その処理ノードへのデータストリームの入力を遮断するようにしてもよい。そのようにすれば、処理ノードの処理開始条件に関係なく、各処理ノードの処理を安全に停止することができる。
【００４９】
上記のように、データの処理を終えることができず、ステップＳ２０５でＮと判定されて、ステップＳ２０７の処理が実行されてしまった場合には、処理ノードが強制的に停止されてしまい、処理中のデータが消失する可能性がある。しかしながら、本実施形態では、ステップＳ２０１〜Ｓ２０６の処理が実行されることによって、できるかぎり、データを欠損することなく、各処理ノードの処理を安全に停止することができる。
【００５０】
次に、処理ノード管理手段１０１は、必要であれば、処理ノードを強制的に停止させた結果、データが消失した可能性があることを通知する処理を実行する（ステップＳ２０８）。この場合の通知先は、人（システム管理者等）や他のシステム（処理ノード再配置判定システム）である。例えば、処理ノード管理手段１０１は、データが消失した可能性がある旨を示す表示画面を、ディスプレイ装置等の表示装置に表示させる。また、例えば、処理ノード管理手段１０１は、データが消失した可能性がある旨の通知情報を、他のシステムに対して出力する。すると、それら人（システム管理者等）や他のシステム（処理ノード再配置判定システム）は、データ消失を認識した上で、適切な対応を行ったり処理を行う。なお、その処理方法については、本発明の範囲ではないため、説明を省略する。
【００５１】
処理ノード管理手段１０１は、図３に示すような処理ノードの停止処理を、全ての移動元ノード１２，１３に対して上流側から順に実行するそのように動作することで、処理ノード管理手段１０１は、できるかぎり、データが消失しないように安全に各移動元ノード１２，１３を停止させることができる。あるいは、処理ノード管理手段１０１は、稀にデータが消失しても、そのデータ消失を認識した上で、移動元ノードを停止させることができる。
【００５２】
次に、管理部１００の処理ノード内部情報管理手段１０３は、停止した物理サーバ１の移動元ノード１２，１３の内部状態をエクスポートする（ステップＳ１０４）。なお、内部状態とは、処理ノードがその処理を行う上で必要となる記録内容である。例えば、処理ノードがデータ数をカウントする処理を行う処理ノードであれば、その処理ノードが一時記憶手段に記憶するカウント数等の情報が内部状態である。ステップＳ１０４では、具体的には、処理ノード内部状態管理手段１０３は、移動元ノードが一時記憶手段に記憶するデータを抽出する処理を行う。
【００５３】
次に、処理ノード内部情報管理手段１０３は、エクスポートした移動元ノードの内部状態を、当該移動元ノードに対応する移動先ノードにインポートする（ステップＳ１０５）。本例では、処理ノード内部状態管理手段１０３は、処理ノード１２の内部状態を処理ノード２２にインポートし、処理ノード１３の内部状態お処理ノード２３にインポートする。なお、具体的には、処理ノード内部状態管理手段１０３は、ステップＳ１０４で移動元ノードから抽出したデータを、移動先ノードの一時記憶手段に記憶させる処理を行う。
【００５４】
なお、処理ノードが実行する処理内容によっては、処理ノードは、内部状態をもたない、いわゆるステートレスな処理ノードである場合がある。その場合、処理ノード内部状態管理手段１０３は、ステップＳ１０４及びステップＳ１０５のエクスポート処理及びインポート処理を行う必要はない。
【００５５】
次に、管理部１００の処理ノード管理手段１０１は、移動先ノード２２，２３を起動させる（ステップＳ１０６）。この処理が実行されることにより、移動元ノード１２，１３から移動先ノード２２，２３への処理ノードの移動が完了する。
【００５６】
次に、管理部１００の送受信ノード管理手段１０４は、物理サーバ１，２間をまたがるデータフローに対して、必要な送信ノード及び受信ノードを生成する処理を行う（ステップＳ１０７）。なお、送信ノードや受信ノードは、具体的には、情報処理装置が備えるネットワークインタフェース部等の送受信手段を制御して、データの送信や受信を行うためのプログラムやサブルーチンとして実現される。
【００５７】
本例では、送受信ノード管理手段１０４は、物理サーバ１に送信ノード３１及び受信ノード４２を生成し、物理サーバ２に受信ノード４１及び送信ノード３２を生成する。すなわち、本例では、物理サーバ１の処理ノード１１から物理サーバ２の処理ノード２２に対して、物理サーバ間をまたがるデータフローが生じることから、処理ノード１１の出力側に送信ノード３１を生成し、処理ノード２２の入力側に受信ノート４１を生成する。また、物理サーバ２の処理ノード２３から物理サーバ１の処理ノード１４に対して、物理サーバ間をまたがるデータフローが生じることから、処理ノード２３の出力側に送信ノード３２を生成し、処理ノード１４の入力側に受信ノード４２を生成する。
【００５８】
次に、管理部１００のデータフロー管理手段１０２は、移動対象外の処理ノード１１，１４とともに、移動先ノード２２，２３及び送受信ノード３１，３２，４１，４２を含めて、各処理ノードを接続しなおし、データフローを再構築する（ステップＳ１０８）。本例では、データフロー管理手段１０２は、図１に示すように、処理ノード１１→送信ノード３１→受信ノード４１→処理ノード２２→処理ノード２３→送信ノード３２→受信ノード４２→処理ノード１４のデータフローとなるように、各処理ノードを接続しなおし、データフローを再構築する。
【００５９】
最後に、管理部１００のデータフロー管理手段１０２は、ステップＳ１０２で遮断していたデータストリームの入力を再開する（ステップＳ１０９）。なお、ステップＳ１０８でデータフローが再構築されているため、入力が再開されても、処理ノード１１から出力されるデータストリームは、最上流の移動元ノード１２には入力されることなく、送受信ノード３１，４１を経由して、最上流の移動先ノード２２に流れることになる。本例では、再構築前の処理ノード１１→処理ノード１２へのデータストリームを遮断していたが、データフローが処理ノード１１→送信ノード３１と再構築されているため、入力再開後のデータストリームは、送信ノード３１及び受信ノード４１を経由して処理ノード２２に流れる。
【００６０】
以上のように動作することで、できるかぎり、安全に処理ノードを停止させた上で、処理ノードを移動させることができる。
【００６１】
なお、本実施形態では、物理サーバ１の処理ノードのうち、移動元ノードとなる処理ノード１２，１３のみを上流側から順に安全に停止させて、処理ノードを再配置する場合を示したが、処理ノードの再配置の手順は、本実施形態で示したものに限られない。例えば、移動元ノードであるか否かにかかわらず、物理サーバ１の全ての処理ノードを上流側から順に安全に停止させて、処理ノードを再配置するようにしてもよい。この場合、例えば、ステップＳ１０２において物理サーバ１の最上流の処理ノード１１へのデータストリームの入力を遮断し、ステップＳ１０３において物理サーバ１に含まれる全ての処理ノード１１〜１４を上流側から順に安全に停止させた後に、ステップＳ１０４以降の処理を行って、処理ノードを再配置するようにしてもよい。そのように構成しても、できるかぎり、安全に処理ノードを停止させた上で、処理ノードの再配置を行うことができる。
【００６２】
ただし、本実施形態に示したように、処理ノードのうちの移動元ノードのみを上流側から順に安全に停止させて再配置を行うようにすれば、処理を停止させる処理ノードの数を最小限とすることができるので、処理ノードの再配置にかかる処理負担を最小限に抑えることができる。
【００６３】
以上に説明したように、本実施形態によれば、移動元の処理ノードを、データが消失しないように安全に停止させ、あるいは稀にデータ消失しても、そのデータ消失を認識した上で、移動元ノードを停止させることができる。そのため、データストリーム処理システムが稼働中であっても、ある物理サーバの処理ノードを柔軟に任意の物理サーバの処理ノードに置き換えて再配置することができる。従って、再配置する処理ノードを、データが消えないように安全に停止することで、データを消失することなく処理ノードの再配置を行えるようにすることができる。
【００６４】
実施形態２．
次に、本発明の第２の実施形態について、図面を参照して説明する。図４は、第２の実施形態によるデータストリーム処理システムの構成例を示すブロック図である。図４に示すように、本実施形態では、データストリーム処理システムは、第１の実施形態と同様に、データストリーム処理を行う処理ネットワーク（ノードネットワーク）２００と、処理ネットワーク２００を管理する管理部１００とを含む。
【００６５】
処理ネットワーク２００は、第１の実施形態と同様に、データストリーム処理の最小単位である複数の処理ノード１１，１２，１３，１４，２１，２２，２３，２４と、処理ノードが配置され物理的に処理を実行する複数の物理サーバ１，２とを含む。なお、第１の実施形態と同様に、各物理サーバ１，２には、論理構成を満たす全ての処理ノードが配置されている。
【００６６】
図４に示すように、管理部１００は、処理ノード管理手段１０１、データフロー管理手段１０２、処理ノード内部状態管理手段１０３、送受信ノード管理手段１０４、及びバッファノード管理手段１０５を含む。従って、本実施形態では、管理部１００は、図１に示した構成要素に加えて、バッファノード管理手段１０５を含む点で、第１の実施形態と異なる。
【００６７】
処理ノード管理手段１０１は、第１の実施形態と同様に、処理ノードの起動を行ったり、処理ノードの停止を行ったりする機能を備える。データフロー管理手段１０２は、第１の実施形態と同様に、処理ノード間のデータフローの接続を行ったり、処理ノード間のデータフローの遮断（切断）を行ったり、処理ノード間のデータフローの変更や再開を行ったりする機能を備える。処理ノード内部状態管理手段１０３は、第１の実施形態と同様に、処理ノードの内部状態のエクスポートやインポートを行う機能を備える。送受信ノード管理手段１０４は、第１の実施形態と同様に、汎用的な送信ノード及び受信ノードの生成を行ったり、送信ノード及び受信ノードの消去を行ったりする機能を備える。
【００６８】
バッファノード管理手段１０５は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵによって実現される。バッファノード管理手段１０５は、データストリームを貯めるバッファノードの生成を行ったり、バッファノードの消去を行ったりする機能を備える。
【００６９】
次に、動作について説明する。図５は、第２の実施形態におけるデータストリーム処理システムが処理ノードの再配置を行う処理例を示すフローチャートである。
【００７０】
なお、本実施形態において、第１の実施形態と同様に、以下のような状況において処理ノードの再配置を行う場合を想定している。（１）再配置前の状態では、物理サーバ１における全ての処理ノードが動作し、処理ノード１１→処理ノード１２→処理ノード１３→処理ノード１４とデータが流れているものとする。（２）そのような状態で、処理が重い等の理由から処理ノード１２と処理ノード１３とで実行している処理を物理サーバ２に移動するものとする。すなわち、処理ノード１２と処理ノード１３とを停止し、物理サーバ２において、処理ノード１２と処理ノード１３とにそれぞれ対応する処理ノード２２と処理ノード２３とを起動するものとする。（３）そして、処理ノード１１→処理ノード２２→処理ノード２３→処理ノード１４とデータを流し、処理を再開するものとする。
【００７１】
なお、上記の処理ノードの再配置を行う場合に、どの処理ノードを、いつ、どの物理サーバに配置するかを判断することは、本発明の範囲ではないので説明を省略する。なお、具体的には、例えば、人（システム管理者等）が判断して処理ノードの再配置の指示操作を行ったり、あるいは別システム（処理ノード再配置判定システム）が判断し、処理ノードの再配置の指示制御を行うものとする。
【００７２】
まず、管理部１００は、移動元の処理ノードと、その移動先の処理ノードとを指定した処理ノードの再配置の実行指示を、人（システム管理者等）の操作に従って、あるいは別システム（処理ノード再配置判定システム）から入力して受け取る（ステップＳ３０１）。本例では、移動元の処理ノードは物理サーバ１上の処理ノード１２及び処理ノード１３であるものとし、以下、これらの移動元の処理ノードを移動元ノードと呼ぶ。また、移動先の処理ノードは物理サーバ２上の処理ノードであるものとし、物理サーバ２上で移動元ノードに相当する処理ノードは、それぞれ処理ノード２２及び処理ノード２３であるものとする。以下、これらの移動先の処理ノードを移動先ノードと呼ぶ。
【００７３】
次に、管理部１００のバッファノード管理手段１０５は、移動元となる物理サーバ上にバッファノード５０を生成する（ステップＳ３０２）。なお、バッファノードは、文字通りデータストリームを溜めておく（バッファしておく）ためのノードであり、その実体はキューである。本例では、移動元のサーバが物理サーバ１であるので、バッファノード管理手段１０５は、物理サーバ１上にバッファノードを生成する。なお、物理的には、物理サーバ１が備えるメモリ等の記憶部の記憶領域が、バッファノード５０として割り当てられることになる。
【００７４】
次に、管理部１００のデータフロー管理手段１０２は、移動元ノードのうち、最上流に位置する処理ノードへのデータストリームの入力を遮断する（ステップＳ３０３）。本例では、データフロー管理手段１０２は、移動元ノードのうち最上流に位置するのが処理ノード１２であるので、処理ノード１１から処理ノード１２へのデータストリームを遮断する。
【００７５】
次に、データフロー管理手段１０２は、ステップＳ３０３でデータ出力を遮断したノードからバッファノード５０へのデータフローを再構築する（ステップＳ３０４）。本例では、データフロー管理手段１０２は、処理ノード１１をバッファノード５０に接続し、処理ノード１１→バッファノード５０というデータフローを再構築する。
【００７６】
次に、データフロー管理手段１０２は、ステップＳ３０３で遮断したデータストリームの入力を再開する（ステップＳ３０５）。これにより、以降、移動元ノードのうち、最上流にある処理ノード１２に入力されていたデータストリームは、バッファノード５０に溜まることとなる。なお、この段階では、バッファノード５０からデータストリームが出力されることはない。すなわち、移動元ノード１２，１３から移動先ノード２２，２３への切り替えが行われ、処理ノードの再配置が完了するまでの時間は極めて短時間であることから、処理ノードの再配置が終わるまでにバッファノード５０がオーバーフローしてしまうことはない。なお、本例では、処理ノード１１から処理ノード１２へ流れていたータストリームが、ステップＳ３０５の処理を実行後、バッファノード５０に溜まることとなる。
【００７７】
なお、ステップＳ３０４の処理は、同一の物理サーバ１内で行われる処理であることから、同一の物理サーバ１内の閉じた単なるデータフローの切替であり、極めて短時間（ほぼ一瞬）で終了する。そのため、ステップＳ３０３〜ステップＳ３０５までを実行してデータストリームを遮断している期間も極めて短時間（ほぼ一瞬）であり、バッファノード５０への入力が開始されるまでの間に、遮断しているデータストリームが溢れることはない。
【００７８】
以降、ステップＳ３０６〜ステップＳ３１０までの処理は、第１の実施形態で示したステップＳ１０３〜ステップＳ１０７までの処理と同様であるため、説明を省略する。
【００７９】
次に、管理部１００のデータフロー管理手段１０２は、移動対象外の処理ノード１１，１４とともに、移動先ノード２２，２３、送受信ノード３１，３２，４１，４２、及びバッファノード５０を含めて、各処理ノードを接続しなおし、データフローを再構築する（ステップＳ３１１）。本例では、データフロー管理手段１０２は、図４に示すように、処理ノード１１→バッファノード５０→送信ノード３１→受信ノード４１→処理ノード２２→処理ノード２３→送信ノード３２→受信ノード４２→処理ノード１４のデータフローとなるように、各処理ノードを接続しなおし、データフローを再構築する。なお、処理ノード11→バッファノードのデータフローはステップ4で既に確立されている。
【００８０】
次に、管理部１００のデータフロー管理手段１０２は、バッファノード５０からのデータストリームの出力を開始する（ステップＳ３１２）。なお、ステップＳ３１１でデータフローが再構築されているため、出力を再開したデータストリームは、送受信ノード３１，４１を経由して、最上流の移動先ノードに流れる。この結果、処理ノードが処理ノード１２，１３から処理ノード２２，２３に移動された状態で処理ネットワーク２００での処理が再開する。本例では、バッファノード５０から送信ノード３１へのデータストリームの入力が再開され、送信ノード３１及び受信ノード４１を経由して処理ノード２２に流れる。
【００８１】
次に、データフロー管理手段１０２は、バッファノード５０内に溜まったデータストリームが無くなるまで待機する（ステップＳ３１３）。なお、処理ノードを移動したことにより、移動先ノードは移動元ノードより高速に動作するので、やがてバッファノード５０内に溜まったデータストリームは消費されていく。すなわち、処理ノードの再配置が行われるということは、一般に、移動元ノードの処理速度が遅いという理由のため、より処理速度の速い移動先ノードへのノード切り替えが行われる場合であるから、処理ノードの再配置が行われた後は処理速度が向上しているはずであり、バッファノード５０内のデータストリームは徐々に減少していく筈である。
【００８２】
なお、バッファノード５０内のデータが消費されず、データストリームが溜まり続ける場合、処理ノードの移動の指示が間違っていたということになる。そのため、そのような場合には、再度これを改善するために、移動先ノードとして高速な処理ノードを指定した移動の指示を発行しなおし、ステップＳ３０１〜Ｓ３１２までの処理と同様の処理を行えばよい。なお、改善するための指示を発行しなおして、処理ノードの再配置をしなおすことは、本発明の範囲ではないので、説明を省略する。
【００８３】
次に、バッファノード５０内のデータストリームが消費されきったら（すなわち、バッファノード５０が記憶するデータがなくなったと判断すると）、データフロー管理手段１０２は、バッファノード５０へのデータストリームの入力を遮断する（ステップＳ３１４）。本例では、データフロー管理手段１０２は、処理ノード１１からバッファノード５０へのデータストリームの入力を遮断する。
【００８４】
次に、データフロー管理手段１０２は、バッファノード５０を除いた状態でデータフローを再構築する（ステップＳ３１５）。すなわち、データフロー管理手段１０２は、バッファノード５０を除き、移動対象外の処理ノード１１，１４とともに、移動先ノード２２，２３及び送受信ノード３１，３２，４１，４２を接続しなおして、データフローを再構築する。本例では、データフロー管理手段１０２は、処理ノード１１→送信ノード３１→受信ノード４１→処理ノード２２→処理ノード２３→送信ノード３２→受信ノード４２→処理ノード１４のデータフローとなるように、各処理ノードを接続しなおし、データフローを再構築する。
【００８５】
次に、管理部１００のデータフロー管理手段１０２は、ステップＳ３１４で遮断していたデータストリームを再開する（ステップＳ３１６）。なお、ステップＳ３１５でデータフローが再構築されているため、入力が再開されても、処理ノード１１から出力されるデータストリームは、バッファノード５０を経由することなく、送受信ノード３１，４１を経由して、最上流の移動先ノード２２に流れることになる。この結果、処理ネットワーク２００における処理が再開されることになる。本例では、遮断されていた送信ノード３１からのデータストリーム出力が再開され、送信ノード３１及び受信ノード４１を経由して処理ノード２２に流れる。
【００８６】
なお、ステップＳ３１５の処理も、同一の物理サーバ１内行われる処理であることから、同一の物理サーバ１内の閉じた単なるデータフローの切替であり、極めて短時間（ほぼ一瞬）で終了する。そのため、ステップＳ３１４〜Ｓ３１６までを実行してデータストリームを遮断している期間も極めて短時間（ほぼ一瞬）であり、バッファノード５０を除外した後のデータ入力が開始されるまでの間に、遮断しているデータストリームが溢れることはない。
【００８７】
最後に、管理部１００のバッファノード管理手段１０５は、不要となったバッファノード５０を消去する処理を行う（ステップＳ３１７）。なお、物理的には、バッファノード管理手段１０５は、バッファノード５０として割り当てたメモリ等の記憶部の記憶領域を解放する処理を行う。
【００８８】
以上のように動作することで、バッファノード５０にデータストリームを貯めながら、処理ノードを移動させることができる。
【００８９】
以上に説明したように、本実施形態によれば、処理ノードの移動処理を行う間には、データストリームをバッファノード５０に溜めるようにする制御する。そのため、処理ノードの移動に時間がかかっても、せき止めたデータストリームが溢れず、データが欠落しないように、処理ノードを柔軟に任意の物理サーバに再配置することができる。具体的には、本実施形態によれば、処理ノードの再配置を行うために、バッファノード５０を一旦生成してデータストリームを保存する。そのため、データストリームを長期間せき止めても、データストリームがあふれないようにすることができ、データが欠落することなく処理ノードの再配置を行えるようにすることができる。
【００９０】
例えば、一般に、図１０に示したようなデプロイメントを、データストリーム処理システムが稼働した状態で動的に行うと、停止した処理ノードは処理を行わないので、データストリームの入力も一時的に止める必要がある。しかし、データストリームは永続的に発生し続けるため、単純にデータストリームを長期間せき止めると、処理ノードに割り当てられたメモリがあふれ、やはりデータが欠落してしまうという問題点がある。
【００９１】
また、例えば、第１の実施形態で示したデータストリーム処理システムを用いたとしても、処理ノードを移動させる処理は、異なる物理サーバにまたがる処理であるため、時間がかかる場合があることに変わりはない。そのため、第１の実施形態で示したデータストリーム処理システムをそのまま用いたとしても、処理ノードの移動処理中にせき止めていたデータストリームが溢れてしまう場合がある。
【００９２】
これに対して、本実施形態によれば、処理ノードの移動処理を行う間はデータストリームをバッファノード５０に溜めるようにしているので、処理ノードの移動処理に時間がかかってしまった場合であっても、データが欠落することはない。
【００９３】
従って、本実施形態によれば、第１の実施形態で得られる効果に加えて、処理ノードの移動処理に時間がかかってしまった場合であっても、データが欠落することなく、処理ノードの再配置を行うことができる。
【００９４】
実施形態３．
次に、本発明の第３の実施形態について、図面を参照して説明する。図６は、第３の実施形態によるデータストリーム処理システムの構成例を示すブロック図である。図６に示すように、本実施形態では、データストリーム処理システムは、第２の実施形態と同様に、データストリーム処理を行う処理ネットワーク（ノードネットワーク）２００と、処理ネットワーク２００を管理する管理部１００とを含む。
【００９５】
処理ネットワーク２００は、第２の実施形態と同様に、データストリーム処理の最小単位である複数の処理ノード１１，１２，１３，１４，２１，２２，２３，２４と、処理ノードが配置され物理的に処理を実行する複数の物理サーバ１，２とを含む。なお、第２の実施形態と同様に、各物理サーバ１，２には、論理構成を満たす全ての処理ノードが配置されている。
【００９６】
図６に示すように、管理部１００は、処理ノード管理手段１０１、データフロー管理手段１０２、処理ノード内部状態管理手段１０３、送受信ノード管理手段１０４、バッファノード管理手段１０５、及びデータストリーム要約手段１０６を含む。従って、本実施形態では、管理部１００は、図４に示した構成要素に加えて、データストリーム要約手段１０６を含む点で、第２の実施形態と異なる。
【００９７】
処理ノード管理手段１０１は、第２の実施形態と同様に、処理ノードの起動を行ったり、処理ノードの停止を行ったりする機能を備える。データフロー管理手段１０２は、第２の実施形態と同様に、処理ノード間のデータフローの接続を行ったり、処理ノード間のデータフローの遮断（切断）を行ったり、処理ノード間のデータフローの変更や再開を行ったりする機能を備える。処理ノード内部状態管理手段１０３は、第２の実施形態と同様に、処理ノードの内部状態のエクスポートやインポートを行う機能を備える。送受信ノード管理手段１０４は、第２の実施形態と同様に、汎用的な送信ノード及び受信ノードの生成を行ったり、送信ノード及び受信ノードの消去を行ったりする機能を備える。バッファノード管理手段１０５は、データストリームを貯めるバッファノードの生成を行ったり、バッファノードの消去を行ったりする機能を備える。
【００９８】
データストリーム要約手段１０６は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵによって実現される。データストリーム要約手段１０６は、データストリームを要約することによって、情報量をあまり減らすことなく、データのサイズを減らす機能を備える。
【００９９】
次に、動作について説明する。図７は、第３の実施形態におけるデータストリーム処理システムが処理ノードの再配置を行う処理例を示すフローチャートである。
【０１００】
なお、本実施形態において、データストリーム要約手段１０６が実行する処理以外の処理は、第２の実施形態で示した処理と同様である。すなわち、図７において、ステップＳ３０１〜ステップＳ３１７までの処理は、第２の実施形態における図５で示したステップＳ３０１〜ステップＳ３１７までの処理と同様であるため、説明を省略する。
【０１０１】
データストリーム要約手段１０６は、これらステップＳ３０１〜Ｓ３１７までの処理とは非同期に、データストリームを要約する処理を実行する（ステップＳ４００）。例えば、データストリーム要約手段１０６は、ステップＳ３０６〜ステップＳ３１０の処理を実行して処理ノードを移動中であるときに、バッファノード５０にデータストリームが貯まっている場合に、バッファノード５０内のデータストリームを要約する処理を実行する。また、例えば、データストリーム要約手段１０６は、定期的に（所定時間毎に）、バッファノード５０に蓄積されているデータストリームを要約する処理を実行してもよい。また、例えば、データストリーム要約手段１０６は、バッファノード５０内のデータストリームが一定値以上溜まる等の条件を満たす度に、バッファノード５０内のデータストリームを要約する処理を実行してもよい。
【０１０２】
なお、要約とは、データのもつ情報量を減らすことなく、あるいは情報量が多少減少してもそれほど減らすことなく、データのサイズを減らす処理である。データストリーム要約手段１０６が実行する要約の処理としては、例えば、以下のような処理がある。ただし、データストリーム要約手段１０６が実行する要約の処理は、本実施形態で示したものに限らず、データサイズを縮小するための各種の処理を適用可能である。
【０１０３】
（１）サンプリング・・・例えば、データストリーム要約手段１０６は、あるデータの集合から、一部のデータのみを抜き出す。例えば、データストリーム中に１０個のデータがあれば、データストリーム要約手段１０６は、１つおきにデータをサンプリングして抽出することで、データのサイズを半分に縮小することができる。
【０１０４】
（２）統計計算・・・例えば、データストリーム要約手段１０６は、あるデータの集合を、それを表す統計値に置き換える。例えばデータストリーム中に１０個のデータがあれば、データストリーム要約手段１０６は、それら１０個のデータの値の平均値を求め、求めた平均値に置き換えることで、データのサイズを１／１０とすることができる。
【０１０５】
また、データストリーム要約手段１０６は、データの要約を行うのではなく、データの圧縮を行ってもかまわない。なお、データの圧縮を行う場合、データの要約を行う場合とは異なり、圧縮後のデータは、圧縮前のデータとはデータ形式が異なる。そのため、そのままでは、再配置後に、データストリーム処理装置がデータの処理を行うことができないので、データ伸張というデータ圧縮とは逆の処理を行って、もとの圧縮前のデータに戻す必要がある。データストリーム要約手段１０６が実行する圧縮の処理としては、例えば、以下のような処理がある。ただし、データストリーム要約手段１０６が実行する圧縮の処理は、本実施形態で示したものに限らず、データサイズを縮小するための各種の処理を適用可能である。
【０１０６】
（１）符号化・・・例えば、データストリーム要約手段１０６は、いわゆる一般的な圧縮処理（例えば、ＪＰＥＧやＭＰＥＧ等の圧縮方式を用いた圧縮処理）を行い、あるデータの集合を、そのデータを表す符号に置き換える。
【０１０７】
（２）近似化・・・例えば、データストリーム要約手段１０６は、時系列に並ぶデータストリームを所定の関数で置き換えることによって近似する処理を行う。例えば、データストリーム中の各データの値が時間に比例して増加している場合には、データストリーム要約手段１０６は、データストリームを一次関数を用いて近似することができる。
【０１０８】
以上のように、データストリーム要約手段１０６がデータストリームを要約あるいは圧縮することにより、データストリームのサイズを減らすことができ、バッファノード５０が溢れてデータが欠落することを防ぐことができる。また、バッファノード５０のために確保すべき記憶領域の容量を低減できるという効果も期待できる。
【０１０９】
なお、データストリームを要約あるいは圧縮することにより、場合によってはデータの情報量が減ってしまう場合がある。しかしながら、一般に、データストリーム処理を行う場合には、大量のデータを処理するため、個々のデータの変化は、処理の結果にそれほど大きな影響を及ぼさない。そのため、データストリーム処理の精度をそれほど落とすことなく、データが欠落することをより確実に防止することができる。
【０１１０】
特に、データ要約として統計量等を求める場合には、サンプルとなるデータが均一に少なくなるのであれば、データストリーム処理の処理結果はほとんど変わらないという特徴がある。そのため、上記のようなデータ要約やデータ圧縮を行って情報量が減る場合であっても、偏り無く均一にデータが減るため、情報量が減ってもそれほど問題にはならない。
【０１１１】
また、本実施形態では、バッファノード５０に蓄積されているデータを要約又は圧縮する場合を示したが、データストリームを要約又は圧縮する箇所は、本実施形態で示したようなバッファノード５０だけに限られない。例えば、第１の実施形態で示したデータストリーム処理システムにおいても、データストリームを要約又は圧縮する手法を適用することが可能である。この場合、例えば、第１の実施形態で示したステップＳ１０２等でデータストリームを遮断してせき止めた際に、そのせき止めたデータに対してデータの要約や圧縮の処理を行ってもよい。そのように構成することによって、第１の実施形態で示したデータストリーム処理システムにおいても、ある程度処理ノードの移動に時間がかかった場合であっても、データの欠落を防ぐことができる。
【０１１２】
以上に説明したように、本実施形態によれば、データストリームのサイズを減らすことで、より長期間にわたって、データが欠落することなくデータストリームをせき止めておくことができる。従って、本実施形態によれば、第１の実施形態や第２の実施形態で得られる効果に加えて、移動処理により時間がかかっても、データが欠落することなく、処理ノードの再配置を行うことができる。
【０１１３】
すなわち、本実施形態によれば、溜めているデータストリームを要約又は圧縮しサイズを小さくすることで、より長時間データストリームを貯める。そのため、処理ノードの移動により時間がかかっても、せき止めたデータストリームが溢れず、データが欠落しないように処理ノードを柔軟に任意の物理サーバに再配置することができる。
【０１１４】
なお、本発明は、以上に示した各実施形態に限定されず、その他各種の付加変更が可能である。
【０１１５】
また、本発明によるデータストリーム処理システムは、その有する機能をハードウェア的に実現することは勿論、コンピュータとプログラムとで実現することができる。この場合、例えば、プログラムは、磁気ディスク装置や半導体メモリ等のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時等にコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータを上記の各実施形態におけるデータストリーム処理システムとして機能させる。
【０１１６】
次に、本発明によるデータストリーム処理システムの最小構成について説明する。図８は、データストリーム処理システムの最小の構成例を示すブロック図である。図８に示す最小構成のデータストリーム処理システムは、計算機リソースを用いて割り当てられた複数の処理ノードを用いてデータストリームを処理する。図８に示すように、データストリーム処理システムは、最小の構成要素として、管理部１００を含む。管理部１００は、データストリームの処理中に、所定のデータ消失防止処理を行って処理ノードを再配置する処理を実行する機能を備える。
【０１１７】
図８に示す最小構成のデータストリーム処理システムによれば、データを消失することなく処理ノードの再配置を行えるようにすることができる。
【０１１８】
なお、上記に示した各実施形態では、以下の（１）〜（３６）に示すようなデータストリーム処理システム、処理ノード再配置装置、データストリーム処理方法、及び処理ノード再配置用プログラムの特徴的構成が示されている。
【０１１９】
（１）データストリーム処理システムは、複数の処理ノードを用いてデータストリームを処理するデータストリーム処理システムであって、データストリームの処理中に、所定のデータ消失防止処理を行って処理ノードを再配置する処理を実行する処理ノード再配置手段（例えば、管理部１００によって実現される）を備えたことを特徴とする。
【０１２０】
（２）データストリーム処理システムは、データストリームの処理を行う処理ネットワーク（例えば、ノードネットワーク２００）を備え、処理ネットワークは、データストリームを処理する物理的な計算機リソースとして複数の情報処理装置（例えば、物理サーバ１，２）を含み、各処理ノードは、処理ネットワークに含まれる複数の情報処理装置を用いて割り当てられ、処理ノード再配置手段は、データストリームに対して所定の要約処理を実行する要約手段（例えば、データストリーム要約手段１０６によって実現される）を含み、処理ネットワークは、処理ノード再配置手段により処理ノードの再配置が行われた後に、要約手段によって要約処理されたデータストリームの処理を開始するように構成されていてもよい。
【０１２１】
（３）データストリーム処理システムは、データストリームの処理を行う処理ネットワーク（例えば、ノードネットワーク２００）を備え、処理ネットワークは、データストリームを処理する物理的な計算機リソースとして複数の情報処理装置（例えば、物理サーバ１，２）を含み、各処理ノードは、処理ネットワークに含まれる複数の情報処理装置を用いて割り当てられ、処理ノード再配置手段は、データストリームに対して所定の圧縮処理を実行する圧縮手段（例えば、データストリーム要約手段１０６によって実現される）を含み、処理ネットワークは、処理ノード再配置手段により処理ノードの再配置が行われた後に、圧縮手段によって圧縮処理されたデータストリームの処理を開始するように構成されていてもよい。
【０１２２】
（４）データストリーム処理システムにおいて、処理ノード再配置手段は、処理ネットワークに含まれる処理ノード間のデータフローを接続したり、処理ノード間のデータフローを遮断したりする処理を実行するデータフロー制御手段（例えば、データフロー管理手段１０２によって実現される）を含み、データフロー制御手段は、処理ノードの再配置を開始するときに、再配置の移動元となる処理ノードである移動元ノードへのデータフローを遮断して、データストリームの入力を停止させる処理を行い、処理ノード再配置手段は、データフロー制御手段によって入力を停止されたデータフローを蓄積するバッファノード（例えば、バッファノード５０）を生成するバッファノード制御手段（例えば、バッファノード管理手段１０５によって実現される）をさらに含み、処理ネットワークは、処理ノード再配置手段により処理ノードの再配置が行われた後に、バッファノードに蓄積されたデータストリームの処理を開始するように構成されていてもよい。
【０１２３】
（５）データストリーム処理システムにおいて、処理ノード再配置手段は、処理ネットワークに含まれる各処理ノードを起動させたり、各処理ノードを停止させたりする処理を実行する処理ノード制御手段（例えば、処理ノード管理手段１０１によって実現される）を含み、処理ノード制御手段は、移動元ノードが当該移動元ノードを安全に停止可能な所定のインタフェースを有するか否かを判定し、所定のインタフェースを有すると判定すると、当該所定のインタフェースを用いて移動元ノードを停止させる処理を実行するように構成されていてもよい。
【０１２４】
（６）データストリーム処理システムにおいて、処理ノード制御手段は、移動元ノードが所定のインタフェースを有しないと判定すると、所定時間待機した後に、移動元ノードを停止させる処理を実行するように構成されていてもよい。
【０１２５】
（７）データストリーム処理システムにおいて、処理ノード制御手段は、処理ネットワーク内に複数の移動元ノードが含まれる場合には、複数の移動元ノードのうち上流側に位置する移動元ノードから順に停止させる処理を実行するように構成されていてもよい。
【０１２６】
（８）データストリーム処理システムにおいて、処理ノード再配置手段は、処理ノード制御手段によって移動元ノードが停止されると、移動元ノードから内部状態を示す情報を抽出し、抽出した内部状態を示す情報を、再配置の移動先となる処理ノードである移動先ノードに格納させる処理ノード内部状態制御手段（例えば、処理ノード内部状態管理手段１０３によって実現される）を含むように構成されていてもよい。
【０１２７】
（９）データストリーム処理システムにおいて、処理ノード再配置手段は、処理ネットワークに含まれる複数の情報処理装置間にまたがって処理ノードの再配置が行われる場合に、情報処理装置間でデータストリームを送受信するための送信ノード（例えば、送信ノード３１，３２）及び受信ノード（例えば、受信ノード４１，４２）を生成する送受信ノード生成手段（例えば、送受信ノード管理手段１０４によって実現される）を含むように構成されていてもよい。
【０１２８】
（１０）処理ノード再配置装置は、複数の処理ノードを用いてデータストリームを処理する場合に処理ノードの再配置を行う処理ノード再配置装置（例えば、管理部１００を実現するパーソナルコンピュータ等の情報処理装置）であって、データストリームの処理中に、所定のデータ消失防止処理を行って処理ノードを再配置する処理を実行する処理ノード再配置手段を備えたことを特徴とする。
【０１２９】
（１１）処理ノード再配置装置は、データストリームに対して所定の要約処理を実行する要約手段を備えるように構成されていてもよい。
【０１３０】
（１２）処理ノード再配置装置は、データストリームに対して所定の圧縮処理を実行する圧縮手段を備えるように構成されていてもよい。
【０１３１】
（１３）処理ノード再配置装置は、処理ネットワークに含まれる処理ノード間のデータフローを接続したり、処理ノード間のデータフローを遮断したりする処理を実行するデータフロー制御手段を備え、データフロー制御手段は、処理ノードの再配置を開始するときに、再配置の移動元となる処理ノードである移動元ノードへのデータフローを遮断して、データストリームの入力を停止させる処理を行い、処理ノード再配置装置は、データフロー制御手段によって入力を停止されたデータフローを蓄積するバッファノードを生成するバッファノード制御手段をさらに備えるように構成されていてもよい。
【０１３２】
（１４）処理ノード再配置装置は、処理ネットワークに含まれる各処理ノードを起動させたり、各処理ノードを停止させたりする処理を実行する処理ノード制御手段を備え、処理ノード制御手段は、移動元ノードが当該移動元ノードを安全に停止可能な所定のインタフェースを有するか否かを判定し、所定のインタフェースを有すると判定すると、当該所定のインタフェースを用いて移動元ノードを停止させる処理を実行するように構成されていてもよい。
【０１３３】
（１５）処理ノード再配置装置において、処理ノード制御手段は、移動元ノードが所定のインタフェースを有しないと判定すると、所定時間待機した後に、移動元ノードを停止させる処理を実行するように構成されていてもよい。
【０１３４】
（１６）処理ノード再配置装置において、処理ノード制御手段は、処理ネットワーク内に複数の移動元ノードが含まれる場合には、複数の移動元ノードのうち上流側に位置する移動元ノードから順に停止させる処理を実行するように構成されていてもよい。
【０１３５】
（１７）処理ノード再配置装置は、処理ノード制御手段によって移動元ノードが停止されると、移動元ノードから内部状態を示す情報を抽出し、抽出した内部状態を示す情報を、再配置の移動先となる処理ノードである移動先ノードに格納させる処理ノード内部状態制御手段を備えるように構成されていてもよい。
【０１３６】
（１８）処理ノード再配置装置は、処理ネットワークに含まれる複数の情報処理装置間にまたがって処理ノードの再配置が行われる場合に、情報処理装置間でデータストリームを送受信するための送信ノード及び受信ノードを生成する送受信ノード生成手段を備えるように構成されていてもよい。
【０１３７】
（１９）データストリーム処理方法は、複数の処理ノードを用いてデータストリームを処理するデータストリーム処理方法であって、データストリームの処理中に、所定のデータ消失防止処理を行って処理ノードを再配置する処理を実行する処理ノード再配置ステップを含むことを特徴とする。
【０１３８】
（２０）データストリーム処理方法は、データストリームの処理を行う処理ネットワークが、データストリームを処理する物理的な計算機リソースとして複数の情報処理装置を含み、各処理ノードが、処理ネットワークに含まれる複数の情報処理装置を用いて割り当てられ、データストリームに対して所定の要約処理を実行し、処理ネットワークが、処理ノードの再配置が行われた後に、要約処理されたデータストリームの処理を開始するように構成されていてもよい。
【０１３９】
（２１）データストリーム処理方法は、データストリームの処理を行う処理ネットワークが、データストリームを処理する物理的な計算機リソースとして複数の情報処理装置を含み、各処理ノードが、処理ネットワークに含まれる複数の情報処理装置を用いて割り当てられ、データストリームに対して所定の圧縮処理を実行し、処理ネットワークが、処理ノードの再配置が行われた後に、圧縮処理されたデータストリームの処理を開始するように構成されていてもよい。
【０１４０】
（２２）データストリーム処理方法は、処理ネットワークに含まれる処理ノード間のデータフローを接続したり、処理ノード間のデータフローを遮断したりする処理を実行するデータフロー制御ステップを含み、データフロー制御ステップで、処理ノードの再配置を開始するときに、再配置の移動元となる処理ノードである移動元ノードへのデータフローを遮断して、データストリームの入力を停止させる処理を行い、入力を停止されたデータフローを蓄積するバッファノードを生成するバッファノード制御ステップをさらに含み、処理ネットワークが、処理ノードの再配置が行われた後に、バッファノードに蓄積されたデータストリームの処理を開始するように構成されていてもよい。
【０１４１】
（２３）データストリーム処理方法は、処理ネットワークに含まれる各処理ノードを起動させたり、各処理ノードを停止させたりする処理を実行する処理ノード制御ステップを含み、処理ノード制御ステップで、移動元ノードが当該移動元ノードを安全に停止可能な所定のインタフェースを有するか否かを判定し、所定のインタフェースを有すると判定すると、当該所定のインタフェースを用いて移動元ノードを停止させる処理を実行するように構成されていてもよい。
【０１４２】
（２４）データストリーム処理方法は、処理ノード制御ステップで、移動元ノードが所定のインタフェースを有しないと判定すると、所定時間待機した後に、移動元ノードを停止させる処理を実行するように構成されていてもよい。
【０１４３】
（２５）データストリーム処理方法は、処理ノード制御ステップで、処理ネットワーク内に複数の移動元ノードが含まれる場合には、複数の移動元ノードのうち上流側に位置する移動元ノードから順に停止させる処理を実行するように構成されていてもよい。
【０１４４】
（２６）データストリーム処理方法は、移動元ノードが停止されると、移動元ノードから内部状態を示す情報を抽出し、抽出した内部状態を示す情報を、再配置の移動先となる処理ノードである移動先ノードに格納させる処理ノード内部状態制御ステップを含むように構成されていてもよい。
【０１４５】
（２７）データストリーム処理方法は、処理ネットワークに含まれる複数の情報処理装置間にまたがって処理ノードの再配置が行われる場合に、情報処理装置間でデータストリームを送受信するための送信ノード及び受信ノードを生成する送受信ノード生成ステップを含むように構成されていてもよい。
【０１４６】
（２８）処理ノード再配置装置用プログラムは、複数の処理ノードを用いてデータストリームを処理する場合に処理ノードの再配置を行うための処理ノード再配置用プログラムであって、コンピュータに、データストリームの処理中に、所定のデータ消失防止処理を行って処理ノードを再配置する処理を実行する処理ノード再配置処理を実行させるためのものである。
【０１４７】
（２９）処理ノード再配置装置用プログラムは、コンピュータに、データストリームに対して所定の要約処理を実行させるものであってもよい。
【０１４８】
（３０）処理ノード再配置装置用プログラムは、コンピュータに、データストリームに対して所定の圧縮処理を実行させるものであってもよい。
【０１４９】
（３１）処理ノード再配置装置用プログラムは、コンピュータに、処理ネットワークに含まれる処理ノード間のデータフローを接続したり、処理ノード間のデータフローを遮断したりする処理を実行するデータフロー制御処理を実行させ、データフロー制御処理で、処理ノードの再配置を開始するときに、再配置の移動元となる処理ノードである移動元ノードへのデータフローを遮断して、データストリームの入力を停止させる処理を実行させ、入力を停止されたデータフローを蓄積するバッファノードを生成するバッファノード制御処理をさらに実行させるものであってもよい。
【０１５０】
（３２）処理ノード再配置装置用プログラムは、コンピュータに、処理ネットワークに含まれる各処理ノードを起動させたり、各処理ノードを停止させたりする処理を実行する処理ノード制御処理を実行させる、処理ノード制御処理で、移動元ノードが当該移動元ノードを安全に停止可能な所定のインタフェースを有するか否かを判定し、所定のインタフェースを有すると判定すると、当該所定のインタフェースを用いて移動元ノードを停止させる処理を実行させるものであってもよい。
【０１５１】
（３３）処理ノード再配置装置用プログラムは、コンピュータに、処理ノード制御処理で、移動元ノードが所定のインタフェースを有しないと判定すると、所定時間待機した後に、移動元ノードを停止させる処理を実行させるものであってもよい。
【０１５２】
（３４）処理ノード再配置装置用プログラムは、コンピュータに、処理ノード制御処理で、処理ネットワーク内に複数の移動元ノードが含まれる場合には、複数の移動元ノードのうち上流側に位置する移動元ノードから順に停止させる処理を実行させるものであってもよい。
【０１５３】
（３５）処理ノード再配置装置用プログラムは、コンピュータに、移動元ノードが停止されると、移動元ノードから内部状態を示す情報を抽出し、抽出した内部状態を示す情報を、再配置の移動先となる処理ノードである移動先ノードに格納させる処理ノード内部状態制御処理を実行させるものであってもよい。
【０１５４】
（３６）処理ノード再配置装置用プログラムは、コンピュータに、処理ネットワークに含まれる複数の情報処理装置間にまたがって処理ノードの再配置が行われる場合に、情報処理装置間でデータストリームを送受信するための送信ノード及び受信ノードを生成する送受信ノード生成処理を実行させるものであってもよい。
【産業上の利用可能性】
【０１５５】
本発明は、永続的に生成され続ける大量の情報を逐次的に分析するデータストリーム処理システムに適用できる。
【符号の説明】
【０１５６】
１，２  物理サーバ
１１，１２，１３，１４  処理ノード
２１，２２，２３，２４  処理ノード
３１，３２  送信ノード
４１，４２  受信ノート
１００  管理部
１０１  処理ノード管理手段
１０２  データフロー管理手段
１０３  処理ノード内部状態管理手段
１０４  送受信ノード管理手段
１０５  バッファノード管理手段
１０６  データストリーム要約手段
２００  処理ネットワーク
【図１】
0005504872.tif 000002
【図２】
0005504872.tif 000003
【図３】
0005504872.tif 000004
【図４】
0005504872.tif 000005
【図５】
0005504872.tif 000006
【図６】
0005504872.tif 000007
【図７】
0005504872.tif 000008
【図８】
0005504872.tif 000009
【図９】
0005504872.tif 000010
【図１０】
0005504872.tif 000011