(57)【特許請求の範囲】
【請求項１】
エージェントを管理するエージェントマネージャを持つ計算機が、ネットワークを介して接続されるエージェントシステムにおける前記エージェントマネージャは、
前記ネットワークにより移動してくるエージェントが存在した移動元のエージェントマネージャに対し、そのエージェントが使用する資源の量を問い合わせ、
自分が存在する計算機における使用可能な資源の量と比較し、エージェント受け入れの可否を決定する
ことを特徴とするエージェント管理方法。
【請求項２】
資源は、計算機が持つＣＰＵ、メモリ、エージェントが操作するデバイスの少なくとも一つ、もしくはその組み合わせであることを特徴とする請求項１記載のエージェント管理方法。
【請求項３】
エージェントを管理するエージェントマネージャを持つ計算機が、ネットワークを介して接続されるエージェントシステムであって、
前記エージェントマネージャは、前記ネットワークにより移動してくるエージェントが存在した移動元のエージェントマネージャに対し、そのエージェントが使用する資源の量を問い合わせ、自分が存在する計算機における使用可能な資源の量と比較し、エージェント受け入れの可否を決定する
ことを特徴とするエージェントシステム。
【請求項４】
エージェントを管理するエージェントマネージャを持つ計算機がネットワークを介して接続されるエージェントシステムにて用いられ、
前記エージェントマネージャが、自身が管理していたエージェントの移動先のエージェントマネージャに対してエージェントの移動要求を送信するステップと、
前記移動先のエージェントマネージャから移動するエージェントの使用資源量の問い合わせを受信してエージェント使用資源量を送信するステップと、
移動先エージェントマネージャから移動拒否メッセージを受信したか否かをチェックするステップと、
否のときに限り移動先エージェントマネージャへエージェントを送信するステップと
がプログラムされ記録されたコンピュータ読み取り可能な記録媒体。
【請求項５】
エージェントを管理するエージェントマネージャを持つ計算機がネットワークを介して接続されるエージェントシステムにて用いられ、
前記エージェントマネージャが、移動してくるエージェントが存在した移動元のエージェントマネージャに、エージェントの資源使用量の問い合わせを送信するステップと、
前記問い合わせに基づいて移動元のエージェントマネージャから得られるエージェントの使用資源量を受信し、その資源量を、自分が存在する計算機における使用可能な資源の量と比較してエージェントの動作に十分であるか否かをチェックするステップと、
十分であると判断されたときにエージェントを受信し、否のとき、移動拒否メッセージを送信するステップと
がプログラムされ記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、資源の限られた計算機上でもエージェントを正常に動作させることのできる、エージェントのコード管理方法、ならびにシステム、及び同方法がプログラムされ記録される記録媒体に関する。
【０００２】
【従来の技術】
一般的に、人間のような振る舞いをするソフトウェアを「エージェント」と総称することが多い。エージェントが現行のオブジェクトと異なるのは、ネットワーク上のサーバを尋ね歩き、交渉しながら必要な情報を収集して帰ってくること、即ち、行動するオブジェクトということである。移動型エージェントは、エージェント自体のコードの移動と、データの移動を伴いながら、適切な場所で適切な処理を行うことを目的としている。エージェントが移動し、必要に応じてエージェント間で通信を行いながら処理を続けていくことで、柔軟性の高いシステムを構築することができる。
【０００３】
この移動型エージェント技術に基づいて作成されるアプリケーションシステムは、異なる計算機で動作するプログラムの集合と見ることができる。従来からのオブジェクト指向技術に基づいたオブジェクトに移動性を持たせたものをエージェントと見ることもできる。
【０００４】
【発明が解決しようとする課題】
上述した従来のエージェントシステムにおいては、性能が高く、資源が豊富な計算機上で動作することを前提に作られているため、資源が限られている計算機、例えば、マイクロプロセッサを内蔵する水道検針メータ等組み込み機器をネットワーク上に接続し、その上でエージェントを動作させることは困難であるという問題があった。
【０００５】
そこで、本発明は上記の問題を解決するためになされたものであり、資源が限られている計算機上でも正常にエージェントを動作させることを可能にするエージェントの管理方法ならびにシステム及び同方法がプログラムされ記録される記録媒体を提供することを目的とする。
【０００６】
【課題を解決するための手段】
本発明のエージェント管理方法では、エージェントを管理するエージェントマネージャを持つ計算機が、ネットワークを介して接続されるエージェントシステムにおける前記エージェントマネージャは、  前記ネットワークにより移動してくるエージェントが存在した移動元のエージェントマネージャに対し、そのエージェントが使用する資源の量を問い合わせ、自分が存在する計算機における使用可能な資源の量と比較し、エージェント受け入れの可否を決定することを特徴とする。
【０００７】
本発明のエージェントシステムは、エージェントを管理するエージェントマネージャを持つ計算機が、ネットワークを介して接続されるエージェントシステムであって、前記エージェントマネージャは、前記ネットワークにより移動してくるエージェントが存在した移動元のエージェントマネージャに対し、そのエージェントが使用する資源の量を問い合わせ、自分が存在する計算機における使用可能な資源の量と比較し、エージェント受け入れの可否を決定することを特徴とする。
【０００８】
本発明の記録媒体は、エージェントを管理するエージェントマネージャを持つ計算機がネットワークを介して接続されるエージェントシステムにて用いられ、前記エージェントマネージャが、自身が管理していたエージェントの移動先のエージェントマネージャに対してエージェントの移動要求を送信するステップと、前記移動先のエージェントマネージャから移動するエージェントの使用資源量の問い合わせを受信してエージェント使用資源量を送信するステップと、移動先エージェントマネージャから移動拒否メッセージを受信したか否かをチェックするステップと、否のときに限り移動先エージェントマネージャへエージェントを送信するステップとがプログラムされ記録されている。
【０００９】
また、本発明の記録媒体は、前記エージェントマネージャが、移動してくるエージェントが存在した移動元のエージェントマネージャに、エージェントの資源使用量の問い合わせを送信するステップと、前記問い合わせに基づいて移動元のエージェントマネージャから得られるエージェントの使用資源量を受信し、その資源量を、自分が存在する計算機における使用可能な資源の量と比較してエージェントの動作に十分であるか否かをチェックするステップと、十分であると判断されたときにエージェントを受信し、否のとき、移動拒否メッセージを送信するステップとがプログラムされ記録されてもいる。
【００１３】
このことにより、資源が限られている計算機上でも正常にエージェントを動作させることができる。
【００１４】
【発明の実施の形態】
図１にエージェントが動作するシステムの構成図を示す。図では、ネットワーク１０上に計算機１，２，３が接続されている。エージェントマネージャ(M1 、M2、…、Mn) とは、計算機上で動作するプロセスであり、エージェント(A11、A12 、…、An2)を管理するものである。管理する対象の例としては、エージェントのライフサイクルがある。エージェントの生成、処理の実行、移動、消滅等は、すべてエージェントマネージャが司る。エージェントは、必ずエージェントマネージャの管理下にあり、エージェントマネージャ上で動作する。
【００１５】
例えば、図１では、エージェントA11 とA12 は、エージェントマネージャM1上で動作し、エージェントマネージャM1によって管理される。同様に、エージェントA21 とA22 は、エージェントマネージャM2上で動作し、エージェントマネージャM2によって管理される。エージェントは、ネットワーク１０を介し、他の計算機上にあるエージェントマネージャへ移動することができる。図１では、エージェントは各エージェントマネージャに2 つずつ存在しているが、これはいくつでもかまわない。同様に、エージェントマネージャも、１台の計算機に複数存在してもかまわない。また、計算機は、どのようなものでもかまわない。メモリを多く持っているもの、少ないもの、ＣＰＵの性能が高いもの、低いものなど、様々なものが考えられる。
【００１６】
本発明の実施形態では、計算機の資源が非常に限られている場合にエージェントを正常に動作させるための、エージェントの管理方法を説明する。計算機の資源としては、例えば、メモリ、ＣＰＵ、エージェントが操作する機器に許されている同時アクセス数などがある。
【００１７】
エージェントマネージャは、自分が管理する最大のエージェント数を決めておく。これは、自分の資源をもとに、正常に動作させられるエージェントの数を求める。例えば、エージェントが動作するのに利用できるメモリが５メガバイトで、1 つのエージェントが動作するのに使うメモリが平均２メガバイトとわかっている場合は、エージェントの最大数を２とする。エージェントマネージャは、このようにして求めたエージェントの最大数と、自分が現在管理しているエージェント数の値を保持しておく。
【００１８】
エージェントが他のエージェントマネージャへ移動する時のエージェントマネージャの処理の流れを図２に、他エージェントマネージャからエージェントを受け取る際のエージェントマネージャの処理の流れを図３にフローチャートで示す。
【００１９】
以下、図２、図３に示すフローチャートを参照しながら図１に示す本発明実施形態の動作を説明する。エージェントから移動したいという要求を受け付けると(S21) 、エージェントマネージャは、移動先のエージェントマネージャに対してエージェント移動要求を送信する(S22) 。移動先のエージェントマネージャでは、エージェントの移動要求を受け取ると(S31) 、現在自分が管理しているエージェントの数を調べる。エージェントの数が、予め決められた最大数であった場合は、移動要求を出してきたエージェントマネージャに対し、移動拒否のメッセージを送信する(S34) 。移動元のエージェントマネージャは、移動先のエージェントマネージャから移動拒否メッセージを受け取らなかったら、エージェントを送信し(S24) 、自分が管理しているエージェントの数を１減らす(S25) 。移動先のエージェントマネージャは、エージェントを受け取り( S33)、管理しているエージェントの数を１増やす(S35) 。
【００２０】
このように、エージェントマネージャ上で動作するエージェントの数を制限することにより、資源の少ない計算機でも、エージェントを正常に動作させることが可能になる。
【００２１】
移動してくるエージェントが動作するのに必要な資源の量が予め分からない場合は、移動元のエージェントマネージャから情報を取得し、移動要求が来た時点で、そのエージェントを正常に動作させられるかを判断し、移動受け付けの可否を決定する方法が考えられる。この場合のエージェントマネージャの処理の流れを図４、図５にフローチャートで示す。
【００２２】
以下、図４，図５に示すフローチャートを参照しながら図１に示す本発明実施形態の動作について説明する。エージェントから移動したいという要求を受け付けると(S41) 、エージェントマネージャは、移動先のエージェントマネージャへエージェント移動要求を送信する(S42) 。移動先のエージェントマネージャでは、エージェントの移動要求を受け取ると(S51) 、移動元のエージェントマネージャに、そのエージェントが使用する資源の量を問い合わせる(S52) 。移動元のエージェントマネージャは、エージェント使用資源量の問い合わせを受信すると(S43) 、そのエージェントが移動元のエージェントマネージャ上で使った資源の量を移動先のエージェントマネージャへ送信する(S44) 。移動先のエージェントマネージャは、エージェントの資源使用量を受信すると(S53) 、現在自分の計算機で利用できる資源の量が、そのエージェントが使用する量より多いかどうかを調べる(S54) 。資源量が不十分であった場合は、移動要求を出してきたエージェントマネージャに対し、移動拒否のメッセージを送信する(S56) 。移動元のエージェントマネージャは、移動先のエージェントマネージャから移動拒否メッセージを受け取らなかったら、エージェントを送信し(S46) 、移動先のエージェントマネージャが、そのエージェントを受け取る(S55) 。
【００２３】
このように、予め移動してくるエージェントが使用する資源の量を取得してから、エージェントの移動可否を判断することにより、資源の少ない計算機でも、エージェントを正常に動作させることが可能になる。
【００２４】
エージェントマネージャ(M) の内部構成を図６に示す。図６において、エージェント情報管理部(AIM) １１では、このエージェントマネージャ上に存在するエージェントに関する情報を管理する。エージェント情報管理部１１は、エージェントの情報を保持するエージェント情報管理テーブル(AIT) １１１と、エージェント情報管理テーブル１１１を操作するエージェント情報管理テーブル操作部(TM)１１２を持つ。エージェント処理実行部(AE)１２は、エージェントマネージャ上に存在するエージェントの処理の実行をつかさどる。エージェント処理実行部１２の内部には、各エージェントの処理実行部(AEa、AEb 、…、AEz)１２１，１２２，１２Ｚがある。エージェント動作制御部(AEM) １３は、エージェント情報管理テーブル操作部１１２にテーブル操作要求を出して、エージェントに関する情報の取得等を行い、各エージェントの処理実行部１２に制御要求を出して、処理実行の開始や停止等を行う。
【００２５】
各エージェントには一意に決まる名前をつける。エージェントの識別には、この名前を用いる。エージェント情報管理テーブルの例を図７に示す。エージェント情報管理テーブル１１１には、エージェントマネージャ上の各エージェントに対して、エージェント名とエージェント処理実行部へのポインタが対で登録される。エージェント名を指定すると、対応するエージェント処理実行部１２へのポインタを取得できる。エージェント処理実行部１２へのポインタを得られると、エージェントの処理の実行を一時停止させたり、再開させたりといった操作が可能になり、エージェントマネージャ上に存在しながらも、他のエージェントへ資源を解放できる。その結果、エージェント全体で資源を有効に活用できるようになる。例えば、一定の間隔で処理を行えばよいエージェントであれば、処理を行わずに待っている状態の時に処理を停止するといった利用法が考えられる。
【００２６】
エージェント動作制御部１３における、エージェントの処理実行の制御を行う流れを図８にフローチャートで示す。まず、エージェント情報管理テーブル操作部１１２へ動作を制御したいエージェント名を渡し、対応するエージェント処理実行部１２へのポインタの取得要求を出す(S81) 。エージェント情報管理テーブル操作部１１２が、エージェント情報管理テーブル１１１からエージェント処理実行部１２へのポインタを取り出し、エージェント動作制御部１３はそのポインタを受け取る(S82) 。取得したポインタを用いて、エージェント動作制御部１３は、エージェント処理実行の開始や停止等の制御を行う(S83) 。
【００２７】
このようにエージェント名と処理実行部１２へのポインタを対で管理することにより、特定のエージェントの処理の実行を一時停止させたり、再開させたりといった操作が容易になり、資源の有効活用が可能になる。
【００２８】
図９に、図１で示した本発明実施形態に、更にエージェント保管サーバ４を追加したシステムの構成例を示す。エージェント保管サーバ４は、エージェント保管テーブルAST （４１１）と、エージェント保管テーブルAST を操作するエージェント保管テーブル操作部ASTM（４１２）を持つ。エージェント保管テーブルの例を図１０に示す。エージェント保管テーブル４１１では、エージェントをシステム内で一意に識別できるエージェント名と、エージェント自体を非活性化状態にしたものを対で登録する。非活性化状態の例としては、文字列化することがある。エージェント保管テーブル４１１にエージェント名を指定すると、対応する非活性化されたエージェントを取得できる。
【００２９】
各計算機(C1 、…、Cn) １，３上のエージェントマネージャ(M1 、…、Mn) に存在するエージェントで、長時間、処理を行わない状態のものなどは、エージェントを非活性化し、エージェント名と対でエージェント保管サーバ上のエージェント保管テーブルに登録する。そして、エージェントマネージャ上で、非活性化されたエージェントが使用していた資源は、他のエージェントに解放する。必要に応じて、エージェント保管テーブルから、非活性化されたエージェントを取得し、エージェント保管テーブルに登録する前の状態を再現し、すなわち、活性化して、エージェントの処理の実行を再開させる。
【００３０】
エージェントをエージェント保管テーブルへ登録する際のエージェントマネージャの処理の流れを図１１に示す。まず、保管テーブルへ登録するエージェントを非活性化する(S111)。エージェント保管テーブル操作部４１２へ、エージェントの名前と非活性化したエージェントを渡し、エージェント保管テーブル４１１への登録を依頼する(S112)。テーブルへの登録が終わったら、登録したエージェントが今まで使用していた資源を解放する。
【００３１】
このように、エージェントを非活性化して保管するテーブルを持つサーバをシステム内に置き、エージェントを適宜非活性化してサーバ上へ保管させることにより、計算機の資源を有効に活用することができる。
【００３２】
この、エージェント保管サーバ４が存在するシステムにおいて、上述の、計算機の資源を元にエージェント受け入れの可否を決定したり、エージェント情報管理部とエージェント処理実行部とエージェント動作制御部を持つエージェントマネージャを用いてもかまわない。
【００３３】
【発明の効果】
以上説明のように本発明は、エージェントを管理するエージェントマネージャを持つ計算機が、ネットワークを介して接続されるエージェントシステムにおいて、エージェントマネージャが、自分が存在する計算機の資源に基づいて到来するエージェント受け入れの可否を判断し、エージェントの正常動作を確保するものであり、このことにより、資源がかぎられた計算機上でも正常にエージェントを動作させることができる。特に、移動元のエージェントマネージャに、エージェントが使用する資源の量を問い合わせ、現在使用可能な資源量と比較することにより、エージェントを正常に動作させられるかどうかを正確に判断することができる。
【図面の簡単な説明】
【図１】本発明のエージェントシステムの一実施形態を示すブロック図、
【図２】エージェント移動時におけるエージェントマネージャの処理の流れを示すフローチャートで示した図、
【図３】移動エージェント受付時のエージェントマネージャの処理り流れにつきフローチャートで示した図、
【図４】エージェント移動時のエージェント処理の流れをフローチャートで示した図、
【図５】移動エージェント受付時のエージェントマネージャの処理の流れをフローチャートで示した図、
【図６】図１に示すエージェントマネージャの内部構成を示すブロック図、
【図７】図６におけるエージェント情報管理テーブルのエントリ構造を示す図、
【図８】エージェント情報管理テーブルを使用したエージェント処理実行の制御の流れをフローチャートで示す図、
【図９】本発明のエージェントシステムの他の実施形態を示すブロック図、
【図１０】図９に示したエージェント保管テーブルのエントリ構造を示す図、
【図１１】図１０に示すエージェント保管テーブルを使用したエージェント保管処理の流れをフローチャートで示した図、
【符号の説明】
１（２，３）計算機、４エージェント保管サーバ、１０ネットワーク、１１エージェント情報管理部（ＡＩＭ）、１２エージェント処理実行部（ＡＥ）、１３エージェント動作制御部（ＡＥＭ）、１１１エージェント情報管理テーブル（ＡＩＴ）、１１２エージェント情報管理テーブル操作部（ＴＭ）、４１１エージェント保管テーブル（ＡＳＴ）、、４１２エージェント保管テーブル操作部（ＡＳＴＭ）、
【図１】
0004049889.tif 000002
【図２】
0004049889.tif 000003
【図３】
0004049889.tif 000004
【図４】
0004049889.tif 000005
【図５】
0004049889.tif 000006
【図６】
0004049889.tif 000007
【図７】
0004049889.tif 000008
【図８】
0004049889.tif 000009
【図９】
0004049889.tif 000010
【図１０】
0004049889.tif 000011
【図１１】
0004049889.tif 000012