JP2000029847A - エージェントシステム、情報処理方法及び情報処理用ソフトウェアを記録した記録媒体 - Google Patents

エージェントシステム、情報処理方法及び情報処理用ソフトウェアを記録した記録媒体

Info

Publication number
JP2000029847A
JP2000029847A JP10196274A JP19627498A JP2000029847A JP 2000029847 A JP2000029847 A JP 2000029847A JP 10196274 A JP10196274 A JP 10196274A JP 19627498 A JP19627498 A JP 19627498A JP 2000029847 A JP2000029847 A JP 2000029847A
Authority
JP
Japan
Prior art keywords
agent
platform
move
information
another
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP10196274A
Other languages
English (en)
Other versions
JP3688471B2 (ja
Inventor
Takahiro Kawamura
隆浩 川村
Yasuyuki Tawara
康之 田原
Naoki Kase
直樹 加瀬
Tetsuo Hasegawa
哲夫 長谷川
Akihiko Osuga
昭彦 大須賀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP19627498A priority Critical patent/JP3688471B2/ja
Priority to US09/289,598 priority patent/US6477563B1/en
Publication of JP2000029847A publication Critical patent/JP2000029847A/ja
Priority to US10/236,959 priority patent/US6662207B2/en
Application granted granted Critical
Publication of JP3688471B2 publication Critical patent/JP3688471B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 状況に応じてエージェントの行動プランを作
成し、他のノードでの処理を実現するために、ノード間
で移動するか他のエージェントと協調するか条件に応じ
て動的に選ぶことで、変化に対応して効率よく情報を処
理する。 【解決手段】 移動協調判断部11は、他のプラットフ
ォームでの処理が必要になった場合に移動か協調かを判
断する。主体判断部12は、移動の処理をエージェント
Aが主体的に管理するか、プラットフォームが主体的に
管理するかを判断する。タイミング判断部13は、エー
ジェントAが直ちに移動するかどうかを判断する。移動
先選択部14は、移動先のプラットフォームの候補が複
数あるとき、どのプラットフォームに移動するかを選択
する。順序決定部15はそれぞれのプラットフォームに
どのような順序で移動するかを決定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ネットワーク上に
分散して存在する情報を処理する技術の改良に関するも
のである。
【0002】
【従来の技術】近年、コンピュータを中心とした情報処
理システム技術においては、ダウンサイジングの進行
や、インターネットなどネットワーク環境の整備が進ん
でいる。このため、情報処理の装置や方法における主流
は、データファイルや機能ライブラリなどの構成要素が
ネットワーク上の各マシンに分散した分散システムに移
行しつつある。これに伴い、企業や研究所などのローカ
ルネットワークでも、広域ネットワークとの接続によっ
て環境のオープン化がより進展している。このように広
域ネットワークと接続されたネットワークを開放型ネッ
トワークと呼ぶ。
【0003】このような開放型ネットワークに代表され
る大規模ネットワークでは、しばしば、複数のマシン上
に分散したいくつかのデータファイルや機能ライブラリ
などの構成要素を組み合わせることによって、一つのソ
フトウェアを構成する。このように構成されるソフトウ
ェアを分散システムと呼ぶ。そして、分散配置された構
成要素は、マシンすなわちノードに関する管理上の事情
や、ネットワークに関する管理上の事情などで、別のマ
シンやディレクトリに移動されたり、名称やアクセス権
などの属性が変更されることが考えられるが、このよう
な変更は、次のような問題を生ずる。
【0004】まず、ソフトウェアに処理を要求するとき
は、メッセージやコマンドなどの要求記述を入力し、こ
の入力の際に、あるマシン上に配置されている処理に関
わる特定の構成要素が指定される。しかし、指定された
構成要素が他のマシンに移動されると、移動先の新しい
マシンを指定するために、ソフトウェアに対する入力を
やり直すか、修正しなければならない。特に、ソフトウ
ェアの一部が、移動された構成要素にアクセスするよう
に構成されている場合は、構成要素の移動は、ソフトウ
ェアの構成そのものの変化を意味する。この場合、アク
セスする側のソフトウェアの部分を変更して、移動先の
新しいマシンを指定しなければならない。
【0005】従来では、マシン・機能・ファイルなど
は、具体的に名指しされていたため、このように機能又
はファイルが移動されると、変更に合わせてソフトウェ
アや入力を変更しなければならなかった。しかも、この
ような指定は処理開始前に行なう必要があった。
【0006】このため、分散システムにおいて、ユーザ
に対してサービスを確実に提供するには、こうした変化
に対して適応する柔軟なソフトウェアを構築することが
重要である。特に、このような変化に対応して、処理開
始後であっても指定を変更し、かつこの変更は極力人手
を介さず自動的に行われることが望ましい。
【0007】ネットワークにおいて、このような柔軟な
ソフトウェアのアーキテクチャを実現する技術として、
近年、エージェント指向技術が注目され、数多くの試み
がなされている。このエージェント指向技術は、エージ
ェントを単位としてソフトウェアを構成しようとするソ
フトウェア開発技術であり、ここでいうエージェント
は、ソフトウェア上の処理の単位で、環境の変化に自律
的かつ柔軟に対応するものである。
【0008】例えば特開平7−182174では、リモ
ートプログラミングの実施方法を開示している。このリ
モートプログラミングは、分散システムにおいて、処理
が開始されたノード(ローカルマシンと呼ぶ)から、エ
ージェントが他のノード(リモートマシンと呼ぶ)に転
送されるようなプログラミングである。
【0009】ところで、エージェントが活動するには、
インストラクションと内部状態が必要である。インスト
ラクションは、エージェントの動作(振る舞い)を記述
したもので、内部状態は、エージェントの動作によって
操作される情報である。このうち内部状態は、より具体
的には、変数や配列のほかスタック、バッファ、キュ
ー、フラグなど、エージェントの動作に関連する一切の
情報を含む。また、これらインストラクション及び内部
状態を合わせてエージェント情報と呼ぶ。
【0010】インストラクションは、ファイルのオープ
ンやクローズなど、さまざまな動作の単位ごとに記述さ
れるが、リモートプログラミングでは、特殊なインスト
ラクションとして、goオペレーションが用いられる。こ
のgoオペレーションは、エージェントをリモートマシン
に転送する処理を行なわせるもので、例えば、ある処理
中に、別のマシンにあるファイルに対するインストラク
ションが含まれる場合は、そのインストラクションに先
立って、goオペレーションが記述され、実行される必要
がある。
【0011】このようなエージェントを用いるリモート
プログラミングを実施する装置の一例について、構成を
表す機能ブロック図を図12に示す。この装置では、ネ
ットワークNに接続されたローカルマシンLとリモート
マシンRが相互に同様の構成を有し、プロセスとしてエ
ージェントを取り扱う。なお、ここでいうプロセスは、
オペレーティングシステムによって管理の対象となる処
理の単位であり、複数のプロセスを同時に管理すること
をマルチプロセスと呼ぶ。
【0012】エージェント管理手段51L,51Rは、
このようなエージェントについて、資源管理、設定、終
了、スケジューリング及び転送など、エージェント自身
を対象とする処理を司る。このような装置において、エ
ージェントによる処理を開始するには、まず、エージェ
ント情報を、ローカルマシンL上のエージェント情報記
憶手段31Lに格納する。なお、エージェント情報をエ
ージェント情報記憶手段31Lに格納するには、入出力
手段41Lから入力したり、図示しない外部記憶装置か
らロードするなどすればよい。
【0013】また、入出力手段41Lからエージェント
による処理の開始が指示されると、解釈実行手段61L
が、エージェント情報記憶手段31L内のインストラク
ションを逐次解釈実行することによって処理を進め、エ
ージェント情報記憶手段31L内の内部状態を操作す
る。そして、インストラクション中のgoオペレーション
が解釈実行されると、解釈実行手段61Lがその旨をエ
ージェント管理手段51Lに通知し、エージェント管理
手段51Lは次のようなエージェントを転送する処理を
行う。
【0014】すなわち、まず、エージェント管理手段5
1Lは、ネットワークNを通じてリモートマシンR上の
エージェント管理手段51Rにエージェントの受け入れ
準備を要求する。すると、要求を受けたエージェント管
理手段51Rは、資源の割当や、エージェントとして管
理するプロセスの設定など、エージェントの受け入れ準
備を行なった後、ローカルマシンL上のエージェント管
理手段51Lに準備完了を通知する。
【0015】この通知を受けたエージェント管理手段5
1Lは、エージェント情報記憶手段31L内のインスト
ラクションと、上記goオペレーションの解釈実行時にお
けるエージェントの内部状態を読み出し、双方をリモー
トマシンRに転送する。リモートマシンR上のエージェ
ント管理手段51Rは、転送されたインストラクション
と内部状態をエージェント情報記憶手段31Rに格納し
たうえ、解釈実行手段61Rにその旨を通知し、解釈実
行を開始させる。
【0016】このようにエージェントの転送が無事に終
了すると、ローカルマシンL側のエージェント管理手段
51Lはプロセスを終了し、不要になったメモリやCP
U時間など資源を開放する。
【0017】一方、転送された側のリモートマシンRで
は、エージェント情報記憶手段31R内のインストラク
ションと内部状態を用いて、処理が続行される。なお、
続行された処理がリモートマシンR上で終了する場合も
あれば、エージェントがもとのローカルマシンLに再度
転送される場合もありうる。このようにエージェントが
再度転送されると、インストラクションの実行は再度ロ
ーカルマシンL上で行われることになる。以上のような
リモートプログラミングによって、分散システム上にお
ける柔軟な処理が実現される。
【0018】また、このようなリモートプログラミング
において、各マシン間で共通のインストラクション及び
内部状態を用いながら、解釈実行手段やエージェント管
理手段などを各マシン固有のハードウェアやOSに合わ
せて構成すれば、構成の異なるマシン間で互換性が実現
される。このような構成により、オペレーティングシス
テムおよびハードウェアが異なるコンピュータシステム
において、インストラクションを移動し実行できるな
ど、上述のような柔軟な対応が可能となる。
【0019】一方、ネットワーク上の複数のノードにま
たがって処理を行なうための別の従来技術として、次の
ようなものも知られている(参考文献:Oren Etzioni a
nd Daniel Weld "A Softbot-Based Interface to the I
nternet" (Communications of ACM))。この技術では、
ファイルを転送を行なうftp、遠隔ログインのための
仮想端末機能を実現するtelnetなど、通常のネッ
トワーク機能を利用して、複数のマシンにまたがった処
理を行なう。そして、動作中に収集した情報に基づき、
ソフトウェアによって自動的に各機能を試行錯誤的に利
用し、状況に応じて柔軟にプランニングを行なうことに
よって、ファイルなどの構成変化に対応した機能選択を
行う。
【0020】例えば、目的の機能が他のノードに移転さ
れた場合、移転前のノードでその機能にアクセスしよう
とすると失敗するので、元のマシン(ノード)において
プランニングを行ない、アクセス先を第2候補に変更し
再度アクセスする。この技術によれば、システムの各時
点での状態に対応して、柔軟な動作が可能である。な
お、telnetやftpなどの利用は互換性が予め判
明している範囲内で行なう。
【0021】
【発明が解決しようとする課題】しかしながら、上記の
ような従来技術には次のような問題点が存在していた。
まず、リモートプログラミングの実施方法(特開平7−
182174)では、エージェントの動作系列をインス
トラクションとして全て利用者が記述しなければならな
かったため、プログラミング作業が煩雑である上、エー
ジェントの柔軟性に限界があった。
【0022】特に、また、goオペレーションによるエー
ジェントの移動先や、利用すべき構成要素が存在するマ
シンのノード名(ネットワークにおける識別子)のよう
な、ソフトウェアの構成要素の変化に対応するために
は、このような変化を捕捉したり、変化に応じてインス
トラクションを変更する必要がある。しかし、従来は、
アクセス先のマシン名が具体的に名指しされていたた
め、アクセス先を変更しなければ目的を達成できない場
合においても、その場でインストラクションを変更する
ことは不可能であった。このため、構成要素の変化に柔
軟に対応する技術が求められていた。特に、開放型ネッ
トワークのような大規模ネットワークになるほど変化が
頻繁になるため、変化への対応が強く求められていた。
【0023】また、Etzioniらの方法では、処理
中に、ローカルマシンとリモートマシンとの間で相互に
アクセスを続け、継続して情報をやり取りする必要があ
る。このため、処理の途中で回線障害が生じ、アクセス
のルートが切断されると正常な処理の続行ができない、
という問題があった。また、遠隔ノードにおける情報の
内容をきめこまかく参照して処理内容を変えたり、遠隔
ノードの情報へのアクセスを何度か実施する必要がある
場合、また、処理に何らかのリアルタイム性が要求され
る場合などは、リモートマシン上のプロセスとして情報
処理を行ったほうが効率的な場合もある。
【0024】本発明は、上記のような従来技術の問題点
を解決するために提案されたもので、その目的は、状況
に応じてエージェントの行動プランを作成し、他のノー
ドでの処理を実現するために、ノード間で移動するか他
のエージェントと協調するかを条件に応じて動的に選ぶ
ことで、変化に対応して効率よく情報を処理するエージ
ェントシステムを提供することである。
【0025】また、本発明の他の目的は、移動にかかわ
る一連の処理手順をエージェントの側で主体的に行うか
プラットフォームの側で主体的に行うかも動的に選ぶこ
とで、エージェントの自律性と全体の処理効率が優れた
エージェントシステム、情報処理方法及び情報処理用ソ
フトウェアを記録した記録媒体を提供することである。
【0026】また、本発明の他の目的は、適切な移動の
タイミングを選ぶことで、円滑に情報を処理するエージ
ェントシステム、情報処理方法及び情報処理用ソフトウ
ェアを記録した記録媒体を提供することである。また、
本発明の他の目的は、移動先プラットフォームの複数の
候補のなかから、適切なものを選ぶことで、処理を効率
的に行うエージェントシステム及び情報処理方法を提供
することである。また、本発明の他の目的は、複数のプ
ラットフォームに順番に移動するとき、条件に応じて最
適な移動順序を決めることで、処理を効率的に行うエー
ジェントシステム及び情報処理方法を提供することであ
る。また、本発明の他の目的は、各プラットフォームの
状態に応じてエージェントを割り振ることで処理を効率
的に行うエージェントシステム、情報処理方法及び情報
処理用ソフトウェアを記録した記録媒体を提供すること
である。
【0027】また、本発明の他の目的は、移動にかかわ
る以上のような判断で参照する情報を予めプロファイル
として用意しておくことで、処理を効率的に行うエージ
ェントシステム及び情報処理方法を提供することであ
る。また、本発明の他の目的は、どのようにプロファイ
ルを参照するかを動的に選ぶことで、処理を効率的に行
うエージェントシステムを提供することである。
【0028】
【課題を解決するための手段】上に述べた目的を達成す
るため、請求項1の発明は、複数のプラットフォームを
備えたネットワーク上でエージェントが動作することで
情報を処理するエージェントシステムにおいて、プラッ
トフォーム上でエージェントを活動させる手段と、エー
ジェントをプラットフォーム間で移動させる手段と、複
数のエージェントの間で協調を行わせる手段と、エージ
ェントが現在いるプラットフォームとは異なる他のプラ
ットフォームでの処理が必要になった場合に、当該他の
プラットフォームへエージェントが移動するか、エージ
ェントが当該他のプラットフォームに存在する他のエー
ジェントと協調を行うかを判断する手段と、を備えたこ
とを特徴とする。請求項1の発明では、エージェントが
あるプラットフォームで活動しているときに他のプラッ
トフォームでの処理が必要になった場合、エージェント
を当該他のプラットフォームに移動させるか、エージェ
ントは現在のプラットフォームに留めたまま、当該他の
プラットフォーム上のエージェントとメッセージ通信な
どで処理を依頼する、すなわち協調を行うかが判断され
る。このような判断は、エージェントやそれぞれのノー
ドが移動をサポートしているか、プラットフォーム間の
ネットワーク回線の信頼性が高いか低いかといった情報
を予め用意しておいてそのような情報に基づいて行うこ
とができるが、例えば、移動や協調のためのメッセージ
を目的のプラットフォームに試験的に送信し、しかるべ
きメッセージが返ってくるかどうかなどに基づいて判断
したり、移動や協調のために使う特有のファイル名のフ
ァイルが目的のプラットフォーム上に存在するかなどに
基づいて判断することもできる。この結果、エージェン
トやプラットフォームによって移動をサポートしている
かどうかが異なっていたり、プラットフォームの組み合
わせによって、その間の回線の信頼性が異なるような場
合でも、他のプラットフォームでの処理を円滑に行うこ
とができる。例えば、エージェントを他のプラットフォ
ームに移動させるには、移動元と移動先の両方のプラッ
トフォームと、エージェント自身が移動をサポートして
いる必要がある。また、他のプラットフォームとの間の
回線の信頼性が低いときは、協調を行おうとしても途中
でメッセージの受渡が途切れることも考えられるので、
移動が適している。
【0029】請求項2の発明は、請求項1記載のエージ
ェントシステムにおいて、エージェントが他のプラット
フォームへ移動するための手順を、エージェントが主体
的に管理するか、プラットフォームが主体的に管理する
かを判断する手段を備えたことを特徴とする。請求項1
2の発明は、請求項2の発明を方法という見方からとら
えたもので、複数のプラットフォームを備えたネットワ
ーク上でエージェントが動作することで情報を処理する
情報処理方法において、プラットフォーム上でエージェ
ントを活動させるステップと、エージェントをプラット
フォーム間で移動させるステップと、複数のエージェン
トの間で協調を行わせるステップと、エージェントが現
在いるプラットフォームとは異なる他のプラットフォー
ムでの処理が必要になった場合に、当該他のプラットフ
ォームへエージェントが移動するか、エージェントが当
該他のプラットフォームに存在する他のエージェントと
協調を行うかを判断するステップと、エージェントが他
のプラットフォームへ移動するための手順を、エージェ
ントが主体的に管理するか、プラットフォームが主体的
に管理するかを判断するステップと、を含むことを特徴
とする。請求項19の発明は、請求項2,12の発明
を、コンピュータのソフトウェアを記録した記録媒体と
いう見方からとらえたもので、コンピュータを使って、
複数のプラットフォームを備えたネットワーク上でエー
ジェントが動作することで情報を処理するための情報処
理用ソフトウェアを記録した記録媒体において、そのソ
フトウェアは前記コンピュータに、プラットフォーム上
でエージェントを活動させ、エージェントをプラットフ
ォーム間で移動させ、複数のエージェントの間で協調を
行わせ、エージェントが現在いるプラットフォームとは
異なる他のプラットフォームでの処理が必要になった場
合に、当該他のプラットフォームへエージェントが移動
するか、エージェントが当該他のプラットフォームに存
在する他のエージェントと協調を行うかを判断させ、エ
ージェントが他のプラットフォームへ移動するための手
順を、エージェントが主体的に管理するか、プラットフ
ォームが主体的に管理するかを判断させることを特徴と
する。請求項2,12,19の発明では、エージェント
が他のプラットフォームへ移動するための手順、例え
ば、エージェントのプランや内部状態などの情報転送や
移動先でのエージェント用プロセスの設定といった処理
を、エージェントとプラットフォームのどちらが主体的
に管理するかが判断される。このため、エージェントの
移動の仕方に自由度が増え、システムの状況や構成に応
じて円滑に効率良くエージェントを移動させることがで
きる。例えば、移動の態様が複数考えられるような場
合、その選択をプラットフォームに行わせると移動の態
様について自由度が減るが、このような選択をエージェ
ントに行わせることによって、エージェントの自律性を
確保することが容易になる。また、移動のための手順を
実行する機能をエージェントかプラットフォームのどち
らか一方だけが持っているときは、その持っているほう
が移動を主体的に管理する必要があり、また、両方がそ
のような機能を持っている場合は、どちらか現在の負荷
が軽い方が手順を主体的に管理することで、負荷の片寄
りを防ぎ、システム全体の処理を効率化することができ
る。
【0030】請求項3の発明は、請求項1又は2記載の
エージェントシステムにおいて、エージェントが他のプ
ラットフォームに移動しようとするとき、直ちに移動す
るかどうかを判断する手段を備えたことを特徴とする。
請求項13の発明は、請求項3の発明を方法という見方
からとらえたもので、請求項12記載の情報処理方法に
おいて、エージェントが他のプラットフォームに移動し
ようとするとき、直ちに移動するかどうかを判断するス
テップを含むことを特徴とする。請求項20の発明は、
請求項3,13の発明を、コンピュータのソフトウェア
を記録した記録媒体という見方からとらえたもので、請
求項19記載の情報処理用ソフトウェアを記録した記録
媒体において、前記ソフトウェアは前記コンピュータ
に、エージェントが他のプラットフォームに移動しよう
とするとき、直ちに移動するかどうかを判断させること
を特徴とする。請求項3,13,20の発明では、エー
ジェントが他のプラットフォームに移動しようとすると
き、プラットフォームの状況や移動に使うネットワーク
回線の状態などに応じて、直ちに移動するかしばらく待
ってから移動するかが判断されるので、エージェントの
移動のタイミングが多様化し、移動を確実に効率良く行
うことができる。例えば、移動先のプラットフォームの
負荷が高く、移動しようとするエージェントが必要とす
るリソースが確保できなそうな場合や、移動経路となっ
ているネットワーク回線について現在の負荷(トラフィ
ック)が大きかったり不安定なときは、しばらく待って
から移動したほうがよい。また、現在いるプラットフォ
ームの負荷が大きかったりシャットダウンが間近などの
場合は直ちに移動したほうがよい。
【0031】請求項4の発明は、請求項1から3のいず
れか1つに記載のエージェントシステムにおいて、移動
先のプラットフォームの候補が複数あるとき、どのプラ
ットフォームに移動するかを選択する手段を備えたこと
を特徴とする。請求項14の発明は、請求項4の発明を
方法という見方からとらえたもので、請求項12又は1
3記載の情報処理方法において、移動先のプラットフォ
ームの候補が複数あるとき、どのプラットフォームに移
動するかを選択するステップを含むことを特徴とする。
請求項4,14の発明では、移動先のプラットフォーム
の候補が複数あるとき、移動先として最適なプラットフ
ォームが選択されるので、処理が円滑に効率良く行われ
る。例えば、複数の候補があっても、移動先としては、
エージェントが必要とするリソース、サービス、動作の
許諾を与えてくれるといった条件を満たす必要がある。
また、このような条件を満たすプラットフォームが複数
あっても、現在の負荷が軽いもの、そこに至るネットワ
ーク回線の状態が安定しているもの、移動して行ったエ
ージェントを永続的に存在させてくれるといった基準で
最適なものを選ぶことが望ましい。
【0032】請求項5の発明は、請求項1から4のいず
れか1つに記載のエージェントシステムにおいて、エー
ジェントが複数のプラットフォームに順次移動しようと
するとき、それぞれのプラットフォームにどのような順
序で移動するかを決定する手段を備えたことを特徴とす
る。請求項15の発明は、請求項5の発明を方法という
見方からとらえたもので、請求項12から14のいずれ
か1つに記載の情報処理方法において、エージェントが
複数のプラットフォームに順次移動しようとするとき、
それぞれのプラットフォームにどのような順序で移動す
るかを決定するステップを含むことを特徴とする。請求
項5,15の発明では、エージェントが複数のプラット
フォームに順次移動しようとするとき、それぞれのプラ
ットフォームの負荷やそこに至るネットワーク回線の状
態などに基づいて、最適な移動の順序が決定されるの
で、エージェントごと、プラットフォームごと、及びシ
ステム全体の処理効率が向上する。例えば、負荷が軽い
プラットフォームや、移動のためのネットワーク回線が
空いていて安定しているプラットフォームを順序の最初
にすれば、そのようなプラットフォームで処理を行って
いる間に他のプラットフォームの負荷や、他のプラット
フォームまでのネットワーク回線の状態が改善する可能
性が高いため、システム全体の負荷が平均化され、処理
が滞る可能性を少なくすることができる。
【0033】請求項6の発明は、請求項1から5のいず
れか1つに記載のエージェントシステムにおいて、前記
プラットフォームは、自プラットフォーム上のエージェ
ントを他のプラットフォームへ移動させるか、及び、他
のプラットフォーム上のエージェントを自プラットフォ
ームへ移動させるかを判断する手段と、判断の結果をエ
ージェントに指示する手段と、を備えたことを特徴とす
る。請求項16の発明は、請求項6の発明を方法という
見方からとらえたもので、請求項12から14のいずれ
か1つに記載の情報処理方法において、前記プラットフ
ォームにおいて、自プラットフォーム上のエージェント
を他のプラットフォームへ移動させるか、及び、他のプ
ラットフォーム上のエージェントを自プラットフォーム
へ移動させるかを判断するステップと、判断の結果をエ
ージェントに指示するステップと、を実行することを特
徴とする。請求項21の発明は、請求項6,16の発明
を、コンピュータのソフトウェアを記録した記録媒体と
いう見方からとらえたもので、請求項19又は20記載
の情報処理用ソフトウェアを記録した記録媒体におい
て、前記ソフトウェアは前記コンピュータに、それぞれ
のプラットフォーム上のエージェントを他のプラットフ
ォームへ移動させるかを判断させ、判断の結果をエージ
ェントに指示させることを特徴とする。請求項6,1
6,21の発明では、それぞれのプラットフォームの状
態に応じて、エージェントにプラットフォーム間での移
動の指示が伝えられる。このため、エージェントがそれ
ぞれのプラットフォームに動的に割り振られ、システム
全体の処理が効率化される。例えば、自プラットフォー
ムの負荷が非常に高い場合や、提供していないサービス
やリソースをエージェントから求められた場合などに、
他のプラットフォームが該当する機能を有しているかど
うかを調べ、その結果をもとに他のプラットフォームへ
の移動を指示する。また、他のプラットフォームの負荷
が高い場合などに、自プラットフォームへの移動をエー
ジェントに指示するといった例が考えられる。
【0034】請求項7の発明は、請求項1から6のいず
れか1つに記載のエージェントシステムにおいて、それ
ぞれのプラットフォームについて、移動にかかわる判断
の基礎となる情報を表すプラットフォームプロファイル
を備えたことを特徴とする。請求項17の発明は、請求
項7の発明を方法という見方からとらえたもので、請求
項12から16のいずれか1つに記載の情報処理方法に
おいて、それぞれのプラットフォームについて、移動に
かかわる判断の基礎となる情報を予めプラットフォーム
プロファイルとして用意しておくことを特徴とする。請
求項7,17の発明では、それぞれのプラットフォーム
について、エージェントの移動をサポートしているか、
そのプラットフォームを接続しているネットワーク回線
の信頼性が高いか低いかといった情報が、予めプラット
フォームプロファイルに用意されている。このため、移
動にかかわる判断を行うとき、プラットフォームやネー
ムサーバなどに直接アクセスして調べるまでもなく、そ
のような情報を容易に得ることができるので、移動にか
かわる判断が効率化される。なお、「移動にかかわる判
断」とは、移動か協調かの判断、移動先の選択や順序の
決定などを含む概念である。
【0035】請求項8の発明は、請求項7記載のエージ
ェントシステムにおいて、前記プラットフォームプロフ
ァイルは、それぞれのプラットフォームについて、a)
エージェントを移動させるための機能を備えているかど
うか、b)そのプラットフォームにかかわるネットワー
ク回線の信頼性が高いか低いか、c)エージェントを永
続的に存在させることができるか、d)エージェントに
どのような種類の動作を認めているか、e)どのような
プログラミング言語を実行することができるか、f)前
記移動のための処理をプラットフォームが主体的に管理
するか、g)どのような種類及び分量のリソースを提供
するか、h)どのようなエージェントが存在している
か、i)どのようなサービスを提供するか、j)いつま
で活動するか、のうち少なくとも1つの情報を表すこと
を特徴とする。請求項8の発明では、エージェントの移
動をサポートしているかだけでなく、プラットフォーム
が提供するリソース、サービス、動作の種類ごとの許諾
(パーミッション)など、いろいろな項目をプラットフ
ォームプロファイルに登録しておくことができるので、
このようなプラットフォームプロファイルを参照するこ
とで、移動に関してきめ細かな判断を容易に行うことが
可能になる。
【0036】請求項9の発明は、請求項1から8のいず
れか1つに記載のエージェントシステムにおいて、それ
ぞれのエージェントについて、移動にかかわる判断の基
礎となる情報を表すエージェントプロファイルを備えた
ことを特徴とする。請求項18の発明は、請求項9の発
明を方法という見方からとらえたもので、請求項12か
ら17のいずれか1つに記載の情報処理方法において、
それぞれのエージェントについて、移動にかかわる判断
の基礎となる情報を予めエージェントプロファイルとし
て用意しておくことを特徴とする。請求項9,18の発
明では、それぞれのエージェントについて、プラットフ
ォーム間での移動をサポートしているか、どのようなリ
ソースやサービスを必要とするかといった情報が、予め
エージェントプロファイルに用意されている。このた
め、移動にかかわる判断を行うとき、エージェントの内
部状態や生成履歴などを参照して調べるまでもなく、そ
のような情報を容易に得ることができるので、移動にか
かわる判断が効率化される。
【0037】請求項10の発明は、請求項9記載のエー
ジェントシステムにおいて、前記エージェントプロファ
イルは、それぞれのエージェントについて、k)エージ
ェントがプラットフォーム間で移動する能力を持つかど
うか、l)前記移動のための処理をエージェントが主体
的に管理するか、m)エージェントがどのような種類及
び分量のリソースを必要とするか、n)いつまで活動す
るか、o)エージェントの動作がどのようなプログラミ
ング言語で記述されているか、p)エージェントがどの
ようなサービスを必要とするか、のうち少なくとも1つ
の情報を表すことを特徴とする。請求項10の発明で
は、プラットフォーム間での移動能力だけでなく、エー
ジェントの動作がどのような言語やバージョンで記述さ
れているか、どのようなリソース、サービス、パーミッ
ションが必要かなど、いろいろな項目をエージェントプ
ロファイルに登録しておくことができるので、このよう
なエージェントプロファイルを参照することで、移動に
関してきめ細かな判断を容易に行うことが可能になる。
【0038】請求項11の発明は、請求項7から10の
いずれか1つに記載のエージェントシステムにおいて、
前記プロファイルをどのように参照するかを判断する参
照判断手段を備えたことを特徴とする。請求項11の発
明では、移動にかかわる判断を行うとき、プラットフォ
ームプロファイルやエージェントプロファイルの参照を
どのように行うかが決定されるので、それらプロファイ
ルがどのハードウェア上にあるかなどの状況に応じて、
最も効率的な参照の仕方を選ぶことができる。例えば、
あるエージェントやそのエージェントが現在いるプラッ
トフォームがあるプロファイルを参照しようとすると
き、負荷が高かったり、そのプラットフォームのファイ
ルを参照する権限がなかったり、そのプラットフォーム
のファイルが他のプラットフォーム上にあって途中のネ
ットワーク回線の状態が悪い、といった事情のため自ら
参照できない場合、他のエージェントに参照を依頼する
必要がある。また、例えば、このように参照を依頼され
たエージェントやそのプラットフォームは、最新の正確
な情報を得るためには、指定されたプロファイルを新た
に調べることが望ましいが、負荷が高いような場合は、
既知の情報、すなわち前回参照してエージェントのメモ
リ領域内に保存されている情報を回答するほうが応答時
間の点で望ましい場合も考えられる。
【0039】
【発明の実施の形態】以下、本発明の実施の形態(以下
「実施形態」という)について図面を参照しながら説明
する。なお、本発明は、周辺機器を持つコンピュータ
を、ソフトウェアで制御することによって実現されるこ
とが一般的と考えられる。この場合、そのソフトウェア
は、この明細書の記載にしたがった命令を組み合わせる
ことで作られ、上に述べた従来技術と共通の部分には従
来技術で説明した手法も使われる。また、そのソフトウ
ェアは、プログラムコードだけでなく、プログラムコー
ドの実行のときに使うために予め用意されたデータも含
む。
【0040】そして、そのソフトウェアは、CPU、コ
プロセッサ、各種チップセットといった処理装置、キー
ボードやマウスといった入力装置、メモリやハードディ
スク装置といった記憶装置、ディスプレイやプリンタと
いった出力装置などの物理的な資源を活用することで本
発明の作用効果を実現する。
【0041】但し、本発明を実現する具体的なソフトウ
ェアやハードウェアの構成はいろいろ変更することがで
きる。例えば、ソフトウェアの形式には、コンパイラ、
インタプリタ、アセンブラなどいろいろあり、外部との
情報をやり取りするにも、フロッピーディスクなどの着
脱可能な記録媒体、ネットワーク接続装置などいろいろ
考えられる。また、本発明を実現するソフトウェアやプ
ログラムを記録したCD−ROMのような記録媒体は、
単独でも本発明の一態様である。さらに、本発明の機能
の一部をLSIなどの物理的な電子回路で実現すること
も可能である。
【0042】以上のように、コンピュータを使って本発
明を実現する態様はいろいろ考えられるので、以下で
は、本発明や実施形態に含まれる個々の機能を実現する
仮想的回路ブロックを使って、本発明と実施形態とを説
明する。
【0043】〔1.構成〕 〔1−1.全体の構成〕まず、図1は、本実施形態のエ
ージェントシステムの全体構成を示すブロック図であ
る。すなわち、本実施形態のエージェントシステムは、
この図に示すように、複数の電子計算機(マシンと呼
ぶ)100,110,120,130,140をネット
ワーク回線Nで接続したコンピュータネットワークであ
り、図1では、これらマシンの代表例として、マシン1
00のハードウェア構成を示している。
【0044】つまり、マシン100は、ハードウェアと
して、CPU101と、RAMなどを使ったメインメモ
リ102と、補助記憶装置であるハードディスク装置1
03と、CRTディスプレイやプリンタなどの出力装置
104と、キーボードやマウスなどの入力装置105
と、ネットワーク接続装置106と、それらを結線する
バスなどを備えていて、このネットワーク接続装置10
6を通じてネットワーク回線Nに接続されている。ま
た、マシン110〜140もマシン100と同様のハー
ドウェア構成を備えている。
【0045】また、物理的には単一のマシン上に、ネッ
トワークを管理する理論的な単位として複数のノードを
設定することも可能であるが、ここでは、両者を含めて
マシンと総称する。そして、各マシン上には、1つ又は
複数のプラットフォーム107が設定される。このプラ
ットフォーム107は、エージェント108が活動する
舞台であり、エージェントが必要とするコンピュータ上
のリソース(資源)や、サービスなどを提供する。
【0046】このようなプラットフォーム107は、起
動前はハードディスク装置103上にデータとして存在
し、起動することでメインメモリ102上にロードされ
る。このように起動されメインメモリ102上にロード
されたプラットフォーム107の動作は、プラットフォ
ーム107の動作を記述したプログラムコードをCPU
101が実行するという処理によって実現される。ま
た、他のマシン110,120,130,140の上に
も、同様に、それぞれプラットフォーム117,12
7,137,147が設定されるが、以下、これらの1
07,117,127,137,147を代表してプラ
ットフォーム107と表す。
【0047】また、それぞれのプラットフォーム107
は、後に述べるように、そのプラットフォームのいろい
ろな属性を表す情報として、プラットフォームプロファ
イルを持つ。この情報は、そのプラットフォーム107
が使っているハードディスク装置103などの上に保持
され、後で説明するようなデータ構造を有する。また、
プラットフォームの活動を実現する以下のような構成
は、プラットフォームの内部に用意される。
【0048】〔1−2.プラットフォームの具体的な構
成〕また、図2は、プラットフォーム107に代表され
る各プラットフォームと、その上で動作するエージェン
トの構成を示す機能ブロック図であり、この図ではエー
ジェントを符号Aで表す。すなわち、プラットフォーム
は、まず、この図に示すように、プラットフォーム上で
エージェントを活動させる手段として、エージェント管
理部1と、エージェント情報2と、プラン実行部3と、
プラン生成部4と、プラン生成用知識5と、を備えてい
る。
【0049】このうち、エージェント管理部1は、エー
ジェントを新しく生成したり、登録して監視したり、メ
モリなどのリソースを割り当てたり、消滅させたりとい
った管理を行う部分である。また、エージェント情報2
は、個々のエージェントが活動するために必要な情報で
あり、エージェント情報2の具体例としては、プラン
と、内部状態とを挙げることができる。このうちプラン
は、エージェントがどのような場合にどのような行動を
取るべきかを記述したもので、内部状態とは、そのよう
なプランを実行するときに使う変数、スタック、ポイン
タ、バッファなど各種の情報を総称したものである。
【0050】また、プラン実行部3は、上に述べたよう
なプランを実行することで、プラットフォーム上でエー
ジェントAを存在させ、活動させる部分である。また、
プラン生成部4は、上に述べたようなプランを、エージ
ェントが生成されたときに生成したり、その後も状況に
応じて再生成する部分である。
【0051】また、プラン生成用知識5は、プラン生成
に使う知識であり、その具体例として、アクション知識
と、ローカル知識とを挙げることができる。このうちア
クション知識は、プランを構成する部品となる動作とし
て、どのような種類のアクションがあるかを表すもの
で、ローカル知識は、ネットワーク上のどのようなプラ
ットフォーム上にどのようなファイルや機能があるかと
いった事実に関する知識である。
【0052】このローカル知識には、不確実知識が含ま
れる。この不確実知識は、プランが生成されたプラット
フォーム以外の他のプラットフォームでの何らかの処理
が必要な知識であり、例えば、あるプラットフォームF
1上において、ある目的のファイルが他のプラットフォ
ームF2に「存在する可能性がある」といった知識であ
る。このような不確実知識を使って生成されたプラン
は、実行するときに、不確実知識を確認するためにその
ような他のプラットフォームでの処理が必要となる。
【0053】また、プラットフォームは、移動部6と、
協調部7と、通信部8と、を備えている。このうち移動
部6は、エージェントをプラットフォーム間で移動させ
る手段であり、具体的には、エージェント情報2を他の
プラットフォームに転送したうえで、エージェント管理
部1に指示してエージェントを抹消させたり、他のプラ
ットフォームからエージェント情報2の転送を受け、エ
ージェント管理部1に指示してそのエージェント情報2
を使ってエージェントを生成させ、活動を開始させたり
する部分である。
【0054】また、協調部7は、複数のエージェントの
間で協調を行わせる手段であり、特に、互いに異なった
プラットフォーム上に存在する複数のエージェントの間
で協調を行わせる点に特に実益がある。具体的には、こ
の協調部7は、契約ネットプロトコルなどにしたがっ
て、自プラットフォーム上のエージェントから他のプラ
ットフォーム上のエージェントに作業を依頼させたり、
逆に、他のプラットフォーム上のエージェントから自プ
ラットフォーム上のエージェントに作業の依頼を請け負
わせたりする部分である。また、通信部8は、移動部6
や協調部7などの指示に基づいて、ネットワーク回線を
通して他のプラットフォームとの間でデータ転送などの
通信を行う部分である。
【0055】〔1−3.エージェントの構成〕また、エ
ージェントは、システムを構成する単位で、実行可能な
プログラムコードと、その実行で使うデータ、特にプラ
ン及び内部状態の集合であり、条件に応じて自律的に行
動する。このエージェントは、生成されて起動される前
はハードディスク装置などの記憶装置上にデータとして
保存しておくことができ、この場合、生成されたり起動
されることでメモリ上にロードされる。このように起動
されてメモリ上にロードされたエージェントの活動は、
エージェントを構成するプログラムコードをCPUが実
行するという処理によって実現される。
【0056】また、それぞれのエージェントは、そのエ
ージェントのいろいろな属性を表す情報として、エージ
ェントプロファイルを持つ。この情報は、エージェント
の内部に保持されるか、又はエージェントと対応付けて
プラットフォーム内に保持され、後で説明するようなデ
ータ構造を有する。また、エージェントの活動を実現す
る構成は、以下に述べるようにエージェントの内部に用
意される。
【0057】すなわち、プラットフォーム上では、エー
ジェント管理部1によって生成され、プラン実行部3が
プランを実行することでエージェントAが活動するが、
このエージェントAは、移動協調判断部11と、主体判
断部12と、タイミング判断部13と、移動先選択部1
4と、順序決定部15と、を備えている。
【0058】このうち移動協調判断部11は、エージェ
ントAが現在いるプラットフォームとは異なる他のプラ
ットフォームでの処理が必要になった場合に、当該他の
プラットフォームへ移動するか、当該他のプラットフォ
ームに存在する他のエージェントと協調を行うかを判断
する手段である。また、主体判断部12は、エージェン
トAが他のプラットフォームへ移動するための手順を、
エージェントAが主体的に管理するか、プラットフォー
ムが主体的に管理するかを判断する手段である。
【0059】また、タイミング判断部13は、エージェ
ントAが他のプラットフォームに移動しようとすると
き、直ちに移動するかどうかを判断する手段である。ま
た、移動先選択部14は、移動先のプラットフォームの
候補が複数あるとき、どのプラットフォームに移動する
かを選択する手段である。また、順序決定部15は、エ
ージェントが複数のプラットフォームに順次移動しよう
とするとき、それぞれのプラットフォームにどのような
順序で移動するかを決定する手段である。
【0060】〔1−4.プラットフォームの他の構成〕
また、プラットフォームは、割り振り部9と、プラット
フォームプロファイル21と、上に述べたエージェント
プロファイル22と、参照判断部23と、を備えてい
る。このうち割り振り部9は、エージェントシステム内
の各プラットフォームについて、状況に応じてエージェ
ントを移動させることでエージェントの割り振りを行う
部分である。
【0061】具体的には、割り振り部9は、自プラット
フォーム上のエージェントを他のプラットフォームへ移
動させるかどうか、また、他のプラットフォーム上のエ
ージェントを自プラットフォームへ移動させるかどうか
といった判断を、各プラットフォームやネットワーク回
線の状況に応じて行い、この判断の結果にしたがって、
エージェントに移動を指示するように構成されている。
【0062】また、プラットフォームプロファイル21
は、それぞれのプラットフォームについて、移動にかか
わる判断の基礎となる情報を表すもので、後で詳しく説
明するが、 a)エージェントを移動させるための機能を備えている
かどうか、 b)そのプラットフォームにかかわるネットワーク回線
の信頼性が高いか低いか、 c)エージェントを永続的に存在させることができる
か、 d)エージェントにどのような種類の動作を認めている
か、 e)どのようなプログラミング言語を実行することがで
きるか、 f)前記移動のための処理をプラットフォームが主体的
に管理するか、 g)どのような種類及び分量のリソースを提供するか、 h)どのようなエージェントが存在しているか、 i)どのようなサービスを提供するか、 j)いつからいつまで活動するか、 という項目の情報を含んでいる。
【0063】また、エージェントプロファイル22は、
それぞれのエージェントについて、移動にかかわる判断
の基礎となる情報を表すもので、後で詳しく説明する
が、 k)エージェントがプラットフォーム間で移動する能力
を持つかどうか、 l)前記移動のための処理をエージェントが主体的に管
理するか、 m)エージェントがどのような種類及び分量のリソース
を必要とするか、 n)いつからいつまで活動するか、 o)エージェントの動作がどのようなプログラミング言
語で記述されているか、 p)エージェントがどのようなサービスを必要とする
か、 という項目の情報を含んでいる。
【0064】これらプラットフォームプロファイル21
やエージェントプロファイル22を、どこに、どのよう
に保存しておくかについてはいろいろな形が考えられ
る。典型的には、それぞれのエージェントに関するエー
ジェントプロファイル22はそのエージェントの一部と
しておけばよく、また、プラットフォームに関するプラ
ットフォームプロファイル21は、それぞれのプラット
フォームに置いておけばよい。しかし、これらプラット
フォームプロファイル21やエージェントプロファイル
22は、予め決めた特定のプラットフォームや、一部の
いくつかのプラットフォームに集中保存することもでき
る。
【0065】また、参照判断部23は、これらのプロフ
ァイル21をどのように参照するかを判断する参照判断
手段であり、具体的には例えば、プラットフォームの負
荷、プロファイルを参照するための権限をエージェント
が持っているかどうか、目的のプロファイルがあるプラ
ットフォームまでのネットワーク回線の状態などに応じ
て、他のエージェントに参照を依頼するかどうかを判断
したり、他のプラットフォームや他のプラットフォーム
上のエージェントから協調部7を通じて参照を依頼され
た場合は、負荷の程度などに応じて、改めてプロファイ
ルから最新の情報を調べるか、前回の参照などで既に判
明している範囲で回答するかなどを判断するように構成
されている。
【0066】〔1−5.プラットフォームプロファイル
のデータ構造〕また、プラットフォームプロファイル2
1のデータ構造、すなわち項目としては、次のようなも
のが考えられる。 a)移動サポート これは、個々のプラットフォームが移動エージェント、
すなわちプラットフォーム間を移動するエージェントを
サポートしているかを表し、移動サポートaと呼ぶ。こ
の項目では、例えば、あらかじめ決めた「mobility-sup
port」といった適当なキーワードに続けて、次に示すよ
うにYes/Noなどの値として記述しておいたり、そ
のような名前の属性に属性値として設定しておけばよ
い。 mobility-support Yes / No
【0067】b)信頼性 これは、プラットフォーム間の情報のやり取りに使うネ
ットワーク回線やその部分ごとに、ネットワーク回線の
信頼性が高いか低いかを表すもので、信頼性bと呼ぶ。
この項目では、例えば、あらかじめ決めた「network-re
liability 」といった適当なキーワードに続けて、次に
例示するようにHigh/Lowなどの値として記述し
たり、そのような名前の属性に属性値として設定してお
けばよい。 network-reliability High / Low
【0068】c)永続性 これは、個々のプラットフォームが、エージェントを永
続的に存在させることができるかどうかを表すもので、
永続性cと呼ぶ。例えば、PDAのような小型携帯端末
などについては、常時電源をオンにしておく性質のもの
ではなく、またハードディスク装置やメインメモリなど
の空き容量にも限りがあるため、エージェントを永続的
に存在させることは期待できない。この項目では、例え
ば、あらかじめ決めた「persistency 」といった適当な
キーワードに続けて、次に例示するようにYes/No
などの値として記述しておいたり、そのような名前の属
性に属性値として設定しておけばよい。 persistency Yes / No
【0069】d)パーミッションリスト これは、個々のプラットフォームが、それぞれのエージ
ェントごとに、データの書き込みや読み出し、プランの
実行といった行動の種類ごとに、許しているかどうか
(パーミッション)を表すものであり、パーミッション
リストdと呼ぶ。この項目では、例えば、あらかじめ決
めた「permission 」といった適当なキーワードに続け
て、1つ又は複数のエージェントの名前と、そのエージ
ェントにどのような行動について許可を与えているか
を、次に例示するように列挙しておけばよい。 permission agentname1,書込許可、読出許可、実行許可 agentname2,書込許可、読出許可、実行許可 ・・・
【0070】e)プラットフォーム言語リスト これは、個々のプラットフォーム上で動作可能な言語と
バージョンのリストであり、プラットフォーム言語リス
トeと呼ぶ。プラットフォーム上で動作可能な言語とし
ては、例えば「Java言語」の「Ver. 1.1以
降」や、「VC++」の「Ver. 5.0以降」など
といった範囲が考えられる。この項目では、例えば、あ
らかじめ決めた「language/version」といった適当なキ
ーワードに続けて、1つ又は複数の言語の種類やバージ
ョンを、次に例示するように列挙しておけばよい。 language/version 言語の種類1、バージョン 言語の種類2、バージョン ・・・
【0071】f)プラットフォーム移動管理 これは、個々のプラットフォームの側で、エージェント
をプラットフォーム間での移動させるための一連の処
理、すなわちプロトコルを主体的に管理するかどうかを
表すもので、プラットフォーム移動管理fと呼ぶ。この
項目では、例えば、あらかじめ決めた「mobility-proto
col-support 」といった適当なキーワードに続けて、次
に例示するようにYes/Noなどの値として記述して
おいたり、そのような名前の属性に属性値として設定す
ることができる。 mobility-protocol-support Yes / No
【0072】g)提供リソースリスト これは、個々のプラットフォームがエージェントに提供
するリソースの種類/量と現在のリソースの量とをリス
トにしたもので、提供リソースリストgと呼ぶ。リソー
スの種類としては、例えば、マルチタスクシステムにお
けるCPUのタイムスライス、ハードディスク容量、メ
モリ容量などの物理的資源が考えられる。この項目で
は、あらかじめ決めた「resources 」といった適当なキ
ーワードに続けて、1つ又は複数のリソースの名称、最
大限提供可能な量や現在提供可能な量を、次に例示する
ように列挙しておけばよい。 resouces リソース名1、量、現在提供可能な量 リソース名2、量、現在提供可能な量 ・・・
【0073】h)エージェントリスト これは、個々のプラットフォーム上に乗っている、すな
わち現在活動中のエージェントのリストであり、エージ
ェントリストhと呼ぶ。この項目では、あらかじめ決め
た「agents」といった適当なキーワードに続けて、1つ
又は複数の名称や種類を、次に例示するように列挙して
おけばよい。 agents agentname1,種類 agentname2,種類 ・・・
【0074】i)提供サービスリスト これは、個々のプラットフォームがエージェントに対し
てどのようなサービスを提供できるかを表すリストであ
り、提供サービスリストiと呼ぶ。プラットフォームが
提供するサービスとしては、例えば、無線通信、プラン
ニング、データベースへのアクセスなどのソフトウェア
的な各種の機能を挙げることができる。この項目では、
例えば、あらかじめ決めた「services」といった適当な
キーワードに続けて、サービスの名称を、次に例示する
ように列挙しておけばよい。 services servicename1,servicename2,・・・ j)プラットフォームスケジュール これは、個々のプラットフォームが動作している時間帯
を表すもので、このスケジュールに応じて、そのプラッ
トフォーム上のエージェントがいつまで存続できるか、
すなわち存続期間、存続期限、停止期間などが決まる。
プラットフォームが動作している時間帯や存続期限など
に影響する事柄としては、例えば、寿命、メンテナンス
時間帯、電源が供給される時間帯などを挙げることがで
きる。この項目はプラットフォームスケジュールjと呼
び、例えば、あらかじめ決めた「schedule」といった適
当なキーワードに続けて、そのプラットフォームの起動
時刻と終了時刻との組を、次に例示するように1つ又は
複数列挙しておけばよい。 schedule 起動時刻、終了時刻 起動時刻、終了時刻 ・・・ 〔1−6.エージェントプロファイルのデータ構造〕ま
た、エージェントプロファイル22のデータ構造、すな
わち項目としては、次のようなものが考えられる。 k)移動可能性 これは、エージェント自体がプラットフォーム間で移動
する機能を持っているかどうかを表すもので、移動可能
性kと呼ぶ。この項目では、例えば、あらかじめ決めた
「mobility-possibility」といったキーワードに続け
て、次に示すようにYes/Noなどの値で記述してお
いたり、そのような名称の属性に属性値として設定する
ことができる。 mobility-possibility Yes / No
【0075】l)エージェント移動管理 エージェント自身が、プラットフォーム間での移動手順
を主体的に管理する機能を持っているかどうかを表すも
ので、エージェント移動管理lと呼ぶ。エージェントの
側で主体的に移動を管理する例としては、例えばエージ
ェントの移動に必要な通信やデータのコピー、手続き終
了の監視といった手順をエージェントが行い、プラット
フォームはこれらの動作をネットワーク回線に機械的に
仲介するのみといった例が考えられる。この項目は、例
えば、あらかじめ決めた「mobility-protocol-support
」といったキーワードに続けて、次に例示するように
Yes/Noなどの値で記述しておいたり、そのような
名称の属性に属性値として設定することができる。 mobility-protocol-support Yes / No
【0076】m)必要リソースリスト これは、エージェントが必要とするリソースの種類と量
のリストであり、必要リソースリストmと呼ぶ。この項
目では、例えば、あらかじめ決めた「resources 」とい
ったキーワードに続けて、次に例示するようにリソース
の名称や必要量を列挙しておけばよい。 resources リソース名1、必要量 リソース名2、必要量 ・・・
【0077】n)エージェントスケジュール これは、エージェントがいつからいつまで活動を継続で
きるかを表し、エージェントの側の存続期間、停止期間
を決めるもので、エージェントスケジュールnと呼ぶ。
このようなエージェントの側の存続期限はいわばエージ
ェントの寿命にあたるものであり、予め決められた終了
時刻などをタイマーで監視し、時刻が到来するとエージ
ェントが自発的に消滅したり外部からエージェントを抹
消するなどの処理によって実現することができる。この
項目では、あらかじめ決めた「schedule」といったキー
ワードに続けて、エージェントの起動時刻や終了時刻を
次に例示するように列挙しておけばよい。 schedule 起動時刻、終了時刻 起動時刻、終了時刻 ・・・
【0078】o)エージェント言語バージョン これは、エージェントを構成するプログラムコードがど
のような言語のどのようなバージョンで記述されている
かを表すもので、エージェント言語バージョンoと呼
ぶ。この項目は、例えば、あらかじめ決めた「language
/version」といった適当なキーワードに続けて、次に例
示するように、言語の種類やバージョンを記述しておけ
ばよい。 language/version 言語の種類、バージョン
【0079】p)必要サービスリスト これは、エージェントが活動するためにどのようなサー
ビスを必要とするかを表すもので、必要サービスリスト
pと呼ぶ。この項目では、例えば、あらかじめ決めた
「services」といったキーワードに続けて、次に例示す
るようにサービスの名称を記述しておけばよい。 services servicename1,servicename2,・・・ 以上説明したようなデータ構造を持つプラットフォーム
プロファイル21及びエージェントプロファイル22
は、具体的には例えば、それぞれ図3及び図4に示すよ
うな形式のデータとして、個々のプラットフォームごと
に、メインメモリ上又はハードディスク装置のような補
助記憶装置上に格納されている。なお、図3に示すプラ
ットフォームプロファイルの例と、図4に示すエージェ
ントプロファイルの例は、それぞれ、上に説明したデー
タの項目に加えて、プラットフォーム名などの識別子
や、移動や協調などにどのようなプロトコルを使うかな
どの項目を加えた例であるが、具体的なデータ構造は実
施の際に自由に決めることができる。
【0080】〔2.作用〕上に述べたように構成された
本実施形態は、次のように働く。まず、図5は、本実施
形態における処理手順を示すフローチャートである。
【0081】〔2−1.要求記述の入力と初期化〕すな
わち、まず、利用者が、本システムへの要求記述を入力
する(ステップ201)。この要求記述は、情報処理の
結果として達成したい状態を、予め定められた形式で記
述したものであり、このように入力された要求記述はゴ
ールに変換される。このゴールは、エージェントによる
情報処理によって達成したい状態を、エージェントやプ
ラン生成部4が処理できる形式で表わしたものである。
【0082】続いて、初期化の処理として、プラットフ
ォームのエージェント管理部1が、ゴールの達成に使う
エージェントを生成し、プラットフォームプロファイル
21のエージェントリストhに生成したエージェントの
名称を登録したり、生成したエージェントのエージェン
トプロファイル22を設定したり、エージェントの内部
状態に所定の初期値を設定したり、エージェントに資源
を割り当てるといった初期化の処理を行う(ステップ2
02)。
【0083】〔2−2.プランニング〕このようにエー
ジェントが生成されると、プラン生成部4が、変換され
たゴールを達成するためのプランを生成(プランニン
グ)する(ステップ203)。ここで、プラン生成用知
識5には、プランを構成する部品として、エージェント
はどのような種類の動作を実行できるかという情報、す
なわちアクション知識が含まれている。このような単位
となる動作はアクションとも呼ばれ、動作ごとに、事前
条件と事後条件とが予め決められている。
【0084】ここで、事前条件とは、その動作を実行す
るために必要な条件であり、事後条件とは、その動作の
実行によって作りだされる条件である。このため、ある
動作である事後条件が達成されれば、その事後条件に対
応する事前条件を持つ動作が実行できる状態となる。例
えば、「ファイルをコピーする」という動作を行うに
は、「現在いるプラットフォームにファイルが存在す
る」という事前条件が必要であり、コピーの動作を行な
った結果として「ファイルのコピーが存在する」という
事後条件が産み出される。
【0085】すなわち、プランの生成は、最終的なゴー
ルを事後条件として産み出す動作を発見し、この動作の
事前条件を事後条件として産み出すさらに別の動作を発
見する、という処理を続けることによって、プランを実
行する前の状態(現在の状態)と最終的なゴールとの間
をつなぐ動作の列を得ることである。なお、図6は、生
成途中におけるプランの例を示す図であり、この例で
は、動作P2の一方の事前条件C5と、動作P3の事前
条件C7について、これら事前条件を事後条件として産
み出す動作がまだ見つかっていない。このように、事後
条件として産み出す他の動作がまだ見つかっていない事
前条件は未達成ゴールと呼ばれる。
【0086】このようなプラン生成の処理は、ゴールの
側から因果を逆に遡って行ない、プランの実行を開始す
る時点で存在している状態(現在の状態)に到達すると
終了する。図7は、このような処理によって完成したプ
ランの例を示す図である。
【0087】続いて、プラン生成の具体的な手順を図8
に示す。すなわち、この手順では、ゴールを記録してお
くゴールリストの一部を、図6に示したような未達成ゴ
ールを記録しておく未達成ゴールリストとしておき、次
のような処理を行う。まず、ゴールリストに未達成ゴー
ルが存在しなくなるまで(ステップ401)、未達成ゴ
ールリストから未達成ゴールを1つずつ選択し(ステッ
プ402)、ゴールが満足されている場合を除いて(ス
テップ403)、次のような動作を行う。すなわち、ゴ
ールである事前条件を事後条件によって達成可能な動作
が存在すれば(ステップ404)この動作を選択し(ス
テップ405)、このように選択した動作(選択動作)
を図6に示したような動作の系列(プラン木)に追加す
る(ステップ405)。
【0088】また、ゴールを達成可能な動作が存在しな
い場合は、ゴールが不確実知識で達成可能かを判断す
る。ここで、不確実知識とは、上に述べたように、ネッ
トワークの構成に関する知識のうち、他のプラットフォ
ームで実際に何らかの処理を行なってみないと、真偽な
どの具体的な値がわからない知識である。ゴールが不確
実知識で達成可能な場合はこの不確実知識を選択動作と
してプラン木に追加するが(ステップ405)、不確実
知識でも達成不可能な場合は、処理をバックトラックさ
せ(ステップ408)、現在の未達成ゴールを生じさせ
ている動作を他の動作に置き換えて再度処理を行う。
【0089】例えば、利用者が使用するプラットフォー
ムの知識で、「ファイルaがプラットフォームF1に存
在する」とされているとする。この場合、ファイルaを
得るというゴールを利用者が与えると、プラットフォー
ムF1に存在するという知識が参照されるので、生成さ
れたエージェントのプランは、「プラットフォームF1
に移動してファイルaのコピーを利用者のプラットフォ
ームに送信する」、といった内容になる。
【0090】しかし、エージェントがプラットフォーム
F1に移動した時点で、ファイルaはプラットフォーム
F2に移動されていると、ファイルaが発見できないた
めにプランは実行失敗となり、プラットフォームF1上
で再プランニングが行なわれる。このとき、プラットフ
ォームF2の知識をファイルの移動にあわせて「ファイ
ルaはプラットフォームF2に存在する」のように更新
しておく。これによって、新しいプランは「プラットフ
ォームF2に移動してファイルaのコピーを利用者のプ
ラットフォームに送信する」、という内容に変更され
る。この結果、エージェントはプラットフォームF2に
自律的に移動し、ファイルaを無事発見して利用者のプ
ラットフォームに送信することができる。
【0091】〔2−3.プランの実行〕上に述べたよう
なプランニング手順(図5のステップ203)が終了す
ると、プラン実行部3が、生成されたプランを実行す
る。プランの実行では、ゴールが達成されたと判定され
るまで(ステップ204)、プランに含まれるアクショ
ンを1つずつ取り出し(ステップ206)、アクション
に不確実知識が含まれている場合など、他のプラットフ
ォームでの処理が必要な場合は、エージェントが目的の
プラットフォームに移動するか(移動と呼ぶ)、目的の
プラットフォームに存在するエージェントに処理を依頼
(協調と呼ぶ)することで処理を実行する(ステップ2
09)。
【0092】この移動又は協調の具体的な手順につい
て、図9に示しながら、以下に詳しく説明する。
【0093】〔2−4.移動か協調かの判断〕図9の手
順では、現在いるプラットフォームと異なるプラットフ
ォームでの処理が必要になった場合、エージェントの移
動協調判断部11は、その処理を行うために移動するか
協調するかを、プラットフォームプロファイル21の移
動サポートa、信頼性bや、エージェントプロファイル
22の移動可能性kなどに基づいて、動的に選択する
(ステップ31)。
【0094】例えば、プラットフォームF1上のエージ
ェントA1では、プラットフォームF2上での作業を必
要とした際に、移動協調判断部11が、エージェントプ
ロファイル22から移動可能性kを検索することによっ
て、自分が移動可能であるかどうかを調べる。そして、
自分が移動可能でないことがわかったときは、移動協調
判断部11は協調を選択するので(ステップ32)、エ
ージェントA1は協調部7を通して、プラットフォーム
F2上のエージェントA2とメッセージをやり取りする
ことで、必要な作業を依頼する(ステップ38)。
【0095】一方、自分が移動可能であることがわかっ
た場合、エージェントA1の移動協調判断部11は、さ
らにプラットフォームF1の内部にあるプラットフォー
ムプロファイル21から移動サポートaを検索すること
によって、プラットフォームF1がエージェントを移動
させる機能すなわち移動エージェントをサポートしてい
るかどうかを調べる。なお、このようにプラットフォー
ムプロファイル21の内容を知りたい場合は、プラット
フォームF1にこれを問い合わせ、プラットフォームF
1がプラットフォームプロファイル21を検索したうえ
で、その結果をエージェントA1に返すようにしてもよ
い。
【0096】そして、プラットフォームF1が移動エー
ジェントをサポートしていないことがわかった場合、移
動協調判断部11は協調を選択し(ステップ32)、そ
の結果、エージェントA1は協調部7を通して、プラッ
トフォームF2上のエージェントA2に対して、必要な
作業を依頼する(ステップ38)。
【0097】一方、プラットフォームF1が移動エージ
ェントをサポートしていることがわかった場合、エージ
ェントA1の移動協調判断部11は、さらに、移動先と
なるプラットフォームF2の内部にあるプラットフォー
ムプロファイル21から移動サポートaを検索すること
によって、プラットフォームF2も移動エージェントを
サポートしているかどうかを調べる。なお、このように
プラットフォームF2のプラットフォームプロファイル
21の内容を知りたい場合は、プラットフォームF2に
これを問い合わせ、プラットフォームF2がプラットフ
ォームプロファイル21を検索したうえで、その結果を
エージェントA1に返すようにしてもよい。
【0098】そして、プラットフォームF2が移動エー
ジェントをサポートしていないことがわかった場合、移
動協調判断部11は協調を選択し(ステップ32)、そ
の結果、エージェントA1は協調部7を通して、プラッ
トフォームF2上のエージェントA2に対して、必要な
作業を依頼する(ステップ38)。
【0099】一方、プラットフォームF2が移動エージ
ェントをサポートしていた場合、エージェントA1は、
さらに、上に説明したのと同じように、移動元となるプ
ラットフォームF1をネットワークに接続しているネッ
トワーク回線の信頼性と、移動先となるプラットフォー
ムF2をネットワークに接続しているネットワーク回線
の信頼性とを、それぞれのプラットフォームプロファイ
ル21から信頼性bを検索することによって調べる。
【0100】そして、両者の信頼性が高い場合、移動協
調判断部11は協調を選択し(ステップ32)、その結
果、エージェントA1は協調部7を通して、プラットフ
ォームF2上のエージェントA2に対して、必要な作業
を依頼する(ステップ38)。一方、両者または片方の
ネットワーク回線の信頼性が低い場合、移動協調判断部
11は移動を選択し(ステップ32)、その結果、エー
ジェントA1は、プラットフォームF2上に移動するた
めの動作に入り、例えば次に説明する主体判断部12を
起動する(ステップ33)。
【0101】〔2−5.主体の判断〕上に説明したよう
に、移動協調判断部11が移動すると判断した場合、主
体判断部12は、移動手順をエージェントの側が主体的
に管理するか、プラットフォームの側が主体的に管理す
るかを判断する(ステップ33)。すなわち、移動に関
わる一連の処理手順をエージェントが管理する場合はエ
ージェントの負荷が高くなる。一方で、移動手順をプラ
ットフォームが管理する場合は、エージェントの移動の
仕方に自由度がなくなり、結果として効率が悪い場合が
ある。
【0102】このため、エージェントでは、主体判断部
12が、エージェント自身が主体となって移動にかかわ
る手順を管理して進行するか、それらの手順をプラット
フォームに任せるかを、プラットフォームプロファイル
21のプラットフォーム移動管理fや提供リソースリス
トg、エージェントプロファイル22のエージェント移
動管理lなどに基づいて動的に選択する。
【0103】例えば、プラットフォームF1上のエージ
ェントA1では、プラットフォームF2上へ移動すると
判断された場合に、主体判断部12が、まずエージェン
トプロファイル22からエージェント移動管理lを検索
することによって、自分が移動手順を主体的に管理する
能力を持っているかどうかを調べる。また、エージェン
トA1の主体判断部12は、プラットフォームF1のプ
ラットフォームプロファイル21からプラットフォーム
移動管理fを検索することによって、プラットフォーム
F1が移動手順を主体的に管理する能力を持っているか
どうかを調べる。
【0104】なお、これらの事柄を調べるには、プラッ
トフォームF1にこれを問い合わせ、プラットフォーム
F1がプラットフォームプロファイル21を検索した結
果をエージェントA1に返すようにしてもよい。
【0105】この結果、エージェントA1が移動を主体
的に管理する機能を有している一方、プラットフォーム
F1は移動を主体的に管理する機能を有していない場
合、主体判断部12はエージェント主体による移動を選
択する。逆に、プラットフォームF1が移動を主体的に
管理する機能を有している一方、エージェントA1は移
動を主体的に管理する機能を有していない場合、主体判
断部12はプラットフォーム主体による移動を選択す
る。この場合、エージェントA1は、移動手順をプラッ
トフォームF1に依頼し、プラットフォームF1が主体
となって、後で詳しく説明する通常移動とクローン移動
を移動の態様として選択し、それを実行する。
【0106】エージェントA1とプラットフォームF1
の両方が移動を管理する機能をもつ場合、エージェント
A1の主体判断部12は、プラットフォームF1のプラ
ットフォームプロファイル21を検索し、プラットフォ
ームF1におけるリソースの使用状況(負荷)を調べ
る。なお、このとき、プラットフォームF1に負荷を問
い合わせ、プラットフォームF1がプラットフォームプ
ロファイル21を検索したうえ、その結果をエージェン
トA1に返すようにしてもよい。
【0107】そして、プラットフォームF1のリソース
使用状況すなわち負荷が高い場合、主体判断部12はエ
ージェント主体による移動を選択し、その結果、エージ
ェントA1が主体となって、後で詳しく説明する通常移
動とクローン移動を移動の態様として選択し、それを実
行する。
【0108】一方、プラットフォームF1の負荷が低い
場合、主体判断部12はプラットフォーム主体による移
動を選択し、その結果、エージェントA1は、移動手順
をプラットフォームF1に依頼する。この場合、プラッ
トフォームF1が主体となって、後で詳しく説明する通
常移動とクローン移動を移動の態様として選択し、それ
を実行する。
【0109】なお、エージェントA1とプラットフォー
ムF1のどちらも移動を管理する機能を持たない場合、
主体判断部12は移動不可能と判断する。この場合、エ
ージェントA1は他の行動を検討することになるが、他
の行動としては、例えば、協調によって他のエージェン
トに作業を依頼することや(ステップ38)、ゴール達
成を諦めて作業を中断する、などが挙げられる。
【0110】〔2−6.タイミングの判断〕また、他の
プラットフォームに移動する場合、エージェントは、直
ちに移動するかしばらく待ってから移動するかというタ
イミングを判断する必要がある。つまり、例えば移動先
のプラットフォームの負荷が高い場合や、移動先のプラ
ットフォームとの間のネットワーク回線の信頼性が低い
場合は、自身が使用するリソースの量などを考慮して、
しばらく待ってから移動する方が良い場合がある。逆
に、現在いるプラットフォームの負荷や存続時間によっ
ては早く移動した方が良い場合もある。
【0111】このため、エージェントが他のプラットフ
ォームに移動することになった場合、エージェントのタ
イミング判断部13は、直ちに移動するかしばらく待っ
てから移動するかという移動のタイミングを、プラット
フォームプロファイル21の信頼性b、永続性c、提供
リソースリストg、プラットフォームスケジュールj
や、エージェントプロファイル22のエージェントスケ
ジュールnなどから動的に判断する(ステップ34)。
【0112】例えば、プラットフォームF1上のエージ
ェントA1が、プラットフォームF2上へ移動しようと
する場合、エージェントA1のタイミング判断部13
は、移動元であるプラットフォームF1について次のよ
うな判断を行う。すなわち、タイミング判断部13は、
エージェントプロファイル22を検索することによっ
て、自分がいつまで存続しうるかを表すエージェントス
ケジュールnを調べる。その結果、エージェントスケジ
ュールnに示される自分の存続期限がもうすぐ、であっ
た場合、タイミング判断部13は直ちに移動すると判断
し、この結果、エージェントA1は直ちに移動する処理
を開始する。
【0113】エージェントA1の存続期限が間近に迫っ
ていない場合、エージェントA1のタイミング判断部1
3は、プラットフォームF1のプラットフォームプロフ
ァイル21を検索することによって、プラットフォーム
F1上でエージェントが永続的に存在することができる
かを表す永続性cと、自分がいつまで存続しうるかを表
すプラットフォームスケジュールjと、を調べる。な
お、これらの項目については、エージェントA1のタイ
ミング判断部13からプラットフォームF1にこれを問
い合わせ、プラットフォームF1がプラットフォームプ
ロファイル21を検索したうえ、その結果をエージェン
トA1に返すようにしてもよい。
【0114】その結果、永続性cに基づいてプラットフ
ォームF1上でいつまでも活動することが不可能である
ことが判明した場合や、プラットフォームスケジュール
jに基づいて、プラットフォームF1の存続期限がもう
すぐ、であった場合、タイミング判断部13は直ちに移
動すると判断し、この結果、エージェントA1は直ちに
移動する処理を開始する。
【0115】移動元にかかわる以上の処理において、直
ちに移動すると判断されなかった場合、エージェントA
1のタイミング判断部13は、続いて、移動先のプラッ
トフォームF2にかかわる判断を次のように行う。すな
わち、タイミング判断部13は、プラットフォームF2
のプラットフォームプロファイル21を検索することに
よって、自分がプラットフォームF2に移動していった
場合に、いつまで存続しうるかを表すプラットフォーム
スケジュールjを調べる。なお、この項目については、
プラットフォームF2にこれを問い合わせ、プラットフ
ォームF2がプラットフォームプロファイル21を検索
したうえで、その結果をエージェントA1に返すように
してもよい。
【0116】その結果、プラットフォームスケジュール
jに基づいて、移動先での自分の存続期限がもうすぐ、
であった場合、タイミング判断部13は直ちに移動と判
断し、その結果、エージェントはすぐに移動する処理に
入る。
【0117】移動先での存続期限も間近に迫っていない
場合、エージェントA1のタイミング判断部13は、プ
ラットフォームF1とF2について、それぞれのプラッ
トフォームプロファイル21を検索することによって、
ネットワークの信頼性bと、プラットフォームが提供す
るリソースの種類/量と現在のリソースの種類/量を表
す提供リソースリストgを調べる。なお、これらの項目
については、プラットフォームF1、F2にこれを問い
合わせ、プラットフォームF1,F2がプラットフォー
ムプロファイル21を検索し、その結果をエージェント
A1に返すようにしてもよい。
【0118】その結果、プラットフォームF1、F2と
もに信頼性bが低い場合や、提供リソースリストgに基
づいて、現在いるプラットフォームF1のリソースが移
動先となるプラットフォームF2と比べて豊富であるこ
とが判明したような場合、タイミング判断部13は直ち
に移動せずに留まると判断する。この場合、エージェン
トA1は移動する処理に入る前に、一定時間待つ。逆に
プラットフォームF1かF2ともに信頼性bが高い場合
や、提供リソースリストgに基づいて、現在いるプラッ
トフォームF1のリソースが移動先と比べて豊富でない
ことが判明したような場合は、タイミング判断部13は
直ちに移動と判断し、この結果、エージェントA1は直
ちに移動する処理に入る。
【0119】〔2−7.移動先の選択〕また、移動先の
プラットフォームとして複数の候補がある場合は、それ
ぞれのプラットフォームの負荷や提供リソース、提供サ
ービス、移動先での動作が可能であるかどうか、権限が
与えられるか否か、そこに至るネットワーク回線の状
態、移動先で永続的に存続しうるか、などから移動先を
1つを選びだす必要がある。
【0120】すなわち、移動先プラットフォームの候補
が複数あるときは、エージェントの移動先選択部14
が、各候補についての信頼性b、永続性c、パーミッシ
ョンリストd、プラットフォーム言語リストe、提供リ
ソースリストg、提供サービスリストi、プラットフォ
ームスケジュールjなどに基づいて、移動先プラットフ
ォームを選択する(ステップ35)。なお、これらの項
目については、最低限満足しなければならないもののほ
か、重視する順に重み付けをしておき、重みの大きい順
に判断の対象とすることが考えられる。
【0121】例えば、プラットフォームF1上のエージ
ェントA1では、移動先の候補としてプラットフォーム
F2とF3とが考えられる場合、移動先選択部14がそ
れぞれのプラットフォームF2,F3について、プラッ
トフォームプロファイル21を検索することによって、
エージェントに認めている行動の種類を表すパーミッシ
ョンリストdと、サポートしている言語とバージョンを
表すプラットフォーム言語リストeと、提供しているサ
ービスの種類を表す提供サービスリストiと、を調べ
る。
【0122】なお、これらの項目については、プラット
フォームF2,F3にこれを問い合わせ、プラットフォ
ームF2,F3が自己のプラットフォームプロファイル
21を検索したうえ、その結果をエージェントA1に返
すようにしてもよい。
【0123】また、移動先選択部14は、同様に、プラ
ットフォームF2,F3について、ネットワークの信頼
性bと、エージェントが永続的に存在できるかを表す永
続性cと、最大限提供できるリソースすなわち提供リソ
ースと現在提供されているリソースを表す提供リソース
リストgと、プラットフォームがいつまで存続しうるか
を表すプラットフォームスケジュールjと、についても
調べておく。
【0124】このように、いろいろな項目を調べた結
果、パーミッションリストdに基づいて、プラットフォ
ームがエージェントA1にその上で動作するための権限
を与えていないことが判明した場合や、そのプラットフ
ォームのプラットフォーム言語リストeがエージェント
A1の必要条件を満たさなかった場合、すなわち移動し
ようとするエージェントの動作を記述している言語やバ
ージョンをそのプラットフォームが実行できない場合
は、移動先選択部14はそのプラットフォームを移動先
候補から外す。なお、エージェントの動作を記述するの
に使われている言語やバージョンは、エージェントプロ
ファイル中のエージェント言語バージョンoを参照する
ことで判断することができる。
【0125】また、提供サービスリストiに基づいて、
プラットフォームがエージェントA1が必要とするサー
ビスを提供していないことが判明した場合も、移動先選
択部14はそのプラットフォームを移動先候補から外
す。このとき、エージェントが必要とするサービスの種
類は、エージェントプロファイル22中の必要サービス
リストpを参照することで判断することができる。
【0126】なお、このようにプラットフォームを移動
先から外していった結果、移動先候補が存在しなくなっ
た場合、移動先選択部14は、移動不可能であると判断
し、その結果、エージェントA1は協調(ステップ3
8)など他の動作を検討することになる。
【0127】次に、移動先選択部14は、残ったプラッ
トフォームのなかから、一番適したプラットフォームを
選択する。具体的には、例えば、信頼性bに関して各プ
ラットフォームを比較して、信頼性の高い方に1点を与
え、永続性cに関して各プラットフォームそれぞれに存
続できるならばに1点を与え、提供リソースリストgに
関して各プラットフォームを比較して、リソースの余裕
が多い方に1点を与え、プラットフォームスケジュール
jに関して各プラットフォームを比較して、存続時間の
長い方に1点を与え、最も点数の高いプラットフォーム
を移動先として選択する。
【0128】〔2−8.順序の決定〕また、複数の移動
先プラットフォームを順番に移動したい場合に、候補で
ある移動先プラットフォームの負荷やそこに至るネット
ワーク状態などから最も適切な順序を決定する必要があ
る。このため、複数の移動先プラットフォームを順番に
移動したい場合、エージェントの順序決定部15は、移
動先プラットフォームそれぞれの信頼性b、永続性c、
パーミッションリストd、プラットフォーム言語リスト
e、提供リソースリストg、提供サービスリストi、プ
ラットフォームスケジュールjなどに基づいて、どのよ
うな順序で個々の移動先プラットフォームに移動するか
を決定する(ステップ36)。
【0129】例えば、プラットフォームF1上のエージ
ェントA1について、移動先の候補であるプラットフォ
ームF2及びF3に順番に移動する際、エージェントA
1の順序決定部15は、プラットフォームF2,F3の
プラットフォームプロファイル21を検索することによ
って、パーミッションリストd、プラットフォーム言語
リストe、提供サービスリストi、信頼性b、永続性
c、提供リソースリストg、プラットフォームスケジュ
ールjを調べる。なお、これらの項目については、プラ
ットフォームF2,F3にこれを問い合わせ、プラット
フォームF2,F3が自己のプラットフォームプロファ
イル21を検索したうえ、その結果をエージェントA1
に返すようにしてもよい。
【0130】その結果、パーミッションリストdに基づ
いて、例えば、移動先のプラットフォームF2又はF3
がエージェントA1にその上で動作するための権限を与
えていないことが判明した場合、順序決定部15は、順
序の決定が不可能であると判断する。
【0131】また、プラットフォーム言語リストeに基
づいて、移動先のプラットフォームF2又はF3がエー
ジェントA1の必要条件を満たさないことが判明した場
合、すなわちエージェントA1の動作を記述している言
語やバージョンを実行できない場合や、提供サービスリ
ストiに基づいて、移動先のプラットフォームF2やF
3がエージェントA1の必要とするサービスを提供して
いないことが判明した場合も、順序の決定が不可能であ
ると判断する。この場合、エージェントA1は他の動作
を検討するが、この場合の他の動作としては、移動先の
候補となるプラットフォームを選び直す、などが挙げら
れる。
【0132】なお、エージェントが必要とする言語やバ
ージョン、サービスの種類は、エージェントプロファイ
ル22中のエージェント言語バージョンoや必要サービ
スリストpを参照することで判断することができる。
【0133】次に、順序決定部15は、残ったプラット
フォームについて、どのような順序で移動するかを決定
する。具体的には、例えば信頼性bに関して各プラット
フォームを比較して、信頼性の高いものに1点を与え、
永続性cに関して各プラットフォームそれぞれに存続で
きるならば1点を与え、提供リソースリストgに関して
各プラットフォームを比較して、リソースの余裕が多い
方に1点を与え、プラットフォームスケジュールjに関
して各プラットフォームを比較して、存続時間の長い方
に1点を与え、合計点数の最も高いプラットフォームか
ら順番に移動先として決定する。
【0134】〔2−9.参照の判断〕以上のような判
断、選択、決定を行うときは、参照判断部23が、プラ
ットフォームプロファイル21やエージェントプロファ
イル22プロファイルの情報(「プロファイル情報」と
呼ぶ)をどのように参照するかを判断する。ここで、ど
のように参照するかについては、典型例として、エージ
ェントが自ら参照してプロファイル情報を調べるか、又
は他のエージェントやプラットフォームに参照を依頼す
るか、また、このように参照を依頼された側でもプロフ
ァイル情報を新たに調べるか、既に判明している既知の
情報を使うかといった判断が考えられるが、具体的には
自由に定めることができる。
【0135】例えば、あるエージェントが独自にプラッ
トフォームの状態を調べることができない場合、すなわ
ちエージェントの負荷が高い場合、エージェントが目的
とするプラットフォームプロファイル21を参照するた
めのアクセス権限(パーミッション)を持っていない場
合、目的のプラットフォームとの間の通信状態が悪い場
合などには、他のエージェントに依頼する必要がある。
【0136】例えば、プラットフォームF1上のエージ
ェントA1は、別のプラットフォームF2のプラットフ
ォームプロファイル21から提供リソースリストgなど
の項目を調べようとする場合、参照判断部23を使って
以下のような判断を行う。すなわち、まず、エージェン
トA1の参照判断部23は、現在いるプラットフォーム
F1のプラットフォームプロファイル21を検索するこ
とによって、現在いるプラットフォームF1のリソース
使用状況(負荷)を調べる。なお、この項目について、
プラットフォームF1にこれを問い合わせ、プラットフ
ォームF1が自己のプラットフォームプロファイル21
を検索したうえ、その結果をエージェントA1に返すよ
うにしてもよい。
【0137】この結果、プラットフォームF1の負荷が
高い場合、参照判断部23は、目的のプラットフォーム
プロファイル21の参照を他のエージェントなどに依頼
することを選択する。その結果、エージェントA1は、
目的のプラットフォームF2上のエージェントA2に対
して、プラットフォームF2のプラットフォームプロフ
ァイル21の検索を依頼する。一方、プラットフォーム
F1の負荷が低い場合、参照判断部23は、プラットフ
ォームプロファイル21を自ら直接参照して調べること
を選択する。その結果、エージェントA1は、プラット
フォームF2のプラットフォームプロファイル21を自
ら直接検索する。
【0138】また、他のプラットフォームからプロファ
イル情報の調査を依頼された側のエージェントは、自分
が今いるプラットフォームの現在の負荷やネットワーク
状態、および調査の対象となるプラットフォームの状態
などから、現在知っている限りの情報、すなわち既に判
明していて自分のメモリ領域などに記録されている既知
の情報に基づいて参照結果を回答するか、新たにプロフ
ァイル情報を調べ直して回答するかを動的に選択する必
要がある。
【0139】そこで、他のプラットフォームからプロフ
ァイル情報の調査を依頼された側のエージェントでは、
参照判断部23は、調査を依頼された情報をプラットフ
ォームプロファイル21の提供リソースリストgなどを
参照することで新たに調べ直すか、上に述べたような既
知の情報に基づいて回答するかを選択する。例えば、上
の例において、プラットフォームF2上のエージェント
A2では、プラットフォームF2のプラットフォームプ
ロファイル21を調べるよう依頼されると、参照判断部
23が、プラットフォームF2のプラットフォームプロ
ファイル21を検索することによって、現在いるプラッ
トフォームF2のリソース使用状況(負荷)を調べる。
なお、この項目について、プラットフォームF2にこれ
を問い合わせ、プラットフォームF2が自己のプラット
フォームプロファイル21を検索したうえ、その結果を
エージェントA2に返すようにしてもよい。
【0140】この結果、プラットフォームF2の負荷が
高い場合、参照判断部23は、既知の情報に基づくこと
を選択する。その結果、プラットフォームF2上で参照
を依頼されたエージェントA2は、依頼してきた側のプ
ラットフォームF1上のエージェントA1に対して、現
在知っている限りの情報に基づいて回答する。一方、プ
ラットフォームF2の負荷が低い場合、参照判断部23
は、依頼された情報を新たに調べることを選択する。そ
の結果、参照を依頼されたエージェントA2は、プラッ
トフォームF2のプラットフォームプロファイル21か
ら改めて最新の情報を検索し、その情報に基づいて依頼
側のエージェントA1に対して回答する。
【0141】〔2−10.指示手段〕以上は、エージェ
ントがプランを実行している際に他のプラットフォーム
上での処理を必要とした場合についての説明であるが、
エージェント自身が他のプラットフォームへの移動が必
要と判断していない場合でも、プラットフォームの割り
振り部9は、自プラットフォーム上のエージェントを他
のプラットフォームへ移動させる必要がないかどうか、
及び、他のプラットフォーム上のエージェントを自プラ
ットフォームへの移動させる必要がないかどうかを監視
して判断し、そのような移動が必要と判断すると、対象
のエージェントに対して、判断にしたがった移動を指示
する。
【0142】すなわち、プラットフォームは自プラット
フォームの状態や、自プラットフォームと関連する他の
プラットフォームの状態に応じて、それらの上で動作す
るエージェントの割り振りを動的に行う必要がある。こ
こで、「関連する他のプラットフォーム」とは、例えば
自プラットフォームとプラットフォームプロファイル2
1の全部又は一部が共通するプラットフォームである。
【0143】例えば、自プラットフォームの負荷が非常
に高い場合や、エージェントから自己が有していない機
能を求められた場合などに、この割り振り部9は、他の
プラットフォームが該当する機能を有しているかどうか
を調べ、その結果をもとに他のプラットフォームへの移
動をエージェントに指示するなどが考えられる。また、
他のプラットフォームの負荷が高い場合など、そのプラ
ットフォーム上のエージェントに自プラットフォームへ
の移動を指示するなどが考えられる。
【0144】つまり、プラットフォームの割り振り部9
は、プラットフォームプロファイル21の移動サポート
a、信頼性b、永続性c、パーミッションリストd、プ
ラットフォーム言語リストe、提供リソースリストg、
エージェントリストhや、エージェントプロファイル2
2の移動可能性k、エージェント移動管理、必要リソー
スリストm、エージェント言語バージョンo、必要サー
ビスリストpなどに基づいて、エージェントに移動を指
示するかどうか判断する。なお、このようなプロファイ
ル情報を参照するときも、上に説明したのと同じよう
に、プロファイル情報をどのように参照するかを参照判
断部23が判断する。
【0145】例えば、プラットフォームF1は、任意の
タイミングで、自プラットフォームのプラットフォーム
プロファイル21と他のプラットフォームのプラットフ
ォームプロファイル21とを検索し、それぞれについて
移動サポートa、つまり移動エージェントをサポートし
ているかと、提供リソースリストgすなわち提供するリ
ソースの種類/量と現在のリソースの量のリストと、を
調べる。
【0146】その結果、両方のプラットフォームが移動
エージェントをサポートし、かつ、他のプラットフォー
ムを比較して自プラットフォームの負荷が少ない場合
は、さらに、他のプラットフォームのプラットフォーム
プロファイル21を検索することによって、そのプラッ
トフォーム上に存在しているエージェントのリストであ
るエージェントリストhを調べる。
【0147】次に、他のプラットフォーム上のエージェ
ントのエージェントプロファイル22を検索することに
よって、エージェントリストhに含まれている個々のエ
ージェントについて移動可能かどうかを表す移動可能性
kを調べる。その結果、移動可能なエージェントが含ま
れていた場合、そのエージェントについてエージェント
プロファイル22を検索することによって、必要リソー
スリストm、エージェント言語バージョンo、必要サー
ビスリストpを調べる。
【0148】続いて、今度は自プラットフォームのプラ
ットフォームプロファイル21を検索することによっ
て、パーミッションリストd、提供リソースリストg、
プラットフォーム言語リストe、提供サービスリストi
を調べる。
【0149】その結果、先にプロファイル情報を調べた
エージェントが、自プラットフォーム上においても、実
行パーミッションを有することになり、かつ、そのエー
ジェントの必要とするリソース、サービス、言語、バー
ジョンを全て提供できる場合、割り振り部9は、そのエ
ージェントを自プラットフォームへ移動させるべきであ
ると判断し、通信部8を通じてそのエージェントに対し
てそのような移動を指示する。
【0150】一方で、自プラットフォームと比べて他の
プラットフォームの負荷が少ない場合、割り振り部9は
さらに、自プラットフォームのプラットフォームプロフ
ァイル21を検索することによってエージェントリスト
hを調べる。次に、このエージェントリストhに含まれ
るエージェント、すなわち自プラットフォーム上のエー
ジェントについて、エージェントプロファイル22を検
索することによって、移動可能性kを調べる。
【0151】その結果、自プラットフォーム上のエージ
ェントのなかに移動可能なエージェントが含まれていた
場合は、割り振り部9はさらにそのエージェントについ
て、エージェントプロファイル22を検索することによ
って必要リソースリストm、エージェント言語バージョ
ンo、必要サービスリストpを調べる。また、他のプラ
ットフォームについて、プラットフォームプロファイル
21を検索することによってパーミッションリストd、
提供リソースリストg、プラットフォーム言語リスト
e、提供サービスリストiを調べる。
【0152】その結果、先にプロファイル情報を調べた
エージェントが、他のプラットフォーム上においても、
実行パーミッションを有しており、かつ、そのエージェ
ントの必要とするリソース、サービス、言語、バージョ
ンの全てについて提供を受けられる場合、割り振り部9
は、その自プラットフォーム上を他プラットフォームへ
移動させるべきであると判断し、通信部8を通じてその
エージェントに対して、他のプラットフォームへの移動
を指示する。
【0153】〔2−11.エージェントの移動の詳細〕
以上に説明したような処理において、エージェントが他
のプラットフォームに移動することになった場合、エー
ジェントは、例えば自分が存在しているプラットフォー
ムの移動部6を使ってプラットフォーム間での移動を行
う(ステップ37)。ここで、移動の態様には、通常移
動とクローン移動があり、エージェントA1は、移動の
態様を選択してそれを実行する。
【0154】すなわち、通常移動は、移動元のプラット
フォーム(現在のプラットフォームと呼ぶ)ではエージ
ェントが登録を解除されて抹消されるもので、例えば次
のような手順で行われる。 −移動先プラットフォームへの移動要求の送信 −移動先プラットフォームからの返信の受信 −移動先プラットフォームへのエージェント情報の送信 −移動先プラットフォームからの移動成功/失敗通知の
受信 −移動先プラットフォームでの実行開始 −現在のプラットフォームへのエージェントの登録解除 −現在のプラットフォーム上のエージェントの抹消 一方、クローン移動は、移動先にエージェントの複製
(クローン)が送られるだけでなく、移動元である現在
のプラットフォームでもクローンの原形となったエージ
ェントが抹消されずに活動を続けるもので、ネットワー
ク全体としてはエージェントの総数が増えることにな
る。このクローン移動は、複数の違った知識やプランに
基づいて複数の系統の処理を並行して行う場合に利用さ
れる。
【0155】このクローン移動の手続きは、上に述べた
通常移動の手順から、現在のプラットフォーム上でのエ
ージェントの登録解除や抹消のステップを除いたもの
で、例えば次のような手順で行われる。 −移動先プラットフォームへの移動要求の送信 −移動先プラットフォームからの返信の受信 −移動先プラットフォームへのエージェントコードの送
信 −移動先プラットフォームからの移動成功/失敗通知の
受信 −移動先プラットフォームでの実行開始 このうち、上に述べた通常移動の手順を図10に示す。
すなわち、この例では、エージェントの移動元のプラッ
トフォームをローカルノード、移動先のプラットフォー
ムをリモートノードと呼ぶ。この場合、ローカルノード
からの移動要求(ステップ501)を受信したリモート
ノードは(ステップ502)、エージェント用のプロセ
スを設定する(ステップ503)。
【0156】続いて、リモートノードから、プロセスの
設定が完了した旨の通知(ステップ504)を受信した
ローカルノードは(ステップ505)、エージェントの
プランや変数領域などのエージェント情報をリモートノ
ードに送信する(ステップ506)。このエージェント
情報を受信したリモートノードは(ステップ507)、
エージェント情報を格納し(ステップ508)、ローカ
ルノードへ移動成功の通知を送信し(ステップ50
9)、プランの解釈実行を開始する(ステップ51
0)。一方、成功の通知を受信したローカルノードは
(ステップ511)、不要になったエージェント用のプ
ロセスを消去する(ステップ512)。
【0157】〔2−12.契約ネットプロトコル手続
き〕また、以上に説明したような処理において、エージ
ェントが他のエージェントと協調を行うことになった場
合、本実施形態では、それぞれのエージェントは、自分
が存在しているプラットフォームの協調部7を使って、
いわゆる契約ネットプロトコルによって協調を行う(ス
テップ38)。
【0158】ここで、契約ネットプロトコル(Contract
Net Protocol) 手続きの詳細を図11に示す(参考文
献:Smith, R. G., "The Contract Net Protocol: High
-levelCommunication and Control in a Distributed P
roblem Solver", IEEE Trans.Computers, Vol. 29, pp.
1104-1113(1980). )。この契約ネットプロトコルで
は、エージェントから他のエージェントに依頼される作
業をタスクと呼ぶ。また、タスクをエージェント間で依
頼する契約ネットプロトコルは、それぞれのエージェン
トが存在するプラットフォームの協調部7同士の間で、
通信部8を経由して行なわれる。
【0159】〔2−12−1.タスクアナウンス〕契約
ネットプロトコルにおいてタスク実行を依頼する場合
は、まず、タスクを持つエージェント(以下、タスクマ
ネジャと呼ぶ)が、ステップ601において、タスクを
依頼したいプラットフォーム群に対して依頼に関する情
報(以下「タスク情報」という)をブロードキャストす
る。なお、ブロードキャストとは一定範囲の相手に対し
て無差別に情報を送信することであり、タスク情報をブ
ロードキャストすることをタスクアナウンスという。ブ
ロードキャストするタスク情報としては、例えば、タス
クID、タスクの内容、タスクマネジャのID、プラン
評価基準、入札期限などがある。
【0160】〔2−12−2.入札〕上に述べたような
タスク情報を受信したプラットフォームはエージェント
を生成し、それらにタスク情報を転送する(ステップ6
02)。タスク情報を受け取った各エージェントは、自
らが所属しているプラットフォームにおいてタスクを実
行可能かどうか判断し(ステップ603)、タスク内容
を実行可能なエージェントは、入札する旨の情報(以下
「入札情報」や「入札メッセージ」という)をタスクマ
ネジャに送信(入札)する(ステップ604)。なお、
入札情報を送信したエージェントを入札エージェントと
呼ぶ。
【0161】入札情報には、例えば、タスクID、エー
ジェントID、タスク実行プラン評価値などがあり、こ
のうちタスク実行プラン評価値は、タスクアナウンスで
示されたプラン評価基準に基づいて、入札エージェント
が、自分がタスクを実行する場合における評価を計算し
たものである。
【0162】〔2−12−3.入札締切と落札〕タスク
マネジャは、入札を締め切る入札期限と現在時刻を比較
しながら入札情報を受信し、ステップ605において入
札期限に到達すると、次のステップ606において入札
締切を示すメッセージを発信する。この締切のメッセー
ジは、タスク情報のブロードキャスト先とした全ての依
頼プラットフォームに対してブロードキャストする。そ
して、タスクマネジャは、ステップ609において、落
札するエージェントを決定する。この決定は、入札期限
までに受信した各入札情報のタスク実行プラン評価値
と、予め定めた決定の基準に基づいて、各エージェント
の入札情報を比較することによって行なう。
【0163】落札するエージェント(落札エージェント
と呼ぶ)の決定は、タスクマネジャが、実際にタスクを
依頼する先としてそのエージェントを決定することを意
味するが、実際にタスクを依頼する時期は処理の内容に
応じて異なっていてもよく、契約ネットプロトコルの終
了後に直ちに依頼する場合もあれば、所定の時期まで待
って依頼する場合もある。
【0164】落札エージェントを決定すると、タスクマ
ネジャは、ステップ610において、各入札エージェン
トに、落札の内容を表す落札情報をマルチキャスト(同
報送信)する。この落札情報を受信することによって、
落札エージェントは、タスクを実際に実行すべき旨の実
行依頼を待つ状態となる。タスクマネジャは、落札され
たタスクの実行をその後、落札エージェントに依頼し、
その結果、落札エージェントは依頼されたタスクの内容
を実際に実行する。
【0165】上に述べたように、本実施形態では、エー
ジェント間協調を実現するために契約ネットプロトコル
を用いる。そして、契約ネットプロトコルで処理を他の
プラットフォームに依頼する場合は、依頼側プラットフ
ォームの持つ条件と請負側プラットフォームの持つ能力
との間で、入札制による調和が図られる。このため、シ
ステム全体として優れた処理効率が実現される。
【0166】〔3.効果〕以上説明したように、本実施
形態では、エージェントがあるプラットフォームで活動
しているときに他のプラットフォームでの処理が必要に
なった場合、エージェントを当該他のプラットフォーム
に移動させるか、エージェントは現在のプラットフォー
ムに留めたまま、当該他のプラットフォーム上のエージ
ェントとメッセージ通信などで処理を依頼する、すなわ
ち協調を行うかが、移動協調判断部11によって判断さ
れる。この結果、エージェントやプラットフォームによ
って移動をサポートしているかどうかが異なっていた
り、プラットフォームの組み合わせによって、その間の
回線の信頼性が異なるような場合でも、他のプラットフ
ォームでの処理を円滑に行うことができる。
【0167】また、本実施形態では、エージェントが他
のプラットフォームへ移動するための手順、例えば、エ
ージェントのプランや内部状態などの情報転送や移動先
でのエージェント用プロセスの設定といった処理を、エ
ージェントとプラットフォームのどちらが主体的に管理
するかが、主体判断部12によって判断される。このた
め、エージェントの移動の仕方に自由度が増え、システ
ムの状況や構成に応じて円滑に効率良くエージェントを
移動させることができる。
【0168】また、この実施形態では、エージェントが
他のプラットフォームに移動しようとするとき、プラッ
トフォームの状況や移動に使うネットワーク回線の状態
などに応じて、直ちに移動するかしばらく待ってから移
動するかがタイミング判断部13によって判断されるの
で、エージェントの移動のタイミングが多様化し、移動
を確実に効率良く行うことができる。
【0169】また、この実施形態では、移動先のプラッ
トフォームの候補が複数あるとき、移動先として最適な
プラットフォームが移動先選択部14によって選択され
るので、処理が円滑に効率良く行われる。また、この実
施形態では、エージェントが複数のプラットフォームに
順次移動しようとするとき、それぞれのプラットフォー
ムの負荷やそこに至るネットワーク回線の状態などに基
づいて、最適な移動の順序が順序決定部15によって決
定されるので、エージェントごと、プラットフォームご
と、及びシステム全体の処理効率が向上する。
【0170】また、この実施形態では、それぞれのプラ
ットフォームの状態に応じて、エージェントにプラット
フォーム間での移動の指示が割り振り部9によって伝え
られる。このため、エージェントがそれぞれのプラット
フォームに動的に割り振られ、システム全体の処理が効
率化される。
【0171】また、この実施形態では、それぞれのプラ
ットフォームについて、エージェントの移動をサポート
しているか、そのプラットフォームを接続しているネッ
トワーク回線の信頼性が高いか低いかといった情報が、
予めプラットフォームプロファイル21に用意されてい
る。このため、移動にかかわる判断を行うとき、プラッ
トフォームやネームサーバなどに直接アクセスして調べ
るまでもなく、そのような情報を容易に得ることができ
るので、移動にかかわる判断が効率化される。
【0172】特に、この実施形態では、エージェントの
移動をサポートしているかだけでなく、プラットフォー
ムが提供するリソース、サービス、動作の種類ごとの許
諾(パーミッション)など、いろいろな項目をプラット
フォームプロファイル21に登録しておくことができる
ので、このようなプラットフォームプロファイル21を
参照することで、移動に関してきめ細かな判断を容易に
行うことが可能になる。
【0173】また、本実施形態では、それぞれのエージ
ェントについて、プラットフォーム間での移動をサポー
トしているか、どのようなリソースやサービスを必要と
するかいった情報が、予めエージェントプロファイル2
2に用意されている。このため、移動にかかわる判断を
行うとき、エージェントの内部状態や生成履歴などを参
照して調べるまでもなく、そのような情報を容易に得る
ことができるので、移動にかかわる判断が効率化され
る。
【0174】特に、本実施形態では、プラットフォーム
間での移動能力だけでなく、エージェントの動作がどの
ような言語やバージョンで記述されているか、どのよう
なリソース、サービス、パーミッションが必要かなど、
いろいろな項目をエージェントプロファイル22に登録
しておくことができるので、このようなエージェントプ
ロファイル22を参照することで、移動に関してきめ細
かな判断を容易に行うことが可能になる。
【0175】さらに、本実施形態では、移動にかかわる
判断を行うとき、プラットフォームプロファイルやエー
ジェントプロファイルの参照をどのように行うかが参照
判断部23によって判断されるので、それらプロファイ
ルがどのハードウェア上にあるかなどの状況に応じて、
最も効率的な参照の仕方を選ぶことができる。
【0176】〔4.他の実施形態〕なお、本発明は上に
述べた実施形態に限定されるものではなく、次に例示す
るような他の実施形態をも含むものである。例えば、本
発明において、ネットワークの規模、形式、プラットフ
ォーム数などは自由であり、エージェントを使って行う
情報処理の種類や、それに使う具体的な言語や情報の内
容も自由に決めることができる。
【0177】また、上に述べた実施形態では、移動か協
調かの判断、主体の判断、タイミングの判断、移動先の
選択、移動順序の決定という判断の順序を示したが、こ
れらの判断の順序はある程度入れ替えることが可能で、
例えば、タイミングの判断の後で主体の判断を行った
り、移動先や移動の順序を決めた後で、個々の移動先ご
とに主体やタイミングの判断を行うこともできる。ま
た、上記実施形態を示す図2では、移動部6を、プラッ
トフォームの構成要素としてエージェントAに含まれな
い形で示したが、移動部6はエージェント内部に設けて
もよい。
【0178】また、エージェントが他のプラットフォー
ムに直ちに移動しない場合の待ち時間や、複数の候補に
基づいて移動先や移動順序を決める具体的な基準は自由
に決めることができる。また、プラットフォームプロフ
ァイルやエージェントプロファイルに具体的にどのよう
な項目を記録しておくかも自由である。また、上に述べ
た実施形態では、プランニングを行うエージェントを主
に例示したが、本発明は、プランニングを行わないエー
ジェントに適用することもできる。
【0179】
【発明の効果】以上のように、本発明によれば、状況に
応じてエージェントの行動プランを作成し、他のノード
での処理を実現するために、ノード間で移動するか他の
エージェントと協調するか条件に応じて動的に選ぶこと
で、変化に対応して効率よく情報を処理することができ
る。
【図面の簡単な説明】
【図1】本発明の実施形態の全体の構成を示すブロック
図。
【図2】本発明の実施形態におけるプラットフォームの
具体的な構成を示す機能ブロック図。
【図3】本発明の実施形態におけるプラットフォームプ
ロファイルのデータ形式の具体例を示す機能ブロック
図。
【図4】本発明の実施形態におけるプラットフォームプ
ロファイルのデータ形式の具体例を示す機能ブロック
図。
【図5】本発明の実施形態における処理手順を示すフロ
ーチャート。
【図6】本発明の実施形態において、生成途中のプラン
の例を示す概念図。
【図7】本発明の実施形態において、完成したプランの
例を示す概念図。
【図8】本発明の実施形態におけるプラン生成の手順を
示すフローチャート。
【図9】本発明の実施形態において、他のプラットフォ
ームでの処理を移動又は協調によって行う手順を示すフ
ローチャート。
【図10】本発明の実施形態において、プラットフォー
ム間でエージェントが移動する手順を示すフローチャー
ト。
【図11】本発明の実施形態において、エージェント間
での協調の手順を示すフローチャート。
【図12】従来技術の一例を示す機能ブロック図。
【符号の説明】
1…エージェント管理部 2…エージェント情報 3…プラン実行部 4…プラン生成部 5…プラン生成用知識 6…移動部 7…協調部 8…通信部 9…割り振り部 11…移動協調判断部 12…主体判断部 13…タイミング判断部 14…移動先選択部 15…順序決定部 21…プラットフォームプロファイル 22…エージェントプロファイル 31…エージェント情報記憶手段 41…入出力手段 51…エージェント管理手段 61…解釈実行手段 100,110,120,130,140…マシン 101…CPU 102…メインメモリ 103…ハードディスク装置 104…出力装置 105…入力装置 106…ネットワーク接続装置 107,117,127,137,147…プラットフ
ォーム N…ネットワーク回線 A,108,118,128,138,148…エージ
ェント L…ローカルノード R…リモートノード
フロントページの続き (72)発明者 加瀬 直樹 神奈川県川崎市幸区柳町70番地 株式会社 東芝柳町工場内 (72)発明者 長谷川 哲夫 神奈川県川崎市幸区柳町70番地 株式会社 東芝柳町工場内 (72)発明者 大須賀 昭彦 神奈川県川崎市幸区柳町70番地 株式会社 東芝柳町工場内 Fターム(参考) 5B045 BB47 EE18 GG02

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 複数のプラットフォームを備えたネット
    ワーク上でエージェントが動作することで情報を処理す
    るエージェントシステムにおいて、 プラットフォーム上でエージェントを活動させる手段
    と、 エージェントをプラットフォーム間で移動させる手段
    と、 複数のエージェントの間で協調を行わせる手段と、 エージェントが現在いるプラットフォームとは異なる他
    のプラットフォームでの処理が必要になった場合に、当
    該他のプラットフォームへエージェントが移動するか、
    エージェントが当該他のプラットフォームに存在する他
    のエージェントと協調を行うかを判断する手段と、 を備えたことを特徴とするエージェントシステム。
  2. 【請求項2】 エージェントが他のプラットフォームへ
    移動するための手順を、エージェントが主体的に管理す
    るか、プラットフォームが主体的に管理するかを判断す
    る手段を備えたことを特徴とする請求項1記載のエージ
    ェントシステム。
  3. 【請求項3】 エージェントが他のプラットフォームに
    移動しようとするとき、直ちに移動するかどうかを判断
    する手段を備えたことを特徴とする請求項1又は2記載
    のエージェントシステム。
  4. 【請求項4】 移動先のプラットフォームの候補が複数
    あるとき、どのプラットフォームに移動するかを選択す
    る手段を備えたことを特徴とする請求項1から3のいず
    れか1つに記載のエージェントシステム。
  5. 【請求項5】 エージェントが複数のプラットフォーム
    に順次移動しようとするとき、それぞれのプラットフォ
    ームにどのような順序で移動するかを決定する手段を備
    えたことを特徴とする請求項1から4のいずれか1つに
    記載のエージェントシステム。
  6. 【請求項6】 前記プラットフォームは、 自プラットフォーム上のエージェントを他のプラットフ
    ォームへ移動させるか、及び、他のプラットフォーム上
    のエージェントを自プラットフォームへ移動させるかを
    判断する手段と、 判断の結果をエージェントに指示する手段と、 を備えたことを特徴とする請求項1から5のいずれか1
    つに記載のエージェントシステム。
  7. 【請求項7】 それぞれのプラットフォームについて、
    移動にかかわる判断の基礎となる情報を表すプラットフ
    ォームプロファイルを備えたことを特徴とする請求項1
    から6のいずれか1つに記載のエージェントシステム。
  8. 【請求項8】 前記プラットフォームプロファイルは、
    それぞれのプラットフォームについて、 a)エージェントを移動させるための機能を備えている
    かどうか、 b)そのプラットフォームにかかわるネットワーク回線
    の信頼性が高いか低いか、 c)エージェントを永続的に存在させることができる
    か、 d)エージェントにどのような種類の動作を認めている
    か、 e)どのようなプログラミング言語を実行することがで
    きるか、 f)前記移動のための処理をプラットフォームが主体的
    に管理するか、 g)どのような種類及び分量のリソースを提供するか、 h)どのようなエージェントが存在しているか、 i)どのようなサービスを提供するか、 j)いつまで活動するか、 のうち少なくとも1つの情報を表すことを特徴とする請
    求項7記載のエージェントシステム。
  9. 【請求項9】 それぞれのエージェントについて、移動
    にかかわる判断の基礎となる情報を表すエージェントプ
    ロファイルを備えたことを特徴とする請求項1から8の
    いずれか1つに記載のエージェントシステム。
  10. 【請求項10】 前記エージェントプロファイルは、そ
    れぞれのエージェントについて、 k)エージェントがプラットフォーム間で移動する能力
    を持つかどうか、 l)前記移動のための処理をエージェントが主体的に管
    理するか、 m)エージェントがどのような種類及び分量のリソース
    を必要とするか、 n)いつまで活動するか、 o)エージェントの動作がどのようなプログラミング言
    語で記述されているか、 p)エージェントがどのようなサービスを必要とする
    か、 のうち少なくとも1つの情報を表すことを特徴とする請
    求項9記載のエージェントシステム。
  11. 【請求項11】 前記プロファイルをどのように参照す
    るかを判断する参照判断手段を備えたことを特徴とする
    請求項7から10のいずれか1つに記載のエージェント
    システム。
  12. 【請求項12】 複数のプラットフォームを備えたネッ
    トワーク上でエージェントが動作することで情報を処理
    する情報処理方法において、 プラットフォーム上でエージェントを活動させるステッ
    プと、 エージェントをプラットフォーム間で移動させるステッ
    プと、 複数のエージェントの間で協調を行わせるステップと、 エージェントが現在いるプラットフォームとは異なる他
    のプラットフォームでの処理が必要になった場合に、当
    該他のプラットフォームへエージェントが移動するか、
    エージェントが当該他のプラットフォームに存在する他
    のエージェントと協調を行うかを判断するステップと、 エージェントが他のプラットフォームへ移動するための
    手順を、エージェントが主体的に管理するか、プラット
    フォームが主体的に管理するかを判断するステップと、 を含むことを特徴とする情報処理方法。
  13. 【請求項13】 エージェントが他のプラットフォーム
    に移動しようとするとき、直ちに移動するかどうかを判
    断するステップを含むことを特徴とする請求項12記載
    の情報処理方法。
  14. 【請求項14】 移動先のプラットフォームの候補が複
    数あるとき、どのプラットフォームに移動するかを選択
    するステップを含むことを特徴とする請求項12又は1
    3記載の情報処理方法。
  15. 【請求項15】 エージェントが複数のプラットフォー
    ムに順次移動しようとするとき、それぞれのプラットフ
    ォームにどのような順序で移動するかを決定するステッ
    プを含むことを特徴とする請求項12から14のいずれ
    か1つに記載の情報処理方法。
  16. 【請求項16】 前記プラットフォームは、 自プラットフォーム上のエージェントを他のプラットフ
    ォームへ移動させるか、及び、他のプラットフォーム上
    のエージェントを自プラットフォームへ移動させるかを
    判断するステップと、 判断の結果をエージェントに指示するステップと、 を実行することを特徴とする請求項12から15のいず
    れか1つに記載の情報処理方法。
  17. 【請求項17】 それぞれのプラットフォームについ
    て、移動にかかわる判断の基礎となる情報を予めプラッ
    トフォームプロファイルとして用意しておくことを特徴
    とする請求項12から16のいずれか1つに記載の情報
    処理方法。
  18. 【請求項18】 それぞれのエージェントについて、移
    動にかかわる判断の基礎となる情報を予めエージェント
    プロファイルとして用意しておくことを特徴とする請求
    項12から17のいずれか1つに記載の情報処理方法。
  19. 【請求項19】 コンピュータを使って、複数のプラッ
    トフォームを備えたネットワーク上でエージェントが動
    作することで情報を処理するための情報処理用ソフトウ
    ェアを記録した記録媒体において、 そのソフトウェアは前記コンピュータに、 プラットフォーム上でエージェントを活動させ、 エージェントをプラットフォーム間で移動させ、 複数のエージェントの間で協調を行わせ、 エージェントが現在いるプラットフォームとは異なる他
    のプラットフォームでの処理が必要になった場合に、当
    該他のプラットフォームへエージェントが移動するか、
    エージェントが当該他のプラットフォームに存在する他
    のエージェントと協調を行うかを判断させ、 エージェントが他のプラットフォームへ移動するための
    手順を、エージェントが主体的に管理するか、プラット
    フォームが主体的に管理するかを判断させることを特徴
    とする情報処理用ソフトウェアを記録した記録媒体。
  20. 【請求項20】 前記ソフトウェアは前記コンピュータ
    に、 エージェントが他のプラットフォームに移動しようとす
    るとき、直ちに移動するかどうかを判断させることを特
    徴とする請求項19記載の情報処理用ソフトウェアを記
    録した記録媒体。
  21. 【請求項21】 前記ソフトウェアは前記コンピュータ
    に、 それぞれのプラットフォーム上のエージェントを他のプ
    ラットフォームへ移動させるかを判断させ、 判断の結果をエージェントに指示させることを特徴とす
    る請求項19又は20記載の情報処理用ソフトウェアを
    記録した記録媒体。
