(57)【特許請求の範囲】
【請求項１】
エージェントを用いて情報を処理するためのエージェントシステムであって、前記エージェントの活動を、前記エージェントシステムと接続された異種エージェ ントシステムに対応した活動に変換することで、前記エージェントに前記異種エージェントシステム上の資源を利用させるエージェントシステムにおいて、
前記エージェントシステムは、１種類以上の前記異種エージェントシステムと接続され、
前記各異種エージェントシステムに関するエージェントの移動及び活動を、当該異種エージェントシステムに対応して変換する各ラッパの構成をそれぞれ表す各ラッパクラスを格納するための手段と、
異種エージェ ントシステムと前記ラッパとの対応関係を表す対応表と、
前記エージェントからの前記異種エージェントシステムへの移動要求を検知するための検知手段と、
前記対応表に基づいて、前記移動要求における移動先である異種エージェントシステムに対応する前記ラッパクラスを取り出すための手段と、
各ラッパ間で共通の予め決められた共通インタフェースを介して、前記移動要求に係るエージェントが持つ情報を渡すことによって、前記ラッパクラスに基づいてラッパを起動するための起動手段と、
を備え、
起動された前記ラッパは、
前記異種エージェントシステムに関するエージェントの移動及び活動を、当該異種エージェントシステムに対応して変換することで、エージェントの動作を代行するように構成され、
移動元のエージェントシステムへエージェントを復帰させる復帰手段を備えたことを特徴とするエージェントシステム。
【請求項２】
複数のノードを備えたコンピュータのネットワーク上に構成され、一部の前記ノード上に前記異種エージェントシステムが構成された請求項１記載のエージェン トシステムにおいて、
どのノードが前記エージェントシステム又は異種エージェントシステムに含まれるかを表す第１のノード情報を格納するための手段と、
前記異種エージェントシステム内の前記各ノードにアクセスするために必要な第２のノード情報を格納するための手段と、
を備え、
前記検知手段は、
前記移動要求における移動先のノードが前記異種エージェントシステムのノードかどうかを前記第１のノード情報に基づいて判断するように構成され、
前記起動手段は、前記共通インタフェースを介して、前記移動先のノードに関する前記第２のノード情報を渡すように構成されたことを特徴とするエージェントシステム。
【請求項３】
前記ラッパは、
当該ラッパの構成に基づいたラップドエージェントを異種エージェントシステムで起動させるためのエージェント起動手段と、
異種エージェントシステム内でエージェントを移動させるための手順を表す異種移動用クラスと、
異種エージェントシステムから移動元のエージェントシステムにエージェントを復帰させるための手順を表す移動元復帰用クラスと、
を備え、
前記ラップドエージェントは、
移動元のエージェントシステムにおけるエージェントの状態を表すエージェント状態情報と、
前記エージェント状態情報に基づいて異種エージェントシステム上でエージェントを活動させるための管理手段と、
前記異種エージェントシステム内でエージェントを移動させるために、前記移動用クラスに基づいて生成された移動手段と、
異種エージェントシステムから移動元のエージェントシステムにエージェントを復帰させるために、前記移動元復帰用クラスに基づいて生成された前記復帰手段と、
を備えたことを特徴とする請求項１又は請求項２記載のエージェントシステム。
【請求項４】
前記ラッパは、
前記移動要求をしたエージェントの持つ情報に基づいて、移動先の異種エージェントシステムでどのような処理を行うべきかを表す起動情報を生成するための手段と、
前記起動情報に基づいて前記異種エージェントシステム上で第２のエージェントを起動するための手段と、
前記第２のエージェントが前記処理を行った結果を前記エージェントシステムに伝えるための手段と、
を備えたことを特徴とする請求項１から３のいずれか１つに記載のエージェントシステム。
【請求項５】
前記ラッパは、
異種エージェントシステムにおける処理のうち予め登録された固有処理を行うための固有処理ハンドラと、
前記固有処理ハンドラが、異種エージェントシステムの機能を呼び出すための機能呼び出し手段と、
を備え、
前記エージェントの移動先のノードは、前記呼び出し手段からの呼び出しを処理するた めの機能呼び出しインタフェースを備え、
前記エージェントの移動元のノードは、前記固有処理ハンドラ、前記機能呼び出し手段及び前記機能呼び出しインタフェースを介して異種エージェントシステムの機能を呼び出すように構成されたことを特徴とする請求項２から４のいずれか１つに記載のエージェントシステム。
【請求項６】
エージェントを用いて情報を処理するための情報処理方法であって、前記エージェントの活動を、前記エージェントシステムと接続された異種エージェントシステムに対応した活動に変換することで、前記エージェントに前記異種エージェントシステム上の資源を利用させる情報処理方法において、
前記エージェントシステムは、１種類以上の前記異種エージェントシステムと接続され、
前記各異種エージェントシステムに関するエージェントの移動及び活動を、当該異種エージェントシステムに対応して変換する各ラッパの構成をそれぞれ表す各ラッパクラスと、
異種エージェントシステムと前記ラッパとの対応関係を表す対応表と、
を予め用意しておき、
前記エージェントからの前記異種エージェントシステムへの移動要求を検知するためのステップと、
前記対応表に基づいて、前記移動要求における移動先である異種エージェントシステムに対応する前記ラッパクラスを取り出すためのステップと、
各ラッパ間で共通の予め決められた共通インタフェースを介して、前記移動要求に係るエージェントが持つ情報を渡すことによって、前記ラッパクラスに基づいてラッパを起動するためのステップと、
を含み、
起動された前記ラッパは、
前記異種エージェントシステムに関するエージェントの移動及び活動を、当該異種エージェントシステムに対応して変換することで、エージェントの動作を代行するとともに、移動元のエージェントシステムへエージェントを復帰させることを特徴とする情報処理方法。
【請求項７】
前記ラッパにおいて、
前記移動要求をしたエージェントの持つ情報に基づいて、移動先の異種エージェントシステムでどのような処理を行うべきかを表す起動情報を生成するためのステップと、
前記起動情報に基づいて前記異種エージェントシステム上で第２のエージェントを起動するためのステップと、
前記第２のエージェントが前記処理を行った結果を前記エージェントシステムに伝えるためのステップと、
を含むことを特徴とする請求項６記載の情報処理方法。
【請求項８】
コンピュータを使って、エージェントによる情報処理を行うための情報処理用ソフトウェアを記録した記録媒体であって、そのソフトウェアは前記コンピュータに、前記エージェントの活動を、前記エージェントシステムと接続された異種エージェントシステムに対応した活動に変換することで、前記エージェントに前記異種エージェントシステム上の資源を利用させる情報処理用ソフトウェアを記録した記録媒体において、
前記エージェントシステムは、１種類以上の前記異種エージェントシステムと接続され、
前記ソフトウェアは前記コンピュータに、
前記各異種エージェントシステムに関するエージェントの移動及び活動を、当該異種エージェントシステムに対応して変換する各ラッパの構成をそれぞれ表す各ラッパクラスと、
異種エージェントシステムと前記ラッパとの対応関係を表す対応表と、
を予め用意しておき、
前記エージェントからの前記異種エージェントシステムへの移動要求を検知させ、
前記対応表に基づいて、前記移動要求における移動先である異種エージェントシステムに対応する前記ラッパクラスを取り出させ、
各ラッパ間で共通の予め決められた共通インタフェースを介して、 前記移動要求に係るエージェントが持つ情報を渡すことによって、前記ラッパクラスに基づいてラッパを起動させ、
起動された前記ラッパは、
前記異種エージェントシステムに関するエージェントの移動及び活動を、当該異種エージェントシステムに対応して変換することで、エージェントの動作を代行するとともに、移動元のエージェントシステムへエージェントを復帰させることを特徴とする情報処理用ソフトウェアを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク上に分散して存在する情報をエージェントを用いて処理する技術の改良に関するもので、特に、エージェントが異種のエージェントシステム上の資源を容易に利用できるようにしたものである。
【０００２】
【従来の技術】
従来から、コンピュータのネットワーク上に分散した情報を処理する技術として、エージェントシステムが知られている。エージェントとは、ソフトウェア上の処理単位であり、周囲の状況に応じて自律的に動作するものである。エージェントシステムは、このようなエージェントが、ネットワークを構成するノード上を必要に応じて移動しながら情報収集などの処理を行うシステムである。
【０００３】
このようなエージェントシステムでは、あるノード上の資源を利用する場合、典型的には、エージェントがそのノードへ移動して、その資源にアクセスする。ここで、ノードとは、ネットワークを構成する論理的な単位であり、一つのマシンすなわちコンピュータ上に複数存在し得る。
【０００４】
現在までに、このようなエージェントシステムとしては、様々な形態のものが実現されている。これらのエージェントシステムはそれぞれ、独自の言語体系や移動方式を備えており、あるエージェントシステム上に存在するエージェントは、同種のエージェントシステム上には移動できるが、従来では、種類の異なるエージェントシステム（異種エージェントシステムと呼ぶ）間でエージェントを移動させることは不可能であった。
【０００５】
ここで、ネットワーク上のエージェントＡ０が、従来技術に基づいて異種エージェントシステム上の資源を利用しようとする場合の一例として、図９の機能ブロック図に示すような構成例が考えられる。すなわち、この例では、エージェントシステムＡのエージェントＡ０が、エージェントシステムＢ上の資源を利用したい場合、エージェントシステムＢに対して、そのエージェントシステムＢからネットワーク的に近い位置にある、エージェントＡ０が移動できるエージェントシステムを問い合わせる。これに対して、エージェントシステムＢがその回答として「エージェントシステムＣ」を示したならば、エージェントＡ０はエージェントシステムＣに移動し、エージェントＡ０に備えられた通信手段を用いて、エージェントシステムＢの資源にアクセスする。
【０００６】
また、図９の構成例では、各エージェントシステムやエージェントについて位置や種類といった情報を保持するディレクトリサーバＳがネットワークＮ０に接続されており、ネットワークＮ０上からは、エージェントなどがこのディレクトリサーバＳに問い合わせることで、そのようなエージェントやエージェントシステムの位置や種類などの情報を得ることができる。
【０００７】
【発明が解決しようとする課題】
ところで、エージェントが通信に用いるプロトコルなどを含む通信手段は、エージェントシステムごとに異なる。このため、上記のような例の場合、エージェントＡ０がエージェントシステムＢの資源にアクセスするためには、通信先のエージェントシステムＢに対応した通信手段が必要である。すなわち、従来では、エージェントは通信先のエージェントシステムがどのエージェントシステムであるかを意識して通信手段を使い分ける必要があった。
【０００８】
そのため、上記のような例では、エージェントＡ０があるノード、例えばエージェントシステムＣのあるノードに移動しても、そのノードの資源にアクセスする手段と同じ手段で例えばエージェントシステムＢが持っている資源にアクセスすることはできず、上のような例でも、エージェントＡ０が異種エージェントシステムに移動しているとみなすことはできない。なお、あるエージェントにとって「異種」エージェントシステムとは、そのエージェントが生成され活動している本来のエージェントシステムとは異なった通信手段などを用いる異なった種類のエージェントシステムである。
【０００９】
特に、従来では、エージェントとエージェントシステム間の通信手段を実現する汎用的なしくみは存在しなかったため、資源の利用や移動の対象となる相手先のエージェントシステムに合わせてそれぞれ独自の通信手段を作成し、資源を利用したり移動する側のエージェントに予め与えておく必要があるが、これは煩雑かつ困難であった。
【００１０】
また、図９に例示したようなディレクトリサーバは、エージェントおよびエージェントシステムの場所など、限られた情報しか管理していない。そのため、異種エージェントシステム間の通信手段などは、別途改めて管理する必要があり、これも煩雑かつ困難であった。
【００１１】
本発明は、上記のような従来技術の問題点を解決するために提案されたもので、その目的は、エージェントが異種エージェントシステム上の資源を容易に利用できるエージェントの技術、すなわちエージェントシステム、情報処理方法及び情報処理用ソフトウェアを記録した記録媒体を提供することである。また、本発明の他の目的は、エージェントが異種のエージェントシステム上の資源を利用する場合に、相手先のエージェントシステムの種類を意識せず、同種エージェントシステム内のノードを移動してノード内の資源にアクセスする場合と同様に利用できるエージェントの技術を提供することである。
【００１２】
また、本発明の他の目的は、ディレクトリサーバ内で異種エージェントシステム間の通信手段を管理することで、各エージェントで通信手段を管理する必要をなくし、異種エージェントシステムとの通信を容易にすることである。また、本発明の他の目的は、新たな異種エージェントシステムへの対応が容易なエージェントの技術を提供することである。また、本発明の他の目的は、情報転送といった通信の負担が少ないエージェントの技術を提供することである。
【００１３】
【課題を解決するための手段】
上記の目的を達成するため、請求項１の発明は、エージェントを用いて情報を処理するためのエージェントシステムであって、前記エージェントの活動を、前記エージェントシステムと接続された異種エージェ ントシステムに対応した活動に変換することで、前記エージェントに前記異種エージェントシステム上の資源を利用させるエージェントシステムにおいて、前記エージェントシステムは、１種類以上の前記異種エージェントシステムと接続され、前記各異種エージェントシステムに関するエージェントの移動及び活動を、当該異種エージェントシステムに対応して変換する各ラッパの構成をそれぞれ表す各ラッパクラスを格納するための手段と、異種エージェントシステムと前記ラッパとの対応関係を表す対応表と、前記エージェントからの前記異種エージェントシステムへの移動要求を検知するための検知手段と、前記対応表に基づいて、前記移動要求における移動先である異種エージェントシステムに対応する前記ラッパクラスを取り出すための手段と、各ラッパ間で共通の予め決められた共通インタフェースを介して、前記移動要求に係るエージェントが持つ情報を渡すことによって、前記ラッパクラスに基づいてラッパを起動するための起動手段と、を備え、起動された前記ラッパは、前記異種エージェントシステムに関するエージェントの移動及び活動を、当該異種エージェントシステム に対応して変換することで、エージェントの動作を代行するように構成され、移動元のエージェントシステムへエージェントを復帰させる復帰手段を備えたことを特徴とする。
請求項６の発明は、請求項１の発明を方法という見方からとらえたもので、エージェントを用いて情報を処理するための情報処理方法であって、前記エージェントの活動を、前記エージェントシステムと接続された異種エージェントシステムに対応した活動に変換することで、前記エージェントに前記異種エージェントシステム上の資源を利用させる情報処理方法において、前記エージェントシステムは、１種類以上の前記異種エージェントシステムと接続され、前記各異種エージェントシステムに関するエージェントの移動及び活動を、当該異種エージェントシステムに対応して変換する各ラッパの構成をそれぞれ表す各ラッパクラスと、異種エージェントシステムと前記ラッパとの対応関係を表す対応表と、を予め用意しておき、前記エージェントからの前記異種エージェントシステムへの移動要求を検知するためのステップと、前記対応表に基づいて、前記移動要求における移動先である異種エージェントシステムに対応する前記ラッパクラスを取り出すためのステップと、各ラッパ間で共通の予め決められた共通インタフェースを介して、前記移動要求に係るエージェントが持つ情報を渡すことによって、前記ラッパクラスに基づいてラッパを起動するためのステップと、を含み、起動された前記ラッパは、前記異種エージェントシステム に関するエージェントの移動及び活動を、当該異種エージェントシステムに対応して変換することで、エージェントの動作を代行するとともに、移動元のエージェントシステムへエージェントを復帰させることを特徴とする。
請求項８の発明は、請求項１，６の発明を、コンピュータのソフトウェアを記録した記録媒体という見方からとらえたもので、コンピュータを使って、エージェントによる情報処理を行うための情報処理用ソフトウェアを記録した記録媒体であって、そのソフトウェアは前記コンピュータに、前記エージェントの活動を、前記エージェントシステムと接続された異種エージェントシステムに対応した活動に変換することで、前記エージェントに前記異種エージェントシステム上の資源を利用させる情報処理用ソフトウェアを記録した記録媒体において、前記エージェントシステムは、１種類以上の前記異種エージェントシステムと接続され、前記ソフトウェアは前記コンピュータに、前記各異種エージェントシステムに関するエージェントの移動及び活動を、当該異種エージェントシステムに対応して変換する各ラッパの構成をそれぞれ表す各ラッパクラスと、異種エージェントシステムと前記ラッパとの対応関係を表す対応表と、を予め用意しておき、前記エージェントからの前記異種エージェントシステムへの移動要求を検知させ、前記対応表に基づいて、前記移動要求における移動先である異種エージェントシステムに対応する前記ラッパクラスを取り出させ、各ラッパ間で共通の予め決められた共通インタフェースを介して、 前記移動要求に係るエージェントが持つ情報を渡すことによって、前記ラッパクラスに基づいてラッパを起動させ、起動された前記ラッパは、前記異種エージェントシステムに関するエージェントの移動及び活動を、当該異種エージェントシステムに対応して変換することで、エージェントの動作を代行するとともに、移動元のエージェントシステムへエージェントを復帰させることを特徴とする。
【００１４】
以上のような請求項１，６，８の発明では、エージェントの活動が、異種エージェントシステムに対応した 活動に変換されるので、エージェントは、本来のエージェントシステム上と同じ手順で、異種エージェントシステム上の資源を容易に利用することが可能となる。
特に、エージェントが異種エージェントシステムへ移動して活動しようとする場合、エージェントが自分を生成したエージェントシステム内と同様の手順で行う移動や活動が、ラッパによって、異種エージェントシステム固有の手順や処理などに変換して代行される。このため、エージェントは、本来のエージェントシステム上の資源にアクセスする形式と同じ形式で、異種エージェントシステム上の資源にアクセスすることができる。これにより、エージェントは、同種のエージェントシステム内と同様に、異種エージェントシステムのノードへも移動して動作するように振る舞うことが可能になり、エージェントのスクリプトの記述といった構成が容易になる。また、ラッパとエージェント間は共通のインタフェースを用いるため、新たなラッパを作成した際に、エージェントに変更を加える必要がない。
さらに、異種エージェントシステムでの移動や処理の失敗時には、復帰手段によって移動元ノードへ移動して処理を継続するため、エージェントシステム間の差異により発生する障害にも対処できる。
【００１５】
請求項２の発明は、複数のノードを備えたコンピュータのネットワーク上に構成され、前記異種エージェントシステム上に前記ノードが構成された請求項１記載 のエージェントシステムにおいて、どのノードが前記エージェントシステム又は異種エージェントシステムに含まれるかを表す第１のノード情報を格納するための手段と、前記異種エージェントシステム内の前記各ノードにアクセスするために必要な第２のノード情報を格納するための手段と、を備え、前記検知手段は、前記移動要求における移動先のノードが前記異種エージェントシステムのノードかどうかを前記第１のノード情報に基づいて判断するように構成され、前記起動手段は、前記共通インタフェースを介して、前記移動先のノードに関する前記第２のノード情報を渡すように構成されたことを特徴とする。
請求項２の発明で は、移動先のノードが異種エージェントシステムのノードかどうかを第１のノード情報から容易に判断でき、また、前記異種エージェントシステム内のノードにアクセスするために必要な第２のノード情報、例えばサーバ名、ＩＰアドレス、ポート番号、通信プロトコルの種類、認証情報などがラッパの起動の際にラッパに与えられるので、ラッパがそれらノードに対応した通信手段によって異種エージェントシステムに円滑にアクセスすることができる。
【００１６】
請求項３の発明は、請求項１又は２記載のエージェントシステムにおいて、前記ラッパは、当該ラッパの構成に基づいたラップドエージェントを異種エージェントシステムで起動させるためのエージェント起動手段と、異種エージェントシステム内でエージェントを移動させるための手順を表す異種移動用クラスと、異種エージェントシステムから移動元のエージェントシステムにエージェントを復帰させるための手順を表す移動元復帰用クラスと、を備え、前記ラップドエージェントは、移動元のエージェントシステムにおけるエージェントの状態を表すエージェント状態情報と、前記エージェント状態情報に基づいて異種エージェントシステム上でエージェントを活動させるための管理手段と、前記異種エージェントシステム内でエージェントを移動させるために、前記移動用クラスに基づいて生成された移動手段と、異種エージェントシステムから移動元のエージェントシステムにエージェントを復帰させるために、前記移動元復帰用クラスに基づいて生成された前記復帰手段と、を備えたことを特徴とする。
請求項３の発明では、エージェントの起動、移動、移動元への復帰の手順といった移動先の異種エージェントシステムごとに異なる部分を、ラッパの持つエージェント起動手段と各クラスの構成としてまとめて表しておく。一方、エージェントを実行する管理手段は異種エージェントシステムごとに異ならないので、ラッパとは別に共通のクラスとして表しておく。そして、異種エージェントシステムへの移動時には、ラッパが、各クラスとエージェント起動手段によってラップドエージェントを起動して異種エージェントシステム上で動作させる。このため、移動先となる異種エージェントシステムの種類が増えた場合でも、主に各クラスだけを変更するための少ない手間で対応することができる。また、この場合、管理手段を変更する場合でも、前記各クラスに基づいて生成される移動手段及びエージェント起動手段に接続する部分のみを拡張するだけで済むので、新たなラッパを容易に作成することができる。また、異種エージェントシステムでの移動や処理の失敗時には、復帰手段によって移動元ノードへ移動して処理を継続するため、エージェントシステム間の差異により発生する障害にも対処できる。
【００１７】
請求項４の発明は、請求項１から３のいずれか１つに記載のエージェントシス テムにおいて、前記ラッパは、前記移動要求をしたエージェントの持つ情報に基づいて、移動先の異種エージェントシステムでどのような処理を行うべきかを表す起動情報を生成するための手段と、前記起動情報に基づいて前記異種エージェントシステム上で第２のエージェントを起動するための手段と、前記第２のエージェントが前記処理を行った結果を前記エージェントシステムに伝えるための手段と、を備えたことを特徴とする。
請求項７の発明は、請求項４の発明を方法という見方からとらえたもので、請求項６記載の情報処理方法において、前記ラッパにおいて、前記移動要求をしたエージェントの持つ情報に基づいて、移動先の異種エージェントシステムでどのような処理を行うべきかを表す起動情報を生成するためのステップと、前記起動情報に基づいて前記異種エージェントシステム上で第２のエージェントを起動するためのステップと、前記第２のエージェントが前記処理を行った結果を前記エージェントシステムに伝えるためのステップと、を含むことを特徴とする。
請求項４，７の発明では、エージェントのスクリプトを解釈実行するためのオブジェクトを、移動先の異種エージェントシステムが受け入れることができないような場合でも、移動先で処理したい内容を表す起動情報に基づいて移動先で第２のエージェントを起動して活動させ、その結果を回収することでエージェントの移動を実現することができる。特に、この発明では、エージェントのスクリプトなどの情報をまるごと移動先に転送する必要がな く、起動情報と処理結果だけをやりとりすれば足りるので、通信量が削減できる。
【００１８】
請求項５の発明は、請求項２から４のいずれか１つに記載のエージェントシステムにおいて、前記ラッパは、異種エージェントシステムにおける処理のうち予め登録された固有処理を行うための固有処理ハンドラと、前記固有処理ハンドラが、異種エージェントシステムの機能を呼び出すための機能呼び出し手段と、を備え、前記エージェントの移動先のノードは、前記呼び出し手段からの呼び出しを処理するための機能呼び出しインタフェースを備え、前記エージェントの移動元のノードは、前記固有処理ハンドラ、前記機能呼び出し手段及び前記機能呼び出しインタフェースを介して異種エージェントシステムの機能を呼び出すように構成されたことを特徴とする。
請求項５の発明では、 移動先エージェントシステム内で行わなければならない処理を移動元エージェントシステム内において代行し、必要に応じて移動先エージェントシステムの機能を呼び出すことにより、エージェントやその情報をノード間で転送するための負担が軽減される。また、移動先のエージェントシステムは、外部からの機能呼び出し部のみを備えていればよいので、より多くのエージェントシステム間をこの構成で接続することができる。
【００１９】
【発明の実施の形態】
以下、本発明の複数の実施の形態（以下「実施形態」という）について図面を参照しながら説明する。なお、本発明は、周辺機器を持つコンピュータを、ソフトウェアで制御することによって実現されることが一般的と考えられる。この場合、そのソフトウェアは、この明細書の記載にしたがった命令を組み合わせることで作られ、上に述べた従来技術と共通の部分には従来技術で説明した手法も使われる。また、そのソフトウェアは、プログラムコードだけでなく、プログラムコードの実行のときに使うために予め用意されたデータも含む。
【００２０】
そして、そのソフトウェアは、ＣＰＵ、コプロセッサ、各種チップセットといった処理装置、キーボードやマウスといった入力装置、メモリやハードディスク装置といった記憶装置、ディスプレイやプリンタといった出力装置などの物理的な資源を活用することで本発明の作用効果を実現する。
【００２１】
但し、本発明を実現する具体的なソフトウェアやハードウェアの構成はいろいろ変更することができる。例えば、ソフトウェアの形式には、コンパイラ、インタプリタ、アセンブラなどいろいろあり、外部との情報をやり取りするにも、フロッピーディスクなどの着脱可能な記録媒体、ネットワーク接続装置などいろいろ考えられる。また、本発明を実現するソフトウェアやプログラムを記録したＣＤ−ＲＯＭのような記録媒体は、単独でも本発明の一態様である。さらに、本発明の機能の一部をＬＳＩなどの物理的な電子回路で実現することも可能である。
【００２２】
以上のように、コンピュータを使って本発明を実現する態様はいろいろ考えられるので、以下では、本発明や実施形態に含まれる個々の機能を実現する仮想的回路ブロックを使って、本発明と実施形態とを説明する。
【００２３】
〔１．第１実施形態〕
第１実施形態は、エージェントが異種エージェントシステム上の資源を容易に 利用できるようにし、また、異種エージェントシステムとの通信手段を実現するために必要な情報をディレクトリサーバで管理するようにしたものである。
【００２４】
〔１−１．第１実施形態の構成〕
まず、図１は、第１実施形態の構成を示す機能ブロック図である。すなわち、第１実施形態におけるエージェントシステム（以下エージェントシステムＡＳと表す）は、エージェントの活動の場となるノードＣと、エージェントやノードの情報を保存して管理するディレクトリサーバＳと、ネットワークＮで接続したものである。
【００２５】
また、このネットワークＮには、エージェントシステムＡＳとは異なる、異種エージェントシステム（以下、異種エージェントシステムＢＳと表す）が接続されている。このエージェントシステムＢＳは、エージェントシステムＡＳに接続することができる複数の異種エージェントシステムの１つを代表するもので、外部からエージェントシステムＢＳへアクセスするための、外部通信手段ＢＳ１を備えている。
【００２６】
また、ノードＣは、エージェントが異種エージェントシステムへ移動する際に利用するラッパクラスを格納するためのラッパクラス格納部１を備えている。ここで、第１実施形態では、エージェントＡが異種エージェントシステム上の資源を利用できるようにするため、エージェントＡの移動先となる異種エージェントシステムによって異なるラッパを用いる。このラッパは各異種エージェントシステムに関するエージェントＡの移動及び活動を、当該異種エージェントシステムに対応して変換する手段であり、ラッパクラスは、各ラッパの構成をそれぞれ表す情報である。
【００２７】
すなわち、このラッパクラスは、エージェントＡが自己を生成したエージェントシステムＡＳに合わせて持っている移動や通信のプロトコルといった振る舞いを、移動や通信先の異種エージェントシステムに合わせて変換するためのひな型となる情報である。
【００２８】
例えば、ノードＣ上のエージェントＡが実際に異種エージェントシステムＢＳに対して移動や通信を行うときは、ひな型であるラッパクラスに基づいて、ラッパＷが生成される。
【００２９】
すなわち、ノードＣは、移動要求検知部２と、検索部３と、起動部４と、を備えている。また、ディレクトリサーバＳは、対応表Ｓ１と、同種ノード情報格納部Ｓ２と、異種ノード情報格納部Ｓ３と、を備えている。
【００３０】
このうち対応表Ｓ１は、エージェントがある異種エージェントシステムへ移動したい場合、どのラッパ又はラッパクラスを用いればよいかの対応関係を表す情報である。また、移動要求検知部２は、エージェントＡからの異種エージェントシステムへの移動要求を検知するための検知手段である。
【００３１】
また、検索部３は、対応表Ｓ１に基づいて、前記移動要求における移動先である異種エージェントシステムに対応する前記ラッパクラスを取り出すための手段である。また、起動部４は、各ラッパＷ間で共通の予め決められた共通インタフェースＩを介して、前記移動要求に係るエージェントが持つ情報を渡すことによって、ラッパクラスに基づいてラッパを起動するための起動手段である。
【００３２】
また、同種ノード情報格納部Ｓ２は、どのノードがエージェントシステム又は異種エージェントシステムＢＳに含まれるかを表す第１のノード情報（同種ノード情報と呼ぶ）を格納するための手段である。また、異種ノード情報格納部Ｓ３は、異種エージェントシステム内の各ノードにアクセスするために必要な第２のノード情報（異種ノード情報と呼ぶ）を格納するための手段である。ここで、異種ノード情報の例としては、例えばサーバ名、ＩＰアドレス、ポート番号、通信プロトコルの種類、認証情報などが考えられる。
【００３３】
また、ラッパクラスは、個々の異種エージェントシステムごとに別個独立に構成することも、複数の異種エージェントシステムに対応する複数のものを一体に構成することもできるが、どのラッパクラスについてもすべて、エージェントの側からは、クラスに基づいて生成されたラッパＷに、予め決められた共通インタフェースＩを通じてアクセスできるように構成されている。
【００３４】
なお、ラッパクラス格納部１と、移動要求検知部２と、検索部３と、起動部４と、対応表Ｓ１と、同種ノード情報格納部Ｓ２と、異種ノード情報格納部Ｓ３と、ラッパＷと、共通インタフェースＩと、は、エージェントＡの活動を、第１実施形態のエージェントシステムと接続された異種エージェントシステムに対応した活動に変換することで、エージェントＡに前記異種エージェントシステム上の資源を利用させるための手段を構成している。
【００３５】
〔１−２．第１実施形態の作用〕
上記のように構成された第１実施形態は、次のように作用する。例えば、エージェントシステムＡＳ内のエージェントＡがエージェントシステムＢＳに移動する場合の処理を、図２のフローチャートに示す。まず、エージェントは、エージェントが行うべき動作の内容を、スクリプトの形で保持している。このスクリプトは、エージェントの行うコマンドの列および制御構文から構成されている。そして、エージェントは、図示しないインタプリタ機構を使って、スクリプト中のコマンドを制御構文にしたがって動作させるように構成されている。また、スクリプト中のコマンドには、エージェントが備える機能を起動するコマンドや、エージェントが外部とアクセスするためのコマンドなどがある。
【００３６】
このようなエージェントは、これらコマンドの一種である「ｇｏｔｏコマンド」によって、他のノードに移動する。すなわち、エージェントがこのｇｏｔｏコマンドを実行すると（ステップ２０１）、移動要求検知部２が、まずｇｏｔｏコマンドのパラメータとして指定されている移動先が、同種エージェントシステム内のノードであるか、それ以外であるかを、ディレクトリサーバＳ内の同種ノード情報を参照することによって判別する（ステップ２０３）。
【００３７】
このとき、移動先が同種エージェントシステムＡＳ内のノードである場合は、同種エージェントシステムＡＳ内での移動処理が行われるが（ステップ２０４）、この移動処理はエージェントＡとこれを生成したエージェントシステムＡＳが本来持っている情報転送などの機能に基づいて行われ、クラスＣやラッパＷは必要とされない。
【００３８】
一方、移動先について、異種エージェントシステムＢＳへの移動であった場合、検索部３が、その異種エージェントシステムＢＳに対応するラッパのラッパクラスがどれであるかを、ディレクトリサーバＳの対応表Ｓ１に基づいて検索する（ステップ２０５）。
【００３９】
そして、エージェントＡは、起動部４に指示を送ることで、異種エージェントシステムＢＳに対応するラッパＷを、そのラッパクラスに基づいて生成し、生成したラッパＷに、共通インタフェースＩを通じてアクセスし（ステップ２０６）、エージェントＡが移動する際に必要となる情報をラッパＷに渡し、ラッパＷを起動する（ステップ２０７）。
【００４０】
ここで、ラッパＷに渡す情報としては、エージェントＡのスクリプトやスクリプトのプログラムカウンタ、エージェントＡの各種プロパティ、エージェントＡの持ち歩くオブジェクトなどがある。また、起動部４は、ラッパＷに、移動先である異種エージェントシステムＢＳにラッパＷが接続する際に必要となる異種ノード情報もあわせて渡すが、この異種ノード情報は、ディレクトリサーバＳ内の異種ノード情報格納部Ｓ３を参照することによって得ることができる。
【００４１】
このようにして起動されたラッパＷは、異種エージェントシステムＢＳに関するエージェントＡの移動及び活動を、当該異種エージェントシステムＢＳに対応して変換することで、エージェントＡの動作を代行するとともに、移動元のエージェントシステムＡＳへエージェントＡを復帰させるように構成されたものである。
【００４２】
すなわち、起動されたラッパＷは、エージェントＡが移動元エージェントシステムＡＳに復帰するまで、エージェントＡの動作を代行する（ステップ２０８）。具体的には、ラッパＷが、エージェントＡから与えられたスクリプトの解釈を行い、移動先の異種エージェントシステムＢＳにアクセスする必要がある場合は、異種エージェントシステムＢＳ特有の外部通信手段ＢＳ１を用いて通信を行う。
【００４３】
そして、エージェントＡに代わって移動元エージェントシステムＡＳへの移動コマンドを実行する場合などに、ラッパＷはエージェントＡに対して、それまで得られた情報などを渡すことでエージェントＡを移動元エージェントＡＳにおける活動状態に復帰させる（ステップ２０９）。このときは、ラッパＷは具体的には、異種エージェントシステムＢＳ内で行われた処理内容を継続するエージェントＡを移動元エージェントシステムＡＳ内で起動することになる。
【００４４】
なお、エージェントＡやラッパＷが上記のスクリプトを実行する際、移動処理を行うｇｏｔｏコマンド以外のコマンドについては（ステップ２０１）、それぞれのコマンドに対応して、移動処理以外の処理が行われる（ステップ２０２）。
【００４５】
〔１−３．第１実施形態の効果〕
上記のような第１実施形態では、エージェントＡの活動が、異種エージェントシステムＢＳに対応した活動に変換されるので、エージェントＡは、本来のエージェントシステムＡＳ上と同じ手順で、異種エージェントシステムＢＳ上の資源を容易に利用することが可能となる。
【００４６】
特に、第１実施形態では、エージェントＡが異種エージェントシステムＢＳへ移動して活動しようとする場合、エージェントＡが自分を生成したエージェントシステムＡＳ内と同様の手順で行う移動や活動が、ラッパＷによって、異種エージェントシステムＢＳ固有の手順や処理などに変換して代行される。このため、エージェントＡは、本来のエージェントシステムＡＳ上の資源にアクセスする形式と同じ形式で、異種エージェントシステムＢＳ上の資源にアクセスすることができる。
【００４７】
これにより、エージェントＡは、同種のエージェントシステムＡＳ内と同様に、異種エージェントシステムＢＳのノードへも移動して動作するように振る舞うことが可能になり、エージェントＡのスクリプトの記述といった構成が容易になる。また、ラッパＷとエージェントＡ間は共通のインタフェースＩを用いるため、新たなラッパＷを作成した際に、エージェントＡに変更を加える必要がない。
【００４８】
また、第１実施形態では、移動先のノードが異種エージェントシステムＢＳのノードかどうかをディレクトリサーバＳの同種ノード情報格納部Ｓ２に格納された同種ノード情報から容易に判断でき、また、異種エージェントシステムＢＳ内のノードにアクセスするために必要な異種ノード情報、例えばサーバ名、ＩＰアドレス、ポート番号、通信プロトコルの種類、認証情報などがラッパＷの起動の際にラッパＷに与えられるので、ラッパＷがそれらノードに対応した通信手段によって異種エージェントシステムＢＳに円滑にアクセスすることができる。
【００４９】
〔１−４．ラッパの構成について〕
ところで、上記のラッパは、移動元のエージェントシステムと、移動先の異種エージェントシステムの組み合わせに応じて、異なった構成で実現される。
【００５０】
例えば、移動元のエージェントシステムにおいて、エージェントの生成・消滅や各種動作を実現するエージェント管理手段と、エージェントとが、Ｊａｖａオブジェクトで構成されており、移動先のエージェントシステムもＪａｖａオブジェクトで構成されたエージェントを受け付ける仕組みを備えている場合、移動元のエージェントシステムのエージェント管理手段およびエージェントのＪａｖａオブジェクトをエージェントとして移動先のエージェントシステムに送りこみ、動作させることで、ラッパの機能を実現することができる。ここで、このようなラッパの構成をラッパ構成１と呼ぶこととする。
【００５１】
また、エージェントが移動先の異種エージェントシステムで行う処理の内容を、ラッパが、移動先の異種エージェントシステムが解釈可能な形に変換できる場合は、ラッパがその変換を行い、変換した形式で移動先の異種エージェントシステムに処理を依頼するという形で、ラッパの機能を実現することができる。ここで、このようなラッパの構成をラッパ構成２と呼ぶこととする。
【００５２】
さらに、上記のような構成で実現できない場合は、移動元エージェントシステム内でラッパを動作させ、必要に応じて移動先の異種エージェントシステムと通信を行うという形でラッパの機能を実現することができる。ここで、このようなラッパの構成ををラッパ構成３と呼ぶこととする。以上ラッパ構成１から３それぞれの具体例について、以下の第２実施形態から第４実施形態に順次示す。
【００５３】
〔２．第２実施形態〕
〔２−１．第２実施形態の構成〕
第２実施形態は、前記ラッパ構成１の一例であり、図３は、第２実施形態におけるラッパの構成を示す機能ブロック図である。すなわち、第２実施形態においては、外部通信手段ＢＳ２がエージェント起動部Ｂ３を備え、このエージェント起動部Ｂ３は、異種エージェントシステム上でエージェントを起動するための手段である。
【００５４】
また、ノードＸは、移動用管理部クラスＸＣ１と、エージェント起動部Ｘ２と、を備え、このうち移動用管理部クラスＸＣ１は、移動先の異種エージェントシステムのノードにおいてスクリプトの実行などによってエージェントを活動させるための手順を表す情報であり、エージェント起動部Ｘ２は、移動元のエージェントシステム上のノードにおいて、エージェントを復帰させるために起動するための部分である。
【００５５】
また、ラッパＷ２は、移動先のエージェントシステムに合わせて、異種移動部クラスＣ２１と、移動元復帰部クラスＣ２２と、異種起動部Ｗ２３と、を備えている。このうち異種移動部クラスＣ２１は、異種エージェントシステム内でエージェントを移動させるための手順を表す情報であり、移動元復帰部クラスＣ２２は、異種エージェントシステムから移動元のエージェントシステムにエージェントを復帰させるための手順を表す情報である。また、異種起動部Ｗ２３は、異種エージェントシステムの外部通信手段ＢＳ２が持つエージェント起動部Ｂ３に、移動用管理部クラスＸＣ１と、異種移動部クラスＣ２１と、エージェント状態情報Ａ１と、移動元復帰部クラスＣ２２と、を与えて、ラッパＷ２の構成に基づいたラップドエージェントＢＡを生成させ起動させるためのエージェント起動手段である。
【００５６】
ここで、ラップドエージェントＢＡは、もとのエージェントＡの活動を異種エージェントシステム上で続けるためのもので、移動用管理部ＢＡ１と、異種移動部ＢＡ２と、エージェント状態情報Ａ１と、移動元復帰部ＢＡ３と、を備えている。
【００５７】
このうち移動用管理部ＢＡ１は、異種エージェントのプラットフォーム上でエージェント状態情報Ａ１をもとにエージェントを動作させるためのもので、ノードＸから渡されるひな型である移動用管理部クラスＸＣ１に基づいて生成されたものである。また、異種移動部ＢＡ２は、移動先のエージェントシステム内でエージェントを移動させる移動機能を提供するためのもので、ラッパＷ２から渡されるひな型である異種移動部クラスＣ２１に基づいて生成されたものである。
【００５８】
また、エージェント状態情報Ａ１は、エージェントのスクリプトおよびその実行状態など、移動元のエージェントシステムにおいてエージェントが持っていた情報である。また、移動元復帰部ＢＡ３は、移動先の異種エージェントシステムで活動していたエージェントが、移動元のエージェントシステムに戻るための機能を提供するもので、ラッパＷ２から渡されるひな型である移動元復帰部クラスＣ２２に基づいて生成されたものである。
【００５９】
〔２−２．第２実施形態の作用〕
上記のように構成された第２実施形態は、次のように作用する。すなわち、第１実施形態で示したように、エージェントの移動先である異種エージェントシステムに対応するものとして選択され、生成されたラッパＷ２では、まず、異種起動部Ｃ２３が、異種エージェントシステムの外部通信手段ＢＳ２が持つエージェント起動部Ｂ３に、移動用管理部クラスＸＣ１と、異種移動部クラスＣ２１と、エージェント状態情報Ａ１と、移動元復帰部クラスＣ２２と、を与えて、ラップドエージェントＢＡを生成させる。
【００６０】
異種エージェントシステム上で生成されたラップドエージェントＢＡでは、このうち移動用管理部ＢＡ１が、異種エージェントのプラットフォーム上でエージェント状態情報Ａ１をもとに、スクリプトを実行するなどしてエージェントを動作させる。また、異種移動部ＢＡ２は、移動先のエージェントシステム内での移動機能を提供する。また、移動元復帰部ＢＡ３は、移動元エージェントシステムのノードがもつエージェント起動部Ｘ２を用いて、移動先の異種エージェントシステムで活動していたエージェントが、移動元のエージェントシステムに戻るための復帰処理を行う。
【００６１】
ここで、移動用管理部ＢＡ１を含むラップドエージェントＢＡが、異種エージェントシステム上でエージェントＡを動作させる場合の処理を、図４のフローチャートに示す。
【００６２】
すなわち、移動用管理部ＢＡ１は、エージェント状態情報Ａ１からスクリプトやスクリプトの実行状態を読み取って、スクリプトのコマンドを処理し、エージェント状態情報Ａ１を更新する（ステップ４０１）。そして、処理すべきコマンドが移動コマンドであった場合（ステップ４０２）、移動先が移動元エージェントシステム（移動元システムとも呼ぶ）であるかどうかを確認し（ステップ４０３）、そうであった場合には、移動元復帰部ＢＡ３を用いて移動元エージェントシステムへエージェントを移動すなわち復帰させる（ステップ４０４）。
【００６３】
一方、ステップ４０３の判断において、移動先が移動元エージェントシステムでなかった場合は、まず、現在エージェントがいるエージェントシステム内での移動を、異種移動部ＢＡ２を用いて行う（ステップ４０５）。この移動に失敗した場合は（ステップ４０６）、失敗した移動を再実行するスクリプトをエージェント状態情報Ａ１に付加し（ステップ４０７）、移動元エージェントシステムへエージェントを復帰させる。
【００６４】
また、移動コマンドでないあるコマンドの処理に失敗し（ステップ４０８）、そのコマンドを移動元エージェントシステムで実行しても問題がない場合は、失敗したコマンドを再実行し、現在エージェントがいるノードへ移動するスクリプトをエージェント状態情報に付加し、移動元エージェントシステムへエージェントを復帰させる（ステップ４０９）。そして、ステップ４０４においてエージェントシステムへエージェントを復帰させる場合は、エージェント状態情報Ａ１をエージェントシステムのノードＸ内のエージェント起動部Ｘ２に渡し、エージェントシステムでエージェントＡを再度起動させることでエージェントＡの活動を継続させる。
【００６５】
〔２−３．第２実施形態の効果〕
以上のような第２実施形態では、エージェントの起動、移動、移動元への復帰の手順といった移動先の異種エージェントシステムごとに異なる部分を、ラッパＷ２の持つ異種起動部Ｗ２３と各クラスＣ２１，Ｃ２２の構成としてまとめて表しておく。一方、エージェントのスクリプトを解釈実行する管理手段である移動用管理部ＢＡ１は異種エージェントシステムごとに異ならないので、ラッパＷ２とは別に共通のクラスＸＣ１として表しておく。そして、異種エージェントシステムへの移動時には、ラッパＷ２が、各クラスＣ２１，Ｃ２２，ＸＣ１と異種起動部Ｗ２３によってラップドエージェントＢＡを起動して異種エージェントシステム上で動作させる。
【００６６】
このため、移動先となる異種エージェントシステムの種類が増えた場合でも、主に各クラスだけを変更するための少ない手間で対応することができる。また、この場合、管理手段である移動用管理部ＢＡ１を変更する場合でも、前記各クラスＣ２１，Ｃ２２，ＸＣ１に基づいて生成される異種移動部ＢＡ２、移動元復帰部ＢＡ３及び異種起動部Ｗ２３に接続する部分のみを拡張するだけで済むので、新たなラッパを容易に作成することができる。また、異種エージェントシステムでの移動や処理の失敗時には、移動元復帰部ＢＡ３によって移動元ノードへ移動して処理を継続するため、エージェントシステム間の差異により発生する障害にも対処できる。
【００６７】
〔３．第３実施形態〕
〔３−１．第３実施形態の構成〕
第３実施形態は、前記ラッパ構成２の一例であり、図５は、第３実施形態におけるラッパの構成を示す機能ブロック図である。すなわち、第３実施形態におけるラッパＷ３は、起動情報生成部Ｗ３１と、異種起動部Ｗ３２と、結果取得部Ｗ３３と、を備えている。
【００６８】
このうち起動情報生成部Ｗ３１は、移動先でエージェントが行うべき処理を解析し、その処理を達成するエージェントを移動先で起動するためのエージェント起動情報を作成するための手段である。すなわち、このエージェント起動情報は、移動要求をしたエージェントの持つ情報に基づいて、移動先の異種エージェントシステムでどのような処理を行うべきかを表す情報である。また、異種起動部Ｗ３２は、起動情報生成部Ｗ３１によって作成されたエージェント起動情報をもとに、異種エージェントシステム上でエージェントを生成するための手段である。
【００６９】
また、第３実施形態では、異種エージェントシステムの外部通信手段ＢＳ３は、エージェント起動部ＢＳ３１と、結果通知部ＢＳ３２と、を備えている。このうちエージェント起動部ＢＳ３１は、ラッパＷ３の異種起動部Ｗ３２からの要請に基づいて、異種エージェントシステム上でエージェントを起動するための手段である。また、結果通知部ＢＳ３２は、ラッパＷ３の異種起動部Ｗ３２からの要請に基づいて起動されたエージェントが達成した処理の結果を、ラッパＷ３に送るための手段である。
【００７０】
また、これに対応して、ラッパＷ３の結果取得部Ｗ３３は、異種エージェントシステム上でエージェントが達成した処理の結果を受け取り、その内容にしたがってエージェント状態情報Ａ１を変更し、移動元エージェントシステムのノード上に存在するエージェント起動部Ｘ３１を用いて、エージェントをエージェントシステム上に復帰させるための手段である。
【００７１】
〔３−２．第３実施形態の作用〕
上記のように構成された第３実施形態は、次のように作用する。すなわち、第１実施形態で示したように、エージェントＡの移動先である異種エージェントシステムに対応するものとして選択され、生成されたラッパＷ３では、起動情報生成部Ｗ３１が、移動先でエージェントが行うべき処理を解析し、その処理を達成するエージェントを移動先で起動するためのエージェント起動情報を作成する。
【００７２】
また、異種起動部Ｗ３２は、起動情報生成部Ｗ３１によって作成されたエージェント起動情報をもとに、異種エージェントシステム上でエージェントを生成する。
【００７３】
また、外部通信手段ＢＳ３のエージェント起動部ＢＳ３１は、ラッパＷ３の異種起動部Ｗ３２からの要請に基づいて、異種エージェントシステム上でエージェントを起動する。また、外部通信手段ＢＳ３の結果通知部ＢＳ３２は、ラッパＷ３の異種起動部Ｗ３２からの要請に基づいて起動されたエージェントが達成した処理の結果を、ラッパＷ３に送る。
【００７４】
また、これに対応して、ラッパＷ３の結果取得部Ｗ３３は、異種エージェントシステム上でエージェントが達成した処理の結果を受け取り、その内容にしたがってエージェント状態情報Ａ１を変更し、移動元エージェントシステムのノード上に存在するエージェント起動部Ｘ３１を用いて、エージェントをエージェントシステム上に復帰させる。
【００７５】
ここで、特に、起動情報生成部Ｗ３１が、エージェント状態情報Ａ１からエージェント起動情報を生成する処理を図６のフローチャートに示す。すなわち、この手順では、起動情報生成部Ｗ３１は、エージェント状態情報Ａ１中のスクリプトを解釈し（ステップ６０１）、順次コマンドをチェックする。そして、起動情報生成部Ｗ３１は、コマンドに対応する処理を、移動先エージェントシステムでの処理に変換し、異種エージェントシステム上でのエージェント起動に用いるエージェント起動情報に加えていく（ステップ６０５）。
【００７６】
そして、コマンドが移動コマンドであった場合は（ステップ６０２）、それまでの動作結果を結果通知部ＢＳ３２を用いて通知し、移動コマンドからエージェント動作を継続させる処理を、エージェント起動情報に追加する（ステップ６０３）。
【００７７】
また、コマンドが、移動先エージェントシステムで実行できないコマンドであった場合は（ステップ６０４）、それまでの動作結果を結果通知部ＢＳ３２を用いて通知しエージェント起動情報Ａ１に加えたうえ、コマンドを実行し、異種エージェントシステム上に再び移動する処理を追加する（ステップ６０６）。
【００７８】
〔３−３．第３実施形態の効果〕
上記のような第３実施形態では、エージェントのスクリプトを解釈実行するためのオブジェクトを、移動先の異種エージェントシステムが受け入れることができないような場合でも、移動先で処理したい内容を表す起動情報に基づいて移動先で第２のエージェントを起動して活動させ、その結果を回収することでエージェントの移動を実現することができる。特に、第３実施形態では、エージェントのスクリプトなどの情報をまるごと移動先に転送する必要がなく、起動情報と処理結果だけをやりとりすれば足りるので、通信量が削減できる。
【００７９】
〔４．第４実施形態〕
〔４−１．第４実施形態の構成〕
第４実施形態は、前記ラッパ構成３の一例であり、図７は、第４実施形態におけるラッパの構成を示す機能ブロック図である。すなわち、第３実施形態におけるラッパＷ４は、固有処理ハンドラＷ４１と、機能呼び出し部Ｗ４２と、を備えている。
【００８０】
このうち固有処理ハンドラＷ４１は、移動先エージェントシステム別にそのエージェントシステム固有の処理を行う必要がある場合の処理手順を記述したものであり、換言すれば、異種エージェントシステムにおける処理のうち予め登録された固有処理を行うための部分である。
【００８１】
また、機能呼び出し部Ｗ４２は、固有処理ハンドラＷ４１が異種エージェントシステムの機能を呼び出すための部分であり、外部通信手段ＢＳ４の機能呼び出しインタフェースＢＳ４１は、機能呼び出し部Ｗ４２からの呼び出しを処理するための部分であり、すなわち、機能呼び出し部Ｗ４２からの要請に基づいて異種エージェントシステムが持っている機能を呼び出すための手段である。
【００８２】
また、ノードＸ４は、通信管理部Ｘ４１と、エージェント起動部Ｘ４２と、を備えている。このうち通信管理部Ｘ４１は、スクリプトの実行などによってエージェントを活動させるほか、必要に応じて異種エージェントシステム上のノードやラッパと通信するための手段であり、固有処理ハンドラＷ４１、機能呼び出し部Ｗ４１及び機能呼び出しインタフェースＢＳ４１を介して異種エージェントシステムの機能を呼び出すように構成されている。また、エージェント起動部Ｘ４２は、エージェントシステム上のノードでエージェントを起動するための手段である。
【００８３】
〔４−２．第４実施形態の作用〕
上記のように構成された第４実施形態は、次のように作用する。すなわち、第１実施形態で示したように、エージェントＡの移動先である異種エージェントシステムに対応するものとして選択され、生成されたラッパＷ４では、エージェント状態情報Ａ１を渡される。そして、ラッパＷ４は、通信管理部Ｘ４１を用いて、移動元エージェントシステム内のノードＸ４において、エージェントＡの処理を代行しながら、固有処理ハンドラＷ４１から登録されている特定の処理を行う際には、固有処理ハンドラＷ４１を呼び出す。
【００８４】
このように呼び出された固有処理ハンドラＷ４１は、エージェントの移動コマンドなど、エージェントシステムごとに処理が異なるコマンドの処理を行い、移動元エージェントシステムへの復帰する必要がある場合には、移動元エージェントシステムのノードＸ４が備えるエージェント起動部Ｘ４２を呼び出す。
【００８５】
ここで、通信管理部Ｘ４１が、エージェントの処理を代行する処理を、図８のフローチャートに示す。すなわち、通信管理部Ｘ４１には、ラッパＷ４が固有処理ハンドラＷ４１を呼び出す必要があるコマンドを予め登録する（ステップ８０１）。そして、通信管理部Ｘ４１は、スクリプトを解釈し（ステップ８０２）、次に処理すべきコマンドが、登録されたコマンドであるかを確かめる（ステップ８０３）。そして、次に処理すべきコマンドが、登録されたコマンドである場合は、固有処理ハンドラＷ４１が呼び出され（ステップ８０４）、そうでない場合は、移動元エージェントシステムの通信管理部Ｘ４１内でコマンドの処理を行う（ステップ８０５）。
【００８６】
〔４−３．第４実施形態の効果〕
上記のような第４実施形態では、移動先エージェントシステム内で行わなければならない処理を移動元エージェントシステム内において代行し、必要に応じて移動先エージェントシステムの機能を呼び出すことにより、エージェントやその情報をノード間で転送するための負担が軽減される。また、移動先のエージェントシステムは、外部からの機能呼び出し部のみを備えていればよいので、より多くのエージェントシステム間をこの構成で接続することができる。
【００８７】
〔５．他の実施の形態〕
なお、本発明は、上記各実施形態に限定されるものではなく、次に例示するような他の実施形態も含むものである。例えば、本発明を実施する場合、ネットワークの規模、ノードやエージェントの数、エージェントシステムに異種エージェントシステムを何種類接続するかといった詳細は自由である。また、ラッパの構成や、ラッパがエージェントの活動をどのように異種エージェントシステムに合わせて変換するかの具体的なアルゴリズムも自由であり、ラッパの具体的な構成として、上記各実施形態に示した以外の構成を採用することもできる。
【００８８】
また、ディレクトリサーバ内に同種ノード情報や異種ノード情報を格納することは必ずしも必須ではなく、例えば、ある移動先のノードがエージェントシステム内か異種エージェントシステム内かは、エージェントなどからその都度問い合わせることもできるし、異種エージェントシステム内のノードにアクセスするために必要な情報は、その異種エージェントシステム内でラッパが獲得するようにしてもよい。
【００８９】
【発明の効果】
以上のように、本発明によれば、エージェントが異種エージェントシステム上の資源を容易に利用できるエージェントの技術、すなわちエージェントシステム、情報処理方法及び情報処理用ソフトウェアを記録した記録媒体を提供することができるので、エージェントを大規模ネットワークで利用することも容易になる。
【図面の簡単な説明】
【図１】本発明の第１実施形態の構成を示す機能ブロック図。
【図２】本発明の第１実施形態の動作手順を示すフローチャート。
【図３】本発明の第２実施形態におけるラッパに関する構成を示す機能ブロック図。
【図４】本発明の第２実施形態の動作手順を示すフローチャート。
【図５】本発明の第３実施形態におけるラッパに関する構成を示す機能ブロック図。
【図６】本発明の第３実施形態の動作手順を示すフローチャート。
【図７】本発明の第４実施形態におけるラッパに関する構成を示す機能ブロック図。
【図８】本発明の第４実施形態の動作手順を示すフローチャート。
【図９】従来のエージェントシステムの一例を示す機能ブロック図。
【符号の説明】
１…ラッパクラス格納部
２…移動要求検知部
３…検索部
４…起動部
Ａ１…エージェント状態情報
ＡＳ…エージェントシステム
ＢＡ…ラップドエージェント
ＢＡ１…移動用管理部
ＢＡ２…異種移動部
ＢＡ３…移動元復帰部
ＢＳ…異種エージェントシステム
ＢＳ１〜ＢＳ４…外部通信手段
ＢＳ３１，Ｘ２，Ｘ３１，Ｘ４２…エージェント起動部
ＢＳ３２…結果通知部
ＢＳ４１…機能呼び出しインタフェース
Ｃ，Ｘ，Ｘ３，Ｘ４…ノード
Ｃ２１…異種移動部クラス
Ｃ２２…移動元復帰部クラス
Ｗ，Ｗ２〜Ｗ４…ラッパ
Ｗ３１…起動情報生成部
Ｗ３２…異種起動部
Ｗ３３…結果取得部
Ｗ４１…固有処理ハンドラ
Ｗ４２…機能呼び出し部
Ｉ…共通インタフェース
Ｓ…ディレクトリサーバ
Ｓ１…対応表
Ｓ２…同種ノード情報格納部
Ｓ３…移動用管理部ＢＡ１
Ｘ４１…通信管理部
ＸＣ１…移動用管理部クラス
【図１】
0004005739.tif 000002
【図２】
0004005739.tif 000003
【図３】
0004005739.tif 000004
【図４】
0004005739.tif 000005
【図５】
0004005739.tif 000006
【図６】
0004005739.tif 000007
【図７】
0004005739.tif 000008
【図８】
0004005739.tif 000009
【図９】
0004005739.tif 000010