(57)【特許請求の範囲】
【請求項１】
メッセージ・パケットを送信し且つ前記メッセージ・パケットの処理要求を行うレギュラ・エージェントとして機能する第１ノード・システムと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントとして機能する第２ノード・システムと、複数のサービス・プロバイダ・エージェントを特定するための特定情報及びその能力に関する種別情報を管理するファシリテータ・エージェントとして機能する第３ノード・システムとを含む分散コンピュータ環境に接続され、特定のオントロジーに関する仲介処理を行うブローカ・エージェントとして機能するメッセージ処理装置において、
（ａ）前記ファシリテータ・エージェントに問い合わせを実行し、少なくとも前記特定のオントロジーに関する１又は複数の前記サービス・プロバイダ・エージェントの特定情報及び種別情報を取得してテーブルに記録する段階と、
（ｂ）前記レギュラ・エージェントから送信されたメッセージ・パケットを受領する段階と、
（ｃ）前記テーブルを参照し、前記メッセージ・パケットに対応する所定の種別情報を有する１又は複数のサービス・プロバイダ・エージェントが利用可能であるか否かを検査する段階と、及び
（ｄ）前記メッセージ・パケットを変換し、当該パケットのコンテントを含むデータを、前記テーブルの特定情報に基づき前記利用可能なサービス・プロバイダ・エージェントに送信する段階と、
を実行する、メッセージ処理方法。
【請求項２】
前記メッセージ処理装置が、
（ｅ）前記利用可能なサービス・プロバイダ・エージェントから応答メッセージ・パケットを受領する段階と、
（ｆ）前記受領した応答メッセージ・パケットを変換して、前記レギュラ・エージェントに返信する段階と、
をさらに実行する、請求項１に記載のメッセージ処理方法。
【請求項３】
メッセージ・パケットを送信し且つ前記メッセージ・パケットの処理要求を行うレギュラ・エージェントとして機能する第１ノード・システムと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントとして機能する第２ノード・システムと、複数のサービス・プロバイダ・エージェントを特定するための特定情報及びその能力に関する種別情報を管理するファシリテータ・エージェントとして機能する第３ノード・システムとを含む分散コンピュータ環境に接続され、特定のオントロジーに関する仲介処理を行うブローカ・エージェントとして機能するメッセージ処理装置であって、
（ａ）前記ファシリテータ・エージェントに問い合わせを実行して取得される、少なくとも前記特定のオントロジーに関する１又は複数の前記サービス・プロバイダ・エージェントの特定情報及び種別情報を記録するテーブルと、
（ｂ）前記レギュラ・エージェントから送信されたメッセージ・パケットを受領して解析し、当該メッセージ・パケットに対応する所定の種別情報を有する１又は複数のサービス・プロバイダ・エージェントが利用可能であるか否かを前記テーブルを参照して特定する手段と、及び
（ｃ）前記メッセージ・パケットを変換し、当該パケットのコンテントを含むデータを、前記テーブルの特定情報に基づき前記利用可能なサービス・プロバイダ・エージェントに送信する手段と、
を含むメッセージ処理装置。
【請求項４】
（ｄ）前記利用可能なサービス・プロバイダ・エージェントから応答メッセージ・パケットを受領し、当該受領した応答メッセージ・パケットを変換して、前記レギュラ・エージェントに返信する手段をさらに含む、
請求項３に記載のメッセージ処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、コンピュータ・ネットワークにおけるデータ処理方法に関し、より詳しくは、分散コンピュータ環境あって、ネットワーク上に存在する２以上のオブジェクト間のコミュニケーションをサポートするための改良されたデータ処理方法に関する。
【０００２】
【従来の技術】
従来より、分散コンピュータ環境において、ネットワーク上に存在するサーバに提供されているプレースに自分自身の内部状態を保持したまま移動し、移動先のプレースにおいてインストラクションを形成する移動エージェント（モーバイルエージェント）技術が存在する（特開平７−１８２１７４号公報(USP5,603,031)、「日経コミュニケーション別冊、最新インターネットテクノロジ」日経ＢＰ社ｐｐ１０４−１１７、西田  文比古、藤原  進  著等)。
【０００３】
かかる移動エージェントは、この移動先のプレースにおいて他のエージェント（移動エージェントまたは常駐エージェント）とコンタクトし、必要なサービスを受けることができる。プレースは、ネットワーク上に存在するサーバによって提供されているエージェントの移動場所であり、エージェント間のコンタクトをサポートし、また、ハードウエア及びプラットフォームの違いを吸収している。
【０００４】
かかる移動エージェントの技術は、社内会議のセッティングを社員のスケジュールや会議室の予約状況に応じてダイナミックに調整したり、ネットワーク上に分散する所望の情報を入手する等、これまで人手によってなされていた作業をこの移動エージェントが代行することを可能にしている。
【０００５】
このような従来のエージェント同士のコンタクトを行う方式においては、図１０に示すように移動エージェント１０１または常駐エージェント１０３（以下、サービスを要求する一般的なエージェントをレギュラ・エージェントと呼ぶ）が、サービスを行う能力のあるサービス・プロバイダ・エージェント１３１、１３３にサービスを要求する場合には、そのプレースに存在するエージェント・コミュニティ１５０を管理するファシリテータ・エージェント１１０に、サービスの提供能力のあるサービス・プロバイダ・エージェント１３１、１３３を問い合わせ、その問い合わせた情報を基に、サービス・プロバイダ・エージェント１３１、１３３とコンタクトをとっていた。
【０００６】
しかし、かかるエージェント・コミュニティ１５０に存在するエージェントは、ファシリテータ・エージェント１１０に各サービス・プロバイダ・エージェントに特有の形式で登録管理されていたので、サービスを受けることを欲するレギュラ・エージェント１０１、１０３は、ファシリテータ・エージェント１１０から受領したエージェントの一覧から自分のサービスの提供能力のあるサービス・プロバイダ・エージェント１３１、１３３を捜し出さなければならなかった。
【０００７】
また、レギュラ・エージェント１０１、１０３は、サービスを受ける夫々のサービス・プロバイダ・エージェント１３１、１３３に対応した問い合わせをサービス・プロバイダ・エージェント毎に行う必要があった。
【０００８】
さらに、レギュラ・エージェント１０１、１０３は、定形的な処理であってもレギュラ・エージェント側でコントロールを行い、どのサービス・プロバイダ・エージェントにどのような依頼を行うか、その内容や組み合わせを検討する必要があった。
【０００９】
そして、レギュラ・エージェント１０１、１０３は、各サービス・プロバイダ・エージェントから受領した複数種類の処理結果を基に所望の処理結果を構築する必要があった。
【００１０】
また、ファシリテータ・エージェント１１０の機能を拡張し、サービスの拡充を図る場合には、ファシリテータ・エージェント１１０自体をメンテナンスし、導入に際して、サービスの停止を行う必要があった。
【００１１】
【発明が解決しようとする課題】
本発明の一つの目的は、エージェントからの問い合わせに柔軟、高速かつ適切に対応することができるコミュニケーション・システムを提供することにある。
【００１２】
本発明の他の一つの目的は、エージェントの利用者の負担を軽減したコミュニケーション・システムを提供することにある。
【００１３】
本発明の他の一つの目的は、サービス・プロバイダ・エージェントの違いを吸収したコミュニケーション・システムを提供することにある。
【００１４】
本発明の他の一つの目的は、各サービス・プロバイダ・エージェントから受領した複数種類の処理結果を基に所望の処理結果を構築することのできるコミュニケーション・システムを提供することにある。
【００１５】
本発明の他の一つの目的は、タスクの分配による高速な処理を可能とするコミュニケーション・システムを提供することにある。
【００１６】
本発明の他の一つの目的は、各種エージェントの導入をダイナミックに行うことができる拡張性の高いコミュニケーション・システムを提供することにある。
【００１７】
本発明の他の一つの目的は、エージェント間のコミュニケーションをサポートするに際し、プログラマの開発や保守に要する労力及び時間を可能な限り軽減することにある。
【００１８】
本発明の他の一つの目的は、エージェント間の会話に柔軟に対応することができるコミュニケーション・システムを提供することにある。
【００１９】
本発明の他の一つの目的は、通信システムへの負担が少ないメッセージ処理システムを提供することにある。
【００２０】
【課題を解決するための手段】
本発明においては、レギュラ・エージェントからの仕事の依頼としてのタスクを分配／統合する等、その問題領域に特化して処理する複数種類のブローカ・エージェント１２１、１２３を提供する。ブローカ・エージェント１２１、１２３は、ファシリテータ・エージェント１１０に問い合わせを行い、自分の仕事に関係のあるサービス・プロバイダ・エージェント１３１、１３３の一覧を受領し、リストとして保持する。レギュラ・エージェント１０１から仕事の仲介を依頼を示すメッセージ・パケットを受領したブローカ・エージェント１２１は、メッセージ・パケットを解析することにより、依頼の仕事の概要を判断し、依頼メッセージに一定の変換を行った後、リストとして保持するサービス・プロバイダ・エージェントに送信する。ブローカ・エージェント１２１は、サービス・プロバイダ・エージェント１３１、１３３からの返事を受領し、一定の変換処理を施した後にレギュラ・エージェント１０１に送信する。
【００２１】
本発明の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領する段階と、
（ｂ）該受領したメッセージ・パケットが所定のフォーマットに合致しているか否かチェックする段階と、
（ｃ）前記ファシリテータ・エージェントに問い合わせを行い、所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントが利用可能であるか否かを検査する段階と、
（ｄ）前記受領したメッセージ・パケットを変換する段階と、
（ｅ）該変換したメッセージ・パケットを該利用可能なサービス・プロバイダ・エージェントに送信する段階と、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティにおいて実行されるメッセージ処理方法が提供される。
なお、本願明細書の特許請求の範囲において、「メッセージ・パケットを変換する」とは、メッセージ・パケットの一部のデータ（例えば、本発明の好適な実施例におけるメッセージ・タイプ、オントロジー等）を他のデータに置換する場合の他、メッセージ・パケットの一部のデータ（本発明の好適な実施例におけるコンテント等）抽出する、メッセージ・パケットにデータを附加する（本発明の好適な実施例におけるメッセージ・パケットをコンテントに持つメッセージ・パケットを生成するフォワード処理等）場合等を含む概念である。
また、本願明細書の特許請求の範囲において、「メッセージ・パケットをサービス・プロバイダ・エージェントに送信する」ことは、単に、送信元から直接サービス・プロバイダ・エージェントに送信することのみを意味するのではなく、例えば、ファシリテータ・エージェント等の他の資源を利用して間接的に送信することを含む概念である。
さらに、「サービス・プロバイダ・エージェント特定情報」とは、サービス・プロバイダ・エージェントにアクセスすることを可能にする全ての情報をいい、エージェント名、オブジェクト・クラス名、アドレス名や、これらの組み合わせを含む概念である。
また、「サービス・プロバイダ・エージェント種別情報」とは、サービス・プロバイダ・エージェントの提供するサービスの種別を特定するための情報をいい、サービス・プロバイダ・エージェントの保持するインタプリタ、トランスレータ、会話チェック・ルーチン、フォーマット・チェック・ルーチン、解釈実行ルーチン、実行ルーチン等を識別するための全ての情報を含む概念である。本発明の好適な実施例においては、オントロジー情報、カテゴリー情報、サブカテゴリー情報、メッセージタイプ情報、記述言語情報等やこれらの組み合わせに対応する概念である。
【００２２】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領する段階と、
（ｂ）前記ファシリテータ・エージェントに問い合わせを行い、所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントが利用可能であるか否かを検査する段階と、
（ｃ）前記メッセージ・パケットのコンテントを含むデータを該利用可能なサービス・プロバイダ・エージェントに送信する段階と、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティにおいて実行されるメッセージ処理方法が提供される。
【００２３】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領する段階と、
（ｂ）所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントに前記メッセージ・パケットのコンテントを含むデータを送信することを前記ファシリテータ・エージェントに指示する段階と、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティにおいて実行されるメッセージ処理方法が提供される。
【００２４】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領する段階と、
（ｂ）該受領したメッセージ・パケットが所定のフォーマットに合致しているか否かチェックする段階と、
（ｃ）前記ファシリテータ・エージェントに問い合わせを行い、所定のサービス・プロバイダ・エージェント種別情報を有する複数のサービス・プロバイダ・エージェントが利用可能であるか否かを検査する段階と、
（ｄ）前記受領したメッセージ・パケットを該利用可能なサービス・プロバイダ・エージェントに対応して変換する段階と、
（ｅ）該変換したメッセージ・パケットを該利用可能なサービス・プロバイダ・エージェントに送信する段階と、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティにおいて実行されるメッセージ処理方法が提供される。
【００２５】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領する段階と、
（ｂ）ブローカ・アドバタイズ・テーブルを参照し、所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントが利用可能であるか否かを検査する段階と、
（ｃ）前記メッセージ・パケットのコンテントを含むデータを該利用可能なサービス・プロバイダ・エージェントに送信する段階と、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、所定のサービス・プロバイダ・エージェント種別情報を有しているサービス・プロバイダ・エージェントを特定するサービス・プロバイダ・エージェント特定情報を管理するブローカ・アドバタイズ・テーブルを保持するブローカ・エージェントとを含むエージェント・コミュニティにおいて実行されるメッセージ処理方法が提供される。
【００２６】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領する段階と、
（ｂ）前記ブローカ・アドバタイズ・テーブルを参照し、所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントが利用可能であるか否かを検査する段階と、
（ｃ）前記メッセージ・パケットのコンテントを含むデータを該利用可能なサービス・プロバイダ・エージェントに送信する段階と、
（ｄ）前記利用可能なサービス・プロバイダ・エージェントから応答メッセージ・パケットを受領する段階と、
（ｅ）該受領した応答メッセージ・パケットを変換する段階と、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、所定のサービス・プロバイダ・エージェント種別情報を有しているサービス・プロバイダ・エージェントを特定するサービス・プロバイダ・エージェント特定情報を管理するブローカ・アドバタイズ・テーブルを保持するブローカ・エージェントとを含むエージェント・コミュニティにおいて実行されるメッセージ処理方法が提供される。
【００２７】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領する段階と、
（ｂ）該受領したメッセージ・パケットを解析してサービス・プロバイダ・エージェント種別情報を決定する段階と、
（ｃ）該決定されたサービス・プロバイダ・エージェント種別情報に対応するサービス・プロバイダ・エージェントを特定する段階と、
（ｄ）前記受領したメッセージ・パケットを変換する段階と、
（ｅ）該変換したメッセージ・パケットを前記対応するサービス・プロバイダ・エージェントに送信する段階と、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティにおいて実行されるメッセージ処理方法が提供される。
【００２８】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領する段階と、
（ｂ）該受領したメッセージ・パケットを解析してサービス・プロバイダ・エージェント種別情報を決定する段階と、
（ｃ）該決定されたサービス・プロバイダ・エージェント種別情報に対応するサービス・プロバイダ・エージェントを特定する段階と、
（ｄ）前記受領したメッセージ・パケットを変換する段階と、
（ｅ）該変換したメッセージ・パケットを前記対応するサービス・プロバイダ・エージェントに送信する段階と、
（ｆ）前記対応するサービス・プロバイダ・エージェントから応答メッセージ・パケットを受領する段階と、
（ｇ）該受領した応答メッセージ・パケットを変換する段階と、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティにおいて実行されるメッセージ処理方法が提供される。
【００２９】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットの処理結果である応答メッセージ・パケットを前記複数のサービス・プロバイダ・エージェントから受領する段階と、
（ｂ）該受領した応答メッセージ・パケットを変換する段階と、
（ｃ）該変換された応答メッセージ・パケットを前記レギュラ・エージェントに送信する段階と、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティにおいて実行されるメッセージ処理方法が提供される。
【００３０】
本発明の他の一態様においては、
（ａ）メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、
（ｂ）サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントと，
（ｃ−１）前記レギュラ・エージェントから送信されたメッセージ・パケットを受領し、
（ｃ−２）該受領したメッセージ・パケットが所定のフォーマットに合致しているか否かチェックし、
（ｃ−３）前記ファシリテータ・エージェントに問い合わせを行い、所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントが利用可能であるか否かを検査し、
（ｃ−４）前記受領したメッセージ・パケットを変換し、
（ｃ−５）該変換したメッセージ・パケットを該利用可能なサービス・プロバイダ・エージェントに送信するブローカ・エージェントと、
を含むレギュラ・エージェントから送信されたメッセージ・パケットを処理するためのエージェント・コミュニティ・システムが提供される。
【００３１】
本発明の他の一態様においては、
（ａ）サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントと，
（ｂ−１）前記レギュラ・エージェントから送信されたメッセージ・パケットを受領し、
（ｂ−２）前記ファシリテータ・エージェントに問い合わせを行い、所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントが利用可能であるか否かを検査し、
（ｂ−３）前記メッセージ・パケットのコンテントを含むデータを該利用可能なサービス・プロバイダ・エージェントに送信するブローカ・エージェントと、
を含むレギュラ・エージェントから送信されたメッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントを制御するためのエージェント・コミュニティ・システムが提供される。
【００３２】
本発明の他の一態様においては、
（ａ）メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、
（ｂ）サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントと、
（ｃ−１）前記レギュラ・エージェントから送信されたメッセージ・パケットを受領し、
（ｃ−２）所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントに前記メッセージ・パケットのコンテントを含むデータを送信することを前記ファシリテータ・エージェントに指示するブローカ・エージェントと、
を含むレギュラ・エージェントから送信されたメッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントを制御するためのエージェント・コミュニティ・システムが提供される。
【００３３】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領し、
（ｂ）前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントの内、所定のサービス・プロバイダ・エージェント種別情報を有しているサービス・プロバイダ・エージェントを特定するサービス・プロバイダ・エージェント特定情報を管理するブローカ・アドバタイズ・テーブルを保持し、
（ｃ）前記ブローカ・アドバタイズ・テーブルを参照し、所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントが利用可能であるか否かを検査し、
（ｄ）前記メッセージ・パケットのコンテントを含むデータを該利用可能なサービス・プロバイダ・エージェントに送信するブローカ・エージェントを含むエージェント・コミュニティ・システムが提供される。
【００３４】
本発明の他の一態様においては、
（ａ）メッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、
（ｂ）前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、
（ｃ）サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントと、
（ｄ−１）前記レギュラ・エージェントから送信されたメッセージ・パケットの処理結果である応答メッセージ・パケットを前記複数のサービス・プロバイダ・エージェントから受領し、
（ｄ−２）該受領した応答メッセージ・パケットを変換し、
（ｄ−３）該変換された応答メッセージ・パケットを前記レギュラ・エージェントに送信するブローカ・エージェントとを含むエージェント・コミュニティ・システムが提供される。
【００３５】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領する手段と、
（ｂ）前記ファシリテータ・エージェントに問い合わせを行い、所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントが利用可能であるか否かを検査する手段と、
（ｃ）前記メッセージ・パケットのコンテントを含むデータを該利用可能なサービス・プロバイダ・エージェントに送信する手段と、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティを構成するためのメッセージ処理装置が提供される。
【００３６】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領する手段と、
（ｂ）所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントに前記メッセージ・パケットのコンテントを含むデータを送信することを前記ファシリテータ・エージェントに指示する手段と、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティを構成するためのメッセージ処理装置が提供される。
【００３７】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領する手段と、
（ｂ）前記ブローカ・アドバタイズ・テーブルを参照し、所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントが利用可能であるか否かを検査する手段と、
（ｃ）前記メッセージ・パケットのコンテントを含むデータを該利用可能なサービス・プロバイダ・エージェントに送信する手段と、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、所定のサービス・プロバイダ・エージェント種別情報を有しているサービス・プロバイダ・エージェントを特定するサービス・プロバイダ・エージェント特定情報を管理するブローカ・アドバタイズ・テーブルを保持するブローカ・エージェントとを含むエージェント・コミュニティを構成するためのメッセージ処理装置が提供される。
【００３８】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領する手段と、
（ｂ）該受領したメッセージ・パケットを解析してサービス・プロバイダ・エージェント種別情報を決定する手段と、
（ｃ）該決定されたサービス・プロバイダ・エージェント種別情報に対応するサービス・プロバイダ・エージェントを特定する手段と、
（ｄ）前記受領したメッセージ・パケットを変換する手段と、
（ｅ）該変換したメッセージ・パケットを前記対応するサービス・プロバイダ・エージェントに送信する手段と、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティを構成するメッセージ処理装置が提供される。
【００３９】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットの処理結果である応答メッセージ・パケットを前記複数のサービス・プロバイダ・エージェントから受領する手段と、
（ｂ）該受領した応答メッセージ・パケットを変換する手段と、
（ｃ）該変換された応答メッセージ・パケットを前記レギュラ・エージェントに送信する手段と、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティを構成するメッセージ処理装置が提供される。
【００４０】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領することを前記メッセージ処理装置に指示するためのプログラムコードと、
（ｂ）前記ファシリテータ・エージェントに問い合わせを行い、所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントが利用可能であるか否かを検査することを前記メッセージ処理装置に指示するためのプログラムコードと、
（ｃ）前記メッセージ・パケットのコンテントを含むデータを該利用可能なサービス・プロバイダ・エージェントに送信することを前記メッセージ処理装置に指示するためのプログラムコードと、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティを構成するためのメッセージ処理装置で実行されるメッセージ処理プログラムを格納した記録媒体が提供される。
【００４１】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領することを前記メッセージ処理装置に指示するためのプログラムコードと、
（ｂ）所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントに前記メッセージ・パケットのコンテントを含むデータを送信することを前記ファシリテータ・エージェントに指示することを前記メッセージ処理装置に指示するためのプログラムコードと、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティを構成するためのメッセージ処理装置で実行されるメッセージ処理プログラムを格納した記録媒体が提供される。
【００４２】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領することを前記メッセージ処理装置に指示するためのプログラムコードと、
（ｂ）前記ブローカ・アドバタイズ・テーブルを参照し、所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントが利用可能であるか否かを検査することを前記メッセージ処理装置に指示するためのプログラムコードと、
（ｃ）前記メッセージ・パケットのコンテントを含むデータを該利用可能なサービス・プロバイダ・エージェントに送信することを前記メッセージ処理装置に指示するためのプログラムコードと、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、所定のサービス・プロバイダ・エージェント種別情報を有しているサービス・プロバイダ・エージェントを特定するサービス・プロバイダ・エージェント特定情報を管理するブローカ・アドバタイズ・テーブルを保持するブローカ・エージェントとを含むエージェント・コミュニティを構成するためのメッセージ処理装置で実行されるメッセージ処理プログラムを格納した記録媒体が提供される。
【００４３】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領することを前記メッセージ処理装置に指示するためのプログラムコードと、
（ｂ）該受領したメッセージ・パケットを解析してサービス・プロバイダ・エージェント種別情報を決定することを前記メッセージ処理装置に指示するためのプログラムコードと、
（ｃ）該決定されたサービス・プロバイダ・エージェント種別情報に対応するサービス・プロバイダ・エージェントを特定することを前記メッセージ処理装置に指示するためのプログラムコードと、
（ｄ）前記受領したメッセージ・パケットを変換することを前記メッセージ処理装置に指示するためのプログラムコードと、
（ｅ）該変換したメッセージ・パケットを前記対応するサービス・プロバイダ・エージェントに送信することを前記メッセージ処理装置に指示するためのプログラムコードと、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティを構成するメッセージ処理装置で実行されるメッセージ処理プログラムを格納した記録媒体が提供される。
【００４４】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットの処理結果である応答メッセージ・パケットを前記複数のサービス・プロバイダ・エージェントから受領することを前記メッセージ処理装置に指示するためのプログラムコードと、
（ｂ）該受領した応答メッセージ・パケットを変換することを前記メッセージ処理装置に指示するためのプログラムコードと、
（ｃ）該変換された応答メッセージ・パケットを前記レギュラ・エージェントに送信することを前記メッセージ処理装置に指示するためのプログラムコードと、
を含むメッセージ・パケットを送信し、前記メッセージ・パケットの処理要求を行うレギュラ・エージェントと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントと、サービス・プロバイダ・エージェント特定情報及びサービス・プロバイダ・エージェント種別情報とを管理するファシリテータ・エージェントとを含むエージェント・コミュニティを構成するメッセージ処理装置で実行されるメッセージ処理プログラムを格納した記録媒体が提供される。
【００４５】
本発明の他の一態様においては、
レギュラ・エージェントから送信されるメッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントの内、所定のサービス・プロバイダ・エージェント種別情報を有しているサービス・プロバイダ・エージェントを特定するサービス・プロバイダ・エージェント特定情報を管理するブローカ・アドバタイズ・テーブルを保持するブローカ・エージェントを含む記録媒体が提供される。
【００４６】
本発明の他の一態様においては、
（ａ）レギュラ・エージェントから送信されたメッセージ・パケットを受領し、
（ｂ）前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントの内、所定のサービス・プロバイダ・エージェント種別情報を有しているサービス・プロバイダ・エージェントを特定するサービス・プロバイダ・エージェント特定情報を管理するブローカ・アドバタイズ・テーブルを保持し、
（ｃ）前記ブローカ・アドバタイズ・テーブルを参照し、所定のサービス・プロバイダ・エージェント種別情報を有するサービス・プロバイダ・エージェントが利用可能であるか否かを検査し、
（ｄ）前記メッセージ・パケットのコンテントを含むデータを該利用可能なサービス・プロバイダ・エージェントに送信するブローカ・エージェントを含む記録媒体が提供される。
【００４７】
【実施例】
以下、図面を参照して本発明の実施例を説明する。図１を参照すると、本発明のエージェントが動作するエージェント・コミュニティ１５０が示されている。このエージェント・コミュニティには複数の移動エージェントや常駐エージェントが存在する。通常、エージェント・コミュニティ１５０は、複数のＰＣから構成されるネットワークである。
【００４８】
ここで、レギュラ・エージェント１０１、１０３は、エージェント・コミュニティ１５０に送られてきた移動エージェントまたは、このエージェント・コミュニティに常駐している常駐エージェントである。このレギュラ・エージェント１０１は、後述するメッセージ・パケットを送出し、または、受領することによって他のエージェントと対話することができる。
【００４９】
ファシリテータ・エージェント１１０は、エージェント・コミュニティ内のソフトウェア・エージェント（以下、単にエージェントという）の生滅を管理したり、エージェント・コミュニティに存在するエージェントの一覧表等を提供するエージェントである。
【００５０】
トラベル・ブローカ・エージェント１２１は、travelというオントロジーに関する、さまざまな仲介をするエージェントである。オントロジーとは、背景概念や語彙等をいい、伝達された情報の内容を判断するに際して、判断結果を絞り込み、または判断過程を削減するための全ての情報を含む概念である。
【００５１】
例えば、交通機関の予約に関するオントロジーであった場合、インタプリタ等の情報解釈部品は、"R, flight, Narita to Tacoma, 1997/07/06/15:00-1997/07/06/18:00"といったコンテントを受領し、所定のフォーマット・チェックを行い、"R"を予約を指示するコマンドと解釈する等の特有のコンテント解釈ルーチンを実行し、所定の航空会社のデータベースにアクセスして、予約状況等をチェックする等の固有の実行ルーチンを実行する。そして、最終的に、１９９７年７月５日１７時１０分成田空港発、シアトルのタコマ空港行のｘｘ航空２６便、エコノミーの禁煙席の予約を行い、送信者に対し予約の確認を行うことができる。
【００５２】
ファシリテータ・エージェント１１０とトラベル・ブローカ・エージェント１２１は、夫々、ファシリテータ・アドバタイズ・テーブル１５１とブローカ・アドバタイズ・テーブル１４１を有している。
【００５３】
ジョブ・アロケーション・ブローカ・エージェント１２３は、ジョブ・アロケーションというオントロジーに関する、さまざまな仲介をするエージェントである。
【００５４】
サービス・プロバイダ・エージェント１３１、１３３は、様々なサービスを提供するエージェントである、推論エンジンをもち推論したり、データベース検索をして検索結果を返したり、他のシステムとの橋渡しをしたりするエージェントである。
【００５５】
図２は、図１に示された分散ネットワーク環境上に存在するエージェント・コミュニティを形成するための分散ネットワーク上の１つのノードにおけるハードウェア構成の概観図が示されている。各ノード・システム１００は、中央処理装置（ＣＰＵ）１とメモリ４とを含んでいる。ＣＰＵ１とメモリ４は、バス２を介して、補助記憶装置としてのハードディスク装置１３とを接続してある。フロッピーディスク装置２０、ハードディスク装置１３，３０、ＣＤ−ＲＯＭドライブ２６，２９、ＭＯドライブ２８等の記憶媒体駆動装置は、フロッピーディスク・コントローラ１９、ＩＤＥコントローラ２５、ＳＣＳＩコントローラ２７等の各種コントローラを介してバス２へ接続されている。
【００５６】
フロッピーディスク装置２０等の記憶媒体駆動装置には、フロッピーディスク等の可搬型記憶媒体が挿入され、このフロッピーディスク等やハードディスク装置１３、ＲＯＭ１４等の記憶媒体には、オペレーティングシステムと協働してＣＰＵ等に命令を与え、本発明を実施するためのコンピュータ・ソフトウエアを記録することができ、メモリ４にロードされることによって実行される。このコンピュータ・ソフトウエアは圧縮し、または、複数に分割して、複数の媒体に記録することもできる。
【００５７】
ノード・システム１００は更に、ユーザ・インターフェース・ハードウェアを備えたシステムとすることができ、ユーザ・インターフェース・ハードウェアとしては、例えば、入力をするためのポインティング・デバイス（マウス、ジョイスティック等）７またはキーボード６や、視覚データをユーザに提示するためのディスプレイ１２があり、また、パラレルポート１６を介してプリンタを接続するも可能である。このノード・システム１００は、シリアルポート１５を介してモデムを接続することが可能であり、シリアルポート１５およびモデムまたはトークンリングや通信アダプタ１８等を介してネットワークに接続し、他のコンピュータシステムと通信を行っている。
【００５８】
このように、本発明は、通常のパーソナルコンピュータ（ＰＣ）、ワークステーション、汎用機や、これらの組合せによって実施可能であることを容易に理解できるであろう。ただし、これらの構成要素は例示であり、その全ての構成要素が本発明の必須の構成要素となるわけではない。例えば、ユーザインタフェース等は不要であり、ＣＰＵやメモリ等の基本的なデータ処理機能と通信機能があれば足りる。
【００５９】
ノード・システム１００のオペレーティング・システムとしては、ＷｉｎｄｏｗｓＮＴ（マイクロソフトの商標）、Ｗｉｎｄｏｗｓ９５（マイクロソフトの商標）、Ｗｉｎｄｏｗｓ３．ｘ（マイクロソフトの商標）、ＯＳ／２（ＩＢＭの商標）、ＡＩＸ（ＩＢＭの商標）上のＸ−ＷＩＮＤＯＷシステム（ＭＩＴの商標）、Ｓｏｌａｒｉｓ（サンマイクロシステムズの商標）などの、標準でＧＵＩマルチウインドウ環境をサポートするものや、ＰＣ−ＤＯＳ（ＩＢＭの商標）、ＭＳ−ＤＯＳ（マイクロソフトの商標）などのキャラクタ・ベース環境のもの、さらにはＯＳ／Ｏｐｅｎ（ＩＢＭの商標）ＶｘＷｏｒｋｓ（Ｗｉｎｄ  Ｒｉｖｅｒ  Ｓｙｓｔｅｍｓ，  Ｉｎｃ．の商標）等のリアルタイムＯＳでも実現可能であり、特定のオペレーティング・システム環境に限定されるものではない。
【００６０】
次に、図３、４を参照して、本発明の好適な実施例における各エージェントの動作について説明する。
【００６１】
図３は、本発明の好適な実施例において使用されるメッセージ・パケット３００の概念図である。
【００６２】
本発明の好適な実施例においては、図３のメッセージ・パケット３００に含まれるメッセージタイプ３０１は、エージェント・コミュニケーション言語（ＡＣＬ：Agent Communication Language）のパフォーマティブが使用されている。ＡＣＬは、エージェント間のコミュニケーションを人間の言葉に近い形で提供している高級言語である。
【００６３】
これらのエージェント・コミュニケーション言語には、ＦＩＰＡ（Foundation for Intelligent Physical Agents)の提供しているＡＣＬや、ＫＱＭＬ(Knowledge Query Manipulation Language)、ＫＩＦ(Knowledge Interchange Format)等があり、これらの言語は、"SEMANTICS FOR AN AGENT COMMUNICATION LANGUAGE, Yannis Labrou, A Doctoral Dissertation for the PhD Defense Examination, Submitted to the Defense Committee, at the Computer Science and Electrical Engineering Department (CSEE), University of Maryland Graduate School"や"TR CS-97-03, A Proposal for a new KQML Specification, Yannis Labrou and Tim Finin February 3, 1997"等により公表されている。
【００６４】
ＡＣＬの１つであるＫＱＭＬのパフォーマティブには次のようなものがある。
ask-if,ask-all,ask-one,stream-all,eos,tell,untell,deny,insert,uninsert,delete-one,delete-all,undelete,achieve,unachieve,advertise,unadvertise,subscribe,error,sorry,standby,ready,next,rest,discard,register,unregister,forward,broadcast,transport-address,broker-one,broker-all,recommend-one,recommend-all,recruit-one,recruit-all
【００６５】
センダー３０３は、メッセージの送出元であり、レシーバ３０５は、メッセージの受け取り先である。
【００６６】
応答ＩＤ３０７は、先行する会話に続くＩＤである。エージェント２０１が複数の相手と会話する場合、後述する会話スレッドに対応して複数の応答ＩＤが割りふられる。
【００６７】
会話ＩＤ３０９は、会話相手にこのＩＤで応答することを指示するためのＩＤである。
【００６８】
記述言語タイプ３１１は、コンテントを記述している言語を特定する情報である。オントロジー３１３は、コンテントが規定しているオントロジーを特定する情報である。本発明の好適な実施例にいてはチケット購入オントロジー、数値計算オントロジー、株式情報オントロジー、イエローページ・オントロジー等が提供されている。
【００６９】
コンテント３１５は、メッセージの具体的内容であり、本発明の好適な実施例においては、他のプレースに移動した後にインストラクションを形成するためのソフトウエアを含んでいる。このコンテント３１５の内部には、さらにメッセージ・パケットを含めることもでき、中継点を介して、他のプレースに移動させることもできる。本発明の好適な実施例においては、かかる場合、センダー３０３とレシーバ３０５とは別に、真の送信者と最終的な受信者をしめすＦｒｏｍエントリとｔｏエントリが設けられている。
【００７０】
図４は、本発明の好適な実施例における各エージェントの動作状態を示す概念図である。
【００７１】
図において、各サービス・プロバイダ・エージェント１３１、１３３、１３５は、エージェント・コミュニティ１５０への導入時に、夫々が有している能力や、名称、アドレス等をファシリテータ・エージェント１１０に申告し、ファシリテータ・エージェント１１０は、申告された情報をファシリテータ・アドバタイズ・テーブル１５１に格納している。
【００７２】
図５は、ファシリテータ・アドバタイズ・テーブル１５１とブローカ・アドバタイズ・テーブル１４１の概念図である。ファシリテータ・アドバタイズ・テーブル１５１には、図に示すようにファシリテータ・エージェント１１０が管理するエージェント（サービス・プロバイダ・エージェント、ブローカ・エージェント、レギュラ・エージェント等）から送出されたメッセージ・パケットをリスト構造で保持されている。
【００７３】
各アドバタイズ・メッセージ・パケットには、"broker-all"等のそのエージェントが処理可能なメッセージ・タイプ３０１、"anACL"等のそのエージェントが理解可能な記述言語タイプ３１１、"travel"等のそのエージェントが有しているインタプリタの種類（オントロジー３１３）や"travel"等のそのエージェントが提供するサービスの種類等のそのエージェントの有する能力等の種別情報と、"airlineA"等のエージェント名、"www.airlineA"等のエージェントにアクセスするためのアドレス情報、"airline_resvation"等のそのエージェントを起動するためのクラス名等のエージェント特定情報が含まれている。
【００７４】
エージェント・コミュニティ１５０に存在する他のエージェントは、このファシリテータ・アドバタイズ・テーブル１５１を参照してもらうことによって、所望の能力を有するサービス・プロバイダ・エージェントをポイントし、処理依頼を送出することができる。
【００７５】
トラベル・ブローカ・エージェント１２１は、このファシリテータ・アドバタイズ・テーブル１５１を参照してもらうことによって、自分の請け負う仕事に関連するサービス・プロバイダ・エージェントを抽出し、ファシリテータ・アドバタイズ・テーブル１５１とほぼ同様の構造を有するブローカ・アドバタイズ・テーブル１４１を生成する。
【００７６】
本発明の好適な実施例において、ファシリテータ・アドバタイズ・テーブル１５１とブローカ・アドバタイズ・テーブル１４１との相違点は、管理対象が所定のカテゴリー、記述言語、オントロジー等の条件に一致したサービス・プロバイダ・エージェントを抽出している点のみであるが、ブローカ・アドバタイズ・テーブル１４１は、それを保有するブローカ・エージェント１２１の参照する特定の種別情報（オントロジーのみ、カテゴリーのみ、メッセージタイプ＋サブカテゴリー＋記述言語等）のみを抽出し、これに対応したサービス・プロバイダ・エージェントにアクセスするための最低限の情報を管理すればよいため、ファシリテータ・アドバタイズ・テーブル１５１とは異なる構造のテーブルとして管理してもよい。
【００７７】
また、ファシリテータ・アドバタイズ・テーブル１５１と全く同様のアドバタイズ・テーブルを保持し、レギュラ・エージェントからの処理依頼を受領する毎に、一定の条件のサービス・プロバイダ・エージェントを探索してもよい。さらに、本発明の一態様においては、ブローカ・エージェントは、レギュラ・エージェントからの処理依頼を受領する毎に、ファシリテータ・エージェント１１０に、一定の条件のサービス・プロバイダ・エージェント対して処理依頼をフォワードするよう依頼し、または、一定の条件のサービス・プロバイダ・エージェントを紹介してもらうため、ブローカ・アドバタイズ・テーブル１４１を保持しない。
【００７８】
図６は、ファシリテータ・エージェントにアクセスし、ブローカ・アドバタイズ・テーブル１４１にサービス・プロバイダ・エージェントを登録する手順を示すオブジェクト・インタラクション・ダイアグラムである。
【００７９】
まずトラベル・ブローカ・エージェント１２１が、ファシリテータ・エージェント１１０のライフサイクル管理機構に「自分の名前（オブジェクト名）」、「自分のいる場所(URL等)」、「自分自身のクラス名」を登録する。
【００８０】
次にトラベル・ブローカ・エージェント１２１は、ファシリテータ・エージェント１１０に対し、ファシリテータ・アドバタイズ・テーブル１５１に、カテゴリー、サブカテゴリー 、クラス名、エージェント名を登録するエージェント（この場合は、ファシリテータ・エージェント自身）を紹介してくれるよう依頼する。
【００８１】
ファシリテータ・エージェント１１０は、このリクエスト以前にアドバタイズされたレコードを検索し、その条件に合致するエージェントを見つけたら、そのアドバタイズ・レコードをコンテントにしたメッセージ・パケットを生成し、ブローカ・エージェントに返す。
【００８２】
トラベル・ブローカ・エージェント１２１は、この回答は、ファシリテータ・エージェント１１０自身であることがわかったので、ファシリテータ・エージェント１１０に対して、インサートのメッセージ パケットを投げ、自分の情報をファシリテータ・エージェント１１０が保持するデータベースに入れてもらう。
【００８３】
そして、トラベル・ブローカ・エージェント１２１は、自分の能力をアドバタイズする。すなわち、「自分に対して、broker-all(ask-all(:ontology = Travel, :content =(flight...)))という形式のメッセージを投げると答えることができます。」ということを表明する。
【００８４】
トラベル・ブローカ・エージェント１２１は、ファシリテータ・エージェント１１０に「YellowPageオントロジーで、コンテントの中に、:flightという情報を持っているエージェントに対する ask-allをsubscribeできるエージェントを紹介して（recommend-one）してください。」と伝える。
【００８５】
トラベル・ブローカ・エージェント１２１は、ファシリテータ・エージェント１１０から返された答えにより、ファシリテータ・エージェント１１０が、その能力を持っていることがわかったので、ファシリテータ・エージェント１１０に対して、subscribe(ask-all(:ontology=YellowPage, :content(:flight ...))) を投げる。
【００８６】
現在は、この問い合わせに合致するような、アドバタイズレコードが無いので、tellの答えの中は、nothingになっている。subscribeに対しては、現在のファシリテータ・アドバタイズ・テーブル１５１の状況を知らせるために、tellが１つ即座に返される。
【００８７】
その後、１つのサービス・プロバイダ・エージェントが立ち上がり、ファシリテータ・エージェント１１０に対し登録し、自分の情報をinsertできる相手を聞く。
【００８８】
サービス・プルパイダー・エージェントは、ファシリテータ・エージェント１１０からの答えはファシリテータ・エージェント１１０であるとわかったので、自分の情報をファシリテータ・エージェント１１０のファシリテータ・アドバタイズ・テーブル１５１にinsertする。
【００８９】
１つのサービス プロバイダが立ち上がり、 ファシリテータ・エージェント１１０のデータベースがアップデートされたので、これを検出したファシリテータ・エージェント１１０は、この情報をsubscribeしているエージェントがいるかどうかを、自分の持っているテーブルを走査する。この例では、ブローカ・エージェント１２１が見つかる。そして、ブローカ・エージェント１５１に、notifyとして、tellメッセージを送る。
【００９０】
本発明の好適な実施例においては、上述のようなサービス・プロバイダ・エージェントを登録手順を採用しているので、ブローカ・エージェントやサービス・プロバイダ・エージェントの導入に対してダイナミックに対応することができる。ただし、このようなサービス・プロバイダ・エージェントやブローカ・エージェントの導入にダイナミックに対応することができる方式は、本発明の好適な実施例の一態様にすぎず、単にブローカ・エージェントがその導入時や起動時にファシリテータ・エージェント１１０にアクセスし、必要な情報を抽出し、または、全てのエージェント情報を受領した後に選択し、必要となる情報をブローカ・エージェントが利用できる状態にすればよい。
【００９１】
次に本発明の好適な実施例におけるレギュラ・エージェントから処理依頼を受けたブローカ・エージェントの動作状態を図７、８のオブジェクト・インタラクション・ダイアグラムを用いて説明する。
【００９２】
まず、レギュラ・エージェント１０１は、ファシリテータ・エージェント１１０のファシリテータ・アドバタイズ・テーブル１５１に対して、トラベル・ブローカ・エージェント１２１の場所を聞き、その返事を受領する。
【００９３】
次に、トラベル・ブローカ・エージェント１２１の場所を知ったレギュラ・エージェント１０１は、「オントロジーがTravelで飛行機のflight情報を聞いて答えられるエージェント全員に、この仕事を請け負って(broker)もらってください。」というリクエストをブローカ・エージェント１２１に送る。このときの、broker-allに対する :languageがkqmlで:ontologyがtravel-ontologyになっている。これによって、トラベル・ブローカ・エージェント１２１の保持するインタプリタの１つであるトラベル・インタプリタ指定され、処理を担当することになる。
【００９４】
トラベル・ブローカ・エージェント１２１のトラベル・インタプリタは、broker-allのメッセージを、内部的にrecruit-all(エージェントを雇うという意味)に変換して、事前に、アドバタイズパーフォーマティブにより能力を提示している各サービス・プロバイダ・エージェントへリクエストを投げる。
【００９５】
各サービス・プロバイダ・エージェントはこれに対し情報を返してくる。forwardパーフォーマティブには、メッセージのオリジネーターがメッセージ・パケットの中の:fromキーワードに記述されている。本発明の好適な実施例においては、ある一定時間に返事がない場合は、返事を無視することとしている。
【００９６】
トラベル・ブローカ・エージェント１２１は、各サービス プロバイダからの情報をリスト構造に変換し、クライアントであるレギュラ・エージェントに返す。
【００９７】
図８は、本発明の他の態様の実施例におけるレギュラ・エージェントから処理依頼を受けたブローカ・エージェントの動作状態を示すオブジェクト・インタラクション・ダイアグラムである。
【００９８】
図において、まず、レギュラ・エージェント１０１トラベル・ブローカ・エージェントに対して、「オントロジーがTravelで飛行機のflight情報を聞いて答えられるエージェントで、subscribeされる能力があるエージェントを雇って(recruit-one)この仕事をさせてください。」という旨の依頼をする。
【００９９】
これを受領したトラベル・ブローカ・エージェント１２１は、ファシリテータ・エージェント１１０に対して、「オントロジーがTravelで飛行機のflight情報を聞いて答えられるエージェントで、subscribeされる能力があるエージェント」がコミュニティに存在するか否かの問い合わせを行う。
【０１００】
問い合わせの相手を見つけたトラベル・ブローカ・エージェント１２１は、そのサービス・ブローカ・エージェントに対してsubscribeのリクエストをforwardで包んで投げる。このときメッセージ・パケットを変換し、コンテンツのオントロジーをTravelする。この一番内側のコンテンツは、サービス・プロバイダであるエアライン・エージェントが持っているインタープリターが処理をする。
【０１０１】
これを受領したエアライン・エージェントはフライト情報を直接レギュラ・エージェント１０１に送信する。また、フライト情報がアップデートされたら通知する。
【０１０２】
以上説明した実施例においては、ブローカ・エージェント１２１は、同種のサービス・プロバイダ・エージェントに対して処理を依頼し、また、その処理結果を受領して変換を行っていたが（２番目の実施例においては、サービス・プロバイダ・エージェントからレギュラ・エージェントに直接返事が返されている）、次に異種の処理を行うサービス・プロバイダ・エージェントへ処理を依頼する態様について、会議室の予約を例に説明する。
【０１０３】
この例においては、メッセージ・パケットには、reservationオントロジー、roomReservationオントロジー等の情報が含まれている。
【０１０４】
reservationオントロジーは、開始時刻、終了時刻、出席者リスト等のキーワードを有しており、roomReservationオントロジーは、reservationオントロジーの下位オントロジーとして定義され、会議に出席する人のリスト、会議室のある階、会議室の番号といったキーワードを有している。
【０１０５】
本発明の好適な実施例において、roomReservationオントロジーをつかさどるブローカは、次のように解釈するロジックを持っている。
【０１０６】
ロジック１：出席者リストに入っているそれそれの出席者の予定を管理するカレンダー エージェントに対し、各参加者の開始時刻と終了時刻の間の予定をask-ifメッセージなどのメッセージ パケットを作り、それを渡すことによって聞く。
【０１０７】
ロジック２：予定が開いている場合には、achieveメッセージを作り、それを渡すことによって、lockをかける（期限付き、または期限なし）。
【０１０８】
ロジック３：他のカレンダー・エージェントからの返答が、「その時間は空いていない」というものの場合は、クライアントに対して、sorryメッセージ作り、それを返す。
【０１０９】
ロジック４：クライアントが、時間を変更する旨のメッセージで会話を続けた場合は、ブローカ・エージェントは、各カレンダー・エージェントに対するlockをはずすために、再度achieveメッセージ作り、それを渡す。
【０１１０】
ロジック５：すべてのカレンダー・エージェントの時間が空いている場合には、会議室予約得エージェントに対して、部屋の空き状況をask-ifメッセージなどのメッセージ・パケットを作り、それを渡すことによって聞く。なお、会議室予約エージェントも、他のカレンダー エージェント達と同等に扱い、単に空き時間の問い合わせだけをし、全エージェントの時間が空いているまで、操作を繰り返すか、適宜クライアントのオペレーターのインタラクションに委ねる。または、各エージェント空き時間の集計を表にして表示するといった方式も採用することもできる。
【０１１１】
ロジック６：空いている場合には、予約をachieveメッセージ・パケットを作り、それを渡すことによって行う。
【０１１２】
ロジック７：空いていない場合には、クライアントに対して、sorryメッセージを作り、それを返す。この場合には、クライアントのオペレーターの判断が入る。ロジック４と同じく、リクエストの変更を行う等の何らかの他の手段をクライアントのオペレーターは昂じることとなる。
【０１１３】
次に、本発明の好適な実施例におけるブローカ・エージェントの実装方法について図９を参照しつつ説明する。ブローカ・エージェントの実装に際しては、broker-one,broker-all,recommend-one,recommend-all,recruit-one,recruit-all等に対するデフォルトの挙動として、:languageがkqmlで、:ontologyがkqml-ontologyであるものを提供する。
【０１１４】
このデフォルトの挙動を持っているクラスは、kqmlInterpreterクラスという名前がついていて、broker-one,broker-all,recommend-one,recommend-all,recruit-one,recruit-allを含めその他のパフォーマティブに対応するものをメソッドを持っている。ブローカ・エージェントは、このクラスをサブクラスし、メソッドをオーバーライドすることにより作られ、問題領域固有の処理を実現する。
【０１１５】
図９の下のサブクラスが、最初にクライアントからの要求を受け取り、例えば、travel-ontology特有の処理を行う。ただし、この場合コンテンツの記述は、kqmlで記述されている。super classである、kqmlInterpreterクラスでは、次のものが現在サポートされている。
【０１１６】
register, unregister, ask-one, ask-all, tell, insert, delete-one, advertise, unadvertise, recommend-all, recommend-one sorry, error, subscribe, discard, forward, broker-one, broker-all, recruit-one, recruit-allこれらは、LifeCycleオントロジー、Yellow Pageオントロジー、kqmlオントロジーのいずれかに属している。サブクラスする際は、適確なクラスをサブクラスすることになる。
【０１１７】
【発明の効果】
以上説明したように、本発明によれば、エージェントからの問い合わせに柔軟、高速かつ適切に対応することができるコミュニケーション・システムを提供することができる。
【０１１８】
本発明の一態様においては、エージェントの利用者の負担を軽減したコミュニケーション・システムを提供することができる。
【０１１９】
本発明の一態様においては、サービス・プロバイダ・エージェントの違いを吸収したコミュニケーション・システムを提供することができる。
【０１２０】
本発明の一態様においては、各サービス・プロバイダ・エージェントから受領した複数種類の処理結果を基に所望の処理結果を構築することのできるコミュニケーション・システムを提供することができる。
【０１２１】
本発明の一態様においては、タスクの分配による高速な処理を可能とするコミュニケーション・システムを提供することができる。
【０１２２】
本発明の一態様においては、各種エージェントの導入をダイナミックに行うことができる拡張性の高いコミュニケーション・システムを提供することができる。
【０１２３】
本発明の一態様においては、エージェント間のコミュニケーションをサポートするに際し、プログラマの開発や保守に要する労力及び時間を可能な限り軽減することができる。
【０１２４】
本発明の一態様においては、エージェント間の会話に柔軟に対応することができるコミュニケーション・システムを提供することができる。
【０１２５】
本発明の一態様においては、通信システムへの負担が少ないメッセージ処理システムを提供することができる。
本発明の構成を以下にまとめて開示する。
（１）  メッセージ・パケットを送信し且つ前記メッセージ・パケットの処理要求を行うレギュラ・エージェントとして機能する第１ノード・システムと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントとして機能する第２ノード・システムと、複数のサービス・プロバイダ・エージェントを特定するための特定情報及びその能力に関する種別情報を管理するファシリテータ・エージェントとして機能する第３ノード・システムとを含む分散コンピュータ環境に接続され、特定のオントロジーに関する仲介処理を行うブローカ・エージェントとして機能するメッセージ処理装置において、
（ａ）前記ファシリテータ・エージェントに問い合わせを実行し、少なくとも前記特定のオントロジーに関する１又は複数の前記サービス・プロバイダ・エージェントの特定情報及び種別情報を取得してテーブルに記録する段階と、
（ｂ）前記レギュラ・エージェントから送信されたメッセージ・パケットを受領する段階と、
（ｃ）前記テーブルを参照し、前記メッセージ・パケットに対応する所定の種別情報を有する１又は複数のサービス・プロバイダ・エージェントが利用可能であるか否かを検査する段階と、及び
（ｄ）前記メッセージ・パケットを変換し、当該パケットのコンテントを含むデータを、前記テーブルの特定情報に基づき前記利用可能なサービス・プロバイダ・エージェントに送信する段階と、
を実行する、メッセージ処理方法。
（２）  前記メッセージ処理装置が、
（ｅ）前記利用可能なサービス・プロバイダ・エージェントから応答メッセージ・パケットを受領する段階と、
（ｆ）前記受領した応答メッセージ・パケットを変換して、前記レギュラ・エージェントに返信する段階と、
をさらに実行する、（１）に記載のメッセージ処理方法。
（３）  メッセージ・パケットを送信し且つ前記メッセージ・パケットの処理要求を行うレギュラ・エージェントとして機能する第１ノード・システムと、前記メッセージ・パケットを処理する複数のサービス・プロバイダ・エージェントとして機能する第２ノード・システムと、複数のサービス・プロバイダ・エージェントを特定するための特定情報及びその能力に関する種別情報を管理するファシリテータ・エージェントとして機能する第３ノード・システムとを含む分散コンピュータ環境に接続され、特定のオントロジーに関する仲介処理を行うブローカ・エージェントとして機能するメッセージ処理装置であって、
（ａ）前記ファシリテータ・エージェントに問い合わせを実行して取得される、少なくとも前記特定のオントロジーに関する１又は複数の前記サービス・プロバイダ・エージェントの特定情報及び種別情報を記録するテーブルと、
（ｂ）前記レギュラ・エージェントから送信されたメッセージ・パケットを受領して解析し、当該メッセージ・パケットに対応する所定の種別情報を有する１又は複数のサービス・プロバイダ・エージェントが利用可能であるか否かを前記テーブルを参照して特定する手段と、及び
（ｃ）前記メッセージ・パケットを変換し、当該パケットのコンテントを含むデータを、前記テーブルの特定情報に基づき前記利用可能なサービス・プロバイダ・エージェントに送信する手段と、
を含むメッセージ処理装置。
（４）  （ｄ）前記利用可能なサービス・プロバイダ・エージェントから応答メッセージ・パケットを受領し、当該受領した応答メッセージ・パケットを変換して、前記レギュラ・エージェントに返信する手段をさらに含む、
（３）に記載のメッセージ処理装置。
【０１２６】
【図面の簡単な説明】
【図１】  本発明のエージェントが動作するエージェント・コミュニティの概念図である。
【図２】  本発明におけるエージェント・コミュニティを形成するための分散ネットワーク上の１つのノードにおけるハードウェア構成の一実施例を示すブロック図である。
【図３】  本発明のメッセージ・パケットの一例を示す概念図である。
【図４】  本発明の好適な実施例における各エージェントの動作状態を示す概念図である。
【図５】  本発明の好適な実施例におけるファシリテータ・アドバタイズ・テーブル１５１とブローカ・アドバタイズ・テーブル１４１の概念図である。
【図６】  本発明の好適な実施例におけるコンポーネント間のオブジェクト・インタラクション・ダイアグラムである。
【図７】  本発明の好適な実施例におけるコンポーネント間のオブジェクト・インタラクション・ダイアグラムである。
【図８】  本発明の好適な実施例におけるコンポーネント間のオブジェクト・インタラクション・ダイアグラムである。
【図９】  本発明の好適な実施例におけるブローカ・エージェントの構造を示す概念図である。
【図１０】  従来技術におけるエージェント・コミュニティの概念図である。
【符号の説明】
１００  ノード・システム
１０１、１０３  レギュラ・エージェント
１１０  ファシリテータ・エージェント
１２１  トラベル・ブローカ・エージェント
１２３  ジョブ・アロケーション・ブローカ・エージェント
１３１、１３３、１３５  サービス・プロバイダ・エージェント
１５０  エージェント・コミュニティ
【図１】
0003954689.tif 000002
【図２】
0003954689.tif 000003
【図３】
0003954689.tif 000004
【図４】
0003954689.tif 000005
【図５】
0003954689.tif 000006
【図６】
0003954689.tif 000007
【図７】
0003954689.tif 000008
【図８】
0003954689.tif 000009
【図９】
0003954689.tif 000010
【図１０】
0003954689.tif 000011