(57)【要約】【課題】複数のマルチエージェントシステムが共用可能なエージェント間通信機能を提供する。【解決手段】複数のマルチエージェントシステムが稼働するネットワークシステムＳにおいて用いられるマルチエージェントシステム用フレームワークＣ１，Ｃ２であって、フレームワークＣ１，Ｃ２は、他の端末コンピュータ上の送信先エージェントへ送信すべきデータ、及び送信先エージェントを特定する送信先エージェント特定情報を、端末コンピュータに搭載された複数のエージェントから取得可能な取得部１１と、送信先エージェント特定情報に基づいて、送信先エージェントが搭載された他の端末コンピュータ上のフレームワークを送信先フレームワークとして識別する識別部１２と、その送信先フレームワークへ、送信先フレームワークが送信先エージェントを認識するための送信先エージェント認識情報及びデータを送信する送信部１３とを備えている。【選択図】図３
2010146246.tif 000002
【特許請求の範囲】
【請求項１】
複数のマルチエージェントシステムが稼働するネットワークシステムにおいて用いられる端末コンピュータを、エージェント間通信部を備えたマルチエージェントシステム用フレームワークとして、機能させるためのコンピュータプログラムであって、
前記エージェント間通信部は、
他の端末コンピュータに搭載された送信先エージェントへ送信すべきデータ、及び前記データの送信先エージェントを特定する送信先エージェント特定情報を、前記端末コンピュータに搭載された複数のエージェントから取得可能な取得部と、
前記取得部が取得した送信先エージェント特定情報に基づいて、前記送信先エージェントが搭載された前記他の端末コンピュータにおけるマルチエージェントシステム用フレームワークを、送信先フレームワークとして識別する識別部と、
前記識別部によって識別された送信先フレームワークへ、前記送信先フレームワークが前記送信先エージェントを認識するための送信先エージェント認識情報及び前記データを送信する送信部と、
を備えていることを特徴とするコンピュータプログラム。
【請求項２】
前記取得部は、前記送信先エージェント特定情報として、前記送信先エージェントの属するマルチエージェントシステムを特定するエージェントシステム特定情報、及び送信先エージェントが搭載された前記他の端末コンピュータにおけるマルチエージェントシステム用フレームワークを特定するフレームワーク特定情報を取得し、
前記識別部は、前記フレームワーク特定情報が示すマルチエージェントシステム用フレームワークを、前記送信先フレームワークとして識別する
請求項１記載のコンピュータプログラム。
【請求項３】
前記エージェント間通信部は、前記送信部によって送信される前記データの送信速度を制御するための送信制御部を備えている
請求項１又は２記載のコンピュータプログラム。
【請求項４】
前記送信制御部は、前記送信部によって送信される前記データの送信速度を、前記端末コンピュータに搭載された複数のエージェント毎に独立して制御可能である
請求項３記載のコンピュータプログラム。
【請求項５】
前記送信制御部は、前記端末コンピュータに搭載された複数のエージェントそれぞれの優先度に応じて、前記データの送信速度の制御を行う
請求項３又は４記載のコンピュータプログラム。
【請求項６】
複数のマルチエージェントシステムが稼働するネットワークシステムにおいて用いられる端末コンピュータを、エージェント間通信部を備えたマルチエージェントシステム用フレームワークとして、機能させるためのコンピュータプログラムであって、
前記エージェント間通信部は、
他の端末コンピュータのマルチエージェントシステム用フレームワークから送信されたデータ及び前記データの送信先となるエージェントを認識するための送信先エージェント認識情報を受信する受信部と、
自己の端末コンピュータに搭載された複数のエージェントのうち、前記受信部によって受信した前記送信先エージェント認識情報が示すエージェントに対して、前記受信部によって受信した前記データを渡すデータ渡し部と、
を備えていることを特徴とするコンピュータプログラム。
【請求項７】
複数のマルチエージェントシステムが稼働するネットワークシステムであって、
ネットワークシステム内の各端末コンピュータには、請求項１〜６のいずれか１項に記載のコンピュータプログラムが搭載されていることを特徴とするネットワークシステム。
【請求項８】
複数のエージェント及び前記複数のエージェントのための第１フレームワークが搭載された第１端末コンピュータと、複数のエージェント及び前記複数のエージェントのための第２のフレームワークが搭載された第２端末コンピュータとを有することで、複数のマルチエージェントシステムが稼働するネットワークシステムにおいて、前記第１端末コンピュータに搭載されたエージェントの一つである第１エージェントから、前記第２端末コンピュータに搭載されたエージェントの一つである第２エージェントへのエージェント間通信を行う方法であって、
前記第１フレームワークが、前記第１エージェントから、前記第２エージェントへ送信すべきデータ及び前記データの送信先である前記第２エージェントを特定する送信先エージェント特定情報を、取得するステップと、
前記第１フレームワークが、前記第１エージェントから取得した前記送信先エージェント特定情報に基づいて、前記第２フレームワークを送信先フレームワークとして識別するステップと、
前記第１フレームワークが、前記送信先フレームワークが前記送信先エージェントを認識するための送信先エージェント認識情報及び前記データを、前記送信先フレームワークへ送信するステップと、
前記第２フレームワークが、前記第１フレームワークから送信された前記送信先エージェント認識情報及び前記データを受信するステップと、
前記第２フレームワークが、受信した前記送信先エージェント認識情報に基づいて、前記送信先エージェントを認識し、認識した前記送信先エージェントに対して、受信した前記データを渡すステップと、
を含むエージェント間通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチエージェントシステム用フレームワークとしてコンピュータを機能させるためのコンピュータプログラム等に関するものである。
【背景技術】
【０００２】
マルチエージェントシステムは、ＰＣなどの端末コンピュータ上で専用のエージェントを自律的に動作させるとともに、複数の端末コンピュータにそれぞれ搭載されたエージェントを互いに協調させることで、所定の目的を達成しようとするシステムである。
【０００３】
このようなマルチエージェントシステムを効率良く開発するために、ＰＩＡＸ（P2P Interactive Agent eXtensions）とよばれる開発基盤が提供されている（非特許文献１参照）。
【非特許文献１】PIAX,[online], [2008年10月15日検索],インターネット＜http://www.piax.org/＞
【発明の開示】
【発明が解決しようとする課題】
【０００４】
マルチエージェントシステムにおいて、複数の端末コンピュータにそれぞれ搭載されたエージェントを協調させるには、エージェント間で通信を行うためのエージェント間通信機能が必要となる。このエージェント間通信機能は、上述の開発基盤においても提供されている。上述の開発基盤を利用することで、システム開発者は、協調相手（通信相手）のエージェントを検索し通信する機能を、各エージェントに具備させることができる。
【０００５】
ここで、一つのネットワークシステム内において、一つのマルチエージェントシステムだけが稼働するとは限らず、複数のマルチエージェントシステムが稼働することもありえる。複数のマルチエージェントシステムが稼働する場合、ネットワークシステム内の個々の端末コンピュータには、複数のマルチエージェントシステム用のエージェントが複数存在することになる。
【０００６】
しかし、上述の開発基盤では、エージェント間通信機能は、一つのマルチエージェントシステムの中で閉じて利用される。
したがって、複数のマルチエージェントシステムがそれぞれ独立に構築されて動作する場合、通信相手のエージェントを検索し通信するエージェント間通信機能も個々のマルチエージェントシステムごとに構築されることになる。
つまり、複数のマルチエージェントシステムが稼働する場合、一つの端末コンピュータに搭載された複数のエージェントそれぞれが、エージェント間通信機能を備えることになる。
【０００７】
一つの端末コンピュータに搭載された複数のエージェントそれぞれがエージェント間通信機能を備えると、各エージェントが、通信ポートなどのリソースを消費してしまう。
また、必要なエージェント間通信機能がほぼ同じ内容でも、マルチエージェントシステムごとに構築し、運用しなければならない。
この結果、開発工数が増えてシステム開発者の開発効率が低下し、運用負荷が膨大になるという問題が発生する。
【０００８】
そこで、本発明は、エージェント間通信機能を複数のマルチエージェントシステムのエージェントが共有できるようにして、上記問題を解決することを目的とする。
【課題を解決するための手段】
【０００９】
［マルチエージェントシステム用フレームワークのコンピュータプログラム；送信機能］
（１）本発明は、複数のマルチエージェントシステムが稼働するネットワークシステムにおいて用いられる端末コンピュータを、エージェント間通信部を備えたマルチエージェントシステム用フレームワークとして、機能させるためのコンピュータプログラムであって、前記エージェント間通信部は、他の端末コンピュータに搭載された送信先エージェントへ送信すべきデータ、及び前記データの送信先エージェントを特定する送信先エージェント特定情報を、前記端末コンピュータに搭載された複数のエージェントから取得可能な取得部と、前記取得部が取得した送信先エージェント特定情報に基づいて、前記送信先エージェントが搭載された前記他の端末コンピュータにおけるマルチエージェントシステム用フレームワークを、送信先フレームワークとして識別する識別部と、前記識別部によって識別された送信先フレームワークへ、前記送信先フレームワークが前記送信先エージェントを認識するための送信先エージェント認識情報及び前記データを送信する送信部と、を備えていることを特徴とするコンピュータプログラムである。
【００１０】
上記本発明によれば、複数のマルチエージェントシステムのエージェントが、フレームワークが有するエージェント間通信部を共用して、エージェント間通信のためのデータ送信を行うことができる。
【００１１】
（２）前記取得部は、前記送信先エージェント特定情報として、前記送信先エージェントの属するマルチエージェントシステムを特定するエージェントシステム特定情報、及び送信先エージェントが搭載された前記他の端末コンピュータにおけるマルチエージェントシステム用フレームワークを特定するフレームワーク特定情報を取得し、前記識別部は、前記フレームワーク特定情報が示すマルチエージェントシステム用フレームワークを、前記送信先フレームワークとして識別するのが好ましい。この場合、識別部は、容易に送信先フレームワークを識別することができる。
（３）前記エージェント間通信部は、前記送信部によって送信される前記データの送信速度を制御するための送信制御部を備えているのが好ましい。この場合、ネットワークシステムにおける輻輳を抑制することができる。
【００１２】
（４）前記送信制御部は、前記送信部によって送信される前記データの送信速度を、前記端末コンピュータに搭載された複数のエージェント毎に独立して制御可能であるのが好ましい。この場合、エージェント毎に送信速度を制御することができる。
【００１３】
（５）前記送信制御部は、前記端末コンピュータに搭載された複数のエージェントそれぞれの優先度に応じて、前記データの送信速度の制御を行うのが好ましい。この場合、エージェントの優先度に応じて送信速度を制御することができる。
【００１４】
［マルチエージェントシステム用フレームワークのコンピュータプログラム；受信機能］
（６）他の観点からみた本発明は、複数のマルチエージェントシステムが稼働するネットワークシステムにおいて用いられる端末コンピュータを、エージェント間通信部を備えたマルチエージェントシステム用フレームワークとして、機能させるためのコンピュータプログラムであって、前記エージェント間通信部は、他の端末コンピュータのマルチエージェントシステム用フレームワークから送信されたデータ及び前記データの送信先となるエージェントを認識するための送信先エージェント認識情報を受信する受信部と、自己の端末コンピュータに搭載された複数のエージェントのうち、前記受信部によって受信した前記送信先エージェント認識情報が示すエージェントに対して、前記受信部によって受信した前記データを渡すデータ渡し部と、を備えていることを特徴とするコンピュータプログラムである。
【００１５】
本発明によれば、複数のマルチエージェントシステムのエージェントが、フレームワークが有するエージェント間通信部を共用して、エージェント間通信のためのデータ受信を行うことができる。
【００１６】
［ネットワークシステム］
（７）他の観点からみた本発明は、複数のマルチエージェントシステムが稼働するネットワークシステムであって、ネットワークシステム内の各端末コンピュータには、前記コンピュータプログラムが搭載されていることを特徴とするネットワークシステムである。
【００１７】
［エージェント間通信方法］
（８）他の観点からみた本発明は、複数のエージェント及び前記複数のエージェントのための第１フレームワークが搭載された第１端末コンピュータと、複数のエージェント及び前記複数のエージェントのための第２のフレームワークが搭載された第２端末コンピュータとを有することで、複数のマルチエージェントシステムが稼働するネットワークシステムにおいて、前記第１端末コンピュータに搭載されたエージェントの一つである第１エージェントから、前記第２端末コンピュータに搭載されたエージェントの一つである第２エージェントへのエージェント間通信を行う方法であって、
前記第１フレームワークが、前記第１エージェントから、前記第２エージェントへ送信すべきデータ及び前記データの送信先である前記第２エージェントを特定する送信先エージェント特定情報を、取得するステップと、前記第１フレームワークが、前記第１エージェントから取得した前記送信先エージェント特定情報に基づいて、前記第２フレームワークを送信先フレームワークとして識別するステップと、前記第１フレームワークが、前記送信先フレームワークが前記送信先エージェントを認識するための送信先エージェント認識情報及び前記データを、前記送信先フレームワークへ送信するステップと、前記第２フレームワークが、前記第１フレームワークから送信された前記送信先エージェント認識情報及び前記データを受信するステップと、前記第２フレームワークが、受信した前記送信先エージェント認識情報に基づいて、前記送信先エージェントを認識し、認識した前記送信先エージェントに対して、受信した前記データを渡すステップと、を含むエージェント間通信方法である。
【発明の効果】
【００１８】
本発明によれば、複数のマルチエージェントシステムのエージェントが、フレームワークが有するエージェント間通信部を共用して、エージェント間通信を行うことができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態を図面に基づいて説明する。
［１．複数のマルチエージェントシステムを有するネットワークシステムの全体構成］
図１は、実施形態に係るネットワークシステムＳの全体を示している。このネットワークシステムＳは、複数の端末コンピュータ１，２及び管理サーバ３を、ネットワークによって接続して構成されている。端末１，２は、演算処理装置（ＣＰＵ）や記憶手段を有しており、後述のエージェントコンピュータプログラムやフレームワークコンピュータプログラムは、前記記憶手段に格納されている。記憶手段は、ＲＡＭ、フラッシュメモリなどの半導体メモリや、ＨＤＤ、ＤＶＤなどのコンピュータ読取可能な記録媒体によって構成される。
なお、３つ以上の端末コンピュータがネットワークに接続されていてもよいし、管理サーバ３が複数接続されていてもよい。また端末コンピュータは、ＰＣ（パーソナルコンピュータ）のほか、携帯電話、個人情報端末、車載機や家電機器、オフィス機器のような各種組込み機器であってもよい。以下では、端末コンピュータ１，２を、単に「端末」という。
【００２０】
このネットワークシステムＳでは、複数種類のマルチエージェントシステムが稼働している。マルチエージェントシステムとしては、例えば、ネットワーク内の情報の流れを追跡する情報追跡システムや、ファイル転送システムなどが挙げられる。
以下では、ネットワークシステムＳ内の複数のマルチエージェントシステムとして、「マルチエージェントシステムＡ」、「マルチエージェントシステムＢ」の２つを想定する。これらのマルチエージェントシステムＡ，Ｂは、それぞれ異なる機能を有するものであり、独立して作成され、独立して動作するものとする。
【００２１】
また、マルチエージェントシステムＡを構成する各端末のエージェントを、「エージェントＡ１」又は「エージェントＡ２」と表記し、マルチエージェントシステムＢを構成する各端末のエージェントを、「エージェントＢ１」又は「エージェントＢ２」と表記する。
【００２２】
さらに、各エージェントＡ１，Ａ２，Ｂ１，Ｂ２のうち、第１端末１に常駐するエージェントＡ１又はエージェントＢ１を、「第１エージェント」といい、第２端末２に常駐するエージェントＡ２又はエージェントＢ２を、「第２エージェント」というものとする。
【００２３】
なお、上記各エージェントＡ１，Ａ２，Ｂ１，Ｂ２は、エージェントコンピュータプログラムが、端末コンピュータ１，２によって実行されることにより発揮される端末コンピュータ１，２における機能である。
【００２４】
［２．マルチエージェントシステム用フレームワークの構成］
前記端末１，２には、各端末１，２に搭載された複数のエージェントＡ１，Ａ２，Ｂ１，Ｂ２が共有可能な機能を提供するマルチエージェントシステム用フレームワークＣ１，Ｃ２が搭載されている。なお、マルチエージェントシステム用フレームワークを、以下、単に「フレームワーク」という。
上記フレームワークＣ１，Ｃ２は、フレームワークコンピュータプログラムが、端末コンピュータ１，２によって実行されることにより発揮される端末コンピュータ１，２における機能である。
【００２５】
第１端末１に搭載された複数の第１エージェントＡ１，Ｂ１は、それぞれ、当該第１端末１に搭載された第２フレームワークＣ１の機能を利用することができる。また、第２端末２に搭載された複数の第２エージェントＡ２，Ｂ２は、それぞれ、当該第２端末２に搭載された第２フレームワークＣ２の機能を利用することができる。
【００２６】
図１においては、前記エージェントＡ１，Ａ２，Ｂ１，Ｂ２及びフレームワークＣ１，Ｃ２は、各端末１，２において、それぞれ独立したアプリケーションプロセスとして存在する。ただし、図２に示すように、端末１における一つのアプリケーションプロセスＰ１内に、エージェントＡ１，Ｂ１及びフレームワークＣ１が共存し、端末２における一つのアプリケーションプロセスＰ２内に、エージェントＡ２，Ｂ２及びフレームワークＣ２が共存してもよい。
【００２７】
なお、元々別個であるアプリケーションプログラムを、同一アプリケーションプロセス内で相互に影響なく動作させるには、例えば、ＯＳＧｉ（http://www.osgi.org/参照）フレームワークを使用する方法があるが、これに限定されるものではない。
また、互いに独立したアプリケーションプロセスとして動作する場合には、各エージェントとフレームワークは、ＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）等の方法により相互に呼び出し、また同一アプリケーションプロセス内でエージェント及びフレームワークが共存する場合には、それぞれが公開するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を相互に呼び出すことで、相互にやりとりを行うことができる。
なお、以下では、図１を前提に説明する。
【００２８】
さて、前記フレームワークＣ１，Ｃ２は、それぞれ、エージェント間通信部Ｄ１，Ｄ２を備えている。このエージェント間通信部Ｄ１，Ｄ２は、エージェントＡ１，Ａ２，Ｂ１，Ｂ２間の通信を実現するための機能である。
本実施形態のエージェント間通信は、このエージェント間通信部Ｄ１，Ｄ２によるフレームワーク間通信を介して行われる。
フレームワーク間通信は、マルチエージェントシステムの種別にかかわらず、共通のフレームワークＣ１，Ｃ２によって行われる。各エージェントＡ１，Ａ２，Ｂ１，Ｂ２は、エージェント間通信を行う際には、フレームワークＣ１，Ｃ２に対してデータを渡したり、フレームワークからデータを受け取ったりすればよい。
【００２９】
図３は、第１端末１に常駐するフレームワークＣ１（エージェント間通信部Ｄ１）の機能ブロック図を示している。なお、他の端末２に常駐するフレームワークＣ２も、フレームワークＣ１と同様の機能を有している。
図１に示すようにフレームワークＣ１のエージェント間通信部Ｄ１は、他の端末２へデータを送信するために、取得部１１、送信先フレームワーク識別部１２、及び送信部１３を備えている。
また、エージェント間通信部Ｄ１は、他の端末２からデータを受信するために、受信部１４及びデータ渡し部１５を備えている。
さらに、エージェント間通信部Ｄ１は、送信先端末を認識するために端末リストテーブル１６と、送信先エージェントとして適切なエージェントを認識するための許可エージェントリストテーブル１７とを有している。
【００３０】
前記取得部１１は、他の端末２のエージェントＡ２，Ｂ２へ送信すべきデータ（送信データ）、及び前記送信データの送信先エージェントＡ２，Ｂ２を特定する送信先エージェント特定情報を、第１端末１に搭載されたエージェントＡ１，Ｂ１から取得するためのものである。
前記送信データは、エージェント間の協調処理などのために、エージェント間でやりとりされるデータであり、例えば、画像データ、オーディオデータ、文書データ、メールメッセージなどである。
第１端末１に搭載されたエージェントＡ１，Ｂ１は、送信先のエージェントＡ２，Ｂ２へ送信すべきデータ（送信データ）のほか、フレームワーク識別子（以下、「フレームワークＩＤ」という）及びアプリケーション識別子（以下、「アプリケーションＩＤ」という）を、前記送信先エージェント特定情報として、前記取得部１１へ与え、前記取得部１１はこれらを受け取る。
【００３１】
ここで、フレームワークＩＤは、各端末１，２に搭載されているフレームワークをユニークに識別するための識別子（フレームワーク特定情報）である。フレームワークＩＤは、フレームワークＣ１が端末１にインストールされた後の初回動作時に、フレームワーク自身が割り振る。つまり、各フレームワークＣ１，Ｃ２は、自身のフレームワークＩＤ情報を有している。
なお、本実施形態において、フレームワークは、一つの端末に一つだけ搭載されるため、フレームワークＩＤは、各端末を識別する識別子としても機能する。ただし、一つの端末に複数のフレームワークが搭載されていてもよい。
なお、本実施形態では、第１フレームワークＣ１（第１端末１）のフレームワークＩＤを、「００１」とし、第２フレームワークＣ２（第２端末２）のフレームワークＩＤを、「００２」とする。
【００３２】
アプリケーションＩＤは、各マルチエージェントシステムをユニークに識別するための識別子（エージェントシステム特定情報）である。つまり、マルチエージェントシステムＡを構成する各エージェントＡ１，Ａ２は、共通のアプリケーションＩＤを有し、マルチエージェントシステムＢを構成する各エージェントＢ１，Ｂ２は、他の共通のアプリケーションＩＤを有する。このアプリケーションＩＤは、当該マルチエージェントシステムの開発者によって割り振られる。
なお、本実施形態では、マルチエージェントシステムＡのアプリケーションＩＤを、「ｘｘｘ」とし、マルチエージェントシステムＢのアプリケーションＩＤを、「ｙｙｙ」とする。
【００３３】
前記フレームワークＩＤ及びアプリケーションＩＤの組み合わせによって、ネットワークシステムＳ内の個々のエージェントＡ１，Ａ２，Ｂ１，Ｂ２をユニークに特定することができる。すなわち、フレームワークＩＤによって、どの端末に搭載されたものであるかを特定でき、アプリケーションＩＤによって、当該端末のエージェントのうちのどのエージェントであるかを特定することができる。
したがって、フレームワークＩＤ及びアプリケーションＩＤの組み合わせは、エージェント間通信における送信先エージェントを特定する送信先エージェント特定情報として機能する。
例えば、送信先エージェントが、第２端末２のエージェントＡ２である場合は、送信先エージェント特定情報は、フレームワークＩＤ＝００２＆アプリケーションＩＤ＝ｘｘｘとなる。
【００３４】
前述のように取得部１１は、送信データとともに、フレームワークＩＤ及びアプリケーションＩＤの組み合わせを、送信先エージェント特定情報として取得する。
すると、前記送信先フレームワーク識別部１２は、取得部１１が取得したフレームワークＩＤが示すフレームワークを、送信先フレームワークとして認識することができる。この送信先フレームワークが、エージェント間通信を実現するためのフレームワーク間通信における送信先である。
本実施形態では、フレームワークがエージェントから受け取る送信先エージェント特定情報に、送信先のフレームワークＩＤそのものが含まれているため、前記送信先フレームワーク識別部１２が送信先フレームワークを容易に認識できる。
なお、フレームワークが、エージェントから受け取る送信先エージェント特定情報とフレームワークＩＤとの関係を規定した参照テーブルを保有しておき、送信先フレームワーク識別部１２は、その参照テーブルを参照することで、送信先フレームワークを認識してもよい。
【００３５】
さらに、送信先フレームワーク識別部１２は、端末リストテーブル１６を参照し、送信先フレームワークが搭載されている端末２を検索する。
【００３６】
端末リストテーブル１６は、フレームワークＣ１，Ｃ２が常駐する端末１，２のリストが記録されたものである。端末リストテーブル１６には、各端末１，２それぞれについての「フレームワークＩＤ」、「ＩＰアドレス」及び「ポート番号」が記録されている。端末リストテーブル１６に記録された前記「フレームワークＩＤ」は端末に搭載されたフレームワークのＩＤであり、前記「ＩＰアドレス」は当該端末のＩＰアドレスであり、前記「ポート番号」は、当該端末に搭載されたフレームワークがエージェント間通信（フレームワーク間通信）時に使用する待受ポート番号である。
【００３７】
送信先フレームワーク識別部１２は、フレームワークＩＤに基づいて、上記端末リストテーブルを検索することで、送信先の端末のＩＰアドレス及び送信先端末に搭載された送信先フレームワークが使用する待受ポート番号を認識することができる。
ここで、本実施形態とは異なり、マルチエージェントシステム毎にエージェント間通信機能を具備させた場合、各エージェントＡ１，Ｂ１に、送信先エージェントＡ２，Ｂ２を搭載する送信先端末のＩＰアドレス及び待受ポート番号を認識する機能を具備させる必要がある。
これに対し、本実施形態によれば、複数のエージェントＡ１，Ｂ１によって共用されるフレームワークＣ１がエージェント間通信部Ｄ１を有しているため、上記機能を各エージェントに具備させる必要がない。
【００３８】
前記送信部１３は、送信先として認識された端末２に対して、エージェントＡ１又はＢ１から取得したアプリケーションＩＤ及びデータを送信する。このアプリケーションＩＤは、送信先端末２に搭載されたフレームワークＣ２が、送信先エージェントＡ２又はＢ２を認識するための送信先エージェント認識情報である。
ただし、送信部１３は、前記送信に先立って、指定された送信先エージェントが、送信先として許可されたものか否かを判定し、送信先エージェントが送信先として許可されたエージェントである場合にのみ、送信を行い、許可されていないエージェントである場合には、送信を行わず、データを破棄することができる。
送信先エージェントが送信先として許可されたものか否かの判定は、送信部１３が、許可エージェントリストテーブル１７を参照することによって行われる。許可エージェントリストテーブル１７は、例えば、通信が許可される関係にあるエージェントを規定したものである。エージェント同士が通信許可される関係にある場合とは、例えば、送信先エージェントと送信元エージェントが同じマルチエージェントシステムに属する場合や、送信先エージェントと送信元エージェントとが異なるマルチエージェントシステムに属していても、それらのマルチエージェントシステムが同一システム開発会社によって開発されたものである場合などである。それ以外の場合は、通信が禁止される。
送信部１３が、送信先エージェントが送信先として許可されたものであるか否かの判定を行うことで、異種エージェント間において無制限に通信が行われることを防止できる。したがって、悪意のある第三者が、フレームワークを悪用して、特定のマルチエージェントシステムとの間で通信を行うことを防止できる。
なお、許可エージェントリストテーブル１７に代えて、又は加えて、通信が禁止される関係にあるエージェントを規定した禁止エージェントリストテーブルを具備させてもよい。
【００３９】
また、送信部１３は、データの送信を制御する送信制御部（帯域制限部）１３を備えている。送信制御部１３は、フレームワークＣ１がエージェントＡ１，Ｂ１から受け取った送信データのサイズが、閾値を超える場合、ネットワークにおける輻輳を回避するため、当該送信データを、所定サイズの複数の分割データに分割し、それらを所定の時間間隔で送信する帯域制御機能を有している。この帯域制御機能により、フレームワークＣ１から送信される単位時間当たりのデータ量（データ送信速度）が抑えられ、大容量のデータがネットワークに一気に流れるのを抑制することができる。
【００４０】
なお、送信制御部１３ａの帯域制御機能により送信データの分割が行われた場合、それぞれの分割データには、送信制御部１３ａによってシーケンス番号が付与される。また、送信部１３は、送信先フレームワークＣ２に対して、送信データの分割数又はシーケンス番号を通知する。送信先フレームワークＣ２は、送信データの分割数やそのシーケンス番号に基づいて、受信した分割データから元の送信データを復元することができる。
【００４１】
また、送信制御部１３ａが、あるエージェントＡ１（マルチエージェントシステムＡ）について帯域制御を行っている途中に、別のエージェントＢ１（マルチエージェントシステムＢ）から、閾値を超えるサイズのデータ送信の要求を受けて、帯域制御を行う必要が生じる場合がある。この場合、送信制御部１３ａは、複数のマルチエージェントシステムＡ，Ｂの優先度を比較し、優先度に応じた帯域制御を行う。
優先度に応じた帯域制御では、例えば、優先度の高いマルチエージェントシステムに対する分割データ送信間隔を、優先度の低いマルチエージェントシステムの分割データ送信間隔よりも短くしたり、あるいは、優先度の高いマルチエージェントシステムに対するデータ分割数を、優先度の低いマルチエージェントシステムに対するデータ分割数よりも小さくしたりすることができる。
なお、マルチエージェントシステムの優先度は、システム管理者等が指定することができる。
【００４２】
この優先付け可能な帯域制御機能により、大きいサイズのデータを送信することによって生じるネットワークの輻輳を回避しつつ、データ送信処理をマルチエージェントシステム間の優先度に応じて、速やかに終了させることが可能となる。
【００４３】
前記受信部１４は、他の端末２のフレームワークＣ２から送信されたデータ及びアプリケーションＩＤ（送信先エージェント認識情報）を受信することができる。
さらに、前記データ渡し部１５は、受信したアプリケーションＩＤに対応するマルチエージェントシステムのエージェントに対して、受信したデータを渡す。
【００４４】
なお、各エージェントは、図４に示すように送信先エージェント特定情報及びデータをフレームワークに渡すための送信先＆データ渡し部２１及び端末リストテーブル２２を備えている。送信先＆データ渡し部２１は、送信データとともに、送信先エージェント特定情報として、送信先フレームワークのフレームワークＩＤ及び送信先エージェントが属するマルチエージェントシステムのアプリケーションＩＤを出力する。
エージェントが有する端末リストテーブル２２は、端末リストテーブル１６には、各端末１，２それぞれについての「フレームワークＩＤ」が記録されている。この端末リストテーブル２２の内容は、当該エージェントが搭載された端末のフレームワークから取得する。
【００４５】
［３．エージェント間通信のための前処理］
図５〜図８は、フレームワークＣ１，Ｃ２を用いたエージェント間通信のための前処理を示している。
［３．１  エージェント登録処理］
図５は、あるエージェントを、当該エージェントが動作する端末のフレームワークに登録するための登録処理を示している。この登録処理は、例えば、エージェントを端末にインストールする際に行われる。
ここでは、第１端末１の第１フレームワークＣ１にエージェントＡ１を登録する場合を例に説明する。
【００４６】
登録処理の際には、まず、エージェントＡ１が属するマルチエージェントシステムのアプリケーションＩＤ（＝ｘｘｘ）を、フレームワークＣ１に通知する（ステップＳ１）。
すると、フレームワークＣ１は、エージェントＡ１から、アプリケーションＩＤ（＝ｘｘｘ）を取得する（ステップＳ２）。フレームワークＣ１は、取得したアプリケーションＩＤを、自身の記憶領域に登録する（ステップＳ３）。
【００４７】
この登録処理によって、フレームワークＣ１は、自身が搭載されている端末において動作するエージェントＡ１を認識でき、フレームワークＣ１が、登録されているエージェントＡ１宛のデータを、他のフレームワークＣ２から受信したときに、受信データの渡し先であるエージェントＡ１を呼び出して、データを渡すことができる。
【００４８】
［３．２  管理サーバへのフレームワーク登録処理］
図６は、各端末１，２のフレームワークＣ１，Ｃ２を管理サーバ３に登録する処理、換言すると、フレームワークＣ１，Ｃ２が搭載されている端末１，２を示す端末リストテーブル３を管理サーバ３において作成する処理を示している。
図６に示すように、端末のフレームワークＣ１，Ｃ２は、自身が保有するフレームワークＩＤ、そのフレームワークが搭載された端末のＩＰアドレス、及びそのフレームワークが通信時に使用する待受ポート番号を管理サーバ３へ送信する（ステップＳ１１）。
なお、フレームワークＣ１，Ｃ２には、管理サーバ３のＩＰアドレス、ポート番号等の、管理サーバ３との通信に必要な情報が設定されている。
【００４９】
ステップＳ１１の送信の実行タイミングとしては、タイマーによって決定される所定の時間、端末利用者の指示があったとき、フレームワークの起動時などがある。必要に応じて、管理サーバ３へフレームワークＩＤの送信を行うことで、管理サーバ３が保有する端末リストテーブル３１の内容が常に最新に保たれる。
【００５０】
管理サーバ３は、フレームワークからフレームワークＩＤ等を受信すると（ステップＳ１２）、受信したフレームワークＩＤ、ＩＰアドレス、ポート番号等を、端末リストテーブル３１に保存する（ステップＳ１３）。この端末リストテーブル３１の内容は、ネットワークシステム内の各フレームワークＣ１，Ｃ２へ配布される端末リストテーブル１６のマスタデータとなる。
【００５１】
［３．３  管理サーバからフレームワークへの端末リストテーブル配布処理］
図７は、各端末のフレームワークＣ１，Ｃ２が、管理サーバ３から配布される端末リストテーブル３１を取得する処理を示している。
まず、フレームワークは、管理サーバ３に対して、端末リストを要求する（ステップＳ２１）。ステップＳ２１の要求の実行タイミングとしては、タイマーによって決定される所定の時間、端末利用者の指示があったとき、フレームワークの起動時などがある。必要に応じて、管理サーバ３へ端末リストの要求を行うことで、フレームワークが保有する端末リストテーブル１６の内容が常に最新に保たれる。
【００５２】
管理サーバ３は、端末リスト要求を受信すると（ステップＳ２２）、端末リストテーブル３１の内容を、フレームワークへ送信する（ステップＳ２３）。
フレームワークは、管理サーバ３から端末リストテーブル３１の内容を受信すると（ステップＳ２４）、それを、自身の端末リストテーブル１６に保存する（ステップＳ２５）。
【００５３】
なお、本ネットワークシステムは、管理サーバ３を有していなくてもよい。この場合、各端末１，２のフレームワークＣ１，Ｃ２が必要とする端末リストテーブル３１は、ネットワークシステムＳ内のいずれかの端末（端末１，２又はその他の端末）が有しているものとすることができる。
例えば、ネットワークシステムＳ内のいずれかのフレームワークが、端末リストテーブル３１を保持・管理する端末リスト管理機能を有し、他のフレームワークは、当該端末リスト管理機能が管理する端末リストテーブル３１を取得するものであってもよい。
ここで、端末リスト管理機能を有するフレームワークは、複数存在していてもよい。フレームワークが複数存在する場合、各フレームワークは、ネットワークシステムＳ内に存在する一部の端末についての端末リストテーブル３１を保持していれば足りる。この場合、ある端末Ａのフレームワークが、別の端末ＢのＩＰアドレス等を取得するために、端末リスト管理機能を有するフレームワーク（管理フレームワーク）ｋ（１≦ｋ≦ｎ：ｎは２以上の正数）に問い合わせても、管理フレームワークｋが、端末Ｂの情報を保持していない可能性がある。その場合、管理フレームワークｋは、他の管理フレームワークに問い合わせて、端末Ｂの情報を取得し、端末Ａのフレームワークに渡すとともに、管理フレームワークｋ自身も、端末Ｂの情報をキャッシュ（端末リストテーブル３１に端末Ｂの情報を追加）する。これにより、管理フレームワークｋは、以降の問い合わせに対し、より迅速に回答可能となる。
なお、各フレームワークは、管理フレームワークの存在を予め把握していてもよいし、動的に発見してもよい。管理フレームワークの存在を予め把握するには、管理フレームワークのＩＰアドレス等の情報が、各端末のフレームワークに予め配布されていればよい。この場合、配布された情報に基づいて、各端末のフレームワークは最適な管理フレームワークを選択することができる。
また、各フレームワークが動的に管理フレームワークを発見するには、管理フレームワークが応答するブロードキャストやＩＰマルチキャストを送信する方法等が考えられる。
【００５４】
［３．４  エージェントによる端末リストテーブルの取得処理］
図８は、エージェントＡ１が、当該エージェントＡ１が動作する第１端末１に搭載されたフレームワークＣ１から、端末リストテーブル１６の内容を取得する処理を示している。
まず、エージェントＡ１は、フレームワークＣ１へ、端末リストを要求する（ステップＳ３１）。この端末リスト要求は、エージェントＡ１が、他の端末２のエージェントＡ２へデータを送信する際に、データ送信に先立って行うのが好ましい。
【００５５】
フレームワークＣ１が、端末リスト要求を受け取ると（ステップＳ３２）、フレームワークＣ１は、端末リストテーブル１６の内容を、エージェントＡ１へ渡す（ステップＳ３３）。
エージェントＡ１は、端末リストを受け取ると（ステップＳ３４）、その内容を、自身の端末リストテーブル２２に保存する（ステップＳ３５）。
【００５６】
［４．エージェント間通信処理］
図９は、第１端末１の第１エージェントＡ１から、第２端末２の第２エージェントＡ２へのデータ送信処理を示している。
まず、エージェントＡ１の送信先＆データ渡し部２１は、送信データとともに送信先エージェント識別情報を第１フレームワークＣ１へ渡す（ここでの送信先エージェント識別情報は、送信先フレームワークである第２フレームワークのフレームワークＩＤ（＝００２）及び第１エージェントＡ１及び第２エージェントＡ２が属するマルチエージェントシステムＡのアプリケーションＩＤ（＝ｘｘｘ）の組み合わせである。
なお、送信元エージェントと送信先エージェントとは、上記のように同じマルチエージェントシステムに属している場合（同一エージェント間通信）であっても、異なるマルチエージェントシステムに属している場合（異種エージェント間通信）であってもよい。異なる種類のエージェント間での通信をする場合、各エージェントにおいて、通信可能な他の種類のマルチエージェントシステムを示すアプリケーションＩＤを予め指定しておけばよい。例えば各エージェントに、通信可能な他の種類のエージェントを示すエージェントリストテーブル２３を具備させればよい。このエージェントリストテーブル２３には、通信可能なマルチエージェントシステムのアプリケーションＩＤが保存されている。送信先＆データ渡し部２１は、このエージェントリストテーブル２３を参照することで、異なる種類のマルチエージェントシステムのアプリケーションＩＤを把握し指定することができる。
また送信先＆データ渡し部２１は、送信先エージェントが属するマルチエージェントシステムのアプリケーションＩＤに加えて、送信元エージェントが属するマルチエージェントシステムのアプリケーションＩＤも、フレームワークＣ１に渡すことができる。
【００５７】
第１フレームワークＣ１の取得部１１は、エージェントＡ１の送信先＆データ渡し部２１から、送信データとともに送信先エージェント識別情報（ここではフレームワークＩＤ及びアプリケーションＩＤ）を取得する。送信先フレームワーク識別部１２は、フレームワークＩＤに基づいて、端末リストテーブル１６を検索して、送信先端末である第２端末２のＩＰアドレスやポート番号を認識する（ステップＳ４２）。
【００５８】
第１フレームワークＣ１の送信部１３は、第２端末２の第２フレームワークＣ２へ、送信データと共に、エージェント識別情報としてのアプリケーションＩＤを、送信する（ステップＳ４３）。送信先エージェントが送信先として許可されたエージェントであるか否かの判定を行う場合、例えば送信部１３は、送信先エージェントが属するマルチエージェントシステムのアプリケーションＩＤと、送信元エージェントが属するマルチエージェントシステムのアプリケーションＩＤとを比較する。両者が一致する場合、同一エージェント間通信であるので、送信先エージェントが送信先として許可されたエージェントであると判定し、送信部１３は上記送信を実行する。両者が相違する場合、異種エージェント間通信であるので、送信部１３は許可エージェントリストテーブル１７（又は禁止エージェントリストテーブル）にしたがって上記送信の可否を決定する。なお第１フレームワークＣ１の送信部１３は、異種エージェント間通信の場合、送信先エージェント及び送信元エージェントそれぞれが属するマルチエージェントシステムのアプリケーションＩＤを第２フレームワークＣ２へ送信してもよい。また第１フレームワークＣ１及び第２フレームワークＣ２間の通信の際には、必要に応じて、前述の帯域制御が行われる。
【００５９】
第２端末の第２フレームワークＣ２が、アプリケーションＩＤ及びデータを受信すると（ステップＳ４４）、第２フレームワークＣ２は、受信したアプリケーションＩＤ（＝ｘｘｘ）が示すマルチエージェントシステムＡのエージェントである第２エージェントＡ２に、受信したデータを渡し（ステップＳ４５）、第２エージェントＡ２は、これを受け取る。
【００６０】
以上説明したように、本実施形態に係るフレームワークＣ１，Ｃ２を用いてエージェント間通信を行うと、エージェントＡ１，Ａ２，Ｂ１，Ｂ２毎にエージェント間通信機能を具備させる必要がなく、一つの端末に一つのフレームワークがあれば足りるため、通信に利用されるポートを少なくできる（典型的には、一フレーワークに一ポートでよいが、一ポート以上であってもよい）。一つの端末に２つ以上のフレームワークを搭載する場合に、フレームワーク毎に異なるポートを用いるときでも、各フレームワークが複数のエージェントにエージェント間通信機能を提供することによって、必要なポートを少なくできる。
また、エージェント間通信のための主たる機能は、複数のエージェントで共用されるフレームワークが具備しているため、複数のマルチエージェントシステムを開発・運用する場合に、個々のマルチエージェントシステムにおいて必要な機能を低減でき、個々のマルチエージェントシステム開発工数と運用負荷を低減することができる。
【００６１】
なお、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味、及び範囲内でのすべての変更が含まれることが意図される。
例えば、フレームワークは、エージェント間通信のための送信機能及び受信機能の双方を具備している必要はなく、送信機能のみ、あるいは受信機能のみ具備していてもよい。  また前述の実施の形態では、送信部１３が許可エージェントリストテーブル（又は禁止エージェントリストテーブル）にしたがって、指定されたエージェントが送信先エージェントとして許可されているか否かの判定を行ったが、取得部１１が行ってもよい。さらに、これに代えて、又はこれに加えて、受信部１４（又はデータ渡し部１５）が許可エージェントリストテーブルにしたがって、受信するか否か（データを渡すか否か）を決定するようにしてもよい。
【図面の簡単な説明】
【００６２】
【図１】複数のマルチエージェントシステムを有するネットワークシステムの全体図である。
【図２】複数のマルチエージェントシステムを有するネットワークシステムの他の例を示す全体図である。
【図３】フレームワークの機能ブロック図である。
【図４】エージェントの機能ブロック図である。
【図５】エージェント登録処理を示すフローチャートである。
【図６】フレームワークの登録処理を示すフローチャートである。
【図７】端末リストの配布処理を示すフローチャートである。
【図８】エージェントによる端末リストの取得処理を示すフローチャートである。
【図９】エージェント間通信処理を示すフローチャートである。
【符号の説明】
【００６３】
Ｓ  ネットワークシステム
Ａ  マルチエージェントシステム
Ａ１  エージェント
Ａ２  エージェント
Ｂ  マルチエージェントシステム
Ｂ１  エージェント
Ｂ２  エージェント
１  端末コンピュータ
２  端末コンピュータ
３  管理サーバ
１１  取得部
１２  送信先フレームワーク識別部
１３  送信部
１３ａ  送信制御部
１４  受信部
１５  データ渡し部
１６  端末リストテーブル
２１  送信先＆データ渡し部
２２  端末リストテーブル
３１  端末リストテーブル
【図１】
2010146246.tif 000003
【図２】
2010146246.tif 000004
【図３】
2010146246.tif 000005
【図４】
2010146246.tif 000006
【図５】
2010146246.tif 000007
【図６】
2010146246.tif 000008
【図７】
2010146246.tif 000009
【図８】
2010146246.tif 000010
【図９】
2010146246.tif 000011