(57)【特許請求の範囲】
【請求項１】
ネットワークを構成する複数の端末の一つであって、サーバエージェントを実行することで自律的に動作し所定のサービスを提供するサーバエージェント端末と、前記複数の端末の一つであって、クライアントエージェントを実行することで自律的に動作し前記サーバエージェント端末と通信を行うことで前記サーバエージェント端末の提供する前記サービスを利用するクライアントエージェント端末と、を具備したネットワークエージェントシステムにおいて、
前記サーバエージェント端末が前記クライアントエージェント端末と通信するために使用するＩＰアドレスおよびポート番号と、前記サーバエージェント端末が前記クライアントエージェント端末と通信するために登録した、前記サーバエージェント端末が実行する前記サーバエージェントの一つ以上のエージェント名と、を関連付けて格納したテーブルを有すると共に、ある前記サーバエージェント端末が前記テーブルに前記エージェント名を登録しようとした際に、前記あるサーバエージェント端末が登録しようとした前記エージェント名と同じエージェント名が前記テーブルに登録されていない場合は登録成功を前記あるサーバエージェント端末に通知し、前記あるサーバエージェント端末が登録しようとした前記エージェント名と同じエージェント名が既に前記テーブルに登録されている場合は登録失敗を前記あるサーバエージェント端末に通知するエージェント名管理装置を前記ネットワーク上に配置し、
前記クライアントエージェント端末が前記テーブルの前記エージェント名を参照することで、所望のサービスを提供する前記サーバエージェント端末を探し、前記エージェント名に対応した前記ＩＰアドレスおよびポート番号を取得して、当該サーバエージェント端末と直接通信を行うことを特徴とするネットワークエージェントシステム。
【請求項２】
前記サーバエージェント端末が、前記エージェント名を追加もしくは変更することを特徴とする請求項１記載のネットワークエージェントシステム。
【請求項３】
ある端末で実行される前記サーバエージェントに対して、前記サーバエージェントを前記ネットワーク上で一意に識別するためのエージェント識別子を割り振るエージェント登録管理装置を具備し、
前記エージェント名管理装置は前記エージェント識別子を前記ＩＰアドレスおよびポート番号と、前記エージェント名と、に関連付けて前記テーブルに格納し、
ある端末で実行されている前記サーバエージェントを終了し、他の端末で前記サーバエージェントを起動することで前記他の端末を前記サーバエージェント端末として動作する場合に、前記テーブルに格納された、前記エージェント識別子および前記エージェント名を変更せずに、前記テーブルに格納された前記ＩＰアドレスおよびポート番号を前記他の端末に対応したものに更新することを特徴とする請求項１または請求項２記載のネットワークエージェントシステム。
【請求項４】
前記サーバエージェント端末が、前記テーブルに登録している前記エージェント名を削除することなく前記サーバエージェントを終了した場合に、前記エージェント名管理装置は終了した前記サーバエージェントに対応する前記エージェント名をすべて削除することを特徴とする請求項１または請求項２記載のネットワークエージェントシステム。
【請求項５】
前記クライアントエージェント端末が所望のサービスを利用しようとしたときに前記サービスを提供するサーバエージェント端末が起動していないことが判明した場合に、前記クライアントエージェント端末が前記サービスを提供するサーバエージェントを前記ネットワーク上の端末で起動することで前記端末を前記サービスを提供するサーバエージェント端末として起動し、起動した当該サーバエージェント端末の提供するサービスを利用することを特徴とする請求項１または請求項２記載のネットワークエージェントシステム。
【請求項６】
ネットワークを構成する複数の端末の一つであって、クライアントエージェントを実行することで自律的に動作するクライアントエージェント端末と、前記複数の端末の一つであってサーバエージェントを実行することで自律的に動作し所定のサービスを提供するサーバエージェント端末と、前記サーバエージェント端末が前記クライアントエージェント端末と通信するために使用するＩＰアドレスおよびポート番号と、前記サーバエージェント端末が前記クライアントエージェント端末と通信するために登録した、前記サーバエージェント端末が実行する前記サーバエージェントの一つ以上のエージェント名と、を関連付けて格納したテーブルを有すると共に、ある前記サーバエージェント端末が前記テーブルに前記エージェント名を登録しようとした際に、前記あるサーバエージェント端末が登録しようとした前記エージェント名と同じエージェント名が前記テーブルに登録されていない場合は登録成功を前記あるサーバエージェント端末に通知し、前記あるサーバエージェント端末が登録しようとした前記エージェント名と同じエージェント名が既に前記テーブルに登録されている場合は登録失敗を前記あるサーバエージェント端末に通知するエージェント名管理装置と、を前記ネットワーク上に配置したシステムのエージェント端末間通信方法であって、
前記クライアントエージェント端末が前記テーブルの前記エージェント名を参照することで、所望のサービスを提供する前記サーバエージェント端末を探し、前記エージェント名に対応した前記ＩＰアドレスおよびポート番号を取得して、当該サーバエージェント端末との通信を行うことを特徴とするエージェント端末間通信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ上で自律的に動作するエージェントと呼ばれるソフトウェアプログラムが、コンピュータネットワークを介して他のエージェントと協調的に動作するエージェント間通信路確立方法およびエージェント間通信路確立システムに関する。
【０００２】
【従来の技術】
従来プロセス間通信には、クライアント／サーバモデルが広く使用されている。クライアント／サーバモデルは、サービスを提供するサーバプロセスと提供されているサービスを利用するクライアントプロセスからなる。
【０００３】
サーバプロセスは、クライアントプロセスから要求を受け付ける窓口を用意して、クライアントプロセスからの接続を待つ。サーバプロセスが用意する窓口は、サーバプロセスが動作するコンピュータのIPアドレスとサーバプロセスが使用しているポート番号によって示される。
【０００４】
クライアントプロセスは、サーバプロセスのIPアドレスとポート番号を用いて、サーバプロセスとの間に通信路を確立する。例えば、ファイル転送に使用するFile  Transfer  Protocol（RFC95）では、FTPサーバはポート番号に21番を使用して、クライアントプロセスからの接続に備えている。
【０００５】
ネットワークエージェントシステムでは、図１１に示す従来のクライアント／サーバモデルのようにサーバプロセスが使用するポート番号を予約しておくことは困難である。例えば、FTPサーバは21番ポートを使用することが予約されており、その番号を他のサーバプロセスが使用しないように設定されている。
【０００６】
ネットワークエージェントシステムでは、多種多様なサービスが想定される。例えば、ユーザの代理としてコンピュータネットワーク上で動作するエージェントが考えられる。この場合、ユーザの代理エージェントすべての使用するポート番号を予約することは現実的ではない。また、ユーザの加盟、離脱による変更への対応などを考えると、ポート番号の管理が複雑になると想像される。
【０００７】
また、ネットワークエージェントシステムでは、任意のエージェントの追加、削除が自由に行えることが望ましい。例えば、特開平８―７７０９０号公報「マルチエージェントシステム」では自動的にエージェントを追加することによって、高い柔軟性と自己組織能力をもったシステムを実現している。しかし、常時任意のエージェントの追加、削除を可能とするためには、あらかじめそのエージェントの使用するポート番号を予約しておくことはできない。もし予約する方法をとるならば、任意に起動するエージェントの同時に動作する数の上限を設けることになる。
【０００８】
また、ネットワークエージェントシステムでは、エージェントがコンピュータネットワーク上を自由に移動できることが望ましい。移動することによりコンピュータ資源の有効活用、ネットワーク負荷の軽減などが考えられる。しかし、サーバエージェントが移動した場合、サーバエージェントが動作するコンピュータのIPアドレスが変わるだけではなく、使用するポート番号も移動前と同じ番号を使えるとは限らない。同じポート番号を使用するためには移動先のコンピュータでポート番号をあらかじめ予約しておく必要がある。
【０００９】
ポート番号は有限なコンピュータ資源であるため、多種多様なサービスを提供し、任意のエージェントの追加、削除を可能とし、エージェントのネットワーク上の移動を可能とするネットワークエージェントシステムでは、従来のクライアント／サーバモデルのように使用するポート番号を事前に予約しておく方法では対応できない。
【００１０】
【発明が解決しようとする課題】
従来の技術のようにポート番号を予約するシステムでは、ポート番号による制限が多く自由にサービスを増やすことや広くネットワーク上で共有することができないという課題を有していた。
【００１１】
本発明は、ポート番号ではなくエージェント名を用いて通信することにより、コンピュータネットワークを介して他のエージェントと協調的に動作し、多種多様なサービスを提供し、任意のエージェントの追加・削除可能としたエージェントシステムを実現することを目的とする。
【００１２】
【課題を解決するための手段】
この課題を解決するために本発明では、エージェント間の通信路を確立するためにエージェント名を使用する。
【００１３】
サーバエージェントは、自身のエージェント名とともに自身の動作するコンピュータのIPアドレスと使用しているポート番号をエージェント名管理装置に登録し、クライアントエージェントは、サーバエージェントのエージェント名を用いてエージェント名登録装置からサーバエージェントの動作するコンピュータのIPアドレスと使用しているポート番号を獲得し、それらの値を用いてサーバプロセスとの間の通信路を確立する。
【００１４】
【発明の実施の形態】
本発明の請求項１記載の発明は、ネットワークを構成する複数の端末の一つであって、サーバエージェントを実行することで自律的に動作し所定のサービスを提供するサーバエージェント端末と、前記複数の端末の一つであって、クライアントエージェントを実行することで自律的に動作し前記サーバエージェント端末と通信を行うことで前記サーバエージェント端末の提供する前記サービスを利用するクライアントエージェント端末と、を具備したネットワークエージェントシステムにおいて、前記サーバエージェント端末が前記クライアントエージェント端末と通信するために使用するＩＰアドレスおよびポート番号と、前記サーバエージェント端末が前記クライアントエージェント端末と通信するために登録した、前記サーバエージェント端末が実行する前記サーバエージェントの一つ以上のエージェント名と、を関連付けて格納したテーブルを有すると共に、ある前記サーバエージェント端末が前記テーブルに前記エージェント名を登録しようとした際に、前記あるサーバエージェント端末が登録しようとした前記エージェント名と同じエージェント名が前記テーブルに登録されていない場合は登録成功を前記あるサーバエージェント端末に通知し、前記あるサーバエージェント端末が登録しようとした前記エージェント名と同じエージェント名が既に前記テーブルに登録されている場合は登録失敗を前記あるサーバエージェント端末に通知するエージェント名管理装置を前記ネットワーク上に配置し、前記クライアントエージェント端末が前記テーブルの前記エージェント名を参照することで、所望のサービスを提供する前記サーバエージェント端末を探し、前記エージェント名に対応した前記ＩＰアドレスおよびポート番号を取得して、当該サーバエージェント端末と直接通信を行うことを特徴とするネットワークエージェントシステムである。
請求項２に記載の発明は、前記サーバエージェント端末が、前記エージェント名を追加もしくは変更することを特徴とする請求項１記載のネットワークエージェントシステムである。
請求項３に記載の発明は、ある端末で実行される前記サーバエージェントに対して、前記サーバエージェントを前記ネットワーク上で一意に識別するためのエージェント識別子を割り振るエージェント登録管理装置を具備し、前記エージェント名管理装置は前記エージェント識別子を前記ＩＰアドレスおよびポート番号と、前記エージェント名と、に関連付けて前記テーブルに格納し、ある端末で実行されている前記サーバエージェントを終了し、他の端末で前記サーバエージェントを起動することで前記他の端末を前記サーバエージェント端末として動作する場合に、前記テーブルに格納された、前記エージェント識別子および前記エージェント名を変更せずに、前記テーブルに格納された前記ＩＰアドレスおよびポート番号を前記他の端末に対応したものに更新することを特徴とする請求項１または請求項２記載のネットワークエージェントシステムである。
請求項４に記載の発明は、前記サーバエージェント端末が、前記テーブルに登録している前記エージェント名を削除することなく前記サーバエージェントを終了した場合に、前記エージェント名管理装置は終了した前記サーバエージェントに対応する前記エージェント名をすべて削除することを特徴とする請求項１または請求項２記載のネットワークエージェントシステムである。
請求項５に記載の発明は、前記クライアントエージェント端末が所望のサービスを利用しようとしたときに前記サービスを提供するサーバエージェント端末が起動していないことが判明した場合に、前記クライアントエージェント端末が前記サービスを提供するサーバエージェントを前記ネットワーク上の端末で起動することで前記端末を前記サービスを提供するサーバエージェント端末として起動し、起動した当該サーバエージェント端末の提供するサービスを利用することを特徴とする請求項１または請求項２記載のネットワークエージェントシステムである。
請求項６に記載の発明は、ネットワークを構成する複数の端末の一つであって、クライアントエージェントを実行することで自律的に動作するクライアントエージェント端末と、前記複数の端末の一つであってサーバエージェントを実行することで自律的に動作し所定のサービスを提供するサーバエージェント端末と、前記サーバエージェント端末が前記クライアントエージェント端末と通信するために使用するＩＰアドレスおよびポート番号と、前記サーバエージェント端末が前記クライアントエージェント端末と通信するために登録した、前記サーバエージェント端末が実行する前記サーバエージェントの一つ以上のエージェント名と、を関連付けて格納したテーブルを有すると共に、ある前記サーバエージェント端末が前記テーブルに前記エージェント名を登録しようとした際に、前記あるサーバエージェント端末が登録しようとした前記エージェント名と同じエージェント名が前記テーブルに登録されていない場合は登録成功を前記あるサーバエージェント端末に通知し、前記あるサーバエージェント端末が登録しようとした前記エージェント名と同じエージェント名が既に前記テーブルに登録されている場合は登録失敗を前記あるサーバエージェント端末に通知するエージェント名管理装置と、を前記ネットワーク上に配置したシステムのエージェント端末間通信方法であって、前記クライアントエージェント端末が前記テーブルの前記エージェント名を参照することで、所望のサービスを提供する前記サーバエージェント端末を探し、前記エージェント名に対応した前記ＩＰアドレスおよびポート番号を取得して、当該サーバエージェント端末との通信を行うことを特徴とするエージェント端末間通信方法である。
また、本発明は、コンピュータ上で自律的に動作するエージェントと呼ばれるソフトウェアプログラムが自ら自分の名前を決め、そのエージェント名を用いて、他のエージェントと通信し、エージェントがコンピュータネットワーク上を移動しても移動前と同じエージェント名を用いて通信することを可能とするエージェント間通信路確立方法であり、有限なコンピュータ資源であるポート番号を有効に活用するという作用を有する。
【００１５】
また、本発明は、エージェントをコンピュータネットワーク上で一意に識別し、エージェントがコンピュータネットワーク上のどのコンピュータ上で動作しているか常に把握することを可能とするエージェント登録管理装置と、コンピュータ上にエージェントを起動することを可能とし、エージェントの移動および終了を感知するエージェント起動装置と、エージェントが他のエージェントと通信するためにエージェント名だけを用いて通信することを可能とし、エージェントがネットワーク上で一意なエージェント名を自ら選んで名乗ることを可能とするエージェント名管理装置からなるエージェント間通信路確立システムであり、上述したエージェント間通信路確立方法を実現する作用を有する。
【００１６】
また、本発明は、エージェントが登録しているエージェント名を削除することなく終了した場合に、そのエージェントが登録したエージェント名を自動的に削除することを特徴とするエージェント間通信路確立システムであり、使用されていないエージェント名を他のエージェントが使用できないという状態を回避する作用、および通信したいエージェントが動作しているかどうか確認することを可能とする作用を有する。
【００１７】
また、本発明は、エージェントが通信しようとした相手先のエージェントが起動していない場合、相手先のエージェントを起動して、その相手先のエージェントと通信することを可能とするエージェント間通信路確立システムであり、ネットワークエージェントシステムに柔軟に新しいサービスを付加することを可能とし、また必要なときにだけサービスを提供するサーバエージェントを起動することにより、コンピュータ資源を有効に活用することを可能とする作用を有する。
【００１８】
以下、本発明の実施の形態について、図を用いて説明する。
【００１９】
（実施の形態）
本発明の実施の形態におけるエージェント間通信路確立システムのシステム構成図を、図１に示し説明する。図１において、コンピュータネットワーク１００、コンピュータネットワーク１００に接続するコンピュータ１０１、コンピュータ１０１で動作するプログラムからなる。コンピュータ１０１で動作するプログラムとしては、エージェント起動装置１１０、エージェント登録管理装置１１１、エージェント名管理装置１１２、エージェント１２０から構成される。
【００２０】
上記のように構成されたエージェント間通信路確立システムの動作について以下に説明する。
【００２１】
エージェント起動装置１１０は、コンピュータネットワーク１００に接続する複数のコンピュータ１０１a〜１０１e上で動作している。ただし一つのコンピュータ１０１上では一つのエージェント起動装置１１０だけが動作する。エージェント１２０は、このエージェント起動装置１１０が動作しているコンピュータ１０１上に移動することができる。またユーザまたはエージェント１２０は、新しくエージェント１２０をエージェント起動装置１１０が動作しているコンピュータ１０１上に起動することができる。
【００２２】
エージェント登録管理装置１１１は、コンピュータネットワーク１００に接続する１つのコンピュータ１０１上で動作している。エージェント登録管理装置１１１は１つのコンピュータ上で１つだけ動作している。つまりコンピュータネットワーク１００上でエージェント登録管理装置１１１は１つだけ動作している。
【００２３】
エージェント名管理装置１１２は、コンピュータネットワーク１００に接続する１つのコンピュータ１０１上で動作している。エージェント名管理装置１１２は１つのコンピュータ上で１つだけ動作している。つまりコンピュータネットワーク１００上でエージェント名管理装置１１２は１つだけ動作している。エージェント名管理装置１１２とエージェント登録管理装置１１１は同じコンピュータ１０１上で動作していてもよい。また異なるコンピュータ１０１上で動作していてもよい。
【００２４】
エージェント１２０は、コンピュータネットワーク１００に接続するコンピュータ１０１上で動作している。１つのコンピュータ１０１上に０個以上動作してよい。
【００２５】
本発明のエージェント間通信路確立システムの構成要素であるエージェント起動装置１１０、エージェント登録管理装置１１１、エージェント名登録装置１１２の機能を説明する。
【００２６】
エージェント起動装置１１０は、ユーザまたはエージェント１２０の要求に従って、自身が動作しているのと同じコンピュータ１０１上に、エージェント１２０を起動する機能を有する。エージェント起動装置１１０は、自身が起動したエージェント１２０に起動番号を一意に割り振る。エージェント起動装置１１０と起動されたエージェント１２０の関係は親プロセスと子プロセスの関係である。エージェント起動装置１１０は、図２に示すような自身の子プロセスであるエージェント１２０のプロセスIDと自身が割り振った起動番号の対応を管理する機能を有する。
【００２７】
エージェント起動装置１１０は、自身が起動したエージェント１２０が終了するとその終了を感知し、その終了したエージェント１２０に割り振った起動番号をエージェント登録管理装置１１１に通知する機能を有する。
【００２８】
エージェント登録管理装置１１１は、エージェント１２０の登録要求に従って、エージェント登録処理を行う機能を有する。エージェント１２０はエージェント登録の際に、自身を起動したエージェント起動装置１１０と自身の起動番号および個別認証番号をエージェント登録管理装置１１１に通知し、エージェント登録管理装置１１１からエージェント識別子を割り当てられる。エージェント登録管理装置１１１は、コンピュータネットワーク１００上で一意にエージェント１２０を識別できるようにエージェント識別子をエージェント１２０に割り当てる。エージェント登録管理装置１１１は、図３に示すようなエージェント１２０のエージェント識別子、エージェント起動装置１１０、起動番号、個別認証番号の対応を管理する機能を有する。個別認証番号は、エージェント１２０がエージェント登録管理装置１１１に登録した内容を変更するときに、エージェントの認証用に使用するもので、エージェント１２０が自由に決めることができる値である。
【００２９】
エージェント登録管理装置１１１は、エージェント起動装置１１０からエージェント１２０の終了が通知される。エージェント起動装置１１０から通知されたエージェント１２０の起動番号によって終了したエージェント１２０を特定し、管理しているエージェントのデータテーブルから削除する機能を有する。終了したエージェントのデータを削除した後、エージェント登録管理装置１１１は、エージェント名管理装置１１２にエージェント識別子を通知する機能を有する。終了したエージェント１２０のエージェント識別子は回収され、後で他のエージェント１２０に割り振られる。エージェント登録管理装置１１１は、エージェント起動装置１１０から通知された起動番号からエージェントを特定できない場合は、特になにもしない。
【００３０】
エージェント登録管理装置１１１は、エージェント１２０の登録内容変更要求に従って、エージェント登録管理装置１１１が管理するエージェント登録データの内容を変更する機能を有する。エージェント登録管理装置１１１は、エージェント１２０のエージェント識別子、個別認証番号を確認して、正しければ登録内容を変更し、登録内容変更成功をエージェント１２０に通知する。正しくなければ登録内容変更を行わず、登録内容変更失敗をエージェント１２０に通知する。
【００３１】
エージェント登録管理装置１１１は、エージェント１２０の登録内容削除要求に従って、エージェント登録管理装置１１１が管理するエージェント登録データからエージェント１２０のデータを削除する機能を有する。エージェント登録管理装置１１１は、エージェント１２０のエージェント識別子、個別認証番号を確認してから登録データの削除を行う。登録データを削除した後、エージェント登録管理装置は削除したエージェント１２０のエージェント識別子をエージェント名管理装置１１２に通知する。最後に登録内容削除に成功したのか、または失敗したのか結果をエージェント１２０に通知する。
【００３２】
エージェント名管理装置１１２は、エージェント１２０のエージェント名登録要求に従ってエージェント名の登録を行う機能を有する。エージェント１２０は、エージェント名の登録の際、エージェント名管理装置１１２に登録するエージェント名、自身のエージェント識別子、自身の動作しているコンピュータ１０１のIPアドレス、自身が使用しているポート番号を通知する。エージェント名管理装置１１２は、登録要求されたエージェント名と同じエージェント名が既に登録されているエージェント名の中に存在しないことを確認して、登録成功をエージェント１２０に通知する。既に同じエージェント名が存在する場合は、登録失敗をエージェント１２０に通知する。エージェント名管理装置が管理するデータは、例えば図４に示すようなエージェント名、エージェント識別子、IPアドレス、ポート番号である。
【００３３】
エージェント名管理装置１１２は、エージェント登録管理装置１１１からエージェント１２０の終了を通知される。エージェント登録管理装置１１１から通知されたエージェント識別子のエージェント１２０が登録したエージェント名すべてを管理していたデータから削除する機能を有する。
【００３４】
エージェント名管理装置１１２は、エージェント１２０のエージェント名登録内容変更要求に従ってエージェント名登録内容の変更を行う機能を有する。エージェント名登録内容の変更とは、エージェント名とともに登録されたIPアドレスとポート番号の変更を指す。エージェント名の変更は、新しくエージェント名を登録し、古いエージェント名を削除することによって実現される。
【００３５】
エージェント名管理装置１１２は、エージェント１２０のエージェント名削除要求に従って、エージェント１２０が登録したエージェント名を削除する機能を有する。エージェント名管理装置１１２は、エージェント１２０のエージェント識別子が登録されているエージェント識別子と一致するとき削除を行う。エージェント名管理装置１１２は、エージェント名削除の結果をエージェント１２０に通知する。
【００３６】
エージェント１２０は、エージェント起動装置１１０、エージェント登録管理装置１１１、エージェント名管理装置１１２からなるエージェント間通信路確立システムによって、コンピュータネットワーク１００上に起動された他のエージェント１２０と通信する機能が実現可能である。また同システムによって、コンピュータネットワーク１００に接続されエージェント起動装置１１０が動作するコンピュータ１０１上に移動する機能が実現可能である。また同システムによって、コンピュータネットワーク１００に接続されエージェント起動装置１１０が動作するコンピュータ１０１上に新しいエージェント１２０を起動することが可能である。
【００３７】
以下では、（１）エージェントの起動、（２）エージェントの終了、（３）エージェントの移動、（４）エージェント間の通信路の確立方法を順番に説明する。なお、エージェント１２０は、エージェント起動装置１１０と通信するためのポート番号、エージェント登録管理装置と通信するためのIPアドレスおよびポート番号、エージェント名管理装置と通信するためのIPアドレスおよびポート番号を知っているものとする。エージェント１２０がこれらの値を知る方法としては、エージェント起動時に入力する方法、起動後に設定ファイルから読み込む方法などがある。
【００３８】
（１）エージェントの起動
図５を用いて、エージェント１２０b1の起動手順を説明する。エージェント１２０は、エージェント起動装置１１０より起動される。エージェントの起動を希望するユーザまたはエージェント１２０a1は、エージェント起動装置１１０にプログラム名を指示する。エージェント起動装置１１０は、ユーザまたはエージェント１２０a1によって指示されたプログラム名が有効なものかどうか判断してから、そのプログラムを実行する。
【００３９】
プログラムの実行により起動されたエージェント１２０b1は、エージェント起動装置１１０から起動番号を受け取る。エージェント起動装置１１０は、自身が起動したエージェント１２０b1の起動番号を管理する。
【００４０】
起動番号を受け取ったエージェント１２０b1は、自身を起動したエージェント起動装置１１０と受け取った起動番号をエージェント登録管理装置１１１に登録し、エージェント識別子を受け取る。このエージェント識別子は、コンピュータネットワーク上で一意になるようにエージェント登録管理装置１１１が各エージェント１２０に割り振る値である。エージェント１２０b1は、コンピュータネットワーク１００上を移動しても同じエージェント識別子を使用することができる。
【００４１】
このエージェント登録の際に、エージェント１２０b1は個人識別番号も登録する。この個人識別番号は、エージェント自身しか知らない番号であり、登録後はエージェント１２０b1とエージェント登録管理装置１１１のみが知る番号となる。エージェント１２０b1は、エージェント登録管理装置１１１に登録している内容の変更を行う際に、この個人識別番号を認証用に使用する。
【００４２】
エージェント登録の終了後、必要ならばエージェント１２０b1は、エージェント名管理装置１１２にエージェント名の登録を行う。エージェント名管理装置１１２は、そのエージェント名がすでに登録されているものと同じエージェント名だった場合、登録できないことをエージェント１２０b1に通知する。登録に成功した場合も、そのことをエージェント１２０b1に通知する。
【００４３】
エージェント１２０b1はエージェント名の登録の際に、接続要求を受け付けるIPアドレスとポート番号およびエージェント登録管理装置１１１より割り当てられたエージェント識別子をエージェント名管理装置１１２に登録する。
【００４４】
（２）エージェントの終了
図６を用いて、エージェント１２０a1の終了からエージェント登録内容の削除、エージェント名登録内容の削除の手順を説明する。ただしここでは、エージェント１２０a1がエージェント名登録内容の削除、エージェント登録内容の削除をエージェント１２０a1自ら行わずに終了した場合について説明する。  エージェント１２０a1とエージェント起動装置１１０の関係は、子プロセスと親プロセスの関係である。エージェント１２０a1が終了するとそれは親プロセスであるエージェント起動装置１１０に感知される。エージェント起動装置１１０は、終了したエージェントの起動番号をエージェント登録管理装置１１２に通知し、終了したエージェント１２０a1を管理対象からはずす。
【００４５】
エージェント登録管理装置１１１は、エージェント起動装置１１０と起動番号から終了したエージェント１２０a1を特定し、そのエージェント１２０a1のエージェント識別子を割り出す。エージェント登録管理装置１１１は、終了したエージェント１２０a1の登録内容を削除し、エージェント識別子をエージェント名管理装置１１２に通知する。
【００４６】
エージェント名管理装置１１２は、終了したエージェント１２０a1のエージェント名を削除する。複数のサービスを提供するエージェント１２０a1は複数のエージェント名を登録することが可能で、複数のエージェント名が登録されている場合は、エージェント１２０a1が登録したすべてのエージェント名が削除される。
【００４７】
（３）エージェントの移動
図７から図９を用いてエージェントの移動手順を説明する。エージェント１２０a1は移動先のコンピュータ１０１b上で動作するエージェント起動装置１１０bに実行するプログラム名を指示する。移動先で実行されたプログラムは、移動先エージェント１２０b1としてエージェント起動装置１１０bより起動番号を受け取る。移動先エージェント１２０b1は、移動元エージェント１２０a1と通信して内部データの移動を行う。この移動の際、図７に示すようにエージェント識別子および使用していたエージェント名が引き渡される。
【００４８】
エージェント識別子を受けとった移動先エージェント１２０b1は、エージェント登録管理装置１１１に登録されている登録内容の変更を行う。具体的には自身のエージェント起動装置１１０bと起動番号の変更を通知する。この際、図８に示すようなエージェント登録管理装置１１１に登録してある個人識別番号が認証用に使用される。
【００４９】
図９に示すように移動元エージェント１２０a1の終了は、エージェント登録管理装置１１１の登録内容が変更されてから行われる。そうでない場合は、移動元エージェント１２０a1の終了時点でエージェント登録装置１１１に登録されていた登録内容が削除されるため移動先エージェント１２０b1は移動元エージェント１２０a1と同じエージェント識別子を使用することができない。移動先エージェント１２０b1は、新しくエージェント識別子をエージェント登録管理装置１１１から割り当てられることになる。
【００５０】
移動先エージェント１２０b1が登録内容の変更をすませたことを移動元エージェント１２０a1が知るためには、移動先エージェント１２０b1より通知を受ける必要がある。
【００５１】
エージェント登録管理装置１１１の登録内容を変更した移動先エージェント１２０b1は、サービスを提供するための接続待ちの準備を行ってからエージェント名管理装置１１２にIPアドレスおよびポート番号の変更を通知する。エージェント名管理装置１１２は、エージェント識別子によってエージェントの認証を行う。
【００５２】
（４）エージェント間の通信路の確立方法
図１０を用いて、エージェント間の通信路確立方法を説明する。サービスを提供するサーバエージェント１２０a1は、通信相手として指定するためのエージェント名を自身の動作しているコンピュータのIPアドレスと自身が使用しているポート番号とともにエージェント名管理装置１１２に登録する。
【００５３】
サーバエージェント１２０a1の提供するサービスを利用するクライアントエージェント１２０b1は、サービスを提供しているサーバエージェント１２０a1のエージェント名からエージェント名管理装置１１２を利用して、サーバエージェント１２０a1の動作しているコンピュータのIPアドレスと使用しているポート番号を得る。クライアントエージェント１２０b1は、獲得したIPアドレスとポート番号を使用してサーバエージェント１２０a1との間で通信を行う。
【００５４】
本発明の方法では、ポート番号を予約しないため、エージェントは動作していないが、ポート番号の使用は禁じられるという状態が回避され、有限なコンピュータ資源であるポート番号を有効に使用することが可能となる。もし想定されるサービスの種類が無数にあったとしても、同時間帯に同コンピュータ上で動作するエージェントの数が使用可能なポート番号の数以下であれば、本発明の方法ではネットワークエージェントシステムを実現することができる。
【００５５】
また、ポート番号は有限であるが、エージェント名の取り方はポート番号に比べてほぼ無限であるため、エージェントが使用するエージェント名を予約したとしても、ポート番号のようにコンピュータ資源の枯渇を心配する必要はない。
【００５６】
本発明の方法では、コンピュータネットワーク上を移動したサーバエージェントは、移動先のコンピュータのIPアドレスおよび移動先で使用するポート番号をエージェント名管理装置に通知し、登録内容を変更するもので、クライアントエージェントはサーバエージェントのコンピュータネットワーク上の移動を意識することなく、移動前も移動後も同じエージェント名を用いて通信路を確立することが可能である。
【００５７】
【発明の効果】
以上のように本発明によれば、有限なコンピュータ資源であるポート番号を有効に活用し、エージェント名によるエージェント間の通信路確立が可能となる。そして、必要なエージェントを必要なときに起動すること、最適なコンピュータに移動してサービスを提供するエージェントを実現することが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態によるエージェント通信路確立システムのシステム構成図
【図２】エージェント起動装置が管理するエージェントのデータテーブルを示す図
【図３】エージェント登録管理装置が管理するエージェントのデータテーブルを示す図
【図４】エージェント名管理装置が管理するエージェントのデータテーブルを示す図
【図５】エージェント間通信路確立システムにおけるエージェントの起動からエージェント登録、エージェント名登録の手順を示す図
【図６】エージェント間通信路確立システムにおけるエージェントの終了から、エージェント登録内容の削除、エージェント名登録内容の削除の手順を示す図
【図７】エージェント間通信路確立システムにおけるエージェントの移動を説明する図
【図８】エージェント間通信路確立システムにおけるエージェントの移動を説明する図
【図９】エージェント間通信路確立システムにおけるエージェントの移動を説明する図
【図１０】エージェント間の通信路が確立する手順を説明する図
【図１１】従来のクライアント／サーバモデルによるプロセス間通信を示す図
【符号の説明】
１００  コンピュータネットワーク
１０１a  〜  １０１e  コンピュータ
１１０a  〜  １１０e  エージェント起動装置
１１１  エージェント登録管理装置
１１２  エージェント名管理装置
１２０  エージェント
１２０a１  〜  １２０ａ３  エージェント
１２０ｂ１  エージェント
１２０ｃ１  〜  １２０ｃ３  エージェント
１２０ｄ１  〜  １２０ｄ２  エージェント
１２０ｅ１  〜  １２０ｅ２  エージェント
【図１】
0003763662.tif 000002
【図２】
0003763662.tif 000003
【図３】
0003763662.tif 000004
【図４】
0003763662.tif 000005
【図５】
0003763662.tif 000006
【図６】
0003763662.tif 000007
【図７】
0003763662.tif 000008
【図８】
0003763662.tif 000009
【図９】
0003763662.tif 000010
【図１０】
0003763662.tif 000011
【図１１】
0003763662.tif 000012