JP19627498A 1998-04-13 1998-07-10 エージェントシステム、情報処理方法及び情報処理用ソフトウェアを記録した記録媒体 Expired - Fee Related JP3688471B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP19627498A JP3688471B2 (ja) 1998-07-10 1998-07-10 エージェントシステム、情報処理方法及び情報処理用ソフトウェアを記録した記録媒体
US09/289,598 US6477563B1 (en) 1998-04-13 1999-04-12 Agent system and information processing method for same
US10/236,959 US6662207B2 (en) 1998-04-13 2002-09-09 Agent system and information processing method for same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19627498A JP3688471B2 (ja) 1998-07-10 1998-07-10 エージェントシステム、情報処理方法及び情報処理用ソフトウェアを記録した記録媒体

Publications (2)

Publication Number Publication Date
JP2000029847A true JP2000029847A (ja) 2000-01-28
JP3688471B2 JP3688471B2 (ja) 2005-08-31

Family

ID=16355088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19627498A Expired - Fee Related JP3688471B2 (ja) 1998-04-13 1998-07-10 エージェントシステム、情報処理方法及び情報処理用ソフトウェアを記録した記録媒体

Country Status (1)

Country Link
JP (1) JP3688471B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108838A (ja) * 2000-10-02 2002-04-12 Ntt Comware Corp エージェント実行装置およびエージェント実行方法
CN1312606C (zh) * 2003-03-24 2007-04-25 富士施乐株式会社 联合处理装置和联合处理方法
US7370334B2 (en) 2001-07-30 2008-05-06 Kabushiki Kaisha Toshiba Adjustable mobile agent
JP2019144684A (ja) * 2018-02-16 2019-08-29 富士ゼロックス株式会社 情報処理システム及びプログラム
WO2021039093A1 (ja) * 2019-08-30 2021-03-04 三菱重工業株式会社 無人機協調システム、無人機協調処理方法及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09204348A (ja) * 1996-01-29 1997-08-05 Hitachi Ltd ドキュメント管理システム
WO1997035262A1 (fr) * 1996-03-15 1997-09-25 Hitachi, Ltd. Procede de generation automatique de programme et procede de commande d'execution
JPH10149287A (ja) * 1996-09-17 1998-06-02 Toshiba Corp 情報処理装置、情報処理方法及び記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09204348A (ja) * 1996-01-29 1997-08-05 Hitachi Ltd ドキュメント管理システム
WO1997035262A1 (fr) * 1996-03-15 1997-09-25 Hitachi, Ltd. Procede de generation automatique de programme et procede de commande d'execution
JPH10149287A (ja) * 1996-09-17 1998-06-02 Toshiba Corp 情報処理装置、情報処理方法及び記録媒体

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108838A (ja) * 2000-10-02 2002-04-12 Ntt Comware Corp エージェント実行装置およびエージェント実行方法
US7370334B2 (en) 2001-07-30 2008-05-06 Kabushiki Kaisha Toshiba Adjustable mobile agent
CN1312606C (zh) * 2003-03-24 2007-04-25 富士施乐株式会社 联合处理装置和联合处理方法
US7359940B2 (en) 2003-03-24 2008-04-15 Fuji Xerox Co., Ltd. Cooperative processing apparatus and cooperative processing method
JP2019144684A (ja) * 2018-02-16 2019-08-29 富士ゼロックス株式会社 情報処理システム及びプログラム
WO2021039093A1 (ja) * 2019-08-30 2021-03-04 三菱重工業株式会社 無人機協調システム、無人機協調処理方法及びプログラム

