(57)【要約】【課題】移動エージェント全体を規制する実行動作の包括的な制限と独立して、その移動エージェントの指定する各処理の実行動作を許可または制限することができるようにする。【解決手段】移動エージェント１０のデータ構造で、処理制御プログラム１４は、移動先コンピュータに関して行動予定表１５に記述された各目的処理部分プログラムの解釈形式を判別する手順と、目的処理部分プログラムの解釈形式が移動エージェント１０のそれと異なると判別された場合に、処理制御プログラム１４などとは独立して目的処理部分プログラムを実行するための要求をコンピュータ内に設けられた目的処理実行機構４１に通知する手順とをコンピュータに実行させる。【選択図】        図１
2004355129.tif 000002
【特許請求の範囲】
【請求項１】
相互に通信可能なコンピュータ間を自律的に移動し、到着した各コンピュータで処理を実行することが可能な移動エージェントのデータ構造において、
前記移動エージェントの行き先コンピュータの順序と、各行き先コンピュータで実行する目的処理部分プログラムの指定とを記述した行動予定指定データ部と、
移動エージェントが現在訪問している移動先コンピュータに関して前記行動予定指定データ部に指定された目的処理部分プログラムを判別する手順と、判別された前記目的処理部分プログラムを実行する手順とを前記移動先コンピュータに実行させるための基本動作プログラムとを備え、
前記基本動作プログラムは、前記移動先コンピュータに関して前記行動予定指定データ部に記述された各目的処理部分プログラムの解釈形式を判別する手順と、
目的処理部分プログラムの解釈形式が前記基本動作プログラムの解釈形式と同一であると判別された場合に、前記基本動作プログラムの制御記述に従って前記目的処理部分プログラムを実行する手順と、
目的処理部分プログラムの解釈形式が前記基本動作プログラムの解釈形式と異なると判別された場合に、前記基本動作プログラムとは独立して前記目的処理部分プログラムを実行するための要求を前記移動先コンピュータ内に設けられた目的処理実行機構に通知する手順とを前記移動先コンピュータに実行させることを特徴とする移動エージェントのデータ構造。
【請求項２】
行動予定指定データ部は、各目的処理部分プログラムの解釈形式と、基本動作プログラムの解釈形式と異なる解釈形式の各目的処理部分プログラムに対する各行き先コンピュータでの実行動作制限とを記述しており、
基本動作プログラムは、基本動作プログラムとは独立して前記目的処理部分プログラムを実行するための要求を目的処理実行機構に通知する手順を移動先コンピュータに実行させる場合に、前記実行動作制限を前記目的処理実行機構に通知する手順を前記移動先コンピュータに実行させることを特徴とする請求項１記載の移動エージェントのデータ構造。
【請求項３】
目的処理部分プログラムの解釈形式が基本動作プログラムの解釈形式と同一であると判別された場合のみに、前記目的処理部分プログラムを実行する手順を移動先コンピュータに実行させるための目的処理実行部分プログラムを備えることを特徴とする請求項１または請求項２記載の移動エージェントのデータ構造。
【請求項４】
データ構造内に基本動作プログラムと別個に目的処理部分プログラムを格納することが可能な目的処理部分プログラム格納部を備え、
行動予定指定データ部は、各目的処理部分プログラムの格納箇所を記述しており、
基本動作プログラムは、移動先コンピュータに関して前記行動予定指定データ部に記述された格納箇所を参照する手順と、
目的処理部分プログラムの格納箇所が前記目的処理部分プログラム格納部である場合に、前記目的処理部分プログラムを前記目的処理部分プログラム格納部から抽出する手順と、
目的処理部分プログラムの格納箇所が前記移動先コンピュータ内である場合に、前記目的処理部分プログラムを前記移動先コンピュータから読み出す手順と、
目的処理部分プログラムの格納箇所が前記移動先コンピュータと通信可能な外部コンピュータ内である場合に、前記目的処理部分プログラムを前記外部コンピュータから受信するか、前記外部コンピュータにある前記目的処理部分プログラムを遠隔実行する手順とを前記移動先コンピュータに実行させることを特徴とする請求項１から請求項３のうちのいずれか１項記載の移動エージェントのデータ構造。
【請求項５】
目的処理部分プログラムの解釈形式が前記基本動作プログラムの解釈形式と同一であると判別され、かつ前記目的処理部分プログラムの格納箇所が移動先コンピュータと通信可能な外部コンピュータ内である場合に、前記外部コンピュータにある前記目的処理部分プログラムを前記基本動作プログラムの制御記述に従って遠隔実行する手順を前記移動先コンピュータに実行させる遠隔目的処理実行部分プログラムと、
目的処理部分プログラムの解釈形式が前記基本動作プログラムの解釈形式と異なると判別され、かつ前記目的処理部分プログラムの格納箇所が移動先コンピュータと通信可能な外部コンピュータ内である場合に、前記目的処理部分プログラムを前記外部コンピュータから受信する手順を前記移動先コンピュータに実行させる受信制御部分プログラムとを備えたことを特徴とする請求項４記載の移動エージェントのデータ構造。
【請求項６】
基本動作プログラムの解釈形式と異なる解釈形式の目的処理部分プログラムは、作成時にコンパイル不要な中間言語で作成されていることを特徴とする請求項１から請求項５のうちのいずれか１項記載の移動エージェントのデータ構造。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、移動エージェントのデータ構造に関するものである。
【０００２】
【従来の技術】
通信ネットワークの発展に伴い、ネットワークに接続されたコンピュータ間を自律的に移動するソフトウエアである移動エージェントが提案されつつある。移動エージェントの目的としては、例えば、ネットワークを介した情報の収集、提供、交換が考えられている。
【０００３】
従来提案されている移動エージェントシステムでは、例えば特許文献１に開示されているように、移動エージェントが実行する目的処理プログラムと、その目的処理プログラムの処理するデータの両方を、移動エージェントが移動エージェントの訪問するコンピュータ（以下、移動先コンピュータと略す）まで携帯するようになっている。あるいは、他の移動エージェントシステムでは、例えば特許文献２に開示されているように、目的処理プログラムを各ノードに格納しておき、移動エージェントが移動先コンピュータから目的処理プログラムを呼び出して、その目的処理プログラムを移動エージェントのプログラムの一部として実行するものもある。
【０００４】
また、移動エージェントについて各行き先のコンピュータでの実行動作を制限する技術も提案されている。例えば、特許文献３に記載されたエージェントシステムでは、移動エージェントが到着すると、クライアントはクライアント自身の電子署名とともに移動エージェントの電子署名を認証サーバに通知する。移動エージェントの身元とクライアントの身元が認証された場合に、認証サーバは、各クライアントに関して許可されているセキュリティレベルに対応したエージェント実行環境をクライアントに提供する。移動エージェントは、到着したクライアントでは、エージェント実行環境で許可されたアクセス権限内でそのクライアントに格納されたファイルなどの資源にアクセスでき、許可されていない資源にはアクセスできない。
【０００５】
さらに、特許文献４に記載されたプラント監視制御システムでは、監視制御対象のプラントの監視制御システムがアクセス権データを保有し、アクセス権データでプラントの運転データへのアクセス権（書き込み権または読み出し権）を、いかなる種別の遠隔拠点に付与するかを設定する。遠隔拠点から送信されてくるモバイルエージェントには、送信元の遠隔拠点の種別を示す遠隔権限キーが付加されており、権限キーが示す遠隔拠点の種別に対応する運転データのみに、権限キーが示す遠隔拠点の種別に対応するアクセス方式で、モバイルエージェントがアクセスできる。
【０００６】
【特許文献１】
特開２００１−５７５０号公報
【特許文献２】
特開平１１−１８４７００号公報
【特許文献３】
特開２０００−２０７３５７号公報
【特許文献４】
特開２００２−３２１２２号公報
【０００７】
【発明が解決しようとする課題】
上記のように移動エージェントに関する各種の提案が進められているが、移動エージェントについては、移動先のコンピュータでの実行動作の制限に関して、以下のように改善する余地がある。
一般に実行動作の制限は、移動先のコンピュータの環境または資源を保護するために設定される。例えばコンピュータに保存されたデータファイルおよびプログラムファイルを、悪意のある移動エージェント（例えばコンピュータウイルス）または信頼性の低い移動エージェントによる消去または改竄から包括的に保護するためである。上記の特許文献３による実行動作の制限は、コンピュータの環境または資源を保護すること、すなわちセキュリティ確保を目的とし、移動エージェントの身元が確認されると、移動先コンピュータで必要とされるセキュリティレベルに応じて移動エージェントの実行動作が制限される。
【０００８】
他方、移動エージェントの実行する目的処理すなわち用途の種別に応じて実行動作を制限したいという要求が存在する。例えば、ある移動先コンピュータについては移動先コンピュータから情報を収集する用途のみに移動エージェントを使用する場合には、移動先コンピュータに格納されたファイルを読み出せば足り、移動エージェントがそのファイルを書き換えることは望ましくない。他方、ある移動先コンピュータには情報を提供する場合には、移動先コンピュータに新たにファイルを格納するか、既存のファイルを書き換える必要がある。上記の特許文献４による技術は、移動エージェントの用途に応じて、各データへの移動エージェントの書き込みおよび／または読み出しを制限する。
【０００９】
このように実行動作の制限には複数の種類があるが、環境または資源を包括的に保護するための実行動作の制限は、移動先コンピュータで必要なセキュリティレベルに応じて、移動先コンピュータの環境、すなわちオペレーティングシステムまたは仮想的オペレーティングシステム（例えばＪａｖａ（登録商標）ＶＭ（Ｊａｖａ（登録商標）仮想マシン））で設定される。従って、目的処理の用途の種別などに基づく実行動作の制限が、包括的な実行動作の制限によりさらに制約される場合がある。すなわち、ある移動エージェントの目的処理プログラムの実行が移動先コンピュータで許可されているにもかかわらず、その目的処理プログラム内に包括的なセキュリティ制限に抵触する処理が含まれる場合、目的処理が実行できないことがある。このため、移動エージェントの設計者がせっかく目的処理プログラムの各々に、各移動先コンピュータでの実行動作の制限を規定しても、包括的なセキュリティ制限よりも低いレベルの実行動作制限が規定された目的処理プログラムが実行できないため、設計者の当初の意図の通りに移動エージェントが働かないことがありうる。
【００１０】
セキュリティ確保のための実行動作の制限条件を緩めれば緩めるほど、多くの目的処理プログラムが実行可能となるが、これでは不適切な移動エージェントから移動先コンピュータを保護するというセキュリティ確保のための制限の意味が薄くなる。この問題の解決のために、例えば特許文献２に開示された技術を応用して、あらかじめ各移動先コンピュータに移動エージェントが実行する目的処理プログラムを格納しておき、移動エージェントが移動先コンピュータにメッセージ通信などの手段でプログラムの実行要求を伝えることにより、あらかじめ格納された目的処理プログラムを起動して、目的処理を実行する方式も考えられる。この後者の方法によれば、移動エージェントに対するセキュリティのための実行動作制限と、あらかじめ格納された目的処理プログラムに対する実行動作制限を分離することができるが、実行する目的処理プログラムを移動エージェントの送信者が保守管理できるという移動エージェントの利点を損なうことになる。
【００１１】
この発明は上記のような課題を解決するためになされたもので、移動エージェント全体を規制する実行動作の包括的な制限と独立して、その移動エージェントの指定する各処理の実行動作を許可または制限することができる移動エージェントのデータ構造を得ることを目的とする。
【００１２】
【課題を解決するための手段】
この発明に係る移動エージェントのデータ構造は、相互に通信可能なコンピュータ間を自律的に移動し、到着した各コンピュータで処理を実行することが可能な移動エージェントのデータ構造において、前記移動エージェントの行き先コンピュータの順序と、各行き先コンピュータで実行する目的処理部分プログラムの指定とを記述した行動予定指定データ部と、移動エージェントが現在訪問している移動先コンピュータに関して前記行動予定指定データ部に指定された目的処理部分プログラムを判別する手順と、判別された前記目的処理部分プログラムを実行する手順とを前記移動先コンピュータに実行させるための基本動作プログラムとを備え、前記基本動作プログラムは、前記移動先コンピュータに関して前記行動予定指定データ部に記述された各目的処理部分プログラムの解釈形式を判別する手順と、目的処理部分プログラムの解釈形式が前記基本動作プログラムの解釈形式と同一であると判別された場合に、前記基本動作プログラムの制御記述に従って前記目的処理部分プログラムを実行する手順と、目的処理部分プログラムの解釈形式が前記基本動作プログラムの解釈形式と異なると判別された場合に、前記基本動作プログラムとは独立して前記目的処理部分プログラムを実行するための要求を前記移動先コンピュータ内に設けられた目的処理実行機構に通知する手順とを前記移動先コンピュータに実行させるものである。
【００１３】
【発明の実施の形態】
以下、図面を参照しながらこの発明に係る実施の形態を説明する。
実施の形態１．
図１は、この発明に係る移動エージェントを運用する移動エージェントシステムを示す概略図である。図１に示すように、このシステムは、ネットワーク１と、ネットワーク１を介して接続されたコンピュータ２，３，４，５を備える。ネットワーク１はインターネットでもよいし、ローカルエリアネットワークでもよい。図示しないが、コンピュータ２，３，４，５は、情報転送サーバまたはルータを介してネットワーク１に接続されていてもよい。
【００１４】
このシステムにおいて、相互に通信可能なようにリンクされたコンピュータ２，４，５を移動エージェント１０が自律的に移動し、移動エージェントは移動エージェントの訪問するコンピュータ（以下、移動先コンピュータと略す）で目的の処理を実行する。つまり移動先コンピュータ（図１ではコンピュータ４）は、移動エージェントの指示に基づいて移動エージェントの移動と実行を管理する。移動エージェント１０の目的としては、例えば、ネットワーク１を介した情報の収集、提供、交換がある。さらに具体的には、移動エージェント１０はオフィスビル、プラント、工場などの設備に設けられたコンピュータを巡回して、設備状況監視などの目的処理を実行する。
【００１５】
移動エージェント１０は、移動制御プログラム１１、ドキュメント格納部１２、目的処理格納部（目的処理部分プログラム格納部）１３、処理制御プログラム（基本動作プログラム）１４、行動予定表（行動予定指定データ部）１５、および目的処理実行ルーチン（基本動作プログラム内の目的処理実行部分プログラム）１６を内部に有しており、これらを移動時に携帯する。
【００１６】
行動予定表１５は、移動制御プログラム１１、処理制御プログラム１４、目的処理実行ルーチン１６および目的処理格納部１３のいずれからも独立して分離した形式で格納されている。行動予定表１５には、移動エージェント１０の行き先コンピュータの順序と、各行き先コンピュータで開くドキュメントの指定と、そのドキュメントについて各行き先コンピュータで実行する目的処理部分プログラムの指定とが記述されている。例えば、行き先コンピュータの順序として、コンピュータ２、コンピュータ４、コンピュータ５が行動予定表１５に記述されている。
【００１７】
移動制御プログラム１１は、移動先コンピュータでの必要な目的処理が全て終了した後、行動予定表１５に指定された行き先コンピュータの順序に従って他のコンピュータに移動エージェント１０を移動させる移動手順を移動先コンピュータに実行させる。従って、移動エージェント１０は、行動予定表１５に記述された各行き先を順番に移動してゆく。
【００１８】
ドキュメント格納部１２には、様々な行き先コンピュータで開かれる複数のドキュメント１２ａ〜１２ｎが格納されている。また、目的処理格納部１３には、様々な行き先コンピュータで実行される複数の内部目的処理部分プログラム１３ａ〜１３ｎが格納されている。処理制御プログラム１４は、移動エージェント１０が移動先コンピュータに関して行動予定表１５に指定された開くべきドキュメントを判別する手順と、そのドキュメントについて行動予定表１５に指定された実行すべき目的処理部分プログラムを判別する手順と、判別された目的処理部分プログラムを実行する手順とを移動先コンピュータに実行させる。つまり、処理制御プログラム１４は、行動予定表１５を参照して現在の移動先コンピュータ４に関して行動予定表１５に指定されたドキュメントを判別するための命令と、そのドキュメントについて行動予定表１５に指定された実行すべき目的処理部分プログラムを判別するための命令とを含んでおり、さらに判別された目的処理部分プログラムを実行するのに必要な各種の命令を含む。従って、移動先コンピュータに応じて、開かれるドキュメントおよびそのドキュメントについて実行される目的処理部分プログラムを異ならせることが可能である。
【００１９】
目的処理実行ルーチン１６は、処理制御プログラム１４のサブルーチンとして機能し、処理制御プログラム１４が実行すべきと判断した目的処理部分プログラムの一部を移動先コンピュータ４のランダムアクセスメモリ（図示しない）にロードして実行する手順を移動先コンピュータに実行させる。目的処理実行ルーチン１６は、処理制御プログラム１４とともに、移動エージェント１０の基本動作プログラムをなす。他の形態として、目的処理実行ルーチン１６の機能は処理制御プログラム１４の機能の一部に含まれていてもよい。すなわち、目的処理実行ルーチン１６と同じ機能を持つサブルーチンの形式ではない命令文の列を目的処理実行部分プログラムとして、処理制御プログラム１４が有していてもよい。
【００２０】
移動先コンピュータ４で実行される目的処理部分プログラムは、移動エージェント１０が携帯する目的処理格納部１３に格納された内部目的処理部分プログラム１３ａ〜１３ｎに限らず、外部のコンピュータ３内に格納された目的処理部分プログラムでもよいし、移動先コンピュータ４内に既に格納された目的処理部分プログラムでもよい。ここで、「コンピュータ内に格納された」とは、コンピュータの中央演算処理装置の記憶領域に格納されていることも、中央演算処理装置に接続されそのコンピュータの付属品として働くストレージに格納されていることも含むことを意図している。図１に示すように、ネットワーク１に接続された外部のコンピュータ３は、目的処理格納ストレージ３０を備えており、目的処理格納ストレージ３０は複数の外部目的処理部分プログラム３１〜３ｎを格納する。外部目的処理部分プログラム３１〜３ｎは、各行き先コンピュータで処理制御プログラム１４の命令に応じて利用することが可能である。また、移動先コンピュータ４に直接接続された移動先コンピュータ４のための目的処理格納ストレージ６は、複数の外部目的処理部分プログラム６１〜６ｎを格納する。外部目的処理部分プログラム６１〜６ｎは、移動先コンピュータ４で処理制御プログラム１４の命令に応じて利用することが可能である。
【００２１】
この明細書において、目的処理部分プログラムとは、コンピュータを機能させて一の結果を得ることができるようにこれに対する指令を組み合わせたものであり、移動エージェント１０の処理制御プログラム１４に指定されると、コンピュータにその指令に応じた動作を実行させる。目的処理部分プログラムの種別には、中間言語で作成されておりコンピュータが理解できるネイティブ言語に各文が逐次翻訳（インタプリト）されて実行されるスクリプトと、翻訳をせずに実行されるモジュールとがありうる。移動エージェント１０の目的処理格納部１３に格納された内部目的処理部分プログラム１３ａ〜１３ｎにはスクリプトとモジュールが混在し、目的処理格納ストレージ３０に格納された外部目的処理部分プログラム３１〜３ｎも同様であり、コンピュータ４の目的処理格納ストレージ６に格納された外部目的処理部分プログラム６１〜６ｎも同様である。
【００２２】
この実施の形態においては、スクリプトは例えばＪａｖａ（登録商標）スクリプトで作成されており、マークアップ言語、例えばＨＴＭＬ（ｈｙｐｅｒｔｅｘｔ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）またはＸＭＬ（ｅｘｔｅｎｓｉｂｌｅ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）形式の実行要求に埋め込まれている。他方、モジュールは例えばＪａｖａ（登録商標）で作成されている。コンピュータ間の転送段階（実行処理前の段階）ではＪａｖａ（登録商標）で記述されたモジュールも中間言語のＪａｖａ（登録商標）バイトコードであるが、Ｊａｖａ（登録商標）バイトコードのモジュールはＪａｖａ（登録商標）ＶＭに設けられたＪＩＴコンパイラ（ｊｕｓｔ  ｉｎ−ｔｉｍｅ  ｃｏｍｐｌｉｅｒ）により一括的にネイティブ言語に自動変換（コンパイル）されて実行され、Ｊａｖａ（登録商標）スクリプトのスクリプトはＪａｖａ（登録商標）スクリプトインタプリタにより各文がネイティブ言語に逐次翻訳される。
【００２３】
さて、移動エージェント１０の移動制御プログラム１１、処理制御プログラム１４および目的処理実行ルーチン１６は、例えばＪａｖａ（登録商標）で作成されている。より具体的には、コンピュータ間の移動エージェント１０の移動段階（実行処理前の段階）では移動制御プログラム１１、処理制御プログラム１４および目的処理実行ルーチン１６は、中間言語のＪａｖａ（登録商標）バイトコードであるが、これらの各々はＪａｖａ（登録商標）ＶＭに設けられたＪＩＴコンパイラにより一括的にネイティブ言語に自動変換（コンパイル）されて実行される。すなわち、移動エージェント１０が携帯するこれらのプログラムは、上記のモジュールと同様に、Ｊａｖａ（登録商標）ＶＭなどの環境（以下、エージェント実行環境）で解釈された後に実行される。従って、移動エージェント１０の移動制御プログラム１１、処理制御プログラム１４および目的処理実行ルーチン１６は、モジュールと同じ解釈形式であるから、同じエージェント実行環境で実行されるといえる。
【００２４】
他方、上記のスクリプトは、Ｊａｖａ（登録商標）スクリプトインタプリタで解釈された後に実行される。従って、スクリプトは、モジュールおよび処理制御プログラム１４などとは異なる解釈形式であるから、エージェント実行環境とは異なるスクリプト実行環境で実行されるといえる。
【００２５】
移動エージェント１０が巡回するコンピュータには、Ｊａｖａ（登録商標）ＶＭがインストールされて、モジュールおよび処理制御プログラム１４などを解釈・実行するエージェント実行環境が実現されている。また、同じコンピュータにＪａｖａ（登録商標）スクリプトインタプリタがインストールされて、スクリプトを解釈するスクリプト実行環境が実現されている。図１において、コンピュータ４内の目的処理実行機構４１は、コンピュータ４に設けられたスクリプト実行環境である。目的処理実行機構４１は、マークアップ言語で記述された実行要求を解釈し、そこに埋め込まれたスクリプトをＪａｖａ（登録商標）スクリプトインタプリタにて解釈した後に実行する。
【００２６】
他方、コンピュータ４に設けられたエージェント実行環境は特に図示しないが、このエージェント実行環境により、移動エージェント１０の移動制御プログラム１１、処理制御プログラム１４および目的処理実行ルーチン１６、ならびにモジュールに記述された各命令が実行可能になる。エージェント実行環境には、移動先コンピュータの環境または資源を包括的に保護するための実行動作の制限が設定される。このような実行動作の制限は、悪意のある移動エージェントまたは信頼性の低い移動エージェントによる環境または資源を消去または改竄から保護することを目的として、移動先コンピュータで必要なセキュリティレベルに応じて、エージェント実行環境に設定される。各コンピュータに対する包括的な実行動作の制限は、移動エージェントシステムで適用される規則または取り決めに従って与えられる。
【００２７】
上記の異なる解釈形式の目的処理部分プログラムを実行するために、処理制御プログラム１４は、移動先コンピュータ４に関して行動予定表１５に記述された目的処理部分プログラムの解釈形式を判別する手順、具体的にはＪａｖａ（登録商標）かＪａｖａ（登録商標）スクリプトかを判別する手順を移動先コンピュータ４に実行させる。目的処理部分プログラムの解釈形式が処理制御プログラム１４の解釈形式と同一であると判別された場合（目的処理部分プログラムがＪａｖａ（登録商標）で記述されたモジュールである場合）、処理制御プログラム１４は目的処理実行ルーチン１６の制御記述に従って目的処理部分プログラムを実行する手順を移動先コンピュータ４に実行させる。つまり、処理制御プログラム１４は、目的処理部分プログラムを実行するのに必要な命令として、各目的処理部分プログラムの解釈形式を判別するための命令と、判別結果が同一解釈形式を示す場合にその目的処理部分プログラムを指定して目的処理実行ルーチン１６を開始するための命令を含み、目的処理実行ルーチン１６は指定されたＪａｖａ（登録商標）の目的処理部分プログラム（モジュール）を実行するための命令を含む。このようにモジュールは移動エージェント１０の目的処理実行ルーチン１６に従属して実行される。
【００２８】
他方、目的処理部分プログラムの解釈形式が処理制御プログラム１４の解釈形式と異なると判別された場合（目的処理部分プログラムがＪａｖａ（登録商標）スクリプトで記述されたスクリプトである場合）、処理制御プログラム１４は目的処理部分プログラムを移動先コンピュータ４の目的処理実行機構４１で実行するための要求を移動先コンピュータ４に通知する手順を移動先コンピュータ４に実行させる。つまり、処理制御プログラム１４は、目的処理部分プログラムを実行するのに必要な命令として、判別結果が異なる解釈形式を示す場合にその目的処理部分プログラムを指定して移動先コンピュータ４の目的処理実行機構４１で実行するための要求を移動先コンピュータ４に通知するための命令を含む。このようにスクリプト形式の目的処理部分プログラムをスクリプト実行環境で動作する目的処理実行機構４１で実行することにより、エージェント実行環境で動作する処理制御プログラム１４および目的処理実行ルーチン１６とは独立して、スクリプト形式の目的処理部分プログラムを実行することが可能になる。
【００２９】
図２は、移動エージェント１０の状態遷移図である。移動エージェント１０は目的の移動先コンピュータに到着すると、コンピュータにより実行可能な活性状態に遷移させられる。活性状態になった移動エージェント１０は目的処理の実行を全て終了し次の移動先に移動するまでの間に、必要に応じて一時停止状態や停止状態に遷移することもある。そして、一つの移動先コンピュータで目的処理の実行を全て終了し、次の移動先に移動する前に、移動エージェント１０はそのコンピュータにより移動状態に遷移させられ、他のコンピュータへの移動を開始する。また、次の移動先が行動予定表１５に記述されていない場合は、移動エージェント１０は消滅する場合もある。移動の態様としては、移動エージェント１０が自身のコピーを次のコンピュータ内に作成して、現在の移動先コンピュータからは消滅するようにしてもよい。
【００３０】
図３は、移動エージェントがどのコンピュータでどのドキュメントに関するいかなる目的処理を実施するかを記述した行動予定表１５のデータ構造すなわちフォーマットを示す。図３に示すように、行動予定表１５は、行き先フィールド１７ａ〜１７ｎとドキュメント定義フィールド１８ａ〜１８ｎを有する。行き先フィールド１７ａ〜１７ｎは、移動エージェント１０の行き先コンピュータを表し、ここにはコンピュータ２，４，５のいずれかが記述される。行き先フィールド１７ａ〜１７ｎの並びの順序は、移動エージェント１０が移動する行き先コンピュータの順序、すなわち移動エージェント１０の経路を示す。
【００３１】
ドキュメント定義フィールド１８ａ〜１８ｎは、各行き先コンピュータで実行する目的処理部分プログラムの指定を記述する。各ドキュメント定義フィールドは、ドキュメント識別子２０、目的処理名２１、目的処理ロケーション２２、目的処理実行環境情報２３および目的処理ポリシー識別子２４の各サブフィールドを有する。ドキュメント識別子２０は、移動エージェント１０がドキュメント格納部１２に携帯するドキュメント１２ａ〜１２ｎのうち行き先コンピュータで実行するドキュメントを特定する。目的処理名２１は、ドキュメント識別子２０で特定されたドキュメントについて行き先コンピュータで実行する目的処理部分プログラムを特定する。上述のように行き先コンピュータで実行される目的処理部分プログラムは、移動エージェント１０が携帯する目的処理格納部１３に格納された内部目的処理部分プログラム１３ａ〜１３ｎに限らず、外部のコンピュータ３に格納された外部目的処理部分プログラム３１〜３ｎでもよいし、行き先コンピュータまたはそのためのストレージに既に格納された外部目的処理部分プログラム６１〜６ｎでもよい。目的処理名２１には目的処理部分プログラムの実際の名称が記述される。また、目的処理ロケーション２２には、目的処理名２１で特定された目的処理部分プログラムの格納された箇所が記述される。
【００３２】
目的処理実行環境情報２３は、目的処理名２１で特定された目的処理部分プログラムの実行環境（換言すれば目的処理プログラムの解釈形式）を特定する。具体的には、ここにはスクリプト実行環境またはエージェント実行環境が記述される。これに代えて、目的処理実行環境情報２３には単にＪａｖａ（登録商標）形式かＪａｖａ（登録商標）スクリプト形式かを記述してもよい。
【００３３】
目的処理ポリシー識別子２４は、この実施の形態１では、目的処理実行環境情報２３がスクリプト実行環境（Ｊａｖａ（登録商標）スクリプト形式）を特定している場合にのみ有効である。目的処理ポリシー識別子２４は、Ｊａｖａ（登録商標）スクリプト形式の目的処理部分プログラム（スクリプト）に対する行き先コンピュータでの実行動作制限を記述する。例えば、ある行き先コンピュータについては行き先コンピュータから情報を収集する用途のみに移動エージェントを使用する場合には、行き先コンピュータに格納されたファイルを読み出せば足り、移動エージェントがそのファイルを書き換えることは望ましくない。他方、ある行き先コンピュータには情報を提供する場合には、行き先コンピュータに新たにファイルを格納するか、既存のファイルを書き換える必要がある。このような場合には、読み取りまたは書き込みを目的処理ポリシー識別子２４で区別する。また、特定の資源へのアクセスを他の理由で制限するためにも目的処理ポリシー識別子２４を使用してもよい。
【００３４】
上記より明らかなように、目的処理ポリシー識別子２４の内容としての実行動作制限は、個々の行き先コンピュータに応じて異なっていてもよいし、個々の目的処理プログラムに応じて異なっていてもよい。また、この個別的な実行動作制限はこの実施の形態１では、スクリプト実行環境でのみ有効であり、スクリプトを目的処理実行機構４１で実行するときに移動先コンピュータの目的処理実行機構４１で使用される。スクリプトはエージェント実行環境とは関わりなく、目的処理実行機構４１で実行されるので、目的処理ポリシー識別子２４の内容としての個別的な実行動作制限は、エージェント実行環境に規定されたコンピュータに対する包括的な実行動作制限とは独立しており、包括的な実行動作制限よりも厳しくてもよいし緩くてもよい。
【００３５】
次に、図４を参照しながら、移動エージェント１０の処理制御プログラム１４の動作をより詳細に説明する。
移動エージェント１０は行動予定表１５の行き先フィールドに記述された訪問すべき移動先コンピュータに到着すると、移動状態（図２）から目的処理を実行することができる活性状態に遷移し、処理制御プログラム１４が図４に示すシーケンスを開始する。最初に、処理制御プログラム１４は、行動予定表１５に記述された移動先コンピュータに対応するドキュメント定義フィールドを読み込む手順を移動先コンピュータに実行させる（ステップＳＴ１）。次に、処理制御プログラム１４は、読み込んだドキュメント定義フィールドのドキュメント識別子２０、目的処理名２１、目的処理ロケーション２２および目的処理ポリシー識別子２４を参照する手順を移動先コンピュータに実行させる（ステップＳＴ２）。さらに、ドキュメント識別子２０で特定されたドキュメントを移動エージェント１０のドキュメント格納部１２から移動先コンピュータ４のランダムアクセスメモリにロードする手順を移動先コンピュータに実行させる（ステップＳＴ３）。
【００３６】
さらに目的処理実行環境情報２３を参照する手順を移動先コンピュータに実行させる（ステップＳＴ４）。次に、これから実行すべき目的処理部分プログラムの実行環境を判定する手順を移動先コンピュータに実行させる（ステップＳＴ５）。つまり、目的処理実行環境情報２３に基づいて、目的処理部分プログラムの解釈形式を判別する手順、具体的にはＪａｖａ（登録商標）かＪａｖａ（登録商標）スクリプトかを判別する手順を移動先コンピュータに実行させる。
【００３７】
目的処理部分プログラムがＪａｖａ（登録商標）スクリプトで記述されたスクリプトである場合、既に参照した目的処理ロケーション２２に基づいてそのスクリプトが内部目的処理部分プログラムか否かを判定する手順を移動先コンピュータに実行させる（ステップＳＴ６）。すなわち、移動エージェント１０に携帯された内部目的処理部分プログラム１３ａ〜１３ｎを実行すべきか否かを判定する。ステップＳＴ６で内部目的処理部分プログラムであると判定された場合、処理制御プログラム１４は、目的処理ロケーション２２に基づいて、マークアップ言語で記述された実行要求に埋め込まれたままのそのスクリプトを移動エージェント１０の目的処理格納部１３から抽出してランダムアクセスメモリにロードする手順を移動先コンピュータに実行させる（ステップＳＴ７）。
【００３８】
この後、既にロードしたドキュメントと共にそのスクリプトを移動先コンピュータの目的処理実行機構４１に引き渡し、目的処理ポリシー識別子２４の内容を目的処理実行機構４１に通知する手順を移動先コンピュータに実行させる（ステップＳＴ８）。目的処理実行機構４１は、マークアップ言語で記述された実行要求を解釈し、そこに埋め込まれたスクリプトをＪａｖａ（登録商標）スクリプトインタプリタにて解釈した後に実行する。このスクリプトの実行は、ドキュメントを用いた処理を伴う。また、このスクリプトの実行の際には、エージェント実行環境に規定された包括的な実行動作制限とは独立して、目的処理実行機構（スクリプト実行環境）４１は目的処理ポリシー識別子２４の内容に従って各スクリプトの実行動作を個別的に制限する。
【００３９】
またステップＳＴ６でスクリプトが外部目的処理部分プログラムであると判定された場合、さらに処理制御プログラム１４は、目的処理ロケーション２２に基づいて、スクリプトが移動先コンピュータ内に格納されているか否かを判定する手順を移動先コンピュータに実行させる（ステップＳＴ９）。スクリプトが移動先コンピュータ内に格納されている場合、すなわち目的処理格納ストレージ６に格納された外部目的処理部分プログラム６１〜６ｎである場合には、目的処理ロケーション２２に基づいて、マークアップ言語で記述された実行要求に埋め込まれたままのそのスクリプトを目的処理格納ストレージ６から読み出してランダムアクセスメモリにロードする手順を移動先コンピュータに実行させ（ステップＳＴ１０）、既にロードしたドキュメントと共にそのスクリプトを移動先コンピュータの目的処理実行機構４１に引き渡し、目的処理ポリシー識別子２４の内容を目的処理実行機構４１に通知する（ステップＳＴ８）。
【００４０】
ステップＳＴ９でスクリプトが移動先コンピュータ内に格納されていないと判断された場合、すなわち外部のコンピュータ３の目的処理格納ストレージ３０に格納された外部目的処理部分プログラム３１〜３ｎである場合には、処理制御プログラム１４は、目的処理ロケーション２２に基づいて、マークアップ言語で記述された実行要求に埋め込まれたままのそのスクリプトをコンピュータ３からネットワーク１を介してダウンロード受信してランダムアクセスメモリにロードする手順を移動先コンピュータに実行させ（ステップＳＴ１１）、既にロードしたドキュメントと共にそのスクリプトを移動先コンピュータの目的処理実行機構４１に引き渡し、目的処理ポリシー識別子２４の内容を目的処理実行機構４１に通知する（ステップＳＴ８）。すなわち、この実施の形態１では、外部のコンピュータに格納されたスクリプトを受信する受信制御部分プログラムを処理制御プログラム１４が命令文の列として内包する。ただし、外部のコンピュータに格納されたスクリプトを受信する受信制御部分プログラムをサブルーチンの形式で移動エージェント１０が格納し、このサブルーチンを処理制御プログラム１４が呼び出すようにしてもよい。
【００４１】
以上のようにスクリプト形式の目的処理部分プログラムを移動エージェント１０の処理制御プログラム１４の命令によりロードすることにより、エージェント実行環境に規定された包括的な実行動作制限から独立して、目的処理部分プログラムを目的処理実行機構４１で実行することが可能である。特に、移動エージェント１０の処理制御プログラム１４によって外部のコンピュータ３からスクリプトをダウンロード受信するので、他人が作成したスクリプトを個別の実行動作制限の下で実行することができる。
【００４２】
ただし、他の形態として、ステップＳＴ６およびその後の手順の代わりに、ステップＳＴ５の後にドキュメントを移動先コンピュータの目的処理実行機構４１に引き渡し、目的処理名２１、目的処理ロケーション２２および目的処理ポリシー識別子２４の内容を目的処理実行機構４１に通知する手順を処理制御プログラム１４が移動先コンピュータに実行させるようにしてもよい。そして、これに応じて移動先コンピュータの目的処理実行機構４１が、目的処理ロケーション２２に記述された格納箇所から目的処理名２１に記述された必要なスクリプトをロードして実行するようにしてもよい。このようなスクリプトの実行でも、エージェント実行環境に規定された包括的な実行動作制限とは独立して、目的処理実行機構（スクリプト実行環境）４１は目的処理ポリシー識別子２４の内容に従って各スクリプトの実行動作を個別的に制限することができる。
【００４３】
他方、ステップＳＴ５で目的処理部分プログラムがＪａｖａ（登録商標）で記述されたモジュールであると判定された場合、既に参照した目的処理ロケーション２２に基づいてそのモジュールが内部目的処理部分プログラムか否かを判定する手順を移動先コンピュータに実行させる（ステップＳＴ１２）。すなわち、移動エージェント１０に携帯された内部目的処理部分プログラム１３ａ〜１３ｎを実行すべきか否かを判定する。ステップＳＴ１２で内部目的処理部分プログラムであると判定された場合、処理制御プログラム１４は、目的処理ロケーション２２に基づいて、そのモジュールを移動エージェント１０の目的処理格納部１３から抽出してランダムアクセスメモリにロードする手順を移動先コンピュータに実行させる（ステップＳＴ１３）。
【００４４】
この後、処理制御プログラム１４は移動エージェント１０の目的処理実行ルーチン１６を呼び出して、既にロードしたドキュメントと共にそのモジュールを目的処理実行ルーチン１６に引き渡す手順を移動先コンピュータに実行させる（ステップＳＴ１４）。従って、移動エージェント１０の目的処理実行ルーチン１６の制御記述に従ってモジュール形式の目的処理部分プログラムが実行される。このモジュールの実行は、ドキュメントを用いた処理を伴う。また、このモジュールの実行は、エージェント実行環境に規定された包括的な実行動作制限により制限される。
【００４５】
またステップＳＴ１２でモジュールが外部目的処理部分プログラムであると判定された場合、さらに処理制御プログラム１４は、目的処理ロケーション２２に基づいて、モジュールが移動先コンピュータ内に格納されているか否かを判定する手順を移動先コンピュータに実行させる（ステップＳＴ１５）。モジュールが移動先コンピュータ内に格納されている場合、すなわち目的処理格納ストレージ６に格納された外部目的処理部分プログラム６１〜６ｎである場合には、目的処理ロケーション２２に基づいて、そのモジュールを目的処理格納ストレージ６から読み出してランダムアクセスメモリにロードする手順を移動先コンピュータに実行させ（ステップＳＴ１６）、目的処理実行ルーチン１６を呼び出して、既にロードしたドキュメントと共にそのモジュールを目的処理実行ルーチン１６に引き渡す（ステップＳＴ１４）。従って、移動エージェント１０の目的処理実行ルーチン１６の制御記述に従ってモジュール形式の目的処理部分プログラムが実行される。
【００４６】
ステップＳＴ１５でモジュールが移動先コンピュータ内に格納されていないと判断された場合、すなわち外部のコンピュータ３の目的処理格納ストレージ３０に格納された外部目的処理部分プログラム３１〜３ｎである場合には、処理制御プログラム１４は、目的処理実行ルーチン１６を呼び出して、既にロードしたドキュメントを目的処理実行ルーチン１６に引き渡すと共に、目的処理名２１および目的処理ロケーション２２を目的処理実行ルーチン１６に通知する（ステップＳＴ１７）。これに応じて、目的処理実行ルーチン１６は、ネットワーク１を介して、目的処理ロケーション２２に記述された格納箇所にある目的処理名２１に記述された必要なモジュールを遠隔実行する手順を移動先コンピュータに実行させる。遠隔実行の形式は、ＲＰＣ（リモートプロシージャコール）でもよいし、メッセージ交換でもよい。
【００４７】
この実施の形態１では、外部のコンピュータに格納されたモジュールを遠隔実行する遠隔目的処理実行部分プログラムを処理制御プログラム１４が命令文の列として内包する。ただし、外部のコンピュータに格納されたモジュールを遠隔実行する遠隔目的処理実行部分プログラムをサブルーチンの形式で移動エージェント１０が格納し、このサブルーチンを処理制御プログラム１４が呼び出すようにしてもよい。
【００４８】
以上のように、この実施の形態１によれば、処理制御プログラム１４は、目的処理部分プログラムの解釈形式が処理制御プログラム１４および目的処理実行ルーチン１６の解釈形式と異なると判別された場合に、処理制御プログラム１４および目的処理実行ルーチン１６とは独立して目的処理部分プログラムを実行するための要求を移動先コンピュータ内に設けられた目的処理実行機構４１に通知する手順を移動先コンピュータに実行させる。具体的には、エージェント実行環境で動作する処理制御プログラム１４および目的処理実行ルーチン１６とは独立して、処理制御プログラム１４はスクリプト形式の目的処理部分プログラムを移動先コンピュータの目的処理実行機構（スクリプト実行環境）４１に実行させる。このようにスクリプト形式の目的処理部分プログラムはエージェント実行環境とは関わりなく、目的処理実行機構４１で実行されるので、移動エージェント１０全体を規制する実行動作の包括的な制限と独立して、その移動エージェントの指定する各処理の実行動作を許可または制限することができる。すなわち、各スクリプトの動作を規制するための目的処理ポリシー識別子２４の内容としての個別的な実行動作制限は、エージェント実行環境に規定されたコンピュータに対する包括的な実行動作制限とは独立しており、包括的な実行動作制限よりも厳しくすることもできるし緩くすることもできる。
【００４９】
また、この実施の形態１では、行動予定表１５が、各目的処理部分プログラムの解釈形式を記述した目的処理実行環境情報２３と、処理制御プログラム１４などの解釈形式と異なる解釈形式の各目的処理部分プログラム（スクリプト）に対する各行き先コンピュータでの実行動作制限を記述した目的処理ポリシー識別子２４を格納している。従って、処理制御プログラム１４は、移動先コンピュータに関して行動予定表１５に記述された各目的処理部分プログラムの解釈形式を判別する手順を確実かつ容易に移動先コンピュータに実行させることが可能である。すなわち処理制御プログラム１４における解釈形式の判別手順の記述をプログラマが容易に作成することができる。
また、処理制御プログラム１４は、処理制御プログラム１４および目的処理実行ルーチン１６とは独立して目的処理部分プログラム（スクリプト）を実行するための要求を目的処理実行機構４１に通知する手順を移動先コンピュータに実行させる場合に、目的処理ポリシー識別子２４に記述された実行動作制限を目的処理実行機構４１に通知する手順を移動先コンピュータに実行させる。従って、移動エージェント１０の行動予定表１５に指定されたスクリプト形式の各目的処理部分プログラムに対して個別的に設定された実行動作制限を漏れなく目的処理実行機構４１が認識することが可能である。
【００５０】
ただし、現在では、ファイルの身元を保証するためのＩＤ（識別）コード、認証キー、電子署名などの正当性保証通知が添付されたファイルをネットワーク上で交換する技術が進展している。そこで、この発明の他の形態として、このような正当性保証通知を目的処理ポリシー識別子２４の代わりに個別的な実行動作制限通知として使用してもよい。例えば、正当な認証キーと電子署名がスクリプトに添付されていれば、目的処理実行機構４１は実行動作の制限を緩め、正当な認証キーのみがスクリプトに添付されていれば、目的処理実行機構４１は実行動作の制限を厳しくし、両方がスクリプトに添付されていない場合には実行を許さないというようにである。
【００５１】
また、このような正当性保証通知の一種として個別的な実行動作制限通知を目的処理部分プログラムに添付し、これを目的処理ポリシー識別子２４の代わりに使用してもよい。例えば、目的処理部分プログラム（外部目的処理部分プログラム３１〜３ｎ、外部目的処理部分プログラム６１〜６ｎ、内部目的処理部分プログラム１３ａ〜１３ｎ）のうち各スクリプトに個別的な実行動作制限通知を添付して、スクリプトの実行段階で目的処理実行機構４１がその個別的な実行動作制限通知を参照して、それに従って各スクリプトの実行動作を個別的に制限することができる。
【００５２】
この実施の形態１では、移動エージェントの行き先コンピュータの順序と、各行き先コンピュータで実行する目的処理部分プログラムの指定とを記述した行動予定指定データ部として、移動エージェント１０の他の部分と独立して分離した形式で格納された行動予定表１５を使用する。他の形態として、行動予定指定データ部を移動制御プログラム１１または処理制御プログラム１４に含めることも可能であり、この発明を実施の形態に限定する意図ではない。ただし、独立して格納された行動予定表１５を使用することにより次に述べる効果が得られる。
移動エージェントの行動形式として、移動先コンピュータで取得した情報などに基づいて移動エージェントの内部プログラムが自律的に行き先コンピュータおよび実行すべき目的処理を変更するものが考えられている。このような自律的に行動を決定する内部プログラムを移動エージェント１０に設けた場合には、他の部分から独立して格納された行動予定表１５のみをそのプログラムが更新することにより、移動エージェント１０の内部の制御プログラムを変更することなく、容易に今後の行動予定を変更することができる。
【００５３】
また、この実施の形態１では、目的処理部分プログラムの解釈形式が処理制御プログラム１４および目的処理実行ルーチン１６の解釈形式と同一であると判別された場合に、目的処理部分プログラム（モジュール）を実行する手順を移動先コンピュータに実行させるための目的処理実行ルーチン１６すなわち目的処理実行部分プログラムが移動エージェント１０のデータ構造に設けられている。このため移動先コンピュータには、モジュールを実行するためのプログラムをインストールしておく必要がない。一方、目的処理部分プログラムの解釈形式が処理制御プログラム１４および目的処理実行ルーチン１６の解釈形式と異なると判別された場合には、処理制御プログラム１４および目的処理実行ルーチン１６とは独立して、処理制御プログラム１４は目的処理部分プログラム（スクリプト）を移動先コンピュータの目的処理実行機構４１に実行させる。従って、スクリプトのための目的処理実行部分プログラムを移動エージェント１０が携帯しない。このため、移動エージェント１０のサイズを縮小することができ、例えば携帯電話ハンドセットまたはＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）などのようにプログラムの実行のためのワークエリアが小さいコンピュータでも移動エージェント１０を利用することが可能となる。
【００５４】
また、この実施の形態１では、目的処理部分プログラムの格納箇所が目的処理格納部１３である場合に目的処理格納部１３から目的処理部分プログラムを抽出し、目的処理部分プログラムの格納箇所が移動先コンピュータ内である場合に、目的処理部分プログラムを移動先コンピュータから読み出す。さらに、目的処理部分プログラムの格納箇所が移動先コンピュータと通信可能な外部コンピュータ内である場合には、目的処理部分プログラムを外部コンピュータから受信するか、外部コンピュータにある目的処理部分プログラムを遠隔実行する手順を移動先コンピュータに実行させる。換言すれば、様々な箇所に格納された目的処理プログラムを移動エージェント１０は利用することが可能であり、格納箇所に関する以下のような様々な得失に応じて移動エージェント１０の内容を任意に設計することが可能である。
【００５５】
例えば、移動エージェント１０の目的処理格納部１３に目的処理部分プログラムを格納することは、移動エージェント１０が移動先コンピュータに到着した後のネットワーク通信の状態に関わらず目的処理を実行することができるなどの利点があるが、移動エージェント１０のサイズが大きくなり移動エージェント１０の移動に伴うトラフィック増大という欠点がある。
他方、移動先コンピュータ内にあらかじめ目的処理部分プログラムを格納しておくことは、トラフィックの軽減に貢献し、移動エージェント１０のプログラマ以外の者が作成した目的処理部分プログラムを移動エージェント１０が利用することができるという利点がある。しかし、移動先コンピュータでの格納領域を永続的に要したり、実行する目的処理プログラムを移動エージェントの送信者が保守管理するのが困難になるという欠点がある。
外部コンピュータ内に目的処理部分プログラムを格納しておくことは、場合によってはトラフィックの軽減につながり目的処理プログラムを移動エージェントの送信者が保守管理するのも便利になる可能性もある。また移動エージェント１０のプログラマ以外の者が作成した目的処理部分プログラムを移動エージェント１０が利用することができるという利点もある。しかし、目的処理プログラムの受信または遠隔実行が却ってトラフィックの増大を招くこともあるし、ネットワーク通信が不安定な場合には、目的処理プログラムの受信または遠隔実行が不可能になることがある。
【００５６】
移動エージェント１０の用途、目的処理部分プログラムの属性、利用されるネットワークの性質および行き先コンピュータの種類などの要因に応じて、どの目的処理部分プログラムをどこに格納するのが最適であるかを考慮して、移動エージェント１０の内容をプログラマが決定することが可能である。例えば、内部目的処理部分プログラムを移動エージェント内に携帯しない場合、すなわち目的処理格納部１３が空である場合には、移動エージェント１０のサイズを著しく縮小することができ、例えば携帯電話ハンドセットまたはＰＤＡなどのようにプログラムの実行のためのワークエリアが小さいコンピュータでも移動エージェント１０を利用することが可能となる。
【００５７】
また、移動エージェント１０のプログラマ以外の者が作成した目的処理部分プログラムを積極的に利用したい場合には、行動予定表１５の目的処理ロケーション２２に移動先コンピュータ内または外部コンピュータ内の格納箇所を記述すればよい。上述の説明より明らかなように、他人が作成した目的処理部分プログラムがスクリプトの場合には、行動予定表１５内の目的処理ポリシー識別子２４またはスクリプトに添付された個別的な実行動作制限通知に従って、目的処理実行機構（スクリプト実行環境）４１が個別的にスクリプトの実行動作を制限するので、そのスクリプトの信頼性が低い場合などでも、移動先コンピュータの環境や資源の保護を十分に図ることができる。他人が作成した目的処理部分プログラムがモジュールの場合には、エージェント実行環境に規定された包括的な実行動作制限に従って、移動エージェント１０内の目的処理実行ルーチン１６がモジュールの実行動作を制限するので、移動先コンピュータの環境や資源を保護することができる。
【００５８】
なお実施の形態１では、個別的な実行動作制限はスクリプト実行環境でのみ有効であり、スクリプトを目的処理実行機構４１で実行するときに移動先コンピュータの目的処理実行機構４１で使用される。しかし、他の形態として、エージェント実行環境でも個別的な実行動作制限を使用して、モジュール（Ｊａｖａ（登録商標）形式）としての目的処理部分プログラムを移動エージェント１０内の目的処理実行ルーチン１６が実行するときに、包括的な実行動作制限に加えて個別的な実行動作制限に従って、目的処理実行ルーチン１６がモジュールの実行動作を制限するようにしてもよい。これは、目的処理ポリシー識別子２４をエージェント実行環境で実行されるモジュールで使用するか、各モジュールに個別的な実行動作制限通知を添付することにより達成できる。モジュールはエージェント実行環境に依存して実行されるので、個別的な実行動作制限はエージェント実行環境で規定された包括的な実行動作制限よりも緩めることはできないが、厳しくすることは可能である。
【００５９】
さらにまた、この実施の形態１では、外部のコンピュータに格納されたスクリプトを受信する受信制御部分プログラムと、外部のコンピュータに格納されたモジュールを遠隔実行する遠隔目的処理実行部分プログラムを移動エージェント１０のデータ構造の内部に設けている。このため移動先コンピュータには、外部のコンピュータに格納されたスクリプトを受信するプログラムおよびモジュールを遠隔実行するためのプログラムをインストールしておく必要がない。さらに、移動エージェント１０内の受信制御部分プログラムによって外部のコンピュータ３からスクリプトをダウンロード受信するので、他人が作成したスクリプトを個別の実行動作制限の下で実行することができる。
【００６０】
また、移動エージェント１０の解釈形式と異なる解釈形式の目的処理部分プログラムは、作成時にコンパイル不要な中間言語（実施の形態１ではスクリプト言語）で作成されているので、専門的なプログラミングの知識なしで目的処理部分プログラムの開発が可能であり、これにより目的処理プログラムの開発効率を向上させることが可能となる。
【００６１】
【発明の効果】
以上説明したように、この発明によれば、目的処理部分プログラムの解釈形式が基本動作プログラムの解釈形式と異なると判別された場合に、基本動作プログラムとは独立して目的処理部分プログラムを実行するための要求を移動先コンピュータ内に設けられた目的処理実行機構に通知するので、移動エージェント全体を規制する実行動作の包括的な制限と独立して、その移動エージェントの指定する各処理の実行動作を許可または制限することができる。
【図面の簡単な説明】
【図１】この発明に係る移動エージェントを運用する移動エージェントシステムを示す概略図である。
【図２】この発明に係る移動エージェントの状態遷移図である。
【図３】この発明に係る移動エージェントの行動予定表のフォーマットを示す図である。
【図４】この発明に係る移動エージェントの処理制御プログラムの動作を示すフローチャートである。
【符号の説明】
１  ネットワーク、２，３，４，５  コンピュータ、６  目的処理格納ストレージ、１０  移動エージェント、１１  移動制御プログラム、１２  ドキュメント格納部、１２ａ〜１２ｎ  ドキュメント、１３  目的処理格納部（目的処理部分プログラム格納部）、１３ａ〜１３ｎ  内部目的処理部分プログラム、１４  処理制御プログラム（基本動作プログラム）、１５  行動予定表（行動予定指定データ部）、１６  目的処理実行ルーチン（基本動作プログラム内の目的処理実行部分プログラム）、１７ａ〜１７ｎ  行き先フィールド、１８ａ〜１８ｎ  ドキュメント定義フィールド、２０  ドキュメント識別子、２１  目的処理名、２２  目的処理ロケーション、２３  目的処理実行環境情報、２４  目的処理ポリシー識別子、３０  目的処理格納ストレージ、３１〜３ｎ  外部目的処理部分プログラム、４１  目的処理実行機構、６１〜６ｎ  外部目的処理部分プログラム。
【図１】
2004355129.tif 000003
【図２】
2004355129.tif 000004
【図３】
2004355129.tif 000005
【図４】
2004355129.tif 000006