JP3722970B2 - Agent system monitoring apparatus, monitoring method, and recording medium recording monitoring program - Google Patents

Agent system monitoring apparatus, monitoring method, and recording medium recording monitoring program Download PDF

Info

Publication number
JP3722970B2
JP3722970B2 JP00323498A JP323498A JP3722970B2 JP 3722970 B2 JP3722970 B2 JP 3722970B2 JP 00323498 A JP00323498 A JP 00323498A JP 323498 A JP323498 A JP 323498A JP 3722970 B2 JP3722970 B2 JP 3722970B2
Authority
JP
Japan
Prior art keywords
agent
node
monitor
monitoring
monitors
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.)
Expired - Fee Related
Application number
JP00323498A
Other languages
Japanese (ja)
Other versions
JPH11203140A (en
Inventor
健太 長
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 JP00323498A priority Critical patent/JP3722970B2/en
Publication of JPH11203140A publication Critical patent/JPH11203140A/en
Application granted granted Critical
Publication of JP3722970B2 publication Critical patent/JP3722970B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • User Interface Of Digital Computer (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワーク上に分散して存在する情報をエージェントを用いて処理する技術の改良に関するもので、特に、エージェントによる動作の柔軟性と安全性を高めたものである。
【0002】
【従来の技術】
〔エージェントシステム〕
従来から、コンピュータのネットワーク上に分散した情報を処理する技術として、エージェントシステムが知られている。エージェントとは、ソフトウェア上の処理単位であり、周囲の状況に応じて自律的に動作するものである。エージェントシステムは、このようなエージェントが、ネットワークを構成するノード上を必要に応じて移動しながら情報収集などの処理を行うシステムである。ここで、ノードとは、ネットワークを構成する論理的な単位であり、一つのマシンすなわちコンピュータ上に複数存在し得る。
【0003】
図7は、このようなエージェントシステムの一例として、本出願人が特願平7−176181で提案しているエージェントシステムについて、その構成例を示す機能ブロック図である。この図に示すエージェントシステムは、複数のノード800をネットワーク800Nで接続したものであり、多数設けることができるノードのうち図7では2つだけを例示している。そして、ノード800のうち、ユーザがエージェント生成に使用するノードをローカルノード(800L)と呼び、生成されたエージェントが移動して行く先のノードをリモートノード(800R)と呼ぶ。
【0004】
このエージェントシステムにおいて、各ノード800は、ユーザがエージェントを生成する操作を行なったり、エージェントが情報処理を行なった結果を受け取るための入出力手段803(L,R)を有する。また、各ノードのエージェント管理手段804(L,R)は、エージェントを生成したり、役割を終えたエージェントを消去する他、エージェントの情報を他のノードへ転送することによって、エージェントを他のノードへ移動させたり、他のノードから同様に移動してくるエージェントを受け入れる手段である。ユーザは、このようなエージェントシステムを用いて何らかの情報処理を行ないたい場合、ローカルノード800Lにおいて、入出力手段803Lからエージェント管理手段804Lに指示を与えることによってエージェントを生成させる。
【0005】
そして、最も基本的な例を示せば、生成されたエージェントに対して、ユーザが入出力手段803Lからスクリプトを与える。スクリプトは、エージェントの行動プログラムであり、どのノードへ移動し、どのような処理を行う、といった内容を具体的に記述したものである。スクリプトのより具体的な例としては、例えば、ノードAに移動してファイルaのコピーをユーザのノードに送信し、次にノードBに移動してファイルbのコピーをユーザのノードに送信し…といった内容が考えられる。そして、各ノードに備えられた解釈実行手段802(L,R)は、このようなスクリプトを実行することによってエージェントを活動させ、これによって目的とする情報処理を実現する。
【0006】
この場合、各ノードに備えられたエージェント情報記憶手段801(L,R)が、エージェントに必要な情報を記憶する。エージェントに必要な情報は、例えば、前記のスクリプトのほか、スクリプトの解釈実行に必要な各変数(スクリプト変数と呼ばれる)や、必要な場合は、エージェントが収集した情報やファイルなどである。また、エージェントのスクリプトに記述される命令としては、一つのノード上だけで実行できる命令のほか、エージェントを他のノードへ移動させるための移動命令がある。解釈実行手段802Lは、スクリプトの命令を順次実行し、移動命令の実行が必要になった場合には、移動先のノードを指定して、エージェントの移動をエージェント管理手段804に依頼する。
【0007】
このようなエージェントシステムでは、ユーザが、いくつかのファイルをネットワーク上から収集したいような場合、この目的を達成するための行動プログラムをエージェントに持たせてネットワーク上に送り出せばよく、送り出されたエージェントは、与えられたスクリプトに基づいて自律的に活動する。このため、ユーザのノードとエージェントとの間で通信を始終維持する必要はないことから、ftp やtelnetといった従来のネットワーク機能と比べて回線障害に強いという利点がある。
【0008】
〔プランニングを用いる構成例〕
図7に示したエージェントシステムに対して、エージェントの行動プログラムであるスクリプトを、状況に応じて変化させることができるエージェントシステムも知られている。
【0009】
すなわち、近年のようにネットワークが大規模化・複雑化し、特に、インターネットのような広域ネットワークと接続されることによっていわゆる開放型ネットワークになると、ファイルの所在などのようなネットワークの構成要素がしばしば変化するようになる。ところが、図7に示した上記のようなエージェントシステムでは、エージェントは生成される時点で固定されたスクリプトを与えられるため、状況に応じて行動を変更することができない。そこで、このような変化に柔軟に対応するため、人手を煩わせずにエージェントの行動を自動的に変化させる技術として、本出願人は、プランニング機能を持ったエージェントシステムを出願している。
【0010】
この技術では、エージェントの行動プログラムはプランと呼び、プランを生成することをプランニングと呼ぶ。そして、この技術では、状況に応じてプランを適宜作り直すことによって、ネットワークの構成要素の変化に対応する。なお、ネットワークの構成などの変化に対応してプランニングを再度やり直すことを再プランニングと呼ぶ。
【0011】
このようなエージェントシステムの構成例を図8の機能ブロック図に示す。この技術において、プランの生成に用いる情報としては、「知識」と呼ばれる情報とアクション定義とが挙げられる。このうち「知識」は、エージェントの動作、特にプランニングに利用する各種の情報であり、その一例として、どのファイルがどのノードに存在するかといったネットワークの構成要素に関する情報を含む。例えば図8の例では、このようなネットワークの構成に関する知識を、ローカル情報記憶手段1Lに保存しておき、ネットワークの構成に変化があったときは、更新手段2Lが、自動検出や手作業などによって、このような変化を知識に反映させる。また、アクション定義とは、プランを構成する部品として、どのような種類の命令(アクション)が使えるかを表す情報であり、エージェント情報記憶手段3に格納しておく。
【0012】
このようなエージェントシステムでは、エージェントの生成を指示するユーザは、達成したいゴールをスクリプトの代わりにノードに与える。ここで、ゴールとは、情報処理の目的として達成したい状態を予め定められた文法で記述したものである。すると、プラン生成手段5は、与えられた知識を参照しながら、アクション定義に含まれる各種のアクションを組み合わせることによって、ゴールを達成するためのプランを生成する。このようなエージェントシステムでは、ネットワークの構成の変化は、プランニングや再プランニングの際に、知識を介してエージェントのプランに反映されるので、エージェントは、人手を介さずに状況の変化に対応し、柔軟に行動を変化させることができる。
【0013】
なお、このようなプランを生成する手段は、「プランナ」とも呼ばれ、その実体はプランニングの手続きを表すプログラムの一種である。また、エージェントの行動プログラムやその各部分を呼ぶ広義の概念がスクリプトであり、プランというときは、特に、図8に示したようなプランニングを行うエージェントによって生成されたスクリプトの全体を指す。
【0014】
〔プランニングの例〕
続いて、上記のようなプランニングを用いたエージェントシステムの具体的な動作手順を図9に例示する。この手順では、ユーザが、情報処理のゴールとしてエージェントに対する要求の記述(要求記述)を入力すると(ステップ201)、必要な初期化が行なわれた後(ステップ202)、プランが生成される(ステップ203)。なお、処理は、ゴールが既に達成されているなど終了条件の判定結果に応じて終了する(ステップ204,205)。
【0015】
すなわち、このような終了条件が満たされるまでは、ゴールを達成するために実行を要するプランの実行が行われる(ステップ204)。プランの実行では、プランに含まれる各命令を順次実行し、実行する命令が移動命令の場合にはエージェントをノード間で移動させる処理(goアクションと呼ばれる)が実行される(ステップ206〜208)。また、各命令の実行やgoアクションの実行に失敗した場合は、必要に応じて新たなプランを生成する。
【0016】
ここで、プランの生成に用いるアクション定義には、アクション(動作)の種類ごとに、事前条件と事後条件とが定義されている。このうち事前条件とは、どんな条件が満たされていればその動作を実行できるかを表し、事後条件は、その動作を実行するとどのような条件が作り出されるかを表す。例えば、「ファイルをコピーする」という動作を行うには、「現在いるノードにファイルが存在する」という事前条件が必要であり、コピーの動作を行なった結果として「ファイルのコピーが存在する」という事後条件が産み出される。
【0017】
プランの生成は、最終的なゴールを事後条件として産み出す動作を発見し、この動作の事前条件を事後条件として産み出すさらに別の動作を発見する、という処理を続けることによって、プランを実行する前の状態(現在の状態)と最終的なゴールとの間をつなぐ動作の列を得ることである。なお、図10は、生成途中におけるプランの例を示す図であり、この例では、動作P2の一方の事前条件C5と、動作P3の事前条件C7について、これら事前条件を事後条件として産み出す動作がまだ見つかっていない。このように、事後条件として産み出す他の動作がまだ見つかっていない事前条件は未達成ゴールと呼ばれる。
【0018】
このようなプラン生成の処理は、ゴールの側から因果を逆に遡って行ない、プランの実行を開始する時点で存在している状態(現在の状態)に到達すると終了する。図11は、このような処理によって完成したプランの例を示す図である。
【0019】
続いて、プラン生成の具体的な手順を図12に示す。すなわち、この手順では、ゴールを記録しておくゴールリストの一部を、図10に示したような未達成ゴールを記録しておく未達成ゴールリストとしておき、次のような処理を行う。まず、ゴールリストに未達成ゴールが存在しなくなるまで(ステップ401)、未達成ゴールリストから未達成ゴールを1つずつ選択し(ステップ402)、ゴールが満足されている場合を除いて(ステップ403)、次のような動作を行う。すなわち、ゴールである事前条件を事後条件によって達成可能な動作が存在すれば(ステップ404)この動作を選択し(ステップ405)、このように選択した動作(選択動作)を図11に示したような動作の系列(プラン木)に追加する(ステップ406)。
【0020】
また、ゴールを達成可能な動作が存在しない場合は、ゴールが不確実知識で達成可能かを判断する。ここで、不確実知識とは、ネットワークの構成に関する知識のうち、他のノードで実際に何らかの処理を行なってみないと具体的な値がわからない知識である。ゴールが不確実知識で達成可能な場合はこの不確実知識を選択動作としてプラン木に追加するが(ステップ405)、不確実知識でも達成不可能な場合は、処理をバックトラックさせ(ステップ408)、現在の未達成ゴールを生じさせている動作を他の動作に置き換えて再度処理を行う。
【0021】
例えば、ユーザが使用するノードのノード知識で、「ファイルaがノードAに存在する」とされているとする。この場合、ファイルaを得るというゴールをユーザが与えると、ノードAに存在するという知識が参照されるので、生成されたエージェントのプランは、「ノードAに移動してファイルaのコピーをユーザのノードに送信する」、といった内容になる。
【0022】
しかし、エージェントがノードAに移動した時点で、ファイルaはノードBに移動されていると、ファイルaが発見できないためにプランは実行失敗となり、ノードA上で再プランニングが行なわれる。このとき、ノードBのノード知識がファイルの移動にあわせて更新されており、「ファイルaはノードBに存在する」と変更されている場合、新しいプランは「ノードBに移動してファイルaのコピーをユーザのノードに送信する」、という内容に変更される。この結果、エージェントはノードBに自律的に移動するし、ファイルaを無事発見してユーザのノードに送信することができる。
【0023】
また、このように生成されたプランに基づいて、エージェントがノード間で移動する場合の手順を図13に示す。この例では、ユーザがエージェントを生成したローカルノードから、他のノードであるリモートノードへエージェントが移動するものとする。この場合、ローカルノードからの移動要求(ステップ501)を受信したリモートノードは(ステップ502)、エージェント用のプロセスを設定する(ステップ503)。
【0024】
続いて、リモートノードから、プロセスの設定が完了した旨の通知(ステップ504)を受信したローカルノードは(ステップ505)、エージェントのプランや変数領域などのエージェント情報をリモートノードに送信する(ステップ506)。このエージェント情報を受信したリモートノードは(ステップ507)、エージェント情報を格納し(ステップ508)、ローカルノードへ移動成功の通知を送信し(ステップ509)、プランの解釈実行を開始する(ステップ510)。一方、成功の通知を受信したローカルノードは(ステップ511)、不要になったエージェント用のプロセスを消去する(ステップ512)。
【0025】
〔エージェントのライフサイクル〕
次に、以上のようにプランニングを行うエージェントのライフサイクルを示す概念図を図14に示す。すなわち、エージェントは、ゴール投入と共に生成されて活動を開始すると、まず、プランを生成するプランニングフェーズPから開始し、生成されたプランにしたがい、プランを実行する実行フェーズEやノード間で移動する移動フェーズMに移行し、実行や移動の失敗に応じてこれらの各フェーズ間を移行しながら活動する。そして、当初与えられたゴールを達成すれば正常終了となり、ゴールが達成できずにプランニング自体にも失敗すると完全失敗となって終了する。
【0026】
〔ファームを用いる例〕
また、1つのノード上に、ファームと呼ばれる領域をいくつか設けたエージェントシステムも考えられる。ここで、ファームとは、情報処理の目的や分野ごとに設定されるエージェントの活動領域であり、フィールドとも呼ばれる。このようなファーム(フィールド)は、一つのノード上に複数存在することができ、メモリなどの資源やプランの生成・実行に用いる情報は、ファーム(フィールド)毎に設けられる。
【0027】
図15は、ネットワークNに複数のホストH(マシン)が接続され、各ホストH上には1つずつのノードXが存在し、ノードX上に複数のフィールドFLが存在する例を示す概念図である。このようなエージェントシステムでは、プラン生成に用いる知識がファーム(フィールドFL)ごとに分けられており、これによって、エージェントはプランニングなどに必要な情報を検索する際、余分な情報まで参照する必要がないので、情報処理が効率化される。なお、プラン生成に用いられる知識はその知識を所持している主体によって、ファームが所持しているファーム知識、エージェントが所持しているエージェント知識などに分けることができる。
【0028】
【発明が解決しようとする課題】
しかしながら、上記のような従来技術には、次のような問題点が存在していた。
(1)まず、上記のように、エージェントシステムは、複数のノードを有するだけでなく、これらノード上を複数のエージェントが動き回るという複雑なシステムである。そして、従来、ネットワークに含まれる個々のノード毎に、状態を表示するモニタは知られていた。しかし、エージェントシステム全体について、どのようなノード及びエージェントが存在しているかを管理したり、特定のノードに存在するエージェントを把握したり、特定のエージェントがノード上を移動していく様子を追跡するモニタは知られていなかった。このため、システム全体の状態やエージェントの移動経路を把握してシステム全体の管理を効果的に行なったり、ノードやエージェントが持っている情報をデバッグするなどの作業が困難であった。
【0029】
(2)また、エージェントシステムは、ゴールが与えられると、知識やアクション定義に基づいて、ゴールを達成するためのプランを生成する。しかし、従来は、与えられたゴールに対して正しいスクリプトが生成されるかどうかを確認するツールが存在しなかった。このため、知識やアクション定義のデバッグが困難であった。
【0030】
また、与えられたゴールは、通常、1つ又は複数のサブゴールを派生させる。このサブゴールとは、最終的なゴールを達成するために、プラン生成の際に中間的に作成されるゴールである。例えば、最終的な1つのゴールを達成するために、2つの別々の必須条件が必要な場合、それぞれの条件がサブゴールとなり、各サブゴールを達成するためにはそのための部分的なスクリプトが生成される。
【0031】
このため、最終的なゴールに対応して生成されたスクリプト全体について、システム内からテキストファイルを取り出せても、ゴールとサブゴールの関係や、サブゴールを達成するためにはどのようなスクリプトが用いられるかを理解することは困難であり、所望の部分について適切なデバッグを行うことが困難であった。
【0032】
(3)また、従来のスクリプトは記述された命令を単に順番に実行するだけのものであったため、その動作を把握することも比較的容易であった。しかし、スクリプトが複雑化すると、その動作の把握は困難となる。
【0033】
すなわち、本出願人は、どのような条件の時にどのような命令が使用できるかを表すアクション定義と、ある命令の動作として具体的にはどのような動作を行うかというスクリプトの実体とを、別々に記述できるエージェントシステムを出願している。このエージェントシステムでは、スクリプトの実体を、アクション定義の記述文法に拘束されずに自由に記述できる。このため、各種制御構文や変数を用いることによって、スクリプト中に複雑な動作を記述可能となる。
【0034】
このように複雑なスクリプトをデバッグしようとする場合は、スクリプトのどの部分がどのような順序で実行され、また、それに伴ってどの変数がどのように変化するかを把握することが不可欠となる。しかし、従来は、このように複雑なスクリプトをデバッグするための技術は存在しなかったので、複雑なスクリプトのデバッグは特に困難であった。
【0035】
本発明は、上記のような従来技術の問題点を解決するために提案されたもので、その目的は、エージェントシステムの管理と開発とを効果的に支援する技術を提供することである。より具体的には、本発明の目的は次のとおりである。
(1)全体、ノード、エージェントといった単位でそれぞれモニタで監視することによってエージェントシステムの振る舞いを把握できるようにすること。
(2)エージェントシステムのデバッグを効果的に支援する技術を提供すること。
(3)複雑なスクリプトを効果的にデバッグする技術を提供すること。
【0036】
【課題を解決するための手段】
上記の目的を達成するため、本発明のモニタ装置は、ネットワークに接続された複数のノードを備え、前記複数のノードには、エージェントを生成させ他のノードに移動させるローカルノードと、前記ローカルノードにおいて生成されたエージェントの移動先となるリモートノードが設けられ、ローカルノードからリモートノードに対してエージェントを移動させながら情報処理を行うエージェントシステムのモニタ装置において、前記ノードまたは前記ネットワークに接続されたノードとは別のコンピュータのいずれかには、エージェントシステム全体を監視するシステムモニタが設けられ、前記各ノードには当該ノードを監視するノードモニタが設けられ、前記各ノードのなかでエージェントが存在するノードには当該ノード上のエージェントを監視するエージェントモニタが設けられ、前記ノードモニタは、対応するノード上に存在するエージェントを監視するエージェントモニタを保持し、前記エージェントが他のノードへ移動すると前記エージェントモニタを破棄し、エージェントの移動先であるノードを監視しているノードモニタは、移動してきたエージェントを監視するエージェントモニタを生成して保持するように構成されたことを特徴とする。また、前記のモニタ装置の構成を、方法またはコンピュータ読み取り可能な記録媒体の観点から把握したものも、本発明の一態様である。
このような構成を有する本発明によれば、システム全体、ノード及びエージェントをそれぞれ専用のモニタによって監視できるので、エージェントシステムの全体と各部分の双方について状態を効果的に把握でき、エージェントシステムの管理やデバッグが容易になる。特に、エージェントがノード間で移動すると、移動したエージェントのエージェントモニタは、移動元ノードでは破棄され、移動先ノードで再度生成されるので、エージェントモニタをエージェントと共に送信する必要がなく、そのような送信に要する所要時間や手数が不要となる。
【0037】
本発明の他の態様は、前記システムモニタからノードモニタ及びエージェントモニタが起動され、前記ノードモニタからエージェントモニタが起動されること、前記システムモニタは、エージェントシステム内にどのようなノード及びエージェントが存在するかを、前記ノードまたはネットワークに接続されたコンピュータに設けられた表示画面であるシステムモニタウインドウに対して出力し、指定されたノードを監視するノードモニタ又は指定されたエージェントを監視するエージェントモニタのうち少なくとも一方を起動するように構成されたこと、前記ノードモニタは、対応するノードにどのようなエージェントが存在するかを、前記ノードに設けられた表示画面であるノードモニタウインドウに出力し、指定されたエージェントを監視するエージェントモニタを起動するように構成されたことを特徴とする。これらの本発明の態様においては、各モニタから他の種類のモニタを起動できるので、エージェントシステムの状態を多面的に把握することが容易になる。
【0038】
本発明のさらに他の態様は、前記ノードモニタは、対応するノードにエージェントの動作を記録したログファイルとしてどのようなものが存在するかを、前記ノードに設けられた表示画面であるノードモニタウインドウに出力し、指定されたログファイルに基づいてエージェントの動作を確認するように構成されたことを特徴とする。この態様によれば、、所望のエージェントのログファイルに基づいてエージェントの動作を再現などによって確認できるので、個々のエージェントの動作を容易に検討することができる。
【0039】
本発明の他の態様は、前記エージェントモニタは、対応するエージェントのプランのうち所望の部分にブレークポイントを設定するように構成され、また、前記エージェントモニタは、対応するエージェントのプランのうち所望の部分に、エージェントの動作についてログの記録を制御するためのロギングポイントを設定するように構成されたことを特徴とする。このような本発明の態様によれば、エージェントモニタからエージェントにブレークポイントを設定することができるので、エージェントの状態の監視からデバッグへ容易に移行でき、作業が効率化される。また、エージェントのプランにロギングポイントを設定することによって、必要な部分だけのログを容易に記録することができる。
【0047】
【発明の実施の形態】
次に、本発明の実施の形態(以下「実施形態」という)について、図面を参照して説明する。
なお、本発明は、周辺機器を持つコンピュータを、ソフトウェアで制御することによって実現することが一般的と考えられる。この場合、キーボード及びマウスなどの入力装置で情報を入力し、CRT表示装置及びプリンタなどの出力装置で情報を出力できる。また、レジスタ、メモリ、外部記憶装置などの記憶装置は、いろいろな形式で、情報を一時的に保持したり永続的に保存できる。そして、CPUは、前記ソフトウェアにしたがって、これらの情報に加工及び判断などの処理を加え、さらに、処理の順序を制御することができる。
【0048】
また、コンピュータを制御するソフトウェアは、各請求項及び明細書に記述する処理に対応した命令を組み合わせることによって作成され、作成されたソフトウェアは、コンパイラやインタプリタなどの処理系によって実行されることで、上記のようなハードウェア資源を活用する。
【0049】
但し、本発明を実現するための上記のような態様はいろいろ変更することができ、例えば、本発明の装置と外部との間で情報を入出力するには、フロッピーディスクなどの着脱可能な記録媒体やネットワーク接続装置を使用することもできる。さらに、本発明を実現するソフトウェアを記録したCD−ROMのような記録媒体は、それ単独でも、本発明の一態様である。また、本発明の機能の一部をLSIなどの物理的な電子回路で実現することも可能である。
【0050】
以上のように、コンピュータを使用して本発明を実現する態様はいろいろ変更できるので、以下では、本発明の各機能を実現する仮想的回路ブロックを用いることによって、本発明の実施の形態を説明する。
【0051】
〔1.第1実施形態…モニタ装置〕
第1実施形態は、請求項1〜14に対応するもので、エージェントが複数のノード上を移動しながら情報処理を行うエージェントシステムをモニタするためのモニタ装置において、システム全体を監視するシステムモニタと、ノードを監視するノードモニタと、エージェントを監視するエージェントモニタと、を備えたものである。
【0052】
〔1−1.構成〕
図1は、第1実施形態の構成を示す概念図である。この図に示すように、第1実施形態は、エージェントシステム全体を監視するシステムモニタ111と、ノード112を監視するノードモニタ113、エージェント114を監視するエージェントモニタ115を有する。これらの各モニタは、例えば、ノード上で実行されるプロセスとして立ち上げる。
【0053】
このうち、システムモニタ111は、エージェントシステムのネットワークに接続されたどのノード上に設けてもよいが、ノード以外の、エージェントシステムがネットワーク経由で参照可能な任意のホスト(マシン)上で立ち上げることも可能である。こうすることにより、エージェントシステム外からシステムを監視することもできる。
【0054】
また、ネーミングシステム119との通信量を削減するためには、システムモニタ111はネーミングサービス119の存在するホスト上に設けることが望ましい。そして、ネーミングサービス(ネームサーバ)119も、ノード以外の、エージェントシステムがネットワーク経由で参照可能な任意のホスト上で立ち上げることが可能である。
【0055】
また、ノードモニタ113は、特定の1つのノードを監視するもので、複数のノードを監視するためにはノード毎に同数のノードモニタ113を立ち上げて用いる。
【0056】
また、エージェントモニタ115も、特定の1つのエージェントを監視するもので、複数のエージェントに対しては同数立ち上げて用いる。このエージェントモニタは、対応するエージェントが存在するノードのノードモニタ113が、当該ノードモニタ113の一部として保持する。
【0057】
また、これらシステムモニタ111、ノードモニタ113、エージェントモニタ114は、それぞれ対応する表示画面であるシステムモニタウインドウ116、ノードモニタウインドウ117、エージェントモニタウインドウ118を介して、ユーザとの間でデータを入出力したり、指示や操作・各種の指定を受け付ける。そして、これら各モニタ111,113,115は、ユーザが個別に直接立ち上げることもできるし、相互に他のモニタを起動することもできる。
【0058】
ここで、ノードモニタ113は、ノードの情報の収集しやすさの点では、監視の対象とするノード上に設けることが望ましく、ノードモニタ113が収集した情報は、表示画面であるノードモニタウインドウ117を通じてユーザに提示され、ユーザからの指示もノードモニタウインドウ117を介して行われる。
【0059】
このノードモニタウインドウ117は、遠隔地にあるノードモニタ113とユーザとの通信を行うのが主な役割である。よって、このように遠隔地からノードをモニタする場合の通常の構成例としては、ノード上にノードモニタ113が存在し、このノードをモニタするユーザ側のマシン上でノードモニタウインドウ117が立ち上がっているという形態が考えられる。そして、モニタ用の各ウインドウ116〜118は、エージェントシステムがネットワーク経由で参照可能な任意のホスト上で立ち上げることが可能である。
【0060】
〔1−2.作用〕
上記のような構成を有する第1実施形態は、次のような作用を有する。ここで、図2は、第1実施形態における処理手順を示すフローチャートである。
〔1−2−1.システムモニタの作用〕
まず、ユーザが最初にシステムモニタ111を立ち上げると(ステップ6211)、システムモニタ111は、エージェントシステムの持つネーミングサービス119と通信することによってシステム全体の情報を獲得し、獲得した情報を表示画面であるシステムモニタウインドウ116に表示する(ステップ6212)。システムモニタ111がこのように表示する情報は、具体的には、例えばエージェントシステム内にどのようなノード及びエージェントが存在するかのリストである。
【0061】
ユーザは、このリストから所望のノードを指定することによって(ステップ6213)、そのノードを監視するノードモニタ113を起動(立ち上げ)することができる(ステップ6221)。また、同様に、ユーザはリストからエージェントを指定することによって(ステップ6214)、そのエージェントを監視するエージェントモニタ115を立ち上げることができる(ステップ6231)。なお、ノードやエージェントを指定するには、例えば、名称をキーボードからタイプ入力したり、リスト上のノード名やエージェント名をマウスでダブルクリックすればよい。
【0062】
〔1−2−2.ノードモニタの作用〕
ノードモニタ113は立ち上げられると(ステップ6221)、対応するノード112と通信することによってそのノード112に関する情報を獲得し、獲得した情報を表示画面であるノードモニタウインドウ117に表示する(ステップ6222)。ノードモニタ113がこのように表示する情報は、例えば、対応するノード112にどのようなエージェント114が存在するかのリストや、そのノード112に残されているエージェントログファイル(以下単に「ログ」という)のリストなどである。
【0063】
ここで、ログとは、特定のエージェントがプランに基づいてどのような振る舞いをしたかを、プランに含まれる命令の1ステップごとに記録した情報である。ユーザは、このようなノードモニタ113の表示画面において、所望のエージェント名をマウスによるダブルクリックで指定することによって(ステップ6223)、そのエージェントを監視するエージェントモニタ115を立ち上げることができる(ステップ6231)。
【0064】
また、ユーザは、ノードモニタの表示画面において所望のログを指定することによって(ステップ6224)、そのログに基づいてエージェントの動作を確認することができる。具体的には、そのログに基づいてエージェントが生成され、ログに記録されているとおりの振る舞いをそのエージェントに行なわせたり、その先の動作を継続させたりすることができる。
【0065】
〔1−2−3.エージェントモニタの作用〕
また、エージェントモニタ115は、対応するエージェントと通信することによってそのエージェントに関する情報を獲得し、獲得した情報を、表示画面であるエージェントモニタウインドウ118に表示する(ステップ6232,6233)。エージェントモニタ115が表示する情報は、例えば、そのエージェントがどのノードにいるか(ステップ6232)や、エージェントが現在プランのどの部分をどのように実行しているかといった実行状態(ステップ6233)などである。
【0066】
〔1−2−4.ブレークポイントの設定〕
また、エージェントモニタ115は、エージェントの動作を制御する機能を持っており、ユーザは、エージェントモニタ115を用いてエージェントのプランの所望の部分にブレークポイントを設定し(ステップ6234)、そのブレークポイントで実行を停止させたり、停止した位置からプランに含まれる各命令を1ステップずつ実行させたり、次のブレークポイントまで実行させたりすることができる。
【0067】
このようなブレークポイントは、どんな条件でプランの実行を停止させるかなどに応じて、いくつもの種類を設定することが可能である。また、ブレークポイントを設ける対象についても、例えばプラン中の特定の行を単位としたり、特定の命令を単位としたり、また、特定のゴールやサブゴールを単位とすることもできる。さらに、前記のようなブレークポイントの種類や設定対象を自由に組み合わせることもできる。そして、このように設定されたブレークポイントは、エージェントモニタ115の表示画面であるエージェントモニタウインドウ118上に表示される。
【0068】
〔1−2−5.ロギングポイントの設定〕
また、ユーザは、エージェントモニタ115を用いて、ブレークポイントと同様に、対応するエージェントのプランのうち所望の部分にロギングポイントを設定することができる。ここで、ロギングポイントとは、エージェントの動作についてログの記録を制御するためのポイントであり、ログの記録を行う開始点や終了点を指定するのに用いる。また、ロギングポイントは、ブレークポイントと同様に様々な条件や対象の単位を組み合わせて設定することができる。例えば、プランのどこからどこを実行しているときにログを記録するかという範囲だけでなく、例えば、実行失敗に対する復旧処理の間だけ記録するなど、ログを記録する条件も指定することができる。
【0069】
そして、エージェントのプランが実行されると、エージェントモニタ115は、ロギングポイントで指定した条件や対象について、エージェントのログファイルを記録し、ユーザの求めに応じてエージェントモニタウインドウ118に出力する。さらに、このように得られたログファイルをノードモニタ113上から利用することによって、そのログをとったときと同じ状態で、エージェントを再現し、ログに記録された動作を再現させたり、その先の動作の実行を継続させたりすることができる。
【0070】
〔1−2−6.エージェントが移動する場合の処理〕
ところで、エージェントモニタ115が対応しているエージェントが別のノードに移動すると(図3)、そのエージェントモニタ115を保持しているノードモニタ113は、当該エージェントモニタ115を破棄し、エージェントの移動先のノードに対応するノードモニタ113内に新たにエージェントモニタ115が生成される。
【0071】
また、このようにエージェントモニタ115が移動しても、ユーザに対する表示画面としては同じエージェントモニタウインドウ118を使用する必要がある。このため、エージェントの移動によってエージェントモニタ115が破棄された場合、エージェントモニタウインドウ118は、図3に示すように、同じエージェントに対応するエージェントモニタ115が新たにどのノードで生成されたかをシステムモニタ111に問い合わせる。そして、エージェントモニタウインドウ118は、システムモニタ111からの回答に基づいて、新たに生成されたエージェントモニタ115との間にデータのリンクを確立し、エージェントモニタ115から送られてくる情報を表示したり、ユーザからの指示をエージェントモニタ115に転送する処理を続ける。
【0072】
〔1−3.効果〕
上記のように、第1実施形態では、システム全体、ノード及びエージェントをそれぞれ専用のモニタによって監視できるので、エージェントシステムの全体と各部分の双方について状態を効果的に把握でき、エージェントシステムの管理やデバッグが容易になる。特に、第1実施形態では、各モニタから他の種類のモニタを起動できるので、エージェントシステムの状態を多面的に把握することが容易になる。
【0073】
また、第1実施形態では、所望のエージェントのログファイルに基づいてエージェントの動作を再現などによって確認できるので、個々のエージェントの動作を容易に検討することができる。また、第1実施形態では、エージェントがノード間で移動すると、移動したエージェントのエージェントモニタは、移動元ノードでは破棄され、移動先ノードで再度生成されるので、エージェントモニタをエージェントと共に送信する必要がなく、そのような送信に要する所要時間や手数が不要となる。
【0074】
また、第1実施形態では、エージェントがどのノードにいて、プランのどの部分を実行しているかが出力できるので、所望のエージェントの状態把握が容易になる。また、第1実施形態では、エージェントモニタからエージェントにブレークポイントを設定することができるので、エージェントの状態の監視からデバッグへ容易に移行でき、作業が効率化される。また、第1実施形態では、エージェントのプランにロギングポイントを設定することによって、必要な部分だけのログを容易に記録することができる。
【0075】
〔2.第2実施形態…デバッグ装置〕
第2実施形態は、請求項15〜21に対応するもので、エージェントシステムをデバッグするためのデバッグ装置である。このデバッグ装置がデバッグの対象とするエージェントシステムは、知識及びアクション定義に基づいてプランナがエージェントのプランを生成し、エージェントは生成されたプランを実行することによって情報処理を行うものである。
【0076】
第2実施形態は、このようなエージェントシステムに用いられる知識、アクション定義及びプランナについて、それらを用いたときに生成されるプランのスクリプトが正しいかどうかを検討することによって、それら知識、アクション定義及びプランナをデバッグするものである。なお、エージェントが実行する行動プログラム全体がプランすなわちスクリプトであり、また、プランナは、プランすなわちスクリプトの生成に必要なデータとして知識やアクション定義を参照し、プラン(スクリプト)生成の手続きを行うプログラムである。
【0077】
〔2−1.構成〕
まず、図4は、第2実施形態の構成を示す機能ブロック図である。この図に示すように、第2実施形態は、ナレッジデバッガDと、スクリプトトレーサTとを有する。ナレッジデバッガDは、デバッグの対象として指定された知識、アクション定義及びプランナを用いて、与えられたゴールを達成するためのスクリプトS1を生成する手段である。また、スクリプトトレーサTは、与えられたスクリプトの挙動を調べる手段である。
【0078】
このうちナレッジデバッガDは、デバッグの対象を設定するための第1の設定手段D1と、設定されたデバッグの対象に基づいてスクリプトを生成する生成手段D2と、生成されたスクリプトの表示を制御する表示制御手段D3と、を有する。
【0079】
また、スクリプトトレーサTは、第2の設定手段T1と、実行制御手段T2と、出力制御手段T3と、を有する。このうち第2の設定手段T1は、与えられたスクリプトについてブレークポイントを設定し及び監視したい変数を指定する手段である。また、実行制御手段T2は、与えられたスクリプトを指定された態様で実行する手段であり、このような実行の態様としては例えば1ステップずつ実行するのか全部まとめて実行するのかなどが選択できる。また、実行制御手段T2は、ブレークポイントにおいてスクリプトの実行を停止するように構成されている。また、出力制御手段T3は、スクリプトの実行で得られた情報、例えば指定された変数の値などを出力する手段である。
【0080】
〔2−2.作用〕
上記のような第2実施形態を用いたデバッグの手順を図5に示す。なお、第2実施形態では、ユーザは、GUI(グラフィカルユーザインタフェース)を用いて各種設定を行なったり、指示を与えたり、情報を参照することができる。
【0081】
〔2−2−1.デバッグ対象の指定〕
まず、ユーザは、デバッグ対象とする知識、アクション及びプランナに対して従来のエディタなどを用いて必要な編集や修正を加える(ステップ7201)。続いて、ナレッジデバッガDの第1の設定手段D1を用いて、デバッグ対象とする知識、アクション及びプランナを指定する(ステップ7202)。具体的には、例えば、知識、アクション定義、プランナを複数ある候補から選択して利用できる場合、入出力用の表示画面(ダイアログ)にこれらの候補を表示させ、その中からデバッグの対象とするアクション定義やプランナなどを選択する。また、必要に応じて目的とする情報のファイルを指定し、ファイルから情報を読み込んでデバッグすることもできる。選択されたこれらの情報は、所定のテキスト表示欄(テキストボックス)に表示される。
【0082】
〔2−2−2.スクリプトの生成〕
デバッグの対象とする情報を上記のように選択した後、ユーザは、ダイアログから所望のゴールを入力して設定する。続いて、所定の操作、例えば表示画面上にグラフィック表示されているGetScript ボタンをマウスでクリックすることによって生成手段D2を起動する。起動された生成手段D2は、選択されている知識、アクション定義及びプランナを用いて、与えられたゴールを達成するためのスクリプトを生成し(ステップ7203)、生成されたこのスクリプトが所定の表示用ウインドウに出力される。
【0083】
〔2−2−3.サブゴールの抽出〕
このように生成されたスクリプトをどのように表示するかは、表示制御手段D3が制御する。すなわち、まず、表示制御手段D3は、生成されたスクリプトに含まれるサブゴールを抽出し(ステップ7204)、スクリプト自体とは別の表示用ウインドウにサブゴールリストとして表示される。このようなサブゴールは、スクリプト内では決まった命令語、例えばsubgoal やnewgoal などを用いて表されるので、サブゴールを抽出するには、これらの命令語をスクリプト内から検索すればよい。このように抽出され表示されたサブゴールのなかから、ユーザが所望のサブゴールGを選択することによって(図4)、そのサブゴールGを達成するための部分的なスクリプトS2だけを生成させて出力させることもできる。
【0084】
〔2−2−4.スクリプトの階層的な表示〕
さらに、表示制御手段D3は、ゴールとサブゴール及び前記ゴールに対応するスクリプトと前記サブゴールに対応する部分的なスクリプトを、階層関係に基づいて表示することができる(ステップ7205)。すなわち、最終的なゴールとサブゴールの関係は、最終的なゴールが上位であり、最終的なサブゴールを達成するための各サブゴールが下位という階層的な関係にある。このため、下位のサブゴール及びサブゴールに対応する部分的なスクリプトは、スクリプト全体との関係で、階層的に管理され、表示される。
【0085】
例えば、あるサブゴールを具体的なスクリプトに展開して表示させた後、表示を上位階層に戻すUpボタンをマウスでクリックすることによって、展開したサブゴールを含んでいた上位のスクリプト全体や、この全体的なスクリプトに対応する最終的なゴールの出力画面に戻ることもできる。同様に、サブゴールのスクリプトがさらに下位のサブゴールを含んでいるような場合は、階層的に順次下位のスクリプトを展開して表示させたり、逆に、上位の表示画面に順次戻ることもできる。
【0086】
ここで、スクリプト中のサブゴールに対応する部分的なスクリプトを表示させ、表示されたスクリプト中のサブゴールに基づいてさらに下位の情報を表示して行く状態を図6の概念図に示す。このようにスクリプトを表示した結果、バグを発見した場合は(ステップ7206)デバッグ対象の編集/修正(ステップ7201)に戻って作業をやり直せばよい。
【0087】
〔2−2−5.スクリプトのトレース〕
また、上記のように得られた所望のスクリプトをスクリプトトレーサTに渡すことによって、スクリプトをトレースすることができる。ユーザは、スクリプトをトレースしようとするときは、トレースの対象とするスクリプトを例えば反転表示によって選択した状態で、表示画面上のTrace ボタンをマウスでクリックする。すると、スクリプトトレーサTが起動され(ステップ7207)、スクリプトトレーサTの入出力用ウインドウが現われ、渡されたスクリプトがテキスト表示された状態となる。
【0088】
〔2−2−6.ブレークポイントと変数ウォッチ式の設定〕
このテキスト表示画面上で、ユーザは、第2の設定手段T1を用いて、所望の位置に何箇所でもブレークポイントを設定することができる(ステップ7208)。また、ユーザは、第2の設定手段T1を用いて、スクリプト内で使われている変数のうち、所望の変数を変数ウォッチ式で指定する(ステップ7208)。ここで、変数ウォッチ式は、スクリプトを実行する際にどの変数を監視し、その変数にどのような変化があったときに、その変化をどのような形式でユーザに提示するかを指定する式である。
【0089】
このような変数ウォッチ式によって、例えば、ある2つの変数の値が食い違ったときに警告を表示したり、ある変数のうち所定の範囲のビットを1と0の並びで表示するといった指定を自由に行うことができる。変数ウォッチ式によって指定されたこのような表示は、出力制御手段T3によって実現される。
【0090】
〔2−2−7.スクリプトの実行〕
以上のようにブレークポイント及び変数ウォッチ式を設定したスクリプトは、実行制御手段T2によって実行される(ステップ7209)。この際、ユーザは、実行制御手段T2を利用して、スクリプトを1ステップずつ実行することもできるし、各ステップを連続して実行することもできる。そして、このようなスクリプトの実行に際して、出力制御手段T3は、変数ウォッチ式で指定した変数の内容を順次表示及び記録する。
【0091】
また、各ステップを連続して実行する場合も、実行制御手段T2は、設定したブレークポイントで実行を停止するので(ステップ7209)、ユーザは、その時点で各変数の値がどうなっているか確認することができる(ステップ7210)。また、1ステップずつ実行する場合は、スクリプトのどの部分がどんな順序で実行され、各変数の値がどのように変化していくかを詳細に検討することができる。この場合も、スクリプトが実行される様子や変数の内容を確認した結果、バグが発見された場合は、デバッグ対象の編集/修正(ステップ7201)から作業をやり直せばよい。
【0092】
〔2−3.効果〕
以上のように、第2実施形態では、指定されたデバッグ対象を用いて、与えられたゴールを達成するためのスクリプトが生成され出力されるので、ユーザは、所望のデバッグ対象について意図した通りのスクリプトが生成されているかどうかを容易に確認することができる。
【0093】
また、第2実施形態では、最終的なゴールに対応するスクリプト全体を表示して正しいかどうかを判断するだけでなく、所望のサブゴールに対応する部分的なスクリプトを表示して詳細に検討できるので、スクリプトの理解が容易になる。また、第2実施形態では、ゴールとサブゴール及びゴールに対応するスクリプトとサブゴールに対応する部分的なスクリプトについて、上位階層の表示と下位階層の表示を切り替えるなど階層関係に基づいて表示することによって、所望の範囲を容易に確認することができる。
【0094】
また、第2実施形態では、指定したブレークポイントでスクリプトの実行が停止し、1ステップずつ実行したり、次のブレークポイントまで実行するなど所望の態様でスクリプトの実行を自由に制御することができ、また、指定した変数にの内容を調べることができるので、複雑なスクリプトについても効果的にデバッグを行うことができる。
【0095】
〔3.他の実施の形態〕
なお、本発明は上記実施の形態に限定されるものではなく、次に例示するような他の実施形態をも含むものである。例えば、本発明において、ネットワークの規模、形式、ノード数などは自由であり、エージェントを用いて行う情報処理の種類や、アクション定義、知識、プランなどを記述する言語の形式も自由に選択しうる。
【0096】
また、第1実施形態において、システムモニタ、ノードモニタ、エージェントモニタの具体的な構成や情報を表示する形式は自由であり、これら各モニタや各モニタの表示画面を一体に構成することもできる。また、各モニタから他のモニタを起動する機能や、ログファイルを取り扱う機能や、エージェントモニタからブレークポイントやロギングポイントを設定できる機能は、必ずしも必要ではない。また、エージェントが他のノードへ移動する場合、必ずしもエージェントモニタを破棄する必要はなく、エージェントと共に移動先に転送してもよい。
【0097】
また、第2実施形態において、デバッグの対象として選択できるのは知識、アクション定義及びプランナに限定する必要はなく、システム構成に合わせて他の所望の構成要素を加えることができる。また、デバッグの対象を全てユーザが選択する必要はなく、選択しなかった対象についてはシステム上の標準構成(デフォルト)が選択されるようにすることもできる。また、生成されたスクリプトを表示する場合、表示は必ずしも階層的にする必要はなく、また、生成したスクリプトにブレークポイントを設定したり、指定した態様で実行する手段も必須ではない。
【0098】
【発明の効果】
以上説明したように、本発明によれば、全体、ノード、エージェントといった単位でそれぞれモニタで監視することによってエージェントシステムの振る舞いを把握できるので、エージェントシステムの管理と開発とが効果的に支援される。
【図面の簡単な説明】
【図1】本発明の第1実施形態の構成を示す機能ブロック図。
【図2】本発明の第1実施形態における処理手順を示すフローチャート。
【図3】本発明の第1実施形態において、エージェントがノード間で移動した場合の処理を示す概念図。
【図4】本発明の第2実施形態の構成を示す機能ブロック図。
【図5】本発明の第2実施形態における処理手順を示すフローチャート。
【図6】本発明の第2実施形態において、階層的な表示を説明するための図。
【図7】従来のエージェントシステムの構成例を示すフローチャート。
【図8】プランニングを行う従来のエージェントシステムの構成例を示すフローチャート。
【図9】従来のエージェントシステムにおける処理手順を示すフローチャート。
【図10】エージェントシステムにおいて、生成途中のプランの例を示す概念図。
【図11】エージェントシステムにおいて、完成したプランの例を示す概念図。
【図12】エージェントシステムにおけるプランニングの手順を示すフローチャート。
【図13】エージェントシステムにおいて、エージェントがノード間で移動する手順を示すフローチャート。
【図14】エージェントシステムにおけるエージェントのライフサイクルを示す概念図。
【図15】エージェントシステムにおいてノード上に複数のファーム(フィールド)が存在する状態を示す概念図。
【符号の説明】
1…ローカル情報記憶手段
2…更新手段
3…エージェント情報記憶手段
4…入出力手段
5…プラン生成手段
6…プラン実行手段
7…エージェント管理部
L…ローカルマシン
R…リモートマシン
N…ネットワーク
111…システムモニタ
112…ノード
113…ノードモニタ
114…エージェント
115…エージェントモニタ
116…システムモニタウインドウ
117…ノードモニタウインドウ
118…エージェントモニタウインドウ
119…ネーミングサービス
D…ナレッジデバッガ
D1…対象設定手段
D2…生成手段
D3…表示制御手段
T…スクリプトトレーサ
T1…第2の設定手段
T2…実行制御手段
T3…出力制御手段
S1,S2…スクリプト
C…条件
P…動作
S…状態
800N…ネットワーク
800L…ローカルノード
800R…リモートノード
801…エージェント情報記憶手段
802…解釈実行手段
803…入出力手段
804…エージェント管理手段
STEP…手順の各ステップ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an improvement in technology for processing information existing in a distributed manner on a network using an agent, and in particular, increases the flexibility and safety of operation by the agent.
[0002]
[Prior art]
[Agent system]
Conventionally, an agent system is known as a technique for processing information distributed on a computer network. An agent is a processing unit on software, and operates autonomously according to surrounding conditions. The agent system is a system in which such an agent performs processing such as information collection while moving as necessary on the nodes constituting the network. Here, a node is a logical unit constituting a network, and a plurality of nodes may exist on one machine, that is, a computer.
[0003]
FIG. 7 is a functional block diagram showing a configuration example of the agent system proposed by the present applicant in Japanese Patent Application No. 7-176181 as an example of such an agent system. The agent system shown in this figure has a plurality of nodes 800 connected by a network 800N, and FIG. 7 illustrates only two of the nodes that can be provided in large numbers. Of the nodes 800, a node used by the user for agent generation is called a local node (800L), and a node to which the generated agent moves is called a remote node (800R).
[0004]
In this agent system, each node 800 has input / output means 803 (L, R) for a user to perform an operation for generating an agent and receive a result of information processing by the agent. Further, the agent management means 804 (L, R) of each node generates an agent, deletes an agent that has finished its role, and transfers agent information to another node, thereby transferring the agent to another node. It is a means for accepting agents that move to other nodes and move similarly from other nodes. When a user wants to perform some information processing using such an agent system, the local node 800L generates an agent by giving an instruction from the input / output unit 803L to the agent management unit 804L.
[0005]
In the most basic example, the user gives a script from the input / output unit 803L to the generated agent. The script is an agent action program, and specifically describes the contents such as which node to move to and what processing to perform. As a more specific example of a script, for example, it moves to node A and sends a copy of file a to the user's node, then moves to node B and sends a copy of file b to the user's node ... Such a content can be considered. Then, the interpretation execution means 802 (L, R) provided in each node activates the agent by executing such a script, thereby realizing the desired information processing.
[0006]
In this case, agent information storage means 801 (L, R) provided in each node stores information necessary for the agent. The information necessary for the agent includes, for example, the above-mentioned script, variables necessary for interpreting and executing the script (called script variables), and information and files collected by the agent if necessary. In addition to instructions that can be executed on only one node, instructions written in the script of the agent include a movement instruction for moving the agent to another node. Interpretation execution means 802L sequentially executes the instructions of the script, and when it is necessary to execute the movement instruction, it designates the destination node and requests the agent management means 804 to move the agent.
[0007]
In such an agent system, when a user wants to collect some files from the network, the agent may have an action program for achieving this purpose and send it to the network. Act autonomously based on a given script. For this reason, there is no need to maintain communication between the user node and the agent, so there is an advantage that it is more resistant to line failures than conventional network functions such as ftp and telnet.
[0008]
[Configuration example using planning]
In contrast to the agent system shown in FIG. 7, there is also known an agent system that can change a script, which is an agent behavior program, according to the situation.
[0009]
In other words, as the network becomes larger and more complex as in recent years, especially when it becomes a so-called open network by connecting to a wide area network such as the Internet, the components of the network such as the location of files often change. To come. However, in the agent system as shown in FIG. 7, since the agent is given a fixed script at the time of generation, the action cannot be changed according to the situation. Therefore, in order to flexibly cope with such a change, the present applicant has applied for an agent system having a planning function as a technique for automatically changing an agent's behavior without bothering humans.
[0010]
In this technology, an agent's action program is called a plan, and generating a plan is called planning. In this technique, a plan is appropriately rewritten according to the situation to cope with changes in network components. Note that re-planning in response to changes in the network configuration or the like is called re-planning.
[0011]
An example of the configuration of such an agent system is shown in the functional block diagram of FIG. In this technique, information used for generating a plan includes information called “knowledge” and action definition. Of these, “knowledge” is various information used for agent operation, particularly for planning, and includes, as an example, information related to network components such as which file exists in which node. For example, in the example of FIG. 8, such knowledge about the network configuration is stored in the local information storage unit 1L, and when there is a change in the network configuration, the update unit 2L performs automatic detection, manual operation, etc. To reflect such changes in knowledge. The action definition is information indicating what kind of instruction (action) can be used as a part constituting the plan, and is stored in the agent information storage means 3.
[0012]
In such an agent system, a user who instructs generation of an agent gives a goal to be achieved to a node instead of a script. Here, the goal is a state in which a state desired to be achieved as an information processing purpose is described in a predetermined grammar. Then, the plan generation means 5 generates a plan for achieving the goal by combining various actions included in the action definition while referring to the given knowledge. In such an agent system, changes in the network configuration are reflected in the agent plan through knowledge during planning and replanning, so the agent responds to changes in the situation without human intervention, The behavior can be changed flexibly.
[0013]
The means for generating such a plan is also called a “planner”, and its entity is a kind of program that represents a planning procedure. The broad concept of calling an agent's action program and each part thereof is a script, and the term “plan” particularly refers to the entire script generated by the agent performing the planning as shown in FIG.
[0014]
[Example of planning]
Subsequently, FIG. 9 illustrates a specific operation procedure of the agent system using the above planning. In this procedure, when a user inputs a description (request description) for a request as an information processing goal (step 201), after necessary initialization is performed (step 202), a plan is generated (step 202). 203). The process ends according to the determination result of the end condition such that the goal has already been achieved (steps 204 and 205).
[0015]
That is, until such an end condition is satisfied, a plan that needs to be executed to achieve the goal is executed (step 204). In the execution of the plan, each instruction included in the plan is sequentially executed, and when the instruction to be executed is a movement instruction, a process for moving the agent between nodes (called a go action) is executed (steps 206 to 208). . If execution of each command or go action fails, a new plan is generated as necessary.
[0016]
Here, in the action definition used for generating the plan, a precondition and a postcondition are defined for each type of action (operation). Of these, the precondition represents what condition can be executed if the condition is satisfied, and the postcondition represents what condition is created when the operation is executed. For example, in order to perform an operation of “copying a file”, a precondition “a file exists on the current node” is necessary, and “a copy of the file exists” as a result of the copy operation. Post-conditions are produced.
[0017]
Plan generation executes a plan by continuing the process of discovering an action that produces a final goal as a postcondition and finding another action that produces a precondition of this action as a postcondition. To obtain a sequence of actions that connect between the previous state (current state) and the final goal. FIG. 10 is a diagram illustrating an example of a plan in the middle of generation. In this example, for one precondition C5 of the operation P2 and the precondition C7 of the operation P3, an operation that generates these preconditions as postconditions. Has not been found yet. Thus, a precondition for which no other action has yet to be generated as a postcondition is called an unachieved goal.
[0018]
Such a plan generation process is performed retroactively from the goal side and ends when the state (current state) that exists at the time of starting execution of the plan is reached. FIG. 11 is a diagram showing an example of a plan completed by such processing.
[0019]
Next, a specific procedure for generating a plan is shown in FIG. That is, in this procedure, a part of the goal list for recording goals is set as an unachieved goal list for recording unachieved goals as shown in FIG. 10, and the following processing is performed. First, until there are no unachieved goals in the goal list (step 401), unachieved goals are selected one by one from the unachieved goal list (step 402), except when the goals are satisfied (step 403). ) Perform the following operations. That is, if there is an action that can achieve the goal pre-condition by the post-condition (step 404), this action is selected (step 405), and the action thus selected (selected action) is as shown in FIG. Are added to a series of various operations (plan tree) (step 406).
[0020]
If there is no action that can achieve the goal, it is determined whether the goal can be achieved with uncertain knowledge. Here, the uncertain knowledge is knowledge about the configuration of the network whose specific value is not known unless some processing is actually performed at another node. If the goal can be achieved with uncertain knowledge, this uncertain knowledge is added as a selection operation to the plan tree (step 405). If the goal cannot be achieved even with uncertain knowledge, the process is backtracked (step 408). Then, the operation causing the current unachieved goal is replaced with another operation, and the process is performed again.
[0021]
For example, it is assumed that “file a exists in node A” in the node knowledge of the node used by the user. In this case, when the user gives the goal of obtaining the file a, the knowledge that it exists in the node A is referred, so the generated agent plan is “move to the node A and copy the file a Send to node ".
[0022]
However, if the file a is moved to the node B when the agent moves to the node A, the plan fails because the file a cannot be found, and replanning is performed on the node A. At this time, when the node knowledge of the node B is updated with the movement of the file and changed to “file a exists in node B”, the new plan is “moved to node B and moves to the file a. “Send a copy to the user's node”. As a result, the agent autonomously moves to the node B, and can safely find the file a and transmit it to the user's node.
[0023]
FIG. 13 shows a procedure when the agent moves between nodes based on the plan generated in this way. In this example, it is assumed that the agent moves from the local node where the user has generated the agent to a remote node that is another node. In this case, the remote node that has received the movement request (step 501) from the local node (step 502) sets up an agent process (step 503).
[0024]
Subsequently, the local node that has received the notification that the process setting has been completed (step 504) from the remote node (step 505), transmits agent information such as the agent plan and variable area to the remote node (step 506). ). The remote node that has received this agent information (step 507) stores the agent information (step 508), sends a notification of successful movement to the local node (step 509), and starts interpreting the plan (step 510). . On the other hand, the local node that has received the notification of success (step 511) deletes the process for the agent that is no longer necessary (step 512).
[0025]
[Agent life cycle]
Next, FIG. 14 is a conceptual diagram showing the life cycle of an agent who performs planning as described above. That is, when an agent is generated together with a goal input and starts an activity, it starts with a planning phase P for generating a plan, and in accordance with the generated plan, an execution phase E for executing the plan or a movement that moves between nodes. The phase shifts to the phase M, and the activity is performed while shifting between these phases according to the execution or movement failure. If the goal given initially is achieved, the process ends normally. If the goal cannot be achieved and the planning itself fails, the process ends with a complete failure.
[0026]
[Example using a farm]
An agent system in which several areas called “farms” are provided on one node is also conceivable. Here, the farm is an agent activity area set for each purpose and field of information processing, and is also called a field. A plurality of such farms (fields) can exist on one node, and information used for generating and executing resources such as memory and plans is provided for each farm (field).
[0027]
FIG. 15 is a conceptual diagram illustrating an example in which a plurality of hosts H (machines) are connected to the network N, one node X exists on each host H, and a plurality of fields FL exist on the node X. It is. In such an agent system, knowledge used for plan generation is divided for each farm (field FL), so that the agent does not need to refer to extra information when searching for information necessary for planning and the like. Therefore, information processing is made efficient. The knowledge used for plan generation can be divided into farm knowledge possessed by a farm, agent knowledge possessed by an agent, etc., depending on the subject possessing the knowledge.
[0028]
[Problems to be solved by the invention]
However, the conventional techniques as described above have the following problems.
(1) First, as described above, the agent system is a complex system that not only has a plurality of nodes but also a plurality of agents move around on these nodes. Conventionally, a monitor that displays a status for each individual node included in a network has been known. However, it manages what kind of nodes and agents exist in the entire agent system, grasps the agents that exist on specific nodes, and tracks how specific agents move on the nodes. The monitor was not known. For this reason, it is difficult to effectively manage the entire system by grasping the state of the entire system and the movement path of the agent, and debugging the information held by the node and the agent.
[0029]
(2) When the goal is given, the agent system generates a plan for achieving the goal based on knowledge and action definition. However, conventionally, there has been no tool for confirming whether a correct script is generated for a given goal. This makes it difficult to debug knowledge and action definitions.
[0030]
Also, a given goal usually derives one or more subgoals. This sub-goal is a goal created intermediately when generating a plan in order to achieve the final goal. For example, if two separate prerequisites are needed to achieve a final goal, each condition becomes a subgoal, and a partial script is generated to achieve each subgoal .
[0031]
Therefore, even if a text file can be extracted from the system for the entire script generated corresponding to the final goal, what kind of script is used to achieve the relationship between the goal and the subgoal and the subgoal? Is difficult to understand, and it is difficult to properly debug the desired part.
[0032]
(3) Since the conventional script simply executes the described instructions in order, it is relatively easy to grasp the operation. However, when the script becomes complicated, it is difficult to grasp the operation.
[0033]
That is, the applicant defines an action definition that indicates what instruction can be used under what condition, and a script entity that specifically describes what operation is performed as an operation of a certain instruction. We have applied for an agent system that can be described separately. In this agent system, the script body can be freely described without being restricted by the action definition description grammar. For this reason, complicated operations can be described in a script by using various control syntaxes and variables.
[0034]
When debugging such a complex script, it is indispensable to understand which part of the script is executed in what order, and which variable changes and how it changes accordingly. Conventionally, however, there has been no technology for debugging such a complex script, and it has been particularly difficult to debug a complex script.
[0035]
The present invention has been proposed in order to solve the above-described problems of the prior art, and an object thereof is to provide a technology that effectively supports management and development of an agent system. More specifically, the object of the present invention is as follows.
(1) To be able to grasp the behavior of the agent system by monitoring each unit such as the whole, nodes, and agents with a monitor.
(2) To provide a technology that effectively supports debugging of an agent system.
(3) To provide a technique for effectively debugging a complicated script.
[0036]
[Means for Solving the Problems]
  To achieve the above objectives,The monitoring apparatus according to the present invention includes a plurality of nodes connected to a network, and the plurality of nodes includes a local node that generates an agent and moves the node to another node, and a destination of the agent generated in the local node In the monitoring apparatus of the agent system that performs information processing while moving the agent from the local node to the remote node, either the node or a computer different from the node connected to the network Is provided with a system monitor for monitoring the entire agent system, each node is provided with a node monitor for monitoring the node, and an agent on the node is assigned to a node in which the agent exists. Agent to monitor A monitor is provided, and the node monitor holds an agent monitor that monitors an agent existing on the corresponding node, and when the agent moves to another node, discards the agent monitor, and is a node to which the agent is moved The node monitor that monitors the agent is configured to generate and hold an agent monitor that monitors the agent that has moved. Moreover, what grasped | ascertained the structure of the said monitor apparatus from the viewpoint of the method or a computer-readable recording medium is also 1 aspect of this invention.
