JP2000339281A - モバイルエージェントシステム - Google Patents
モバイルエージェントシステムInfo
- Publication number
- JP2000339281A JP2000339281A JP11147724A JP14772499A JP2000339281A JP 2000339281 A JP2000339281 A JP 2000339281A JP 11147724 A JP11147724 A JP 11147724A JP 14772499 A JP14772499 A JP 14772499A JP 2000339281 A JP2000339281 A JP 2000339281A
- Authority
- JP
- Japan
- Prior art keywords
- agent
- program
- mobile agent
- mobile
- action
- 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
Links
Landscapes
- Multi Processors (AREA)
Abstract
備えたモバイルエージェントシステムであって、実行状
態の移動が可能なものを実現する。 【解決手段】複数の独立に動作するエージェントを有
し、かつ、各エージェントが、ネットワークで結合され
たコンピュータ間を移動できるモバイルエージェントか
ら構成されるモバイルエージェントシステムにおいて、
モバイルエージェントごとにそのモバイルエージェント
の実行状態を格納するプログラム実行状態記憶部14を
設ける。あるいは、モバイルエージェントの構成要素で
あるプログラムをサブプログラムにあらかじめ分割して
格納するエージェントプログラム格納部12を設ける。
Description
ながれた複数のコンピュータ上で分散・協調処理を行う
システムに関し、特に、エージェントと呼ばれる自律的
に実行可能なソフトウェアプログラムを各コンピュータ
間で移動させながら実行させるモバイル(移動)エージ
ェントシステムに関する。
のエージェントを記述するためのプログラム言語の観点
から分類して、モバイルエージェントシステム専用の独
自のプログラム言語に基づいたものと、従来の汎用のプ
ログラム言語の拡張言語に基づくものとがある。前者の
例としては、TeleScript言語のMagic Cap(General Mag
ic社)、プラニング言語のプランジェント(東芝)、後
者の例としては、Java言語を拡張したOdessey(General
Magic社)、Aglets(日本IBM)、Voyager(Object
Space社)、Kafuka(富士通)などがある。
プログラマが新しい言語を新たに修得する必要がないと
いう利点があるが、一般には、これらのシステムでは、
エージェントの実行状態をネットワーク上で移動させる
ことが難しい。一方、独自言語に基づくシステムでは、
エージェントの実行状態の移動が容易であるが、新しい
言語の習得の必要性に加え、Telescriptのように独自の
実行環境を必要としたり、プランジェントのように、セ
マンティクスが複雑でプログラミングが困難であったり
するという問題点がある。
は、他のプログラマが作ったエージェントとの交信や、
リモートマシンの未知の環境でのエージェントプログラ
ムの実行などのため、プログラムが思った通り動作する
かをデバッグすることが非常に困難である。
と信念の論理にもとづくプログラム言語を備えたモバイ
ルエージェントシステムであって、実行状態の移動が可
能なものを実現することにある。
エージェントシステムは、複数の独立に動作するエージ
ェントを有し、かつ、各エージェントが、ネットワーク
で結合されたコンピュータ間を移動できるモバイルエー
ジェントから構成されるモバイルエージェントシステム
において、モバイルエージェントごとにそのモバイルエ
ージェントの実行状態を格納するプログラム実行状態記
憶部が設けられていることを特徴とする。
システムは、複数の独立に動作するエージェントを有
し、かつ、各エージェントが、ネットワークで結合され
たコンピュータ間を移動できるモバイルエージェントか
ら構成されるモバイルエージェントシステムにおいて、
モバイルエージェントの構成要素であるプログラムをサ
ブプログラムにあらかじめ分割して格納するエージェン
トプログラム格納部を有することを特徴とする。
えばR. Fagin, J. Y. Halpern, Y.Moses, M. Y. Vardi
著、「Reasoning about Knowledge」、The MIT Pressで
論じられているような、Knowledge-Based Program(知
識ベースプログラム)をモバイルエージェント用に拡張
したものである。これにより、独自のプログラム言語で
ありながら論理にもとづく普遍的な意味を持つ言語が提
供できる。また、本発明のモバイルエージェントシステ
ムは、論理に基づくシステムであるため、論理に基づく
形式的検証手法との親和性も高く、モバイルエージェン
トシステムのデバッグシステムも実現しやすいと考えら
れる。この簡明な言語に基づき、インタープリタレベル
のプログラムスタックを考案し、エージェント移動時の
実行状態の完全な保持を実現する。
において、エージェントの目的達成の可能性をより高め
るために、従来のプログラムの移動機能に加えて、他の
エージェントからのプログラムの獲得機能も与える。
装置の構成及び装置の動作に関するアルゴリズムを示
す。
ムの基本構成を以下に定義する。
2,…の集合である。
列t_a1,t_a2,…からなる。
test:test式, action:action式>である。
(詳しくは小野寛晰著「情報科学における論理」日本評
論社参照)。これは、K_a1,K_a2,…を様相オペレータ
とする様相論理式である。ただし、K_a1,K_a2,…は、
それぞれ、エージェントa1,a2,…に対応する。
ある。そのセマンティクスを各actionの下に付記する。 ・go(place_id) IDがplace_idであるプレースエージェントに移動す
る。 ・dispose(agent_id) IDがagent_idであるエージェントの活動を終了させ
る。 ・add(agent_id,φ) IDがagent_idであるエージェント知識ベースにφを加
える。 ・delete(agent_id,φ) IDがagent_idであるエージェント知識ベースにφがあ
れば、そのφを取り除く。 ・create(agent_id, program, stack, kb);IDがagent
_idであるエージェントを生成し、そのプログラムをpro
gramとし、そのmainサブプログラムのIDをmain_idと
し、その実行スタックをstackとし、その知識ベースをk
bとする。 ・call (sub_program_id, line_id) プログラムカウンタ<sub_program_id, line_id>を実行
スタックに積む。 ・get_sub_program (agent_id, sub_program_id, new_s
ub_program_id) IDがagent_idであるエージェントから、IDがsub_pr
ogram_idであるサブプログラムを獲得し、そのサブプロ
グラムのIDをnew_sub_program_idとする。引数new_su
b_program_idが省略された場合は、sub_program_idをそ
のまま利用する。 ・idle プログラムスタックを1つ前に戻す。
る。
ion2>は、φが成功したときaction1を実行し、失敗した
ときaction2を実行することを表す。
ム内で利用することを許す。このときtest式φ(?x)に対
してφ(a)が成功するとき、このようなaを任意に選ん
で、そのテストを含むサブプログラム内で全ての?xをa
で置き換える。また定数selfは、その式を含むサブプロ
グラムの所有者であるエージェントを表す。
ログラムは、実行のエントリポイントとして、mainをI
Dとするサブプログラムを1つ持つ。
を1つ持つ。
ム実行状態を1つ持つ。プログラムスタックは、プログ
ラムカウンタが積まれるスタックであり、ここでプログ
ラムカウンタは、サブプログラムのIDと、そのサブプ
ログラムのtest-action列のある行(line)番号(ステー
トメントID)との対により構成される。
ログラムカウンタ<main, 1>が1つ積まれた状態であ
る。
できるエージェント。 ・プレースエージェント:移動の対象となる場所を提供
するエージェント。 ・システムエージェント:プレースにいるエージェント
に情報を提供するエージェントで、このエージェントは
移動しない。
態について、図面を参照して説明する。図1は、本発明
の実施の一形態のモバイルエージェントシステムの構成
を示すブロック図である。
は、典型的にはネットワークに接続されたコンピュータ
上に構築されるものであり、このようなモバイルエージ
ェントシステムの複数をネットワークに接続することに
よって、分散・協調処理を行うシステムが得られる。
このモバイルエージェントシステムに在中するエージェ
ントの情報を格納するエージェント情報データベース1
と、各エージェントのスレッドを制御するエージェント
スレッド制御部2と、プログラムの実行を制御するプロ
グラム制御部3と、エージェントのtest式の検証を行う
定理証明エンジン4と、エージェントのaction式を解釈
するaction解釈部5と、解釈されたaction式を実行する
action実行部6と、ネットワークに対するインターフェ
ース部7とが設けられている。
ないし複数のエージェント情報11が格納され、各エー
ジェント情報11は、いずれも、エージェントのプログ
ラムが格納されるエージェントプログラム格納部12、
エージェントが使用する知識ベースであるエージェント
知識ベース13、プログラム実行状態記憶部14の3つ
のデータベースからなる。プログラム実行状態記憶部1
4は、スタック及びプログラムカウンタを記憶する領域
である。エージェントとエージェント情報とは、1対1
で対応する。
識ベース13を更新するエージェント知識ベース更新部
61と、エージェントのプログラムを更新するエージェ
ントプログラム更新部62と、エージェント情報の送受
信を行うエージェント送受信部63とから構成されてい
る。エージェント送受信部63は、エージェント情報デ
ータベース1と交信してエージェント情報を送受信し、
またインタフェース部7とネットワークを介して他のモ
バイルエージェントシステムと交信する。
システムは、計算機システムによって実現されるもので
あり、エージェント情報データベース1は、計算機シス
テムの補助メモリや外部メモリに構築される。また、エ
ージェントスレッド制御部2、プログラム制御部3、定
理証明エンジン4、action解釈部5及びaction実行部6
は、計算機システムのCPU(中央処理装置)で実行さ
れるソフトウェアとして構成でき、その実行の際に必要
なデータは、計算機システムのRAM(ランダムアクセ
スメモリ)にロードされる。
での処理手順について、図2のフローチャートを参照し
て説明する。
エージェント情報データベース1から、処理の対象とな
るエージェントを1つ選ぶ(ステップ101)。次に、
プログラム制御部3が、選択されたエージェントのエー
ジェント情報11のプログラム実行状態にあるプログラ
ムスタックの最上部から、プログラムカウンタ(<sub_p
_id, n>)を取り出す(ステップ102)。ここでnが
サブプログラムsub_p_idの最終行かどうかを判断し(ス
テップ103)、最終行の場合はそのままステップ10
5に移行し、最終行でない場合には、ステップ104に
おいて<sub_p_id, n+1>をプログラムスタックに積んで
から、ステップ105に移行する。
が、サブプログラムsub_p_idのn番目のtest-action行
(<test: test1, action: action1>)を取り出し、これ
を定理証明エンジン4に渡す。定理証明エンジン4は、
test1を証明する(ステップ106)。証明ができたか
どうか、すなわちtest1が正しいかどうかを判断し(ス
テップ107)、証明できた場合には、ステップ108
に移行して、action解釈部5を起動し、action解釈部5
にaction1を渡す。証明できなかった場合には、ステッ
プ101の最初のエージェントスレッド制御部2の制御
に戻る。
が起動された場合、渡されたaction1の内容に従って、a
ction実行部6はそのactionを実行する。actionが上述
したaddやdeleteであれば、エージェント知識ベース更
新部61を起動し、対象とするエージェントのエージェ
ント知識ベース13を更新する。actionがget_sub_pの
場合は、エージェントプログラム更新部62を呼び出し
て、対象とするエージェントのプログラムを更新する。
actionがgoの場合、エージェント送受信部63を起動
し、インターフェース部7を通じて目的のリモートシス
テムにエージェントを送信し、その後、エージェント情
報データベース1から、該当するエージェント情報を削
除する。このときエージェントを受信したリモートシス
テムでは、そのシステムのエージェント送受信部63
が、送られてきたエージェントのエージェント情報をそ
のリモートシステムのエージェント情報データベース1
に格納する。また、送られてきたエージェントのaction
がcallの場合、そのシステムのエージェント送受信部6
3は、プログラム制御部3を呼び出して、呼ばれたサブ
プログラムをプログラムスタックに積む。
on部分の解釈・実行が行われたら、次のエージェントを
処理するために、最初のエージェントスレッド制御部2
の制御に戻る(ステップ101)。
すプログラムリストである。以下、このプログラム例を
実行した場合の具体的な処理を説明する。ここでは、2
つのコンピュータhost1,host2上に、それぞれ、上述し
たモバイルエージェントシステムが実現されているとす
る。また、コンピュータhost1には、エージェントとし
て、モバイルエージェントagent1とプレースエージェン
トplace1,place3とシステムエージェントsystem1とが
在中しているものとし、コンピュータhost2には、モバ
イルエージェントagent2とプレースエージェントplace2
とシステムエージェントsystem2とが在中しているとす
る。各エージェントのプログラムは、図3に示す通りと
し、各エージェントの知識ベースは空で、プログラムカ
ウンタは全て<main, 1>であるとする。以下、処理
(1)〜処理(9)の時間順で、プログラムの実行が進
む。
ド制御部がagent1を選んだとする。このとき、プログラ
ム制御部は、<main, 1>を取り出し、<main, 2>と書き換
えてプログラムスタックに積みなおす。そしてプログラ
ム制御部は、mainサブプログラムの1行目のtest-actio
n<test:system1|-can_plan, action: call(system1,pla
n)>を取り出し、定理証明エンジンに渡す。定理証明エ
ンジンは、test部「system1|-can_plan」すなわち、sys
tem1の知識ベースがcan_planを導出するかを判定する。
この時、system1の知識ベースは空なので導出は失敗
し、actionは実行されずに終わる。
ド制御部がまたagent1を選んだとする。このとき、プロ
グラム制御部は<main, 2>を取り出し、<main, 3>と書き
換えてプログラムスタックに積みなおす。そして、main
サブプログラムの1行目のtest-action<test:system1|-
K_system1(system2_can_plan), action:go_place2 else
idle>を取り出し、定理証明エンジンに渡す。定理証明
エンジンは、test部「system1|-K_system1 (system2_ca
n_plan)」を証明しようとするが、これも失敗する。今
回はelse付きのtestで、actionはidleなので、プログラ
ムスタックを1つ前に戻す。すなわち、<main, 3>を取
り除き、<main, 2>をスタックに積む。
ドがagent2を選んだとする。上記と同様に、<main, 1>
をhost2のプログラム制御部が取り出す。mainは1行し
かtest-actionを含まないので、プログラムスタックは
空になる。そして、agent2のmainサブプログラムの1行
目<test:, action:add (system1, can_plan_agent2_pla
n1)>が選ばれる。test部分が空なので無条件に導出は成
功し、action「add(system2, can_plan_agent2_plan
1)」が実行される。すなわちsystem2の知識ベースにcan
_plan_agent2_plan1が格納される。
スレッド制御部がsystem2を選んだとする。上述と同様
にsystem2|-can_plan_?x_?yの証明が行われる。この場
合、?xがagent2、?yがplan1の時、成功するので、syste
m1の知識ベースにsystem2_can_planを格納する。
ド制御部がagent1を選んだとする。この時、プログラム
スタックの1番上の<main, 2>を取り出し、<main, 3>を
積む。また、mainサブプログラムの2行目のtest-actio
nを試みる。今度はsystem1|-K_system1(system2_can_pl
an)が成功し、それにより、actionに従って、agent1はp
lace2に移動する。すなわち、host1のエージェント情報
データベースからagent1に対応するエージェント情報を
取り除き、それをhost2のエージェント情報データベー
スに加える。
ド制御部がagent1を選んだ時、<main, 3>をプログラム
スタックから取り出し、<main, 4>を積んで、3行目のt
est-action<test: system2|-can_plan_?x_?y, action:
get_plan(?x, ?y)>を得る。ここで、system2|-can_plan
_?x_?yは、?xがagent2、?yがplan1の時に成功するの
で、action get_plan(agent2, plan1)を実行する。すな
わち、agent2のサブプログラムplan1およびそこからcal
lされるサブプログラムを、全てagent1のプログラムに
取り込む。この例では、plan1だけが取り込まれる。
時、mainの4行目の<test:, action: call (?y)>が取り
出される。ここでtestは空なので無条件で成り立ち、?y
は、plan1なので、call(plan1)が実行される。すなわ
ち、<plan1, 1>がプログラムスタックに積まれる。
すると、agent2の知識ベースがfact1を導けば、それを
自分の知識ベースに格納する。
すると、place3に移動する。
ジェントの移動状態を図4(a)〜(c)に示す。
づくスクリプト言語を利用して、エージェントの移動の
際に実行状態を完全に保存し、また、プログラムの動的
な変更も可能にするモバイルエージェントシステムが組
み込まれた装置が得られるという効果がある。
システムの構成を示すブロック図である。
チャートである。
すプログラムリストである。
図である。
Claims (4)
- 【請求項1】 複数の独立に動作するエージェントを有
し、かつ、前記各エージェントが、ネットワークで結合
されたコンピュータ間を移動できるモバイルエージェン
トから構成されるモバイルエージェントシステムにおい
て、 前記モバイルエージェントごとにそのモバイルエージェ
ントの実行状態を格納するプログラム実行状態記憶部が
設けられていることを特徴とするモバイルエージェント
システム。 - 【請求項2】 複数の独立に動作するエージェントを有
し、かつ、前記各エージェントが、ネットワークで結合
されたコンピュータ間を移動できるモバイルエージェン
トから構成されるモバイルエージェントシステムにおい
て、 前記モバイルエージェントの構成要素であるプログラム
をサブプログラムにあらかじめ分割して格納するエージ
ェントプログラム格納部を有することを特徴とするモバ
イルエージェントシステム。 - 【請求項3】 前記モバイルエージェントの構成要素で
あるプログラムをサブプログラムにあらかじめ分割して
格納するエージェントプログラム格納部をさらに有する
請求項1に記載のモバイルエージェントシステム。 - 【請求項4】 前記プログラム実行状態記憶部に、現在
実行中のサブプログラムのIDを格納するスタックと、
現在実行中のステートメントIDを格納するプログラム
カウンタとを有する、請求項1または3に記載のモバイ
ルエージェントシステム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14772499A JP3571256B2 (ja) | 1999-05-27 | 1999-05-27 | モバイルエージェントシステム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14772499A JP3571256B2 (ja) | 1999-05-27 | 1999-05-27 | モバイルエージェントシステム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000339281A true JP2000339281A (ja) | 2000-12-08 |
| JP3571256B2 JP3571256B2 (ja) | 2004-09-29 |
Family
ID=15436751
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP14772499A Expired - Fee Related JP3571256B2 (ja) | 1999-05-27 | 1999-05-27 | モバイルエージェントシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3571256B2 (ja) |
-
1999
- 1999-05-27 JP JP14772499A patent/JP3571256B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP3571256B2 (ja) | 2004-09-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5535389A (en) | Business process objects with associated attributes such as version identifier | |
| US10360141B2 (en) | Automated application test system | |
| US5675800A (en) | Method and apparatus for remotely booting a computer system | |
| US20070226715A1 (en) | Application server system and computer product | |
| CN112090079B (zh) | 游戏任务运行方法、装置、计算机设备和存储介质 | |
| WO2003001373A1 (en) | Java rule engine framework | |
| US11321090B2 (en) | Serializing and/or deserializing programs with serializable state | |
| CN111259042B (zh) | 一种动态查询方法及系统 | |
| US8352963B2 (en) | Method and system for data preparation and communication between software applications | |
| CN113641413B (zh) | 目标模型加载更新方法及装置、可读介质和电子设备 | |
| CN111208991B (zh) | 基于工作流的程序开发方法、电子设备及存储介质 | |
| CN111381830A (zh) | 程序中的数据请求处理方法、装置和计算机设备 | |
| US11995096B2 (en) | Creation of message serializer for event streaming platform | |
| CN115840617B (zh) | 一种调试方法、系统及相关装置 | |
| Wood et al. | Triton: a domain specific language for cyber-physical systems | |
| JP7427775B2 (ja) | ストアドプロシージャの実行方法、装置、データベースシステム及び記憶媒体 | |
| US8745587B2 (en) | System and method for testing computer programs | |
| JP2000339281A (ja) | モバイルエージェントシステム | |
| CN113778564B (zh) | 一种高效执行evm智能合约的方法、设备及储存介质 | |
| CN115480771B (zh) | 用于部署算法的方法及相关设备 | |
| CN117407023A (zh) | 低代码平台应用版本自动化升级方法、装置、设备及介质 | |
| US11429358B2 (en) | Representing asynchronous state machine in intermediate code | |
| CN112363804B (zh) | 区块链jvm应用方法、设备和存储介质 | |
| CN117215661A (zh) | 一种事件处理的方法、装置以及存储介质 | |
| CN114358936A (zh) | 一种基于微服务区块链的智能合约运行方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040216 |
|
| RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20040216 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040216 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040324 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040520 |
|
| 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: 20040616 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040623 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100702 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110702 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120702 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |