[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2000066895A - Device and method for processing information and recording medium recording software for information processing - Google Patents

Device and method for processing information and recording medium recording software for information processing

Info

Publication number
JP2000066895A
JP2000066895A JP10232122A JP23212298A JP2000066895A JP 2000066895 A JP2000066895 A JP 2000066895A JP 10232122 A JP10232122 A JP 10232122A JP 23212298 A JP23212298 A JP 23212298A JP 2000066895 A JP2000066895 A JP 2000066895A
Authority
JP
Japan
Prior art keywords
agent
information
plan
node
file
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.)
Pending
Application number
JP10232122A
Other languages
Japanese (ja)
Inventor
Yasuyuki Tawara
康之 田原
Tetsuo Hasegawa
哲夫 長谷川
Akihiko Osuga
昭彦 大須賀
Shinichi Hoiden
真一 本位田
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 JP10232122A priority Critical patent/JP2000066895A/en
Publication of JP2000066895A publication Critical patent/JP2000066895A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

PROBLEM TO BE SOLVED: To prevent the harmful action of applying overload from an agent to a host. SOLUTION: A third storage part 8 stores information expressing the limit to be satisfied by a plan for the maintenance of a node. While or after the plan is generated, a discrimination part 9 discriminates whether the plan satisfies the limit or not. Concerning the plan discriminated to satisfy the limit, a plan executing part 6 executes the plan while including the movement of the agent between nodes. A fourth storage part 10 stores information (called limit satisfaction metha-knowledge) expressing how to generate the plan satisfying the limit. When it is discriminated the plan does not satisfy the limit, a correction part 11 corrects the plan based on the limit satisfaction metha-knowledge stored in the fourth storage part 10 or acquires information showing the plan satisfying the limit does not exist.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、ネットワーク上に
分散して存在する情報を処理する情報処理装置及び情報
処理方法の改良に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing apparatus and an information processing method for processing information distributed on a network.

【0002】[0002]

【従来の技術】近年、コンピュータを中心とした情報処
理システム技術においては、ダウンサイジングの進行
や、インターネットなどネットワーク環境の整備が進ん
でいる。このため、情報処理の装置や方法における主流
は、データファイルや機能ライブラリなどの構成要素が
ネットワーク上の各マシンに分散した分散システムに移
行しつつある。これに伴い、企業や研究所などのローカ
ルネットワークでも、広域ネットワークとの接続によっ
て環境のオープン化がより進展している。このように広
域ネットワークと接続されたネットワークを開放型ネッ
トワークと呼ぶ。
2. Description of the Related Art In recent years, in information processing system technology centered on computers, downsizing has progressed and network environments such as the Internet have been improved. For this reason, the mainstream of information processing apparatuses and methods is shifting to a distributed system in which components such as data files and function libraries are distributed to each machine on a network. Along with this, even in local networks such as companies and research laboratories, the openness of the environment has been further advanced by connecting to a wide area network. Such a network connected to the wide area network is called an open network.

【0003】開放型ネットワークに代表される大規模ネ
ットワークでは、しばしば、複数のマシン上に分散した
いくつかのデータファイルや機能ライブラリなどの構成
要素を組み合わせることによって、一つのソフトウェア
を構成する。このように構成されるソフトウェアを分散
システムと呼ぶ。分散配置された構成要素は、マシンす
なわちノードに関する管理上の事情や、ネットワークに
関する管理上の事情などで、別のマシンやディレクトリ
に移動されたり、名称やアクセス権などの属性が変更さ
れることが考えられる。このような変更は、次のような
問題を生ずる。
[0003] In a large-scale network represented by an open network, one piece of software is often configured by combining components such as several data files and function libraries distributed on a plurality of machines. Software configured in this manner is called a distributed system. Distributed components may be moved to another machine or directory, or their attributes, such as names or access rights, may be changed, depending on the management situation of the machine, that is, the node, or the management situation of the network. Conceivable. Such a change causes the following problems.

【0004】まず、ソフトウェアに処理を要求するとき
は、メッセージやコマンドなどの要求記述を入力し、こ
の入力の際に、あるマシン上に配置されている処理に関
わる特定の構成要素が指定される。しかし、指定された
構成要素が他のマシンに移動されると、移動先の新しい
マシンを指定するために、ソフトウェアに対する入力を
やり直すか、修正しなければならない。特に、ソフトウ
ェアの一部が、移動された構成要素にアクセスするよう
に構成されている場合は、構成要素の移動は、ソフトウ
ェアの構成そのものの変化を意味する。この場合、アク
セスする側のソフトウェアの部分を変更して、移動先の
新しいマシンを指定しなければならない。
First, when processing is requested from software, a request description such as a message or a command is input, and at the time of inputting, a specific component related to the processing arranged on a certain machine is designated. . However, when the specified component is moved to another machine, the software must be re-entered or modified to specify the new machine to move to. In particular, when a part of the software is configured to access the moved component, the movement of the component means a change in the configuration of the software itself. In this case, the part of the accessing software must be changed to specify the new machine to move to.

【0005】従来では、マシン・機能・ファイルなど
は、具体的に名指しされていたため、機能又はファイル
が移動されると、変更に合わせてソフトウェアや入力を
変更しなければならなかった。しかも、このような指定
は処理開始前に行なう必要があった。
[0005] Conventionally, machines, functions, files, and the like are specifically named, so that when functions or files are moved, software and inputs must be changed in accordance with the changes. In addition, such designation has to be performed before the processing is started.

【0006】分散システムにおいて、ユーザに対してサ
ービスを確実に提供するには、こうした変化に対して適
応する柔軟なソフトウェアを構築することが重要であ
る。特に、このような変化に対応して、処理開始後であ
っても指定を変更し、かつこの変更は極力人手を介さず
自動的に行われることが望ましい。
In a distributed system, in order to reliably provide services to users, it is important to construct flexible software that can adapt to such changes. In particular, in response to such a change, it is desirable that the designation is changed even after the processing is started, and that this change is made automatically without human intervention as much as possible.

【0007】ネットワークにおいて、このような柔軟な
ソフトウェアのアーキテクチャを実現する技術として、
近年、エージェント指向技術が注目され、数多くの試み
がなされている。エージェント指向技術は、エージェン
トを単位としてソフトウェアを構成しようとするソフト
ウェア開発技術であり、ここでいうエージェントは、ソ
フトウェア上の処理の単位で、環境の変化に自律的かつ
柔軟に対応するものである。
In a network, techniques for realizing such a flexible software architecture include:
In recent years, agent-oriented technology has attracted attention and many attempts have been made. The agent-oriented technology is a software development technology for configuring software in units of agents, and the agent here is a unit of processing on software and autonomously and flexibly responds to environmental changes.

【0008】たとえば特開平7−182174では、リ
モートプログラミングの実施方法を開示している。リモ
ートプログラミングは、分散システムにおいて、処理が
開始されたノード(ローカルマシンと呼ぶ)から、エー
ジェントが他のノード(リモートマシンと呼ぶ)に転送
されるようなプログラミングである。
For example, Japanese Patent Laid-Open Publication No. Hei 7-182174 discloses a method of performing remote programming. Remote programming is programming in a distributed system in which an agent is transferred from a node where processing is started (called a local machine) to another node (called a remote machine).

【0009】このような移動機能を持つエージェントが
活動するには、インストラクションと内部情報が必要で
ある。インストラクションは、エージェントの動作(振
る舞い)を記述したもので、内部情報は、エージェント
の動作によって操作される情報である。内部情報は、よ
り具体的には、変数や配列のほかスタック、バッファ、
キュー、フラグなど、エージェントの動作に関連する一
切の情報を含む。インストラクション及び内部情報を合
わせてエージェント情報と呼ぶ。
For an agent having such a mobile function to be active, instructions and internal information are required. The instruction describes the operation (behavior) of the agent, and the internal information is information operated by the operation of the agent. More specifically, internal information includes variables, arrays, stacks, buffers,
Contains any information related to the operation of the agent, such as queues and flags. The instruction and the internal information are collectively called agent information.

【0010】インストラクションは、ファイルのオープ
ンやクローズなど、さまざまな動作の単位ごとに記述さ
れる。リモートプログラミングでは、特殊なインストラ
クションとして、goオペレーションが用いられる。goオ
ペレーションは、エージェントをリモートマシンに転送
する処理を行なわせるもので、例えば、ある処理中に、
別のマシンにあるファイルに対するインストラクション
が含まれる場合は、そのインストラクションに先立っ
て、goオペレーションが記述され、実行される必要があ
る。
The instruction is described for each unit of various operations such as opening and closing a file. In remote programming, the go operation is used as a special instruction. The go operation allows the agent to be transferred to a remote machine. For example, during a certain process,
If an instruction for a file on another machine is included, a go operation needs to be written and executed prior to the instruction.

【0011】このようなエージェントを用いるリモート
プログラミングを実施する装置の一例について、構成を
表す機能ブロック図を図25に示す。この装置では、ネ
ットワークNに接続されたローカルマシンLとリモート
マシンRが相互に同様の構成を有し、プロセスとしてエ
ージェントを取り扱う。なお、ここでいうプロセスは、
オペレーティングシステムによって管理の対象となる処
理の単位であり、複数のプロセスを同時に管理すること
をマルチプロセスと呼ぶ。
FIG. 25 is a functional block diagram showing the configuration of an example of an apparatus for performing remote programming using such an agent. In this device, a local machine L and a remote machine R connected to a network N have the same configuration, and handle an agent as a process. The process referred to here is
It is a unit of processing that is managed by the operating system, and managing a plurality of processes simultaneously is called multi-process.

【0012】エージェント管理手段51L,51Rは、
このようなエージェントについて、資源管理、設定、終
了、スケジューリング及び転送など、エージェント自身
を対象とする処理を司る。エージェントによる処理を開
始するには、まず、エージェント情報を、ローカルマシ
ンL上のエージェント情報記憶手段31Lに格納する。
エージェント情報をエージェント情報記憶手段31Lに
格納するには、入出力手段41Lから入力したり、図示
しない外部記憶装置からロードするなどすればよい。
The agent management means 51L, 51R
For such an agent, it manages processing for the agent itself, such as resource management, setting, termination, scheduling, and transfer. To start processing by the agent, first, the agent information is stored in the agent information storage unit 31L on the local machine L.
To store the agent information in the agent information storage unit 31L, the agent information may be input from the input / output unit 41L or loaded from an external storage device (not shown).

【0013】また、入出力手段41Lからエージェント
による処理の開始が指示されると、解釈実行手段61L
が、エージェント情報記憶手段31L内のインストラク
ションを逐次解釈実行することによって処理を進め、エ
ージェント情報記憶手段31L内の内部情報を操作す
る。インストラクション中のgoオペレーションが解釈実
行されると、解釈実行手段61Lがその旨をエージェン
ト管理手段51Lに通知し、エージェント管理手段51
Lは次のようなエージェントを転送する処理を行う。
When the start of processing by the agent is instructed from the input / output means 41L, the interpretation executing means 61L
Advances the processing by sequentially interpreting and executing the instructions in the agent information storage unit 31L, and operates the internal information in the agent information storage unit 31L. When the go operation in the instruction is interpreted and executed, the interpretation executing means 61L notifies the agent management means 51L of the interpretation and the agent operation means 51L.
L performs the following process of transferring the agent.

【0014】まず、エージェント管理手段51Lは、ネ
ットワークNを通じてリモートマシンR上のエージェン
ト管理手段51Rにエージェントの受け入れ準備を要求
する。要求を受けたエージェント管理手段51Rは、資
源の割当や、エージェントとして管理するプロセスの設
定など、エージェントの受け入れ準備を行なった後、ロ
ーカルマシンL上のエージェント管理手段51Lに準備
完了を通知する。
First, the agent management means 51L requests the agent management means 51R on the remote machine R via the network N to prepare for accepting an agent. Upon receiving the request, the agent management unit 51R makes preparations for accepting the agent, such as allocating resources and setting a process to be managed as an agent, and then notifies the agent management unit 51L on the local machine L of the completion of preparation.

【0015】この通知を受けたエージェント管理手段5
1Lは、エージェント情報記憶手段31L内のインスト
ラクションと、上記goオペレーションの解釈実行時にお
けるエージェントの内部状態を読み出し、双方をリモー
トマシンRに転送する。リモートマシンR上のエージェ
ント管理手段51Rは、転送されたインストラクション
と内部状態をエージェント情報記憶手段31Rに格納し
たうえ、解釈実行手段61Rにその旨を通知し、解釈実
行を開始させる。
Agent management means 5 receiving this notification
1L reads the instructions in the agent information storage means 31L and the internal state of the agent at the time of executing the interpretation of the go operation, and transfers both to the remote machine R. The agent management unit 51R on the remote machine R stores the transferred instruction and internal state in the agent information storage unit 31R, notifies the interpretation executing unit 61R of the fact, and starts the interpretation execution.

【0016】エージェントの転送が無事に終了すると、
ローカルマシンL側のエージェント管理手段51Lはプ
ロセスを終了し、不要になったメモリやCPU時間など
資源を開放する。
When the transfer of the agent is completed successfully,
The agent management unit 51L on the local machine L ends the process and releases resources such as unnecessary memory and CPU time.

【0017】転送された側のリモートマシンRでは、エ
ージェント情報記憶手段31R内のインストラクション
と内部状態を用いて、処理が続行される。なお、続行さ
れた処理がリモートマシンR上で終了する場合もあれ
ば、エージェントがもとのローカルマシンLに再度転送
される場合もありうる。エージェントが再度転送される
と、インストラクションの実行は再度ローカルマシンL
上で行われることになる。以上のようなリモートプログ
ラミングによって、分散システム上における柔軟な処理
が実現される。
In the remote machine R on the transfer side, the processing is continued by using the instructions and the internal state in the agent information storage means 31R. The continued processing may end on the remote machine R, or the agent may be transferred to the local machine L again. When the agent is transferred again, the execution of the instruction is performed again on the local machine L.
Will be done above. Flexible processing on a distributed system is realized by the remote programming as described above.

【0018】また、このようなリモートプログラミング
において、各マシン間で共通のインストラクション及び
内部情報を用いながら、解釈実行手段やエージェント管
理手段などを各マシン固有のハードウェアやOSに合わ
せて構成すれば、構成の異なるマシン間で互換性が実現
される。このような構成により、オペレーティングシス
テムおよびハードウェアが異なるコンピュータシステム
において、インストラクションを移動し実行できるな
ど、上述のような柔軟な対応が可能となる。
In such remote programming, if the interpretation execution means and the agent management means are configured in accordance with the hardware and OS specific to each machine while using instructions and internal information common to each machine, Compatibility is realized between machines having different configurations. With such a configuration, the above-described flexible correspondence can be achieved, for example, instructions can be moved and executed in a computer system having different operating systems and hardware.

【0019】一方、ネットワーク上の複数のノードにま
たがって処理を行なうための別の従来技術として、次の
ようなものも知られている(参考文献:Oren Etzioni a
nd Daniel Weld "A Softbot-Based Interface to the I
nternet" (Communications of ACM))。この技術では、
ファイルを転送を行なうftp、遠隔ログインのための
仮想端末機能を実現するtelnetなど、通常のネッ
トワーク機能を利用して、複数のマシンにまたがった処
理を行なう。そして、動作中に収集した情報に基づき、
ソフトウェアによって自動的に各機能を試行錯誤的に利
用し、状況に応じて柔軟にプランニングを行なうことに
よって、ファイルなどの構成変化に対応した機能選択を
行う。
On the other hand, as another conventional technique for performing processing over a plurality of nodes on a network, the following is known (reference: Oren Etzioni a).
nd Daniel Weld "A Softbot-Based Interface to the I
nternet "(Communications of ACM).
The processing is performed over a plurality of machines using a normal network function such as ftp for transferring a file and telnet for realizing a virtual terminal function for remote login. And based on the information collected during the operation,
The software automatically uses each function in a trial and error manner and flexibly performs planning according to the situation, thereby selecting a function corresponding to a change in the configuration of a file or the like.

【0020】例えば、目的の機能が他のノードに移転さ
れた場合、移転前のノードでその機能にアクセスしよう
とすると失敗するので、元のマシン(ノード)において
プランニングを行ない、アクセス先を第2候補に変更し
再度アクセスする。この技術によれば、システムの各時
点での状態に対応して、柔軟な動作が可能である。この
場合、telnetやftp などの利用は互換性が予め判明して
いる範囲内で行なう。
For example, when a target function is transferred to another node, an attempt to access the function at the node before the transfer fails, so that planning is performed on the original machine (node) and the access destination is changed to the second one. Change to a candidate and access again. According to this technique, a flexible operation can be performed according to the state at each point in the system. In this case, use telnet or ftp within a range where compatibility is known in advance.

【0021】なお、上に述べたような移動機能を持つエ
ージェントは、一般にモバイルエージェントと呼ばれ、
エージェント技術としては最も実用に近いものとして、
近年特に注目されている。ただし、実用化に際しての最
大の懸案事項がセキュリティ問題である。つまり、モバ
イルエージェントは、従来の分散システムで想定されて
いるようなセキュリティの前提の多くを満足しないこと
が指摘されており(参考文献:[3] David M. Chess. Se
curity issues in mobile code systems. [10]Giovanni
Vigna, editor. Moblie Agents and Security, LNCS 1
419. SpringerVerlag, 1998., pp. 1-14.)、そのため
特有のセキュリティ・セーフティ対策が必要となる。こ
こで、セキュリティは、主に不正な目的の振る舞いから
システム、特にノードを守ることであり、セーフティ
は、主にたまたま発生するような障害に対して、システ
ムの安定運用を確保することである。また、これらセキ
ュリティ及びセーフティをノードの保全と総称すること
とする。また、これらの観点から、具体的には、次のよ
うな課題を解決しなければならない。 (1)エージェントへの攻撃 このような攻撃としては、ネットワーク上の悪意のある
第三者、および悪意のあるホストによる不正アクセス、
すなわち、不正読取り・書込みといったものが考えられ
る。 (2)悪意のあるエージェントによるホストへの攻撃 このような攻撃としては、不正アクセス、資源浪費、お
よびホストの機能を停止させてしまう使用不能攻撃(Den
ial of Service,DoS) などが考えられる。 (3)悪意のあるエージェントによるネットワーク全体
への攻撃 このような攻撃としては、他者の認証情報を利用するな
りすましや、エージェントの複製を繰り返し送りつける
リプレイなどが考えられる。
An agent having the above-described movement function is generally called a mobile agent.
As the most practical agent technology,
In recent years, it has received special attention. However, the biggest concern in practical use is the security problem. In other words, it has been pointed out that mobile agents do not satisfy many of the security assumptions assumed in conventional distributed systems (reference: [3] David M. Chess. Se
curity issues in mobile code systems. [10] Giovanni
Vigna, editor. Moblie Agents and Security, LNCS 1
419. SpringerVerlag, 1998., pp. 1-14.) Therefore, specific security and safety measures are required. Here, security is mainly to protect the system, particularly nodes, from unfair behavior, and safety is to ensure stable operation of the system against a failure that occurs mainly by accident. In addition, these security and safety are collectively referred to as node security. Further, from these viewpoints, specifically, the following problems must be solved. (1) Attacks on agents Such attacks include unauthorized access by malicious third parties and malicious hosts on the network,
That is, illegal reading / writing can be considered. (2) Attacks on hosts by malicious agents Such attacks include unauthorized access, waste of resources, and unusable attacks that stop host functions (Den
ial of Service, DoS). (3) Attacks on the entire network by a malicious agent Such attacks include spoofing using authentication information of another person, replay of repeatedly sending a duplicate of the agent, and the like.

【0022】以上のような、モバイルエージェントのセ
キュリティ・セーフティの課題に対し、現在、図26に
示すような対応策が提案されている。このうち、ブラッ
クボックス手法は、エージェント内部の情報を外部に公
開しない特有の複雑な形式で構成することでブラックボ
ックス化する手法である(参考文献:[8] Tomas Sander
and Christian F. Tschudin. Protecting mobile agen
ts against malicioushosts. ([10] Giovanni Vigna,
editor. Moblie Agents and Security, LNCS1419. Spri
nger Verlag, 1998., pp. 44-60.)、[4] Fritz Hohl.
Time limitedblackbox security; protecting mobile a
gents from malicious hosts. (同[10] pp. 92-11
3.))。
[0022] To cope with the problem of security and safety of the mobile agent as described above, countermeasures as shown in FIG. 26 are currently proposed. Among them, the black box method is a method of forming a black box by composing information inside the agent in a complicated format peculiar to the outside (Ref: [8] Tomas Sander
and Christian F. Tschudin. Protecting mobile agen
ts against malicioushosts. ([10] Giovanni Vigna,
editor. Moblie Agents and Security, LNCS1419. Spri
nger Verlag, 1998., pp. 44-60.), [4] Fritz Hohl.
Time limitedblackbox security; protecting mobile a
gents from malicious hosts. (ibid. [10] pp. 92-11
3.)).

【0023】また、ダミーデータ混在は、エージェント
内部の情報に無意味なダミーを混在させることで、真に
意味のある情報がどの部分であるかを外部から知りえな
いようにする手法である(参考文献:[9] Giovanni Vig
na. Cryptographic traces for mobile agents. (同
[10] pp. 137-153.))。
Also, the dummy data mixing is a method in which meaningless information is mixed with information inside the agent so that it is not possible to externally know which part of the information that is truly meaningful. References: [9] Giovanni Vig
na. Cryptographic traces for mobile agents.
[10] pp. 137-153.)).

【0024】また、エージェント認証は、正しい素性の
エージェントに予め決められた認証を与えることで、不
正なエージェントの活動を阻止する手法である(参考文
献:[1] Shimshon Berkovits, Joshua D. Guttman, and
Vipin Swarup.Authentication for mobile agents.
(同[10] pp. 114-136. )。また、アクセス権限制御
は、ホストへのアクセス権限を正しいエージェントにだ
け与える手法である(参考文献:[7] John K. Ousterho
ut, Jacob Y. Levy, and Brent B. Welch. The Safe-Tc
l security model. (同[10] pp. 217-234. )。また、
セーフティ検証は、エージェントやその行動の安全性を
検証する手法である(参考文献:[5] GeorgeC. Necula
and Peter Lee. Safe, untrusted agents using proof-
carrying code. (同[10] pp. 61-91.)。
[0024] Agent authentication is a method of preventing the activity of an unauthorized agent by giving a predetermined authentication to an agent of a correct feature (references: [1] Shimshon Berkovits, Joshua D. Guttman, and
Vipin Swarup.Authentication for mobile agents.
(Id. [10] pp. 114-136.). In addition, access authority control is a method of giving access authority to a host only to the correct agent (Reference: [7] John K. Ousterho
ut, Jacob Y. Levy, and Brent B. Welch. The Safe-Tc
l security model. (Id. [10] pp. 217-234.) Also,
Safety verification is a method for verifying the safety of agents and their actions (Ref: [5] George C. Necula
and Peter Lee. Safe, untrusted agents using proof-
carrying code. (ibid. [10] pp. 61-91.).

【0025】[0025]

【発明が解決しようとする課題】しかしながら、上記の
ような従来技術には次のような問題点が存在していた。
まず、リモートプログラミングの実施方法(特開平7−
182174)では、エージェントの動作系列をインス
トラクションとして全て利用者が記述しなければならな
かったため、プログラミング作業が煩雑である上、エー
ジェントの柔軟性に限界があった。また、goオペレーシ
ョンによるエージェントの移動先や、利用すべき構成要
素が存在するマシンのノード名(ネットワークにおける
識別子)のような、ソフトウェアの構成要素の変化に対
応するためには、このような変化を捕捉する必要がある
が、従来はこのような変化に対応する手段は備えられて
いなかった。さらに、構成要素の変化に対応するには、
変化に応じてインストラクションを変更する必要がある
が、従来は、アクセス先のマシン名が具体的に名指しさ
れていたため、アクセス先を変更しなければ目的を達成
できない場合においても、その場でインストラクション
を変更することは不可能であった。このため、構成要素
の変化に柔軟に対応する技術が求められていた。特に、
開放型ネットワークのような大規模ネットワークになる
ほど変化が頻繁になるため、変化への対応が強く求めら
れていた。
However, the prior art as described above has the following problems.
First, a remote programming method (Japanese Patent Laid-Open No.
In 182174), since the user has to describe all the operation sequences of the agent as instructions, the programming work is complicated and the flexibility of the agent is limited. Also, in order to respond to changes in software components such as the destination of the agent by the go operation and the node name (identifier in the network) of the machine on which the component to be used exists, such a change is required. Although they need to be captured, no means has been provided for responding to such changes. In addition, to respond to changes in components,
Although it is necessary to change the instruction according to the change, conventionally, the machine name of the access destination is specifically specified, so even if the purpose can not be achieved without changing the access destination, the instruction can be changed on the spot. It was impossible to change. For this reason, a technology that flexibly responds to changes in the components has been required. In particular,
Since the change is more frequent in a large-scale network such as an open network, it has been strongly required to respond to the change.

【0026】また、Etzioniらの方法では、処理
中に、ローカルマシンとリモートマシンとの間で相互に
アクセスを続け、継続して情報をやり取りする必要があ
る。このため、処理の途中で回線障害が生じ、アクセス
のルートが切断されると正常な処理の続行ができない、
という問題があった。また、遠隔ノードにおける情報の
内容をきめこまかく参照して処理内容を変えたり、遠隔
ノードの情報へのアクセスを何度か実施する必要がある
場合、また、処理に何らかのリアルタイム性が要求され
る場合などは、リモートマシン上のプロセスとして情報
処理を行ったほうが効率的な場合もある。また、このよ
うな情報処理を実現する場合、エージェントに悪意が無
くとも、エージェントが結果的にノードすなわちホスト
に過負荷を与えるといった有害な挙動を防止することが
望ましい。
In the method of Etzioni et al., The local machine and the remote machine need to keep accessing each other during the processing and exchange information continuously. For this reason, if a line failure occurs during the processing and the access route is disconnected, normal processing cannot be continued.
There was a problem. In addition, when it is necessary to change the processing content by carefully referring to the content of information at the remote node, to access the information of the remote node several times, or when some real-time processing is required In some cases, it is more efficient to perform information processing as a process on a remote machine. Further, when implementing such information processing, it is desirable to prevent harmful behavior such as the agent overloading the node, that is, the host as a result, even if the agent is not malicious.

【0027】本発明は、上記のような従来技術の問題点
を解決するために提案されたもので、その目的は、エー
ジェントがプランに基づいて動作したりノード間で移動
することで環境変化に柔軟に対応するとともに、予め決
めた制約にプランを合致させることで、エージェントが
ホストに過負荷を与えるといった有害な挙動を防止する
ことである。また、本発明の他の目的は、制約を満たさ
なかったプランを、制約に合うように修正することで、
エージェントの活動続行も確保することである。
The present invention has been proposed in order to solve the above-mentioned problems of the prior art. The purpose of the present invention is to allow an agent to operate based on a plan or to move between nodes so as to avoid environmental changes. This is to prevent harmful behavior such as an agent overloading a host by flexibly responding and matching a plan with a predetermined constraint. Another object of the present invention is to modify a plan that does not satisfy the constraint so as to meet the constraint,
It is also to ensure that the agent continues to work.

【0028】また、本発明の他の目的は、ファイルをノ
ードに書き込む処理において、書き込みの許容値を守り
ながら重要なファイルの書き込みを確保することであ
る。また、本発明の他の目的は、優先順位の低いファイ
ルを削除することで、優先順位の高い新たなファイルを
ノードに書き込める可能性を向上させることである。ま
た、第3実施形態の目的は、ファイルごとの優先順位を
どのように計算するか予め指定することで、柔軟な処理
を容易にしたものである。
Another object of the present invention is to secure writing of an important file while maintaining a write allowance in a process of writing a file to a node. Another object of the present invention is to improve the possibility of writing a new file with a high priority to a node by deleting a file with a low priority. Further, an object of the third embodiment is to facilitate the flexible processing by designating in advance how to calculate the priority for each file.

【0029】また、本発明の他の目的は、ノードを、情
報処理の目的やエージェントの種類に対応する複数のフ
ィールドに分けることでプラン作成を効率化することで
ある。また、本発明の他の目的は、プランをどのように
修正するかの情報をエージェントがノード間移動のとき
も持ち歩くことで、エージェントに適した修正の手法を
適用することである。また、本発明の他の目的は、移動
命令に前提となった事前条件を添付しておくことで、移
動失敗についての原因特定と対応を容易にしたものであ
る。
Further, another object of the present invention is to divide a node into a plurality of fields corresponding to the purpose of information processing and the type of agent so as to make plan creation more efficient. Another object of the present invention is to apply a modification method suitable for an agent by carrying information on how to modify a plan even when the agent moves between nodes. Further, another object of the present invention is to attach a precondition presupposed to a movement command, thereby facilitating identification of a cause of a movement failure and coping with the failure.

【0030】[0030]

【課題を解決するための手段】上記の目的を達成するた
め、請求項1の発明は、ソフトウェア上の実行主体であ
るエージェントがネットワークに接続されたノード上で
動作することによって情報処理を行う情報処理装置にお
いて、前記ノードに配置された構成要素へのアクセスに
用いるための構成要素の状態を表現する第1の情報を記
憶するための第1の記憶手段と、前記実行主体の挙動を
定義する第2の情報を記憶するための第2の記憶手段
と、前記第1及び第2の情報に基づいて、与えられた目
的を達成するためにエージェントが実行すべきプランを
作成する手段と、ノードの保全のために前記プランが満
たさなければならない制約を表す第3の情報を記憶する
ための第3の記憶手段と、プランが前記制約を満たすか
どうか判定する手段と、前記制約を満たすと判定された
プランについて、プランの実行及びエージェントのノー
ド間における移動を実現するための手段と、を備え、移
動先のノードにおいても、プランの作成及び判定を行う
ように構成されたことを特徴とする。請求項6の発明
は、請求項1の発明を方法という見方からとらえたもの
で、ソフトウェア上の実行主体であるエージェントがネ
ットワークに接続されたノード上で動作することによっ
て情報処理を行う情報処理方法において、前記ノードに
配置された構成要素へのアクセスに用いるための構成要
素の状態を表現する第1の情報を記憶するためのステッ
プと、前記実行主体の挙動を定義する第2の情報を記憶
するためのステップと、前記第1及び第2の情報に基づ
いて、与えられた目的を達成するためにエージェントが
実行すべきプランを作成するステップと、ノードの保全
のために前記プランが満たさなければならない制約を表
す第3の情報を記憶するためのステップと、プランが前
記制約を満たすかどうか判定するステップと、前記制約
を満たすと判定されたプランについて、プランの実行及
びエージェントのノード間における移動を実現するため
のステップと、を含み、移動先のノードにおいても、プ
ランの作成及び判定を行うことを特徴とする。請求項1
1の発明は、請求項1,6の発明を、コンピュータのソ
フトウェアを記録した記録媒体という見方からとらえた
もので、コンピュータを使って、ソフトウェア上の実行
主体であるエージェントがネットワークに接続されたノ
ード上で動作することによって情報処理を行うための情
報処理用ソフトウェアを記録した記録媒体において、そ
のソフトウェアは前記コンピュータに、前記ノードに配
置された構成要素へのアクセスに用いるための構成要素
の状態を表現する第1の情報を記憶させ、前記実行主体
の挙動を定義する第2の情報を記憶させ、前記第1及び
第2の情報に基づいて、与えられた目的を達成するため
にエージェントが実行すべきプランを作成させ、ノード
の保全のために前記プランが満たさなければならない制
約を表す第3の情報を記憶させ、プランが前記制約を満
たすかどうか判定させ、前記制約を満たすと判定された
プランについて、プランの実行及びエージェントのノー
ド間における移動を実現させ、移動先のノードにおいて
も、プランの作成及び判定を行わせることを特徴とす
る。請求項1,6,11の発明では、ファイルなどの各
構成要素がネットワーク上のどのノードにあるかといっ
た構成は第1の情報として格納しておき、エージェント
はこの第1の情報に基づいて生成されるプランにしたが
って、ノード間での移動や移動先での再プランニングな
どを含む各種処理を行う。このため、エージェントの動
作系列をユーザが記述する必要がなく、また、ノード間
で情報のやり取りを続ける必要もないためノード間の接
続切断の影響も受けにくい。さらに、ノード間でのファ
イル移動といった構成の変更についても、それにしたが
って第1の情報を更新することでエージェントの挙動に
反映でき、予期せぬ構成や状況の変化にも対応が可能と
なる。特に、エージェントが他のノードに移動してプラ
ンを生成・実行する際、ノード保全のための制約をプラ
ンが満たすと判定された場合だけプランが実行されるの
で、システム資源の浪費といった有害な挙動が事前に防
止され、ノードやシステム全体のセキュリティ・セーフ
ティが保証される。なお、プランが制約を満足しない場
合は、プランを生成し直すことでプランを修正する他、
プラン生成を中止したり、他のノードに移動し、移動先
のノードに格納されている情報を使ってプラン生成をや
り直すなどの対応が考えられる。
According to one aspect of the present invention, there is provided an information processing system in which an agent which is an execution entity of software operates on a node connected to a network to perform information processing. In the processing device, first storage means for storing first information representing a state of a component used for accessing a component arranged in the node, and a behavior of the execution subject are defined. Second storage means for storing second information; means for creating a plan to be executed by an agent based on the first and second information to achieve a given purpose; Storage means for storing third information representing constraints that the plan must satisfy for maintenance of the plan, and means for determining whether the plan satisfies the constraints Means for executing the plan and moving the agent between nodes with respect to the plan determined to satisfy the constraint, wherein the plan is created and determined even at the destination node. It is characterized by having been done. The invention according to claim 6 is an information processing method in which the invention according to claim 1 is viewed from the viewpoint of a method, in which an agent, which is an execution entity on software, operates on a node connected to a network. A step of storing first information representing a state of a component used for accessing a component arranged in the node, and storing second information defining behavior of the execution subject. Creating a plan to be executed by the agent to achieve a given purpose based on the first and second information; and Storing third information representing a constraint that must be satisfied; determining whether a plan satisfies the constraint; For plus and the determined plan, comprises the steps for realizing the movement between the node is executed and the agent plans, even in the destination node, and performs the creation and decision plan. Claim 1
According to a first aspect of the present invention, the inventions of the first and sixth aspects are viewed from the viewpoint of a recording medium on which software of a computer is recorded. In a recording medium on which information processing software for performing information processing by operating on the above is recorded, the software informs the computer of a state of a component used for accessing a component arranged in the node. The first information to be expressed is stored, the second information defining the behavior of the execution subject is stored, and an agent is executed based on the first and second information to achieve a given purpose. Third information representing the constraints that the plan must satisfy for node preservation. Is stored, and it is determined whether or not the plan satisfies the constraint. For the plan determined to satisfy the constraint, execution of the plan and movement of the agent between the nodes are realized. And a determination is made. According to the first, sixth, and eleventh aspects of the present invention, the configuration such as which node on the network contains each component such as a file is stored as first information, and the agent generates the configuration based on the first information. According to the plan, various processes including movement between nodes and re-planning at the destination are performed. Therefore, there is no need for the user to describe the operation sequence of the agent, and there is no need to continue exchanging information between nodes. In addition, a change in the configuration such as a file transfer between nodes can be reflected in the behavior of the agent by updating the first information accordingly, and it is possible to cope with an unexpected change in the configuration or situation. In particular, when an agent moves to another node to generate and execute a plan, the plan is executed only when it is determined that the plan satisfies the constraints for node integrity, so harmful behavior such as waste of system resources Is prevented in advance, and the security and safety of the node and the entire system are guaranteed. If the plan does not satisfy the constraints, modify the plan by regenerating the plan,
It may be possible to cancel the plan generation, move to another node, and redo the plan generation using the information stored in the destination node.

【0031】請求項2の発明は、請求項1記載の情報処
理装置において、前記制約を満足するプランをどのよう
に生成するかを表す第4の情報を記憶するための第4の
記憶手段と、プランが前記制約を満たさないと判定され
たときに、前記第4の情報に基づいてプランを修正する
ための手段と、を備えたことを特徴とする。請求項7の
発明は、請求項2の発明を方法という見方からとらえた
もので、請求項6記載の情報処理方法において、前記制
約を満足するプランをどのように生成するかを表す第4
の情報を記憶するためのステップと、プランが前記制約
を満たさないと判定されたときに、前記第4の情報に基
づいてプランを修正するためのステップと、を含むこと
を特徴とする。請求項12の発明は、請求項2,7の発
明を、コンピュータのソフトウェアを記録した記録媒体
という見方からとらえたもので、請求項11記載の情報
処理用ソフトウェアを記録した記録媒体において、前記
ソフトウェアは前記コンピュータに、前記制約を満足す
るプランをどのように生成するかを表す第4の情報を記
憶させ、プランが前記制約を満たさないと判定されたと
きに、前記第4の情報に基づいてプランを修正させるこ
とを特徴とする。請求項2,7,12の発明では、制約
を満たさなかったプランが再プランニングなどで修正さ
れるので、セキュリティ・セーフティが保証されるだけ
でなくエージェントの活動続行も確保される。
According to a second aspect of the present invention, in the information processing apparatus according to the first aspect, a fourth storage means for storing fourth information indicating how to generate a plan satisfying the constraint. Means for correcting the plan based on the fourth information when it is determined that the plan does not satisfy the constraint. According to a seventh aspect of the present invention, the second aspect of the present invention is viewed from the viewpoint of a method, and in the information processing method according to the sixth aspect, a fourth method representing how to generate a plan satisfying the constraint.
And a step of correcting the plan based on the fourth information when it is determined that the plan does not satisfy the constraint. According to a twelfth aspect of the present invention, the inventions of the second and seventh aspects are viewed from the viewpoint of a recording medium on which computer software is recorded. Causes the computer to store fourth information indicating how to generate a plan that satisfies the constraint, and when it is determined that the plan does not satisfy the constraint, based on the fourth information, It is characterized in that the plan is modified. According to the second, seventh and twelfth aspects of the present invention, the plan that does not satisfy the restrictions is corrected by re-planning or the like, so that not only security and safety is ensured but also continuation of the activity of the agent is ensured.

【0032】請求項3の発明は、請求項2記載の情報処
理装置において、少なくとも1つの前記ノードが、エー
ジェントの活動領域である複数のフィールドを備え、前
記第1から第4の情報のうち少なくとも1つがフィール
ドごとに記憶されたことを特徴とする。請求項3の発明
では、エージェントは、情報処理の目的やエージェント
の種類に対応するフィールドに移動し、プラン作成では
そのフィールドの情報のみが用いられるので、必要な探
索処理の量が減り、プラン作成が効率化される。特に、
請求項3の発明では、制約やプランの修正にかかわる第
3の情報や第4の情報をフィールドごとに設定できるの
で、各フィールドに適したセキュリティ・セーフティが
確保される。
According to a third aspect of the present invention, in the information processing apparatus according to the second aspect, at least one of the nodes includes a plurality of fields that are active areas of an agent, and at least one of the first to fourth information items. One is stored for each field. According to the third aspect of the present invention, the agent moves to the field corresponding to the purpose of the information processing and the type of the agent, and only the information of the field is used in the plan creation. Is made more efficient. In particular,
According to the third aspect of the present invention, since the third information and the fourth information relating to the modification of the constraint and the plan can be set for each field, security safety suitable for each field is ensured.

【0033】請求項4の発明は、請求項2又は3記載の
情報処理装置において、エージェントが、固有の前記第
4の情報をノード間で移動するときも運搬することを特
徴とする。請求項4の発明では、個々のエージェントが
固有の第4の情報をノード間移動のときも持ち歩き、移
動先のノードでもこの第4の情報を用いてプランの修正
を行うので、個々のエージェントの目的や状態に応じて
最適なプラン修正の手法を適用することが可能になる。
According to a fourth aspect of the present invention, in the information processing apparatus according to the second or third aspect, the agent carries the unique fourth information even when moving between nodes. According to the fourth aspect of the present invention, each agent carries the unique fourth information even when moving between nodes, and the destination node also uses this fourth information to modify the plan. It is possible to apply an optimal plan modification method according to the purpose and state.

【0034】請求項5の発明は、請求項1から4のいず
れか1つに記載の情報処理装置において、前記プランを
作成する手段は、プランの一部としてエージェントをノ
ード間で移動させる移動命令又はその他の命令を作成す
る際に、当該命令の前提となる事前条件を当該移動命令
又は当該その他の命令に添付するように構成されたこと
を特徴とする。請求項5の発明では、移動命令に事前条
件が根拠として添付される。そして、当該移動命令に基
づく移動が失敗する場合は、命令が前提とした事前条件
が成立していなかった可能性がある。この事前条件は、
移動命令に添付されているので、移動命令を参照すれば
容易に判明する。このため、移動失敗の原因が特定さ
れ、失敗への対応が容易になる。
According to a fifth aspect of the present invention, in the information processing apparatus according to any one of the first to fourth aspects, the means for creating the plan includes a move instruction for moving an agent between nodes as part of the plan. Alternatively, it is characterized in that, when creating another command, a precondition as a premise of the command is attached to the movement command or the other command. According to the fifth aspect of the present invention, the precondition is attached to the movement command as a basis. If the movement based on the movement command fails, the preconditions premised on the command may not have been satisfied. This precondition is
Since it is attached to the movement instruction, it can be easily found by referring to the movement instruction. For this reason, the cause of the movement failure is specified, and handling of the failure becomes easy.

【0035】請求項8の発明は、1又は2以上のファイ
ルをノードに書き込むための請求項7記載の情報処理方
法において、どのファイルをノードに書き込むべきかを
表す情報と、個々のファイルのサイズを表す情報と、フ
ァイル間の優先順位を表す情報と、を使い、前記第3の
情報は、ノードに書き込める情報量の許容値にかかわる
制約を表し、前記第4の情報は、優先順位の低いファイ
ルを書き込み対象から除外することで前記プランを修正
することを表すことを特徴とする。請求項8の発明で
は、ノードにファイルを書き込むプランについて、書き
込み後の情報量が許容値を超えないかが判定され、超え
る場合は優先順位の低いファイルの書き込みを除くこと
でプランが修正される。このため、広告文書の掲示など
において、許容量を越えたファイルがノードに書き込ま
れるといった問題を避けながら、重要なファイルの書き
込みを確保することができる。
According to an eighth aspect of the present invention, in the information processing method according to the seventh aspect of the present invention for writing one or more files to a node, information indicating which file should be written to the node, and the size of each file And the information indicating the priority between the files, the third information indicates the restriction on the allowable value of the amount of information that can be written to the node, and the fourth information indicates the lower priority. The plan is modified by excluding the file from the writing target. According to the eighth aspect of the present invention, it is determined whether or not the amount of information after writing does not exceed an allowable value for a plan for writing a file to a node. For this reason, in posting an advertisement document, it is possible to secure writing of an important file while avoiding a problem that a file exceeding an allowable amount is written to a node.

【0036】請求項9の発明は、請求項8記載の情報処
理方法において、前記第4の情報は、前記プランの修正
において、既にノードに書き込まれているファイルのう
ち前記優先順位の低いものを削除することを表すことを
特徴とする。請求項9の発明では、プランで書き込もう
とするファイルがノードの許容値に収まらないとき、既
にノードに書き込まれているファイルのうち優先順位の
低いものの削除がプランに加えられるので、優先順位の
高い新たなファイルをノードに書き込める可能性が向上
する。
According to a ninth aspect of the present invention, in the information processing method according to the eighth aspect, the fourth information includes, in the modification of the plan, a file having the lower priority among the files already written in the node. It is characterized in that it represents deletion. According to the ninth aspect of the present invention, when a file to be written in the plan does not fall within the allowable value of the node, a file having a low priority among the files already written in the node is deleted from the plan, so that a file with a high priority is deleted. The possibility of writing new files to the node is improved.

【0037】請求項10の発明は、請求項8又は9記載
の情報処理方法において、前記ファイルごとの優先順位
をどのように計算するかを表す情報を使うことを特徴と
する。請求項10の発明では、個々のファイルの重要性
やファイルとノードとの関係の深さといった情報に基づ
いて、ファイルごとの優先順位をどのように計算するか
を予め指定できるので、柔軟な処理が容易になる。
According to a tenth aspect of the present invention, in the information processing method according to the eighth or ninth aspect, information indicating how to calculate the priority order for each file is used. According to the tenth aspect, it is possible to specify in advance how to calculate the priority of each file based on information such as the importance of each file and the depth of the relationship between the file and the node. Becomes easier.

【0038】[0038]

【発明の実施の形態】以下、図面を参照しながら本発明
の実施の形態(以下「実施形態」という)について説明
する。なお、以下の各実施形態は、複数のノードを含む
ネットワークによる分散環境を前提とする。ここで、
「ネットワーク」は、計算機と計算機を接続するもの一
般を意味し、具体的には、インターネット、電話回線、
等である。「ノード」は、エージェントの移動の単位で
ある。基本的には、一台のホストすなわち一台の計算機
上に1つのノードを想定するが、複数のノードが存在し
ていてもよい。「分散環境」は、ネットワークで接続さ
れたコンピュータが複数存在し、それぞれのコンピュー
タが持つ情報が異なっている環境である。
Embodiments of the present invention (hereinafter referred to as "embodiments") will be described below with reference to the drawings. Note that the following embodiments are based on a distributed environment using a network including a plurality of nodes. here,
"Network" means a general computer-to-computer connection, specifically, the Internet, telephone lines,
And so on. “Node” is a unit of movement of an agent. Basically, one node is assumed on one host, that is, one computer, but a plurality of nodes may exist. The “distributed environment” is an environment in which there are a plurality of computers connected via a network, and the information held by each computer is different.

【0039】また、下記の各実施形態は、コンピュータ
上においてプログラムによってCPUを制御することに
よって実現され、この場合の具体的な実現態様は種々考
えられる。このため、以下の説明では、本装置の各機能
に対応する「〜部」などの仮想的回路ブロックとして本
装置を説明する。なお、CPUは、プログラムで指定さ
れたとおりに、コンピュータの各種ハードウェア資源を
利用しながら、前記各仮想的回路ブロックの作用を実現
する。
Each of the following embodiments is realized by controlling a CPU by a program on a computer. In this case, various modes of realization are conceivable. Therefore, in the following description, the present device will be described as a virtual circuit block such as “「 unit ”corresponding to each function of the present device. The CPU realizes the operation of each virtual circuit block while using various hardware resources of the computer as specified by the program.

【0040】ハードウェア資源の典型例として、CPU
には、バス及び入出力制御回路を介して、RAMなどの
記憶素子からなるメモリ、ハードディスクドライブなど
の補助記憶装置、入力装置としてマウスやキーボード、
出力装置として表示装置やプリンタを接続することが考
えられる。また、コンピュータは、ネットワーク接続機
器を介してネットワークに接続される。但し、これらハ
ードウェア資源は例示に過ぎず、情報の記憶・入力・出
力などの目的を達成できる他の各種装置を用いることも
できる。
As a typical example of hardware resources, a CPU
Through a bus and an input / output control circuit, a memory including a storage element such as a RAM, an auxiliary storage device such as a hard disk drive, a mouse or a keyboard as an input device,
It is conceivable to connect a display device or a printer as an output device. The computer is connected to a network via a network connection device. However, these hardware resources are merely examples, and other various devices that can achieve the purpose of storing, inputting, and outputting information can be used.

【0041】〔1.第1実施形態〕まず、第1実施形態
の目的は、ソフトウェアの構成要素の変化に柔軟に対応
するとともに、システムのセキュリティ・セーフティを
保証し、回線障害に対する耐障害性にも優れた情報処理
装置を提供することである。また、第1実施形態の他の
目的は、柔軟な運用が可能な情報処理装置及び情報処理
方法を提供することである。また、本実施形態の他の目
的は、処理の効率に優れた情報処理装置及び情報処理方
法を提供することである。
[1. First Embodiment] First, an object of a first embodiment is to provide an information processing apparatus that flexibly responds to changes in software components, assures system security and safety, and has excellent fault tolerance against line failure. It is to provide. Another object of the first embodiment is to provide an information processing apparatus and an information processing method that can be operated flexibly. Another object of the present embodiment is to provide an information processing apparatus and an information processing method with excellent processing efficiency.

【0042】また、第1実施形態の他の目的は、予め決
めた制約にプランを合致させることで、エージェントが
ホストに過負荷を与えるといった有害な挙動を防止する
ことである。すなわち、第1実施形態では、広域開放型
ネットワーク環境を利用するアプリケーションプログラ
ムの、開発基盤とすることを目的とした、知的ネットワ
ークエージェントであるPlangent(参考文献:[6] Akih
iko Ohsuga, Yasuo Nagai, Yutaka Irie, Masanori Hat
tori, and Shinichi Honiden. Plangent: Anapproach
to making mobile agents intelligent. IEEE Internet
Computing,,Vol.1, No. 4, pp. 50-57, July-August 1
997.)を前提として、そのセキュリティ・セーフティ機
能について詳述する。特に、従来不十分であった、自律
的エージェントによる、ホストに対して有害な挙動に対
するセキュリティ・セーフティへの対応が、Plangentに
より可能となることを示す。
Another object of the first embodiment is to prevent a harmful behavior such as an agent overloading a host by matching a plan with a predetermined constraint. That is, in the first embodiment, an intelligent network agent Plangent (reference: [6] Akih) is intended to be a development base for application programs using a wide open network environment.
iko Ohsuga, Yasuo Nagai, Yutaka Irie, Masanori Hat
tori, and Shinichi Honiden.Plangent: Anapproach
to making mobile agents intelligent.IEEE Internet
Computing ,, Vol.1, No. 4, pp. 50-57, July-August 1
997.), its security and safety functions will be described in detail. In particular, we show that Plangent can respond to security safety against behaviors that are harmful to hosts by autonomous agents, which was insufficient until now.

【0043】すなわち、インターネットのような広域開
放型ネットワーク環境が発展するのに伴い、変化が激し
く、多種多様な要求が与えられるような分散システムへ
の需要がますます高まりつつある。そのようなシステム
構築のための基盤技術として、エージェント(参考文
献:[2] Jeffrey Bradshaw. Software Agents. AAAI Pr
ess/The MIT Press,1997. )が期待されている。このエ
ージェントとは、自律性・移動性・知性・協調性・即応
性といった特徴により、状況の変化や多種多様な要求に
対応するソフトウェアである。Plangentは、このような
要求に答えるために開発された、知的ネットワークエー
ジェントシステムである。
That is, with the development of a wide-area open network environment such as the Internet, the demand for a distributed system that changes rapidly and is given a variety of demands is increasing. Agents (see [2] Jeffrey Bradshaw. Software Agents. AAAI Pr.
ess / The MIT Press, 1997.). The agent is software that responds to changes in situations and various requests due to features such as autonomy, mobility, intelligence, coordination, and responsiveness. Plangent is an intelligent network agent system developed to answer such demands.

【0044】すなわち、Plangentのエージェントは、プ
ランニング機能、プラン実行機能、再プランニング機
能、およびネットワーク移動機能を持つ。ここで、プラ
ンニングとは、ユーザの要求を達成するための行動計画
を立案する機能であり、プラン実行とはこのように立案
した行動計画を実行する機能、そして再プランニング機
能とはプラン実行失敗時にプランを生成し直す機能であ
る。Plangentのエージェントは、これらの機能により、
状況変化に柔軟に対応できるという意味で、エージェン
トの自律性を実現している。また、移動機能とはネット
ワーク上の必要な場所へ移って作業を継続する機能であ
る。
That is, the Plangent agent has a planning function, a plan execution function, a replanning function, and a network movement function. Here, the planning is a function for drafting an action plan for achieving the user's request, the plan execution is a function for executing the action plan thus formulated, and the re-planning function is a function for when the plan execution fails. This is the function to regenerate the plan. Plangent agents use these features to:
It realizes agent autonomy in the sense that it can respond flexibly to changes in the situation. The move function is a function of moving to a necessary place on the network and continuing work.

【0045】一方、開放型ネットワーク環境におけるモ
バイルエージェントを、さらに実用的なものにするため
には、そのようなネットワーク上で頻繁に発生する、予
期せぬ状況変化に柔軟に対応するような、エージェント
の自律性も重要となる。しかし、そのような自律的エー
ジェントがネットワーク上の別のホスト上で動作する場
合、エージェントは、開発者や発信者には予想できない
ような動作を自律的に行う場合が考えられ、その結果、
悪意のない、認証が確実に行われたエージェントであっ
ても、次のような有害な挙動をとることがありうる。 (1)動作ホストに対して、従来技術で説明した資源浪
費や使用不能攻撃を仕掛けたのと同じような挙動。 (2)致命的エラーとなるような動作の実行や、エージ
ェント動作中にホストが停止するなど、途中で動作不能
になるような挙動。
On the other hand, in order to make a mobile agent in an open network environment more practical, an agent that can flexibly respond to unexpected situation changes that frequently occur on such a network. Autonomy is also important. However, if such an autonomous agent runs on another host on the network, the agent may autonomously behave in ways that developers and callers cannot predict.
Even a maliciously authenticated agent can take the following harmful behavior. (1) Behavior similar to that of launching a resource waste or unusable attack described in the related art on an operation host. (2) Behavior such as execution of an operation that causes a fatal error, or an inability to operate halfway, such as the host being stopped during operation of the agent.

【0046】したがって自律的エージェントにおいて
は、従来の枠組みでは十分なセキュリティを確保するこ
とができない。そのため、これらのような有害な挙動を
起こさないことの保証をも含めた、総合的なセキュリテ
ィ・セーフティ対策が必要である。ところが、このよう
な観点からのセキュリティ・セーフティ対策は、従来検
討されてきていない。
Therefore, in the autonomous agent, sufficient security cannot be ensured in the conventional framework. Therefore, comprehensive security and safety measures, including assurance that such harmful behavior does not occur, are required. However, security and safety measures from such a viewpoint have not been studied so far.

【0047】そこで、第1実施形態では、Plangentにお
いて、プランニング機能に制約処理機能を追加すること
により、エージェントの自律性に起因するセキュリティ
・セーフティ課題への対策手法を提案する。また、第1
実施形態の他の目的は、制約を満たさなかったプラン
を、制約に合うように修正することで、エージェントの
活動続行も確保することである。また、第3実施形態
は、ファイルをノードに書き込む処理において、書き込
みの許容値を守りながら重要なファイルの書き込みを確
保したものである。
Therefore, in the first embodiment, Plangent proposes a countermeasure against a security / safety problem caused by agent autonomy by adding a constraint processing function to a planning function. Also, the first
Another purpose of the embodiment is to modify the plan that does not satisfy the constraint so as to conform to the constraint, thereby ensuring the continuation of the activity of the agent. In the third embodiment, in a process of writing a file to a node, writing of an important file is secured while observing an allowable write value.

【0048】すなわち、第1実施形態では、ホストの計
算資源や計算能力といった、各ホストにおけるセキュリ
ティ・セーフティに関する要求を制約として記述し、当
該ホストに移動したエージェントは、プランニングによ
り挙動を生成する際に、セキュリティ・セーフティの要
求による制約を満たすかどうかの判定を行い、制約違反
の場合は実行中に制約違反が発生しないような挙動を生
成する。その結果、エージェントは、制約として記述さ
れたセキュリティ・セーフティ要求を満足するので、ホ
ストに対する資源浪費や使用不能攻撃に相当する、有害
な挙動を防止することができる。
That is, in the first embodiment, the requirements related to security and safety in each host, such as the computational resources and computational power of the host, are described as constraints, and the agent that has moved to the host, when generating behavior by planning, Then, it is determined whether or not the constraint according to the security / safety requirement is satisfied, and if the constraint is violated, a behavior is generated such that the constraint is not violated during execution. As a result, the agent satisfies the security and safety requirements described as constraints, thereby preventing harmful behaviors equivalent to resource waste and unusable attacks on the host.

【0049】〔1−1.構成〕 〔1−1−1.ハードウェアの構成〕図1は、本実施形
態の構成を示す機能ブロック図である。この図に示すよ
うに、第1実施形態では、ノードL,Rを含む複数のノ
ードがネットワークNで接続されている。ここでは、要
求記述が入力され、エージェントが生成されて処理が開
始されるノードLをローカルマシン、ローカルマシンか
らエージェントが移動する先のノードRをリモートマシ
ンと呼ぶ。そして、情報処理に用いるソフトウェアの構
成要素はこれら複数のノードに分散して配置され、ソフ
トウェア上の実行主体であるエージェントがいずれかの
前記ノード上で活動することによって情報処理を行う。
また、第1実施形態は、各エージェントが移動先のノー
ドにおいても、プランの作成、判定及び必要なプランの
作成を行うように構成されている。
[1-1. Configuration] [1-1-1. Hardware Configuration] FIG. 1 is a functional block diagram showing the configuration of the present embodiment. As shown in this figure, in the first embodiment, a plurality of nodes including nodes L and R are connected by a network N. Here, a node L where a request description is input, an agent is generated, and processing is started is called a local machine, and a node R to which the agent moves from the local machine is called a remote machine. The components of the software used for the information processing are distributed and arranged in the plurality of nodes, and the information processing is performed by an agent, which is an execution entity of the software, operating on one of the nodes.
Further, the first embodiment is configured such that each agent creates a plan, makes a determination, and creates a necessary plan even at a destination node.

【0050】なお、図1では、各ノードL,Rが互いに
同じ構成を持っているものとして、構成の代表としてロ
ーカルマシンLの構成を示す。また、図1では、上に説
明したようなメモリ101、CPU102、補助記憶装
置103といったハードウェアを、情報処理用ソフトウ
ェアが制御することで、以下のような各部分の働きを実
現している状態を示している。
FIG. 1 shows the configuration of the local machine L as a representative of the configuration, assuming that the nodes L and R have the same configuration. Also, in FIG. 1, a state in which the following functions are realized by controlling hardware such as the memory 101, the CPU 102, and the auxiliary storage device 103 described above by the information processing software. Is shown.

【0051】すなわち、まず、各ノードL,Rは、構成
要素へのアクセスに用いるローカル情報(前記第1の情
報に相当するもの)を格納するローカル情報記憶部1
(1L及び1R、以下同様。前記第1の記憶手段に相当
するもの。)と、前記格納されているローカル情報を更
新する更新部2と、を有する。また、各ノードL,R
は、エージェント情報(前記第2の情報に相当するも
の)を格納するためのエージェント情報記憶部3と(前
記第2の記憶手段に相当するもの)、各種入出力を行う
ための入出力部4(情報処理に対する要求記述を入力す
るための前記入力手段に相当する)と、を有する。な
お、エージェント情報は、エージェントの持つ挙動に関
する情報であり、エージェント自身の挙動によって順次
更新されるものである。
That is, first, each of the nodes L and R stores a local information storage unit 1 for storing local information (corresponding to the first information) used for accessing a component.
(1L and 1R, hereinafter the same. Corresponding to the first storage means) and an updating unit 2 for updating the stored local information. In addition, each node L, R
Are an agent information storage unit 3 for storing agent information (corresponding to the second information) and an input / output unit 4 for performing various input / output operations. (Corresponding to the input means for inputting a request description for information processing). The agent information is information on the behavior of the agent, and is sequentially updated according to the behavior of the agent itself.

【0052】また、各ノードL,Rは、入力された前記
要求記述を満たすためにエージェントがとるべき行動を
表すプランを、エージェント情報及びローカル情報に基
づいて、複数のアクションの集合として生成するプラン
生成部5(前記生成手段に相当するもの)を有する。プ
ラン生成部5によって生成されるプランに含まれるアク
ションは必要に応じて、ノード間でのエージェントの移
動を実現するgoアクション(前記第1のアクションに相
当するもの)を含む。
Each of the nodes L and R generates a plan representing an action to be taken by an agent to satisfy the input request description as a set of a plurality of actions based on the agent information and the local information. It has a generation unit 5 (corresponding to the generation unit). The actions included in the plan generated by the plan generating unit 5 include a go action (corresponding to the first action) for realizing the movement of the agent between nodes as necessary.

【0053】また、各ノードL,Rは、生成された前記
プラン中の各アクションに基づいて各ノードL,R上で
エージェントの動作を実現するプラン実行部6(前記実
行手段に相当するもの)と、プラン中のgoアクションに
基づいて、エージェントをノード間で移動させるエージ
ェント管理部7(前記管理手段に相当するもの)と、を
有する。なお、エージェント管理部7は、生成されたプ
ランについて判定を行う判定手段(請求項4)としての
機能を有している。
Each of the nodes L and R is a plan execution unit 6 (corresponding to the execution means) for realizing the operation of the agent on each of the nodes L and R based on each action in the generated plan. And an agent management unit 7 (corresponding to the management means) for moving an agent between nodes based on a go action in a plan. Note that the agent management unit 7 has a function as determination means (claim 4) for determining the generated plan.

【0054】また、各ノードL,Rは、第3の記憶部8
と、判定部9と、第4の記憶部10と、修正部11と、
を備えている。このうち第3の記憶部8は、ノードの保
全のためにプランが満たさなければならない制約を表す
第3の情報を記憶するための第3の記憶手段であり、こ
こでいう保全とは、セキュリティとセーフティの双方を
含む概念である。つまり、ここでいう制約は、エージェ
ントがノードに対して有害な挙動をとらないために、プ
ランが満足すべき制約であり、第3の情報はそのような
制約を表す情報である。
Each of the nodes L and R is stored in the third storage unit 8.
A determination unit 9, a fourth storage unit 10, a correction unit 11,
It has. The third storage unit 8 is a third storage unit for storing third information indicating a constraint that must be satisfied by the plan for maintaining the node. In this case, the security means security. The concept includes both safety and safety. That is, the constraint referred to here is a constraint that should be satisfied by the plan so that the agent does not take harmful behavior to the node, and the third information is information representing such a constraint.

【0055】また、判定部9は、プランが前記制約を満
たすかどうかをプランの生成中や生成後に判定する手段
であり、プラン実行部6は、前記制約を満たすと判定さ
れたプランについて、エージェントのノード間における
移動を含めて、プランを実行するように構成されてい
る。
The determining unit 9 determines whether or not the plan satisfies the constraint during or after the generation of the plan. The plan executing unit 6 determines whether the plan determined to satisfy the constraint is an agent. Is configured to execute the plan including the movement between the nodes.

【0056】また、第4の記憶部10は、前記制約を満
足するプランをどのように生成するかを表す第4の情報
(制約充足メタ知識と呼ぶ)を記憶するための第4の記
憶手段である。つまり、制約充足メタ知識とは、エージ
ェントがセキュリティ・セーフティにかかわる制約を満
足しないプランを実行しようとした場合に、プランを修
正して制約を満足するようにするために、プラン修正に
用いる知識である。
The fourth storage unit 10 stores fourth information (referred to as constraint satisfaction meta-knowledge) indicating how to generate a plan satisfying the constraint. It is. In other words, constraint satisfaction meta-knowledge is the knowledge used to modify a plan so that if an agent attempts to execute a plan that does not satisfy the security-related constraints, the agent modifies the plan so that the constraints are satisfied. is there.

【0057】また、修正部11は、プランが前記制約を
満たさないと判定されたときに、第4の記憶部10に格
納されている制約充足メタ知識に基づいてプランを修正
し、あるいは制約を満たすプランは存在しないという情
報を得るための手段である。
When it is determined that the plan does not satisfy the constraint, the modifying unit 11 modifies the plan based on the constraint satisfaction meta-knowledge stored in the fourth storage unit 10 or changes the constraint. This is a means for obtaining information that there is no plan to satisfy.

【0058】また、本実施形態で用いられる主な情報を
次に説明する。 〔1−1−2.エージェント情報…第2の情報〕エージ
ェント情報は、エージェントの挙動を制御する情報及び
この挙動によって操作される各種の情報である。エージ
ェント情報として、具体的には、アクションの集合(以
下「アクション集合」という)と、集合に含まれる各ア
クションに関する情報(以下「アクション情報」とい
う)と、安全性に関する制約条件(以下「安全性条件」
という)と、因果リンク(前記因果関係を表す情報に相
当するもの)とを挙げることができる。まず、アクショ
ン集合は、生成中のプランを構成するアクションの集合
をリストで表現したものであり、アクションはエージェ
ントがとりうる動作の単位である。
The main information used in this embodiment will be described below. [1-1-2. Agent information ... second information] The agent information is information for controlling the behavior of the agent and various information operated by the behavior. As the agent information, specifically, a set of actions (hereinafter referred to as “action set”), information on each action included in the set (hereinafter referred to as “action information”), and constraints on safety (hereinafter referred to as “safety set”) conditions"
) And a causal link (corresponding to the information indicating the causal relationship). First, the action set is a list of a set of actions constituting the plan being generated, and the action is a unit of action that the agent can take.

【0059】各アクションについては、アクション情報
が存在する。アクション情報は、アクションの名称と引
数(パラメタ)を表すアクション記述、アクションが実
行可能となるための前提条件を表す事前条件、実行によ
る状態変化の内容を表す事後条件を含み、これらはいず
れも項又は項のリストで表される。
Each action has action information. The action information includes an action description indicating an action name and an argument (parameter), a precondition indicating a precondition for enabling the action to be executed, and a postcondition indicating the content of a state change due to execution. Or a list of terms.

【0060】安全性条件は、アクション集合中の各アク
ションについて、アクション間の実行順序の制限を表す
条件であり、アクション記述の対のリストで表現され
る。すなわち、安全性条件を構成する各対は、1番目の
要素は2番目の要素よりも前に実行すべきである、とい
う制約をあらわす。アクション集合のリスト中の順序と
実際の実行順序とは無関係であり、実行順序はこの安全
性条件の制約を受けるのみである。
The security condition is a condition indicating a restriction on an execution order between actions for each action in the action set, and is represented by a list of pairs of action descriptions. In other words, each pair constituting the security condition expresses a constraint that the first element should be executed before the second element. The order in the list of action sets and the actual execution order are irrelevant, and the execution order is only limited by this security condition.

【0061】因果リンクはアクション集合中の各アクシ
ョンに対し、1つのアクションの実行により成立した事
実により、別のアクションが実行可能となる、といった
因果関係を示す情報で、アクション記述、そのアクショ
ンにより成立する事実を表す項、およびその事実の成立
により実行可能となるアクション記述の3つの組のリス
トで表現される。
The causal link is information indicating a causal relationship such that another action can be executed according to the fact that one action is executed for each action in the action set, and the action description is established by the action. It is expressed as a list of three sets of terms that represent the facts to be performed and action descriptions that can be executed when the facts are established.

【0062】なお、以下では、与えられた文字列をファ
イルから検索する第1の実例と、ファイルの情報量を考
慮しながらノードの記憶装置にファイルを書き込む第2
の実例という2つの実例を挙げて、第1実施形態を説明
する。
In the following, a first example of searching for a given character string from a file and a second example of writing a file to a storage device of a node in consideration of the amount of information of the file will be described.
The first embodiment will be described with reference to two examples of the above.

【0063】まず、第1の実例において、上に述べたア
クション情報の例を次に示す。 アクション記述:grep(File,Keyword) 事前条件:[file-exists(File)] 事後条件:[add(include(File,Keyword))] この例において、アクション記述"grep(File,Keyword)"
は、"grep"という名称の動作で、"File"という名称のフ
ァイルについて、文字列"Keyword" が含まれているかど
うか検索し、含まれていた場合に事後条件を実現する、
という動作を表す。事前条件は、そのアクションを実行
するときに成立していなければならない条件を表す。こ
の例の事前条件"file-exists(File)" は、前述の状態記
述と同じ書式で、"File"という名称のファイルが存在す
るという事実を表す。
First, in the first example, an example of the action information described above is shown below. Action description: grep (File, Keyword) Precondition: [file-exists (File)] Postcondition: [add (include (File, Keyword))] In this example, the action description "grep (File, Keyword)"
Searches for a file named "File" in the operation named "grep" for the string "Keyword", and if it is included, implements the post-condition.
Represents the operation. The pre-condition represents a condition that must be satisfied when executing the action. The precondition "file-exists (File)" in this example represents the fact that a file named "File" exists in the same format as the state description described above.

【0064】事後条件は、一般にはアクションの実行に
よって発生する事実を表し、この例では、文字列がファ
イル含まれていたときに限って発生する。この例の事後
条件"add(include(File,Keyword))"の中で、"include(F
ile,Keyword)" は"File"という名称のファイルが、文字
列Keyword を含む、という事実を表す。"add()" は、括
弧内に記述された事実(ここでは"include(File,Keywor
d)" をエージェントの知識として追加する動作を表す。
なお、逆に知識を削除する動作は"del()" のように表
す。
The post condition generally indicates a fact that occurs by executing an action. In this example, the post condition occurs only when a character string is included in a file. In the postcondition "add (include (File, Keyword))" of this example, "include (F
ile, Keyword) "represents the fact that the file named" File "contains the string Keyword." add () "refers to the fact described in parentheses (here," include (File, Keywor
d) "is added as agent knowledge.
On the other hand, the operation of deleting knowledge is expressed as "del ()".

【0065】また、上に述べた第2の実例におけるアク
ション記述の例を示す。 アクション記述:write(File) 事前条件:[to-write(File), size(File, Size), consu
med-space(Space)] 事後条件:[del(consumed-space(Space)),add(written
(File)),add(consumed-space(Space+Size))] この例は、ノードの記憶装置にファイルを書き込む処理
と、ファイルの情報量にかかわるものである。具体的に
は、アクション記述 "write(File)" は、"write" とい
う名称の動作で、 "File" という名称のファイルを、ノ
ードの記憶装置に書込む動作を表す。また、このアクシ
ョン記述の事前条件において、 "to-write(File)" は、
ノードにファイル "File" を書込むべきである、という
ことを表す。また、"size(File, Size)" は、ファイル
"File" の情報量は "Size" であることを表し、"consu
med-space(Space)" は、ノードの記憶装置には既に "Sp
ace" 分だけ書込まれていることを表す。また、このア
クション記述の事後条件において "written(File)"
は、ファイル "File" は既に書込まれたことを表す。
Further, an example of the action description in the above-described second example is shown. Action description: write (File) Precondition: [to-write (File), size (File, Size), consu
med-space (Space)] Postcondition: [del (consumed-space (Space)), add (written
(File)), add (consumed-space (Space + Size))] This example relates to the process of writing a file to the storage device of the node and the amount of information of the file. More specifically, the action description “write (File)” is an operation named “write” and represents an operation of writing a file named “File” into the storage device of the node. In the precondition of this action description, "to-write (File)" is
Indicates that the file "File" should be written to the node. "Size (File, Size)" is the file
"File" indicates that the amount of information is "Size", and "consu
med-space (Space) "already has" Sp
ace "has been written. In the post condition of this action description," written (File) "
Indicates that the file "File" has already been written.

【0066】〔1−1−3.ローカル情報…第1の情
報〕ローカル情報記憶部2には、ローカル情報が格納さ
れる。本実施形態におけるローカル情報は、構成要素に
アクセスするための情報で、項と呼ばれる記号列で表現
したものである。本実施形態では、以下のような例で示
される状態記述が、ローカル情報記憶部2に格納されて
いるとする。なお、状態記述は、ソフトウェアの構成要
素に関する何らかの事実を表す情報である。 maybe(file-exists(file1) at node1) この例において、"maybe()" は、括弧内に記述された事
実が未確認であることを表す。また、"file-exists(fil
e1) はfile1"なるファイル名を持つファイルが存在する
ことを示す。また、そのあとの"at node1"は、"node1"
なるノード名を持つマシンにおいて、前述の事実(ファ
イルfile1 の存在)が成立することを示す。状態記述
が"maybe()" であるときは、前述の事実(マシンnode1
におけるファイルfile1 の存在)の正否を、マシンnode
1 に移動して確認する必要がある。ここでは、ノード名
node1 は、リモートマシンRのノード名であるものとす
る。
[1-1-3. Local information ... first information] The local information storage unit 2 stores local information. The local information in the present embodiment is information for accessing a component, and is represented by a symbol string called a term. In the present embodiment, it is assumed that a state description shown in the following example is stored in the local information storage unit 2. It should be noted that the state description is information indicating some fact regarding the components of the software. maybe (file-exists (file1) at node1) In this example, "maybe ()" indicates that the fact described in parentheses has not been confirmed. Also, "file-exists (fil
e1) indicates that there is a file with the file name "file1", and "at node1" after it is "node1"
This indicates that the above-mentioned fact (the existence of file file1) is satisfied on a machine having the node name of If the state description is "maybe ()", the above fact (machine node1
The existence of the file file1) in the machine node
Need to go to 1 to confirm. Here, the node name
node1 is the node name of the remote machine R.

【0067】なお、このようなローカル情報の更新は、
例えば、システムの管理者が、各マシンにおいて構成要
素が変更された際に、手動で情報を更新することによっ
て行うことができる。このようにすれば、具体的事情に
合わせて入力内容を調整することによって、柔軟な運用
が可能となる。
It should be noted that such updating of the local information is as follows.
For example, a system administrator can manually update information when a component is changed in each machine. In this way, flexible operation is possible by adjusting the input content according to specific circumstances.

【0068】また、ローカル情報は、プログラムによっ
て、ネットワーク中の構成を表すファイルリストなどを
参照することによって自動的に更新することもできる。
このようにすれば、変更の検出とローカル情報の更新が
自動的に行われるので、手作業で情報を入力する手間を
省くことができ、処理が効率化される。
The local information can be automatically updated by a program by referring to a file list or the like representing a configuration in the network.
With this configuration, the detection of the change and the update of the local information are automatically performed, so that the labor of manually inputting the information can be omitted, and the processing can be made more efficient.

【0069】以上のようなエージェント情報及びローカ
ル情報は、上記のような文字列テキストの形式で格納し
ておくことが考えられるが、必要に応じて予約語をコー
ドに置き換えるなど、他の内部形式で格納しておくこと
もできる。
It is conceivable that the above-described agent information and local information are stored in the form of a character string text as described above. However, if necessary, other internal formats such as replacing reserved words with codes are used. Can also be stored.

【0070】また、上に述べた第2の実例において、あ
る node0 に格納されているローカル情報の例を示す。
In the second example described above, an example of local information stored in a certain node 0 is shown.

【0071】maybe(to-write(file1) at node1) maybe(to-write(file2) at node1) この例において、 "to-write(File)" は、ノードにファ
イル "File" を書込むべきである、ということを表す。
Maybe (to-write (file1) at node1) maybe (to-write (file2) at node1) In this example, "to-write (File)" should write the file "File" to the node. It means that there is.

【0072】〔1−1−4.第3の情報及び第4の情
報〕また、プランが満たさなければならない制約を表す
第3の情報や、制約充足メタ知識すなわち第4の情報
は、ノードのローカル情報や、エージェントが移動に伴
って運搬してゆくエージェント情報などの形で用意して
おく。
[1-1-4. Third Information and Fourth Information] In addition, the third information indicating the constraint that must be satisfied by the plan and the constraint satisfaction meta-knowledge, that is, the fourth information, include the local information of the node and the movement of the agent as the agent moves. Prepare in the form of the agent information to be transported.

【0073】例えば、上に述べた第2の実例において、
エージェント情報として次のような知識を追加すること
が考えられる。 size(file1, 100) size(file2, 150) prefer(written(file1), written(file2)) この最後の行の知識は、ゴール "written(file1)" がゴ
ール "written(file2)" より優先するという制約充足メ
タ知識を表す。
For example, in the second example described above,
It is conceivable to add the following knowledge as agent information. size (file1, 100) size (file2, 150) prefer (written (file1), written (file2)) With the knowledge of this last line, goal "written (file1)" takes precedence over goal "written (file2)" Represents the constraint satisfaction meta-knowledge.

【0074】また、上に述べた第2の実例において、例
えば、あるノード node1 のローカル情報として次のよ
うな知識があるものとする。 to-write(File) consumed-space(0) ss-constraint([consumed-space(Space), Space < 12
0]) ここで、2つ目の情報 "consumed-space(0)" は、書込
める情報量の上限が120であることを表すセキュリテ
ィ・セーフティ制約情報である。
In the second example described above, for example, it is assumed that local information of a certain node node1 has the following knowledge. to-write (File) consumed-space (0) ss-constraint ((consumed-space (Space), Space <12
0]) Here, the second information “consumed-space (0)” is security / safety constraint information indicating that the upper limit of the amount of information that can be written is 120.

【0075】〔1−2.作用及び効果〕上記のような構
成を有する本実施形態において、情報処理は次のように
行われる。
[1-2. Operation and Effect] In the present embodiment having the above configuration, information processing is performed as follows.