Also Published As

Publication number Publication date
JP3688471B2 (ja) 2005-08-31

Similar Documents

Publication Publication Date Title
US6477563B1 (en) Agent system and information processing method for same
US6760733B1 (en) Object management system and data processing system with centralized mechanism for managing containment relationships among objects
US6195678B1 (en) Remote resource management system for automatically downloading required files from application server depending on contents of selected files on requesting computer
US20050283649A1 (en) Arrangement in a network for passing control of distributed data between network nodes for optimized client access based on locality
KR970004090B1 (ko) 멀티프로세서 시스템의 신규 프로그램 실행 초기화 방법 및 장치
JPH1185524A (ja) 情報処理装置及び方法並びに情報処理プログラムを記録した記録媒体
JPH10149287A (ja) 情報処理装置、情報処理方法及び記録媒体
US7085831B2 (en) Intelligent system control agent for managing jobs on a network by managing a plurality of queues on a client
US20080320138A1 (en) Network System, Management Computer, Cluster Management Method, and Computer Program
US7590618B2 (en) System and method for providing location profile data for network nodes
JP3554134B2 (ja) ネットワーク接続経路探索方法、計算機、ネットワークシステム及び記憶媒体。
EP0926590A1 (en) Component-based control structure for wireless communication
US20040049531A1 (en) Job network setup method, job network execution method, job management system, management terminal and program
JP2001175460A (ja) プログラム配付管理システム
JPH10333925A (ja) オートノマス・エージェント・アーキテクチャ
JP3688471B2 (ja) エージェントシステム、情報処理方法及び情報処理用ソフトウェアを記録した記録媒体
US6314462B1 (en) Sub-entry point interface architecture for change management in a computer network
JP2000236583A (ja) モバイルエージェントシステム及びその制御方法
Quang et al. Device-driven on-demand deployment of serverless computing functions
CZ9903576A3 (cs) Mobilní objekty, zpusob pro rízení mobilních objektu, zpusob a zarízení pro generování skupiny mobilních objektu a pametové médium pro ukládání programu pro generování skupiny mobilních objektu
JP3688462B2 (ja) 情報処理装置及び方法並びに情報処理用プログラムを記録した記録媒体
JP4485428B2 (ja) ネットワークシステム、管理コンピュータ、クラスタ管理方法およびコンピュータプログラム
KR100470176B1 (ko) 지능형 이동 에이전트를 실행시키기 위한 플랫폼 제공시스템
JP2002197002A (ja) 自律分散型コンテンツ配信システム及び方法
JPH09160847A (ja) クライアント・サーバ型分散処理システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040921

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050531

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050608

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090617

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090617

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100617

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100617

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110617

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120617

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120617

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130617

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees