(57)【特許請求の範囲】
【請求項１】
複数のエージェントが移動し、必要に応じエージェント間で通信を行なうことにより処理を行なう移動型エージェントシステムのデータ管理方法において、
エージェントの移動先となるエージェントシステムがそのエージェントを受け入れできないとき、エージェント毎に指定された特定のサーバに対してエージェントを一旦移動させて保持し、
上記サーバは、受け入れできなかったエージェントシステムの位置情報を前記エージェントから取り出し、この取り出した位置情報に基づいて移動先エージェントシステムの状態を定期的に調べ、状態を監視してエージェントの受け入れが可能な状態となったときに一旦保持されたエージェントを移動させる
ことを特徴とする移動型エージェントのデータ管理方法。
【請求項２】
複数のエージェントが移動し、必要に応じエージェント間で通信を行なうことにより処理を行なう移動型エージェントシステムのデータ管理方法において、
エージェントの移動先となるエージェントシステムがそのエージェントを受け入れできないとき、エージェント毎に指定された特定のサーバに対してエージェントの内部状態を凍結して移動させて保持し、
上記サーバは、受け入れできなかったエージェントシステムの位置情報を前記エージェントの凍結された内部状態から取り出し、この取り出した位置情報に基づいて移動先エージェントシステムの状態を定期的に調べ、状態を監視してエージェントの受け入れが可能な状態となったときに保持されたエージェントの凍結された内部状態を移動させる
ことを特徴とする移動型エージェントのデータ管理方法。
【請求項３】
複数のエージェントが移動し、必要に応じエージェント間で通信を行なうことにより処理を行なう移動型エージェントシステムのデータ管理方法において、
同一のエージェントシステム内に移動予定のエージェントが複数存在するとき、いずれかのエージェントの内部状態を凍結し、他の任意のエージェントにその凍結した状態を保持させることにより、一回の転送で複数エージェントを移動させる
ことを特徴とする移動型エージェントの状態管理方法。
【請求項４】
複数のエージェントが移動し、必要に応じエージェント間で通信を行なうことにより処理を行なう移動型エージェントシステムのデータ管理方法において、
エージェントの処理を終え次のエージェントシステムに移動させるとき、移動先のエージェントシステムが稼動していない場合、そのエージェントの内部状態のみを凍結し、他の任意のエージェントにその凍結した状態を保持させて、移動先のエージェントシステムが稼働するまで待つ
ことを特徴とする移動型エージェントの状態管理方法。
【請求項５】
複数のエージェントが移動し、必要に応じエージェント間で通信を行なうことにより処理を行なう移動型エージェントシステムのデータ管理方法において、
エージェントの処理を終え次のエージェントシステムに移動させるとき、移動先のエージェントシステムが稼動していない場合、そのエージェントの内部状態のみを凍結し、同一の移動先を持つ他のエージェントにその凍結した状態を保持させ、移動先のエージェントシステムが稼動したときに凍結されている状態を他のエージェントと共に移動させる
ことを特徴とする移動型エージェントの状態管理方法。
【請求項６】
複数のエージェントシステムがネットワークによって接続され、エージェントシステムから発行されるエージェントがいくつかのエージェントシステム、ネットワークを経由して移動する移動型エージェントシステムのデータ管理システムにおいて、
各エージェントシステムは、エージェントの移動先となるエージェントシステムがそのエージェントを受け入れできないとき、エージェント毎に指定された特定のサーバに対してエージェントを一旦移動させて保持させるエージェント管理手段を有し、
前記サーバは、受け入れできなかったエージェントシステムの位置情報を前記エージェントから取り出し、この取り出した位置情報に基づいて移動先エージェントシステムの状態を定期的に調べ、状態を監視してエージェントの受け入れが可能な状態となったときに一旦保持されたエージェントを当該エージェントシステムへ移動させるサーバ管理手段を有する
ことを特徴とする移動型エージェントのデータ管理システム。
【請求項７】
複数のエージェントシステムがネットワークによって接続され、エージェントシステムから発行されるエージェントがいくつかのエージェントシステム、ネットワークを経由して移動する移動型エージェントシステムのデータ管理システムにおいて、
各エージェントシステムは、エージェントの移動先となるエージェントシステムがそのエージェントを受け入れできないとき、エージェント毎に指定された特定のサーバに対してエージェントの内部状態を凍結して移動させ保持させるエージェント管理手段を有し、
前記サーバは、受け入れできなかったエージェントシステムの位置情報を前記エージェントから取り出し、この取り出した位置情報に基づいて移動先エージェントシステムの状態を定期的に調べ、状態を監視してエージェントの受け入れが可能な状態となったときに保持されたエージェントの凍結された内部状態を当該エージェントシステムへ移動させるサーバ管理手段を有する
ことを特徴とする移動型エージェントのデータ管理システム。
【請求項８】
複数のエージェントシステムがネットワークによって接続され、エージェントシステムから発行されるエージェントがいくつかのエージェントシステム、ネットワークを経由して移動する移動型エージェントシステムのデータ管理システムにおいて、
各エージェントシステムは、  同一のエージェントシステム内に移動予定のエージェントが複数存在するとき、いずれかのエージェントの内部状態を凍結し、他の任意のエージェントにその凍結した状態を保持させることにより、一回の転送で複数エージェントを移動させる
ことを特徴とする移動型エージェントのデータ管理システム。
【請求項９】
複数のエージェントシステムがネットワークによって接続され、エージェントシステムから発行されるエージェントがいくつかのエージェントシステム、ネットワークを経由して移動する移動型エージェントシステムのデータ管理システムにおいて、
各エージェントシステムは、エージェントの処理を終え次のエージェントシステムに移動させるとき、移動先のエージェントシステムが稼動していない場合、そのエージェントの内部状態のみを凍結し、他の任意のエージェントにその凍結した状態を保持させて、移動先のエージェントシステムが稼働するまで待ち、移動先のエージェントシステムが稼動したときに凍結されている状態を他のエージェントと共に移動させる
ことを特徴とする移動型エージェントのデータ管理システム。
【請求項１０】
複数のエージェントシステムがネットワークによって接続され、エージェントシステムから発行されるエージェントがいくつかのエージェントシステム、ネットワークを経由して移動する移動型エージェントシステムのデータ管理システムにおいて、
各エージェントシステムは、エージェントの処理を終え次のエージェントシステムに移動させるとき、移動先のエージェントシステムが稼動していない場合、そのエージェントの内部状態のみを凍結し、同一の移動先を持つ他のエージェントにその凍結した状態を保持させて、移動先のエージェントシステムが稼働するまで待ち、移動先のエージェントシステムが稼動したときに凍結されている状態を他のエージェントと共に移動させる
ことを特徴とする移動型エージェントのデータ管理システム。
【請求項１１】
複数のエージェントシステムがネットワークによって接続され、エージェントシステムから発行されるエージェントがいくつかのエージェントシステム、ネットワークを経由して移動する移動型エージェントシステムに適用され、
エージェントの移動先となるエージェントシステムがそのエージェントを受け入れできないときに、移動元となるエージェントシステムが、エージェント毎に指定された特定のサーバに対してエージェントを一旦移動させて保持させた場合、
上記サーバに、
受け入れできなかったエージェントシステムの位置情報を前記エージェントから取り出すステップと、
この取り出した位置情報に基づいて移動先エージェントシステムの状態を定期的に調べて状態を監視するステップと、
この監視により前記移動先エージェントシステムがエージェントの受け入れが可能な状態となったときに一旦保持されたエージェントを前記移動先エージェントシステムに移動させるステップと、
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１２】
複数のエージェントシステムがネットワークによって接続され、エージェントシステムから発行されるエージェントがいくつかのエージェントシステム、ネットワークを経由して移動する移動型エージェントシステムに適用され、
エージェントの移動先となるエージェントシステムがそのエージェントを受け入れできないときに、移動元となるエージェントシステムが、エージェント毎に指定された特定のサーバに対してエージェントの内部状態を凍結して移動保持させた場合、
前記サーバに、
受け入れできなかったエージェントシステムの位置情報を前記エージェントから取り出すステップと、
この取り出した位置情報に基づいて移動先エージェントシステムの状態を定期的に調べて状態を監視するステップと、
この監視により前記移動先エージェントシステムがエージェントの受け入れが可能な状態となったときに保持されたエージェントの凍結された内部状態を前記移動先エージェントシステムへ移動させるステップと、
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１３】
複数のエージェントシステムがネットワークによって接続され、エージェントシステムから発行されるエージェントがいくつかのエージェントシステム、ネットワークを経由して移動する移動型エージェントシステムに適用され、
同一のエージェントシステム内に移動予定のエージェントが複数存在することを確認するステップと、
いずれかのエージェントの内部状態のみ凍結し、他の任意のエージェントにその凍結した状態を保持させるステップとを
前記エージェントシステムに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１４】
複数のエージェントシステムがネットワークによって接続され、エージェントシステムから発行されるエージェントがいくつかのエージェントシステム、ネットワークを経由して移動する移動型エージェントシステムに適用され、
前記エージェントシステムに、
エージェントの処理を実行するステップと、
エージェントの処理を終え、次のエージェントシステムに移動させるとき移動先のエージェントシステムが稼動していない場合そのエージェントの内部状態のみを凍結するステップと、
その凍結した状態を他の任意のエージェントに保持させ、移動先のエージェントシステムが稼動したときに凍結されている状態を前記他の任意のエージェント共に稼動した移動先のエージェントシステムへ移動させるステップと、
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１５】
複数のエージェントシステムがネットワークによって接続され、エージェントシステムから発行されるエージェントがいくつかのエージェントシステム、ネットワークを経由して移動する移動型エージェントシステムに適用され、
前記エージェントシステムに、
エージェントの処理を実行するステップと、
エージェントの処理を終え、次のエージェントシステムに移動させるとき移動先のエージェントシステムが稼動していない場合そのエージェントの内部状態のみを凍結するステップと、
その凍結した状態を同一の移動先を持つ他のエージェントに保持させるステップと、
移動先のエージェントシステムが稼動したときに凍結されている状態を他のエージェント共に稼動した移動先のエージェントシステムへ移動させるステップと、
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、移動型エージェントのデータ管理方法ならびにデータ管理システム、及び同方法がプログラムされ記録される記録媒体に関する。
【０００２】
【従来の技術】
移動型エージェントは、エージェント自体のコードの移動と、データの移動を伴いながら適切な場所で適切な処理を行なうことを目的としている。エージェントが移動し、必要に応じてエージェント間で通信を行ないながら処理を継続することで柔軟性の高いシステム構築が可能となる。
【０００３】
移動型エージェント技術に基づいて作成されるアプリケーションシステムは、異なる計算機で動作するプログラムの集合とみることができる。従来からのオブジェクト指向技術に基づいたオブジェクトに移動性を持たせたものをエージェントとみることもできる。
【０００４】
移動型エージェントシステムは移動性を持つことを特徴とする。このため、エージェントを生成したプログラムが動作する計算機は、全ての作業を終えて戻ってくるまで待ちの状態となる。つまり、待ち状態の計算機を止めておくことが可能となる。ところが、巡回を終了したエージェントが戻ろうとしたときに計算機が稼動していなければ、１つ手前の計算機で待たされるという事態が生じ、場合によってはエージェントが特定の計算機上に集中するという状況となる。
【０００５】
【発明が解決しようとする課題】
上述した従来技術において、エージェントは、移動する先にデータだけでなく、自らのコードも移動させるため、最終目的地の計算機へたどりつけない場合には、そのまま滞在するように配慮する必要があり、二次記憶装置を備えていない、あるいはメモリ容量の少ない小規模な計算機では、新しいエージェントが動作できない等の不具合があった。
【０００６】
本発明は上記事情に鑑みてなされたものであり、小規模な計算機の資源を消費することなく、エージェントを一時的に保持することのできる、移動型エージェントのデータ管理方法ならびにデータ管理システム、及び同方法がプログラムされ記録される記録媒体を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明の移動型エージェントのデータ管理方法は、複数のエージェントが移動し、必要に応じエージェント間で通信を行なうことにより処理を行なう移動型エージェントシステムのデータ管理方法において、エージェントの移動先となるエージェントシステムがそのエージェントを受け入れできないとき、エージェント毎に指定された特定のサーバに対してエージェントを一旦移動させて保持し、上記サーバは、受け入れできなかったエージェントシステムの位置情報を前記エージェントから取り出し、この取り出した位置情報に基づいて移動先エージェントシステムの状態を定期的に調べ、状態を監視してエージェントの受け入れが可能な状態となったときに一旦保持されたエージェントを移動させることを特徴とする。
【０００８】
また、エージェントの移動先となるエージェントシステムがそのエージェントを受け入れできないとき、エージェント毎に指定された特定のサーバに対してエージェントの内部状態を凍結して移動させて保持し、上記サーバは、受け入れできなかったエージェントシステムの位置情報を前記エージェントの凍結された内部状態から取り出し、この取り出した位置情報に基づいて移動先エージェントシステムの状態を定期的に調べ、状態を監視してエージェントの受け入れが可能な状態となったときに保持されたエージェントの凍結された内部状態を移動させることも特徴とする。
【０００９】
更に、同一のエージェントシステム内に移動予定のエージェントが複数存在するとき、いずれかのエージェントの内部状態を凍結し、他の任意のエージェントにその凍結した状態を保持させることにより、一回の転送で複数エージェントを移動させること、移動先のエージェントシステムが稼動していない場合、そのエージェントの内部状態のみを凍結し、他の任意のエージェント、または同一の移動先を持つ他のエージェントにその凍結した状態を保持させて、移動先のエージェントシステムが稼働するまで待ち、移動先のエージェントシステムが稼動したときに凍結されている状態を他のエージェントと共に移動させることも特徴とする。
本発明の移動型エージェントのデータ管理システムは、複数のエージェントシステムがネットワークによって接続され、エージェントシステムから発行されるエージェントがいくつかのエージェントシステム、ネットワークを経由して移動する移動型エージェントシステムのデータ管理システムであって、各エージェントシステムは、エージェントの移動先となるエージェントシステムがそのエージェントを受け入れできないとき、エージェント毎に指定された特定のサーバに対してエージェントを一旦移動させて保持させるエージェント管理手段を有し、前記サーバは、受け入れできなかったエージェントシステムの位置情報を前記エージェントから取り出し、この取り出した位置情報に基づいて移動先エージェントシステムの状態を定期的に調べ、状態を監視してエージェントの受け入れが可能な状態となったときに一旦保持されたエージェントを当該エージェントシステムへ移動させるサーバ管理手段を有することを特徴とする。
【００１０】
また、各エージェントシステムは、エージェントの移動先となるエージェントシステムがそのエージェントを受け入れできないとき、エージェント毎に指定された特定のサーバに対してエージェントの内部状態を凍結して移動させ保持させるエージェント管理手段を有し、前記サーバは、受け入れできなかったエージェントシステムの位置情報を前記エージェントから取り出し、この取り出した位置情報に基づいて移動先エージェントシステムの状態を定期的に調べ、状態を監視してエージェントの受け入れが可能な状態となったときに保持されたエージェントの凍結された内部状態を当該エージェントシステムへ移動させるサーバ管理手段を有することも特徴とする。さらに、各エージェントシステムは、同一のエージェントシステム内に移動予定のエージェントが複数存在するとき、いずれかのエージェントの内部状態を凍結し、他の任意のエージェントにその凍結した状態を保持させることにより、一回の転送で複数エージェントを移動させること、また、各エージェントシステムは、エージェントの処理を終え次のエージェントシステムに移動させるとき、移動先のエージェントシステムが稼動していない場合、そのエージェントの内部状態のみを凍結し、他の任意のエージェント、または同一の移動先を持つ他のエージェントにその凍結した状態を保持させて、移動先のエージェントシステムが稼働するまで待ち、移動先のエージェントシステムが稼動したときに凍結されている状態を他のエージェントと共に移動させることも特徴とする。
【００１１】
本発明の記録媒体は、複数のエージェントシステムがネットワークによって接続され、エージェントシステムから発行されるエージェントがいくつかのエージェントシステム、ネットワークを経由して移動する移動型エージェントシステムに適用され、エージェントの移動先となるエージェントシステムがそのエージェントを受け入れできないときに、移動元となるエージェントシステムが、エージェント毎に指定された特定のサーバに対してエージェントを一旦移動させて保持させた場合、上記サーバに、受け入れできなかったエージェントシステムの位置情報を前記エージェントから取り出すステップと、この取り出した位置情報に基づいて移動先エージェントシステムの状態を定期的に調べて状態を監視するステップと、この監視により前記移動先エージェントシステムがエージェントの受け入れが可能な状態となったときに一旦保持されたエージェントを前記移動先エージェントシステムに移動させるステップとを実行させるためのプログラムを記録したことを特徴とする。
【００１２】
また、エージェントの移動先となるエージェントシステムがそのエージェントを受け入れできないときに、移動元となるエージェントシステムが、エージェント毎に指定された特定のサーバに対してエージェントの内部状態を凍結して移動保持させた場合、前記サーバに、受け入れできなかったエージェントシステムの位置情報を前記エージェントから取り出すステップと、この取り出した位置情報に基づいて移動先エージェントシステムの状態を定期的に調べて状態を監視するステップと、この監視により前記移動先エージェントシステムがエージェントの受け入れが可能な状態となったときに保持されたエージェントの凍結された内部状態を前記移動先エージェントシステムへ移動させるステップとを実行させるためのプログラムを記録したことも特徴とする。
【００１３】
更に、前記サーバに、受け入れできなかったエージェントシステムの位置情報を前記エージェントから取り出すステップと、この取り出した位置情報に基づいて移動先エージェントシステムの状態を定期的に調べて状態を監視するステップと、この監視により前記移動先エージェントシステムがエージェントの受け入れが可能な状態となったときに保持されたエージェントの凍結された内部状態を前記移動先エージェントシステムへ移動させるステップとを実行させるためのプログラムを記録したこと、同一のエージェントシステム内に移動予定のエージェントが複数存在することを確認するステップと、いずれかのエージェントの内部状態のみ凍結し、他の任意のエージェントにその凍結した状態を保持させるステップとをエージェントシステムに実行させるためのプログラムを記録したこと、エージェントシステムに、エージェントの処理を実行するステップと、エージェントの処理を終え、次のエージェントシステムに移動させるとき移動先のエージェントシステムが稼動していない場合そのエージェントの内部状態のみを凍結するステップと、その凍結した状態を他の任意のエージェント、または同一の移動先を持つ他のエージェントに保持させ、移動先のエージェントシステムが稼動したときに凍結されている状態を前記他の任意のエージェント共に稼動した移動先のエージェントシステムへ移動させるステップとを実行させるためのプログラムを記録したことも特徴とする
【００１４】
このことにより、エージェントを移動させたいエージェントシステムが停止していた場合に、特定のエージェント保持サーバにエージェントを一時的に移動させることで、小規模な計算機上にエージェントを滞留させることなく、他のエージェントの処理を実行させることができるようになる。資源の有効活用ができる他、システムのスループット向上がはかれる。
【００１５】
【発明の実施の形態】
図１は本発明の移動型エージェントのデータ管理システムの実施形態を示すブロック図である。具体的には、エージェントの状態管理を行なうときの運用の形態を示す図である。図に示すように、本発明の移動型エージェントのデータ管理システムは、エージェントクライアント１１〜１１ｎ、エージェントプラットフォーム１２〜１２ｍ、エージェント保持サーバ１３がネットワーク１４を介して接続されている。エージェントクライアント11〜１１ｎから発行されたエージェントがいくつかのエージェントプラットフォーム１２〜１２ｍをネットワーク１４経由で移動し、最後にエージェントクライアント１１〜１１ｎに戻ってくる。エージェント保持サーバ１３は、エージェントを一時的に保持するための格納部であり、エージェントを蓄えておくエージェントプール（図示せず）を持つ。
【００１６】
尚、エージェントクライアント１１〜１１ｎとエージェントプラットフォーム１２〜１２ｍとの違いは、ユーザがエージェントを操作（発行）できるか否かの違いであり、両者を区別しないときにはエージェントシステムと呼ぶことにする。
【００１７】
エージェントシステムの内部構成を図２に示す。エージェントシステム１１は、エージェントを蓄えるエージェントプール１１１、エージェントを実行するエージェント実行部１１２、エージェント管理部１１３、エージェント転送部１１４、エージェント受信部１１５で構成される。全てのエージェントはエージェントプール１１１で保持される。エージェント管理部１１３は、エージェントの実行の可否を判断し、エージェント実行部１１２を駆動し、エージェント実行部１１２にて処理を行なう。外部のエージェントシステムから送られてきたエージェントは、エージェント受信部１１５を介して取り込み、エージェント管理部１１３の制御の下でエージェントプール１１１に格納する。エージェントシステム１１にて生成、もしくは外部へ転送すべきエージェントは、エージェント管理部１１３による管理の下でエージェント転送部１１４を通じてネットワーク１４へ送出される。
【００１８】
以下、本発明実施例の動作について説明するが、まず本発明特徴から述べれば、移動型エージェントがターゲットとするエージェントシステムにそのエージェントを移動できない状態にあるとき、エージェント保持サーバ１３にそのエージェントの状態を保持することによりそのエージェント状態管理を行なうことにあるものである。
【００１９】
説明の理解を得やすくするために次の状況を考える。即ち、エージェントＡは、移動不能時のためにエージェント保持サーバ１３の位置情報を保持している。図３に示すように、エージェントＡがエージェント保持サーバ１３としてＬの位置情報を持っている。また、次の移動先としてエージェントクライアントシステム１が指定されているとする。エージェント保持サーバ１３における位置情報の保持方法としては、エージェントシステム毎に特定のエージェント保持サーバを持つこともできる。また、エージェント保持サーバ１３は１つである必要がなく、複数指定できるようにリスト等により管理することも可能である。
【００２０】
以下、本発明のエージェントの状態管理を行なう場合の一運用形態につき４つを例示し、図４乃至図７に示すフローチャートを参照しながら説明する。
【００２１】
（例１）エージェントＡをエージェントプラットフォームｍからエージェントクライアントｎに移動しようとしたときに、エージェントクライアントｎが稼動していなかった場合（図４のステップＳ１０２）に、エージェントプラットフォームｍは、エージェントＡが保持するエージェント保持サーバ１３の位置情報を取り出し、エージェントＡをＬに移動させる（ステツプＳ１０４）。エージェント保持サーバＬでは、エージェントＡが本来移動すべきエージェントシステムの位置情報をエージェントＡの保持する移動先リストから取り出す（ステップＳ１０６）。ここではエージェントクライアント１が取り出される。そこでエージェント保持サーバＬは、ターゲットのエージェントシステムであるエージェントクライアント１の状態を定期的に調べる（ステップＳ１０８）。エージェントクライアントが移動可能な状態になっていたならば、エージェントＡをエージェントクライアント１に移動させる（ステップＳ１１０）。
【００２２】
（例２）エージェントクライアント１は、発行したエージェントＡが戻ってくるまでに時間がかかるため、システムを停止させているものとする。エージェントＡをエージェントプラットフォームｍからエージェントクライアントに移動しようとしたときに、エージェントクライアント１が稼動していないので、エージェントプラットフォームｍは、エージェントＡが保持するエージェント保持サーバの位置情報を取り出し、エージェントＡをＬに移動させる（ステップＳ２０２）。エージェントクライアント１は、当該クライアントが稼動していないときにエージェントがエージェント保持サーバＬに移動することを保持している（ステップＳ２０４）。ユーザがエージェントＡの処理結果をみるとき（ステップＳ２０６）に、エージェントクライアント１を稼動（ステップＳ２０８）させる。このとき、エージェントクライアント１は、エージェント保持サーバが自分宛てのエージェントを保持していないかを調べる。この例では、エージェントＡがエージェント保持サーバＬに保持されているのでエージェントクライアント１は、エージェント保持サーバＬに対して、エージェントＡをエージェントクライアント１に移動させるように依頼する。エージェント保持サーバＬは、エージェントＡをエージェントクライアント１に移動させる。
【００２３】
（例３）エージェントＡをエージェントプラットフォームｍからエージェントクライアントに移動しようとしたときに、エージェントクライアントが稼動していなかった場合を想定する。エージェントプラットフォームｍは、エージェントＡが保持するエージェント保持サーバの位置情報を取り出し、エージェントＡの内部状態の凍結を行なう（図６のステップＳ３０２）。内部状態の凍結は、例えば、エージェント内部の変数等の値を文字列化する方法で行なう。そして、凍結したエージェントＡの内部状態だけをＬに転送し保持させる。
【００２４】
エージェント保持サーバＬでは、エージェントＡの凍結された状態をエージェントプールに格納する（ステップＳ３０４）。そして、エージェントＡが本来移動すべきエージェントシステムの位置情報をエージェントＡの凍結された状態内の移動先リストから取り出す（ステップＳ３０６）。ここでは、エージェントクライアント１が取り出される。そこで、エージェント保持サーバＬは、ターゲットのエージェントシステムであるエージェントクライアント１の状態を定期的に調べる（）ステップＳ３０８）。エージェントクライアント１が移動可能状態になっていたならば（ステップＳ３１０のＹＥＳ）、エージェントＡの凍結された状態をエージェントクライアント１に転送する（ステップＳ３１２）。エージェントクライアント１では、凍結された状態のエージェントＡを解凍し、通常のエージェントとして動作させる  （ステップＳ３１４）。
【００２５】
（例４）エージェントクライアント１は、発行したエージェントＡが戻ってくるまでに時間がかかるためにシステムを停止させているものとする。エージェントＡをエージェントプラットフォームｍからエージェントクライアントに移動しようとしたときに、エージェントクライアントが稼動していないので、エージェントプラットフォームｍは、エージェントＡが保持するエージェント保持サーバ１３の位置情報を取り出し、エージェントＡの内部状態の凍結を行なう（図７のステップＳ４０２）。内部状態の凍結は、例えば、エージェント内部の変数等の値を文字列化する方法で行なう。そして、凍結したエージェントＡの内部状態だけをＬに転送し保持させる。
【００２６】
エージェント保持サーバＬでは、エージェントＡの凍結された状態をエージェントプールに格納する（ステップＳ４０４）。エージェントクライアント１は、当該クライアントが稼動していないときにエージェントがエージェント保持サーバＬに移動することがわかっている。ユーザがエージェントＡの処理結果を見るときにエージェントクライアント１を稼動させる（ステップＳ４０６）。このとき、ユーザクライアント１は、エージェント保持サーバ１３が自分宛てのエージェントを保持していないか調べる。この例では、エージェントＡの凍結された状態がエージェント保持サーバＬに保持されているので、エージェントクライアント１はエージェント保持サーバＬに対してエージェントＡの凍結された状態をエージェントクライアント１に転送するように依頼する。エージェント保持サーバＬは、エージェントＡの凍結された状態をエージェントクライアント１に転送する。エージェントクライアント１では、凍結された状態のエージェントＡを解凍し、通常のエージェントとして動作させる（ステップＳ４１０）。
【００２７】
上述した例１〜４によって、エージェントを移動させたいエージェントシステムが停止していた場合でも、特定のエージェント保持サーバにエージェントを一時的に移動保持させることで、小規模な計算機上にエージェントを滞留させることなく、他のエージェントの処理を実行させることができるようになる。
【００２８】
次に本発明の他の実施形態につき２つを例示し、図９、図１０に示すフローチャートを参照しながら説明する。
【００２９】
エージェントの状態管理を行なう場合の運用構成は、図１、図２と同様であるため、重複を避ける意味でここでの説明は省略する。
【００３０】
ここでは説明を簡単にするために次の状況を考える。図８に示すように、エージェントプラットフォームＰ１からＰ２にエージェントＡ１，Ａ２が移動するものとする。また、他のエージェントの説明を省略するために図に示すエージェントのみ想定する。また、エージェントＡ１，Ａ２は、図１０に示すように、次の移動先としてエージェントプラットフォーム
【００３１】
（例５）エージェントプラットフォームＰ１において、エージェントＡ１が移動する状況を考える。このときに、エージェントプラットフォーム内にあるエージェントの移動先リストを調べ、同一の移動先のエージェントを抽出する（図９のステップＳ５０２）。この例ではエージェントＡ２が該当する。ここで、エージェントプラットフォームＰ１は、エージェントＡ１の内部状態を凍結することを決める（ステップＳ５０４）。どのエージェントを凍結するかは任意であるため、エージェントＡ２を凍結してもよい。凍結は内部状態の文字列化で行なう。
【００３２】
図９に示すエージェントＡ１の移動先リストは、リストが空になっている以外は変更されていないとすれば、図１２の（ａ）に示すような文字列になる。これをエージェントＡ２の「他データ保持」属性に保持させる（ステップＳ５０６）。こうすることにより、エージェントＡ２が移動するときに、エージェントＡ１も同時に移動することになる。エージェントプラットフォームＰ２にエージェントＡ２が移動してきたときには、エージェントＡ２に保持されているエージェントＡ１の内部状態を解凍し、エージェントプールに戻す。この後、エージェントＡ１，Ａ２は通常の処理を行なうことになる。
【００３３】
（例６）次に、エージェントプラットフォームＰ１において、エージェントＡ１がエージェントプラットフォームＰ２に移動する状況を考える。エージェントプラットフォームＰ２が可動していないときに次のような処理が行われる。
【００３４】
まず、エージェントプラットフォームＰ１内にある任意のエージェントを探す（図１１のステップＳ６０２）。この例では、エージェントＡ１以外にはエージェントＡ２しか存在しないので一意に決定する。次にエージェントプラットフォームＰ１は、エージェントＡ１の内部状態を凍結する（ステップＳ６０４）。先の例と同様であるが、移動先リストについては、同一の移動先へいくエージェントが選択されているときには、移動先リストから１つ取り除き、そうでないときは、移動先リストを変更しない。この例では、エージェントＡ２も処理後はエージェントプラットフォームＰ２へ移動するので、エージェントＡ１の移動先リストからＰ２を取り除く。この場合先の例と同様図１２の（ａ）に示す文字列となる。これをエージェントＡ２の「他データ保持」属性に保持させる（図１１のステップＳ６０６）次に、エージェントＡ２がプラットフォームＰ２へ移動するときを考える。Ｐ２が稼動していないときには、状態を凍結し保持させるのに必要なエージェントがＰ１に存在しないため、稼動するまで移動を待つことになる。Ｐ２が稼動しているときには、通常の移動手段により、エージェントＡ２をＰ２に転送する。エージェントＡ２を受け取ったＰ２は、エージェントＡ２に保持されているエージェントＡ１の内部状態を解凍し、エージェントプールに戻す。この後、エージェントＡ１，Ａ２は通常の処理を行うことになる。
【００３５】
上述した例５，６によって、複数エージェントの移動を単一のエージェントにまとめて転送するため、転送のコストやネットワーク負荷を低減するとともに、特定の計算機にエージェントが多数滞留することを防ぐ効果が得られる。
【００３６】
尚、本発明はミドルウェアによって実現されるものであり、その内容は、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ等の光ディスクによって提供されるものである。
【００３７】
【発明の効果】
以上説明のように本発明は、小規模な計算機の資源を消費することなく、エージェントを一時的に保持することのできる、移動型エージェントのデータ管理方法ならびにデータ管理システム、及びプログラム記録媒体を提供ならびに構築するものであり、このことにより、以下に列挙する効果が得られる。
【００３８】
（１）エージェントを移動させたいエージェントシステムが停止していた場合に、特定のエージェント保持サーバにエージェントを一時的に移動させることで、小規模な計算機上にエージェントを滞留させることなく、他のエージェントの処理を実行させることができるようになる。
【００３９】
（２）エージェント保持サーバから定期的に本来のターゲット計算機に問い合わせを行う方式を採用することにより、ターゲット計算機で作業が再開されたときにユーザが特定の要求を発することなく、エージェントをターゲット計算機に移動させることができる。
【００４０】
（３）エージェント保持サーバにエージェントの状態のみを保持することにより、計算機資源の浪費を押さえる効果も合わせ持つ。
【００４１】
（４）同一計算機へのエージェントの移動をまとめることにより複数の転送シーケンスを一つにまとめることができる。
【００４２】
（５）移動先が稼動状態になるまでは、別のエージェントに状態を保持させることで、特定の稼動している計算機にエージェントが多数滞留することを防止できる。
【００４３】
（６）移動先が同一であることから、凍結するエージェントの移動先リストを縮減させることができるとともに、凍結した状態を保持したエージェントが移動した後、その移動先のエージェントプールにエージェント解凍するだけで処理を始めることが可能になる。
【００４４】
（７）エージェント毎エージェント保持サーバの位置情報を保持させることにより、エージェント毎に一時的な退避場所を設定できるため、特定のサーバに集中させないように配慮できる。また、エージェントプラットフォーム毎保持させることにより、エージェント保持サーバをエージェントプラットフォームの補助のージェントプールとして使用可能となる。後者によれば木目細かな分散ができない代わりに位置情報のための領域を減少させる効果もある。
【００４５】
（８）一時的にエージェントを退避させる場所を複数指定することによって、退避場所の負荷が重い場合や稼動していない場合に代替案を作成することができる。これによってエージェントを適切に分散可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態を示すブロック図、
【図２】図１におけるエージェントシステムの構成例を示すブロック図、
【図３】本発明の一実施形態の動作を説明するために引用したエージェントの属性の一部を示す図、
【図４】同実施形態に係わる（例１）の動作を説明するフローチャート、
【図５】同実施形態に係わる（例２）の動作を説明するフローチャート、
【図６】同実施形態に係わる（例３）の動作を説明するフローチャート、
【図７】同実施形態に係わる（例４）の動作を説明するフローチャート、
【図８】本発明の他の実施形態を示す図、
【図９】同実施形態に係わる（例５）の動作を説明するフローチャート、
【図１０】本発明の他の実施形態の動作を説明するために引用したエージェントの属性の一部を示す図、
【図１１】図８に示す実施形態に係わる（例６）の動作を説明するフローチャート。
【図１２】本発明の他の実施形態の動作を説明するために引用したエージェントの文字列化と属性の一部を示す図、
【符号の説明】
１１…エージェントクライアント、１２…エージェントプラットフォーム、１３…エージェント保持サーバ、１４…ネットワーク、１１１…エージェントプール、１１２…エージェント実行部、１１３…エージェント管理部、１１４…エージェント転送部、１１５…エージェント受信部。
【図１】
0004187814.tif 000002
【図２】
0004187814.tif 000003
【図３】
0004187814.tif 000004
【図４】
0004187814.tif 000005
【図５】
0004187814.tif 000006
【図６】
0004187814.tif 000007
【図７】
0004187814.tif 000008
【図８】
0004187814.tif 000009
【図９】
0004187814.tif 000010
【図１０】
0004187814.tif 000011
【図１１】
0004187814.tif 000012
【図１２】
0004187814.tif 000013