【0076】〔1−2−1.要求記述の入力〕図3に、
本実施形態による情報処理の処理手順のフローチャート
を示す。まず、情報処理によって達成すべき状態の記述
を、ユーザが入出力部1から要求記述として入力する
(ステップ201)。入力された要求記述は、エージェ
ント情報記憶部3に格納される。ここで、要求記述は1
つもしくは複数の項から構成される。要求記述の一例を
次に示す。 file-exists(File) at Node include-keyword(File,patent) この例の1行目"file-exists(File) at Node" はNodeと
いうノード名のマシン上において、Fileという名称のフ
ァイルを見つける、という要求を表す。また2行目は、
Fileがpatentというキーワードを含んでいることを要求
している。したがって、本要求記述は、patentというキ
ーワードを含むファイルをネットワークから探して、そ
のファイル名とノード名を特定する、という要求を表す
こととなる。
[1-2-1. Input of request description]
4 shows a flowchart of a processing procedure of information processing according to the present embodiment. First, a user inputs a description of a state to be achieved by information processing as a request description from the input / output unit 1 (step 201). The input request description is stored in the agent information storage unit 3. Here, the request description is 1
It consists of one or more terms. An example of the request description is shown below. file-exists (File) at Node include-keyword (File, patent) The first line of this example, "file-exists (File) at Node", finds the file named File on the machine named Node. Represents a request. The second line is
Requires that the File contains the keyword patent. Therefore, this request description represents a request to search the network for a file containing the keyword "patent" and specify the file name and the node name.

【0077】〔1−2−2.初期化〕次に、エージェン
ト管理部7は初期化処理を行う(ステップ202)。す
なわち、エージェント情報記憶部3内のアクション集
合、安全性条件、および因果リンクとして、それぞれ下
記のような情報を区別して格納する。 アクション集合:[*start*,*end*] 安全性条件:[(*start*,*end*)] 因果リンク:[](空リスト) さらに、エージェント情報記憶部5に対し、次の情報を
アクション情報として追加・格納する。まず、初期状態
のうち、"maybe()" で表された条件(maybe 条件と呼
ぶ)以外のもののリストを、"*start*" というアクショ
ン名を持つアクションの事後条件とする。
[1-2-2. Initialization] Next, the agent management section 7 performs an initialization process (step 202). That is, the following pieces of information are separately stored as an action set, a security condition, and a causal link in the agent information storage unit 3. Action set: [* start *, * end *] Security condition: [(* start *, * end *)] Causal link: [] (empty list) Further, the following information is stored in the agent information storage unit 5: Add and store as action information. First, a list of the initial states other than the condition represented by "maybe ()" (called the "maybe condition") is defined as the post condition of the action having the action name "* start *".

【0078】また、初期状態のうちの"maybe(cond at n
ode)" (condおよびnodeは、それぞれ具体的な条件およ
びノード名を意味する)の形の条件に対し、次のような
アクション情報を追加する。 アクション名:go(node) 事前条件:[] 事後条件:[add(cond at node)] すなわち、maybeを取り除いた条件を事後条件とするgoア
クションを定義する。これは、特定のノードで実行すべ
きアクションの事前条件を事後条件としてエージェント
が前記特定のノードへ移動するアクションを前記アクシ
ョン集合に追加することを意味する。
In the initial state, “maybe (cond at n
ode) "(cond and node mean concrete conditions and node names, respectively), and add the following action information: Action name: go (node) Precondition: [] Post-condition: [add (cond at node)] In other words, define a go action that uses the condition after removing the may as a post-condition. This means that an action to move to a specific node is added to the action set.

【0079】たとえば、本実施形態においては、次のよ
うなアクション情報を追加する。
For example, in the present embodiment, the following action information is added.

【0080】アクション名:*start* 事前条件:[] 事後条件:[] アクション名:go(node1) 事前条件:[] 事後条件:[add(file-exists(File) at node1)] アクション名:*end* 事前条件:[(file_exists(File) at Node),include-key
word(File,patent)](要求記述と同じ) 事後条件:[]
Action name: * start * Precondition: [] Postcondition: [] Action name: go (node1) Precondition: [] Postcondition: [add (file-exists (File) at node1)] Action name: * end * Precondition: [(file_exists (File) at Node), include-key
word (File, patent)] (same as requirement description) Postcondition: []

【0081】〔1−2−3.プランの生成〕続いて、プ
ラン生成部5によって、要求記述を満足するためのプラ
ン生成が行われる(ステップ203)。プラン生成は、
ローカル情報を参照しながら、エージェント情報を更新
することによって行われ、更新されたエージェント情報
がプランとなる。なお、プラン生成の手順は、エージェ
ントの転送に関する部分を除いて、従来から知られるプ
ランニング技術(参考文献1:大須賀節雄編「人工知能
大事典」979ページから988ページ)によって行
う。このプランニングは、ロボットなど外界を変更する
能力を持つ行為主体について、与えられた目標を達成す
るための行動プランを作成することである。プランニン
グのために与える入力は、外界の初期状態、外界を変化
させる様々なアクション(行為)及び一つ又は複数の目
標である。
[1-2-3. Generation of Plan] Subsequently, the plan generation unit 5 generates a plan for satisfying the requirement description (step 203). Plan generation is
This is performed by updating the agent information while referring to the local information, and the updated agent information becomes a plan. Except for the part related to the transfer of the agent, the procedure for generating the plan is performed by a conventionally known planning technique (Reference 1: Sekio Osuka, edited by Encyclopedia of Artificial Intelligence, pages 979 to 988). This planning is to create an action plan for an agent such as a robot having the ability to change the outside world to achieve a given goal. Inputs for planning are the initial state of the outside world, various actions that change the outside world, and one or more goals.

【0082】本実施形態におけるプランニングの手順
を、図3のフローチャートに示す。まず、未達成ゴール
の有無を調べる(ステップ301)、ここで未達成ゴー
ルというのは、アクション集合を構成する各アクション
の事前条件のうち、因果リンクにおいて成立する事実と
して記録されていない条件を項で表したもののリストで
ある。本実施形態では、最初因果リンクが空であるの
で、アクション"*end*" の2つの事前条件が未達成ゴー
ルとなる。
The planning procedure in this embodiment is shown in the flowchart of FIG. First, it is checked whether or not there is an unachieved goal (step 301). Here, the unachieved goal is defined as a condition that is not recorded as a fact that is established in the causal link among the preconditions of each action constituting the action set. Here is a list of those represented by. In the present embodiment, since the causal link is initially empty, two preconditions of the action "* end *" are unachieved goals.

【0083】未達成ゴールが存在しない場合はプラン生
成を終了するが、存在する場合は、未達成ゴールから1
つサブゴールとして選択する(ステップ302)。本実
施形態では、たとえば"file-exists(File) at Node" を
サブゴールとして選択する。次にステップ302におい
て、選択したサブゴールに対し、事後条件において該サ
ブゴールを達成するようなアクションを列挙する。
If there is no unachieved goal, the plan generation is terminated.
One subgoal is selected (step 302). In the present embodiment, for example, “file-exists (File) at Node” is selected as a subgoal. Next, in step 302, for the selected subgoal, actions that achieve the subgoal under the post condition are listed.

【0084】ここで条件がサブゴールを達成するとは、
該条件の変数に適当な項を代入することにより、該サブ
ゴールと一致させることができる、ということであり、
さらに具体的には、選択したサブゴールの事前条件と変
数以外の要素が一致する事後条件を持つアクションを意
味する。たとえば本実施形態では、アクション"go(node
1)" のみを列挙する。
Here, the condition that the sub-goal is achieved is as follows.
By substituting an appropriate term for the variable of the condition, it is possible to match with the subgoal,
More specifically, it means an action having a post-condition in which the pre-condition of the selected subgoal matches an element other than the variable. For example, in the present embodiment, the action "go (node
1) "only.

【0085】そして、アクションが1つでも列挙できた
かどうかを判定し(ステップ304)、できなかった場
合には、いわゆるバックトラック処理として、サブゴー
ル選択をやり直す(ステップ302)。
Then, it is determined whether at least one action has been enumerated (step 304). If the action cannot be enumerated, subgoal selection is performed again as so-called backtrack processing (step 302).

【0086】そして、列挙したアクションから1つ選択
し(ステップ305)、選択したアクションについて、
他のアクションの事前条件を損なうものについては、選
択されたアクションをサブゴールの条件に合わせて因果
リンクに追加する。また、他のアクションの事前条件を
損なうものであってかつ当該他のアクションの実行前に
当該事前条件が損なわれることを阻止する安全性条件を
追加できるものについては、選択されたアクションをサ
ブゴールの条件に合わせて因果リンクに追加するととも
に当該安全性条件を追加する。
Then, one of the listed actions is selected (step 305), and for the selected action,
If the preconditions of other actions are impaired, the selected actions are added to the causal link according to the conditions of the subgoal. In addition, if the precondition of another action is impaired and a safety condition can be added to prevent the precondition from being impaired before the execution of the other action, the selected action is added to the subgoal. The security condition is added to the causal link according to the condition.

【0087】これらの処理は、具体的には次のように行
う。まず、該アクションのアクション情報に基づき因果
リンク及び未達成ゴールを更新する(ステップ30
6)。因果リンクの更新は、前述の代入を、該アクショ
ン情報の要素(アクション記述、事前・事後条件)に施
し、アクション記述、サブゴール、およびサブゴールを
事前条件とするアクションのアクション記述の組を、因
果リンクに追加することにより行う。そして同時に、該
アクション情報の事前条件を、新たに未達成ゴールに追
加する。たとえば本実施形態では、アクション"go(node
1)" を選択し、その結果、因果リンク、および未達成ゴ
ールを以下のように更新する。 因果リンク:[(go(node1),file-exists(File) at node
1,*end*)] 未達成ゴール:[include-keyword(File,patent)]
These processes are specifically performed as follows. First, the causal link and the unachieved goal are updated based on the action information of the action (step 30).
6). To update the causal link, the above-mentioned substitution is performed on the elements (action description, pre-post condition and post-condition) of the action information, and the set of the action description, the subgoal, and the action description of the action with the subgoal as the precondition is set as the causal link. By adding At the same time, the precondition of the action information is newly added to the unachieved goal. For example, in the present embodiment, the action "go (node
1) "and update the result, causal link and unachieved goal as follows. Causal link: [(go (node1), file-exists (File) at node
1, * end *)] Unachieved goal: [include-keyword (File, patent)]

【0088】〔1−2−4.脅威の検出〕次にステップ
307において、選択したアクションによって、他の因
果リンクの条件、すなわち他のアクションが前提とする
状況を損なうかどうかを調べる(ステップ307)。損
なう場合、これを脅威と呼ぶ。本実施形態では、選択し
たgoアクションは、条件を損なわない。すなわち、goア
クションが一般に条件を損なうわけではなく、この場合
はノード移動によって不可能になるアクションがないか
らである。
[1-2-4. Detection of Threat] Next, in step 307, it is checked whether or not the selected action impairs the condition of another causal link, that is, the situation assumed by the other action (step 307). If it does, it is called a threat. In the present embodiment, the selected go action does not impair the condition. That is, the go action does not generally impair the condition, and in this case, there is no action that cannot be made by moving the node.

【0089】脅威が存在する場合、この脅威を回避する
ための安全性条件の更新が可能かどうかを判定する(ス
テップ308)。ここで、安全性条件の更新が可能なの
は、次のような場合である。
If a threat exists, it is determined whether or not security conditions for avoiding the threat can be updated (step 308). Here, the security condition can be updated in the following cases.

【0090】例えば、因果リンクに追加した組(アクシ
ョン1,条件,アクション2)に対し、対(アクション
1,アクション2)を安全性条件に矛盾なく追加でき、
かつ脅威が存在する場合は、すなわち他の因果リンク
(アクション3,条件2,アクション4)に対し、アク
ション1が条件2を損なう場合に、対(アクション3,
アクション1)もしくは(アクション4,アクション
1)を安全性条件に矛盾なく追加できる場合である。
For example, for the set (action 1, condition, action 2) added to the causal link, the pair (action 1, action 2) can be added to the safety condition without contradiction.
If there is a threat, that is, if action 1 impairs condition 2 with respect to another causal link (action 3, condition 2, action 4), the pair (action 3, action 3
Action 1) or (action 4, action 1) can be added to the safety condition without contradiction.

【0091】そして、安全性条件更新が不可能な場合に
は、更新した因果リンクおよび未達成ゴールの状態を更
新前に戻し(ステップ310)、いわゆるバックトラッ
クとして、アクションの選択からの処理をやり直す。安
全性条件更新が可能な場合は、ステップ309において
上述した安全性条件の更新(対の追加)を実行する。
If the security condition cannot be updated, the updated state of the causal link and the unachieved goal is returned to the state before the update (step 310), and the process from the selection of the action is performed again as a so-called backtrack. . If the security condition can be updated, the security condition is updated (addition of a pair) in step 309.

【0092】本実施形態では、対"(go(node1),*end*)"
を矛盾なく安全性条件に追加できるので、更新の結果安
全性条件は"[(go(node1),*end*),(*start*,*end*)]" と
なる。その後再びステップ301からの処理を繰り返さ
れる。このように、必要なローカル情報を参照しながら
処理を繰り返すことによって、全ての未達成ゴールの一
つ一つについて、当該未達成ゴールに対応する全てのア
クションについて、因果リンクへの追加が試みられるこ
とになる。
In the present embodiment, the pair "(go (node1), * end *)"
Can be added to the security condition without contradiction, so that the security condition as a result of the update is "[(go (node1), * end *), (* start *, * end *)]". Thereafter, the processing from step 301 is repeated again. In this way, by repeating the process while referring to the necessary local information, for each unachieved goal, an attempt is made to add all actions corresponding to the unachieved goal to the causal link. Will be.

【0093】すなわち、アクションは事前条件が満たさ
れた状態で実行でき、実行の結果、事後条件を発生させ
る。そこで、目的とする状態を事後条件として発生させ
るアクションを、因果リンクによって目的とする状態に
接続し、さらに、接続したアクションの事前条件を事後
条件として発生させるアクションをさらに接続する。こ
のように実行順序とは逆に遡って接続を繰り返せば、目
的とする状態を実現するための動作系列が得られる。こ
のように、本発明によれば、単純な処理を単位としてプ
ラン生成を行えるので、処理が効率化される。
That is, the action can be executed in a state where the precondition is satisfied, and as a result of the execution, the postcondition is generated. Therefore, the action for generating the target state as the post condition is connected to the target state by the causal link, and the action for generating the precondition of the connected action as the post condition is further connected. In this way, by repeating the connection in the reverse order of the execution order, an operation sequence for realizing the target state can be obtained. As described above, according to the present invention, since the plan can be generated in units of simple processing, the processing is made more efficient.

【0094】また、例えば、上に述べた第2の実例にお
いて、例えばあるノード node0 において、 written(file1) at node1 written(file2) at node1 といった要求記述が与えられた場合、このノード node0
においてプラン [go(node1), write(file1), write(file2)] が生成されるなどの例が考えられる。
For example, in the second example described above, if a request description such as written (file1) at node1 written (file2) at node1 is given to a certain node node0, for example,
In this example, a plan [go (node1), write (file1), write (file2)] is generated.

【0095】〔1−2−5.エージェント情報の更新〕
本実施形態においては、繰り返し手順終了後に、エージ
ェント情報記憶部3に格納された情報が以下のように変
化する。 アクション集合:[grep(File,patent),go(node1)] 安全性条件:[(grep(File,patent),*end*),(go(node1),
*end*),(*start*,*end*)] 因果リンク:[(grep(File,patent),include(File,paten
t),*end*),(go(node1),file-exists(File) at node1,*e
nd*)] 未達成ゴールリスト:[file-exists(File)] このエージェント情報の内容を表すツリー図(プラン
木)を図4に示す。
[1-2-5. Update agent information)
In the present embodiment, after the end of the repetition procedure, the information stored in the agent information storage unit 3 changes as follows. Action set: [grep (File, patent), go (node1)] Safety condition: [(grep (File, patent), * end *), (go (node1),
* end *), (* start *, * end *)] Causal link: [(grep (File, patent), include (File, paten
t), * end *), (go (node1), file-exists (File) at node1, * e
nd *)] Unachieved goal list: [file-exists (File)] FIG. 4 shows a tree diagram (plan tree) representing the contents of this agent information.

【0096】〔1−2−6.プラン生成成功の判定〕以
上のようにプランが生成されると(図2、ステップ20
3)、まず、プランの生成が成功したかどうかに関する
判定が行われる(ステップ204、請求項4)。このと
き、未達成ゴールが存在しかつアクション集合が空の場
合はプランの生成は失敗と判定される。また、未達成ゴ
ールが存在しない場合は、生成が成功で、プランを実行
するまでもなく要求記述が達成されたと判定される。ま
た、未達成ゴールが存在しかつアクション集合が空でな
い場合は、プランの生成は成功でかつプランの実行が必
要と判定される。
[1-2-6. Determination of Plan Generation Success] When a plan is generated as described above (FIG. 2, step 20)
3) First, a determination is made as to whether the generation of the plan was successful (step 204, claim 4). At this time, if an unachieved goal exists and the action set is empty, the plan generation is determined to have failed. If there is no unachieved goal, it is determined that the generation was successful and the required description was achieved without executing the plan. If an unachieved goal exists and the action set is not empty, it is determined that the plan has been successfully generated and the plan needs to be executed.

【0097】プランの生成が成功で要求記述が達成され
ている場合と、プランの生成そのものが失敗の場合は、
エージェントは入出力部4よりユーザにその旨を出力し
(ステップ205)、全手順を終了する。なお、エージ
ェントが当初のローカルマシンLから移動し、リモート
マシンRにおいて要求記述が達成され又はプランの生成
に失敗したときは、エージェントはローカルマシンLに
戻ってその旨の情報を出力する。このように、本実施形
態では、プラン生成の結果が判定され、判定結果に応じ
た処理が選択できるので、処理が効率化される。
In the case where the generation of the plan is successful and the request description has been achieved, and in the case where the generation of the plan itself has failed,
The agent outputs the fact to the user from the input / output unit 4 (step 205), and ends the entire procedure. When the agent moves from the original local machine L and the request description is achieved in the remote machine R or the generation of the plan fails, the agent returns to the local machine L and outputs information to that effect. As described above, in the present embodiment, the result of the plan generation is determined, and the processing according to the determination result can be selected, so that the processing is made more efficient.

【0098】〔1−2−7.制約にかかわる判定とプラ
ンの修正〕上記のように、プランの生成に成功したと判
定されると、続いて判定部9は、生成されたプランがセ
キュリティ・セーフティのための制約を満たしているか
どうかを判定する(ステップ206)。例えば、上に述
べた第2の実例において、エージェントがまずノード n
ode0 においてプラン [go(node1), write(file1), write(file2)] を作成し実行した結果、移動先のノード node1 におい
て、改めてプラン [write(file1), write(frile2)] を生成したものとする。そして、このプランについて、
判定部9がセキュリティ・セーフティのための制約を満
足するかどうかを判定するものとする。この場合、前提
条件 consumed-space(0) が、このプランを実行する結
果 consumed-space(0+100=100) 、consumed-space(100+150
=250) と変化することで、 consumed-space(250) となるが、これは上記制約である ss-constraint([consumed-space(Space), Space < 12
0]) を満足しない。
[1-2-7. Judgment Regarding Restriction and Correction of Plan] As described above, when it is determined that the plan has been successfully generated, the determination unit 9 subsequently determines whether the generated plan satisfies the security safety constraint. Is determined (step 206). For example, in the second example described above, the agent first
As a result of creating and executing the plan [go (node1), write (file1), write (file2)] on ode0, the plan [write (file1), write (frile2)] is newly generated on the destination node node1. And And about this plan,
It is assumed that the determination unit 9 determines whether or not the security safety constraint is satisfied. In this case, the precondition consumed-space (0) is the result of executing this plan, and consumed-space (0 + 100 = 100) and consumed-space (100 + 150
= 250), which results in consumed-space (250), which is the above constraint ss-constraint ([consumed-space (Space), Space <12
0]) is not satisfied.

【0099】すなわち、もしこのプランを実行すると、
設定された書込み上限を越えて情報を書込むこととな
り、システム資源を浪費するという、有害な挙動とな
る。
That is, if this plan is executed,
Information is written beyond the set upper limit of writing, which is a harmful behavior that wastes system resources.

【0100】このように、プランが制約を満足しないと
判定部9によって判定された場合、修正部11は、第4
の記憶部10に格納されたメタ知識を利用し、例えば優
先度の低いゴール written(file2) を除外するといった
プラン生成を繰り返す(ステップ207)。その結果生
成するプラン [write(file1)] は、プラン実行後の条件
として consumed-space(100) となり、上で問題となっ
た制約を満足する。なお、プランが制約を満足しなかっ
た場合に、その旨を出力するようにしてもよい。
As described above, when the determining unit 9 determines that the plan does not satisfy the constraint, the correcting unit 11
Using the meta-knowledge stored in the storage unit 10, the generation of a plan, for example, excluding the low-priority goal written (file2) is repeated (step 207). The resulting plan [write (file1)] becomes consumed-space (100) as a condition after the execution of the plan, and satisfies the above-mentioned constraint. If the plan does not satisfy the constraint, a message to that effect may be output.

【0101】〔1−2−8.プランの実行〕続いて、プ
ランの実行では、プラン実行部6が、goアクション以外
の実行可能なアクションを探す(ステップ206)。実
行可能なアクションは、アクション集合中のアクション
のうち、その時点の状態によって事前条件が満足され、
かつ安全性条件に関しても他のアクションより後で実行
する必要がないものである。
[1-2-8. Execution of Plan] Subsequently, in execution of the plan, the plan executing unit 6 searches for an executable action other than the go action (step 206). Executable actions satisfy the preconditions according to the current state of the actions in the action set,
Also, it is not necessary to execute the safety condition later than other actions.

【0102】goアクション以外の実行可能なアクション
があれば(ステップ208,209)、そのアクション
が実行され(ステップ210)、再度ステップ206か
らの手順が実行される。goアクション以外の実行可能な
アクションがないときは、goアクションが一つ実行され
る(ステップ211)。
If there is an executable action other than the go action (steps 208 and 209), the action is executed (step 210), and the procedure from step 206 is executed again. When there is no executable action other than the go action, one go action is executed (step 211).

【0103】このように、本実施形態では、goアクショ
ンの実行に先立って、goアクション以外の実行可能なア
クションが実行されるので、エージェントを元のノード
に再度転送する処理が最小限となり、処理が効率化され
る。
As described above, in this embodiment, an executable action other than the go action is executed prior to the execution of the go action, so that the process of transferring the agent to the original node again is minimized, and Is made more efficient.

【0104】本実施形態の例では、プランの実行が開始
された時点で、goアクション以外のアクションとして"g
rep(File,patent)" が存在する。しかし、この時点では
このアクションは、事前条件が未達成であるためにこの
アクションは実行できず、結果的にgoアクション以外の
実行可能なアクションがない。このため、アクション"g
o(node1)" が実行される。
In the example of this embodiment, when the execution of the plan is started, "g"
rep (File, patent) ". However, at this point, this action cannot be executed because the precondition has not been achieved, and consequently, there is no executable action other than the go action. Therefore, the action "g
o (node1) "is executed.

【0105】goアクションが解釈実行されると、プラン
実行部6がその旨をエージェント管理部7に通知し、エ
ージェント管理部7は次のようなエージェント転送処理
を行う。
When the go action is interpreted and executed, the plan execution unit 6 notifies the agent management unit 7 of the interpretation, and the agent management unit 7 performs the following agent transfer processing.

【0106】〔1−2−9.エージェントの転送〕エー
ジェントを転送するときは、ローカルマシン側のエージ
ェント管理部7L(以下「ローカル側」という)とリモ
ートマシン側のエージェント管理部7R(以下「リモー
ト側」という)との間で、ネットワークNを通じ、次の
ような手順が実行される。図5はエージェントを転送す
る手順を示すフローチャートである。
[1-2-9. Transfer of Agent] When transferring an agent, a network is connected between an agent management unit 7L (hereinafter, referred to as “local side”) on the local machine side and an agent management unit 7R (hereinafter, referred to as “remote side”) on the remote machine side. Through N, the following procedure is executed. FIG. 5 is a flowchart showing a procedure for transferring an agent.

【0107】まず、ローカル側からリモート側へ、エー
ジェントの受け入れ要求が送信される(ステップ50
1)。リモート側は、要求を受信すると(ステップ50
2)、エージェント用のプロセスを設定することによっ
てエージェントを受け入れる準備を行なった後(ステッ
プ503)、ローカル側に準備完了の通知を送信する
(ステップ504)。
First, an agent acceptance request is transmitted from the local side to the remote side (step 50).
1). Upon receiving the request (step 50)
2) After making preparations for accepting the agent by setting a process for the agent (step 503), a notification of completion of preparation is transmitted to the local side (step 504).

【0108】ローカル側は、準備完了の通知を受信する
と(ステップ505)、エージェント情報記憶部3内の
エージェント情報を読み出し、リモート側に送信する
(ステップ506)。(転送されるエージェント情報
は、goアクションが解釈実行された時点におけるエージ
ェントの内部状態を含む。)リモート側は、エージェン
ト情報を受信すると(ステップ507)、受信したエー
ジェント情報をエージェント情報記憶部3に格納し(ス
テップ508)、プラン実行部6にその旨を通知するこ
とによって解釈実行を開始させ(ステップ509)、エ
ージェント受け入れが成功した旨の通知をローカル側に
送信する(ステップ510)。
When the local side receives the notification of the completion of preparation (step 505), it reads out the agent information in the agent information storage section 3 and transmits it to the remote side (step 506). (The transferred agent information includes the internal state of the agent at the time when the go action is interpreted and executed.) Upon receiving the agent information (step 507), the remote side stores the received agent information in the agent information storage unit 3. The information is stored (step 508), interpretation execution is started by notifying the plan execution unit 6 of that (step 509), and a notification that the agent acceptance has been successful is transmitted to the local side (step 510).

【0109】ローカル側は、成功の通知を受信すると
(ステップ511)、エージェントのプロセスを消去し
(ステップ512)、不要になったメモリなどの資源を
開放することによって、エージェントの転送を終了す
る。
When the local side receives the notification of success (step 511), it deletes the agent process (step 512) and releases resources such as unnecessary memory to terminate the transfer of the agent.

【0110】本実施形態の例では、転送後のリモートマ
シンnode1 において、ローカル情報記憶部1に、以下の
ような情報が格納されているものとする。 file-exists(file1) さらに、事実マシンnode1 にはfile1 なるファイルが存
在し、しかも文字列patentを含んでいるものとする。こ
の場合、エージェントはマシンnode1 に移動後、改めて
初期化からプラン生成の手続きを実行する。その結果、
エージェント情報記憶部に格納された情報は、以下のよ
うに変化する。 アクション集合:[grep(file1,patent)] 安全性条件:[(grep(file1,patent),*end*),(*start*,*
end*)] 因果リンク:[(*start*,file-exists(file1),grep(file
1,patent)),(grep(file1,patent),include(file1,paten
t),*end*)] 未達成ゴールリスト:[] これにより、プラン生成成功となり、アクションgrep(f
ile1,patent)の実行によりプラン実行成功となるので、
エージェントはローカルマシンに戻ってユーザにその旨
の情報を出力する。図6に実行結果の出力例を示す。こ
の例では、表示用のウインドウ中に、最終的なゴール5
00としての要求記述と共に、実行結果501が表示さ
れている。
In the example of this embodiment, it is assumed that the following information is stored in the local information storage unit 1 in the remote machine node1 after the transfer. file-exists (file1) Further, it is assumed that a file named file1 exists on the machine node1 and contains the character string patent. In this case, after moving to the machine node1, the agent executes the procedure of initialization to plan generation again. as a result,
The information stored in the agent information storage changes as follows. Action set: [grep (file1, patent)] Security condition: [(grep (file1, patent), * end *), (* start *, *
end *)] Causal link: [(* start *, file-exists (file1), grep (file
1, patent)), (grep (file1, patent), include (file1, paten
t), * end *)] Unachieved goal list: [] The plan generation succeeded, and the action grep (f
ile1, patent) will execute the plan successfully.
The agent returns to the local machine and outputs information to that effect to the user. FIG. 6 shows an output example of the execution result. In this example, the final goal 5 is displayed in the display window.
The execution result 501 is displayed together with the request description as “00”.

【0111】また、仮にファイルfile1 が他のマシンに
移されていても、代わりに"maybe(file-exists(file2)
at node2)"などの情報がローカル情報記憶部に格納され
ていれば、再プランニングによりマシンnode2 にエージ
ェントが移動して、目的を達成することができるので、
環境の変化にも柔軟に対応しうる。
Even if the file file1 has been moved to another machine, "maybe (file-exists (file2)
If information such as "at node2)" is stored in the local information storage unit, the agent can be moved to machine node2 by replanning to achieve the purpose.
It can respond flexibly to changes in the environment.

【0112】〔1−3.効果〕以上のように、第1実施
形態によれば、ファイルなどの各構成要素がネットワー
ク上のどのノードにあるかといった構成は第1の情報と
して格納しておき、エージェントはこの第1の情報に基
づいて生成されるプランにしたがって、ノード間での移
動や移動先での再プランニングなどを含む各種処理を行
う。このため、エージェントの動作系列をユーザが記述
する必要がなく、また、ノード間で情報のやり取りを続
ける必要もないためノード間の接続切断の影響も受けに
くい。さらに、ノード間でのファイル移動といった構成
の変更についても、それにしたがって第1の情報を更新
することでエージェントの挙動に反映でき、予期せぬ構
成や状況の変化にも対応が可能となる。特に、エージェ
ントが他のノードに移動してプランを生成・実行する
際、ノード保全のための制約をプランが満たすと判定さ
れた場合だけプランが実行されるので、システム資源の
浪費といった有害な挙動が事前に防止され、ノードやシ
ステム全体のセキュリティ・セーフティが保証される。
なお、プランが制約を満足しない場合は、プランを生成
し直すことでプランを修正する他、プラン生成を中止し
たり、他のノードに移動し、移動先のノードに格納され
ている情報を使ってプラン生成をやり直すなどの対応が
考えられる。
[1-3. Effect] As described above, according to the first embodiment, the configuration such as which node on the network each component such as a file is stored in is stored as the first information, and the agent transmits this first information. Various processes including movement between nodes and replanning at the destination are performed in accordance with the plan generated based on. Therefore, there is no need for the user to describe the operation sequence of the agent, and there is no need to continue exchanging information between nodes. In addition, a change in the configuration such as a file transfer between nodes can be reflected in the behavior of the agent by updating the first information accordingly, and it is possible to cope with an unexpected change in the configuration or situation. In particular, when an agent moves to another node to generate and execute a plan, the plan is executed only when it is determined that the plan satisfies the constraints for node integrity, so harmful behavior such as waste of system resources Is prevented in advance, and the security and safety of the node and the entire system are guaranteed.
If the plan does not satisfy the constraints, modify the plan by regenerating the plan, cancel the plan generation, move to another node, and use the information stored in the destination node. It is possible to take measures such as redoing the plan generation.

【0113】また、第1実施形態では、制約を満たさな
かったプランが再プランニングなどで修正されるので、
セキュリティ・セーフティが保証されるだけでなくエー
ジェントの活動続行も確保される。
In the first embodiment, a plan that does not satisfy the constraints is corrected by re-planning or the like.
Not only security and safety are guaranteed, but also the continuation of the agent's activity is ensured.

【0114】〔2.第2実施形態〕第2実施形態は、上
に述べた第1実施形態と同様の構成及び処理について、
より具体的な例を示すものである。より具体的には、第
2実施形態の目的は、優先順位の低いファイルを削除す
ることで、優先順位の高い新たなファイルをノードに書
き込める可能性を向上させることである。また、第3実
施形態の目的は、ファイルごとの優先順位をどのように
計算するか予め指定することで、柔軟な処理を容易にす
ることである。
[2. Second Embodiment] The second embodiment has the same configuration and processing as the first embodiment described above.
It shows a more specific example. More specifically, an object of the second embodiment is to improve the possibility of writing a new file with a high priority to a node by deleting a file with a low priority. An object of the third embodiment is to facilitate flexible processing by designating in advance how to calculate the priority for each file.

【0115】〔2−1.第2実施形態における具体例〕
この第2実施形態では、本発明を適用する例題として
は、ネットワーク上のノードである宣伝サーバを巡回し
て、各サイトに広告情報を登録して行く宣伝用エージェ
ントを取り上げる。すなわち、本例題の設定は次のよう
なものとする。
[2-1. Specific Example in Second Embodiment]
In the second embodiment, as an example to which the present invention is applied, an advertisement agent that goes around an advertisement server, which is a node on a network, and registers advertisement information at each site will be described. That is, the setting of this example is as follows.

【0116】(1)まず、エージェントを利用するにあ
たっては、一回の巡回においてできるかぎり大量の情報
を登録させたい、という要求があるものとする。例え
ば、広告代理店が、エージェントを利用して、複数顧客
の宣伝文書をこれらのサイトに掲載しようとするような
場合に、このような要求が生じる。
(1) First, when using an agent, it is assumed that there is a request to register as much information as possible in one round. Such a request occurs, for example, when an advertising agency wants to use an agent to post promotional documents for a plurality of customers on these sites.

【0117】(2)但し、一般に宣伝サーバにおいて
は、ユーザすなわちエージェントの場合は、その発信者
あたりの書込み制限が設定される。したがって、各ユー
ザおよびエージェントは、ある程度書込みが多くなる
と、古くなったものなど重要度の低いものから削除しな
ければならないものとする。なお、各サイトの書込み制
限の具体的な値は、それぞれのサイトが独自に決定する
ものとする。
(2) However, in general, in the case of an advertisement server, in the case of a user, that is, an agent, a write limit per sender is set. Accordingly, it is assumed that each user and agent must delete, from a less important one such as an old one, when the number of writes increases to some extent. It should be noted that the specific value of the writing restriction of each site is determined by each site independently.

【0118】(3)また、宣伝サーバは一般に公開され
ているものであるので、そのユーザとしては不特定多数
が対象となる。したがって、ユーザ毎の書込み制限も、
ユーザ数や各ユーザのステータスに応じて適時変更する
必要がある。したがって、宣伝サーバについては自動的
な管理が不可欠である。その場合、管理ミスにより、意
図していた制限以上に広告などが書込まれることで、ノ
ードである宣伝サーバのセキュリティ・セーフティを侵
害されるようなことがないようにしたいものとする。
(3) Since the advertisement server is open to the public, an unspecified number of users are targeted. Therefore, the write limit for each user is also
It needs to be changed as needed according to the number of users and the status of each user. Therefore, automatic management of the advertisement server is essential. In such a case, it is desired that the security and safety of the advertisement server, which is a node, is not infringed due to an administration error that causes an advertisement or the like to be written beyond the intended limit.

【0119】(4)さらに、エージェントが複数の文書
を登録する場合、それらの文書間に重要度の違いを考慮
したいものとする。また、各サイトは、それぞれどのよ
うな分野の広告を掲載の対象にするかなどでそれぞれ違
った特徴を持っており、エージェントはそのような特徴
をも考慮して宣伝を行いたいものとする。したがって、
これらの観点も重視して、書込み制限に対してどのよう
に対処するかを決める必要がある。
(4) Further, when the agent registers a plurality of documents, it is necessary to consider a difference in importance between the documents. In addition, each site has different characteristics depending on what kind of advertisements are to be posted, and it is assumed that the agent wants to advertise in consideration of such characteristics. Therefore,
It is necessary to decide how to deal with the writing restriction by also giving importance to these viewpoints.

【0120】本例題においては、以上のような要求を満
たしながら、プランニングと制約にかかわる判定やプラ
ンの修正といった処理を行うことで、各サイトの書込み
制限を守りながら、宣伝文書の掲載・削除を行うことに
より、効果的な宣伝活動を行うものとし、以下にその具
体的手続きを示す。この手続きでは、まず、次のような
初期設定を行う。
In the present example, while fulfilling the above requirements, the processing relating to the planning and the restriction and the modification of the plan are performed, so that the posting / deletion of the advertisement document can be performed while observing the writing restriction of each site. By doing so, effective advertising activities will be conducted, and the specific procedures will be described below. In this procedure, first, the following initial settings are performed.

【0121】〔2−2.第2実施形態における処理手
順〕 〔2−2−1.初期設定の内容〕エージェント、および
各サーバにおいて、あらかじめ次のようなパラメータを
設定しておく。 (1)エージェントが宣伝を担当する各文書の情報量:
文書di (i=1,...,l)に対しdqi とする。 (2)各文書の重要度:文書di に対しpi とする。 (3)各文書の分野関連度:文書di 、対象分野fj
(j=1,...,m)に対し、drijとする。 (4)各サーバの、ユーザ当りの掲載可能情報量:サー
バsk (k=1,...,n)に対しsqk とする。 (5)各サーバの分野関連度:サーバsk 、対象分野f
j に対し、srkjとする。
[2-2. Processing procedure in second embodiment] [2-2-1. Contents of Initial Setting] The following parameters are set in advance in the agent and each server. (1) The amount of information in each document for which the agent is responsible for advertising:
Let dqi be the document di (i = 1,..., L). (2) Importance of each document: Pi is assigned to document di. (3) Field relevance of each document: document di, target field fj
(J = 1,..., M) is drij. (4) Amount of publishable information per user of each server: sqk for server sk (k = 1,..., N). (5) Field relevance of each server: server sk, target field f
j is assumed to be srkj.

【0122】〔2−2−2.知識〕また、エージェント
の発信者は、次のような知識をエージェントに与えてお
く。 (1)アクション知識 このアクション知識は、エージェントが可能な動作に関
する知識であり、具体的には、動作の記述、動作を実行
するコマンド、動作が実行可能となる状況を表す事前条
件、および動作実行後に成立する状況を表す事後条件で
ある。例えば、文書Dを記載する動作advertise(D)に対
し、その事前条件は consumed_space(X) 、size(D,S) 、not(advertised(D)) といったものが考えられ、これらはそれぞれ、残り掲載
可能情報量がXバイト、文書DのサイズがSバイト、お
よび未掲載である、という条件を表す。また、事後条件
は、 consumed_space(X+S) 、advertised(D) といったものが考えられ、これは、文書Dが掲載された
と共に、掲載可能情報量がそれまでのXバイトに掲載さ
れた文書DのサイズSを加えたX+Sになったことを表
す。なお、このようなアクション知識を文字列で記述し
たものをアクション記述と呼ぶ。
[2-2-2. Knowledge] In addition, the sender of the agent gives the following knowledge to the agent. (1) Action knowledge This action knowledge is knowledge about an action that can be performed by an agent, and specifically, a description of an action, a command for executing the action, a precondition indicating a situation in which the action can be executed, and an action execution This is a post condition that represents a situation that is satisfied later. For example, for the operation advertise (D) that describes document D, the preconditions may be such as consumed_space (X), size (D, S), not (advertised (D)), and these are the remaining This represents a condition that the possible information amount is X bytes, the size of the document D is S bytes, and the document D is not posted. In addition, post-conditions such as consumed_space (X + S) and advertised (D) can be considered. This is because the document D has been posted and the amount of information that can be posted has been posted in the previous X bytes. X + S, which is obtained by adding the size S of A description of such action knowledge in a character string is called an action description.

【0123】(2)プランニングの制御のためのメタ知
識 このメタ知識は、制約が満足されない、すなわち、書込
み制限を超過した場合に、プランニングをやり直す(再
プランニング)を行う際に用いる。詳しくは後述する。
(2) Meta-Knowledge for Planning Control This meta-knowledge is used for re-planning (re-planning) when the constraint is not satisfied, that is, when the write limit is exceeded. Details will be described later.

【0124】(3)さらに発信者は、エージェントに対
する要求を、ここでは、宣伝文書をすべて掲載すること
をゴール記述としてエージェントに与えておく。この第
2実施形態では、各文書dに対し、advertised(d) とい
う記述になる。
(3) Further, the caller gives the request to the agent to the agent as a goal description in this case to post all the advertisement documents. In the second embodiment, a description “advertised (d)” is given for each document d.

【0125】〔2−2−3.サーバ巡回と文書掲載の手
続き〕以上のような情報に基づいて、次に、エージェン
トは、サーバ巡回・文書掲載手続きを以下のように行
う。 1.まず、エージェントは、巡回して文書を掲載するサ
ーバを決定する。そして、以下の手続きを、各巡回先サ
ーバに移動する毎に繰り返す。 2.すなわち、エージェントがサーバに移動すると、サ
ーバはエージェントの認証手続きを実行する。 3.この認証手続きが成功すると、サーバはエージェン
トに残り掲載可能情報量を通知する。 4.エージェントは、このように通知された掲載可能情
報量に、掲載したい全文書が収まるかどうかを計算す
る。この結果、収まるならば、全文書をそのサーバに掲
載して次のサーバに移動する。一方、収まらなければ、
掲載可能情報量に収まるような文書掲載・削除手続き
を、エージェントの動作を表すプランとして生成する。
なお、このプランについては、具体的には、第1実施形
態で説明したのと同じように、エージェントが制約にか
かわる判定と必要な場合は、制約を満たすための再プラ
ンニング手続きを行うことにより実現する。 5.このように、制約を満たすプランが得られると、そ
のプランを実行したうえ、次のサーバに移動する。より
具体的には、制約とプランニングにかかわる処理の手続
きは次の通りである。
[2-2-3. Procedure for server patrol and document posting] Based on the above information, the agent next performs a server patrol and document posting procedure as follows. 1. First, the agent determines a server that circulates and posts a document. Then, the following procedure is repeated each time the server moves to each of the traveling destination servers. 2. That is, when the agent moves to the server, the server performs an agent authentication procedure. 3. If this authentication procedure is successful, the server notifies the agent of the remaining publishable information amount. 4. The agent calculates whether or not all the documents to be posted fit in the notified amount of information that can be posted. As a result, if it fits, all documents are posted on that server and moved to the next server. On the other hand, if it does not fit,
A document posting / deletion procedure that fits in the amount of information that can be posted is generated as a plan that represents the operation of the agent.
Note that this plan is specifically realized by the agent determining the constraint and, if necessary, performing a replanning procedure to satisfy the constraint, as described in the first embodiment. I do. 5. As described above, when a plan that satisfies the constraint is obtained, the plan is executed and the server moves to the next server. More specifically, the procedure of processing related to constraints and planning is as follows.

【0126】〔2−2−4.制約とプランニングにかか
わる処理の手続き〕 1.まず、エージェントは、第1実施形態において詳し
く説明したように、与えられたゴールから後ろ向き推論
を行うことによりプランを生成する(ステップ20
3)。すなわち、アクション知識の事後条件から事前条
件への連鎖を生成することによって、ゴールを達成する
ためのプランを生成する。例えば、この第2実施形態の
例題について単純化して表現すれば、「文書dが掲載さ
れた」というゴールを満たすためには、「文書dの掲
載」という動作を実行すれば良い、といった推論を行
う。
[2-2-4. Procedures for processing related to constraints and planning] First, as described in detail in the first embodiment, the agent generates a plan by performing backward inference from a given goal (step 20).
3). That is, a plan for achieving the goal is generated by generating a chain from the post-condition to the pre-condition of the action knowledge. For example, if the example of the second embodiment is expressed in a simplified manner, it can be inferred that the operation of “posting of document d” may be executed in order to satisfy the goal of “document d is posted”. Do.

【0127】2.エージェントは、このようなプラン生
成後、生成したプランがセキュリティ・セーフティのた
めの制約を満たすかどうかをチェックする(ステップ2
06)。本例題では、具体的には、仮にプランを実行し
た場合について掲載文書の情報量の合計を計算すること
で、その情報量がプラン実行後にも書込み制限以内に収
まるかどうかをチェックする。
[0127] 2. After generating such a plan, the agent checks whether the generated plan satisfies the security and safety constraints (step 2).
06). In this example, specifically, it is checked whether or not the information amount is within the writing limit even after the execution of the plan, by calculating the total amount of information of the posted document in the case where the plan is executed.

【0128】ここで、チェックに成功すれば、すなわち
プランが制約を満たすことがわかれば手続きを終了して
プランの実行に移るが、チェックに失敗すれば、すなわ
ちプランが制約を満たさないことがわかれば、メタ知識
にしたがって再プランニングを行う(ステップ20
7)。なお、本例題におけるメタ知識は、「未掲載文
書、および既掲載文書のうち、重要度最小のものを削
除、または不掲載とする。ただし、削除を先に行う。」
というものである。
Here, if the check succeeds, that is, if the plan satisfies the constraint, the procedure is terminated and the execution of the plan is started. If the check fails, that is, the plan does not satisfy the constraint. If so, replanning is performed according to the meta-knowledge (step 20).
7). Note that the meta-knowledge in the present example is that "the unimportant document and the previously published document with the minimum importance are deleted or not published. However, the deletion is performed first."
That is.

【0129】3.エージェントは、上記メタ知識に基づ
く再プランニングでは、新規掲載予定文書、および現在
いるサーバに既掲載の文書に対し、そのサーバにおける
重要度を次の式により計算する。ここで、文書di のサ
ーバsk における重要度は、
3. In the re-planning based on the meta-knowledge, the agent calculates the importance of the new publication-scheduled document and the document already published on the current server by the following formula. Here, the importance of the document di on the server sk is:

【数1】 とする。(Equation 1) And

【0130】4.さらに前記メタ知識に基づき、各文書
のうち重要度最小のものを、 ・新規掲載予定文書であれば不掲載、 ・既掲載文書であれば削除、 とした場合のプランを生成し、再び制約を満たすかのチ
ェックから繰り返す(ステップ206)。
[0130] 4. Further, based on the meta-knowledge, a plan is created in which the least important of the documents is set as follows. It repeats from the check of whether it is satisfied (step 206).

【0131】〔2−2−5.エージェントの動作の具体
例〕次に、エージェントのさらに具体的な動作につい
て、以下のような情報に基づいた数値例により示す。ま
ず、上に説明した文法にしたがって、次のようなアクシ
ョン記述が与えられているものとする。 アクション記述:advertise(Document) 事前条件:[not(advertised(Document)), size(Documen
t, Size),consumed_space(Space)] 事後条件:[del(consumed_space(Space)), add(adverti
sed(Document)),del(not(advertised(Document))), add
(consumed_space(Space+Size))] アクション記述:delete(Document) 事前条件:[advertised(Document), size(Document, Si
ze),consumed_space(Space)] 事後条件:[del(consumed_space(Space)), del(adverti
sed(Document)),add(not(advertised(Document))), add
(consumed_space(Space-Size))] また、エージェント情報として、次のような知識が追加
されているものとする。 size(d1, 500) size(d2, 700) size(d3, 300) size(d4, 400) size(d5, 600) important(d1) = 8 important(d2) = 6 important(d3) = 10 important(d4) = 3 important(d5) = 7 relevance(d1, f1) = 7 relevance(d2, f1) = 3 relevance(d3, f1) = 1 relevance(d4, f1) = 10 relevance(d5, f1) = 5 relevance(d1, f2) = 5 relevance(d2, f2) = 9 relevance(d3, f2) = 2 relevance(d4, f2) = 4 relevance(d5, f2) = 6 change_goal(advertised(Document), not(advertised(D
ocument))):-min(server_important(Document)) ここで、この "change_goal(" で始まる最後の知識
は、"server_important"が最小のものから、ゴール adv
ertised を not(advertised) に変更する、という制約
充足メタ知識を表す。
[2-2-5. Specific example of operation of agent] Next, more specific operation of the agent will be shown by numerical examples based on the following information. First, it is assumed that the following action description is given according to the grammar described above. Action description: advertise (Document) Precondition: [not (advertised (Document)), size (Documen
t, Size), consumed_space (Space)] Postcondition: [del (consumed_space (Space)), add (adverti
sed (Document)), del (not (advertised (Document))), add
(consumed_space (Space + Size))] Action description: delete (Document) Precondition: [advertised (Document), size (Document, Si)
ze), consumed_space (Space)] Postcondition: [del (consumed_space (Space)), del (adverti
sed (Document)), add (not (advertised (Document))), add
(consumed_space (Space-Size))] Further, it is assumed that the following knowledge is added as agent information. size (d1, 500) size (d2, 700) size (d3, 300) size (d4, 400) size (d5, 600) important (d1) = 8 important (d2) = 6 important (d3) = 10 important ( d4) = 3 important (d5) = 7 relevance (d1, f1) = 7 relevance (d2, f1) = 3 relevance (d3, f1) = 1 relevance (d4, f1) = 10 relevance (d5, f1) = 5 relevance (d1, f2) = 5 relevance (d2, f2) = 9 relevance (d3, f2) = 2 relevance (d4, f2) = 4 relevance (d5, f2) = 6 change_goal (advertised (Document), not (advertised) (D
ocument))):-min (server_important (Document)) where the last knowledge starting with "change_goal (" is the goal adv from the smallest "server_important"
Represents constraint satisfaction meta-knowledge of changing ertised to not (advertised).

【0132】また、 node0 のローカル情報として、 maybe(not(advertised(d1) at node1)) maybe(not(advertised(d2) at node1)) maybe(not(advertised(d3) at node1)) maybe(advertised(d4) at node1) maybe(advertised(d5) at node1) という知識があり、要求記述としては、 advertised(d1) at node1 advertised(d2) at node1 advertised(d3) at node1 advertised(d4) at node1 advertised(d5) at node1 というものが与えられたものとする。この場合、エージ
ェントは、まずノード node0 においてプラン [go(node1), advertise(d1), advertise(d2), advertis
e(d3)] を作成し実行する結果、ノードnode1 に移動する。そし
て、移動先のこのノードnode1 のローカル情報は次のと
おりであるものとする。 not(advertised(d1) at node1) not(advertised(d2) at node1) not(advertised(d3) at node1) advertised(d4) at node1 advertised(d5) at node1 consumed_space(1000) server_important(Document) = important(Document) *
(relevance(Document, f1) * 8 + relevance(Document,
f2) * 5)ss-constraint([consumed_space(Space), Spa
ce < 2000]) このノード node1 において、エージェントは3件の文
書d1 ,d2 ,d3 の掲載を行おうとする。一方、サー
バには既に2件の文書d4 ,d5 が掲載されている。ま
た、ここでは、各文書の情報量、重要度、および各分野
との関連度は図7の通りであるとする。また、サーバの
各分野f1 、f2 との関連度は、それぞれ8、5とし、
上記エージェントの発信者が利用可能な残り情報量は1
000バイトであるとする。
Also, as local information of node0, maybe (not (advertised (d1) at node1)) maybe (not (advertised (d2) at node1)) maybe (not (advertised (d3) at node1)) maybe (advertised (d4) at node1) maybe (advertised (d5) at node1) and the required description is advertised (d1) at node1 advertised (d2) at node1 advertised (d3) at node1 advertised (d4) at node1 advertised (d5) Assume that at node1 is given. In this case, the agent first executes the plan [go (node1), advertise (d1), advertise (d2), advertis
e (d3)], and moves to node node1 as a result. The local information of the destination node node1 is as follows. not (advertised (d1) at node1) not (advertised (d2) at node1) not (advertised (d3) at node1) advertised (d4) at node1 advertised (d5) at node1 consumed_space (1000) server_important (Document) = important ( Document) *
(relevance (Document, f1) * 8 + relevance (Document, f1)
f2) * 5) ss-constraint ((consumed_space (Space), Spa
ce <2000]) At this node node1, the agent tries to publish three documents d1, d2 and d3. On the other hand, two documents d4 and d5 have already been posted on the server. Here, it is assumed that the information amount, the importance, and the degree of association with each field of each document are as shown in FIG. Also, the degree of relevance to each field f1 and f2 of the server is 8, 5 respectively,
The remaining information available to the caller of the agent is 1
Let it be 000 bytes.

【0133】この場合、エージェントはサーバで認証成
功後、改めてプラン [advertise(d1), advertise(d2), advertise(d3)] を生成し、このプランがセキュリティ・セーフティ制約
を満足するかどうかを判定する。ここでは、新たに掲載
したい情報量が合わせて500+700+300=15
00となるが、既に掲載済の文書d4 及びd5 の情報量
が合計1000バイトあるため、プラン実行後の条件と
して consumed_space(2500) となり、現在のプランのま
ま実行すると、実行後の掲載文書の情報量の総計が、許
される情報量の範囲に収まりきらないことがわかる。す
なわち、ここで生成されたプランは上記制約を満足しな
いことが判明する。つまり、このプランを実行すると、
設定された書込み上限を越えて情報を書込むこととな
り、システム資源を浪費するという、有害な挙動とな
る。
In this case, the agent generates a plan [advertise (d1), advertise (d2), advertise (d3)] again after successful authentication at the server, and determines whether or not this plan satisfies the security and safety constraints. I do. Here, the total amount of information to be newly posted is 500 + 700 + 300 = 15.
00, but since the information amount of the already posted documents d4 and d5 is 1000 bytes in total, it becomes consumed_space (2500) as a condition after the execution of the plan. It can be seen that the total amount does not fall within the range of the allowed information amount. That is, it turns out that the plan generated here does not satisfy the above-mentioned restrictions. In other words, when you run this plan,
Information is written beyond the set upper limit of writing, which is a harmful behavior that wastes system resources.

【0134】そこで、図1に示した修正部11は、メタ
知識を利用し、重要度の低い順にゴールを変更し、プラ
ン生成を繰り返す。このプラン生成では、まず、次のよ
うに各文書の重要度を計算する。
Therefore, the modifying unit 11 shown in FIG. 1 uses the meta-knowledge, changes the goals in the order of importance, and repeats the plan generation. In this plan generation, first, the importance of each document is calculated as follows.

【0135】 d1 : 8×( 7×8+5×5)=648 d2 : 6×( 3×8+9×5)=414 d3 :10×( 1×8+2×5)=180 d4 : 3×(10×8+4×5)=300 d5 : 7×( 5×8+6×5)=490 したがって、各文書は重要度の順にd1 ,d5 ,d2 ,
d4 ,d3 となる。そこで、まず重要度の最も低いd3
を不掲載とすると、新規掲載情報量が500+700=
1200となるが、利用可能な残り情報量である100
0バイトにはまだ収まりきらない。そこで次に重要度の
低いd4 の削除を行うと、掲載可能情報量が1000+
400=1400バイトとなり、d1 ,d2 が掲載可能
となる。そこで、 [delete(d4), advertise(d1), advertise(d2)] というプランを生成すると、このプランは制約を満足す
る。このため、エージェントは、この新しいプランにし
たがって、まずd4 の削除を行い、次にd1 ,d2 の掲
載を行って、本サーバでの動作を終了し、次のサーバに
移動する。
D1: 8 × (7 × 8 + 5 × 5) = 648 d2: 6 × (3 × 8 + 9 × 5) = 414 d3: 10 × (1 × 8 + 2 × 5) = 180 d4: 3 × (10 × 8 + 4) × 5) = 300 d5: 7 × (5 × 8 + 6 × 5) = 490 Therefore, each document is classified into d1, d5, d2,
d4 and d3. Therefore, d3, which is the least important,
, And the amount of newly posted information is 500 + 700 =
1200, but the remaining available information amount of 100
It still does not fit in 0 bytes. Therefore, when the next less important d4 is deleted, the amount of available information becomes 1000+
400 = 1400 bytes, and d1 and d2 can be posted. If a plan called [delete (d4), advertise (d1), advertise (d2)] is generated, this plan satisfies the constraints. For this reason, the agent deletes d4 according to the new plan, then lists d1 and d2, terminates the operation on this server, and moves to the next server.

【0136】〔2−3.第2実施形態の効果〕以上のよ
うに、第2実施形態では、ノードにファイルを書き込む
プランについて、書き込み後の情報量が許容値を超えな
いかが判定され、超える場合は優先順位の低いファイル
の書き込みを除くことでプランが修正される。このた
め、広告文書の掲示などにおいて、許容量を越えたファ
イルがノードに書き込まれるといった問題を避けなが
ら、重要なファイルの書き込みを確保することができ
る。
[2-3. Effect of Second Embodiment] As described above, in the second embodiment, it is determined whether or not the amount of information after writing does not exceed an allowable value in a plan for writing a file to a node. The plan is modified by removing the post. For this reason, in posting an advertisement document, it is possible to secure writing of an important file while avoiding a problem that a file exceeding an allowable amount is written to a node.

【0137】また、第2実施形態では、では、プランで
書き込もうとするファイルがノードの許容値に収まらな
いとき、既にノードに書き込まれているファイルのうち
優先順位の低いものの削除がプランに加えられるので、
優先順位の高い新たなファイルをノードに書き込める可
能性が向上する。
In the second embodiment, when the file to be written in the plan does not fall within the allowable value of the node, the deletion of the file having the lower priority order among the files already written in the node is added to the plan. So
The possibility that a new file with a higher priority can be written to the node is improved.

【0138】また、第2実施形態では、では、個々のフ
ァイルの重要性やファイルとノードとの関係の深さとい
った情報に基づいて、ファイルごとの優先順位をどのよ
うに計算するかを予め指定できるので、柔軟な処理が容
易になる。
In the second embodiment, how to calculate the priority of each file in advance is specified based on information such as the importance of each file and the depth of the relationship between the file and the node. Because it is possible, flexible processing becomes easy.

【0139】つまり、従来では、自律的エージェントが
ホストに対して結果的に有害な挙動をとることに対する
セキュリティ・セーフティという点では対応が不十分で
あったが、第2実施形態で説明した例題においては、制
約にかかわる判定やプラン修正といった処理を、Plange
ntにおけるプランニングの機構に組み込むことによりこ
のような対応を効果的に実現する例を示した。これによ
り、エージェントがプランニング機構を用いて、宣伝サ
ーバへの文書の書込むためのプランを自律的に生成し実
行する際に、サーバへの書込み制限というセーフティ要
求を満足することが保証できる。
That is, in the past, in the case of the autonomous agent, the security safety against the eventual harmful behavior to the host was insufficient, but in the example described in the second embodiment, Performs processing such as judgment related to constraints and plan modification
An example of effectively realizing such a response by incorporating it into the planning mechanism in nt was presented. Thereby, when the agent autonomously generates and executes a plan for writing a document to the advertisement server using the planning mechanism, it is possible to guarantee that the safety requirement of writing restriction to the server is satisfied.

【0140】また、上に述べたような本発明をPlangent
に組込むと同時に、不正アクセス防止といった意味での
既存のセキュリティやセーフティにかかわる機能を同時
に組み合わせることもできる。さらに、エージェントが
動作不能になるといった、他のセキュリティ・セーフテ
ィ課題の解決をも併せて図ることにより、Plangentの実
用化・普及を促進することができる。
Also, the present invention as described above is
At the same time, it is possible to combine existing security and safety functions in the sense of preventing unauthorized access at the same time. In addition, the practical use and spread of Plangent can be promoted by solving other security and safety issues such as the inoperability of agents.

【0141】例えば、悪意のあるエージェントによるホ
ストへの攻撃を防止する効果を得るためには、例えば、
セキュリティ・セーフティ制約として、アクセス権限に
関する制約を記述し、アクセス制限に関係する動作の知
識もローカル知識として記述することにより、不正アク
セスを防止できる。
For example, to obtain an effect of preventing a malicious agent from attacking a host, for example,
By describing restrictions on access authority as security and safety restrictions, and by describing knowledge of operations related to access restrictions as local knowledge, unauthorized access can be prevented.

【0142】さらに具体的には、例えばローカルな動作
知識として、動作 read(a_restricted_file) の事前条件に add(access_level(L)) があり、セキュリティ・セーフティ制約として、 access_level(L), L > 5 とあれば、アクセス権限レベルが 5 以下のエージェン
トによる不正アクセスを防止できる。
More specifically, for example, as a local operation knowledge, there is add (access_level (L)) as a precondition of the operation read (a_restricted_file), and access_level (L), L> 5 as a security safety constraint. This will prevent unauthorized access by agents with an access privilege level of 5 or less.

【0143】〔3.第3実施形態〕第3実施形態は、第
1実施形態と略同様(図1)の構成を有する情報処理装
置について、その構成及び作用をより具体的に示すもの
で、特に、情報処理の目的やエージェントの種類に対応
する複数のフィールドに分けることでプラン作成を効率
化したものである。また、第3実施形態は、プランをど
のように修正するかの情報をエージェントがノード間移
動のときも持ち歩くことで、エージェントに適した修正
の手法を適用するようにしたものである。また、第3実
施形態は、移動命令に前提となった事前条件を添付して
おくことで、移動失敗についての原因特定と対応を容易
にしたものである。
[3. Third Embodiment] The third embodiment more specifically shows the configuration and operation of an information processing apparatus having a configuration substantially the same as that of the first embodiment (FIG. 1). The plan creation is made more efficient by dividing the data into a plurality of fields corresponding to the types of agents and agents. In the third embodiment, information on how to modify a plan is carried around even when the agent moves between nodes, so that a modification method suitable for the agent is applied. Further, in the third embodiment, by attaching a precondition presupposed to the movement command, the cause of the movement failure can be easily specified and dealt with.

【0144】〔3−1.構成〕 〔3−1−1.全体構成〕第3実施形態は、第1実施形
態と同様、ネットワークに接続された複数のノード上
で、ソフトウェア上の実行主体であるエージェントが動
作することによって情報処理を行う情報処理装置であ
る。図8は、第3実施形態において、ネットワークNに
接続された各ノードの構成を示す機能ブロック図であ
る。この図に示すように、各ノードは、フィールド知識
ベース20と、ノード知識ベース12と、プランナ13
と、実行器14と、ノードマネージャ15と、更新器1
6とを有する。
[3-1. Configuration] [3-1-1. Overall Configuration] The third embodiment is, like the first embodiment, an information processing apparatus that performs information processing by operating an agent that is an execution entity of software on a plurality of nodes connected to a network. FIG. 8 is a functional block diagram showing a configuration of each node connected to the network N in the third embodiment. As shown in this figure, each node includes a field knowledge base 20, a node knowledge base 12, a planner 13
Executor 14, Node Manager 15, Updater 1
6.

【0145】すなわち、まず、各ノードは、ノードに配
置された構成要素へのアクセスに用いるための第1の情
報としてローカル情報を有する。データベースであるフ
ィールド知識ベース20とノード知識ベース12は、ま
ず、この第1の情報を記憶するもので、第1実施形態に
おけるローカル情報記憶手段に対応する。すなわち、ロ
ーカル情報は、エージェントの種類ごとに対応する複数
のフィールドに区分された部分と、ノード固有の部分と
があり、それぞれ、フィールド知識ベース20とノード
知識ベース12に記憶されている。フィールドは、特定
の種類すなわち目的や分野のエージェントのみが利用す
る情報のグループである。
That is, first, each node has local information as first information to be used for accessing the components arranged in the node. The field knowledge base 20 and the node knowledge base 12, which are databases, first store the first information, and correspond to the local information storage means in the first embodiment. That is, the local information includes a portion divided into a plurality of fields corresponding to each type of agent and a portion unique to the node, and is stored in the field knowledge base 20 and the node knowledge base 12, respectively. A field is a group of information used only by agents of a particular type, ie, purpose or field.

【0146】なお、第3実施形態では、各知識ベース1
1,12には、前記のローカル情報に加え、エージェン
トがとりうるアクションに関する第2の情報も記憶され
ている。プランナ13は、これら第1及び第2の情報に
基づいて、与えられた目的を達成するためにエージェン
ト(プロセス)17が実行すべきプランの作成(プラン
ニング)を行う部分で、第1実施形態におけるプラン生
成手段に対応する。
In the third embodiment, each knowledge base 1
In addition to the above-mentioned local information, second information about actions that can be taken by the agent is stored in the information items 1 and 12. The planner 13 is a part for creating (planning) a plan to be executed by the agent (process) 17 to achieve a given purpose based on the first and second information. Corresponds to plan generation means.

【0147】実行器14は、作成されたプランの実行を
行う部分であり、第1実施形態におけるプラン実行手段
に対応する。また、ノードマネージャ15は、エージェ
ント17の生成/消滅及びノード間における移動を実現
するための部分で、第1実施形態におけるエージェント
管理部に対応する。なお、各ノードのプランナ3及び実
行器14は、他のノードから移動してきたエージェント
についても、プランの実行及び必要なプランの作成を行
う。
The executing unit 14 executes the created plan, and corresponds to the plan executing means in the first embodiment. The node manager 15 is a part for realizing generation / deletion of the agent 17 and movement between nodes, and corresponds to the agent management unit in the first embodiment. The planner 3 and the executor 14 of each node execute a plan and create a necessary plan for an agent moved from another node.

【0148】なお、第1の情報で表される情報は、ノー
ド上のソフトウェア要素に関するもので、具体的には、
そのノードの状態や、ノードに存在するファイル、デー
タベース、保有するソフトウェア等である。また、アク
ションに関する第2の情報はノード毎に定義される。
The information represented by the first information relates to the software element on the node.
The status of the node, files and databases existing in the node, owned software, and the like. Also, the second information on the action is defined for each node.

【0149】プランナ13は、エージェントのプランを
作成する際、当該エージェントに対応するフィールドの
情報に基づいて作成するように構成されている。また、
ノードマネージャ15は、ノード間における移動の際、
エージェントが移動先のノードにおける対応するフィー
ルドに移動するように構成されている。なお、エージェ
ントを移動先の所定のフィールドに移動させるには、プ
ラン中に含める移動命令において、命令のパラメータな
ど所定の形式でフィールドを指定すればよい。
The planner 13 is configured to create a plan for an agent based on information in a field corresponding to the agent. Also,
When the node manager 15 moves between nodes,
The agent is configured to move to a corresponding field in the destination node. In order to move the agent to a predetermined destination field, the field may be specified in a predetermined format, such as a parameter of the command, in the move command included in the plan.

【0150】また、更新器16は、プランニング、プラ
ンの実行又はプランに基づく移動が失敗した場合に、失
敗の原因となった情報を修正するための部分で、第1実
施形態における更新手段に対応する。
The updating unit 16 is a part for correcting the information causing the failure when the planning, the execution of the plan or the movement based on the plan fails, and corresponds to the updating means in the first embodiment. I do.

【0151】また、ノードは、利用者インターフェース
としてGUI(グラフィカルユーザインタフェース)ア
プリケーション18を用いる。ここで、利用者インター
フェースは、ユーザがエージェントの状態を直接監視す
るために用いるソフトウェアで、第1実施形態における
入出力手段に対応する。エージェントはソフトウェア上
の実体であるため、ユーザがその状態を参照したり、制
御するためには、ユーザーインターフェースを有するソ
フトウェアが必要となり、このソフトウェアとして、G
UIアプリケーション18を用いるものである。また、
ノード毎のメモリなど資源の管理に関する情報は、ノー
ド管理情報記憶手段19に記憶される。
The node uses a GUI (graphical user interface) application 18 as a user interface. Here, the user interface is software used by the user to directly monitor the state of the agent, and corresponds to the input / output unit in the first embodiment. Since the agent is an entity in software, the user needs software having a user interface in order to refer to and control the state of the agent.
The UI application 18 is used. Also,
Information on resource management such as memory for each node is stored in the node management information storage unit 19.

【0152】また、ノードは、上に述べた構成に加え
て、図1に示したような第3の記憶部8と、判定部9
と、第4の記憶部10と、修正部11とを備えている。
なお、この第3実施形態においては、第3の記憶部8、
判定部9、第4の記憶部10及び修正部11の構成及び
作用は第1及び第2実施形態に示したと同様であるか
ら、これら以外の具体的な構成及びそれらの作用を中心
に説明する。
Further, in addition to the above-described configuration, the node includes a third storage unit 8 as shown in FIG.
, A fourth storage unit 10, and a correction unit 11.
In the third embodiment, the third storage unit 8,
Since the configurations and operations of the determination unit 9, the fourth storage unit 10, and the correction unit 11 are the same as those described in the first and second embodiments, the description will focus on specific configurations other than these and their operations. .

【0153】ここで、第3実施形態において例として用
いる具体的なノード構成の想定を図9に示す。この例に
おいては、ネットワークNに、node0, node1, node2 と
いう3個のノードXが接続された情報処理装置を想定す
る。各ノードXには、makeという名称のフィールドFが
存在し、その他のフィールドは省略する。すなわち、第
3実施形態におけるノード構成の例は、例えば、複数の
人手によるソフトウェア開発等において、ネットワーク
上に分散して作成される複数のソースファイルを、ある
必要な時点において特定のノードに集積することを想定
したもので、特に、その中の一部の処理を取り出して説
明するものである。
Here, FIG. 9 shows a concrete assumption of a node configuration used as an example in the third embodiment. In this example, an information processing apparatus in which three nodes X, node0, node1, and node2, are connected to a network N is assumed. Each node X has a field F named make, and other fields are omitted. That is, in the example of the node configuration in the third embodiment, for example, in software development by a plurality of people, a plurality of source files distributed and created on a network are accumulated in a specific node at a necessary time. In particular, some of the processes are extracted and described.

【0154】なお、図9に示すように、エージェントA
は、当該エージェントAに固有の情報として、状態又は
アクションに関する情報や、プラン修正のための第4の
情報を持ち、この情報はエージェント内の知識ベースD
Aに記憶されている。エージェントAは、ノード間の移
動の際もこれら情報を運搬し、運搬しているこれら情報
をプランニングやプラン修正などに用いる。
Note that, as shown in FIG.
Has information relating to a state or an action and fourth information for correcting a plan as information unique to the agent A, and this information is stored in a knowledge base D in the agent.
A. The agent A conveys such information even when moving between nodes, and uses the conveyed information for planning, plan modification, and the like.

【0155】〔3−1−2.エージェントの概略的構
成〕エージェントは、システムの利用者、又は本システ
ムを利用する別のソフトウェアが、ゴールを与えること
によって、ノード上に生成されるプロセスである。な
お、ノードとは、エージェントの移動の単位を指してお
り、抽象的な概念である。1台のホストに対して、1つ
のノードが存在することを通常の想定とするが、1台の
ホストに対して複数のノードが存在することもありう
る。ユーザは、ノードに対し、ネットワークにおいて唯
一となるノード名を与えておく。この場合、ノード名と
しては、URL等の既存のコンピュータネットワークの
ネーミング手法によってつけられた名称と同じ名称を与
えることが可能である。また、上記の「プロセス」は、
計算機上でソフトウェアを実行する単位であり、オペレ
ーティングシステムによって管理される。
[3-1-2. Schematic Configuration of Agent] An agent is a process generated on a node by a user of a system or another software using the present system by giving a goal. The node indicates a unit of movement of the agent, and is an abstract concept. It is generally assumed that one node exists for one host, but a plurality of nodes may exist for one host. The user gives the node a unique node name in the network. In this case, as the node name, it is possible to give the same name as a name given by an existing computer network naming method such as a URL. Also, the above “process”
A unit that executes software on a computer, and is managed by an operating system.

【0156】図10は、エージェントを、Plangentのモ
バイル・エージェントとして構成する場合の環境を示す
もので、ノードがフィールドに区分されている状態を示
す概念図である。フィールドに区分されるのは実際には
ノード毎に格納されている第1〜第4の情報であるが、
これらの情報はプラン作成やプラン実行などエージェン
トの活動の基礎すなわち活動の場としての役割を持つ。
したがって、ノード上の情報が区分されることによっ
て、当該ノード上には、エージェントの活動の「場」で
あるフィールドが複数存在することになる。
FIG. 10 shows an environment in which an agent is configured as a Plangent mobile agent, and is a conceptual diagram showing a state where nodes are divided into fields. Although what is actually divided into fields is the first to fourth information stored for each node,
These pieces of information have a role as a basis of the agent's activities such as plan creation and plan execution, that is, a place for activities.
Therefore, by dividing information on a node, a plurality of fields, which are “places” of agent activities, exist on the node.

【0157】図に示す環境構成の要素は、ホストH上に
常駐するノードX、ノードX内を分割するフィールド
F、ネットワークNを介してノードXを移動するエージ
ェントAなどである。
The components of the environment configuration shown in the figure are a node X resident on the host H, a field F for dividing the inside of the node X, an agent A for moving the node X via the network N, and the like.

【0158】このようなエージェントの目的は、情報処
理の目的として所定の表現形式で与えられたゴールを満
たすことにある。ゴールの一例は、他のどこかのノード
にあるはずの特定のファイルを探して、コピーを持ち帰
ることである。このために、エージェントは、与えられ
たゴールを満たすプランを生成し、実行する。エージェ
ントは、ゴールの達成のために必要であれば、他のノー
ドに移動することが可能である。エージェントによるこ
れらプラン作成やプラン実行、ノード間の移動などの処
理は、具体的にはプランナ13、実行器14、ノードマ
ネージャ15などによって実現される。
The purpose of such an agent is to satisfy a goal given in a predetermined expression form as a purpose of information processing. One example of a goal is to look for a particular file that might be on some other node and bring back a copy. For this purpose, the agent generates and executes a plan that satisfies the given goal. Agents can move to other nodes as needed to achieve the goal. The processes such as plan creation, plan execution, and movement between nodes by the agent are specifically realized by the planner 13, the executor 14, the node manager 15, and the like.

【0159】そして、生成されたエージェントは、最終
的にゴールを達成するか、ゴール達成不可能となるか、
いずれかの状態に至り、消滅する。ゴールを達成した場
合をエージェントの正常終了と呼び、ゴール達成不可能
となった場合をエージェントの完全失敗と呼ぶ。消滅の
際に、終了時処理が行われる。
Then, the generated agent ultimately achieves the goal or cannot achieve the goal,
Either state is reached and disappears. The case where the goal is achieved is called normal termination of the agent, and the case where the goal cannot be achieved is called complete failure of the agent. At the time of extinction, a termination process is performed.

【0160】図11に、エージェントの活動における複
数のフェーズを説明する状態遷移図を示す。すなわち、
生成されたエージェントは、その後、プランニング・フ
ェーズP、実行フェーズE、移動フェーズMの3つのフ
ェーズを繰り返しながら、情報処理を行う。なお、この
プランニング・フェーズPは、セキュリティ・セーフテ
ィのための制約にかかわる判定や、制約違反の場合のプ
ラン修正といった処理も含めて表している。
FIG. 11 is a state transition diagram illustrating a plurality of phases in the activity of the agent. That is,
Thereafter, the generated agent performs information processing while repeating three phases of a planning phase P, an execution phase E, and a movement phase M. Note that the planning phase P also includes processes such as a determination regarding a constraint for security and safety and a plan modification in the case of a constraint violation.

【0161】〔3−1−3.エージェントの論理構造〕
次に、第3実施形態におけるエージェントの論理的な構
造を図12に示す。すなわち、エージェントは、エージ
ェント名、対応するフィールドのフィールド名、所有フ
ァイルなどのデータを有する。なお、所有ファイルはエ
ージェントが自己の一部として所有するファイルで、他
のノードへ移動したエージェントがファイルのコピーを
所有ファイルとして元のノードへ持ち帰ることによっ
て、例えば、先に例として示したファイルを収集する目
的において、効果的な情報収集が可能となる。また、エ
ージェントは、これらに加えて、次のような他の構成要
素を有する。
[3-1-3. Agent logical structure]
Next, FIG. 12 shows a logical structure of an agent in the third embodiment. That is, the agent has data such as an agent name, a field name of a corresponding field, and a possessed file. Note that the owned file is a file owned by the agent as a part of itself, and the agent that has moved to another node returns a copy of the file to the original node as an owned file, for example, the file shown as an example earlier Effective information collection is possible for the purpose of collection. The agent has the following other components in addition to the above components.

【0162】まず、ゴールスタックSは、プランニング
を階層的に実施するために、実行途上のゴールを積み上
げたスタックである。ゴールスタックは、ゴール・スク
リプト・セットの集合として保持される。ゴール・スク
リプト・セットは、最終的なゴールやサブゴールと、そ
れら各ゴールを達成するためのプランのスクリプトのセ
ットであり、エージェントがその時点において所有して
いる全てのスクリプトを含む。
First, the goal stack S is a stack in which goals in execution are piled up in order to implement planning in a hierarchical manner. The goal stack is maintained as a set of goal script sets. The goal script set is a set of scripts of the plan for achieving the final goals and subgoals and each of those goals, and includes all scripts owned by the agent at that time.