According to the present invention having such a configuration, since the entire system, nodes, and agents can be monitored by dedicated monitors, the state of both the entire agent system and each part can be effectively grasped, and the agent system is managed. And debugging becomes easier. In particular, when an agent moves between nodes, the agent monitor of the moved agent is discarded at the source node and regenerated at the destination node, so there is no need to send the agent monitor with the agent, and such transmission This eliminates the time and effort required.
[0037]
According to another aspect of the present invention, a node monitor and an agent monitor are started from the system monitor, and an agent monitor is started from the node monitor. What kind of nodes and agents exist in the agent system Of a node monitor that monitors a specified node or an agent monitor that monitors a specified agent, and outputs to a system monitor window that is a display screen provided in the computer connected to the node or the network. The node monitor is configured to activate at least one of them, and the node monitor outputs to the node monitor window, which is a display screen provided in the node, what kind of agent exists in the corresponding node, and specifies Agent Characterized in that it is configured to start the agent monitor for viewing. In these aspects of the present invention, since other types of monitors can be activated from each monitor, it becomes easy to grasp the state of the agent system from various angles.
[0038]
According to still another aspect of the present invention, the node monitor is a node monitor window which is a display screen provided in the node to indicate what kind of log file in which the operation of the agent is recorded in the corresponding node. And the operation of the agent is confirmed based on the specified log file. According to this aspect, since the operation of the agent can be confirmed by reproduction or the like based on the log file of the desired agent, the operation of each agent can be easily considered.
[0039]
According to another aspect of the present invention, the agent monitor is configured to set a breakpoint at a desired portion of the corresponding agent plan, and the agent monitor is configured to select a desired portion of the corresponding agent plan. The part is characterized in that it is configured to set a logging point for controlling the log recording of the agent operation. According to such an aspect of the present invention, since a breakpoint can be set from the agent monitor to the agent, it is possible to easily shift from monitoring the state of the agent to debugging, and work efficiency is improved. In addition, by setting logging points in the agent plan, it is possible to easily record only the necessary parts.
[0047]
DETAILED DESCRIPTION OF THE INVENTION
Next, an embodiment of the present invention (hereinafter referred to as “embodiment”) will be described with reference to the drawings.
It should be noted that the present invention is generally realized by controlling a computer having a peripheral device with software. In this case, information can be input by an input device such as a keyboard and a mouse, and information can be output by an output device such as a CRT display device and a printer. In addition, storage devices such as registers, memories, and external storage devices can temporarily hold or permanently store information in various formats. Then, according to the software, the CPU can add processing such as processing and determination to these pieces of information, and further control the order of processing.
[0048]
The software for controlling the computer is created by combining instructions corresponding to the processing described in each claim and specification, and the created software is executed by a processing system such as a compiler or an interpreter. Utilize hardware resources as described above.
[0049]
However, the above-described aspects for realizing the present invention can be variously modified. For example, in order to input / output information between the apparatus of the present invention and the outside, a removable recording such as a floppy disk can be used. Media and network connection devices can also be used. Further, a recording medium such as a CD-ROM on which software for realizing the present invention is recorded is an embodiment of the present invention. Also, some of the functions of the present invention can be realized by a physical electronic circuit such as an LSI.
[0050]
As described above, since various aspects of implementing the present invention using a computer can be changed, embodiments of the present invention will be described below by using virtual circuit blocks that implement each function of the present invention. To do.
[0051]
[1. First Embodiment ... Monitor Device]
1st Embodiment respond | corresponds to Claims 1-14, The system monitor which monitors the whole system in the monitor apparatus for monitoring the agent system which an agent performs information processing while moving on a some node, A node monitor for monitoring the node and an agent monitor for monitoring the agent.
[0052]
[1-1. Constitution〕
FIG. 1 is a conceptual diagram showing the configuration of the first embodiment. As shown in this figure, the first embodiment includes a system monitor 111 that monitors the entire agent system, a node monitor 113 that monitors the node 112, and an agent monitor 115 that monitors the agent 114. Each of these monitors is started as a process executed on the node, for example.
[0053]
Of these, the system monitor 111 may be provided on any node connected to the network of the agent system. However, the system monitor 111 must be started up on any host (machine) other than the node that can be referred to by the agent system via the network. Is also possible. In this way, the system can be monitored from outside the agent system.
[0054]
In order to reduce the amount of communication with the naming system 119, it is desirable to provide the system monitor 111 on a host where the naming service 119 exists. The naming service (name server) 119 can also be started on any host other than the node that can be referred to by the agent system via the network.
[0055]
The node monitor 113 monitors a specific node, and the same number of node monitors 113 are started up and used for each node in order to monitor a plurality of nodes.
[0056]
The agent monitor 115 also monitors one specific agent, and the same number is used for a plurality of agents. This agent monitor is held as a part of the node monitor 113 by the node monitor 113 of the node where the corresponding agent exists.
[0057]
The system monitor 111, the node monitor 113, and the agent monitor 114 input / output data to / from the user via the system monitor window 116, the node monitor window 117, and the agent monitor window 118, which are corresponding display screens, respectively. And accepts instructions, operations, and various specifications. Each of these monitors 111, 113, and 115 can be directly started individually by the user, or other monitors can be activated with each other.
[0058]
Here, the node monitor 113 is preferably provided on a node to be monitored in terms of the ease of collecting node information, and the information collected by the node monitor 113 is a node monitor window 117 which is a display screen. And an instruction from the user is also given through the node monitor window 117.
[0059]
The node monitor window 117 is mainly responsible for communication between the node monitor 113 located in a remote place and the user. Therefore, as a normal configuration example when monitoring a node from a remote place in this way, the node monitor 113 exists on the node, and the node monitor window 117 is started on the user side machine that monitors this node. The form is considered. Each of the monitoring windows 116 to 118 can be started on an arbitrary host that can be referred to by the agent system via the network.
[0060]
[1-2. Action)
The first embodiment having the above configuration has the following operation. Here, FIG. 2 is a flowchart showing a processing procedure in the first embodiment.
[1-2-1. System monitor operation)
First, when the user first starts up the system monitor 111 (step 6211), the system monitor 111 acquires information on the entire system by communicating with the naming service 119 of the agent system, and displays the acquired information on the display screen. It is displayed on a certain system monitor window 116 (step 6212). The information displayed by the system monitor 111 in this way is specifically a list of what nodes and agents exist in the agent system, for example.
[0061]
By specifying a desired node from this list (step 6213), the user can start (start up) the node monitor 113 that monitors the node (step 6221). Similarly, the user can start an agent monitor 115 that monitors the agent by designating the agent from the list (step 6214) (step 6231). In order to specify a node or an agent, for example, the name can be typed from the keyboard, or the node name or agent name on the list can be double-clicked with the mouse.
[0062]
[1-2-2. Action of node monitor
When the node monitor 113 is started up (step 6221), the node monitor 113 acquires information related to the node 112 by communicating with the corresponding node 112, and displays the acquired information on the node monitor window 117 which is a display screen (step 6222). . The information displayed by the node monitor 113 in this way includes, for example, a list of what agents 114 exist in the corresponding node 112 and an agent log file (hereinafter simply referred to as “log”) remaining in the node 112. ) List.
[0063]
Here, the log is information that records how a specific agent behaves based on the plan for each step of the instructions included in the plan. On the display screen of the node monitor 113, the user can start the agent monitor 115 that monitors the agent by designating a desired agent name by double clicking with the mouse (step 6223) (step 6231). ).
[0064]
Further, the user can confirm the operation of the agent based on the log by designating a desired log on the display screen of the node monitor (step 6224). Specifically, an agent is generated based on the log, and the agent can behave as it is recorded in the log, or the subsequent operation can be continued.
[0065]
[1-2-3. Agent Monitor Action)
The agent monitor 115 acquires information about the agent by communicating with the corresponding agent, and displays the acquired information on the agent monitor window 118 which is a display screen (steps 6232 and 6233). The information displayed by the agent monitor 115 includes, for example, which node the agent is in (step 6232) and an execution state (step 6233) indicating which part of the current plan the agent is executing.
[0066]
[1-2-4. (Breakpoint setting)
The agent monitor 115 has a function of controlling the operation of the agent, and the user sets a breakpoint at a desired part of the agent plan using the agent monitor 115 (step 6234). Execution can be stopped, each instruction included in the plan can be executed one step at a time from the position where it was stopped, or the next breakpoint can be executed.
[0067]
Various types of breakpoints can be set depending on the conditions under which the plan execution is stopped. In addition, for a target to be provided with a breakpoint, for example, a specific line in the plan may be used as a unit, a specific command may be used as a unit, or a specific goal or subgoal may be used as a unit. Furthermore, the types of breakpoints and the setting targets as described above can be freely combined. The breakpoint set in this way is displayed on an agent monitor window 118 that is a display screen of the agent monitor 115.
[0068]
[1-2-5. (Logging point setting)
Further, the user can set a logging point at a desired portion of the corresponding agent plan using the agent monitor 115 in the same manner as a breakpoint. Here, the logging point is a point for controlling the log recording of the agent operation, and is used for designating a start point and an end point for log recording. Similarly to the breakpoint, the logging point can be set by combining various conditions and target units. For example, it is possible to specify not only the range where the log is recorded when executing from where in the plan, but also the condition for recording the log, for example, recording only during the recovery process for the execution failure.
[0069]
When the agent plan is executed, the agent monitor 115 records the agent log file for the condition and target specified by the logging point, and outputs them to the agent monitor window 118 according to the user's request. Further, by using the log file obtained in this way from the node monitor 113, the agent is reproduced in the same state as when the log is taken, and the operation recorded in the log is reproduced, or the destination. The execution of the operation can be continued.
[0070]
[1-2-6. (Process when agent moves)
By the way, when an agent supported by the agent monitor 115 moves to another node (FIG. 3), the node monitor 113 holding the agent monitor 115 discards the agent monitor 115 and moves the agent movement destination. An agent monitor 115 is newly generated in the node monitor 113 corresponding to the node.
[0071]
Even if the agent monitor 115 moves in this way, it is necessary to use the same agent monitor window 118 as a display screen for the user. Therefore, when the agent monitor 115 is discarded due to the movement of the agent, as shown in FIG. 3, the agent monitor window 118 displays on which system monitor 111 the agent monitor 115 corresponding to the same agent is newly generated. Contact The agent monitor window 118 establishes a data link with the newly generated agent monitor 115 based on the answer from the system monitor 111 and displays information sent from the agent monitor 115. The process of transferring the instruction from the user to the agent monitor 115 is continued.
[0072]
[1-3. effect〕
As described above, in the first embodiment, since the entire system, nodes, and agents can be monitored by dedicated monitors, the state of both the entire agent system and each part can be effectively grasped, and management of the agent system Debugging is easy. In particular, in the first embodiment, since other types of monitors can be activated from each monitor, it becomes easy to grasp the state of the agent system from various angles.
[0073]
Further, in the first embodiment, since the operation of the agent can be confirmed by reproduction or the like based on the log file of the desired agent, the operation of each agent can be easily considered. In the first embodiment, when an agent moves between nodes, the agent monitor of the moved agent is discarded at the source node and regenerated at the destination node. Therefore, it is necessary to transmit the agent monitor together with the agent. Therefore, the time and effort required for such transmission are not required.
[0074]
Further, in the first embodiment, it is possible to output which node the agent is in and which part of the plan is executed, so that it is easy to grasp the state of the desired agent. In the first embodiment, since a breakpoint can be set from the agent monitor to the agent, it is possible to easily shift from monitoring of the agent state to debugging, and work efficiency is improved. Further, in the first embodiment, by setting a logging point in the agent plan, it is possible to easily record only a necessary part of the log.
[0075]
[2. Second Embodiment ... Debugging Device]
The second embodiment corresponds to claims 15 to 21 and is a debugging device for debugging an agent system. In the agent system to be debugged by the debugging device, the planner generates an agent plan based on knowledge and action definition, and the agent performs information processing by executing the generated plan.
[0076]
In the second embodiment, the knowledge, action definition, and planner used in such an agent system are examined by checking whether the plan script generated when they are used is correct. It is for debugging the planner. The entire action program executed by the agent is a plan, that is, a script, and the planner is a program that performs a procedure for generating a plan (script) by referring to knowledge and action definitions as data necessary for generating the plan, that is, the script. is there.
[0077]
[2-1. Constitution〕
First, FIG. 4 is a functional block diagram showing the configuration of the second embodiment. As shown in this figure, the second embodiment has a knowledge debugger D and a script tracer T. The knowledge debugger D is means for generating a script S1 for achieving a given goal by using knowledge, action definition, and planner designated as debug targets. The script tracer T is a means for examining the behavior of a given script.
[0078]
Among these, the knowledge debugger D controls the first setting means D1 for setting the debug target, the generation means D2 for generating a script based on the set debug target, and the display of the generated script. Display control means D3.
[0079]
The script tracer T includes a second setting unit T1, an execution control unit T2, and an output control unit T3. Among these, the second setting means T1 is a means for setting a breakpoint for a given script and designating a variable to be monitored. Further, the execution control means T2 is a means for executing a given script in a designated manner, and as such an execution manner, for example, whether to execute one step at a time or to execute all at once can be selected. The execution control means T2 is configured to stop execution of the script at the breakpoint. The output control means T3 is a means for outputting information obtained by executing the script, for example, the value of a designated variable.
[0080]
[2-2. Action)
FIG. 5 shows a debugging procedure using the second embodiment as described above. In the second embodiment, the user can make various settings, give instructions, and refer to information using a GUI (graphical user interface).
[0081]
[2-2-1. (Specify debug target)
First, the user makes necessary edits or modifications to the knowledge, action, and planner to be debugged using a conventional editor or the like (step 7201). Subsequently, the knowledge, action, and planner to be debugged are specified using the first setting means D1 of the knowledge debugger D (step 7202). Specifically, for example, when knowledge, action definitions, and planners can be selected and used from a plurality of candidates, these candidates are displayed on an input / output display screen (dialog), and are used as debugging targets from among them. Select an action definition or planner. It is also possible to specify a target information file as necessary, and read information from the file for debugging. These pieces of selected information are displayed in a predetermined text display field (text box).
[0082]
[2-2-2. (Generate script)
After selecting information to be debugged as described above, the user inputs and sets a desired goal from the dialog. Subsequently, the generation means D2 is activated by clicking a predetermined operation, for example, a GetScript button graphically displayed on the display screen with a mouse. The activated generation means D2 generates a script for achieving the given goal using the selected knowledge, action definition and planner (step 7203), and the generated script is used for predetermined display. Output to the window.
[0083]
[2-2-3. (Subgoal extraction)
The display control means D3 controls how to display the script generated in this way. That is, first, the display control means D3 extracts subgoals included in the generated script (step 7204) and displays them as a subgoal list in a display window different from the script itself. Such a subgoal is expressed using a predetermined command word in the script, for example, subgoal or newgoal. Therefore, in order to extract a subgoal, these command words may be searched from the script. By selecting a desired subgoal G from the subgoals extracted and displayed in this manner (FIG. 4), only a partial script S2 for achieving the subgoal G is generated and output. You can also.
[0084]
[2-2-4. (Hierarchical display of scripts)
Further, the display control means D3 can display the goal and the subgoal, the script corresponding to the goal and the partial script corresponding to the subgoal based on the hierarchical relationship (step 7205). In other words, the relationship between the final goal and the subgoal has a hierarchical relationship in which the final goal is higher and each subgoal for achieving the final subgoal is lower. Therefore, the subscripts corresponding to the lower subgoals and the subgoals are hierarchically managed and displayed in relation to the entire script.
[0085]
For example, after expanding a subgoal into a specific script and displaying it, clicking the Up button to return the display to a higher hierarchy with the mouse will display the entire upper script that contains the expanded subgoal, or this overall You can also go back to the final goal output screen for the correct script. Similarly, when the subgoal script includes a lower subgoal, the lower scripts can be expanded and displayed in a hierarchical manner, or conversely, the screen can be returned to the upper display screen sequentially.
[0086]
Here, a state in which a partial script corresponding to the subgoal in the script is displayed and lower information is displayed based on the subgoal in the displayed script is shown in the conceptual diagram of FIG. If a bug is found as a result of displaying the script in this way (step 7206), it is sufficient to return to the edit / correction of the debug target (step 7201) and start again.
[0087]
[2-2-5. Script trace]
Further, by passing the desired script obtained as described above to the script tracer T, the script can be traced. When tracing the script, the user clicks the Trace button on the display screen with the mouse while the script to be traced is selected by, for example, reverse display. Then, the script tracer T is activated (step 7207), an input / output window for the script tracer T appears, and the passed script is displayed as text.
[0088]
[2-2-6. (Setting breakpoints and variable watch expressions)
On the text display screen, the user can set break points at any desired position using the second setting means T1 (step 7208). In addition, the user uses the second setting means T1 to specify a desired variable among variables used in the script by using a variable watch expression (step 7208). Here, the variable watch expression is an expression that specifies which variable is monitored when the script is executed, and what kind of change is presented to the user when that variable is changed. It is.
[0089]
With such a variable watch expression, for example, a warning can be displayed when the values of two variables are inconsistent, or a specified range of bits within a variable can be displayed in a sequence of 1s and 0s. It can be carried out. Such display specified by the variable watch expression is realized by the output control means T3.
[0090]
[2-2-7. (Run script)
The script in which breakpoints and variable watch expressions are set as described above is executed by the execution control means T2 (step 7209). At this time, the user can execute the script step by step using the execution control means T2, or can execute each step continuously. When executing such a script, the output control means T3 sequentially displays and records the contents of the variable designated by the variable watch expression.
[0091]
Even when each step is executed continuously, the execution control means T2 stops execution at the set breakpoint (step 7209), so the user confirms what the value of each variable is at that time. (Step 7210). Further, when executing one step at a time, it is possible to examine in detail which part of the script is executed in what order and how the value of each variable changes. Also in this case, if a bug is found as a result of confirming the state of the script being executed or the contents of the variable, the work can be started again from editing / correction of the debug target (step 7201).
[0092]
[2-3. effect〕
As described above, in the second embodiment, a script for achieving a given goal is generated and output using a specified debug target, so that the user can perform a desired debug target as intended. You can easily check whether a script has been generated.
[0093]
In the second embodiment, not only the entire script corresponding to the final goal is displayed to determine whether it is correct, but also a partial script corresponding to the desired subgoal can be displayed for detailed examination. , Make the script easier to understand. Further, in the second embodiment, by displaying the goal and subgoal, the script corresponding to the goal and the partial script corresponding to the subgoal based on the hierarchical relationship such as switching between the display of the upper hierarchy and the display of the lower hierarchy, The desired range can be easily confirmed.
[0094]
In the second embodiment, script execution stops at a specified breakpoint, and execution of the script can be freely controlled in a desired manner such as executing step by step or executing to the next breakpoint. Also, since the contents of the specified variable can be examined, it is possible to effectively debug even a complex script.
[0095]
[3. Other Embodiments]
In addition, this invention is not limited to the said embodiment, Other embodiments which are illustrated next are included. For example, in the present invention, the scale, format, number of nodes, etc. of the network can be freely selected, and the type of information processing performed using the agent and the language format for describing the action definition, knowledge, plan, etc. can be freely selected. .
[0096]
In the first embodiment, the specific configurations and information display formats of the system monitor, the node monitor, and the agent monitor are arbitrary, and these monitors and the display screens of the monitors can be configured integrally. Also, a function for starting other monitors from each monitor, a function for handling log files, and a function for setting breakpoints and logging points from the agent monitor are not necessarily required. When the agent moves to another node, it is not always necessary to discard the agent monitor, and the agent monitor may be transferred to the destination together with the agent.
[0097]
Further, in the second embodiment, it is not necessary to limit the debugging target to knowledge, action definition, and planner, and other desired components can be added according to the system configuration. Also, it is not necessary for the user to select all debug targets, and the standard configuration (default) on the system can be selected for targets that are not selected. Further, when the generated script is displayed, the display need not necessarily be hierarchical, and a means for setting a breakpoint in the generated script or executing it in a specified manner is not essential.
[0098]
【The invention's effect】
As described above, according to the present invention, since the behavior of the agent system can be grasped by monitoring each unit, such as the node, the agent, and the like, the management and development of the agent system can be effectively supported. .
[Brief description of the drawings]
FIG. 1 is a functional block diagram showing a configuration of a first embodiment of the present invention.
FIG. 2 is a flowchart showing a processing procedure in the first embodiment of the present invention.
FIG. 3 is a conceptual diagram showing processing when an agent moves between nodes in the first embodiment of the present invention.
FIG. 4 is a functional block diagram showing a configuration of a second embodiment of the present invention.
FIG. 5 is a flowchart showing a processing procedure in the second embodiment of the present invention.
FIG. 6 is a view for explaining hierarchical display in the second embodiment of the present invention.
FIG. 7 is a flowchart showing a configuration example of a conventional agent system.
FIG. 8 is a flowchart showing a configuration example of a conventional agent system that performs planning.
FIG. 9 is a flowchart showing a processing procedure in a conventional agent system.
FIG. 10 is a conceptual diagram showing an example of a plan being generated in the agent system.
FIG. 11 is a conceptual diagram showing an example of a completed plan in the agent system.
FIG. 12 is a flowchart showing a planning procedure in the agent system.
FIG. 13 is a flowchart showing a procedure for moving an agent between nodes in the agent system.
FIG. 14 is a conceptual diagram showing the life cycle of an agent in the agent system.
FIG. 15 is a conceptual diagram showing a state in which a plurality of farms (fields) exist on a node in an agent system.
[Explanation 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 Department
L ... Local machine
R ... Remote machine
N ... Network
111 ... System monitor
112 ... Node
113 ... Node monitor
114 ... Agent
115 ... Agent monitor
116 ... System monitor window
117 ... Node monitor window
118 ... Agent monitor window
119 ... Naming service
D ... Knowledge Debugger
D1 ... Target setting means
D2 ... Generation means
D3: Display control means
T ... Script tracer
T1 ... second setting means
T2: Execution control means
T3: Output control means
S1, S2 ... Script
C ... Condition
P ... operation
S ... State
800N ... Network
800L ... Local node
800R ... Remote node
801: Agent information storage means
802 ... Interpretation execution means
803 ... Input / output means
804 ... Agent management means
STEP ... Procedure steps

Claims (13)

ネットワークに接続された複数のノードを備え、前記複数のノードには、エージェントを生成させ他のノードに移動させるローカルノードと、前記ローカルノードにおいて生成されたエージェントの移動先となるリモートノードが設けられ、ローカルノードからリモートノードに対してエージェントを移動させながら情報処理を行うエージェントシステムのモニタ装置において、
前記ノードまたは前記ネットワークに接続されたノードとは別のコンピュータのいずれかには、エージェントシステム全体を監視するシステムモニタが設けられ、前記各ノードには当該ノードを監視するノードモニタが設けられ、前記各ノードのなかでエージェントが存在するノードには当該ノード上のエージェントを監視するエージェントモニタが設けられ、
前記ノードモニタは、対応するノード上に存在するエージェントを監視するエージェントモニタを保持し、前記エージェントが他のノードへ移動すると前記エージェントモニタを破棄し、エージェントの移動先であるノードを監視しているノードモニタは、移動してきたエージェントを監視するエージェントモニタを生成して保持するように構成されたことを特徴とするエージェントシステムのモニタ装置。
A plurality of nodes connected to a network are provided, and the plurality of nodes are provided with a local node that generates an agent and moves it to another node, and a remote node that is a destination of the agent generated at the local node. In the monitor device of the agent system that performs information processing while moving the agent from the local node to the remote node,
Either a computer other than the node or the node connected to the network is provided with a system monitor for monitoring the entire agent system, and each node is provided with a node monitor for monitoring the node, In each node, an agent monitor that monitors an agent on the node is provided for the node where the agent exists,
The node monitor holds an agent monitor that monitors an agent existing on a corresponding node, and when the agent moves to another node, discards the agent monitor and monitors a node to which the agent is moved The node monitor is configured to generate and hold an agent monitor that monitors an agent that has moved.
前記システムモニタからノードモニタ及びエージェントモニタが起動され、前記ノードモニタからエージェントモニタが起動されることを特徴とする請求項1記載のエージェントシステムのモニタ装置。  The agent monitor according to claim 1, wherein a node monitor and an agent monitor are activated from the system monitor, and an agent monitor is activated from the node monitor. 前記システムモニタは、エージェントシステム内にどのようなノード及びエージェントが存在するかを、前記ノードまたはネットワークに接続されたコンピュータに設けられた表示画面であるシステムモニタウインドウに対して出力し、指定されたノードを監視するノードモニタ又は指定されたエージェントを監視するエージェントモニタのうち少なくとも一方を起動するように構成されたことを特徴とする請求項1又は2記載のエージェントシステムのモニタ装置。  The system monitor outputs to a system monitor window, which is a display screen provided in a computer connected to the node or network, what kind of nodes and agents exist in the agent system, and is designated. 3. The agent system monitoring device according to claim 1, wherein at least one of a node monitor for monitoring a node and an agent monitor for monitoring a specified agent is activated. 前記ノードモニタは、対応するノードにどのようなエージェントが存在するかを、前記ノードに設けられた表示画面であるノードモニタウインドウに出力し、指定されたエージェントを監視するエージェントモニタを起動するように構成されたことを特徴とする請求項1乃至3のいずれか一に記載のエージェントシステムのモニタ装置。  The node monitor outputs what kind of agent exists in the corresponding node to a node monitor window which is a display screen provided in the node, and starts the agent monitor that monitors the specified agent. 4. The agent system monitoring device according to claim 1, wherein the agent system monitoring device is configured. 前記ノードモニタは、対応するノードにエージェントの動作を記録したログファイルとしてどのようなものが存在するかを、前記ノードに設けられた表示画面であるノードモニタウインドウに出力し、指定されたログファイルに基づいてエージェントの動作を確認するように構成されたことを特徴とする請求項1乃至4のいずれか一に記載のエージェントシステムのモニタ装置。  The node monitor outputs to the node monitor window, which is a display screen provided in the node, what kind of log file in which the operation of the agent is recorded in the corresponding node, and the designated log file The agent system monitoring apparatus according to claim 1, wherein the agent system is configured to confirm the operation of the agent based on the agent. 前記エージェントモニタは、対応するエージェントがどのノードにいるか、及び当該エージェントが現在プランのどの部分を実行しているかを、当該エージェントモニタが起動されたノードに設けられたエージェントモニタウインドウに出力するように構成されたことを特徴とする請求項1乃至5のいずれか一に記載のエージェントシステムのモニタ装置。  The agent monitor outputs to the agent monitor window provided in the node where the agent monitor is activated, which node the corresponding agent is on and which part of the plan the agent is currently executing. 6. The agent system monitoring device according to claim 1, wherein the agent system monitoring device is configured. 前記エージェントモニタは、対応するエージェントのプランのうち所望の部分にブレークポイントを設定するように構成されたことを特徴とする請求項1乃至6のいずれか一に記載のエージェントシステムのモニタ装置。  7. The agent system monitoring apparatus according to claim 1, wherein the agent monitor is configured to set a breakpoint at a desired portion of a corresponding agent plan. 前記エージェントモニタは、対応するエージェントのプランのうち所望の部分に、エージェントの動作についてログの記録を制御するためのロギングポイントを設定するように構成されたことを特徴とする請求項1乃至7のいずれか一に記載のエージェントシステムのモニタ装置。  8. The agent monitor according to claim 1, wherein the agent monitor is configured to set a logging point for controlling log recording of an agent operation in a desired portion of a corresponding agent plan. The agent system monitoring device according to any one of the above. ネットワークに接続された複数のノードを備え、前記複数のノードには、エージェントを生成させ他のノードに移動させるローカルノードと、前記ローカルノードにおいて生成されたエージェントの移動先となるリモートノードが設けられ、ローカルノードからリモートノードに対してエージェントを移動させながら情報処理を行うエージェントシステムのモニタ方法において、
前記ノードまたは前記ネットワークに接続されたノードとは別のコンピュータのいずれかには、エージェントシステム全体を監視するシステムモニタが設けられ、前記各ノードには当該ノードを監視するノードモニタが設けられ、前記各ノードのなかでエージェントが存在するノードには当該ノード上のエージェントを監視するエージェントモニタが設けられたモニタ装置を使用して、
前記エージェントを生成して移動させるノードモニタに、対応するノード上に存在するエージェントを監視するエージェントモニタを保持させるステップと、前記エージェントが他のノードへ移動すると前記エージェントモニタを破棄するステップを実行させ、
前記エージェントの移動先であるノードを監視しているノードモニタに、移動してきたエージェントを監視するエージェントモニタを生成して保持するステップを実行させることを特徴とするエージェントシステムのモニタ方法。
A plurality of nodes connected to a network are provided, and the plurality of nodes are provided with a local node that generates an agent and moves it to another node, and a remote node that is a destination of the agent generated at the local node. In the monitoring method of the agent system that performs information processing while moving the agent from the local node to the remote node,
Either a computer other than the node or the node connected to the network is provided with a system monitor for monitoring the entire agent system, and each node is provided with a node monitor for monitoring the node, Using the monitor device provided with the agent monitor that monitors the agent on the node in the node where the agent exists in each node,
Causing the node monitor that generates and moves the agent to retain an agent monitor that monitors an agent existing on the corresponding node; and discards the agent monitor when the agent moves to another node. ,
A method for monitoring an agent system, comprising: causing a node monitor that monitors a node to which the agent is to move to generate and retain an agent monitor that monitors a moved agent.
エージェントシステム全体を監視するシステムモニタは、エージェントシステム内にどのようなノード及びエージェントが存在するかを、前記ノードまたはネットワークに接続されたコンピュータに設けられた表示画面であるシステムモニタウインドウに対して出力するステップと、ノード又はエージェントのうち少なくとも一方を指定するためのステップと、前記ノードモニタまたはエージェントモニタのうち少なくとも一方を起動するステップと、を実行することを特徴とする請求項9記載のエージェントシステムのモニタ方法。  The system monitor that monitors the entire agent system outputs what kind of nodes and agents are present in the agent system to a system monitor window that is a display screen provided in the computer connected to the node or network. 10. The agent system according to claim 9, further comprising: a step of specifying at least one of a node or an agent, and a step of starting at least one of the node monitor or the agent monitor. Monitoring method. 前記ノードモニタは、対応するノードにどのようなエージェントが存在するかを、前記ノードに設けられた表示画面であるノードモニタウインドウに出力するステップと、エージェントを指定するためのステップと、前記エージェントモニタを起動するステップと、を実行することを特徴とする請求項9又は10記載のエージェントシステムのモニタ方法。  The node monitor outputs, to a node monitor window, which is a display screen provided in the node, what kind of agent exists in the corresponding node, a step for designating an agent, and the agent monitor 11. The agent system monitoring method according to claim 9 or 10, wherein the step of activating is executed. 前記エージェントモニタは、対応するエージェントがどのノードにいるか、及び当該エージェントが現在プランのどの部分を実行しているかを、当該エージェントモニタが起動されたノードに設けられたエージェントモニタウインドウに出力するステップを実行することを特徴とする請求項9乃至11のいずれか一に記載のエージェントシステムのモニタ方法。  The agent monitor outputs to the agent monitor window provided in the node where the agent monitor is activated, which node the corresponding agent is on and which part of the plan the agent is currently executing. The agent system monitoring method according to claim 9, wherein the agent system monitoring method is executed. ネットワークに接続された複数のノードを備え、前記複数のノードには、エージェントを生成させ他のノードに移動させるローカルノードと、前記ローカルノードにおいて生成されたエージェントの移動先となるリモートノードが設けられ、ローカルノードからリモートノードに対してエージェントを移動させながら情報処理を行うエージェントシステムを実現させるためのコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記プログラムは、前記ノードまたは前記ネットワークに接続されたノードとは別のコンピュータのいずれかに、エージェントシステム全体を監視するシステムモニタを、前記 各ノードには当該ノードを監視するノードモニタを、前記各ノードのなかでエージェントが存在するノードには当該ノード上のエージェントを監視するエージェントモニタを有するモニタ装置を実現するものであり、
前記エージェントを生成して移動させるノードモニタに、対応するノード上に存在するエージェントを監視するエージェントモニタを保持させるステップと、前記エージェントが他のノードへ移動すると前記エージェントモニタを破棄するステップを実行させ、
前記エージェントの移動先であるノードを監視しているノードモニタに、移動してきたエージェントを監視するエージェントモニタを生成して保持するステップを実行させることを特徴とするエージェントシステムのモニタ用プログラムを記録したコンピュータ読み取り可能な記録媒体。
A plurality of nodes connected to a network are provided, and the plurality of nodes are provided with a local node that generates an agent and moves it to another node, and a remote node that is a destination of the agent generated at the local node. A computer-readable recording medium recording a computer program for realizing an agent system that performs information processing while moving an agent from a local node to a remote node,
The program includes a system monitor for monitoring the entire agent system on either the node or a computer different from the node connected to the network, a node monitor for monitoring the node for each node, A node having an agent among the nodes realizes a monitor device having an agent monitor for monitoring the agent on the node ,
Causing the node monitor that generates and moves the agent to retain an agent monitor that monitors an agent existing on the corresponding node; and discards the agent monitor when the agent moves to another node. ,
A monitoring program for an agent system is recorded, which causes a node monitor that monitors a node to which the agent is moved to execute a step of generating and holding an agent monitor that monitors an agent that has moved Computer-readable recording medium.
JP00323498A 1998-01-09 1998-01-09 Agent system monitoring apparatus, monitoring method, and recording medium recording monitoring program Expired - Fee Related JP3722970B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP00323498A JP3722970B2 (en) 1998-01-09 1998-01-09 Agent system monitoring apparatus, monitoring method, and recording medium recording monitoring program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP00323498A JP3722970B2 (en) 1998-01-09 1998-01-09 Agent system monitoring apparatus, monitoring method, and recording medium recording monitoring program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005156568A Division JP2005293614A (en) 2005-05-30 2005-05-30 Debugging device, debugging method and medium with debugging program recorded

Publications (2)

Publication Number Publication Date
JPH11203140A JPH11203140A (en) 1999-07-30
JP3722970B2 true JP3722970B2 (en) 2005-11-30

Family

ID=11551771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00323498A Expired - Fee Related JP3722970B2 (en) 1998-01-09 1998-01-09 Agent system monitoring apparatus, monitoring method, and recording medium recording monitoring program

Country Status (1)

Country Link
JP (1) JP3722970B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3339482B2 (en) 1999-12-15 2002-10-28 日本電気株式会社 Distributed debugging apparatus, debugging method, and recording medium recording control program

Also Published As

Publication number Publication date
JPH11203140A (en) 1999-07-30

Similar Documents

Publication Publication Date Title
JP3407809B2 (en) Automated test system for computer application software
JP3729640B2 (en) Visual programming device with screen flow
Paiva et al. A model-to-implementation mapping tool for automated model-based GUI testing
US9292413B2 (en) Setting breakpoints in a code debugger used with a GUI object
US20090037814A1 (en) Graphical User Interface (GUI) Script Generation and Documentation
US20080155515A1 (en) Method and System for Graphical User Interface Testing
US20040201627A1 (en) Method and apparatus for analyzing machine control sequences
KR20000064774A (en) Apparatus for generating a shape data, a method for generating the shape data, and a medium thereof
JP2021106000A (en) Executable logic for processing keyed data in networks
JPH09511594A (en) Integrated control system for industrial automation applications
KR20000064773A (en) Apparatus for generating a shape data, a method for generating the shape data, and a medium thereof
US10521331B1 (en) Systems and methods for declarative specification, detection, and evaluation of happened-before relationships
US11474931B2 (en) Debugging a cross-technology and cross-environment execution
CN105308578A (en) Diagnostics of state transitions
JP2001005690A (en) Program test system
KR20000064772A (en) Apparatus for generating a shape data, a method for generating the shape data, and a medium thereof
KR102300005B1 (en) Method and system for assisting software development using connection of graphic objects, each representing a software component
US20020147963A1 (en) Method and apparatus for generating machine control instructions
JP3722970B2 (en) Agent system monitoring apparatus, monitoring method, and recording medium recording monitoring program
Dahn et al. Integrating logical functions with ILF
Saddler et al. EventFlowSlicer: a tool for generating realistic goal-driven GUI tests.
JP2005293614A (en) Debugging device, debugging method and medium with debugging program recorded
Belli et al. Advances in model-based testing of graphical user interfaces
JP3803458B2 (en) Agent monitoring apparatus and method, information processing apparatus and method, and recording medium
Daniel et al. An object oriented approach to CAD tool control

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050811

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050914

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

Free format text: PAYMENT UNTIL: 20080922

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090922

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090922

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120922

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120922

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130922

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees