(57)【特許請求の範囲】
【請求項１】
ネットワーク上で互いに通信しながら自律的に動作するソフトウェアであるエージェント間の通信内容を監視する方法であって、
エージェントの活動内容をコンピュータ上で処理可能な電子化した情報で表したプリンシパルについて、それぞれのプリンシパルに関してそのプリンシパルに特徴づけられるコミュニティを生成すべき価値があるかそうでないかを判別する情報を保持するプリンシパルサーバーと、エージェントの動作の基盤となる基本ソフトウェアであるエージェント実行環境及び１つ以上のエージェントが動作するホストコンピュータと、これらを接続するネットワークとを用い、
ホストコンピュータが、エージェントによってエージェント間通信で運ばれるメッセージの保持する型を表す情報をエージェント実行環境に与え、
ホストコンピュータが、エージェントによってエージェント間通信で運ばれるメッセージの内容からプリンシパルの候補を得るための変換方法を表す情報をエージェント実行環境に与え、
ホストコンピュータが、エージェント実行環境によって一のエージェントが他のエージェントに対して行う通信を検知し、
ホストコンピュータが、エージェント実行環境によって与えられたメッセージの保持する型を表す該情報及び変換方法を表す該情報に従って少なくとも１つのプリンシパルを取得し、
ホストコンピュータが、エージェント実行環境によって該取得した少なくとも１つのプリンシパルに関してそのプリンシパルに特徴づけられるコミュニティを生成すべき価値があるかそうでないかをプリンシパルサーバーに問い合わせる通信を行い、
ホストコンピュータが、エージェント実行環境によって該通信の結果を基に少なくとも１つのプリンシパルを選択する
ことを特徴とするエージェント間の通信内容の監視方法。
【請求項２】
請求項１記載のエージェント間の通信内容の監視方法において、
ホストコンピュータが、エージェント実行環境によって必要に応じてプリンシパルサーバーが保持する情報の一部または全部を複製して保持し、
ホストコンピュータが、エージェント実行環境によって該取得した少なくとも１つのプリンシパルに関してそのプリンシパルに特徴づけられるコミュニティを生成すべき価値があるかそうでないかを複製情報から検索し、
ホストコンピュータが、エージェント実行環境によって該検索の結果を基に少なくとも１つのプリンシパルを選択する
ことを特徴とするエージェント間の通信内容の監視方法。
【請求項３】
請求項１または２記載のエージェント間の通信内容の監視方法において、
複数台のプリンシパルサーバーを用い、
ホストコンピュータが、エージェント実行環境によって各プリンシパルサーバーに異なる番号を付し、
ホストコンピュータが、エージェント実行環境によってプリンシパルの計算機上のデータ表現に施すことで前記番号が得られる何らかの演算を定め、
ホストコンピュータが、エージェント実行環境によって各プリンシパルを前記演算を施して得られる番号に対応するプリンシパルサーバーのみに格納し、
ホストコンピュータが、エージェント実行環境によって該取得した少なくとも１つのプリンシパルに関してそのプリンシパルに特徴づけられるコミュニティを生成すべき価値があるかそうでないかをプリンシパルサーバーに問い合わせる通信を行う際、まず該プリンシパルに前記演算を施して前記番号を得て、その番号に対応するプリンシパルサーバーのみに行う
ことを特徴とするエージェント間の通信内容の監視方法。
【請求項４】
ネットワーク上で互いに通信しながら自律的に動作するソフトウェアであるエージェントの集合であり、その活動内容をコンピュータ上で処理可能な電子化した情報で表したプリンシパルが少なくとも１つ共通するエージェントの集合であるコミュニティを生成する方法であって、
エージェントの活動内容をコンピュータ上で処理可能な電子化した情報で表したプリンシパルについて、それぞれのプリンシパルに関してそのプリンシパルに特徴づけられるコミュニティを生成すべき価値があるかそうでないかを判別する情報を保持するプリンシパルサーバーと、エージェントの動作の基盤となる基本ソフトウェアであるエージェント実行環境及び１つ以上のエージェントが動作するホストコンピュータと、これらを接続するネットワークとを用い、
ホストコンピュータが、エージェント実行環境によって請求項１乃至３いずれか記載のエージェント間の通信内容の監視方法によりエージェント間の通信内容を監視してプリンシパルを選択し、
ホストコンピュータが、エージェント実行環境によって周辺のエージェントが同じプリンシパルの通信を行っていないかを調査し、
ホストコンピュータが、エージェント実行環境によって調査の結果、多数のエージェントが同じプリンシパルの通信を行っている場合は、そのプリンシパルによって特徴づけられるコミュニティを生成する
ことを特徴とするコミュニティの生成方法。
【請求項５】
請求項４記載のコミュニティの生成方法において、
ホストコンピュータが、エージェント実行環境によって他のエージェントから出されたコミュニティ参照要求の履歴を保存し、
ホストコンピュータが、エージェント実行環境によって調査の際、前記コミュニティ参照要求の履歴に残されているプリンシパルについての調査を優先的に行う
ことを特徴とするコミュニティの生成方法。
【請求項６】
請求項４または５記載のコミュニティの生成方法によって生成されたコミュニティを管理する方法であって、
エージェントの活動内容をコンピュータ上で処理可能な電子化した情報で表したプリンシパルについて、それぞれのプリンシパルに関してそのプリンシパルに特徴づけられるコミュニティを生成すべき価値があるかそうでないかを判別する情報を保持するプリンシパルサーバーと、エージェントの動作の基盤となる基本ソフトウェアであるエージェント実行環境及び１つ以上のエージェントが動作するホストコンピュータと、コミュニティとそれに含まれるエージェントの情報を保持するコミュニティサーバーと、これらを接続するネットワークとを用い、
ホストコンピュータが、エージェント実行環境によってコミュニティサーバーに請求項４または５記載のコミュニティの生成方法により生成されたコミュニティに関して該コミュニティに含まれるエージェントの情報を登録し、
ホストコンピュータが、エージェント実行環境によって請求項１乃至３いずれか記載のエージェント間の通信内容の監視方法によりエージェント間の通信内容を監視してプリンシパルを選択し、
ホストコンピュータが、エージェント実行環境によって該選択されたプリンシパルによって特徴づけられるコミュニティが生成済みかどうかをコミュニティサーバーに問い合わせる通信を行い、
コミュニティが生成済みであった場合はコミュニティサーバーが保持するそのコミュニティに含まれるエージェントの情報に該エージェント間通信を行ったエージェントを追加し、更新する
ことを特徴とするコミュニティの管理方法。
【請求項７】
請求項６記載のコミュニティの管理方法において、
ホストコンピュータが、エージェント実行環境によって必要に応じてコミュニティサーバーが保持する情報の一部または全部を複製して保持し、
ホストコンピュータが、エージェント実行環境によってコミュニティサーバーに該選択されたプリンシパルによって特徴づけられるコミュニティが生成済みかどうかを問い合わせる際、該エージェント実行環境が情報の複製を保持していればそれを利用し、
ホストコンピュータが、エージェント実行環境によってコミュニティサーバーが保持する情報を更新する際、該エージェント実行環境が情報の複製を保持していればそれを更新し、かつ任意の確率でコミュニティサーバーが保持する情報の更新を一時延期し、
ホストコンピュータが、エージェント実行環境によって一定時間経過後もしくは延期中にコミュニティサーバーに該情報の更新とは別の情報の更新が発生した時に延期していたコミュニティサーバーが保持する情報の更新を実施する
ことを特徴とするコミュニティの管理方法。
【請求項８】
請求項６記載のコミュニティの管理方法において、
複数台のコミュニティサーバーを用い、
それぞれのコミュニティサーバーが請求項４または５記載のコミュニティの生成方法によって生成された複数のコミュニティについての該コミュニティに含まれるエージェントの情報を重複して管理し、
ホストコンピュータが、エージェント実行環境によってコミュニティの生成もしくは更新処理をいずれか一つのコミュニティサーバーに依頼する通信を行い、
依頼を受けたコミュニティサーバーは該コミュニティサーバーが管理する情報を更新し、
該依頼を受けたコミュニティサーバーは任意の確率で該情報の更新を即座に他のコミュニティサーバーに通知する通信を行い、
該依頼を受けたコミュニティサーバーは通知しなかった情報の更新を一定時間経過後に他のコミュニティサーバーに通知する通信を行う
ことを特徴とするコミュニティの管理方法。
【請求項９】
請求項６記載のコミュニティの管理方法において、
複数台のコミュニティサーバーを用い、
それぞれのコミュニティサーバーが請求項４または５記載のコミュニティの生成方法によって生成された複数のコミュニティについての該コミュニティに含まれるエージェントの情報を排他的に管理し、
この際、ホストコンピュータが、エージェント実行環境によってそのコミュニティを特徴づけるプリンシパルの特徴に応じて管理すべきコミュニティサーバーを割り振り、
各コミュニティサーバーはそれぞれのコミュニティがどのコミュニティサーバーで管理されているかについての情報を全て保持し、
ホストコンピュータが、エージェント実行環境によってあるコミュニティに関しての処理をコミュニティサーバーに依頼する際、そのコミュニティを特徴づけるプリンシパルの特徴に応じて処理を依頼すべきコミュニティサーバーを決定して処理を依頼する通信を行い、
依頼を受けたコミュニティサーバーはそのコミュニティサーバーが該コミュニティの情報を管理していれば処理を実行し、管理していなければ該コミュニティの情報を管理しているコミュニティサーバーにエージェント実行環境からの処理依頼を転送する通信を行う
ことを特徴とするコミュニティの管理方法。
【請求項１０】
ネットワーク上で互いに通信しながら自律的に動作するソフトウェアであるエージェント間の通信内容を監視するプログラムを記録したコンピュータ読み取り可能な媒体であって、
エージェントの活動内容をコンピュータ上で処理可能な電子化した情報で表したプリンシパルについて、それぞれのプリンシパルに関してそのプリンシパルに特徴づけられるコミュニティを生成すべき価値があるかそうでないかを判別する情報を保持するプリンシパルサーバーと、エージェントの動作の基盤となる基本ソフトウェアであるエージェント実行環境及び１つ以上のエージェントが動作するホストコンピュータと、これらを接続するネットワークとを用い、
前記プログラムはホストコンピュータに読み取られた時、該ホストコンピュータに、
エージェントによってエージェント間通信で運ばれるメッセージの保持する型を表す情報をエージェント実行環境に与え、
エージェントによってエージェント間通信で運ばれるメッセージの内容からプリンシパルの候補を得るための変換方法を表す情報をエージェント実行環境に与え、
エージェント実行環境によって一のエージェントが他のエージェントに対して行う通信を検知し、
エージェント実行環境によって与えられたメッセージの保持する型を表す該情報及び変換方法を表す該情報に従って少なくとも１つのプリンシパルを取得し、
エージェント実行環境によって該取得した少なくとも１つのプリンシパルに関してそのプリンシパルに特徴づけられるコミュニティを生成すべき価値があるかそうでないかをプリンシパルサーバーに問い合わせる通信を行い、
エージェント実行環境によって該通信の結果を基に少なくとも１つのプリンシパルを選択する処理を実行させる
ことを特徴とするエージェント間の通信内容の監視プログラムを記録したコンピュータ読み取り可能な媒体。
【請求項１１】
ネットワーク上で互いに通信しながら自律的に動作するソフトウェアであるエージェントの集合であり、その活動内容をコンピュータ上で処理可能な電子化した情報で表したプリンシパルが少なくとも１つ共通するエージェントの集合であるコミュニティを生成するプログラムを記録したコンピュータ読み取り可能な媒体であって、
エージェントの活動内容をコンピュータ上で処理可能な電子化した情報で表したプリンシパルについて、それぞれのプリンシパルに関してそのプリンシパルに特徴づけられるコミュニティを生成すべき価値があるかそうでないかを判別する情報を保持するプリンシパルサーバーと、エージェントの動作の基盤となる基本ソフトウェアであるエージェント実行環境及び１つ以上のエージェントが動作するホストコンピュータと、これらを接続するネットワークとを用い、
前記プログラムはホストコンピュータに読み取られた時、該ホストコンピュータに、
エージェント実行環境によって請求項１０記載のエージェント間の通信内容の監視プログラムを記録したコンピュータ読み取り可能な媒体をホストコンピュータに読み取らせることによりエージェント間の通信内容を監視してプリンシパルを選択し、
エージェント実行環境によって周辺のエージェントが同じプリンシパルの通信を行っていないかを調査し、
エージェント実行環境によって調査の結果、多数のエージェントが同じプリンシパルの通信を行っている場合は、そのプリンシパルによって特徴づけられるコミュニティを生成する処理を実行させる
ことを特徴とするコミュニティの生成プログラムを記録したコンピュータ読み取り可能な媒体。
【請求項１２】
請求項１１記載のコミュニティの生成プログラムを記録したコンピュータ読み取り可能な媒体をホストコンピュータに読み取らせることによって生成されたコミュニティを管理するプログラムを記録したコンピュータ読み取り可能な媒体であって、
エージェントの活動内容をコンピュータ上で処理可能な電子化した情報で表したプリンシパルについて、それぞれのプリンシパルに関してそのプリンシパルに特徴づけられるコミュニティを生成すべき価値があるかそうでないかを判別する情報を保持するプリンシパルサーバーと、エージェントの動作の基盤となる基本ソフトウェアであるエージェント実行環境及び１つ以上のエージェントが動作するホストコンピュータと、コミュニティとそれに含まれるエージェントの情報を保持するコミュニティサーバーと、これらを接続するネットワークとを用い、
前記プログラムはホストコンピュータに読み取られた時、該ホストコンピュータに、
エージェント実行環境によってコミュニティサーバーに請求項１１記載のコミュニティの生成プログラムを記録したコンピュータ読み取り可能な媒体をホストコンピュータに読み取らせることにより生成されたコミュニティに関して該コミュニティに含まれるエージェントの情報を登録し、
エージェント実行環境によってエージェント間の通信内容を監視してプリンシパルを選択し、
エージェント実行環境によって該選択されたプリンシパルによって特徴づけられるコミュニティが生成済みかどうかをコミュニティサーバーに問い合わせる通信を行い、
コミュニティが生成済みであった場合はコミュニティサーバーが保持するそのコミュニティに含まれるエージェントの情報に該エージェント間通信を行ったエージェントを追加し、更新する処理を実行させる
ことを特徴とするコミュニティの管理プログラムを記録したコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エージェント間の通信内容を監視する方法、エージェントの集合であるコミュニティを生成する方法及び管理する方法、並びにそれらのプログラムを記録した媒体に関するものである。
【０００２】
【従来の技術】
「ＥｃＡｇｅｎｔ：緩やかなコミュニティに基づくエージェントの実行環境」（１９９９年電子情報通信学会ソサイエティ大会論文集ＳＢ１１−５）には、エージェントの集合であるコミュニティを生成し、管理し、コミュニティを用いてユーザー間で情報を流通し、またはコミュニティを用いて資源の予約を行う枠組みである「ＥｃＡｇｅｎｔ」が示されている。
【０００３】
ＥｃＡｇｅｎｔによれば、従来の固定的、集中的なサーバーに基づく方式では不可能であった、どのユーザーも事前に予測し得なかった情報でも他のユーザーに流通させることのできる情報流通方法を実現でき、また、確定的でなく、必ずしも予約を必要としない資源予約を取り扱うことのできる資源予約方法を実現できる。
【０００４】
【発明が解決しようとする課題】
前記文献に示される方法では、エージェント間の通信内容を監視し分析することでコミュニティを生成し、また、コミュニティを管理することが動作上の重要な点となっている。監視及び分析には、ネットワーク上を飛び交うエージェント間の通信内容を全て解釈して、知識処理を行う必要がある。
【０００５】
しかし、前記文献では、それらコミュニティの生成及び管理のための効率的な方法について言及されていない。つまり、エージェント間の通信内容の監視及び分析には、ネットワーク上を飛び交うエージェント間の通信内容を全て解釈して知識処理を行うという、計算量の多い処理を単純に適用せざるを得ず、エージェント間の通信内容を監視してコミュニティを生成し、管理するシステムの実現のために必要な計算量が多くなるという問題があった。
【０００６】
このように、従来のエージェント間の通信内容を監視し、コミュニティを生成し、管理する方法では、実現のために必要な計算量が多いという問題があった。
【０００７】
本発明の目的は、これら従来の課題を解決し、少ない計算量でエージェント間の通信内容を監視する方法、コミュニティを生成する方法及び管理する方法、並びにそれらのプログラムを記録した媒体を提供することにある。
【０００８】
【課題を解決するための手段】
図１は本発明方法を実施するシステムの概要を示すもので、図中、１はネットワーク、２はエージェント、３はエージェント実行環境、４はプリンシパルサーバー、５はコミュニティサーバーである。
【０００９】
ここで、エージェント２は、ネットワーク１上で互いに通信しながら自律的に動作するソフトウェアである。また、エージェント実行環境３は、エージェント２の動作の基盤となる基本ソフトウェアであり、通常、ネットワーク１に接続されたホストコンピュータ（図示せず）上で動作する。
【００１０】
プリンシパルサーバー４は、エージェントの活動内容を表すプリンシパルの候補となる情報を管理する。コミュニティサーバー５は、プリンシパルが少なくとも１つ共通するエージェントの集合であるコミュニティとそれに含まれるエージェントに関する情報を管理する。
【００１１】
エージェント実行環境３（ホスト）、プリンシパルサーバー４及びコミュニティサーバー５は、それぞれ必要に応じて複数設置される。
【００１２】
図２は本発明のエージェント間の通信内容の監視方法の処理の流れを示すものである。
【００１３】
一般に、エージェント間通信を実装するためには通信の形式的な文法を表す情報が必要であり、エージェントのプログラマはその形式文法情報を、エージェントが動作するシステムによって予め決められた手順で記述することでエージェントのプログラムを作成する。
【００１４】
本発明では、エージェント２は動作に先だって、形式文法情報をエージェント実行環境３に与える（２１）。また、プリンシパルの抽出には、形式文法情報では表現されない通信内容の意味を示す情報も必要であり、エージェント２は動作に先だって、エージェント間通信の意味を示す追加情報をエージェント実行環境３に与える（２２）。また、ネットワーク１上にプリンシパルサーバー４を設置する。一般に、人工知能の研究分野において、プリンシパルサーバーは「オントロジーを格納するデータベース」として知られるものに相当する。
【００１５】
エージェント２が他のエージェント２に対して通信を行う（２３）と、エージェント実行環境３は通信を検知する（２４）。エージェント実行環境３は通信内容に対し、予め与えられた形式文法情報と追加情報に従って、プリンシパルの候補群を抽出する（２５）。また、エージェント実行環境３はプリンシパルサーバー４にプリンシパルの候補について問い合わせを行い（２６）、プリンシパルとして抽出すべきものを選ぶ（２７）。
【００１６】
本発明のエージェント間の通信内容の監視方法では、上記手順によって、目的とする少なくとも１つのプリンシパルを抽出する。
【００１７】
さらに、エージェント実行環境３は必要に応じて、予めプリンシパルサーバー４が保持する情報の一部または全部を複製して保持しておくことができる。エージェント実行環境３はプリンシパルサーバー４にプリンシパルの候補について問い合わせを行う際、既に複製を保持していれば、問い合わせ処理を省略でき、プリンシパルサーバー４の負荷を軽減できる。
【００１８】
プリンシパルサーバーの負荷を軽減する別の方法として、ネットワーク１上にプリンシパルサーバー４を複数台設置して行う方法がある。
【００１９】
この際、それぞれのプリンシパルサーバー４に異なる番号、例えば１からＮまでの整数による番号を付ける。プリンシパルはエージェントの活動内容を表すキーワードであるが、プリンシパルの計算機上のデータ表現に施すことで前述したプリンシパルサーバーの番号を得ることができる何らかの算術演算を定める。例えば、辞書順の分割やハッシュ関数等が利用できる。プリンシパルサーバー４に格納するプリンシパルの候補となる情報は、前記算術演算によって番号付けされるプリンシパルサーバー４のみに格納する。
【００２０】
エージェント実行環境３がプリンシパルサーバー４にプリンシパルの候補について問い合わせを行う際、まず問い合わせるプリンシパルの候補に前記算術演算を施して前記番号を得て、問い合わせるべきプリンシパルサーバー４を特定し、そのプリンシパルサーバー４のみに問い合わせを行う。
【００２１】
本方法によれば、プリンシパルサーバーの設置台数に応じて負荷を低減することができる。
【００２２】
図３は本発明のコミュニティの生成方法の処理の流れを示すものである。
【００２３】
エージェント実行環境３は、前述した方法によってエージェント間の通信内容を監視し、プリンシパルを抽出する（３１）。エージェント実行環境３は抽出したプリンシパルに対し、周辺のエージェント２が同じプリンシパルの通信を行っていないかを調査する（３２）。調査の結果、多数のエージェント２が同じプリンシパルの通信を行っている場合（３３）には、そのプリンシパルによって特徴づけられるコミュニティを生成する（３４）。
【００２４】
さらに、エージェント実行環境３は、必要に応じて、他のエージェントが利用しようとしてエージェント実行環境３に出したコミュニティ参照要求の履歴を、該コミュニティを特徴づけるプリンシパルを含めて保存しておくことができる。エージェント実行環境３が抽出したプリンシパルに対して周辺のエージェントが同じプリンシパルの通信を行っていないかを調査する際、必要に応じて前記コミュニティ参照要求の履歴に残されているプリンシパルについての調査を優先的に行うことにより、必要とされるコミュニティの生成を素早く行うことができる。
【００２５】
従って、エージェント実行環境３がコミュニティ生成処理を行う頻度を減らすことができるため、生成処理の負荷を軽減することができ、かつ、その場合でも必要とされるコミュニティの生成は十分素早く行われるため、本来の有効性を損ねることがない。
【００２６】
図４は本発明のコミュニティの管理方法の処理の流れを示すものである。
【００２７】
ネットワーク１上に、コミュニティとそれに含まれるエージェントの情報を保持するコミュニティサーバー５を設置する。エージェント実行環境３は生成したコミュニティに関する情報をコミュニティサーバー５に登録する。
【００２８】
エージェント実行環境３は、前述した方法によってエージェント間の通信内容を監視し、プリンシパルを抽出する（４１）。エージェント実行環境３は抽出したプリンシパルに対し、コミュニティサーバー５に問い合わせを行い（４２）、抽出されたプリンシパルによって特徴づけられるコミュニティが生成済みかどうかを判断する（４３）。
【００２９】
コミュニティが生成済みと判断された場合、エージェント実行環境３は、そのコミュニティに該エージェント間通信を行ったエージェント２を追加する。即ち、コミュニティサーバー５に情報の更新依頼を出し、コミュニティの内容を更新する（４４）。
【００３０】
コミュニティサーバーの負荷を軽減する方法として、エージェント実行環境３は必要に応じて、予めコミュニティサーバー５が保持する情報の一部または全部を複製して保持しておくことができる。エージェント実行環境３はコミュニティサーバー５に問い合わせを行う際、該エージェント実行環境３が情報の複製を保持していればそれを利用する。また、エージェント実行環境３はコミュニティサーバー５の情報を更新する際、該エージェント実行環境３が情報の複製を保持していればそれを更新し、かつ任意の確率でコミュニティサーバーの情報の更新を一時延期し、一定時間経過後もしくは延期中にコミュニティサーバーにさらなる情報更新の機会が発生した時に延期していたコミュニティサーバーの情報の更新を実施する。
【００３１】
本方法によれば、コミュニティサーバーへの問い合わせの回数及び情報更新の依頼回数を削減でき、コミュニティサーバーの負荷を低減することができる。
【００３２】
コミュニティサーバーの負荷を軽減する別の方法として、ネットワーク１上にコミュニティサーバー５を複数台設置して行う方法がある。この際、それぞれのコミュニティサーバー５に複数のコミュニティについての情報を重複して登録し、管理させる。
【００３３】
エージェント実行環境３はコミュニティサーバー５に問い合わせを行う際、いずれか一つのコミュニティサーバー５のみに問い合わせを行う。
【００３４】
エージェント実行環境３はコミュニティの生成もしくは更新処理をコミュニティサーバー５に依頼する際、いずれか一つのコミュニティサーバー５のみに生成もしくは更新処理を依頼する。依頼を受けたコミュニティサーバー５は該コミュニティサーバーが管理する情報を更新し、任意の確率でコミュニティサーバーの情報の更新を即座に他のコミュニティサーバー５に通知し、通知されなかった情報の更新は一定時間経過後に他のコミュニティサーバー５に通知する。
【００３５】
本方法によれば、コミュニティサーバーへの問い合わせの負荷をコミュニティサーバーの設置台数に応じて低減することができ、また、コミュニティサーバーへの情報更新の負荷も低減することができる。
【００３６】
コミュニティサーバーの負荷を軽減するさらに別の方法として、ネットワーク１上にコミュニティサーバー５を複数台設置し、それぞれのコミュニティサーバーに複数のコミュニティについての情報を排他的に登録し、管理させる方法がある。それぞれのコミュニティについての情報の登録の際、そのコミュニティを特徴づけるプリンシパルの特徴に応じて、管理すべきコミュニティサーバー５を割り振る。また、各コミュニティサーバー５はそれぞれのコミュニティがどのコミュニティサーバーで管理されているかについての情報を全て持つ。
【００３７】
エージェント実行環境３はあるコミュニティに関しての問い合わせや生成もしくは更新処理をコミュニティサーバー５に依頼する際、そのコミュニティを特徴づけるプリンシパルの特徴に応じて処理を依頼すべきコミュニティサーバー５を決定して処理を依頼する。
【００３８】
依頼を受けたコミュニティサーバー５は、そのコミュニティサーバーが該コミュニティの情報を管理していれば処理を実行し、管理していなければ該コミュニティの情報を管理しているコミュニティサーバー５にエージェント実行環境３からの処理依頼を転送する。
【００３９】
本方法によれば、コミュニティを特徴づけるプリンシパルの特徴に応じて管理すべきコミュニティサーバーを割り振り、エージェント実行環境がそれを推測して処理依頼する。この推測が正しくなる確率が高くなるようにコミュニティサーバーの割り振り手法を設定すれば、上記手順によって、コミュニティサーバー１台当たりが管理するコミュニティの数をコミュニティサーバーの設置台数に応じて減らすことができるため、コミュニティサーバーへの問い合わせの負荷をコミュニティサーバーの設置台数に応じて低減することができる。
【００４０】
【発明の実施の形態】
以下、図１乃至図４を用いて、本発明の実施の形態について説明する。
【００４１】
本実施の形態では、エージェント間通信手順として、標準化団体ＯＭＧで標準化された分散オブジェクト実行環境の仕様であるＣＯＲＢＡ仕様に基づく通信手段を用いるものとする。本実施の形態のエージェント実行環境３は、ＣＯＲＢＡの実行環境に追加の機能を加えたものとなる。
【００４２】
形式文法情報として、ＣＯＲＢＡのインターフェース記述言語（ＩＤＬ）によって書かれた、型情報を用いる。一般に、この情報はＣＯＲＢＡの分散オブジェクトが動作するために必須であり、ＣＯＲＢＡの実行環境に必ず与えられる（２１）。
【００４３】
エージェント間通信の意味を示す追加情報として、どの関数の何番目の引数にどの変換方法を適用するとプリンシパルの候補が得られるか、という情報を、エージェント実行環境３に与えておく（２２）。
【００４４】
ネットワーク１上にはプリンシパルサーバー４を複数台設置する。プリンシパルサーバー４は、プリンシパルの候補が残すべき意味のある情報かそうでないかを判別するための、語彙の一覧を持つ。各語彙は、特定のハッシュ関数によっていずれか一つのプリンシパルサーバー４と対応づけられ、格納される。
【００４５】
本実施の形態では、ネットワーク上１にコミュニティサーバー４を３台設置するものとする。２台は東京に設置し、同じ内容を保持するものとする。また、１台は大阪に設置し、関西方面に関係するコミュニティの情報を保持するものとする。
【００４６】
エージェント実行環境３は、プリンシパルサーバー４及びコミュニティサーバー５が保持する内容の一部を複製し、保持する。
【００４７】
エージェント２が他のエージェント２に対して通信、即ちＣＯＲＢＡ関数呼び出しを行う（２３）と、エージェント実行環境３は通信を検知する（２４）。通信内容に対して、予め与えられたＩＤＬ型情報と追加情報を用いて、関数呼び出しの引数の並びから、プリシンパルの候補となる情報を取り出す（２５）。
【００４８】
エージェント実行環境３は、プリンシパルの候補に対し、プリンシパルの確認を行う。
【００４９】
エージェント実行環境３がそのプリンシパルの内容について、プリンシパルサーバー４の情報の複製を保持していれば、その複製情報に基づいてプリンシパルとして抽出すべき意味のある情報であると判断できる。そうでなければ、エージェント実行環境３はハッシュ関数によって対応づけられるプリンシパルサーバー４に問い合わせを行い（２６）、プリンシパルとして抽出すべき意味のある情報かそうでないかを判別する。意味のある情報であれば、プリンシパルとして抽出する（２７）。
【００５０】
エージェント実行環境３は、抽出されたプリンシパルに対し、コミュニティサーバー５に問い合わせを行い（４２）、抽出されたプリンシパルによって特徴づけられるコミュニティが生成済みかどうかを判断する（４３）。
【００５１】
ここで、エージェント実行環境３が、そのプリンシパルで特徴づけられるコミュニティに関する情報を、コミュニティサーバー５から複製し保持していれば、それを用いることでコミュニティサーバー５への問い合わせを省略できる。そうでなければ、問い合わせるコミュニティサーバー５として、該プリンシパルが関西方面に関係する語彙であれば大阪に設置したサーバーに、そうでなければ東京に設置した２台のサーバーのいずれか一方を選択して問い合わせを行う。
【００５２】
コミュニティが生成済みと判断された場合、エージェント実行環境３は、そのコミュニティに該エージェント間通信を行ったエージェント２を追加する。即ち、コミュニティサーバー５に情報の更新依頼を出し、エージェント実行環境３が複製情報を持っていればそれを更新する（４４）。
【００５３】
また、コミュニティが未生成と判断された場合、エージェント実行環境３は、抽出されたプリンシパルに対し、周辺のエージェントが同じプリンシパルの通信を行っていないかを調査する（３２）。調査の結果、多数のエージェントが同じプリンシパルの通信を行っている（３３）場合には、そのプリンシパルによって特徴づけられるコミュニティを生成する（３４）。即ち、コミュニティサーバー５にコミュニティ生成の依頼を出し、エージェント実行環境３が複製情報を持っていればそれを更新する。
【００５４】
エージェント実行環境３が持つコミュニティサーバー５の複製情報は、定期的にコミュニティサーバー５と情報交換することで、最新の状態に保たれる。
【００５５】
東京に設置された２台のコミュニティサーバー５は、定期的に情報交換することで、相互とも最新の状態に保たれる。
【００５６】
本実施の形態によれば、ＣＯＲＢＡ仕様に基づく通信として実現されるエージェント間通信を、少ない計算量で監視してプリンシパルを抽出し、少ない計算量でコミュニティを生成し、管理することができる。特に、それら処理に必要となるプリンシパルサーバー及びコミュニティサーバーは複数台設置され、また、情報の一部がエージェント実行環境に複製されることにより、さらに負荷を低減することができる。
【００５７】
なお、本実施の形態ではＣＯＲＢＡ仕様に基づく通信手段を対象としたが、本発明はそれに限定されるものではない。
【００５８】
本実施の形態ではプリンシパルの抽出のために、通信において特定の関数の特定番目の引数に特定の変換方法を適用して、プリンシパルの候補を得るという手順を用いたが、本発明はそれに限定されるものではなく、例えば、より複雑な人工知能技術による文章解析を行って、通信内容の文章から特徴的なキーワードを抽出するような手法も利用可能である。
【００５９】
本実施の形態ではプリンシパルサーバー及びコミュニティサーバーをネットワーク上に別途設置したが、本発明は適用対象が小規模である場合、プリンシパルサーバー及びコミュニティサーバーをエージェント実行環境と一体化させるような構成にも適用可能である。具体的には、エージェント実行環境はそれらのサーバーが持つ全ての情報を複製し保持していると見なして、本発明を適用すれば、そのような構成が実現できる。
【００６０】
【発明の効果】
以上に述べたように、本発明によれば、
１．少ない計算量でエージェント間の通信を監視することができ、かつ、
２．少ない計算量でコミュニティを生成することができ、かつ、
３．少ない計算量でコミュニティを管理することができる、という効果が得られる。
【図面の簡単な説明】
【図１】本発明を実施するシステムの概要を示す構成図
【図２】本発明のエージェント間の通信内容の監視方法を示す処理の流れ図
【図３】本発明のコミュニティの生成方法を示す処理の流れ図
【図４】本発明のコミュニティの管理方法を示す処理の流れ図
【符号の説明】
１：ネットワーク、２：エージェント、３：エージェント実行環境、４：プリンシパルサーバー、５：コミュニティサーバー、２１：エージェント実行環境への形式文法情報の提供、２２：エージェント実行環境への追加情報の提供、２３：他のエージェントへの通信、２４：通信の検知、２５：プリンシパル候補群の抽出、２６：プリンシパルの候補についての問い合わせ、２７：一連のプリンシパルの抽出処理の完了、３１，４１：通信内容の監視とプリンシパルの抽出、３２：周辺のエージェントが同じプリンシパルの通信を行っていないかの調査、３３：調査結果からの条件分岐、３４：コミュニティの生成、４２：抽出されたプリンシパルに関する問い合わせ、４３：コミュニティが生成済みかどうかの判断、４４：コミュニティの情報の内容の更新依頼。
【図１】
0003660564.tif 000002
【図２】
0003660564.tif 000003
【図３】
0003660564.tif 000004
【図４】
0003660564.tif 000005