【0163】また、エージェント知識ベースDAは、エ
ージェントがプランニングにおいてノードの知識ベース
及びフィールドの知識ベースととともに使用する知識ベ
ースである。また、図12の「その他」の要素として
は、例えば実行情報が挙げられる。実行情報は、エージ
ェント名、フィールド名、スクリプトにおける実行位
置、およびスクリプトで用いられる変数の値などの情報
である。また、「その他」の情報としては、終了時処理
の指定等の情報も考えられる。これらの情報を表す具体
的なデータ構造は、エージェントのフェーズによって異
っていてよい。例えば、移動フェーズ中にはネットワー
ク上の通信内容として、実行フェーズ中には記憶媒体に
おけるファイル構造として、プランニングフェーズでは
プログラム上のデータ構造として計算機上のメモリ上に
記憶される。
The agent knowledge base DA is a knowledge base used by an agent together with a node knowledge base and a field knowledge base in planning. The “other” element in FIG. 12 includes, for example, execution information. The execution information is information such as an agent name, a field name, an execution position in a script, and a value of a variable used in the script. Further, as the information of “others”, information such as designation of a process at the time of termination may be considered. The specific data structure representing these pieces of information may vary depending on the phase of the agent. For example, it is stored in a memory on a computer as communication contents on a network during the movement phase, as a file structure in a storage medium during the execution phase, and as a data structure on a program during the planning phase.

【0164】ゴールをスタック構造で表すのは、ユーザ
が与えたゴールが、一般にプランニングによって階層的
な構造をとるためである。すなわち、新たに作成される
サブゴールは、エージェントの内部においてスタックの
形式により階層的に保有される必要がある。そのゴール
スタックを構成するゴール・スクリプト・セットのデー
タ構造を図13に示す。
The goal is represented by a stack structure because the goal given by the user generally has a hierarchical structure by planning. That is, the newly created subgoals need to be held hierarchically in the form of a stack inside the agent. FIG. 13 shows a data structure of a goal script set constituting the goal stack.

【0165】この図において、「ゴール」は、エージェ
ントを利用するユーザ、又は別のソフトウェアが与える
要求である。任意のゴール・スクリプト・セットについ
てみれば、ゴールは、サブゴールである場合も考えられ
る。すなわち、「サブゴール」は、最初にエージェント
に与えられたゴールを満たすために必要な条件を分解し
たゴールである。
In this figure, a “goal” is a request given by a user who uses an agent or another software. With respect to any goal script set, a goal may be a subgoal. That is, the “subgoal” is a goal obtained by decomposing the conditions necessary to satisfy the goal initially given to the agent.

【0166】第3実施形態で作成されうるサブゴールに
は、失敗時サブゴールとプランニング時サブゴールの2
通りが考えられる。失敗時サブゴールとは、エージェン
トによるスクリプトの実行中に、特定のコマンドの実行
が失敗した場合に、別の態様でそのコマンドの実行を試
行するために生成するサブゴールである。この場合、例
えば、ファイルの所在地として第1候補のノードでファ
イル発見に失敗した場合、第2候補のノードでファイル
を発見することがサブゴールである。
The subgoals that can be created in the third embodiment include two subgoals at the time of failure and at the time of planning.
The street is conceivable. The failed subgoal is a subgoal generated when execution of a specific command fails during execution of a script by an agent, in order to try to execute the command in another mode. In this case, for example, if the file location fails to be found at the first candidate node, the subgoal is to find the file at the second candidate node.

【0167】プランニング時サブゴールとは、通常のプ
ランニングの結果としてサブゴールがスクリプトに含ま
れるものである。例えば、ファイルの発見と持ち帰りが
ゴールの場合、まず、ファイルの発見や、発見のために
他のノードへ移動することがサブゴールとなる。
The planning subgoal is a subgoal included in the script as a result of normal planning. For example, in the case where the goal is to find a file and take it home, a subgoal is to find a file or move to another node for discovery.

【0168】サブゴールは、さらにサブゴールを持つこ
とが可能であり、ゴールは全体として階層的な構造を有
する。「ゴールスタック」は、実行中のエージェントが
保有するもので、階層的ゴール構造を管理するスタック
である。エージェントは、その生成時に与えられた最終
的ゴールとサブゴールとを階層的に保有する。
The subgoal can further have a subgoal, and the goal has a hierarchical structure as a whole. The “goal stack” is a stack that is owned by an executing agent and manages a hierarchical goal structure. The agent hierarchically holds final goals and subgoals given at the time of generation.

【0169】〔3−1−4.ノード・マネージャ〕上記
のようなエージェントの管理を行う部分がノード・マネ
ージャ15である。ノード・マネージャは、ノードを管
理するモジュールで、特に、エージェントの生成及びノ
ード間におけるエージェントの移動などの処理を行う。
このような処理を行う際に、ノードマネージャは、他の
ノードのノードマネージャと必要に応じて通信を行う。
この通信におけるインタフェースを以下、ノード間イン
タフェースと呼ぶが、第3実施形態では、インターネッ
ト・プロトコルスーツにおけるTCP によるポートを用い
て実装し、名称をノード・ポートと呼称するものとす
る。各ノードマネージャは、それぞれのポートにおいて
サーバとして機能する。
[3-1-4. Node Manager] The part that manages the agent as described above is the node manager 15. The node manager is a module for managing nodes, and particularly performs processes such as generation of agents and movement of agents between nodes.
When performing such processing, the node manager communicates with the node managers of other nodes as necessary.
The interface in this communication is hereinafter referred to as an inter-node interface. In the third embodiment, the interface is implemented using a TCP port in the Internet protocol suite, and the name is referred to as a node port. Each node manager functions as a server on a respective port.

【0170】また、ノードマネージャは、自らが生成し
たエージェントとも通信を行う。この通信におけるイン
タフェースを以下、ノード=エージェント間インタフェ
ースと呼ぶ。第3実施形態では、ノード・マネージャの
ノード・ポートを用いて、ノード=エージェント間イン
ターフェースを実装し、ノード・マネージャ側をサー
バ、エージェント・プロセス側をクライアントとする。
The node manager also communicates with the agent generated by the node manager. The interface in this communication is hereinafter referred to as a node-agent interface. In the third embodiment, a node-agent interface is implemented using a node port of the node manager, and the node manager side is a server and the agent process side is a client.

【0171】図14は、ノードマネージャ15を中心と
して、ノード=エージェント間通信及びノード=ノード
間通信を実現するための構成例を示す図である。各ノー
ドには、エージェントの状態を出力するためのソフトウ
ェアモジュールであるモニターMNが設けられ、ノード
マネージャ15は、モニターMNに対して、表示の指示
となるモニター・スクリプトを送信する。なお、第3実
施形態におけるポートの名称をモニター・ポートMPと
呼称する。ノード・マネージャ側がサーバ・ポートと
し、モニターMN側をクライアント・ポートとする。以
下、特に断らなければ、単にノードポートと呼称した場
合は、同一ノード内のノード・ポートNPを指す。各通
信ポートにおける通信プロトコルは、定められた所定の
デリミタによって区切られる下記の語より構成される。
FIG. 14 is a diagram showing a configuration example for realizing node-to-agent communication and node-to-node communication with the node manager 15 at the center. Each node is provided with a monitor MN, which is a software module for outputting the state of the agent, and the node manager 15 transmits a monitor script as a display instruction to the monitor MN. Note that the name of the port in the third embodiment is referred to as a monitor port MP. The node manager side is a server port, and the monitor MN side is a client port. Hereinafter, unless otherwise specified, when simply referred to as a node port, it refers to a node port NP in the same node. The communication protocol in each communication port is composed of the following words separated by a predetermined predetermined delimiter.

【0172】まず、実施例によるノード間インタフェー
スのプロトコルを表に示す。
First, the protocol of the inter-node interface according to the embodiment is shown in the table.

【表1】 [Table 1]

【0173】また、実施例によるノード=エージェント
間インタフェースのプロトコルを表に示す。
Further, the table shows the protocol of the node-agent interface according to the embodiment.

【表2】 [Table 2]

【0174】ノード・マネージャは、モニターによるエ
ージェントの監視のために、モニター・ポートよりモニ
タースクリプトを出力する。この通信ポートについて
は、クライアントであるモニターよりセッションがサー
バであるノードマネージャに張られる。モニターは、モ
ニタースクリプトを受け取り、ユーザ・インタフェース
の更新を行うことができる。モニタースクリプトの出力
内容は、基本的には、ノード・ポートに対するアクセス
に応じて、次に示すような形式を定めている。
The node manager outputs a monitor script from a monitor port for monitoring the agent by the monitor. With respect to this communication port, a session is established from the monitor which is a client to the node manager which is a server. The monitor can receive the monitor script and update the user interface. The output content of the monitor script basically has the following format according to the access to the node / port.

【表3】 [Table 3]

【0175】すなわち、モニターは、ノード・マネージ
ャからエージェントに関する状況報告をモニタースクリ
プトの形で受け取り、エージェントの状況をユーザに提
示する。なお、当然ながら、モニターとのサーバ、クラ
イアント関係が確立されていない場合は、ノードマネー
ジャはモニタースクリプトの出力を行わない。フローチ
ャートに示した手順は、すべてモニターとの接続が確立
していることを仮定する。すなわち、接続が確立してい
ない場合には、以下のプロトコルに従った通信を行う必
要はないことはいうまでもない。
That is, the monitor receives a status report on the agent from the node manager in the form of a monitor script, and presents the status of the agent to the user. If the server-client relationship with the monitor is not established, the node manager does not output the monitor script. The procedures shown in the flowchart all assume that a connection with the monitor has been established. That is, when the connection is not established, it is needless to say that it is not necessary to perform communication according to the following protocol.

【0176】〔3−1−5.知識ベース〕知識ベース
は、宣言的な記述方法によるデータベースである。第3
実施形態においては、より具体的にはProlog言語におけ
るファクトの集合をさす。ここで、図15は、知識ベー
スの構成を示す概念的ブロック図である。この図に示す
ように、第3実施形態の知識ベースには、アクションベ
ースD1と情報ベースD2の2種類がある。アクション
ベースD1は、プランニングにおいて必須となるアクシ
ョンの集合である。情報ベースD2は、プランニングに
おいて必須となるシステムの初期状態を記憶する知識ベ
ースであり、いずれの知識ベースも、アクションによっ
て更新することができる。
[3-1-5. Knowledge Base] The knowledge base is a database based on a declarative description method. Third
In the embodiment, more specifically, it refers to a set of facts in the Prolog language. Here, FIG. 15 is a conceptual block diagram showing the configuration of the knowledge base. As shown in this figure, there are two types of knowledge bases of the third embodiment, an action base D1 and an information base D2. The action base D1 is a set of actions that are essential in planning. The information base D2 is a knowledge base that stores an initial state of the system that is indispensable in planning, and any knowledge base can be updated by an action.

【0177】アクションベースD1及び情報ベースD2
は、それぞれ、エージェント固有の部分、フィールドに
区分された部分、ノード固有の部分を有し、それぞれ、
エージェントアクションベースD1A及びエージェント
情報ベースD2A、フィールドアクションベースD1F
及びフィールド情報ベースD2F、ノードアクションベ
ースD1N及びノード情報ベースD2Nと称する。な
お、フィールドは、エージェントの異なった目的ごとに
応じた部分であり、一つのフィールドには、共通の目的
を有するエージェントが対応する。知識ベースをフィー
ルドに区分しておくことによって、異なった複数の知識
ベースを1つのノード内に構成する働きを持つと共に、
一つのエージェントのプランニングに、必要な情報だけ
を用いることによって、プランニングを効率よく実施す
る効果がある。
Action Base D1 and Information Base D2
Has an agent-specific part, a field-partitioned part, and a node-specific part, respectively.
Agent action base D1A, agent information base D2A, field action base D1F
And the field information base D2F, the node action base D1N, and the node information base D2N. The fields are portions corresponding to different purposes of the agent, and one field corresponds to an agent having a common purpose. By dividing the knowledge base into fields, it has the function of configuring a plurality of different knowledge bases in one node,
By using only necessary information for planning of one agent, there is an effect that planning is efficiently performed.

【0178】また、一般に、知識表現において、矛盾す
る記述の存在は、意味論的な困難を引き起こす。フィー
ルドによる知識ベースの区分は、フィールド毎に、意味
論上の表現を統一しやすくすることにより、エージェン
トによるプランニングの円滑な実施とアクション定義の
容易な記述を促進する効果がある。
In general, in a knowledge expression, the existence of inconsistent descriptions causes semantic difficulties. The division of the knowledge base by the field has the effect of facilitating the smooth execution of the planning by the agent and the easy description of the action definition by making it easy to unify the semantic expressions for each field.

【0179】すなわち、アクションベースと情報ベース
のそれぞれについて、ノードに所属する知識ベース、フ
ィールドに所属する知識ベース、エージェントに所属す
る知識ベースの3種類の知識ベースが存在する。
That is, for each of the action base and the information base, there are three types of knowledge bases: a knowledge base belonging to a node, a knowledge base belonging to a field, and a knowledge base belonging to an agent.

【0180】また、第3実施形態ではPrologの用語を用
いて説明する。Prolog言語については、Leon Sterling,
Ehud Shapiro 著The Art of Prolog 他、多数の解説書
があるが、第3実施形態におけるProlog言語記述は、標
準的な記述方法のみを用いて記述している。なお、Prol
og言語では、大文字で始まる名前は変数であり、マッチ
するアトムatom又はアトムの組み合わせである項によっ
て置き換えられる。
The third embodiment will be described using the term Prolog. For the Prolog language, see Leon Sterling,
Although there are many books such as The Art of Prolog by Ehud Shapiro, the Prolog language description in the third embodiment is described using only a standard description method. Prol
In the og language, names starting with an uppercase letter are variables, which are replaced by terms that are matching atoms or combinations of atoms.

【0181】なお、以下では、所定のノードからみて他
のノードに関する情報すなわちmaybe 情報を用いて、エ
ージェントがプランニングを実施し、どのように変化す
るネットワークに対応して挙動を行うかについて例を用
いて説明する。maybe 情報はProlog言語を用いて実装で
きる。すなわち、知識ベースに記憶された情報のうち、
maybe という種別の情報(maybe 情報)は、一応想定さ
れるが未確認の事実を表す。maybe はフィールド情報ベ
ースまたはノード情報ベースに格納される。
In the following, an example will be used to show how an agent performs planning using information about other nodes, that is, may information from the viewpoint of a predetermined node, and how to behave in response to a changing network. Will be explained. maybe information can be implemented using the Prolog language. That is, of the information stored in the knowledge base,
Information of type maybe (maybe information) represents a supposed but unconfirmed fact. maybe is stored in the field information base or node information base.

【0182】一方、本システムにおけるノード・マネー
ジャ、すなわち図1におけるエージェント管理部7は、
異なったフィールドに対応する様々な種類のエージェン
トを扱うように構成されており、例えば、エージェント
には、その生成時において、エージェントの役割すなわ
ち種類に応じたフィールドが指定される。そして、第3
実施形態では、フィールド毎に知識ベースを区分するこ
とによって、プランニングで用いる知識の総量を少なく
することが可能であり、結果としてプランニングの効率
を高める効果がある。
On the other hand, the node manager in this system, that is, the agent management unit 7 in FIG.
It is configured to handle various types of agents corresponding to different fields. For example, when an agent is generated, a field corresponding to the role, that is, the type of the agent is designated. And the third
In the embodiment, by dividing the knowledge base for each field, it is possible to reduce the total amount of knowledge used in planning, and as a result, there is an effect of increasing planning efficiency.

【0183】〔3−1−5−1.アクションベース〕ア
クションベースは、エージェントが取りうるアクション
をその事前条件と事後条件とを合わせて定義したアクシ
ョン定義の集合であり、アクションの集合には、ノード
間でのエージェントの移動を実現する移動命令として、
goアクションが含まれる。実行器がコマンドとしてgoア
クションを実行した場合には、エージェントはネットワ
ーク上のノード間で移動し、移動の前後で一貫したプラ
ンの実行を行う。
[3-1-5-1. Action base] An action base is a set of action definitions that define actions that an agent can take together with its pre-conditions and post-conditions, and the set of actions includes a move command that implements the movement of an agent between nodes. As
Contains a go action. When the executor executes the go action as a command, the agent moves between nodes on the network, and executes the plan consistently before and after the movement.

【0184】そして、アクションベース中において、一
つのアクションに関する情報は、アクションの内容に加
えて、アクション定義名、事前条件、事後条件及びから
構成される。このうち、まず、アクション定義名は、ア
クションの名前と引数(アクションのパラメータ)を、
項により表現したものである。また、事前条件は、アク
ションが実行可能となるための条件を、項のリストによ
り表現したものである。また、事後条件は、アクション
を実行した結果の状態変化を、やはり項のリストにより
表現したものである。
[0184] In the action base, information on one action includes an action definition name, a precondition, and a postcondition in addition to the content of the action. First of all, the action definition name consists of the name of the action and its arguments (action parameters)
It is expressed by terms. In addition, the precondition is a condition for enabling the action to be executed, expressed by a list of terms. The post condition is a state change as a result of executing an action, also expressed by a list of terms.

【0185】アクションに関する情報は、例えば、以下
に示す形式によって表現できる。第3実施形態では、Pr
ologの述語actionを用いて、この記述がアクション定義
であることを示している。 action( < アクション定義名>, <アクション>, <事前条
件>, <事後条件> ). ここで、<アクション>は、実行器によって実行可能な
コマンドによって構成される。すなわち、以下に示すよ
うに複数のコマンドの列によって構成することができ
る。
Information on an action can be expressed, for example, in the following format. In the third embodiment, Pr
The olog predicate action is used to indicate that this description is an action definition. action (<action definition name>, <action>, <precondition>, <postcondition>). Here, <action> is composed of a command that can be executed by the executor. That is, it can be constituted by a plurality of command strings as shown below.

【0186】〔3−1−5−2.アクションベースにお
ける記述形式の例〕ここで、第3実施形態におけるProl
ogを用いたアクションベースの記述形式の例を、ノード
のアクションベースを例として示す。エージェントアク
ションベース、およびフィールドアクションベースの記
述形式も同様である。 /****************************************************** アクション集合 action( アクション定義名,[アクションを構成するコマンド],[事前条件] ,[事後条件]) ******************************************************/ action(goto , [ goto(Node, maybe(exist(file(F),Node)) ) ], [ home(HomeNode), maybe(exist(file(F),Node)) ], [ add(seeking_for(file(F),HomeNode,Node)) ] ). action(goto , [ update_agent_base( add( myself, returning ,HomeNode)), goto_with_goal(HomeNode, return) ], [ have(file(F)) ], [ add( bringing(file(F),HomeNode) ) ] ).
[3-1-5-2. Example of description format in action base] Here, Prol in the third embodiment
An example of an action-based description format using og will be described using a node action base as an example. The same applies to the description format of the agent action base and the field action base. / ***************************************************** ***** Action set action (action definition name, [commands composing the action], [preconditions], [postconditions]) ******************* *********************************** / action (goto, [goto (Node, maybe (exist (file (F), Node)))), [home (HomeNode), maybe (exist (file (F), Node))], [add (seeking_for (file (F), HomeNode, Node))]). goto, [update_agent_base (add (myself, returning, HomeNode)), goto_with_goal (HomeNode, return)], [have (file (F))], [add (bringing (file (F), HomeNode))]).

【0187】なお、プランニングでは、アクションベー
ス中に定義された各アクションから、ゴール達成に必要
なアクションを抽出して、プランを構成するスクリプト
すなわちアクションの列が作成される。
In the planning, an action necessary for achieving a goal is extracted from each action defined in the action base, and a script constituting the plan, that is, a sequence of actions is created.

【0188】〔3−1−5−3.情報ベース〕第3実施
形態における情報ベースD2も、アクションベースの場
合と同じく、エージェント情報ベースD2A、フィール
ド情報ベースD2F、ノード情報ベースD2Nの総称で
あり、ネットワーク上のソフトウェア資源に関する事実
の記載の集合である。例えば、エージェント情報ベース
D2Aは、エージェントの挙動について、どのような動
作をこれまでに完了したか等、主にその履歴に関する情
報を格納する情報ベースである。また、フィールド情報
ベースD2Fは、そのフィールドに固有のソフトウェア
資源について、そのノードにおいてどのような処理が可
能かを表現する情報ベースである。また、ノード情報ベ
ースD2Nは、そのノードにおいて、どのような処理が
可能か、どのようなリソースを有しているかに関する記
述が格納されているデータベースである。もちろん、各
情報ベースには、それ以外の情報を必要に応じて格納す
ることも可能である。
[3-1-5-3. Information Base] The information base D2 in the third embodiment is also a generic name of the agent information base D2A, the field information base D2F, and the node information base D2N as in the case of the action base, and is a set of descriptions of facts regarding software resources on the network. It is. For example, the agent information base D2A is an information base that mainly stores information regarding the history of the behavior of the agent, such as what operation has been completed so far. The field information base D2F is an information base that expresses what processing is possible at the node for software resources unique to the field. The node information base D2N is a database that stores a description of what processing is possible and what resources the node has at that node. Of course, other information can be stored in each information base as needed.

【0189】なお、エージェント情報ベースD2A及び
エージェントアクションベースD1Aを合わせてエージ
ェント知識ベースDAと称する。また、フィールド情報
ベースD2F及びフィールドアクションベースD1Fを
合わせてフィールド知識ベースDFと称する。同様に、
ノード情報ベースD2N及びノードアクションベースD
1Nを合わせてノード知識ベースDNと称する。
Note that the agent information base D2A and the agent action base D1A are collectively referred to as an agent knowledge base DA. The field information base D2F and the field action base D1F are collectively referred to as a field knowledge base DF. Similarly,
Node information base D2N and node action base D
1N are collectively referred to as a node knowledge base DN.

【0190】〔3−1−6.プランナ〕プランナは、情
報処理の目的として与えられたゴールに基づいてプラン
ニングを行い、ゴールを満たすプランとしてスクリプト
を出力とする部分で、エージェントの機能の一部を構成
する。ここで、プランニングは、エージェントによる行
動プログラムの生成を指す。また、プランは、プランニ
ングによって生成されたアクションの列であり、スクリ
プトは、プランを記述したソフトウェア上のデータ構造
又はファイルである。スクリプトは、スクリプト・コマ
ンドを用いて記述される。すなわち、スクリプト・コマ
ンドは、スクリプトに記述されている実行命令である。
[3-1-6. Planner] The planner performs planning based on a goal given for the purpose of information processing, and outputs a script as a plan that satisfies the goal, and constitutes a part of the function of the agent. Here, planning refers to generation of an action program by an agent. The plan is a sequence of actions generated by planning, and the script is a data structure or a file on software describing the plan. Scripts are described using script commands. That is, the script command is an execution instruction described in the script.

【0191】第3実施形態の場合、プランニングの内容
は、ノードおよびフィールドおよびエージェントが固有
に有する知識ベースに蓄えられた事前条件、事後条件の
組(アクション定義)を用いて、与えられたゴールに到
達するアクションの列を生成することとなる。なお、プ
ランナは、必要に応じて再プランニングを行う。再プラ
ンニングは、実行が失敗した場合などに、エージェント
の行動プログラムを再度生成する処理である。
In the case of the third embodiment, the contents of planning are based on a set of pre-conditions and post-conditions (action definition) stored in a knowledge base uniquely possessed by nodes, fields, and agents. This will generate a sequence of actions to be reached. Note that the planner performs re-planning as necessary. The re-planning is a process of regenerating an agent action program when execution has failed.

【0192】プランニングは、ユーザより付与されたゴ
ールと、アクション集合が格納されたアクションベース
および現在の状態表現を表す情報ベースの内容を利用す
ることによって実施可能となる。プランナは、これらの
情報を入力とし、スクリプトを出力としてプランニング
を実施するモジュールである。
The planning can be carried out by using the goal given by the user, the action base storing the action set, and the contents of the information base representing the current state expression. The planner is a module that receives these pieces of information as input and performs planning with script as output.

【0193】プランナは、プランニングに際して、アク
ションベースと情報ベースのそれぞれについて、エージ
ェント知識ベース、フィールド知識ベース及びノード知
識ベースを読み込み、それらの内容をマージした上でプ
ランニングを行う。
At the time of planning, the planner reads the agent knowledge base, the field knowledge base, and the node knowledge base for each of the action base and the information base, and performs planning after merging the contents thereof.

【0194】なお、ここで行われるプランニングの処理
は公知のものを用いればよい(参考文献:S.C.Shapiro,
Encyclopedia of Artificial Intelligenceにおけるpl
anningの頁を参照)。なお、プランナを実装する一例と
して、Prolog言語を用いて実装する場合のPrologプログ
ラムを以下に示す。 /******* プランニングの定義 ***************/ plan( Goal, Node ) :- plan( Goal, Node, Node, _ ), halt. plan( Goal, Node ) :- halt. plan( Goal, Home, Node, PL ) :- plan1( Goal, Home, Node, PL ), reverse(PL, PL2), tell(′script′), writePlanList( PL2 ), nl, told, write(′script = "′), write(′script′), write(′"′),nl. plan( Goal, Home, Node, PL ) :- tell(′script′), writePlanList( [[′%no′]] ), nl, told, write(′script = "′), write(′script′), write(′"′),nl. plan1( Goal, Home, Node, PL ) :- info(_,_), !, infoList( Home, Info0 ), goal( Goal, Home, Node, Info0, Info, [], PL, [Goal], _ ). plan1( _,_,_,[[′%no′]] ) :- !, write(′There are no info.′), nl. goal( G, _, _, Info, Info, PL, PL, AGL, AGL ) :- member( G, Info ). goal( G, H, N1, Info0, [G|Info], PL0, [P1|PL], AGL0, AGL ) :- action( _, P1, Pre, [add(G)]), goals( Pre, H, N2, Info0, Info, PL0, PL, AGL0, AGL ). goals( [], _, _, Info, Info, PL, PL, AGL, AGL ). goals( [G|GL], H, N, Info0, Info, PL0, PL, AGL0, AGL ) :- goal( G, H, N, Info0, Info1, PL0, PL1, AGL0, AGL1 ),!, goals( GL, H, N, Info1, Info, PL1, PL, AGL1, AGL ). infoList( Node, L ) :- setof( Info, info(Node,Info ), L ). /******* 完成したプランに含まれるアクションの各コマンドを、 スクリプトファイルとして出力 **************/ writePlanList( [] ) :- !. writePlanList( [A|L] ) :- !, writePlan( A ), writePlanList( L ). writePlan( [] ) :- !. writePlan( [A|L] ) :- !, emitCommand( A ), writePlan( L ). emitFileList([]). emitFileList([F|FL]) :- emitFileName(F), write(′ ′), emitFileList(FL). emitFileName( file(FileName, Ext) ) :- !, write(FileName), write(′.′), write(Ext). emitFileName( DB ) :- !, write(DB). emitCommand( comment(G) ):- emitCmd( comment(G) ). emitCommand( X ):- emitCmd( X ),nl. emitCmd( update_field_base(A) ) :- !, write(′%update_field_base ′), write(′"′),write(A),write(′" ′). emitCmd( update_agent_base(A) ) :- !, write(′%update_agent_base ′), write(′"′),write(A),write(′" ′). emitCmd( check(F,Node,R) ) :- !, write(′%check ′), emitFileName(F), write(′ ′),write(Node), write(′ "′),write(R), write(′"′). emitCmd( check_with_goal(F,SG) ) :- !, write(′%check ′), emitFileName(F), write(′ "′),write(SG), write(′"′). emitCmd( check_and_redo(F,SG,[G]) ) :- !, write(′%check_and_redo ′), emitFileName(F), write(′ "′),write(SG), write(′" "′),write(G), write(′"′). emitCmd( goto_with_ack(N) ) :- !, write(′%goto_with_ack ′), write(N). emitCmd( goto(N) ) :- !, write(′%goto ′), write(N). emitCmd( goto(N, at(P,NN)) ) :- !, write(′%goto ′), write(N), write(′ "remove(′), write(NN), write(′,′),write(P),write(′) "′). emitCmd( goto(N, Reason) ) :- !, write(′%goto ′), write(N), write(′ "′),write(Reason), write(′"′). emitCmd( goto_with_goal(N, G) ) :- !, write(′%goto_with_goal ′), write(N), write(′ "′),write(G), write(′"′). emitCmd( wait_and_goto(N) ) :- !, write(′%wait_and_goto ′), write(N). emitCmd( put(F) ) :- !, write(′%put ′), emitFileName(F). emitCmd( get(F) ) :- !, write(′%get ′), emitFileName(F). emitCmd( rename_file(F,G) ) :- !, write(′rename ′), emitFileName(F), write(′ ′), emitFileName( G). emitCmd( plan_and_exe(G,C) ) :- !, write(′%plan_and_exe "′), write(G), write(′" "′), write(C),write(′"′). emitCmd( fail(M) ) :- !, write(′%fail "′), write(M), write(′"′). emitCmd( comment(G) ) :- !. emitCmd( display ) :- !,write(′%display′). emitCmd( X ) :- !, write( X ). /****** prolog述語定義 *******/ setof(X,G,L) :- setUp, G, setPush(X), fail. setof(X,G,L) :- setPop(L). reconsult(F) :- [F]. append( [], X, X ). append( [A|X], Y, [A|Z] ) :- append( X, Y, Z ). reverse( [], [] ). reverse( [A|X],Z ) :- reverse(X,Y),append(Y,[A],Z). member( X, [X|_] ). member( X, [_|L] ) :- member( X, L ).
It should be noted that the planning process performed here may use a known process (reference: SCShapiro,
Pl in Encyclopedia of Artificial Intelligence
anning page). As an example of implementing the planner, a Prolog program in the case of using the Prolog language is shown below. / ******* Definition of planning *************** / plan (Goal, Node):-plan (Goal, Node, Node, _), halt.plan ( Goal, Node):-halt.plan (Goal, Home, Node, PL):-plan1 (Goal, Home, Node, PL), reverse (PL, PL2), tell (′ script ′), writePlanList (PL2), nl, told, write ('script = "'), write ('script'), write ('"'), nl.plan (Goal, Home, Node, PL):-tell ('script'), writePlanList ( [[′% No ′]]), nl, told, write (′ script = “′), write (′ script ′), write (′” ′), nl.plan1 (Goal, Home, Node, PL): -info (_, _),!, infoList (Home, Info0), goal (Goal, Home, Node, Info0, Info, [], PL, [Goal], _). plan1 (_, _, _, [ ['% No']]):-!, Write ('There are no info.'), Nl.goal (G, _, _, Info, Info, PL, PL, AGL, AGL):-member (G , Info). Goal (G, H, N1, Info0, [G | Info], PL0, [P1 | PL], AGL0, AGL):-action (_, P1, Pre, [add (G)]), goals (Pre, H, N2, Info0, Info, PL0, PL, AGL0, AGL). goals ([], _, _, Info, Info, PL, PL, AGL, AGL). goals ([G | GL] , H, N, Info0, Info, PL0, PL, AGL0, AGL):-goal (G, H, N, Info0, Info1, PL0, PL1, AGL0, AGL1),!, Goals (GL, H, N, Info1, Info, PL1, PL, AGL1, AGL ) .infoList (Node, L):-setof (Info, info (Node, Info), L) ./******* Output each action command included in the completed plan as a script file ** ************ / writePlanList ([]):-! .writePlanList ([A | L]):-!, writePlan (A), writePlanList (L) .writePlan ([]): -!. writePlan ([A | L]):-!, emitCommand (A), writePlan (L). emitFileList ([]). emitFileList ([F | FL]):-emitFileName (F), write (′ ′) emitFileName (file (FileName, Ext)):-!, write (FileName), write (′. ′), write (Ext) .emitFileName (DB):-!, write (DB). emitCommand (comment (G)):-emitCmd (comment (G)) .emitCommand (X):-emitCmd (X), nl.emitCmd (update_field_base (A)):-!, write (′% update_field_base ′), write EmitCmd (update_agent_base (A)):-!, Write (′% update_agent_base ′), write (′ ” EmitCmd (check (F, Node, R)):-!, Write (′% check ′), emitFileName (F), write (′ ′), write EmitCmd (check_with_goal (F, SG)):-!, Write (′% check ′), emitFileName (F), write (Node), write (′ “′), write (R), write (′” ′). EmitCmd (check_and_redo (F, SG, [G])):-!, Write (′% check_and_redo ′), emitFileName (F), write ( EmitCmd (goto_with_ack (N)):-!, Write ('% goto_with_ack'), write (')', write (SG), write ('""'), write (G), write ('"'). (N). EmitCmd (goto (N)):-!, Write (′% goto ′), write (N). EmitCmd (goto (N, at (P, NN))):-!, Write (′% goto ′), write (N), write (′ ”remove (′), write (NN), write (′, ′), write (P), write (′) ″ ′) .emitCmd (goto (N, Reason )):-!, write (′% goto ′), write (N), write (′ ″), write (Reason), write (′ ″ ′). emitCmd (goto_with_goal (N, G)):-! , write (′% goto_with_goal ′), write (N), write (′ ″), write (G), write (′ ″ ′). emitCmd (wait_and_goto (N)):-!, write ( emitCmd (put (F)):-!, write ('% put'), emitFileName (F) .emitCmd (get (F)):-!, write ('% get% wait_and_goto ′), write (N). EmitCmd (rename_file (F, G)):-!, Write (′ rename ′), emitFileName (F), write (′ ′), emitFileName (G) .emitCmd (plan_and_exe (G, C)):-!, Write ('% plan_and_exe "'), write (G), write ('""'), write (C), write ('"'). EmitCmd (fail (M)):- !, write ('% fail "'), write (M), write ('"'). emitCmd (comment (G)):-!. emitCmd (display):-!, write ('% display'). emitCmd (X):-!, write (X) ./****** prolog predicate definition ******* / setof (X, G, L):-setUp, G, setPush (X), fail. setof (X, G, L):-setPop (L). reconsult (F):-[F]. append ([], X, X). append ([A | X], Y, [A | Z]):-append (X, Y, Z). Reverse ([], []). Reverse ([A | X], Z):-reverse (X, Y), append (Y, [A], Z). Member (X, [X | _]). Member (X, [_ | L]):-member (X, L).

【0195】〔3−1−7.実行器〕実行器は、前記の
プランナによって作成されたプランのスクリプトを解釈
実行する部分である。すなわち、概念的には、エージェ
ントがプランナーを用いて生成したスクリプトに対し、
スクリプトの中に記述されるアクションの列をコマンド
の列として解釈、実行する実行器を前記エージェントが
保有し、エージェントはプランナーと実行器の両者を制
御して動作する。
[3-1-7. Executor] The executor is a part that interprets and executes the script of the plan created by the planner. In other words, conceptually, the script generated by the agent using the planner is
The agent has an execution unit that interprets and executes a sequence of actions described in the script as a sequence of commands, and the agent operates by controlling both the planner and the execution unit.

【0196】実行器における実行方式および動作技術は
一般のインタプリタ言語に準じたものである。第3実施
形態における実行器は、本質的にUNIXオペレーティング
システムにおけるcsh に準じており、スクリプトを入力
することによって、スクリプトの内容を行単位で実行
し、出力として実行ステータスを返す。実行器によって
解釈実行されるスクリプトコマンドとしては、次に挙げ
るようなものを例示することができる。
The execution method and operation technique in the execution unit conform to a general interpreter language. The executor in the third embodiment essentially conforms to csh in the UNIX operating system, executes a script by executing a script, and returns an execution status as an output. The script commands interpreted and executed by the executor include the following.

【0197】〔3−1−7−1.csh と共通の働きをも
つコマンドの例〕まず、csh と共通の働きをもつコマン
ドの例のとしては、以下のものが存在する。これらのコ
マンドは、例えばUNIXシステム上であれば、csh を呼び
出すことによって処理することが可能であるが、もちろ
ん他の言語処理系を用いて実装することも可能である。
[3-1-7-1. Examples of commands having functions common to csh] First, examples of commands having functions common to csh are as follows. For example, on a UNIX system, these commands can be processed by calling csh, but of course, they can also be implemented using another language processing system.

【表4】 [Table 4]

【0198】〔3−1−7−2.制御構造、変数の処
理〕第3実施形態におけるスクリプトの実行は、原則と
して、スクリプトの先頭から末尾に向かって順に1行に
1コマンドずつ実行を行うが、次の制御構文を用いて、
条件分岐や繰り返し処理を実施することができる。動作
のセマンティクスや式の記述方法の詳細は、C言語仕様
のサブセットである。
[3-1-7-2. Control Structure and Variable Processing] In the script execution in the third embodiment, in principle, one command is executed in one line in order from the beginning to the end of the script, but using the following control syntax,
Conditional branching and repetitive processing can be performed. The details of the semantics of operations and how to write expressions are subsets of the C language specification.

【表5】 [Table 5]

【0199】〔3−1−7−3.エージェント・コマン
ド〕実行器は、モバイル・エージェントとして必要な処
理を実現するために、次のようなコマンドをスクリプト
の内部で使用することができる。なお、第3実施形態に
おいては、実行器を拡張することによって、コマンドの
種類を拡張することができる。
[3-1-7-3. Agent Command] The executor can use the following commands in the script to implement the processing required as a mobile agent. In the third embodiment, the types of commands can be extended by extending the executor.

【表6】 [Table 6]

【0200】なお、表6最下欄における「サブゴールを
ゴールスタックにつみ」の意味は、図12¥で示した通
り、サブゴールの他に、現在のスクリプト、スクリプト
の実行位置、スクリプトで用いている変数の値を、一ま
とまりのゴール・スクリプト・セットとしてスタックに
積むことを意味している。このうち、goto_with_subgoa
l コマンドおよびcheck_with_subgoalコマンド、および
plan_and_exeは、サブゴールつきコマンドである。サブ
ゴールつきコマンドは、ノード間でエージェントを移動
させる移動命令の一種で、移動失敗時に代替手段として
実行すべきサブゴールがあらかじめ指定されている移動
命令である。
The meaning of “pick the subgoal into the goal stack” in the lowermost column of Table 6 is used in the current script, the execution position of the script, and the script in addition to the subgoal as shown in FIG. This means that the value of the variable is pushed onto the stack as a set of goal scripts. Of these, goto_with_subgoa
l command and check_with_subgoal command, and
plan_and_exe is a command with a subgoal. The command with a subgoal is a type of move command for moving an agent between nodes, and is a move command in which a subgoal to be executed as an alternative when a move fails is specified in advance.

【0201】一方、表6の上から2番目の、「移動の根
拠となった情報ベースの情報」を伴うgoto命令は、根拠
付きのコマンドである。一般に、特定のゴールが与えら
れたエージェントがプランニングを実施した際、プラン
ニングにおいて採用されるアクションすなわちコマンド
は、その事前条件が、各種知識ベースにおいて満たされ
ていることが必要となる。その事前条件は、maybe 情報
であってもよい。ただし、maybe 情報は、実際のネット
ワークにおいて真である保証はないため、エージェント
がプランニングを終了した後、できあがったスクリプト
を実行する時点において、前提であるmaybe 情報の記述
内容が異なっている場合があり得る。根拠付きコマンド
とは、実行時に判明したmaybe 情報の誤りを訂正する働
きを含むコマンドである。すなわち、「移動の根拠とな
った情報ベースの情報」を伴うgoto命令とは、その移動
が実行できなかった場合に、プランニング時点における
事前条件が異なっていたものと判定し、表6に示す通り
引数に与えられた情報ベースの情報を削除する働きを持
つコマンドである。
On the other hand, the second goto instruction accompanied by “information of information base on which movement is based” from the top of Table 6 is a command with a basis. Generally, when an agent given a specific goal carries out planning, an action or command adopted in planning requires that the preconditions be satisfied in various knowledge bases. The precondition may be may information. However, there is no guarantee that may information is true in the actual network, so when the agent finishes planning and executes the completed script, the description content of the may information may differ. obtain. Evidenced commands are commands that have the function of correcting any errors in the maybe information found at the time of execution. In other words, a goto instruction accompanied by “information of the information base that is the basis of the movement” means that when the movement cannot be executed, it is determined that the preconditions at the time of planning are different, and as shown in Table 6, This command deletes the information in the information base given as an argument.

【0202】同様に、表6におけるcheck コマンドも根
拠付きコマンドである。check コマンドは、それを実行
するエージェントが存在するノードにおいて、その第一
引数に示すファイルが存在しなかった場合は、第三引数
に示す情報が誤っていたものとみなし、第二引数に示す
情報ベースより削除する動作を行う。
Similarly, the check command in Table 6 is a command with a basis. If the file specified in the first argument does not exist on the node where the agent executing the check exists, the check command considers the information specified in the third argument to be incorrect and returns the information specified in the second argument. Perform the operation of deleting from the base.

【0203】これらの根拠付きコマンドの作用は、この
コマンドを実施したエージェントによる再プランニング
や、後の動作例に示す通り、後続する別のエージェント
による再プランニングの際に有効となる。
The action of these grounded commands is effective at the time of re-planning by the agent that has executed this command, or at the time of re-planning by another agent that follows as shown in an operation example later.

【0204】〔3−1−7−4.情報ベースの更新述
語〕表6におけるupdateコマンドは、更新器16(図
8)へのインタフェースの役割を果たし、第3実施形態
におけるエージェント知識ベース、フィールド知識ベー
ス、ノード知識ベースの内容の更新を行う。更新述語に
は、次の表の通り2種類がある。
[3-1-7-4. Update predicate of information base] The update command in Table 6 serves as an interface to the updater 16 (FIG. 8), and updates the contents of the agent knowledge base, field knowledge base, and node knowledge base in the third embodiment. . There are two types of update predicates as shown in the following table.

【表7】 [Table 7]

【0205】更新述語は、エージェントが挙動すること
によって新しく得られた知見を元に、情報ベースの内容
を更新するための指示語である。更新述語が存在するこ
とによって、変化するネットワークにおける情報の更新
を、エージェント自身が実施することによって、そのエ
ージェント自身の再プランニングや、後続する他のエー
ジェントによる類似したゴールに対するプランニング
を、新しい情報に基づいて実施することが可能になる。
The update predicate is a directive for updating the contents of the information base based on the knowledge newly obtained by the behavior of the agent. Due to the presence of the update predicate, the agent updates information in the changing network, thereby re-planning the agent itself and planning for similar goals by other subsequent agents based on the new information. Can be implemented.

【0206】〔3−1−7−5.簡単なスクリプトの
例〕ここで、以上のようなスクリプト・コマンドを用い
て、スクリプトの簡単な例を示す。このスクリプトは、
ノードnode1 の所定のディレクトリに存在するファイル
file1 を、ノードnode0 に移動し、コピーするスクリプ
トである。仮にプランナがこのスクリプトを出力したも
のとすれば、エージェントは、このスクリプトを上から
下へ順に実行する。 %goto node1 %get file(file1) %goto node0 %put file(file1)
[3-1-7-5. Example of Simple Script] Here, a simple example of a script will be described using the above script commands. This script
File existing in the specified directory of node node1
This script moves file1 to node node0 and copies it. Assuming that the planner outputs this script, the agent executes this script in order from top to bottom. % goto node1% get file (file1)% goto node0% put file (file1)

【0207】〔3−2.作用〕上記のような構成を有す
る第3実施形態は、次のような作用を有する。まず、第
3実施形態におけるエージェントの活動は、ゴールを与
えることによって開始されるが、以下の例では、ゴール
の入力に先立って、各データベースに、次のような情報
が入力されているものとする。
[3-2. Operation] The third embodiment having the above configuration has the following operation. First, the activity of the agent in the third embodiment is started by giving a goal. In the following example, it is assumed that the following information is input to each database prior to the input of the goal. I do.

【0208】〔3−2−1.アクション定義の例〕ま
ず、この例で用いられるフィールドのアクションベース
の定義について説明する。以下の例は、ネットワーク上
に分散するファイルを収集するエージェントと、この収
集のためのフィールドについて説明するものである。こ
のような目的を達成するための5つのアクションを、以
下に示すフィールドにおいて定義する。1つのアクショ
ン定義は、先に示したとおり、アクション定義名、アク
ション、事前条件、事後条件の組である。
[3-2-1. Example of Action Definition] First, an action-based definition of a field used in this example will be described. The following example describes an agent that collects files distributed on a network and the fields for this collection. Five actions for achieving such a purpose are defined in the following fields. One action definition is a set of an action definition name, an action, a precondition, and a postcondition, as described above.

【0209】アクション定義名は、便宜的につけた名称
である。アクション定義における「アクション」とは、
実行器のコマンドと同様、アクションによる処理の実際
の内容を表す。すなわち、アクション定義における「ア
クション」は、そのアクション定義がプランニングによ
って採用された場合、プランナーが生成するスクリプト
に含まれるコマンドで、エージェントが実行フェーズに
移ったのち、やがて実行されるものである。
The action definition name is a name given for convenience. "Action" in the action definition is
Like the command of the executor, it represents the actual contents of the processing by the action. That is, the “action” in the action definition is a command included in a script generated by the planner when the action definition is adopted by planning, and is a command that is executed shortly after the agent enters the execution phase.

【0210】事前条件とは、アクションを実行するため
に必要な条件である。この条件は、プランナーがプラン
ニングにおける処理において使用するものであり、エー
ジェントの実行フェーズとは直接的にはかかわりのない
ものである。
The precondition is a condition necessary for executing an action. This condition is used by the planner in the processing in planning and is not directly related to the execution phase of the agent.

【0211】事後条件とは、アクションの実行の結果と
して追加される条件である。この条件は、プランナーが
プランニングにおける処理において使用するものであ
り、エージェントの実行フェーズとは直接的にはかかわ
りのないものである。すなわち、プランニングとは実行
に先立つシミュレーションである。
The post condition is a condition added as a result of execution of an action. This condition is used by the planner in the processing in planning and is not directly related to the execution phase of the agent. That is, planning is a simulation prior to execution.

【0212】アクションベースには、フィールド毎に、
その問題領域に応じたアクション定義が事前になされて
いる必要がある。ここでは、アクションベースに、以下
に示す第一のアクションから第五のアクションまでの5
つのアクションが定義されているものとする。すなわ
ち、以下に説明するアクションベースは、事前にnode0,
node1,node2 の各ノードに配布されているものである。
なお、各ノードに対するアクションベースの配布や訂正
を、第3実施形態によるエージェントを用いて行うこと
も可能である。
In the action base, for each field,
Action definitions according to the problem area must be made in advance. In this example, the action base includes five actions from the first action to the fifth action shown below.
Assume that one action is defined. In other words, the action base described below is based on node0,
It is distributed to each node of node1 and node2.
It should be noted that action-based distribution and correction to each node can be performed using the agent according to the third embodiment.

【0213】〔3−2−1−1.アクション:goto1 〕
第一のアクション定義では、他のノードNodeにファイル
Fを獲得するための移動アクションを定義している。第
一のアクション定義の内容を次に示す。 action(goto1 , [ update_agent_base(home(HomeNode)), goto(Node, maybe(exist(file(F),Node))) ], [ maybe(exist(file(F),Node)), home(HomeNode) ], [ add(seeking_for(file(F),HomeNode,Node)) ] ). 第一のアクション定義の内容として、具体的な2つのコ
マンドが存在する。コマンドupdate_agent_base は、エ
ージェント情報ベースに対する更新操作であり、このコ
マンドが実行された場合、エージェントの情報ベース
に、ファクト info(home(HomeNode)). が追加される。この操作は、このエージェントが出発し
たノードを、エージェントに記憶させることを意味す
る。本アクション定義における2番目のアクションは、
根拠つきgotoアクションである。本アクションがプラン
ニングにおいて採用された場合、生成したスクリプトを
実行するエージェントは、先に実行器コマンドとして示
した根拠つきgotoコマンドを実行する。根拠つきgotoア
クションは、移動命令であって、当該命令の事前条件が
パラメータとして添付されたものである。
[3-2-1-1. Action: goto1]
In the first action definition, a move action for acquiring the file F in another node Node is defined. The contents of the first action definition are shown below. action (goto1, [update_agent_base (home (HomeNode)), goto (Node, maybe (exist (file (F), Node)))], [maybe (exist (file (F), Node)), home (HomeNode) ], [add (seeking_for (file (F), HomeNode, Node))]). As the contents of the first action definition, there are two specific commands. The command update_agent_base is an update operation for the agent information base. When this command is executed, the fact info (home (HomeNode)). Is added to the agent information base. This operation means that the node from which this agent has started is stored in the agent. The second action in this action definition is
It is a goto action with evidence. When this action is adopted in the planning, the agent that executes the generated script executes the grounded goto command that has been previously described as the executor command. The grounded goto action is a movement command, and the precondition of the command is attached as a parameter.

【0214】そして、第一のアクション定義の事前条件
は2つある。第一の事前条件は、他のノードにおけるフ
ァイルの存在に関するmaybe 述語が、情報ベース、すな
わちノード、フィールド、エージェントの3つの情報ベ
ースのいずれかに存在することである。第二の事前条件
は、Prolog変数HomeNodeを束縛し、事後条件の引数に反
映するためのものであり、エージェントの移動の状態を
事後条件に正確に反映するために必要な項目である。
There are two preconditions for the first action definition. The first precondition is that a may predicate on the existence of a file at another node exists in one of the information bases, that is, one of three information bases: node, field, and agent. The second precondition is for binding the Prolog variable HomeNode and reflecting it in the argument of the postcondition, and is an item necessary for accurately reflecting the state of movement of the agent in the postcondition.

【0215】第一のアクション定義の事後条件は、この
エージェントの状態がファイルFをネットワークにまた
がって探索するために、HomeNodeからNodeに移動する状
態にあることをプランナに対して示すものである。な
お、このアクション定義の事後条件におけるadd は、実
行器の各updateコマンドの引数に与えられる更新述語の
add (表7)とは全く異なるものである。すなわち、本
記述におけるadd は、本システムのアクション設計者
が、プランニングに必要なプラン途上の状態を、プラン
ナに対して指示するものであるのに対し、実行器のupda
teコマンドのadd は、スクリプトが、実行器に対し、情
報ベースに対する情報の追加を指示するものである。事
後条件におけるadd 述語の意味については、以下のアク
ションについても同様である。
The post-condition of the first action definition indicates to the planner that the state of this agent is in the state of moving from HomeNode to Node in order to search for the file F across the network. The add in the post condition of this action definition is the update predicate given to the argument of each update command of the executor.
This is completely different from add (Table 7). In other words, add in this description is used by the action designer of the present system to instruct the planner on the state of the planning required for the planning, whereas the add
In the add of the te command, the script instructs the executor to add information to the information base. The meaning of the add predicate in the postcondition is the same for the following actions.

【0216】〔3−2−1−2.アクション:goto2 〕
第二のアクション定義は、エージェントが獲得したファ
イルFを元のノードHomeNodeにコピーするアクションを
定義している。第二のアクション定義の内容を次に示
す。 action(goto2 , [ update_agent_base( add( myself, returning ,HomeNode)), goto_with_goal(HomeNode, return) ], [ have(file(F)) ], [ add( bringing(file(F),HomeNode) ) ] ). 第二のアクション定義のアクションは、サブゴールつき
移動コマンドgoto_with_goalである。本コマンドがプラ
ンニングにおいて採用された場合、その生成されたスク
リプトにおいて、先に示した実行器のgoto_with_goalコ
マンドが記述される。なお第二のアクションではgoto_w
ith_goalコマンドに先だち、エージェント情報ベースの
更新操作コマンドupdate_agent_base を行うが、これ
は、エージェントに対し、そのエージェントが帰還状態
にあることを、明示的にエージェントに通知する働きを
持つ。このコマンドが実行された場合、エージェントの
情報ベースに、ファクト info(myself, returning ). が追加される。このupdate_agent_base とgoto_with_go
alの2つの実行器コマンド操作は、エージェントが、現
在存在するノードからHomeNodeへ帰還する操作がネット
ワーク上の障害等により一時的に失敗した場合でも、re
turning というサブゴールによって、再プランする機会
を与える働きをもつ。
[3-2-1-2. Action: goto2]
The second action definition defines an action of copying the file F obtained by the agent to the original node HomeNode. The contents of the second action definition are shown below. action (goto2, [update_agent_base (add (myself, returning, HomeNode)), goto_with_goal (HomeNode, return)], [have (file (F))], [add (bringing (file (F), HomeNode))])) The action of the second action definition is the goto_with_goal movement command with subgoal. When this command is adopted in the planning, the goto_with_goal command of the execution unit described above is described in the generated script. The second action is goto_w
Prior to the ith_goal command, an update operation command update_agent_base of the agent information base is performed, which has a function of explicitly notifying the agent that the agent is in the return state. When this command is executed, the fact info (myself, returning). Is added to the agent's information base. This update_agent_base and goto_with_go
The two executor command operations of al are performed even if the agent temporarily returns to the HomeNode from the existing node due to a failure on the network.
The subgoal of turning gives the opportunity to replan.

【0217】第二のアクション定義の事前条件は、エー
ジェントが目的のファイルFをすでに獲得しているこ
と、すなわちhave(file(F)) である。第二のアクション
定義の事後条件bringing(file(F),HomeNode)は、このア
クションを採用した場合、エージェントの状態が、当座
の目標であるファイルFを獲得し、HomeNodeに帰還する
状態にあることをプランナに対して示すものである。
The precondition of the second action definition is that the agent has already acquired the target file F, that is, have (file (F)). The second post-condition of the action definition, bringing (file (F), HomeNode), is that when this action is adopted, the state of the agent is in the state of acquiring the immediate target file F and returning to the HomeNode. Is shown to the planner.

【0218】〔3−2−1−3.gotoアクション〕第三
のアクション定義は、何らかのネットワークの障害のた
めにエージェントの移動が実施できなかった場合に、一
つの対処方法として一定時間の間隔を開けて、移動を所
定の回数試みる様なコマンドを定義している。第三のア
クション定義の内容を次に示す。 action(wait_and_goto , [ wait_and_goto(HomeNode) ], [ home(HomeNode),returning ], [ add(return) ] ). 第三のアクション定義のアクションは、一定時間の間隔
を開けて、移動を所定の回数試みるwait_and_go であ
る。本アクションがプランニングにおいて採用された場
合、その生成されたスクリプトにおいて、先に示した実
行器のgoto_with_goalコマンドが記述される。
[3-2-1-3. goto action] The third action definition is a command that, when the agent cannot be moved due to some kind of network failure, attempts to move it a predetermined number of times with a certain time interval as one measure. Is defined. The contents of the third action definition are shown below. action (wait_and_goto, [wait_and_goto (HomeNode)], [home (HomeNode), returning], [add (return)]). The action of the third action definition is to move a certain number of times at regular intervals. Wait_and_go to try. When this action is adopted in planning, the goto_with_goal command of the executor described above is described in the generated script.

【0219】第三のアクション定義の事前条件に示され
ている述語returning は、エージェントが所定の移動の
目的を達成し、元のノードすなわちHomeNodoに帰還する
状態にあることを意味している。その前に記述されてい
る述語home(HomeNode)は、変数HomeNodeを束縛する役
割を果たしている。
The predicate returning shown in the precondition of the third action definition means that the agent has achieved the predetermined movement purpose and is in a state of returning to the original node, ie, HomeNodo. The predicate home (HomeNode) described before serves to bind the variable HomeNode.

【0220】第三のアクション定義の事後条件に示され
ているreturnは、このアクションを採用した場合、エー
ジェントの状態が、HomeNodeに帰還する状態にあること
をプランナに対して示すものである。
[0220] The return indicated in the post-condition of the third action definition indicates to the planner that the state of the agent is in a state of returning to the HomeNode when this action is adopted.

【0221】〔3−2−1−4.get アクション〕第四
のアクション定義は、対象(ファイルやデータなど)を
獲得する命令(例えば、put オペレーションとget オペ
レーション)を含み、前記エージェントは、獲得した対
象を移動の際に運搬することによって、当該エージェン
トが生成されたノードに持ち帰る。
[3-2-1-4. get action] The fourth action definition includes an instruction (for example, a put operation and a get operation) for acquiring an object (such as a file or data), and the agent carries the acquired object by moving the acquired object when moving. The agent returns to the generated node.

【0222】すなわち、このアクションはエージェント
固有の状態に関するもので、エージェントによるファイ
ルの獲得に関するものである。このアクション定義の内
容を次に示す。 action( get , [ check(file(F), HomeNode, maybe(exist( file(F), Node))), get(file(F)) ], [ seeking_for(file(F),HomeNode,Node),maybe(exist(file(F),Node)) ], [ add( have(file(F))) ] ). 第四のアクション定義のアクションには、2つのコマン
ドが記述されている。check コマンドが、実際に実行さ
れると、エージェントが存在するノードにおいて、ファ
イルFが実際に存在するかどうかを調べ、もしファイル
Fが存在しなかった場合には、エージェントのスクリプ
ト実行は失敗する。check コマンドの第一引数HomeNode
は、この確認を行う根拠となった知識ベースの存在する
個所を示し、第二引数maybe(exist(file(F),Node))は、
根拠となった知識を示す。
That is, this action relates to a state peculiar to the agent and relates to acquisition of a file by the agent. The contents of this action definition are shown below. action (get, [check (file (F), HomeNode, maybe (exist (file (F), Node))), get (file (F))], [seeking_for (file (F), HomeNode, Node), maybe (exist (file (F), Node))], [add (have (file (F)))]). In the action of the fourth action definition, two commands are described. When the check command is actually executed, it is checked whether or not the file F actually exists at the node where the agent exists. If the file F does not exist, the script execution of the agent fails. HomeNode, the first argument of the check command
Indicates the location of the knowledge base on which this check is based, and the second argument maybe (exist (file (F), Node))
Indicates the knowledge on which the evidence was based.

【0223】第四のアクション定義の事前条件に示され
ている述語returning は、エージェントが所定の移動の
目的を達成し、元のノードすなわちHomeNodoに帰還する
状態にあることを意味している。その前に記述されてい
る述語home(HomeNode)は、変数HomeNodeを束縛する役
割を果たしている。
The predicate returning shown in the precondition of the fourth action definition means that the agent has achieved the predetermined movement purpose and is in a state of returning to the original node, ie, HomeNodo. The predicate home (HomeNode) described before serves to bind the variable HomeNode.

【0224】第四のアクション定義の事後条件に示され
ているhave(file(F)) は、このアクションを採用した場
合、エージェントの状態が、HomeNodeに帰還する状態に
あることをプランナに対して示すものである。
Have (file (F)) indicated in the post-condition of the fourth action definition indicates to the planner that when this action is adopted, the agent state is in a state of returning to the HomeNode. It is shown.

【0225】〔3−2−1−5.put アクション〕第五
のアクション定義は、エージェントによるファイルのコ
ピーに関するものである。第五のアクション定義の内容
を次に示す。 action( put , [ put(file(F)), update_field_base( add( HomeNode, exist(file(F),HomeNode)) ) ], [ bringing(file(F),HomeNode) ], [ add(exist(file(F),HomeNode)) ] ). 第五のアクション定義のアクションには、2つのコマン
ドが記述されている。put アクションは、エージェント
の所有しているファイルFを、エージェントが現在いる
ノードにコピーする。update_field_base コマンドは、
エージェントが新しくファイルのコピーを行ったため、
そのファイルの存在に関する情報を、エージェントが現
在いるノードにおけるフィールド情報ベースに対して追
加することを示している。
[3-2-1-5. put action] The fifth action definition relates to copying a file by an agent. The contents of the fifth action definition are shown below. action (put, [put (file (F)), update_field_base (add (HomeNode, exist (file (F), HomeNode)))], [bringing (file (F), HomeNode)], [add (exist (file (F), HomeNode))]). In the action of the fifth action definition, two commands are described. The put action copies the file F owned by the agent to the node where the agent is currently located. The update_field_base command is
Because the agent made a new copy of the file,
This indicates that information about the existence of the file is to be added to the field information base at the node where the agent is currently located.

【0226】第五のアクション定義の事前条件に示され
ている述語bringing(file(F),HomeNode)は、エージェン
トがHomeNodeに対してファイルFを運んでいることを示
している。第五のアクション定義の事後条件に示されて
いるadd(exist(file(F),HomeNode))は、エージェントに
よるコピーが終了した事後条件として、HomeNodeにおい
てファイルFが存在することをプランナに対して示すも
のである。
The predicate bringing (file (F), HomeNode) shown in the precondition of the fifth action definition indicates that the agent is carrying file F to HomeNode. The add (exist (file (F), HomeNode)) shown in the post-condition of the fifth action definition is a post-condition that the agent has finished copying, and the planner is notified that the file F exists in the HomeNode. It is shown.

【0227】〔3−2−2.情報ベースの記述例〕次
に、第3実施形態における情報ベースの記述例を、ノー
ドの情報ベースを例として示す。 info(node0, maybe(exist(file(file1),node1))). info(node0, home(node0)). 本情報ベースは、ノードnode0 における情報ベースの記
述例である。この情報ベースにおける第一行の記述は、
ノードnode0 において、ファイルfile1 がノードnode1
に存在するとする知識である。ただし、ノードnode0 と
ノードnode1 は異なるホストであり、この種の他のノー
ドに関する情報は、情報の更新が日々行われるネットワ
ークにおいて常に正しいとは限らない。maybe 情報と
は、このような他のノードに関する情報である。第2行
の記述は、ノードnode0 がまさしくノードnode0 である
ことを表現するために、第3実施形態において導入して
いる。この例において想定するゴールは、ノードnode0
に、ファイルfile1 を獲得することである。ファイルfi
le1 は、node1 もしくはnode2 を利用する特定の人物に
よって作成されるファイルであることが事前に判明して
いるものとすれば、ファイルfile1 が存在するノード
は、node1 か、node2 のいずれかであるものと仮定する
ことができる。この事実を、ファイルfile1 の集積地の
役割を果たすノードnode0 のフィールドmakeにおいて、
次のような情報ベースの記述内容として表現する。この
情報ベースは、第1実施形態でも述べたように、同じネ
ットワークに属する別のフィールドのエージェント、又
は別のアプリケーション・ソフトウェアを用いて、自動
的に情報ベースに付加する手段を取ることが可能であ
る。
[3-2-2. Example of description of information base] Next, an example of description of an information base in the third embodiment will be described using an information base of a node as an example. info (node0, maybe (exist (file (file1), node1)))). info (node0, home (node0)). This information base is a description example of the information base in node node0. The first line description in this information base is
On node node0, file file1 is on node node1
Knowledge that exists in However, the nodes node0 and node1 are different hosts, and information on such other nodes is not always correct in a network where information is updated daily. The maybe information is information on such other nodes. The description on the second line is introduced in the third embodiment to express that the node node0 is exactly the node node0. The goal assumed in this example is the node node0
To get the file file1. File fi
le1 is a file created by a specific person using node1 or node2, and if file1 exists, the node where file1 exists is either node1 or node2 Can be assumed. This fact is described in the field make of the node node0 that plays the role of the accumulation area of the file file1.
Expressed as the following information base description contents. As described in the first embodiment, this information base can be automatically added to the information base by using an agent in another field belonging to the same network or another application software. is there.

【0228】この例では、簡単のために、ノードの情報
ベースおよび、ノードのアクションベースは、空である
ものと想定する。この場合、node0 におけるフィールド
makeのフィールド情報ベースは次の通りとなる。 info(node0, home(node0)). info(node0, exist(file(file2),node0)). info(node0, maybe(exist(file(file1),node1))). info(node0, maybe(exist(file(file1),node2))). ここで、述語infoは、第3実施形態において、情報ベー
ス記述であることを明示して表現する述語であり、2つ
の引数を持つ。第3実施形態における述語infoは、頭部
だけによって表現されるいわゆるPrologの事実(fact)
である。述語infoの頭部(head)の第一の引数は、どのノ
ードにおける情報であるかを明示したものであり、本フ
ィールド情報ベースの記述例においては、その内容はす
べてnode0 である。info述語の頭部の第2引数は、実質
的意味をもつ情報であり、Prologの項(term)を用いて表
現されている。本記述例は、次のような具体的な意味を
持つ。
In this example, for simplicity, it is assumed that the information base of the node and the action base of the node are empty. In this case, the field on node0
The field information base of make is as follows. info (node0, home (node0)). info (node0, exist (file (file2), node0)). info (node0, maybe (exist (file (file1), node1)))). info (node0, maybe (exist (file (file1), node2))). Here, the predicate info is a predicate explicitly expressing that it is an information base description in the third embodiment, and has two arguments. The predicate info in the third embodiment is a so-called Prolog fact expressed only by the head.
It is. The first argument of the head of the predicate info specifies which node the information is in. In the description example of the field information base, the content is all node0. The second argument of the head of the info predicate is information having a substantial meaning, and is expressed using a Prolog term. This description example has the following specific meaning.

【表8】 [Table 8]

【0229】情報exist(file(file2),node0)と情報mayb
e(exist(file(file1),node1)))の違いは、前者において
は、この記述例の情報ベースが所属するnode0 に存在す
るファイルに関する情報であり、事実として情報ベース
に記載することが可能な種類の情報であるのに対し、後
者のmaybe 述語は、node0 から見て他のノードであるno
de1 に関する事実の記載であり、変化を想定するネット
ワークにおいて、node0 においては記述の正当性を常に
は保証できない情報であることを反映したものである。
Information exist (file (file2), node0) and information mayb
The difference of e (exist (file (file1), node1))) is that in the former, it is information about the file that exists in node0 to which the information base of this description belongs, and it can be described in the information base as a fact. Whereas the latter predicate is the other node no from the viewpoint of node0.
This is a description of the facts about de1 and reflects the fact that the validity of the description cannot always be guaranteed at node0 in a network that assumes changes.

【0230】したがって、このフィールド情報ベースの
4つのinfo述語の意味は、次の通りである。 ・このフィールドの所属するノードはnode0 である。 ・ ファイルfile2 は、node0 に存在する。 ・ ファイルfile1 は、node1 に存在すると想定する。 ・ ファイルfile2 は、node2 に存在するとも想定す
る。
Therefore, the meanings of the four info predicates in the field information base are as follows. -The node to which this field belongs is node0. -File file2 exists in node0.・ Assume that file file1 exists in node1.・ It is also assumed that file file2 exists on node2.

【0231】次に、node1 におけるフィールド情報ベー
スには、次の内容が格納されてものとする。これは、fi
le1 に関しては、その存在がnode1 か又はnode2 に存在
するという、あらかじめ得られた知見に基づき、maybe
の述語とするものである。 info(node0, maybe(exist(file(file1),node2))). 同様に、node2 におけるフィールド情報ベースには、次
のmaybe 情報が格納されているものとする。 info(node0, maybe(exist(file(file1),node1))). ここで説明したmaybe 情報も、先に示したinfo述語の一
種である。各情報ベース、すなわちエージェント情報ベ
ース、フィールド情報ベース、ノード情報ベースに含ま
れるinfo述語の一部を構成する。以上の情報は、エージ
ェントがプランニングフェーズに移った際に、プランナ
に対して与えられる。これらのinfo述語は、プランナが
アクションを選択する際に必要な事前条件である。
Next, it is assumed that the following contents are stored in the field information base of node1. This is fi
With respect to le1, based on the previously obtained knowledge that its existence exists at node1 or node2,
Is a predicate of info (node0, maybe (exist (file (file1), node2))). Similarly, the following information may be stored in the field information base of node2. info (node0, maybe (exist (file (file1), node1)))). The maybe information described here is also a type of the info predicate shown above. Each information base, that is, a part of an info predicate included in the agent information base, the field information base, and the node information base is configured. The above information is given to the planner when the agent moves to the planning phase. These info predicates are preconditions that the planner needs to select an action.

【0232】〔3−2−3.ゴールの入力とエージェン
トの生成〕以上のような情報を保有する第3実施形態の
情報処理装置において、ノードにゴールが与えられる
と、ノードマネージャ15がエージェントプロセス17
を生成し、プランナ13がプラン生成を行う。なお、第
3実施形態において、プランナ13は、ゴールを与える
ことによって起動する。第3実施形態におけるPrologを
用いた前記プランナの実装では、ゴール記述をPrologの
クエリー(質問)として与えることによって、エージェ
ント名をファイル名とするスクリプトを生成する。第3
実施形態におけるゴールは、前述の各ベースの内容を前
提する場合、 (例) exist(file(file1),node0) と記述できる。このゴールは、ノードnode0 にファイル
file1 を獲得することであり、換言すれば、現状ではノ
ードnode0 には存在していないファイルfile1 を、いず
れかの他のノードよりコピーすることによりnode0 に存
在させることを意味する。
[3-2-3. Input of Goal and Generation of Agent] In the information processing apparatus of the third embodiment having the above information, when a goal is given to a node, the node manager 15
Is generated, and the planner 13 generates a plan. In the third embodiment, the planner 13 is activated by giving a goal. In the implementation of the planner using Prolog in the third embodiment, a script having an agent name as a file name is generated by giving a goal description as a Prolog query (question). Third
The goal in the embodiment can be described as (example) exist (file (file1), node0) when the contents of each base described above are assumed. This goal is the file
This means acquiring file1. In other words, it means that file file1, which does not currently exist on node node0, is copied from one of the other nodes and is made to exist on node0.

【0233】このゴールをプランナに投入することの具
体的な実施例としては、前記のプランナに対し、次のよ
うなクエリーを発行することである。このゴールは、先
に示したアクションベース、および情報ベースと組み合
わせることによって有効となる。
As a specific example of inputting the goal to the planner, the following query is issued to the planner. This goal is effective when combined with the action base and the information base described above.

【0234】 (例) :-plan(exist(file(file1),node0),_). エージェント生成は、このゴール記述をnode0 のフィー
ルドmakeのノードマネージャ15に対して与えることに
よって実行される。この操作は、所定の入出力手段を通
じて行われる。
(Example): -plan (exist (file (file1), node0), _). The agent generation is executed by giving this goal description to the node manager 15 of the field make of node0. This operation is performed through predetermined input / output means.

【0235】ここで、エージェントの生成を含むノード
マネージャの動作手順を図16に示す。ノードマネージ
ャは、当該ノードに存在するエージェント(アクティブ
・エージェント)を登録するリスト(アクティブ・エー
ジェント・リスト)ALを有する(図14)。そして、
ノードマネージャ15は、図16に示すように、他のノ
ードマネージャやエージェントプロセスからの指示とし
て、ノード・ポートNP(図14)から通信内容を受け
取り(ステップ1501〜1505)、指示として与え
られる文字列stringの内容に応じて(ステップ1506
〜1510)、エージェントの生成(ステップ151
1,1512)、消滅(ステップ1521,1522)
又は移動など(ステップ1531〜1553)の処理を
行い、アクティブ・エージェント・リストを更新する。
FIG. 16 shows an operation procedure of the node manager including generation of an agent. The node manager has a list (active agent list) AL for registering agents (active agents) existing in the node (FIG. 14). And
As shown in FIG. 16, the node manager 15 receives communication contents from the node / port NP (FIG. 14) as an instruction from another node manager or an agent process (steps 1501 to 1505), and receives a character string given as the instruction. According to the contents of the string (step 1506
To 1510), generation of an agent (step 151)
1, 1512), disappeared (steps 1521, 1522)
Alternatively, processing such as movement (steps 1531 to 1553) is performed to update the active agent list.

【0236】なお、ノードマネージャは、このように送
られる語の内容を解釈することによって各々のインタフ
ェースの処理内容を決定するが、語をどのように転送す
るかには、さまざまな方式がありうるので、所望の方式
を自由に採用してよい。
The node manager determines the processing contents of each interface by interpreting the contents of the words sent as described above. There are various methods for transferring the words. Therefore, a desired method may be freely adopted.

【0237】エージェントマネージャ15によって生成
されたエージェント・プロセス17(図8)は、ノード
マネージャ15によって生成/管理されながら、全体と
して、エージェントAの動作を実現する。なお、ノード
マネージャ15は、エージェント・プロセス17を同時
に複数生成することができる。
The agent process 17 (FIG. 8) generated by the agent manager 15 realizes the operation of the agent A as a whole while being generated / managed by the node manager 15. Note that the node manager 15 can simultaneously generate a plurality of agent processes 17.

【0238】エージェントの生成後、ノード・マネージ
ャ15によってエージェント名がそのエージェントに与
えられる。エージェントはネットワーク内のノード間で
移動するので、エージェントを識別するためには、エー
ジェント名は、ネットワーク内における唯一の名称であ
る必要がある。ノード・マネージャ15は、そのノード
名、時刻、およびそれまでに生成したエージェントの数
等の情報を組み合わせて、ネットワークにおけるユニー
クなエージェント名を、生成したエージェントに与え
る。生成されたエージェントは、以下に説明するよう
に、プランニング、実行、移動の3つのフェーズを有
し、必要に応じてそれぞれのフェーズに入る。
After the generation of the agent, the agent name is given to the agent by the node manager 15. As agents move between nodes in the network, the agent name must be the only name in the network to identify the agent. The node manager 15 combines the information such as the node name, the time, and the number of agents generated so far, and gives the generated agent a unique agent name in the network. The generated agent has three phases of planning, execution, and movement as described below, and enters each phase as necessary.

【0239】〔3−2−4.プランの作成〕ゴールが与
えられてエージェントが生成されると、プランナ13
が、与えられたゴールに対するプランニングを実施す
る。すなわち、最初にゴール exist( node0, file(file1)). が所定の入出力装置から与えられることによってエージ
ェントが生成され、エージェントは、プランニングフェ
ーズに入る。すなわち、エージェントはゴール・スクリ
プトセットをゴールスタックに積み、プランナ13を起
動することによってプランニングを実施する。
[3-2-4. Creation of Plan] When a goal is given and an agent is generated, the planner 13
Performs planning for the given goal. That is, first, an agent is generated by giving a goal exist (node0, file (file1)). From a predetermined input / output device, and the agent enters a planning phase. That is, the agent executes the planning by loading the goal script set on the goal stack and activating the planner 13.

【0240】図17は、プラン作成の内容をフローチャ
ートの形式で示した概念図で、公知であるプランニング
技術を説明した図である。すなわち、第3実施形態にお
けるプランナ13は、ゴールより後ろ向き推論を実施
し、事前条件と事後条件を参照しながら、ゴールを満た
すアクション系列を求める。なお、図17は、言い換え
れば、実際のプランニングの動作を簡素化して記述した
ものであり、実際のPrologの動作において発生する変数
とアトムの同一化(unification )等の動作を省略して
簡素化して記述したものである。
FIG. 17 is a conceptual diagram showing the contents of plan creation in the form of a flowchart, and is a diagram for explaining a known planning technique. That is, the planner 13 in the third embodiment performs backward inference from the goal, and obtains an action sequence satisfying the goal while referring to the precondition and the postcondition. In other words, FIG. 17 simply describes the actual planning operation, and simplifies the operation by omitting operations such as unification of variables and atoms that occur in the actual Prolog operation. It is described.

【0241】このプランニングでは、第1実施形態と同
様に、ゴールを事後条件とするアクション定義を探索す
る。次に、見つかったアクション定義中の事前条件をそ
れぞれゴールとして、そのゴールを事後条件とするアク
ション定義を探索する。してプランのスクリプトに書き
出し、書き出したアクションをゴールとして、さらに同
様の手順を繰り返すことによってプランを作成する。す
なわち、具体的には、ゴールから(ステップ160
1)、アクションput,goto2,get,goto1 を辿って全ての
条件が満たされるまで(ステップ1602〜160
5)、手順を繰り返す。この探索は、ゴールから現在の
状態に向かって逆向きに行っているため、選択されたア
クション定義を選択した順序とは逆向きにして、それら
のアクション定義中のアクションの内容、すなわちコマ
ンドの並びを、スクリプトとして生成する。なお、この
とき、どのようなアクション定義の順序をとっても全て
の条件を満たすことができなかった場合が、プランニン
グ失敗である。
In this planning, as in the first embodiment, an action definition having a goal as a post condition is searched. Next, each precondition in the found action definition is set as a goal, and an action definition having the goal as a postcondition is searched. Then, the plan is created by writing the script to the plan, and using the written action as a goal, and repeating the same procedure. That is, specifically, from the goal (step 160)
1) tracing actions put, goto2, get, goto1 until all conditions are satisfied (steps 1602 to 160)
5) Repeat the procedure. Since this search is performed in the reverse direction from the goal to the current state, the selected action definitions are reversed in the order selected, and the contents of the actions in those action definitions, that is, the command sequence Is generated as a script. At this time, if all the conditions cannot be satisfied regardless of the order of the action definitions, planning fails.

【0242】図16の処理によって、node0 のフィール
ドmakeのフィールド知識ベースおよびnode0 のアクショ
ンベースに基づき、次のようなプラン結果がスクリプト
として得られる。左端の数字は、行番号である。 1 %update_agent_base "add(myself, home(node0))" 2 %goto node1 "maybe(exist(file(file1), node1))" 3 %check file(file1) node0 "maybe(exist(file(file
1), node1))" 4 %get file(file1) 5 %update_agent_base "add(myself, returning, node
0)" 6 %goto_with_goal node0 "return" 7 %put file(file1) 8 %update_field_base "add(node0, exist(file(file
1), node0))"
By the processing in FIG. 16, the following plan result is obtained as a script based on the field knowledge base of the field make of node0 and the action base of node0. The leftmost number is a line number. 1% update_agent_base "add (myself, home (node0))" 2% goto node1 "maybe (exist (file (file1), node1))" 3% check file (file1) node0 "maybe (exist (file (file
1), node1)) "4% get file (file1) 5% update_agent_base" add (myself, returning, node
0) "6% goto_with_goal node0" return "7% put file (file1) 8% update_field_base" add (node0, exist (file (file
1), node0)) "

【0243】なお、プランナ13は、表6のコマンドgo
to(2番目)に示すように、プランの一部としてエージ
ェントをノード間で移動させる移動命令を作成する際
に、当該命令の前提となる事前条件を添付する。すなわ
ち、node1 への移動の根拠が "maybe(exist(file(file1),node1))" であることを意味している。なお、事前条件を移動命令
に添付する場合、事前条件の全部又は一部を移動命令の
付属パラメータとする。
Note that the planner 13 executes the command go in Table 6.
As shown in to (second), when creating a move command for moving an agent between nodes as part of a plan, a precondition as a premise of the command is attached. That is, it means that the reason for moving to node1 is "maybe (exist (file (file1), node1))". When the precondition is attached to the movement command, all or a part of the precondition is set as an attached parameter of the movement command.

【0244】このように、第3実施形態では、移動命令
に事前条件が(根拠として)添付される。そして、当該
移動命令に基づく移動が失敗する場合は、命令が前提と
した事前条件が成立していなかった可能性が最も大き
い。この事前条件は、命令に添付されているので、命令
を参照すれば容易に判明する。このため、移動失敗への
対応が容易になる。
As described above, in the third embodiment, a precondition is attached (as a basis) to a movement command. When the movement based on the movement command fails, it is most likely that the preconditions premised on the command have not been satisfied. This precondition is attached to the instruction and can be easily found by referring to the instruction. For this reason, it is easy to respond to the movement failure.

【0245】なお、プランナ13は、ノードのアクショ
ンベースおよび情報ベース、フィールドのアクションベ
ースおよび情報ベース、エージェントのアクションベー
スおよび情報ベースを、プランニングの実施に先立って
読み込む。第3実施形態では、以上を総称して知識ベー
スと呼ぶ。第3実施形態におけるPrologを用いた実装に
おいては、既に示したように、各情報ベースの情報をPr
ologの節により表現しているので、プランニングに先立
ち、以上のすべての知識ベースをPrologのアサートを用
いて、読み込むことにより、プランニングを実施するこ
とができる。
The planner 13 reads the action base and the information base of the node, the action base and the information base of the field, and the action base and the information base of the agent before executing the planning. In the third embodiment, the above is generically called a knowledge base. In the implementation using Prolog in the third embodiment, as described above, the information of each information base is Pr
Because it is expressed by the olog section, planning can be performed by reading all the above knowledge bases using Prolog assertions before planning.

【0246】前記のクエリーにより、ファイル名 ′scr
ipt′ というスクリプトが一度生成される。そして、エ
ージェント・プロセスは、その該当する固有のエージェ
ント名によってファイル名をつけかえ、他の同時に存在
するエージェントのスクリプトと区別する。もちろん、
複数のエージェントが同時にプランニングを実施した場
合は、両者は平行プロセスとなるため、ファイルの生
成、削除において、エージェントの動作の同期が必要と
なるが、適切なロック機構を導入することによって、複
数のエージェントが同一のノードに存在することが可能
である。
According to the above query, the file name 'scr
A script called ipt ′ is generated once. The agent process then renames the file according to the corresponding unique agent name to distinguish it from other concurrent agent scripts. of course,
If multiple agents are planning at the same time, they are a parallel process, so it is necessary to synchronize the operations of the agents when creating and deleting files, but by introducing an appropriate locking mechanism, Agents can be on the same node.

【0247】プランニングは、ゴールの内容、ノードの
知識ベース、フィールドの知識ベース、移動の知識ベー
スの内容によって、成功する場合と失敗する場合とがあ
る。成功の場合は、プランニングの出力であるスクリプ
トが生成され、エージェントは実行フェーズに移る。な
お、エージェントは生成時に与えられたゴール以外に、
途中での失敗を回復するなどのためのサブゴールを複数
格納できるゴールスタックを有している。そして、サブ
ゴールのプランニングに失敗した場合は、より上位のゴ
ールによってプランニングを実施する。最終的にすべて
のプランニングに失敗した状態が完全失敗である。完全
失敗の場合は、エージェントは終了処理される。
Depending on the contents of the goal, the knowledge base of the nodes, the knowledge base of the field, and the contents of the knowledge base of the movement, the planning may succeed or fail. If successful, a script that is the output of planning is generated and the agent moves to the execution phase. In addition to the goal given at the time of generation, the agent
It has a goal stack that can store a plurality of subgoals for recovering from a failure in the middle. Then, when the planning of the subgoal fails, the planning is performed by the higher goal. A state in which all planning finally fails is a complete failure. In the case of a complete failure, the agent is terminated.

【0248】なお、プランニングの結果、前掲のスクリ
プトを得るので、エージェントは、これをゴールスタッ
ク最上段のゴール・スクリプトセットに格納する。次
に、エージェントは実行フェーズに移る。
Since the above script is obtained as a result of the planning, the agent stores the script in the goal script set at the top of the goal stack. Next, the agent moves to the execution phase.

【0249】プランニングでは、最終的な目的であるゴ
ールを達成するための中間的なゴールを作成し、この中
間的なゴールを達成するための子エージェントを生成す
るようにしてもよい。このようにすれば、中間的なゴー
ルの作成が子エージェントに依託されるので、エージェ
ント毎の情報処理の内容が単純化されることによって、
情報処理が効率化される。また、複数のエージェントが
並行または並列動作することによって、情報処理が迅速
化される。
In the planning, an intermediate goal for achieving the goal, which is the final goal, may be created, and a child agent for achieving the intermediate goal may be generated. In this way, since the creation of intermediate goals is entrusted to the child agent, the content of information processing for each agent is simplified,
Information processing is made more efficient. In addition, information processing is speeded up by a plurality of agents operating in parallel or in parallel.

【0250】〔3−2−5.プランの実行〕スクリプト
記述を生成すると、エージェントは、制約にかかわる判
定と必要なプラン修正を行ったうえ、実行器16を用い
て実行フェーズに入る。後述するように、スクリプト
は、制御構造を有するコマンドの列である。実行フェー
ズにおけるエージェントは、スクリプトを制御構造にし
たがって解釈し、順にコマンドを実行する。
[3-2-5. [Execution of Plan] When the script description is generated, the agent makes a decision regarding a constraint and makes necessary plan corrections, and then enters an execution phase using the execution unit 16. As described later, the script is a sequence of commands having a control structure. The agent in the execution phase interprets the script according to the control structure and executes the commands in order.

【0251】図18は、プランを実行する手順を示すフ
ローチャートである。この手順では、スクリプトが終了
するまで実行行番号を増大させながら1行ずつコマンド
を読み出し(ステップ1701〜1704,1715,
1716)、移動命令ならばその旨をエージェントマネ
ージャに依頼し、移動命令以外はコマンドの種類に応じ
た処理を行う(ステップ1708)。なお、実行途上で
エラーが発生した場合は(ステップ1709)、エラー
の生じたコマンドの種類毎に所定のエラー処理を行う
(ステップ1710〜1714)。
FIG. 18 is a flowchart showing a procedure for executing a plan. In this procedure, commands are read out line by line while increasing the execution line number until the script ends (steps 1701 to 1704, 1715,
1716) If it is a move command, the agent manager is requested to do so, and other than the move command, processing corresponding to the type of command is performed (step 1708). If an error occurs during the execution (step 1709), predetermined error processing is performed for each type of command in which the error has occurred (steps 1710 to 1714).

【0252】すなわち、実行器16は、スクリプトを読
み込み、一行単位でコマンドを切り出し、コマンド名お
よびスクリプトを解釈し、コマンドの種類に応じて、先
に示した表に示したコマンドを実行する。実行器が実行
するスクリプトの文法には、さまざまなバリエーション
が存在し得るが、どのような文法を解釈する実行器を使
用するかに関しては、本発明の本質とはかかわりなく、
表に示すような移動コマンドおよび表に示す情報ベース
の更新を伴うコマンドや、根拠となった情報を明示する
コマンドが実行器に用意されている点に特徴がある。こ
れらのコマンドが用意されていることにより、エージェ
ントに適切なサブゴールを与えたり、あるいはネットワ
ークにおける変化に伴って適切に情報ベースの更新を行
うことが可能になる。
That is, the executor 16 reads the script, cuts out the command line by line, interprets the command name and the script, and executes the command shown in the above table according to the type of the command. There may be various variations in the grammar of the script executed by the executor. Regarding the grammar interpreter to be used, regardless of the essence of the present invention,
It is characterized in that a moving command as shown in the table, a command for updating the information base shown in the table, and a command for specifying the information serving as the basis are prepared in the execution unit. By providing these commands, it becomes possible to give an appropriate subgoal to the agent or to appropriately update the information base in response to a change in the network.

【0253】コマンドの実行が失敗した場合、又は再プ
ランコマンドが実施された場合には、所定のゴールに基
づいてプランニングを行うためのプランニングフェーズ
に戻る。移動コマンドが実施された場合は、移動フェー
ズに移る。
If the execution of the command fails or the re-plan command is executed, the process returns to the planning phase for performing planning based on a predetermined goal. If the move command has been executed, the process moves to the move phase.

【0254】〔3−2−6.エージェントの移動〕実行
器16が、実行中のスクリプトにおいて移動命令に遭遇
すると、その旨がノードマネージャ15に通知され、エ
ージェントが他のノードに転送される。エージェントを
移動するために実際に転送される情報は、スクリプト、
エージェント、ゴールスタック、エージェント知識ベー
スである。これらの情報を、すべて移動先のノードに転
送することに成功した場合、エージェントは、移動先に
おいて実行フェーズに戻る。
[3-2-6. Move Agent] When the executor 16 encounters a move command in a script being executed, it is notified to the node manager 15 and the agent is transferred to another node. The information actually transferred to move the agent is a script,
Agent, goal stack, agent knowledge base. If all of this information has been successfully transferred to the destination node, the agent returns to the execution phase at the destination.

【0255】〔3−2−6−1.他のノードへのエージ
ェントの移動〕図19は、他のノードへのエージェント
の移動する場合の移動元側ノードのノードマネージャの
動作を示すフローチャートである。すなわち、エージェ
ントに関する必要な情報を収集すると共に(ステップ1
802〜1804)、移動先のノードをホストとして通
信を試み(ステップ1805,1808)、通信路の確
立に失敗した場合は移動をあきらめ(ステップ180
6,1809)、エージェントプロセスに対して失敗を
通知する(ステップ1807,1810)。通信路が確
立できた場合は、移動先に必要な情報を送信して返答を
待ち(ステップ1811,1812,1815)、通信
路が確立できた場合でも、相手先ノードからの返信を受
け取ることができなかった場合は、同様に移動失敗とみ
なし(ステップ1813)、エージェントプロセスに対
して通知を行う(ステップ1814)。
[3-2-6-1. Movement of Agent to Another Node] FIG. 19 is a flowchart showing the operation of the node manager of the source node when the agent moves to another node. That is, while collecting necessary information about the agent (step 1)
802 to 1804), communication is attempted using the destination node as a host (steps 1805 and 1808). If the establishment of a communication path fails, the movement is abandoned (step 180).
6, 1809), and notifies the agent process of failure (steps 1807, 1810). When the communication path is established, necessary information is transmitted to the destination, and a response is waited for (steps 1811, 1812, 1815). Even if the communication path is established, a reply from the destination node can be received. If the transfer is not successful, the transfer is similarly regarded as a failure (step 1813), and the agent process is notified (step 1814).

【0256】〔3−2−6−2.他のノードからのエー
ジェントの移動〕図19の処理に対応して、移動先のノ
ードのノードマネージャは、図20に示す処理によって
エージェントを受け入れる。すなわち、ノード・マネー
ジャは、他のノードからノード・ポートにプロトコルM
Fを受信した場合、必要な情報を受け取って(ステップ
1901)、新たなエージェントに資源を割り付け(ス
テップ1902)、新たなエージェントの情報を所定の
記憶領域に保存したうえ(ステップ1903)、移動元
に受け入れ成功を返答して(ステップ1904,190
5)、エージェントプロセスを起動する(ステップ19
06)なお、この処理の途上で、通信の異常が発生した
場合は、JavaやC++のオブジェクト指向言語にお
いて用いる例外処理機構によって、処理される。
[3-2-6-2. Movement of Agent from Another Node] In correspondence with the process of FIG. 19, the node manager of the destination node accepts the agent by the process shown in FIG. That is, the node manager sends the protocol M from another node to the node port.
When receiving the F, necessary information is received (step 1901), resources are allocated to a new agent (step 1902), information of the new agent is stored in a predetermined storage area (step 1903), and the source Reply to the acceptance success (steps 1904, 190
5) Start the agent process (step 19)
06) If a communication error occurs during this process, it is handled by an exception handling mechanism used in Java or C ++ object-oriented languages.

【0257】なお、図21は、エージェント=ノード間
インターフェースと、ノード=ノード間インタフェース
を用いて、エージェントがどのように移動するかを示す
補足的な説明図である。エージェントは、ノードマネー
ジャを介して、間接的に移動を行う。
FIG. 21 is a supplementary explanatory diagram showing how an agent moves using an agent = node interface and a node = node interface. The agent moves indirectly via the node manager.

【0258】〔3−2−7.失敗への対応〕なお、スク
リプトの実行又は移動が失敗した場合すなわちプランの
実行が失敗した場合、プランの実行を中断し、再度プラ
ンを作成して実行する。失敗が発生する態様としては、
例えば、エラーや例外の発生などが考えられる。第3実
施形態では、プランの実行や移動が失敗しても、再度プ
ランが作成されるので、情報処理が円滑に継続される。
[3-2-7. Responding to Failure] If the execution or movement of the script fails, that is, if the execution of the plan fails, the execution of the plan is interrupted, and the plan is created and executed again. As a mode in which the failure occurs,
For example, an error or an exception may occur. In the third embodiment, even if the execution or movement of the plan fails, the plan is created again, so that the information processing is smoothly continued.

【0259】具体的には、プラン中のアクションの実行
又は移動に失敗した場合、実行又は移動の失敗を回復す
るためのサブゴールを生成し、当該サブゴールの実行終
了後に前記プランの実行を再開するための情報を保存
し、前記サブゴールに基づいてプランの作成及びプラン
の実行を行い、サブゴールに基づくプランの実行後に、
保存した前記情報を用いて元のプランの実行を継続す
る。
Specifically, when the execution or movement of the action in the plan fails, a subgoal for recovering the failure of the execution or movement is generated, and the execution of the plan is resumed after the execution of the subgoal is completed. Save the information of, create a plan and execute the plan based on the subgoal, after the execution of the plan based on the subgoal,
The execution of the original plan is continued using the stored information.

【0260】例えば、goコマンドに基づくエージェント
の移動が失敗し、かつ、当該goコマンドに根拠が付加さ
れていない場合は、現在のスクリプトを生成したゴール
を、再びゴールとして用いて再度プランニングを行う。
移動が失敗する場合としては、移動先ノードへのネット
ワーク接続が確立されていない場合、又は一定時間以内
に移動が完了しない場合、又は移動先においてメモリや
ディスクスペース等の必要なリソースが確保されない場
合が考えられる。このような場合は、移動命令失敗とみ
なして、所定のサブゴールに基づくプランニングフェー
ズに戻る。
For example, if the movement of the agent based on the go command has failed and no basis has been added to the go command, planning is performed again using the goal for which the current script has been generated as the goal again.
If the migration fails, the network connection to the destination node has not been established, or the migration has not been completed within a certain period of time, or the required resources such as memory and disk space are not secured at the destination. Can be considered. In such a case, it is considered that the movement command has failed, and the process returns to the planning phase based on the predetermined subgoal.

【0261】このような失敗は、望ましくは移動元側で
検出する。例えば、エージェントがgoコマンドを実施す
る際に、エージェントの移動を管理するノードマネージ
ャにおいて、移動先ノードの何らかの不具合により、エ
ージェントが移動できない場合に、エージェントの移動
失敗を移動元で検知する。
Such a failure is desirably detected on the source side. For example, when the agent executes the go command, in the node manager that manages the movement of the agent, if the agent cannot move due to some trouble in the destination node, the failure of the agent movement is detected at the source.

【0262】このように、失敗の際にサブゴールを作成
してプラン作成を行うことは、実行フェーズにあるとき
でも、必要に応じてプランニングフェーズに移行するこ
とを意味する。なお、保存する情報としては、元のゴー
ル、元のスクリプト、当該スクリプトの実行位置等が考
えられる。また、これら情報を保存するには、これら情
報をゴールスタックに積めばよい。そして、作成された
サブゴールのうち、もっとも下位のサブゴールよりプラ
ンニングを実施し、作成されたプランを実行する。実行
後に元のプランを再開するには、保存した前記情報をス
タックより取り出して用いればよい。
As described above, creating a plan by creating a subgoal in the event of a failure means shifting to the planning phase as needed even during the execution phase. The information to be stored may be the original goal, the original script, the execution position of the script, and the like. In order to save such information, the information may be stored on the goal stack. Then, planning is performed from the lowest subgoal among the created subgoals, and the created plan is executed. To resume the original plan after execution, the saved information may be taken out of the stack and used.

【0263】また、第3実施形態では、プランニング、
プランの実行又はプランに基づく移動が失敗した場合
に、失敗の原因となった情報が修正される。このため、
それ以降の失敗が減少し、処理が効率化される。例え
ば、実行器16は、事前条件がパラメータとして明示さ
れているgoコマンドの実行が失敗した場合、当該事前条
件をローカル情報すなわちフィールド情報ベースから削
除する。
Also, in the third embodiment, the planning,
If the execution of the plan or the movement based on the plan fails, the information that caused the failure is corrected. For this reason,
Subsequent failures are reduced, and processing is made more efficient. For example, when the execution of the go command in which the precondition is specified as a parameter fails, the executor 16 deletes the precondition from the local information, that is, the field information base.

【0264】なお、サブゴールを作成し及び情報を修正
する態様は、アクション毎若しくは移動先毎にあらかじ
め定義された方式、又はプラン作成で用いられたいずれ
かの情報によって定義された方式に基づいて、また、ロ
ーカル情報などに基づいて定めればよい。
The mode for creating a subgoal and correcting information is based on a method defined in advance for each action or destination, or a method defined by any information used in the plan creation. In addition, it may be determined based on local information or the like.

【0265】このように、失敗時への対処の場合を含め
て、第3実施形態では、プランの実行においてサブゴー
ルを作成し、サブゴールについてさらにプランの作成と
実行を行うことによって、階層的なゴールの構造を用い
て情報を処理する。この場合、エージェントは、goアク
ションによって移動する際に、階層的なゴールスタック
を伴って移動するので、移動先のノードでも移動前と同
じゴールスタックを用いて、一貫性のある動作を行うこ
とができる。
As described above, in the third embodiment including the case of coping with a failure, a hierarchical goal is created by creating a subgoal in the execution of a plan, and further creating and executing a plan for the subgoal. Information is processed using the structure of. In this case, the agent moves with a hierarchical goal stack when moving with the go action, so that the destination node can perform consistent operation using the same goal stack as before moving. it can.

【0266】このような再プランニングを円滑に行うた
め、プランを構成するアクションの一種として再プラン
コマンドを用い、当該再プランコマンドは、プランの実
行中に実行されるとプラン作成手段がサブプランを作成
する。
In order to smoothly perform such replanning, a replan command is used as one type of action constituting a plan. When the replan command is executed during the execution of the plan, the plan creating means changes the subplan. create.

【0267】なお、移動後にプランニングに失敗し、事
前条件を成立させるようなアクションが最終的に生成で
きない場合には、スクリプトの実行を失敗終了させ、移
動前のノードに戻り、スタック中に保存してあるゴール
を用いて再プランニングすればよい。また、ゴールに対
するプラン生成が最終的に不可能な場合や、又は実行不
可能なゴールを受け取った場合は、電子メール、その他
の手段により、必要に応じて発信者に通知するようにし
てもよい。
If the planning fails after the move and an action that satisfies the precondition cannot be finally generated, the script execution is ended with failure, returns to the node before the move, and saves in the stack. It is sufficient to re-plan using the goals already set. Further, in the event that the generation of a plan for a goal is finally impossible or an unexecutable goal is received, the sender may be notified as necessary by e-mail or other means. .

【0268】エラー対策の別の態様としては、前記プラ
ンを作成する手段は、プランの前提となっている事前条
件がプランの実行時に満たされているか否かを確認する
ためのスクリプトを、当該プランに加えることが考えら
れる。これによって、プラン作成時点での条件が満たさ
れていることが実行時に確認される。すなわち、プラン
ニングが行われた時点と、作成されたプランが実行され
る時点との間には、時間的な間隔が必然的に存在するた
め、プランニング時点において満たされていた条件が、
実行時にはすでに満たされていない可能性が存在する。
事前条件の確認によって、プランの適切な実行が確保さ
れる。
As another mode of error countermeasures, the means for creating a plan includes a script for confirming whether or not a precondition as a premise of the plan is satisfied at the time of execution of the plan. Can be added to Thereby, it is confirmed at the time of execution that the conditions at the time of the plan creation are satisfied. That is, since a time interval necessarily exists between the time when the planning is performed and the time when the created plan is executed, the condition satisfied at the time of the planning is
At runtime, there is a possibility that it is not already satisfied.
Confirmation of the preconditions ensures proper execution of the plan.

【0269】〔3−2−8.終了処理〕終了処理の一例
としては、エージェントが情報処理に成功した場合に、
成功の旨のメールをゴールの発行者に送信し、失敗の場
合は、失敗した旨のメールを送付する処理が考えられ
る。その他にも、終了処理として様々な実現態様が考え
られるが、エージェントの生成時に、どの終了処理の実
施形態をとるかに関して情報を付加しておくことによっ
て、終了処理のバリエーションを持たせるようにしても
よい。
[3-2-8. End processing] As an example of the end processing, when the agent succeeds in the information processing,
A process of transmitting a success mail to the goal issuer and sending a failure mail in the case of failure is conceivable. In addition, various realization modes can be considered as the termination processing. By adding information on which termination processing is to be performed when the agent is generated, a variation of the termination processing is provided. Is also good.

【0270】〔3−2−9.エージェントの詳細な動
作〕以上のような各作用を、エージェントを中心に示し
た処理手順を図22のフローチャートに示す。すなわ
ち、エージェントの生成時に、ノードマネージャよりゴ
ールを受け取るとこのゴールをゴール・スタックに積む
(ステップ2101)。ゴールスタックが空かどうかを
チェックし(ステップ2102)、ゴールスタックが空
の場合は、このエージェントが完全にゴール達成に失敗
したと判定し、後述する終了時処理を実施し、終了する
(ステップ2103)。
[3-2-9. Detailed Operation of Agent] FIG. 22 is a flowchart showing a processing procedure in which each of the above operations is mainly described for the agent. That is, when a goal is received from the node manager when an agent is generated, the goal is stacked on a goal stack (step 2101). It is checked whether or not the goal stack is empty (step 2102). If the goal stack is empty, it is determined that this agent has completely failed to achieve the goal, an end process described later is performed, and the process ends (step 2103). ).

【0271】ゴールスタックが空でない場合は、ゴール
スタックよりゴールをPOP し、そのゴールに対して、後
述するプランニングを実施する(ステップ2104)。
プランニングが失敗した場合は、スタックの内容をチェ
ックするステップに戻る(ステップ2105)。
If the goal stack is not empty, a goal is popped from the goal stack, and planning for the goal is performed (step 2104).
If the planning fails, the process returns to the step of checking the contents of the stack (step 2105).

【0272】プランニングに成功した場合は、スクリプ
トが生成される(ステップ2106)。このとき、スク
リプトの実行位置を更新し(ステップ2107)、プラ
ンニングフェーズから実行フェーズに移る。
If the planning is successful, a script is generated (step 2106). At this time, the execution position of the script is updated (step 2107), and the process moves from the planning phase to the execution phase.

【0273】プランニング及びスクリプトの生成では、
新しくエージェントが作成された直後のプランニング、
においては新規にスクリプトが生成される。また、プラ
ンニング及びスクリプトの生成では、新規に作成された
直後のプランニングにおいては、プランニングの前の時
点に存在したスクリプトに対して、プランニングした結
果が追加される。プランニング及びスクリプトの生成に
おいて、プランニングに成功しなかった場合は、再び、
ゴールスタックが空かどうかをチェックするステップに
戻る。
For planning and script generation,
Planning immediately after a new agent is created,
In, a new script is generated. In the planning and the generation of the script, in the planning immediately after the newly created script, the result of the planning is added to the script existing before the planning. If the planning and generation of the script were not successful,
Return to the step of checking if the goal stack is empty.

【0274】プラン生成に成功すると、スクリプトの解
釈実行に移る。スクリプトの解釈実行は、後述するエー
ジェントの実行器によって処理される。スクリプトの解
釈実行の動作に関しては、BASIC などの一般のインタプ
リタ言語と本質的に同様のものである。実行器は、スク
リプトの現在の実行位置を次の位置に移動させる事によ
り、コマンドを読み取り、コマンドの種別、およびコマ
ンドの引数を解釈し、実行する。
If the plan generation succeeds, the operation shifts to script interpretation and execution. The interpretation and execution of the script are processed by an agent execution unit described later. The operation of interpreting and executing a script is essentially the same as that of a general interpreted language such as BASIC. The executor reads the command by moving the current execution position of the script to the next position, interprets the command type and the command argument, and executes the command.

【0275】実行器の解釈部において、現在の実行位置
のコマンドが移動コマンド(goto)であった場合は、移
動処理ステップに移る(ステップ2108)。移動処理
ステップにおいて、後述する移動処理を行う。移動処理
は、ノードマネージャによるノード間にまたがる処理で
あり、移動元からはエージェントが消え、移動先にエー
ジェントが復元される(ステップ2109)。この移動
が完了した場合は(ステップ2110)、移動先のノー
ドにおいて図22のフローチャートの処理が継続され
る。
If the interpreter of the executor determines that the command at the current execution position is a move command (goto), the process moves to a move processing step (step 2108). In the movement processing step, movement processing described later is performed. The transfer process is a process performed by the node manager to span between nodes. The agent disappears from the source and is restored to the destination (step 2109). When this movement is completed (step 2110), the processing of the flowchart in FIG. 22 is continued at the destination node.

【0276】移動が失敗した場合は(ステップ211
0)、移動元のノードにおいて、移動命令が、ゴールを
伴う移動コマンドであるかどうかを調べる(ステップ2
114)。ゴールを伴わない移動コマンドの場合は、次
にプランニングフェーズに入るためにゴールスタックが
空かどうかを調べるステップに戻る。ゴールを伴う移動
コマンドの場合は、後述する失敗時処理を実行し(ステ
ップ2115)、サブゴールをゴールスタックにPUSHし
(ステップ2116)、再びプランニングのステップに
戻る。
If the movement has failed (step 211)
0) At the source node, check whether the move command is a move command with a goal (step 2).
114). In the case of a movement command without a goal, the process returns to the step of checking whether or not the goal stack is empty to enter the planning phase next. In the case of a move command with a goal, a failure process described later is executed (step 2115), the subgoal is pushed on the goal stack (step 2116), and the process returns to the planning step again.

【0277】実行位置のコマンドが移動命令でなかった
場合は(ステップ2108)、次に実行器はスクリプト
の終了かどうかを調べる(ステップ2111)。スクリ
プトが終了の場合は、エージェントの成功終了と判定
し、成功時の終了時処理を行った上で(ステップ211
7)、終了する。
If the command at the execution position is not a move command (step 2108), then the executor checks whether the script has ended (step 2111). If the script has been completed, it is determined that the agent has been successfully completed.
7), end.

【0278】ステップ2111においてスクリプトが終
了でない場合は、実行位置のコマンドを解釈し、実行す
る(ステップ2112)。この処理において、コマンド
実行が成功した場合は、ステップの処理に戻る。また、
コマンド実行が失敗した場合は、ステップ2114の処
理に移る(ステップ2113)。
If the script is not completed in step 2111, the command at the execution position is interpreted and executed (step 2112). In this process, if the command execution is successful, the process returns to the step. Also,
If the command execution has failed, the process moves to step 2114 (step 2113).

【0279】以上は、移動するエージェントの立場より
見た挙動である。エージェントは、全体として最初に与
えられたゴールを満たすために、スクリプトを生成し、
スクリプトに基づいた一貫性のある挙動を示す。
The above is the behavior from the viewpoint of the moving agent. The agent generates a script to meet the initially given goal as a whole,
Show consistent behavior based on script.

【0280】〔3−3.スクリプトの実行とノード移動
の実例〕続いて、前記のプランナによって生成されたス
クリプトを実行する実行フェーズおよび移動フェーズに
おけるエージェントの挙動について、先述のスクリプト
(以下「第一のスクリプト」という)を具体例として説
明する。なお、図23は、具体例において、失敗への対
応を含めた処理を示すフローチャートである。
[3-3. Example of Script Execution and Node Movement] Subsequently, regarding the behavior of the agent in the execution phase and the movement phase of executing the script generated by the planner, the above-described script (hereinafter, referred to as “first script”) is a specific example. It will be described as. FIG. 23 is a flowchart illustrating a process including a response to a failure in the specific example.

【0281】〔3−3−1.成功例〕最初に、プランニ
ングにおける想定がすべて正しく、また実行時にエラー
が発生しなかった場合の成功例について、具体的な動作
を示す。
[3-3-1. Successful example] First, a specific example of a successful example in which all assumptions in planning are correct and no error occurs during execution will be described.

【0282】まず、先に述べたプランのうち、1行目の %update_agent_base "add(myself, home(node0))" の実行により、エージェントの情報ベースに情報、 info(myself, home(node0)) を追加する(ステップ2201)。この操作は、このス
クリプトの実行がこの後に何らかの理由により失敗し、
再プランニングを実施する場合に、自分自身の出発した
ノードをプランナに伝えるために必要となる。
First, in the plan described above, the information, info (myself, home (node0)) is stored in the information base of the agent by executing% update_agent_base “add (myself, home (node0))” on the first line. Is added (step 2201). The operation will fail for some reason after this script execution,
When performing re-planning, it is necessary to inform the planner of its own departure node.

【0283】次に、2行目の %goto node1 "maybe(exist(file(file1), node1))" の実行により、node1 への根拠つき移動命令であり、こ
の命令によりエージェントはノード1に移動する(ステ
ップ2201)。引数の根拠の効果については、後述す
る。
Next, the execution of% goto node1 "maybe (exist (file (file1), node1))" on the second line is a move instruction with a basis to node1, and the agent moves to node 1 by this instruction. (Step 2201). The effect of the argument basis will be described later.

【0284】続いて、3行目の %check file(file1) node0 "maybe(exist(file(file1),
node1))" の実行により、ノードnode1 においてfile1 が実際に存
在するかどうかを確認を行う(ステップ2205)。こ
の例では、プランニングで想定した通り、file1がnode1
に存在したものとする。この場合は、check コマンド
の第2引数、第3の引数は意味を持たない。
Subsequently, the third line,% check file (file1) node0 "maybe (exist (file (file1),
By executing “node1))”, it is confirmed whether or not file1 actually exists in the node node1 (step 2205). In this example, as assumed in the planning, file1 is changed to node1.
Shall exist. In this case, the second and third arguments of the check command have no meaning.

【0285】そこで、4行目の %get file(file1) の実行により、移動した先であるnode1 からfile1 をエ
ージェントの所有ファイルとする(ステップ220
9)。以後、エージェントは同ファイルをput するま
で、移動とともにfile1 を持ち運ぶ。
Thus, by executing% get file (file1) on the fourth line, file1 is moved from node1 to node1 as the file owned by the agent (step 220).
9). Thereafter, the agent moves and carries file1 until the agent puts the file.

【0286】5行目の %update_agent_base "add(myself, returning, node0)" の実行により、エージェントの情報ベースに情報 info(myself, returning, node0) を追加する(ステップ2209)。この操作は、この後
のエージェントのnode0への帰還が何らかの理由により
失敗し、再プランニングを実施する場合に、エージェン
トが帰還状態であることをプランニングに反映するため
に行う。
By executing% update_agent_base "add (myself, returning, node0)" on the fifth line, information info (myself, returning, node0) is added to the information base of the agent (step 2209). This operation is performed in order to reflect the fact that the agent is in the return state in the planning when the subsequent return of the agent to node0 fails for some reason and the replanning is performed.

【0287】そして、6行目の %goto_with_goal node0 "return" の実行により、エージェントは、node0 に移動する(ス
テップ2209)。また、7行目の %put file(file1) の実行により、エージェントが所有するfile1 をnode0
にコピーする(ステップ2214)。最後に、8行目の %update_field_base "add(node0, exist(file(file1),
node0))" の実行により、エージェントは、node0 のフィールド情
報ベースに、info(exist(file(file1), node0)) の追加
を行う(ステップ2214)。以上のように、エージェ
ントは、スクリプトを実行する途上で実行失敗を起こさ
ない限り、最初に与えたゴールを満たすように動作す
る。
Then, by executing% goto_with_goal node0 "return" on the sixth line, the agent moves to node0 (step 2209). By executing% put file (file1) on the seventh line, file1 owned by the agent is changed to node0.
(Step 2214). Finally, on line 8,% update_field_base "add (node0, exist (file (file1),
By executing “node0))”, the agent adds info (exist (file (file1), node0)) to the field information base of node0 (step 2214). As described above, the agent executes the script. As long as there is no execution failure on the way, it works to satisfy the goal given first.

【0288】〔3−3−2.失敗例〕次に、失敗例に基
づいて、再プランニング実行時のエージェントの動作に
ついて説明する。node0 で行ったプランニングは、node
0 において知る限りの情報を用いてプランニングしたに
過ぎない。実際にはネットワークに接続される各ノード
や、ネットワークの状態は、時間の経過と共に変化する
ために、プランニングによって生成したスクリプトの実
行は、その途中で失敗する可能性がある。
[3-3-2. Failure Example] Next, the operation of the agent at the time of executing the replanning will be described based on a failure example. The planning done on node0 is
At 0, we have just planned using as much information as we know. Actually, the state of each node connected to the network and the state of the network change with the passage of time, so that execution of the script generated by the planning may fail in the middle.

【0289】エージェントの実行の失敗には、次ような
理由が考えられる。 (1) 故障、保守、過負荷のためにノード又はネットワ
ークが一時的に稼動しない。 (2) エージェントがプランニングに使用した情報ベー
スの内容が誤っている。 (3) 情報ベースの内容が、時間と経過によって古くな
った。
The failure of the execution of the agent may be for the following reasons. (1) The node or network does not operate temporarily due to failure, maintenance, or overload. (2) The information base used by the agent for planning is incorrect. (3) The content of the information base has become outdated over time.

【0290】図17に示すように、本動作例において
は、次のようなケースが考えられる。 ・ node0からnode1 へのエージェントの移動が失敗す
る。 ・ ノードnode1 には、file1 が存在せず、エージェン
トがファイルを獲得できない(かわりにnode2 に存在す
る)。 ・ ファイルfile1 のnode1 からnode0 へのエージェン
トの移動が失敗する。
As shown in FIG. 17, in the present operation example, the following case can be considered. -Moving the agent from node0 to node1 fails. -File does not exist on node node1, and the agent cannot acquire the file (it exists on node2 instead). -Moving the agent from node1 to node0 of file file1 fails.

【0291】以下では、以上のケースにおいて、本発明
の一実施例である情報処理装置がどのように対処するか
について説明する。
In the following, how the information processing apparatus according to one embodiment of the present invention handles the above cases will be described.

【0292】〔3−3−2−1.第1の失敗例〕最初
に、スクリプトの2行目%goto node1 "maybe(exist(fil
e(file1), node1))"において(ステップ2201)、根
拠つきgoto命令のnode0 からnode1 への移動が失敗した
場合について説明する(図23の失敗シナリオ1)。こ
の場合(ステップ2202)、ノードマネージャは、図
19に示した動作を行い、エージェントに対して移動不
可能を通知する。この場合、エージェントの実行器は、
これを受けてプランニング時点において、移動の根拠と
なった情報すなわち第3引数の知識をノード、フィール
ド、エージェントの各情報ベースより削除する(ステッ
プ2203)。根拠の削除によって、各情報ベースは次
のように変化する。
[3-3-2-1. First failure example] First, the second line of the script% goto node1 "maybe (exist (fil
e (file1), node1)) "(Step 2201), the case where the transfer of the grounded goto instruction from node0 to node1 fails (failure scenario 1 in FIG. 23). In this case (step 2202), the node The manager performs the operation shown in Fig. 19, and notifies the agent that it cannot move.
In response to this, at the time of planning, the information serving as the basis of the movement, that is, the knowledge of the third argument is deleted from the information bases of the node, the field, and the agent (step 2203). The information base changes as follows by the removal of the basis.

【0293】まず、node0 のノード情報ベースは、第3
実施形態の場合には、もともと内容がないため、変化を
受けない。また、エージェント情報ベースの場合は、そ
れに先立つ第一のスクリプトの1行目のupdate_agent_b
ase コマンドの実行により、info(myself, home(node
0)).という節( 英語clause) が1つ加えられているが、
maybe 述語の節はエージェント情報ベースには存在しな
いため、何も変化を受けない。
First, the node information base of node0 is the third
In the case of the embodiment, there is no change since there is no content from the beginning. In the case of the agent information base, update_agent_b in the first line of the first script preceding it
By executing the ase command, info (myself, home (node
0)). (English clause)
Since the clause of the maybe predicate does not exist in the agent information base, nothing is changed.

【0294】一方、第1の失敗の時点におけるノードno
de0 のフィールドmakeの情報ベースの内容は、 info(node0, home(node0)). info(node0, exist(file(file2),node0)). info(node0, maybe(exist(file(file1),node2))). であるため、この作業の後、実行器は、エージェントプ
ロセスに実行失敗のステータスを返し、エージェントは
プランニングフェーズに移行する。失敗したgoto命令
は、サブゴールを持たないコマンドであるため、図22
の動作に基づき、現在のゴールスタックの内容で、再プ
ランニングを実施する(ステップ2204)。
On the other hand, node no at the time of the first failure
The contents of the information base of the field make of de0 is info (node0, home (node0)). info (node0, exist (file (file2), node0)). info (node0, maybe (exist (file (file1), node2 After this work, the executor returns a status of execution failure to the agent process, and the agent shifts to the planning phase. Since the failed goto instruction is a command having no subgoal, FIG.
Based on the above operation, replanning is performed with the contents of the current goal stack (step 2204).

【0295】上記のフィールド情報ベース、およびエー
ジェント情報ベース、前述のアクションベース、前述の
プランナによる再プランニングによって、次のような第
二のスクリプトが生成される。
The following second script is generated by the above field information base, agent information base, the above-mentioned action base, and the re-planning by the above-mentioned planner.

【0296】 %update_agent_base "add(myself, home(node0))" %goto node2 "maybe(exist(file(file1), node2))" %check file(file1) node0 "maybe(exist(file(file1),
node2))" %get file(file1) %update_agent_base "add(myself, returning, node0)" %goto_with_goal node0 "return" %put file(file1) %update_field_base "add(node0, exist(file(file1),
node0))" このスクリプトが第一のスクリプトと異なる点は、file
1 を取得する対象がnode1 からnode2 に変更されている
点である。
% Update_agent_base "add (myself, home (node0))"% goto node2 "maybe (exist (file (file1), node2))"% check file (file1) node0 "maybe (exist (file (file1),
node2)) "% get file (file1)% update_agent_base" add (myself, returning, node0) "% goto_with_goal node0" return "% put file (file1)% update_field_base" add (node0, exist (file (file1),
node0)) "The difference between this script and the first script is the file
The point that 1 is obtained is changed from node1 to node2.

【0297】すなわち、実行の失敗において、情報ベー
スの更新が適切に行われない場合には、再プランを行っ
ても、第一のスクリプトと同一のスクリプトを生成し、
エージェントは同じ失敗を繰り返す恐れがある。第3実
施形態では、根拠つきgoコマンドを用いることにより、
フィールド情報ベースの内容から、file1 がnode1 に存
在するとする情報 info(node0, maybe(exist(file(file1),node1))). が削除された。このため再プラン時において、file1 が
存在し得る次の候補となるnodo2 を用いたプラン生成が
行われた。このように、第3実施形態によれば、ソフト
ウェア・エージェントに求められるエージェントの自律
性を向上し、ネットワーク上の変化へのエージェントの
対応能力を高めることが可能となる。
That is, if the information base is not properly updated due to execution failure, the same script as the first script is generated even if replanning is performed.
Agents may repeat the same mistake. In the third embodiment, by using the grounded go command,
The information info (node0, maybe (exist (file (file1), node1)))., Which indicates that file1 exists in node1, was deleted from the contents of the field information base. Therefore, at the time of re-planning, a plan was created using nodo2, which is the next candidate where file1 could exist. As described above, according to the third embodiment, it is possible to improve the autonomy of the agent required for the software agent and increase the agent's ability to respond to changes on the network.

【0298】〔3−3−2−2.第2の失敗例〕次に、
第一のスクリプトにおいて、node0 からnode1 への移動
は成功したが、node1 には、file1 が存在しなかった場
合の本動作例におけるエージェントの挙動について説明
する(図23の失敗シナリオ3)。この場合は、node1
に移動したエージェント実行器が第一のスクリプトの第
3行目のcheck コマンドにおいて、file1 の存在確認を
行う際に、実際にはfile1 が存在しないため、実行失敗
が発生する(ステップ2205)。
[3-3-2-2. Second failure example]
In the first script, the behavior of the agent in this operation example in the case where the movement from node0 to node1 succeeds but file1 does not exist in node1 will be described (failure scenario 3 in FIG. 23). In this case, node1
When the agent executor that has moved to step 1 checks the existence of file1 in the check command on the third line of the first script, execution failure occurs because file1 does not actually exist (step 2205).

【0299】check コマンドは、実行器コマンドの表で
示した通り、その第2引数が、根拠と出所、すなわち根
拠となる情報が格納されていた情報ベースの存在するノ
ードであり、その第3引数が、根拠となる情報である。
第1の失敗例と同じく、この場合にも、その根拠となる
情報の更新を実施する(ステップ2207)。
As shown in the table of the executor commands, the second argument of the check command is the basis and source, that is, the node where the information base in which the information as the basis is stored exists, and the third argument is Is the base information.
As in the first failure example, in this case, the information serving as the basis is updated (step 2207).

【0300】ただし、第1の失敗例の場合と第2の失敗
例の場合が本質的に異なるのは、すでにエージェントは
node1 に移動している点である。したがって、情報ベー
スの内容を更新するためには、再び元のノードに移動し
なければならない。ここでは、誤っている情報ベースが
存在するノードをcheck コマンドにおいて明示する方法
により、そのノードのフィールド情報ベースおよびノー
ド情報ベースの(両者の)更新を行うという方法をと
る。
However, the difference between the case of the first failure example and the case of the second failure example is essentially that the agent has already
It is moving to node1. Therefore, in order to update the contents of the information base, it is necessary to move to the original node again. Here, a method is used in which the node in which the incorrect information base exists is specified in the check command, and the field information base and the node information base (both) of the node are updated.

【0301】このとき、情報ベースの内容を更新するた
めの実施手段としては、ノードマネージャを介したノー
ド間通信を用いた情報ベースの更新か、又は情報を更新
するゴールを別途発行し、第二のエージェントを別途生
成して、独立して動作させるという手段もある。いずれ
の場合でも、根拠付きコマンドの存在によって、情報ベ
ースの更新が可能となる。
At this time, as means for updating the contents of the information base, the information base is updated using inter-node communication via the node manager, or a goal for updating the information is separately issued, There is also a method of generating an agent separately and operating it independently. In either case, the presence of the evidenced command allows the information base to be updated.

【0302】node1 における再プランにおいて、使用す
る情報ベースは、ノードnode1のノード情報ベースと、
ノードnode1 のフィールドの情報ベースと、エージェン
トの情報ベースである。
In the replanning at node1, the information bases used are the node information base of node node1,
The information base of the field of node node1 and the information base of the agent.

【0303】第2の失敗例では、失敗後の更新におけ
る、エージェントの情報ベースの内容は、 info(myself, home(node0)). であり、一方、node1 のノード情報ベースの内容は空で
あり、node1 のフィールドmakeのフィールド情報ベース
の内容は、 info(node1, maybe(exist(file(file1),node2))). である。これら2つの情報から、失敗例1と同様に、元
のゴール exist(file(file1), node0)に対する再プラン
ニングを実施すると(ステップ2208)、第1の失敗
例と同様な次のスクリプトが得られる。異なる点は、第
1の失敗例ではエージェントはnode0 からnode2 へ移動
するのに対し、第2の失敗例ではnode1 からnode2 への
移動のプランを立てたことである。 %update_agent_base "add(myself, home(node0))" %goto node2 "maybe(exist(file(file1), node2))" %check file(file1) node0 "maybe(exist(file(file1),
node2))" %get file(file1) %update_agent_base "add(myself, returning, node0)" %goto_with_goal node0 "return" %put file(file1) %update_field_base "add(node0, exist(file(file1),
node0))" これは、エージェント情報ベースの存在により、エージ
ェントのホームノードの位置を他のノードに移動した際
に利用できるようにしているためである。このように、
移動におけるエージェントの一貫性を保持する効果があ
る。
In the second failure example, the content of the agent information base in the update after the failure is info (myself, home (node0)). On the other hand, the content of the node information base of node1 is empty. The content of the field information base of the field make of node1 is info (node1, maybe (exist (file (file1), node2))). From these two pieces of information, similar to the failure example 1, when the re-planning for the original goal exist (file (file1), node0) is performed (step 2208), the following script similar to the first failure example is obtained. . The difference is that in the first failure example, the agent moves from node0 to node2, whereas in the second failure example, the agent plans to move from node1 to node2. % update_agent_base "add (myself, home (node0))"% goto node2 "maybe (exist (file (file1), node2))""% check file (file1) node0" maybe (exist (file (file1),
node2)) "% get file (file1)% update_agent_base" add (myself, returning, node0) "% goto_with_goal node0" return "% put file (file1)% update_field_base" add (node0, exist (file (file1),
node0)) "This is because the presence of the agent information base makes it possible to use the home node position of the agent when it is moved to another node.
This has the effect of maintaining the consistency of the agent during movement.

【0304】〔3−3−2−3.第3の失敗例〕次に、
第3の失敗例として、第一のスクリプトにおいて、node
1 にてfile1 のget までは成功したが(ステップ220
9)、最後にnode0 に帰還する移動の際にエージェント
の移動が失敗する場合の本動作例のエージェントの挙動
について説明する。
[3-3-2-3. Third failure example]
As a third failure example, in the first script, node
Although it succeeded up to get of file1 in 1 (step 220
9) The behavior of the agent in the present operation example when the movement of the agent fails at the time of the last movement to return to node0 will be described.

【0305】失敗は、node1 において、第一のスクリプ
トの6行目 %goto_with_goal node0 "return" にて発生する。これは、サブゴールを伴う移動命令であ
り、ここでは、第3の引数"return"がサブゴールであ
る。したがって、本例題においては、同じ移動失敗であ
っても、エージェントによるその移動失敗への対処方法
は、第1の失敗例の場合と必然的に異なっていなければ
ならない。
The failure occurs on node 6, at% goto_with_goal node0 "return" on the sixth line of the first script. This is a move instruction with a subgoal, where the third argument "return" is the subgoal. Therefore, in the present example, even if the same movement failure occurs, the method of handling the movement failure by the agent must necessarily be different from the case of the first failure example.

【0306】エージェントの実行器は、図22に示す手
順により、サブゴール付きコマンドgoto_with_goalのno
de1 からnode0 への移動失敗をノードマネージャより通
知を受けて、実行を失敗する。この場合、その時点で実
行しているスクリプトについて、現在の実行位置等の情
報とともに、サブゴール "return" をスタックにつみ、
再プランを行う(ステップ2211)。
The execution unit of the agent executes the no-goal command “goto_with_goal” according to the procedure shown in FIG.
Receives notification from the node manager that migration from de1 to node0 failed, and fails execution. In this case, the sub-goal "return" is inserted into the stack of the script being executed at that time along with information such as the current execution position, and the like.
A re-plan is performed (step 2211).

【0307】再プラン時のエージェント情報ベースの内
容は、goto_with_goalコマンドの実行に先立って、第一
のスクリプト5行目において、内容追加が存在するた
め、次のようになる。追加された知識retruning は、エ
ージェントが、ホームノードであるnode0 に帰還する状
態にあることを明示する効果をもつ。
The contents of the agent information base at the time of re-planning are as follows because there is content addition in the fifth line of the first script prior to execution of the goto_with_goal command. The added knowledge retruning has the effect of explicitly stating that the agent is in a state of returning to the home node, node0.

【0308】 %info(myself, home(node0)). %info(myself, returning). 一方、失敗例2の場合と同じく、node1 のフィールドma
keの情報ベースの内容は、次の一行である。
% Info (myself, home (node0)).% Info (myself, returning). On the other hand, as in the case of failure example 2, the field ma of node1
The content of the ke information base is the following line.

【0309】 %info(node1, maybe(exist(file(file1),node2))). ノードnode1 のノード情報ベースの内容は空である。% Info (node1, maybe (exist (file (file1), node2))). The content of the node information base of the node node1 is empty.

【0310】これらの情報ベース、先に示したアクショ
ン定義およびプランナによって生成される第四のスクリ
プトは、次の1行である。 %wait_and_goto node0 このコマンドは、一定間隔を開けて移動を所定の回数試
みるコマンドである(ステップ2212)。ネットワー
クが一時的な不具合のため、前回のnode0 への移動が運
悪く失敗したものと想定している。本例題の、初期のエ
ージェントのゴールexist(file(file1),node2)) は、no
de0 の存在を暗に要求しており、node0がネットワーク
の変化によって、消滅した可能性まで考慮する必要はな
い。したがって、node1 からnode0 への移動失敗は、一
時的な障害であると仮定することは妥当である。
[0310] The fourth script generated by the information base, the action definition and the planner described above is the following one line. % wait_and_goto node0 This command is a command that attempts to move a predetermined number of times at regular intervals (step 2212). It is assumed that the previous move to node0 failed unfortunately due to a temporary failure of the network. In this example, the initial agent goal exist (file (file1), node2)) is no
It implicitly requires the existence of de0, and it is not necessary to consider the possibility that node0 may have disappeared due to a change in the network. Therefore, it is reasonable to assume that the failure to move from node1 to node0 is a temporary failure.

【0311】再プランした結果のスクリプトであるwait
_and_goto node0 を実行してもnode0 へ移動できない場
合は(ステップ2213)、これ以上のサブゴールはな
いため、エージェントは図22の手順に従い、ゴールス
タックをポップし、最初のゴールexec(file(file1)), n
ode1) を用いてさらに再プランする。この場合に生成さ
れるスクリプトは、第2の失敗例の場合と同じであり、
node2に移動してからnode0 に戻る。さらに、このnode
2 へ移動するプラン実行も失敗した場合は、エージェン
トは完全失敗となる。所定の終了処理を実施し、エージ
ェントが完全失敗した事をいずれかのノードにおいて記
録する。
Wait which is a script resulting from replanning
If it is not possible to move to node0 even after executing _and_goto node0 (step 2213), since there are no more subgoals, the agent pops the goal stack according to the procedure of FIG. 22 and executes the first goal exec (file (file1)). , n
Re-plan again using ode1). The script generated in this case is the same as in the second failure case,
Move to node2 and then back to node0. Furthermore, this node
If the execution of the plan to move to 2 also fails, the agent fails completely. A predetermined termination process is performed, and the fact that the agent has completely failed is recorded in any of the nodes.

【0312】再プランした結果のスクリプトであるwait
_and_goto node0 を実行によってnode0 への移動ができ
た場合は、この第四のスクリプトは、成功して終了し、
エージェントは図22の手続きにしたがって、ゴールス
タックをポップし、node0 において第一のスクリプトの
第7行目より実行を再開する。このようなサブゴール実
行は、この実施例におけるエージェントのnode0 への帰
還といった場合に発生した局所的な目的に対する不具合
を、移動先ノードの知識を利用して代替手段を探す効果
がある。
Wait, which is a script resulting from replanning
If the execution of _and_goto node0 leads to node0, this fourth script will exit successfully,
The agent pops the goal stack according to the procedure shown in FIG. 22, and resumes execution from the seventh line of the first script at node0. Such subgoal execution has the effect of searching for an alternative using the knowledge of the destination node to find a problem with respect to the local purpose that occurred when the agent returns to node0 in this embodiment.

【0313】また、エージェント内のゴールスタックの
存在、およびその移動における運搬は、そうした局所的
な代替手段が成功しなかった場合に、より大きなのゴー
ルでプランニングをやり直すチャンスを与える効果があ
る。
Also, the existence of the goal stack in the agent and the transportation during its movement have the effect of giving a chance to redo the planning with a larger goal if such a local alternative does not succeed.

【0314】アクション定義における第1のアクション
と第2のアクションは、いずれも移動命令であったが、
第一のアクションがファイルFを捜し求めるための移動
であったのに対し、第2のアクションは、エージェント
が移動先での所定のコマンド実行を達成し、移動元に帰
還するためのアクション定義であるという違いを定義す
ることができた。
The first action and the second action in the action definition are both movement commands,
Whereas the first action is a move to search for the file F, the second action is an action definition for the agent to execute a predetermined command at the destination and return to the source. Was able to define the difference.

【0315】以上のように、第3実施形態では、第1及
び第3の失敗例に示したように、同じ移動命令の場合で
も、エージェントの文脈に応じたサブゴールを発行する
アクション記述が可能となることにより、多くの予期せ
ぬ変化に対応できる自律的なエージェントを記述するこ
とが可能となる。
As described above, in the third embodiment, as described in the first and third failure examples, even in the case of the same movement command, an action description for issuing a subgoal according to the context of the agent is possible. As a result, it becomes possible to describe an autonomous agent that can cope with many unexpected changes.

【0316】〔3−4.第3実施形態の効果〕以上のよ
うに、第3実施形態では、エージェントは、情報処理の
目的やエージェントの種類に対応するフィールドに移動
し、プラン作成ではそのフィールドの情報のみが用いら
れるので、必要な探索処理の量が減り、プラン作成が効
率化される。特に、第3実施形態では、制約やプランの
修正にかかわる第3の情報や第4の情報をフィールドご
とに設定できるので、各フィールドに適したセキュリテ
ィ・セーフティが確保される。
[3-4. Effect of Third Embodiment] As described above, in the third embodiment, the agent moves to the field corresponding to the purpose of the information processing and the type of the agent, and only the information of the field is used in the plan creation. The amount of search processing required is reduced, and plan creation is made more efficient. In particular, in the third embodiment, since the third information and the fourth information relating to the modification of the constraint and the plan can be set for each field, security safety suitable for each field is ensured.

【0317】また、第3実施形態では、個々のエージェ
ントが固有の第4の情報をノード間移動のときも持ち歩
き、移動先のノードでもこの第4の情報を用いてプラン
の修正を行うので、個々のエージェントの目的や状態に
応じて最適なプラン修正の手法を適用することが可能に
なる。
In the third embodiment, each agent carries unique fourth information even when moving between nodes, and the destination node also uses the fourth information to modify the plan. It is possible to apply an optimal plan modification method according to the purpose and state of each agent.

【0318】また、第3実施形態では、移動命令に事前
条件が根拠として添付される。そして、当該移動命令に
基づく移動が失敗する場合は、命令が前提とした事前条
件が成立していなかった可能性がある。この事前条件
は、移動命令に添付されているので、移動命令を参照す
れば容易に判明する。このため、移動失敗の原因が特定
され、失敗への対応が容易になる。
[0318] In the third embodiment, a precondition is attached to a move command as a basis. If the movement based on the movement command fails, the preconditions premised on the command may not have been satisfied. Since this precondition is attached to the movement command, it can be easily understood by referring to the movement command. For this reason, the cause of the movement failure is specified, and handling of the failure becomes easy.

【0319】〔4.他の実施形態〕なお、本発明は上記
各実施形態に限定されるものではなく、次に例示するよ
うな他の実施形態も包含するものである。例えば、第3
の情報や第4の情報の内容や形式は自由であり、プラン
の生成や修正が失敗したときにどう対応するかの具体的
手法は例示に過ぎず自由に定めることができる。また、
本発明の実施において、知識ベースをフィールドに区分
したり、エージェント固有の情報を用いたり、移動命令
に事前条件を添付したりという構成は、必ずしも用いる
必要はない。また、本発明の実施において、子エージェ
ントの生成や、実行失敗時の再プランニングや、実行失
敗時に原因となった情報を修正する構成は、必ずしも用
いる必要はない。
[4. Other Embodiments] The present invention is not limited to the above embodiments, but includes other embodiments as exemplified below. For example, the third
And the contents and format of the fourth information are arbitrary, and a specific method of responding to the failure of the generation or modification of the plan is merely an example and can be freely determined. Also,
In the embodiment of the present invention, it is not always necessary to use a configuration in which a knowledge base is divided into fields, information unique to an agent is used, or a precondition is attached to a movement command. Further, in the implementation of the present invention, it is not always necessary to use a configuration in which a child agent is generated, replanning is performed when execution fails, and information that causes a failure is corrected.

【0320】[0320]

【発明の効果】以上説明したように、本発明によれば、
エージェントがホストに過負荷を与えるといった有害な
挙動を防止できるので、システムの安定した運用を確保
することが容易になる。
As described above, according to the present invention,
Since harmful behavior such as the agent overloading the host can be prevented, it is easy to ensure stable operation of the system.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の第1実施形態における情報処理装置の
構成を示す機能ブロック図。
FIG. 1 is a functional block diagram showing a configuration of an information processing apparatus according to a first embodiment of the present invention.

【図2】本発明の第1実施形態における情報処理の処理
手順を示すフローチャート。
FIG. 2 is a flowchart showing a processing procedure of information processing according to the first embodiment of the present invention.

【図3】本発明の第1実施形態におけるプラン生成の手
順を示すフローチャート。
FIG. 3 is a flowchart showing a procedure for generating a plan according to the first embodiment of the present invention.

【図4】本発明の第1実施形態において生成されたプラ
ンの内容を示すツリー図。
FIG. 4 is a tree diagram showing contents of a plan generated in the first embodiment of the present invention.

【図5】本発明の第1実施形態におけるエージェント転
送の手順を示すフローチャート。
FIG. 5 is a flowchart illustrating a procedure of agent transfer according to the first embodiment of the present invention.

【図6】本発明の第1実施形態における表示例を示す
図。
FIG. 6 is a view showing a display example according to the first embodiment of the present invention.

【図7】本発明の第2実施形態における文書ごとの重要
度及び関連度を示す図。
FIG. 7 is a diagram illustrating importance and relevance of each document according to the second embodiment of the present invention.

【図8】本発明の第3実施形態において、ノードの構成
を示す機能ブロック図。
FIG. 8 is a functional block diagram showing a configuration of a node according to a third embodiment of the present invention.

【図9】本発明の第3実施形態において、情報処理装置
に含まれるノードの構成を示すブロック図。
FIG. 9 is a block diagram showing a configuration of a node included in an information processing device according to a third embodiment of the present invention.

【図10】本発明の第3実施形態において、ノードがフ
ィールドに区分されている状態を示す概念図。
FIG. 10 is a conceptual diagram showing a state in which a node is divided into fields according to the third embodiment of the present invention.

【図11】本発明の第3実施形態において、エージェン
トの動作を構成する複数のフェーズを示す図。
FIG. 11 is a diagram showing a plurality of phases constituting an operation of an agent in the third embodiment of the present invention.

【図12】本発明の第3実施形態において、エージェン
トの論理的な構造を示す図。
FIG. 12 is a diagram showing a logical structure of an agent according to the third embodiment of the present invention.

【図13】本発明の第3実施形態において、ゴール・ス
クリプト・セットのデータ構造を示す図。
FIG. 13 is a diagram showing a data structure of a goal script set in the third embodiment of the present invention.

【図14】本発明の第3実施形態において、ノードマネ
ージャに係る通信を実現する態様を示す機能ブロック
図。
FIG. 14 is a functional block diagram showing a mode for realizing communication relating to a node manager in the third embodiment of the present invention.

【図15】本発明の第3実施形態において、知識ベース
の構造を示す図。
FIG. 15 is a diagram showing a structure of a knowledge base in the third embodiment of the present invention.

【図16】本発明の第3実施形態において、ノードマネ
ージャの動作手順を示すフローチャート。
FIG. 16 is a flowchart showing an operation procedure of a node manager in the third embodiment of the present invention.

【図17】本発明の第3実施形態において、プランニン
グの内容をフローチャート形式で示す図。
FIG. 17 is a view showing contents of planning in a flowchart form in the third embodiment of the present invention.

【図18】本発明の第3実施形態において、プラン実行
の処理手順を示すフローチャート。
FIG. 18 is a flowchart showing a procedure for executing a plan in the third embodiment of the present invention.

【図19】本発明の第3実施形態において、エージェン
トをノード間で移動させる場合に、移動元側のノードマ
ネージャの動作手順を示すフローチャート。
FIG. 19 is a flowchart showing an operation procedure of a source node manager when an agent is moved between nodes in the third embodiment of the present invention.

【図20】本発明の第3実施形態において、エージェン
トをノード間で移動させる場合に、移動先側のノードマ
ネージャの動作手順を示すフローチャート。
FIG. 20 is a flowchart showing an operation procedure of a destination node manager when an agent is moved between nodes in the third embodiment of the present invention.

【図21】本発明の第3実施形態において、ノードマネ
ージャを介したエージェントのノード間移動の状態を示
す図。
FIG. 21 is a diagram showing a state of an agent moving between nodes via a node manager in the third embodiment of the present invention.

【図22】本発明の第3実施形態において、エージェン
トの動作手順を示すフローチャート。
FIG. 22 is a flowchart showing an operation procedure of an agent in the third embodiment of the present invention.

【図23】本発明の第3実施形態において、プラン実行
への対処内容を示すフローチャート。
FIG. 23 is a flowchart showing the contents of handling plan execution in the third embodiment of the present invention.

【図24】従来の情報処理装置の一例について、その構
成を示す機能ブロック図。
FIG. 24 is a functional block diagram showing a configuration of an example of a conventional information processing apparatus.

【図25】従来技術におけるセキュリティ・セーフティ
対応策を示す図。
FIG. 25 is a diagram showing a security / safety measure in the related art.

【符号の説明】[Explanation of symbols]

1…ローカル情報記憶手段 2…更新手段 3…エージェント情報記憶手段 4…入出力手段 5…プラン生成手段 6…プラン実行手段 7…エージェント管理部 8…第3の記憶部 9…判定部 10…第4の記憶部 11…修正部 L…ローカルマシン R…リモートマシン N…ネットワーク STEP…手順の各ステップ 11,12,20,D〜…知識ベース 13…プランナ 14…実行器 15…ノードマネージャ 16…更新器 17…エージェントプロセス 18…GUIアプリケーション 19…ノード管理情報記憶手段 101…メモリ 102…CPU 103…補助記憶装置 X…ホスト FL…フィールド A…エージェント STEP〜,1501以降…手順の各ステップ DESCRIPTION OF SYMBOLS 1 ... Local information storage means 2 ... Update means 3 ... Agent information storage means 4 ... Input / output means 5 ... Plan generation means 6 ... Plan execution means 7 ... Agent management unit 8 ... Third storage unit 9 ... Judgment unit 10 ... 4 storage unit 11 ... correction unit L ... local machine R ... remote machine N ... network STEP ... each step of the procedure 11, 12, 20, D ... knowledge base 13 ... planner 14 ... execution unit 15 ... node manager 16 ... update Device 17: Agent process 18: GUI application 19: Node management information storage means 101: Memory 102: CPU 103: Auxiliary storage device X: Host FL: Field A: Agent STEP ~, after 1501 ... Steps in the procedure

───────────────────────────────────────────────────── フロントページの続き (72)発明者 大須賀 昭彦 神奈川県川崎市幸区柳町70番地 株式会社 東芝柳町工場内 (72)発明者 本位田 真一 神奈川県川崎市幸区柳町70番地 株式会社 東芝柳町工場内 Fターム(参考) 5B045 GG01 5B089 GA01 GB03 GB08 JA11 JB07 KA06 KC39 KC51  ──────────────────────────────────────────────────続 き Continuing on the front page (72) Inventor Akihiko Osuga 70, Yanagicho, Kochi-ku, Kawasaki-shi, Kanagawa Prefecture Inside the Toshiba Yanagicho Plant (72) Inventor Shinichi Honda 70, Yanagicho, Kochi-ku, Kawasaki-shi, Kanagawa Toshiba Yanagicho Co., Ltd. F-term in the factory (reference) 5B045 GG01 5B089 GA01 GB03 GB08 JA11 JB07 KA06 KC39 KC51

Claims (12)

【特許請求の範囲】[Claims] 【請求項1】 ソフトウェア上の実行主体であるエージ
ェントがネットワークに接続されたノード上で動作する
ことによって情報処理を行う情報処理装置において、 前記ノードに配置された構成要素へのアクセスに用いる
ための構成要素の状態を表現する第1の情報を記憶する
ための第1の記憶手段と、 前記実行主体の挙動を定義する第2の情報を記憶するた
めの第2の記憶手段と、 前記第1及び第2の情報に基づいて、与えられた目的を
達成するためにエージェントが実行すべきプランを作成
する手段と、 ノードの保全のために前記プランが満たさなければなら
ない制約を表す第3の情報を記憶するための第3の記憶
手段と、 プランが前記制約を満たすかどうか判定する手段と、 前記制約を満たすと判定されたプランについて、プラン
の実行及びエージェントのノード間における移動を実現
するための手段と、を備え、 移動先のノードにおいても、プランの作成及び判定を行
うように構成されたことを特徴とする情報処理装置。
1. An information processing apparatus for performing information processing by an agent, which is an execution entity on software, operating on a node connected to a network, wherein the agent is used for accessing a component arranged at the node. A first storage unit for storing first information representing a state of a component, a second storage unit for storing second information defining behavior of the execution subject, and the first storage unit. Means for creating a plan to be executed by an agent based on the second information to achieve a given purpose, and third information representing constraints that the plan must satisfy for node security A third storage unit for storing the constraint, a unit for determining whether the plan satisfies the constraint, and a plan for the plan determined to satisfy the constraint. Means for realizing execution and movement of an agent between nodes, wherein an information processing apparatus is configured to create and determine a plan even at a destination node.
【請求項2】 前記制約を満足するプランをどのように
生成するかを表す第4の情報を記憶するための第4の記
憶手段と、 プランが前記制約を満たさないと判定されたときに、前
記第4の情報に基づいてプランを修正するための手段
と、 を備えたことを特徴とする請求項1記載の情報処理装
置。
2. A fourth storage means for storing fourth information indicating how to generate a plan that satisfies the constraint, and when it is determined that the plan does not satisfy the constraint, The information processing apparatus according to claim 1, further comprising: means for correcting a plan based on the fourth information.
【請求項3】 少なくとも1つの前記ノードが、エージ
ェントの活動領域である複数のフィールドを備え、 前記第1から第4の情報のうち少なくとも1つがフィー
ルドごとに記憶されたことを特徴とする請求項2記載の
情報処理装置。
3. The apparatus according to claim 2, wherein at least one of the nodes includes a plurality of fields that are active areas of an agent, and at least one of the first to fourth information is stored for each field. 2. The information processing apparatus according to item 2.
【請求項4】 エージェントが、固有の前記第4の情報
をノード間で移動するときも運搬することを特徴とする
請求項2又は3記載の情報処理装置。
4. The information processing apparatus according to claim 2, wherein the agent carries the unique fourth information also when moving between nodes.
【請求項5】 前記プランを作成する手段は、プランの
一部としてエージェントをノード間で移動させる移動命
令又はその他の命令を作成する際に、当該命令の前提と
なる事前条件を当該移動命令又は当該その他の命令に添
付するように構成されたことを特徴とする請求項1から
4のいずれか1つに記載の情報処理装置。
5. A method for creating a plan, comprising: creating a move instruction or another instruction for moving an agent between nodes as a part of a plan, by setting a precondition premised on the instruction to the move instruction or The information processing apparatus according to claim 1, wherein the information processing apparatus is configured to be attached to the other instruction.
【請求項6】 ソフトウェア上の実行主体であるエージ
ェントがネットワークに接続されたノード上で動作する
ことによって情報処理を行う情報処理方法において、 前記ノードに配置された構成要素へのアクセスに用いる
ための構成要素の状態を表現する第1の情報を記憶する
ためのステップと、 前記実行主体の挙動を定義する第2の情報を記憶するた
めのステップと、 前記第1及び第2の情報に基づいて、与えられた目的を
達成するためにエージェントが実行すべきプランを作成
するステップと、 ノードの保全のために前記プランが満たさなければなら
ない制約を表す第3の情報を記憶するためのステップ
と、 プランが前記制約を満たすかどうか判定するステップ
と、 前記制約を満たすと判定されたプランについて、プラン
の実行及びエージェントのノード間における移動を実現
するためのステップと、を含み、 移動先のノードにおいても、プランの作成及び判定を行
うことを特徴とする情報処理方法。
6. An information processing method in which an agent, which is an execution entity on software, operates on a node connected to a network to perform information processing, wherein the agent is used for accessing a component arranged in the node. A step of storing first information representing a state of a component, a step of storing second information defining behavior of the execution subject, and a step of storing the first and second information. Creating a plan to be executed by the agent to achieve a given objective; and storing third information representing constraints that the plan must satisfy for node integrity; Determining whether the plan satisfies the constraint; and executing and executing the plan for the plan determined to satisfy the constraint. And a step of realizing the movement between the agent nodes, wherein the plan is created and determined also at the movement destination node.
【請求項7】 前記制約を満足するプランをどのように
生成するかを表す第4の情報を記憶するためのステップ
と、 プランが前記制約を満たさないと判定されたときに、前
記第4の情報に基づいてプランを修正するためのステッ
プと、 を含むことを特徴とする請求項6記載の情報処理方法。
7. A step for storing fourth information indicating how to generate a plan that satisfies the constraint, and when it is determined that the plan does not satisfy the constraint, the fourth information is stored. 7. The information processing method according to claim 6, further comprising: modifying a plan based on the information.
【請求項8】 1又は2以上のファイルをノードに書き
込むための請求項7記載の情報処理方法において、 どのファイルをノードに書き込むべきかを表す情報と、 個々のファイルのサイズを表す情報と、 ファイル間の優先順位を表す情報と、を使い、 前記第3の情報は、ノードに書き込める情報量の許容値
にかかわる制約を表し、 前記第4の情報は、優先順位の低いファイルを書き込み
対象から除外することで前記プランを修正することを表
すことを特徴とする情報処理方法。
8. The information processing method according to claim 7, wherein one or more files are written to the node, information indicating which file is to be written to the node, information indicating the size of each file, Using the information indicating the priority between the files, the third information indicates a constraint on an allowable value of the amount of information that can be written to the node, and the fourth information indicates that a file having a lower priority is An information processing method characterized in that the plan is modified by excluding the plan.
【請求項9】 前記第4の情報は、前記プランの修正に
おいて、既にノードに書き込まれているファイルのうち
前記優先順位の低いものを削除することを表すことを特
徴とする請求項8記載の情報処理方法。
9. The method according to claim 8, wherein the fourth information indicates that in the modification of the plan, the file having the lower priority is deleted from the files already written to the node. Information processing method.
【請求項10】 前記ファイルごとの優先順位をどのよ
うに計算するかを表す情報を使うことを特徴とする請求
項8又は9記載の情報処理方法。
10. The information processing method according to claim 8, wherein information indicating how to calculate the priority for each file is used.
【請求項11】 コンピュータを使って、ソフトウェア
上の実行主体であるエージェントがネットワークに接続
されたノード上で動作することによって情報処理を行う
ための情報処理用ソフトウェアを記録した記録媒体にお
いて、 そのソフトウェアは前記コンピュータに、 前記ノードに配置された構成要素へのアクセスに用いる
ための構成要素の状態を表現する第1の情報を記憶さ
せ、 前記実行主体の挙動を定義する第2の情報を記憶させ、 前記第1及び第2の情報に基づいて、与えられた目的を
達成するためにエージェントが実行すべきプランを作成
させ、 ノードの保全のために前記プランが満たさなければなら
ない制約を表す第3の情報を記憶させ、 プランが前記制約を満たすかどうか判定させ、 前記制約を満たすと判定されたプランについて、プラン
の実行及びエージェントのノード間における移動を実現
させ、 移動先のノードにおいても、プランの作成及び判定を行
わせることを特徴とする情報処理用ソフトウェアを記録
した記録媒体。
11. A recording medium which records information processing software for performing information processing by using a computer to execute an agent which is an execution subject on software on a node connected to a network, comprising: Causes the computer to store first information representing a state of a component used for accessing a component disposed in the node, and to store second information defining behavior of the execution subject. Based on the first and second information, cause the agent to create a plan to be executed to achieve a given objective, and to represent a constraint that the plan must satisfy for node integrity. Is stored, and it is determined whether the plan satisfies the constraint. For, to realize the movement between the run and the agent of the plan node, in the destination node, a recording medium recording the information processing software, characterized in that to perform the creation and decision plan.
【請求項12】 前記ソフトウェアは前記コンピュータ
に、 前記制約を満足するプランをどのように生成するかを表
す第4の情報を記憶させ、 プランが前記制約を満たさないと判定されたときに、前
記第4の情報に基づいてプランを修正させることを特徴
とする請求項11記載の情報処理用ソフトウェアを記録
した記録媒体。
12. The software causes the computer to store fourth information indicating how to generate a plan that satisfies the constraint, and when it is determined that the plan does not satisfy the constraint, The recording medium according to claim 11, wherein the plan is modified based on the fourth information.
JP10232122A 1998-08-18 1998-08-18 Device and method for processing information and recording medium recording software for information processing Pending JP2000066895A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10232122A JP2000066895A (en) 1998-08-18 1998-08-18 Device and method for processing information and recording medium recording software for information processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10232122A JP2000066895A (en) 1998-08-18 1998-08-18 Device and method for processing information and recording medium recording software for information processing

Publications (1)

Publication Number Publication Date
JP2000066895A true JP2000066895A (en) 2000-03-03

Family

ID=16934359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10232122A Pending JP2000066895A (en) 1998-08-18 1998-08-18 Device and method for processing information and recording medium recording software for information processing

Country Status (1)

Country Link
JP (1) JP2000066895A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010182314A (en) * 2009-01-29 2010-08-19 Sony Corp System and method for effectively utilizing transport structure in electronic network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010182314A (en) * 2009-01-29 2010-08-19 Sony Corp System and method for effectively utilizing transport structure in electronic network

Similar Documents

Publication Publication Date Title
JP3952544B2 (en) Distributed system
US5933601A (en) Method for systems management of object-based computer networks
Lingnau et al. An HTTP-based infrastructure for mobile agents
JP3636744B2 (en) Distributed system and method for creating automatic operation schedule of distributed system
KR100420459B1 (en) Agent system and information processing method therefor
JP2721672B2 (en) Apparatus for distributing data processing over multiple control locations
CN109729075B (en) A cloud platform component security policy implementation method
CN114925242B (en) Graph database management method and device
JP2000194631A (en) Communication agent between manager of information processing system and at least single resource
JP2000066895A (en) Device and method for processing information and recording medium recording software for information processing
CN113377738A (en) Method for building BaaS framework based on PaaS platform and EOS framework
Barbuceanu et al. Conversation oriented programming in COOL: current state and future directions
JP3679429B2 (en) File resource management system and method
JP3692137B2 (en) Agent system, information processing method, and recording medium recording information processing program
Terry Gaining wisdom with age: A long-lived shell
JP2004334910A (en) Agent system, information processing method and recording medium with information processing program recorded
Mendes et al. Architectural considerations about open distributed agent support platforms
JP3797862B2 (en) Inference apparatus, system and method, and recording medium recording inference software
Halls Remotely executable programs
CN117370298A (en) Service database monitoring system
Börger et al. Modeling Business Processes
Lakov et al. Information retrieval fuzzy agents
Sirbu The design of a metacomputing environment
Start et al. The distribution management of service software
CN113474800A (en) Block chain powered device commands