(57)【要約】      （修正有）【課題】サーバに依存せずとも、ネットワーク上の端末コンピュータが自律的にアプリケーションプログラムを取得できるようにする。【解決手段】ネットワーク上の端末コンピュータ１ａ、１ｂ、１ｃ、１ｄ（以下１と略記)において稼働する一又は複数のアプリケーションプログラム３を管理するとともに、前記アプリケーション３のためのネットワーク通信を行うエージェント２ａ、２ｂ、２ｃ、２ｄ（以下２と略記)を備え、前記エージェント２は、前記エージェント２が管理対象とする一又は複数のアプリケーションプログラム３に、必要なアプリケーションプログラムが含まれているか否かの判定を行う判定手段と、必要なアプリケーションプログラムが含まれていないと判定された場合に、必要なアプリケーションプログラムを、前記ネットワーク上の他の端末コンピュータ１の前記エージェント２及び前記管理サーバ４のいずれかから取得する取得手段と、を備えている。【選択図】図２
2010128573.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上の端末コンピュータにおいて稼働する一又は複数のアプリケーションプログラムを管理するとともに、前記アプリケーションのためのネットワーク通信を行うエージェントとして、前記端末コンピュータを機能させるためのエージェントコンピュータプログラムであって、
前記エージェントは、
前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに、必要なアプリケーションプログラムが含まれているか否かの判定を行う判定手段と、
前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに、必要なアプリケーションプログラムが含まれていない場合には、必要なアプリケーションプログラムを、前記ネットワーク上の他の端末コンピュータの前記エージェントから取得する取得手段と、
を備えていることを特徴とするエージェントコンピュータプログラム。
【請求項２】
前記エージェントは、アプリケーションプログラム宛のデータを受信する受信部を備え、
前記判定手段による前記判定は、前記受信部によって受信したデータの宛先となるアプリケーションプログラムが、前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに含まれているか否かの判定である
請求項１記載のエージェントコンピュータプログラム。
【請求項３】
前記エージェントは、前記取得手段が、必要なアプリケーションプログラムを取得すると、取得したアプリケーションプログラムを起動させて、前記受信部によって受信したデータを、起動したアプリケーションプログラムに渡す
請求項２記載のエージェントコンピュータプログラム。
【請求項４】
前記判定手段は、アプリケーションプログラムのバージョンも考慮して、前記必要なアプリケーションプログラムが含まれているか否かの前記判定を行う
請求項１〜３のいずれか１項に記載のエージェントコンピュータプログラム。
【請求項５】
前記判定手段は、前記受信部によって受信したデータを受信すべきアプリケーションプログラムのバージョンとは異なるバージョンのアプリケーションプログラムが、前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに含まれている場合に、当該異なるバージョンのアプリケーションプログラムが、前記受信部によって受信したデータを受信可能であれば、前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに、前記必要なアプリケーションプログラムが含まれていると判定する
請求項２又は３記載のエージェントコンピュータプログラム。
【請求項６】
前記エージェントは、前記取得手段が必要なアプリケーションプログラムを取得する取得先となる端末コンピュータを決定する取得先決定手段を更に備えている
請求項１〜５のいずれか１項に記載のエージェントコンピュータプログラム。
【請求項７】
前記取得先決定手段は、ネットワーク上の他の端末コンピュータの中から、取得先の候補を選択する手段と、候補として選択された端末コンピュータとの通信が可能であれば当該候補を取得先として決定する手段と、を備えている
請求項６記載のエージェントコンピュータプログラム。
【請求項８】
前記取得先決定手段は、アプリケーションプログラムを取得する際の通信コストを考慮して、必要なアプリケーションプログラムを取得する取得先を決定する
請求項６又は７記載のエージェントコンピュータプログラム。
【請求項９】
前記取得先決定手段は、アプリケーションプログラムを保持した管理サーバから必要なアプリケーションプログラムを取得することが可能な場合に、当該管理サーバから必要なアプリケーションプログラムを取得する通信コストと、他の端末コンピュータのエージェントから必要なプリケーションプログラムを取得する通信コストと、を比較して、前記他の端末コンピュータのエージェント及び前記管理サーバのいずれかから必要なアプリケーションプログラムを取得する取得先を決定する
請求項８記載のエージェントコンピュータプログラム。
【請求項１０】
ネットワーク上の端末コンピュータにおいて稼働する一又は複数のアプリケーションプログラムを管理するとともに、前記アプリケーションのためのネットワーク通信を行うエージェントとして、ネットワーク上の各端末コンピュータを機能させるためのエージェントコンピュータプログラムであって、
前記エージェントは、
他の端末コンピュータのエージェントから、アプリケーションプログラムの取得要求を受信する手段と、
アプリケーションプログラムの取得要求を受信すると、取得要求されたアプリケーションプログラムを、前記他の端末コンピュータのエージェントへ送信する手段を備えている
ことを特徴とするエージェントコンピュータプログラム。
【請求項１１】
前記エージェントは、
前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに、取得要求されたアプリケーションプログラムが含まれているか否かの判定を行う判定手段と、
前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに、取得要求されたアプリケーションプログラムが含まれていないと判定された場合には、ネットワーク上の他の端末コンピュータの前記エージェントへ、取得要求されたアプリケーションプログラムの取得要求を送信する要求ホップを実行する手段を備えている
請求項１０記載のエージェントコンピュータプログラム。
【請求項１２】
前記エージェントは、
取得要求されたアプリケーションプログラムについて過去に行われた前記要求ホップ数が、設定された最大ホップ数を超えた場合には、前記要求ホップの実行を停止する手段を備えている
請求項１１記載のエージェントコンピュータプログラム。
【請求項１３】
前記エージェントは、
取得要求されたアプリケーションプログラムについて過去にアプリケーション取得要求を送信したエージェントを、その後のアプリケーション取得要求の送信先から除外する手段を備えている
請求項１１又は１２記載のエージェントコンピュータプログラム。
【請求項１４】
請求項１〜１３のいずれか１項に記載のエージェントコンピュータプログラムが搭載された端末コンピュータ。
【請求項１５】
ネットワーク上の端末コンピュータにおいて稼働する一又は複数のアプリケーションプログラムを管理するとともに、前記アプリケーションのためのネットワーク通信を行うエージェントが搭載された端末コンピュータにおけるアプリケーションプログラム取得方法であって、
前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに、必要なアプリケーションプログラムが含まれているか否かの判定を、前記エージェントが行うステップと、
前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに、必要なアプリケーションプログラムが含まれていない場合には、必要なアプリケーションプログラムを、前記エージェントが前記ネットワーク上の他の端末コンピュータの前記エージェントから取得するステップと、
を含むことを特徴とするアプリケーションプログラム取得方法。
【請求項１６】
ネットワーク上の端末コンピュータにおいて稼働する一又は複数のアプリケーションプログラムを管理するとともに前記アプリケーションのためのネットワーク通信を行うエージェントが搭載された端末コンピュータにおけるアプリケーションプログラム配信方法であって、
前記エージェントが、他の端末コンピュータのエージェントから、アプリケーションプログラムの取得要求を受信するステップと、
前記取得要求を受信した前記エージェントが、取得要求されたアプリケーションプログラムを、前記他の端末コンピュータのエージェントへ送信するステップと、
を含むことを特徴とするアプリケーションプログラム配信方法。
【請求項１７】
ネットワーク上の各端末コンピュータにおいて稼働する一又は複数のアプリケーションプログラムを管理するとともに前記アプリケーションのためのネットワーク通信を行うために各端末コンピュータに搭載されたエージェントが、他の端末コンピュータに搭載されたエージェントに対して送信するアプリケーション取得要求のデータ構造であって、
前記アプリケーション取得要求の送信先である前記他の端末コンピュータに搭載されたエージェントが、取得要求の対象であるアプリケーションプログラムを識別するための識別子情報と、
前記アプリケーション取得要求がエージェントによって送信された回数を示す回数情報と、
を含むことを特徴とするアプリケーション取得要求データ構造。
【請求項１８】
ネットワーク上の各端末コンピュータにおいて稼働する一又は複数のアプリケーションプログラムを管理するとともに前記アプリケーションのためのネットワーク通信を行うために各端末コンピュータに搭載されたエージェントが、他の端末コンピュータに搭載されたエージェントに対して送信するアプリケーション取得要求のデータ構造であって、
前記アプリケーション取得要求の送信先である前記他の端末コンピュータに搭載されたエージェントが、取得要求の対象であるアプリケーションプログラムの識別子情報と、
前記アプリケーション取得要求がエージェントによって送信された経路を示す経路情報と、
を含むことを特徴とするアプリケーション取得要求データ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムを管理するエージェントとしてコンピュータを機能させるためのコンピュータプログラム等に関するものである。
【背景技術】
【０００２】
従来、端末へソフトウェアの自動インストールを行う技術は、多数存在する。例えば、特許文献１には、クライアント端末にインストールされているソフトウェア情報をサーバで管理する方法が記載されている。
【特許文献１】特開２０００−３０５７５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１のような自動インストール技術は、サーバ・クライアント型のネットワークシステムを前提としており、ネットワーク上に自動インストールを管理するためのサーバが存在しなければ、自動インストールを実現することができない。
【０００４】
そこで、本発明は、サーバに依存せずとも、ネットワーク上の端末コンピュータが自律的にソフトウェア（アプリケーションプログラム）を取得することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００５】
［エージェントコンピュータプログラム］
（１）本発明は、ネットワーク上の端末コンピュータにおいて稼働する一又は複数のアプリケーションプログラムを管理するとともに、前記アプリケーションのためのネットワーク通信を行うエージェントとして、前記端末コンピュータを機能させるためのエージェントコンピュータプログラムであって、前記エージェントは、前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに、必要なアプリケーションプログラムが含まれているか否かの判定を行う判定手段と、前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに、必要なアプリケーションプログラムが含まれていない場合には、必要なアプリケーションプログラムを、前記ネットワーク上の他の端末の前記エージェントから取得する取得手段と、を備えていることを特徴とするエージェントコンピュータプログラムである。
【０００６】
上記本発明によれば、必要なアプリケーションプログラムが存在しない場合、アプリケーションプログラムを管理するエージェントが、他の端末の前記エージェントから、必要なアプリケーションプログラムを取得するため、サーバが存在しない場合や、サーバと接続できない等の事情によってサーバから必要なアプリケーションプログラムを取得できなくても、必要なアプリケーションプログラムを取得できる。
【０００７】
（２）前記エージェントは、アプリケーションプログラム宛のデータを受信する受信部を備え、前記判定手段による前記判定は、前記受信部によって受信したデータの宛先となるアプリケーションプログラムが、前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに含まれているか否かの判定であるのが好ましい。この場合、データ受信時に、動的に必要なアプリケーションプログラムの取得ができ、仮に受信に必要なアプリケーションプログラムがなくても、データ受信を滞らせることなく、円滑な受信処理を行える。
【０００８】
（３）前記エージェントは、前記取得手段が、必要なアプリケーションプログラムを取得すると、取得したアプリケーションプログラムを起動させて、前記受信部によって受信したデータを、起動したアプリケーションプログラムに渡すのが好ましい。この場合、エージェントが取得したアプリケーションプログラムを起動させるため、確実に、アプリケーションによるデータ受信を行える。
【０００９】
（４）前記判定手段は、アプリケーションプログラムのバージョンも考慮して、前記必要なアプリケーションプログラムが含まれているか否かの前記判定を行うのが好ましい。この場合、バージョンの違いも考慮した同一性判定が行える。
【００１０】
（５）前記判定手段は、前記受信部によって受信したデータを受信すべきアプリケーションプログラムのバージョンとは異なるバージョンのアプリケーションプログラムが、前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに含まれている場合に、当該異なるバージョンのアプリケーションプログラムが、前記受信部によって受信したデータを受信可能であれば、前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに、前記必要なアプリケーションプログラムが含まれていると判定するのが好ましい。
この場合、バージョンが異なっていても、データを受信可能な程度の整合性があれば、必要なアプリケーションが含まれていると判定することができる。
【００１１】
（６）前記エージェントは、前記取得手段が必要なアプリケーションプログラムを取得する取得先となる端末コンピュータを決定する取得先決定手段を更に備えているのが好ましい。この場合、エージェントは、アプリケーションプログラムの取得先を自ら決定できる。
【００１２】
（７）  前記取得先決定手段は、ネットワーク上の他の端末コンピュータの中から、取得先の候補を選択する手段と、候補として選択された端末コンピュータとの通信が可能であれば当該候補を取得先として決定する手段と、を備えているのが好ましい。この場合、通信可能な端末コンピュータを取得先として決定できる。
【００１３】
（８）前記取得先決定手段は、アプリケーションプログラムを取得する際の通信コストを考慮して、必要なアプリケーションプログラムを取得する取得先を決定するのが好ましい。この場合、通信コストを考慮して、適切な取得先を決定することができる。
【００１４】
（９）前記取得先決定手段は、アプリケーションプログラムを保持した管理サーバから必要なアプリケーションプログラムを取得することが可能な場合に、当該管理サーバから必要なアプリケーションプログラムを取得する通信コストと、他の端末コンピュータのエージェントから必要なプリケーションプログラムを取得する通信コストと、を比較して、前記他の端末コンピュータのエージェント及び前記管理サーバのいずれかから必要なアプリケーションプログラムを取得する取得先を決定するのが好ましい。この場合、通信コストを考慮して、取得先として、サーバと他の端末コンピュータのエージェントいずれが適切であるかを決定することができる。
【００１５】
（１０）他の観点からみた本発明は、ネットワーク上の端末コンピュータにおいて稼働する一又は複数のアプリケーションプログラムを管理するとともに、前記アプリケーションのためのネットワーク通信を行うエージェントとして、ネットワーク上の各端末コンピュータを機能させるためのエージェントコンピュータプログラムであって、他の端末コンピュータのエージェントから、アプリケーションプログラムの取得要求を受信する手段と、アプリケーションプログラムの取得要求を受信すると、取得要求されたアプリケーションプログラムを、前記他の端末コンピュータのエージェントへ送信する手段を備えていることを特徴とするエージェントコンピュータプログラムである。
上記本発明によれば、エージェントは、他の端末コンピュータのエージェントからのアプリケーションプログラム取得要求を受信すると、前記他の端末コンピュータのエージェントに対して、アプリケーションプログラムを送信する。したがって、前記他のアプリケーションプログラムは、アプリケーションプログラムを取得することができる。
【００１６】
（１１）前記（１０）において、前記エージェントは、前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに、取得要求されたアプリケーションプログラムが含まれているか否かの判定を行う判定手段と、前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに、取得要求されたアプリケーションプログラムが含まれていないと判定された場合には、ネットワーク上の他の端末コンピュータの前記エージェントへ、取得要求されたアプリケーションプログラムの取得要求を送信する要求ホップを実行する手段を備えているのが好ましい。この場合、アプリケーションプログラムの取得要求を受けたエージェントが、取得要求されたアプリケーションプログラムを管理していない場合には、さらに他のエージェントへ、取得要求を送信する要求ホップが行える。
【００１７】
（１２）前記（１１）において、前記エージェントは、取得要求されたアプリケーションプログラムについて過去に行われた前記要求ホップ数が、設定された最大ホップ数を超えた場合には、前記要求ホップの実行を停止する手段を備えているのが好ましい。この場合、要求ホップが無限に行われるのを防止することができる。
【００１８】
（１３）前記（１１）又は（１２）において、前記エージェントは、取得要求されたアプリケーションプログラムについて過去にアプリケーション取得要求を送信したエージェントを、その後のアプリケーション取得要求の送信先から除外する手段を備えているのが好ましい。この場合、要求ホップが、ループ状に発生することを防止できる。
【００１９】
（１４）更に他の観点からみた本発明は、前記（１）〜（１３）のいずれか１項に記載のエージェントコンピュータプログラムが搭載された端末コンピュータである。
【００２０】
（１５）更に他の観点からみた本発明は、ネットワーク上の端末コンピュータにおいて稼働する一又は複数のアプリケーションプログラムを管理するとともに、前記アプリケーションのためのネットワーク通信を行うエージェントが搭載された端末コンピュータにおけるアプリケーションプログラム取得方法であって、前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに、必要なアプリケーションプログラムが含まれているか否かの判定を、前記エージェントが行うステップと、前記エージェントが管理対象とする一又は複数のアプリケーションプログラムに、必要なアプリケーションプログラムが含まれていない場合には、必要なアプリケーションプログラムを、前記エージェントが前記ネットワーク上の他の端末コンピュータの前記エージェントから取得するステップと、を含むことを特徴とするアプリケーションプログラム取得方法である。
【００２１】
（１６）更に他の観点からみた本発明は、ネットワーク上の端末コンピュータにおいて稼働する一又は複数のアプリケーションプログラムを管理するとともに前記アプリケーションのためのネットワーク通信を行うエージェントが搭載された端末コンピュータにおけるアプリケーションプログラム配信方法であって、前記エージェントが、他の端末コンピュータのエージェントから、アプリケーションプログラムの取得要求を受信するステップと、前記取得要求を受信した前記エージェントが、取得要求されたアプリケーションプログラムを、前記他の端末コンピュータのエージェントへ送信するステップと、を含むことを特徴とするアプリケーションプログラム配信方法である。
【００２２】
（１７）更に他の観点からみた本発明は、ネットワーク上の各端末コンピュータにおいて稼働する一又は複数のアプリケーションプログラムを管理するとともに前記アプリケーションのためのネットワーク通信を行うために各端末コンピュータに搭載されたエージェントが、他の端末コンピュータに搭載されたエージェントに対して送信するアプリケーション取得要求のデータ構造であって、前記アプリケーション取得要求の送信先である前記他の端末コンピュータに搭載されたエージェントが、取得要求の対象であるアプリケーションプログラムの識別子情報と、前記アプリケーション取得要求がエージェントによって送信された回数を示す回数情報と、を含むことを特徴とするアプリケーション取得要求データ構造である。アプリケーション取得要求が回数情報を有することで、エージェントは、アプリケーション取得要求が行われる回数を制御することが可能となる。
【００２３】
（１８）更に他の観点からみた本発明は、ネットワーク上の各端末コンピュータにおいて稼働する一又は複数のアプリケーションプログラムを管理するとともに前記アプリケーションのためのネットワーク通信を行うために各端末コンピュータに搭載されたエージェントが、他の端末コンピュータに搭載されたエージェントに対して送信するアプリケーション取得要求のデータ構造であって、前記アプリケーション取得要求の送信先である前記他の端末コンピュータに搭載されたエージェントが、取得要求の対象であるアプリケーションプログラムの識別子情報と、前記アプリケーション取得要求がエージェントによって送信された経路を示す経路情報と、を含むことを特徴とするアプリケーション取得要求データ構造である。アプリケーション取得要求が、経路情報を有することで、エージェントは、当該経路情報を考慮して、アプリケーション取得要求先を決定することが可能となる。
【発明の効果】
【００２４】
本発明によれば、エージェントは、サーバが存在しない場合や、サーバと接続できない等の事情によってサーバから必要なアプリケーションプログラムを取得できなくても、必要なアプリケーションプログラムを他のエージェントから取得できる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施形態を図面に基づいて説明する。
［１．端末コンピュータの構成］
図１は、実施形態に係る端末コンピュータ１を示している。この端末コンピュータ１には、一又は複数のアプリケーション（コンピュータ）プログラム３ａ，３ｂ（以下、単に又は「アプリケーション」という）がインストールされているとともに、前記アプリケーション３ａ，３ｂの管理等を行うためのエージェントコンピュータプログラム２がインストールされている。なお、以下では、端末コンピュータを、単に「端末」という。
【００２６】
前記エージェントコンピュータプログラム２は、端末１によって実行されることで、当該端末１にインストールされたアプリケーション３ａ，３ｂの管理等を行うエージェントとして端末１を機能させる。なお、通常、エージェント２は、端末１に常駐しており、他の端末１に常駐する他のエージェントと協調して処理（ダウンロード処理等）を実行することができる。
【００２７】
このエージェント２は、端末１に搭載された複数のアプリケーション３ａ，３ｂが共用可能な機能を提供するフレームワークとなる。例えば、エージェント２は、アプリケーション３ａ，３ｂによる通信を行うための通信機能を備えている。この通信機能には、例えば、別々の端末に搭載されたアプリケーション間の通信を実現するためのエージェント間通信機能が含まれている。本実施形態におけるアプリケーション間通信は、アプリケーション同士が直接通信を行うのではなく、エージェント２，２によるエージェント間通信を介して行われる。
【００２８】
つまり、エージェント２によって管理されている複数のアプリケーション３ａ，３ｂは、それぞれ、エージェント２を介して、外部とのネットワーク通信が可能となっており、アプリケーション３ａ，３ｂが外部と通信を行う際には、エージェント２に対して、送信データを渡し、エージェント２から受信データを受け取る。
なお、アプリケーション３ａ，３ｂとしては、ネットワーク内の情報の流れを追跡する情報追跡システム、ファイル転送システムなどが挙げられる。これらのアプリケーションにおいては、一の端末に搭載されたアプリケーションが、他の端末に搭載された同種又は異種のアプリケーションと協調して動作するために、アプリケーション間通信が行われる。
【００２９】
［２．ネットワークシステムの全体構成］
図２は、前記エージェント２が搭載された端末を含むネットワークシステムＳを示している。このネットワークシステムＳは、複数の端末１ａ，１ｂ，１ｃ，１ｄと、サーバ４とを、ネットワークによって接続して構成されている。
【００３０】
図２に示す各端末には、それぞれ、エージェント２ａ，２ｂ，２ｃ，２ｄが常駐している。これらのエージェントのうち、第１エージェント２ａが搭載された第１端末１ａ、第２エージェント２ｂが搭載された第２端末１ｂ、及び第２エージェント２ｂが搭載された端末１ｃにはエージェント２ａ〜２ｃが管理するアプリケーション３が存在するが、第４エージェント２ｄが搭載された端末１ｄには、当該アプリケーション３が未搭載となっている。
なお、エージェント２ａ〜２ｃが管理するアプリケーション３としては、当該エージェント２ａ〜２ｃ上で動作するものであってもよいし、エージェント２〜２ｃとは独立して端末１ａ〜１ｃにおいて動作するがエージェント２ａ〜２ｃによって管理されているものであってもよいし、端末１ｂ〜１ｃでは動作しないが単にエージェント２ａ〜２ｃによってその存在が認識されて管理対象となっているものであってもよい。
【００３１】
また、第１〜第３端末１ａ，１ｂ，１ｃに搭載されたアプリケーション３は、バージョンを除外して考えると、説明の都合上、それぞれ同一のアプリケーションであるものとする。例えば、３つのアプリケーション３は、全て、同一のファイル管理システムであると想定されるべきものである。
これら３つのアプリケーションのうち、第１端末１ａ及び第２端末１ｂに搭載されたアプリケーション３は、そのバージョンがいずれも「Ｖｅｒ１．１」であり、バージョンも含めて完全に同一のアプリケーションである。以下では、「Ｖｅｒ１．１のアプリケーション」を「新バージョンアプリケーション」という。
一方、第３端末１ｃに搭載されたアプリケーション３は、バージョンが「Ｖｅｒ１．０」であり、新バージョンアプリケーションよりも古いバージョンのアプリケーションである。以下では、「Ｖｅｒ１．０のアプリケーション」を「旧バージョンアプリケーション」という。
【００３２】
バージョンの違いを考慮した場合、新バージョンアプリケーションと旧バージョンアプリケーションとは、異なるアプリケーションであるということができる。ただし、本実施形態では、バージョンが異なっていても、同一アプリケーションであるとみなすことができる場合がある。この点については後述する。
【００３３】
さて、各端末１ａ〜１ｃに搭載されたアプリケーション３は、協調処理（例えば、ファイル管理のためのアプリケーション間の協調処理）等のため、アプリケーション間通信を行うことになる。また、ある端末のアプリケーション３が、ネットワーク内の全端末にアプリケーション３が搭載されているものとして、マルチキャスト送信を行った場合を想定すると、アプリケーション３が搭載されていない端末１ｄも受信すべき場合がありえる。
【００３４】
以上の場合において、各端末１ａ〜１ｄのアプリケーション間の関係を場合分けすると、以下の表の通りとなる。
【表１】
2010128573.tif 000003
【００３５】
上記表において、「Ａ」は、両端末ともに同一種類のアプリケーション３が存在し、バージョンも整合性がとれていることを示している（アプリケーションの完全一致）。この場合、アプリケーション間通信は、問題なく行うことができる。
【００３６】
上記表において「Ｂ」は、両端末に同種類のアプリケーション３が存在するが、バージョンの整合がとれていないことを示す。バージョンの不整合により、通信に不具合が発生する場合、受信側の端末１は、他の端末１又はサーバ４から、必要なバージョンのアプリケーション３をダウンロードし、それをインストールして通信を継続する。この点についての詳細は後述する。
【００３７】
上記表において「Ｃ」は、送信側にはアプリケーション３が存在するが、受信側にはアプリケーション３が存在しない場合を示している。この場合、受信側の端末１は、他の端末１又はサーバ４から、必要なアプリケーション３をダウンロードし、それをインストールして通信を継続する。この点についての詳細も後述する。
【００３８】
上記表において「Ｄ」は、送信側となるべき端末にアプリケーション３が存在しないため、アプリケーション間通信が発生しないことを示している。
【００３９】
［３．アプリケーション間通信の処理方法］
図３は、アプリケーション間通信の際にアプリケーションをダウンロード（取得）する場合に必要なエージェント２の機能ブロックを示し、図４〜６は、アプリケーション間通信及びアプリケーションダウンロードに関連した処理フローを示している。
【００４０】
図３に示すように、エージェント２は、受信部２１、アプリケーション判定部２２、アプリケーション妥当性判断部２３、バージョン判定部２４、ダウンロード先決定部（取得先決定手段）２５、ダウンロード部（取得手段）２６、端末検索部２７、問い合わせ範囲管理部２８、及びアプリケーション転送部２９を備えている。これらの各機能部２１〜２９により、図４〜図６の処理が行われる。
【００４１】
なお、アプリケーション間通信のためのデータ送信は、前述のように、送信側端末のエージェント２を介して行われる。このため、送信側のエージェント２は、自ら管理するアプリケーションから送信用のデータ本体を受け取り、必要な情報を付加して、受信側のエージェント２へ送信する送信機能を有している。
エージェント２によって行われるアプリケーション間通信のデータＤのフォーマットは、図７に示す通りであり、端末識別子Ｄ１、アプリケーション識別子Ｄ２、アプリケーションバージョン情報Ｄ３、ペイロード（データ本体）Ｄ４を備えている。
【００４２】
ここで、端末識別子Ｄ１は、各端末１に搭載されたエージェントをユニークに識別するための識別子である。端末識別子（エージェント識別子）Ｄ１は、エージェント２が端末１にインストールされた後の初回動作時に、エージェント２自身が割り振る。なお、データＤにおける端末識別子Ｄ１としては、受信側となる端末１のエージェントの端末識別子（エージェント識別子）がセットされる。
なお、１つの端末１に複数のエージェントが搭載される場合、それらのエージェントには異なる識別子が与えられる。
【００４３】
アプリケーション識別子Ｄ２は、アプリケーションをユニークに識別するための識別子である。例えば、情報追跡システムを構成する各端末のアプリケーションは、共通アプリケーション識別子を有し、ファイル転送システムを構成する各端末のアプリケーションは、別の共通アプリケーション識別子を有する。このアプリケーション識別子は、例えば、当該アプリケーションのシステム開発者によって割り振られるものであり、バージョンの違いは区別しない。
なお、データＤにおけるアプリケーション識別子Ｄ２には、受信側アプリケーションの識別子がセットされる。同種アプリケーション間で連携する場合、セットされる受信側アプリケーションの識別子は送信側アプリケーションの識別子と共通となる。そして、データＤのアプリケーション識別子Ｄ２が示すアプリケーションが、データＤを受信すべきアプリケーションとなる。
【００４４】
前記端末識別子（エージェント識別子）及びアプリケーション識別子の組み合わせによって、ネットワークシステムＳ内の個々のアプリケーションをユニークに特定することができる。すなわち、端末識別子によって、どの端末に搭載されたアプリケーションであるかを特定できる。また、一つの端末に複数種類のアプリケーションが搭載されていても、アプリケーション識別子によって、当該端末１のアプリケーションのうちのどのアプリケーションであるかを特定することができる。
【００４５】
さらに、データＤには、データを送信した側のアプリケーションのバージョン情報Ｄ３が格納されている。このバージョン情報Ｄ３は、受信側エージェント２において、アプリケーションのバージョン整合の判断に用いられる。
なお、データＤのペイロードＤ４は、受信側のアプリケーション又はエージェントに渡されるべきデータ本体である。
【００４６】
さて、図４は、アプリケーション間通信の際に、受信側端末１のエージェント２が行う受信時処理フローを示している。
まず、受信側端末１のエージェント２の受信部２１が、前記データＤを受信する（ステップＳ０１）。なお、受信部２１は、ネットワークを流れるデータＤのうち、端末識別子Ｄ１が、自己端末となっているものを受信する。
【００４７】
すると、当該エージェント２は、受信データＤを受信することができるアプリケーションと同一のアプリケーション（例えばデータＤの送信元アプリケーション）が、その受信側端末１に存在するか否かの判定を行う（ステップＳ０２〜Ｓ０５）。このステップＳ０２〜Ｓ０５の処理を実行するエージェントの機能（アプリケーション判定部２２及びアプリケーション妥当性判断部２３）は、同一アプリケーションを判定する判定手段を構成している。
【００４８】
具体的には、まず、エージェント２のアプリケーション判定部２２が、受信データＤ中のアプリケーション識別子Ｄ２を参照し、エージェント２が管理するアプリケーションの中に、受信データＤ中のアプリケーション識別子Ｄ２と同一のアプリケーション識別子を有するアプリケーションが存在するか否かを判定する（ステップＳ０２）。
なお、エージェント２は、自身が管理するアプリケーションのアプリケーション識別子の一覧テーブルを有しており、エージェント２は、その一覧テーブルを参照することで、ステップＳ０２の判定を行う。
【００４９】
ステップＳ０２において、同一識別子のアプリケーションが存在しないと判定された場合、ステップＳ０６へ進むが、同一識別子のアプリケーションが存在すると判定された場合、ステップＳ０４に進む（ステップＳ０３）。
【００５０】
ステップＳ０４では、アプリケーション妥当性判断部２３が、バージョンの整合性を確認する。すなわち、受信データＤ中のアプリケーションバージョン情報Ｄ３と、ステップＳ０２において存在することが確認されたアプリケーションのバージョンとを、対比する。
対比の結果、バージョンが一致していれば、アプリケーション妥当性判断部２３は、バージョンの整合性がある（通信可能アプリケーションである）と判断する。また、バージョンが一致していなくても、通信に問題がない程度のバージョンの違いであれば、整合性があると判断する（ステップＳ０５）。
バージョンが一致しない場合に整合性を判断するには、例えば、エージェント２が、互いに通信が問題なく行えるバージョン群を規定した設定情報を有しておき、アプリケーション妥当性判断部２３が、その設定情報を参照することで行える。なお、そのような設定情報は、エージェント２に予め設定されていてもよいし、エージェント２がサーバ４から随時取得してもよい。
【００５１】
ステップＳ０５において、バージョンの整合性があると判断された場合、受信側端末１のアプリケーション３は、受信データを処理可能であるから、受信部２１は、受信データＤのアプリケーション識別子Ｄ２が示すアプリケーションを呼び出し、受信データＤ（主に、ペイロードＤ４）を、そのアプリケーションに渡す（ステップＳ１２）。これにより、アプリケーションは、正常に受信データを取得することができる。
【００５２】
一方、ステップＳ０３において同一識別子のアプリケーションが存在しないと判定された場合や、ステップＳ０５において、バージョンの整合性がないと判断された場合、エージェント２は、受信データを正常に受信／処理することができるアプリケーションのダウンロード（取得）を行う（ステップＳ０６〜Ｓ０８）。
本実施形態において、ダウンロードすべきアプリケーションは、受信データＤのアプリケーション識別子Ｄ２が示すアプリケーションであって、バージョン情報Ｄ３が示すバージョンのアプリケーションである。
【００５３】
必要なアプリケーションのダウンロードのため、まず、バージョン判定部２４が、ダウンロードすべきアプリケーションのバージョンを決定する（ステップＳ０６）。ダウンロードすべきアプリケーションのバージョンは、受信データＤのアプリケーションバージョン情報Ｄ３が示すバージョンである。
【００５４】
続いて、ダウンロード先決定部２５が、ダウンロード先の端末（又はサーバ）を決定する（ステップＳ０７）。そして、ダウンロード部２６が、決定されたダウンロード先から、アプリケーションのダウンロードを実施する（ステップＳ０８）。なお、ステップＳ０７及びステップＳ０８の詳細は、後述する。
【００５５】
エージェント２が、必要なアプリケーションのダウンロードに成功した場合（ステップＳ０９）、当該エージェント２は、ダウンロードしたアプリケーションを起動させて、呼び出す（ステップＳ１０）。アプリケーションが起動すると、受信部２４は、受信した受信データＤ（主に、ペイロードＤ４）を、そのアプリケーションに渡す（ステップＳ１２）。これにより、アプリケーションは、正常に受信データを取得することができる。
【００５６】
一方、エージェント２が、必要なアプリケーションのダウンロードに失敗した場合には、受信部２１は、受信データＤを破棄する（ステップＳ１１）。
【００５７】
［４．アプリケーションダウンロード先決定処理］
図５は、図４のステップＳ０７（ダウンロード先決定処理）の詳細を示している。まず、ダウンロード先決定部２５は、ダウンロード先の候補となる装置（他の端末１又はサーバ４）を選択する（ステップＳ１１）。
ここで、ダウンロード先の候補となる装置（候補装置）には、ネットワーク内の他の端末１（エージェント２）又はサーバ４がなり得る。候補装置となり得る他の端末１としては、過去においてダウンロード先となった実績のある端末１や、候補装置になり得る端末として設定された端末１などが挙げられる。
【００５８】
以下では、過去においてダウンロード先となった実績のある端末１又はサーバ４を候補装置として選択するための方法について説明する。まず、ダウンロード先決定部２５は、過去においてダウンロード先となった実績のある他の端末１（エージェント２）との通信コストと、サーバ４との通信コストを比較し、通信コストが低い方を、候補装置として決定する。
【００５９】
ここで、通信コストは、例えば、自身が存在するサブネットからの距離とすることができる。図８に示すように、ルータで接続された複数のサブネットＡ〜Ｂからなるネットワークの場合、サブネットを超える度に、通信コストが「１」増加するものとする。なお、ここでは、サブネットは、ルータで区切られた個々の領域をいう。
図８の場合、端末ａからサーバ４への通信コストは、サーバ４の位置（サブネットＣ）が、端末ａの属するサブネットＡから数えて２つ目であるため、「端末ａ−サーバ」の通信コストは「２」となる。
また、以前に、端末ａが、端末ｄから別アプリケーションをダウンロードした実績がある場合、端末ｄが候補端末となり得る。そして、「端末ａ−端末ｄ」の通信コストは、「１」である。
【００６０】
上記の場合、端末ａのダウンロード先決定部２５は、端末ｄとの通信コスト＝１と、サーバ４との通信コスト＝２とを比較し、通信コストが低い端末ｄを、候補装置として決定する。
なお、ダウンロード先となった実績に関しては、アプリケーションの種別は問わない。また、過去、ダウンロード先となった実績のある他の端末１が複数存在する場合には、最近のダウンロード先の端末を、候補装置を決定するための通信コストの比較対象とすることができる。
また、ダウンロード先となった実績のある他の端末１が存在しない場合には、サーバ４を候補装置とする。
【００６１】
以上のようにして決定される候補装置が存在する場合には、端末検索部２７は、候補装置の識別子（端末識別子又はサーバ識別子）を、ダウンロード先決定部２５から受け取り、候補装置の検索を行う（ステップＳ１３）。この検索は、端末検索部２７が候補装置（他の端末１又はサーバ４）との接続を試みることによって行われる。
【００６２】
候補装置と接続可能である場合には、その候補装置がダウンロード先として決定される。つまり、候補装置と接続可能である場合（ステップＳ１４）、端末検索部２７は、接続できた候補装置の識別子（端末識別子又はサーバ識別子）を、ダウンロード先決定部２５に返却する（ステップＳ１７）。ダウンロード先決定部２５は、返却された候補装置の識別子を、ダウンロード先として取り扱い、当該識別子をダウンロード部２６に渡す。これにより、ダウンロード部２６は、候補装置をダウンロード先として、アプリケーションのダウンロード処理を行うことができる（図４のステップＳ０８；詳細は後述）。
【００６３】
一方、候補装置と接続できない場合（ステップＳ１４）、端末検索部２７は、周辺の他のエージェント２を検索する（ステップＳ１５）。
ここで、エージェント２が、サーバ４ではなく、他の端末１（エージェント２）からアプリケーションをダウンロードするには、エージェント間通信を行う必要がある。したがって、エージェント２は、ダウンロード先を決定するため、まず、自身と同じエージェントを搭載した他の端末を発見する必要がある。
【００６４】
端末検索部２７は、他のエージェントを発見するため、自身と同じエージェント（本実施形態に係るエージェント）だけが応答する問い合わせパケットをマルチキャスト送信し、アプリケーションをダウンロード可能な周辺端末リストを取得する（ステップＳ１５）。
例えば、図９に示すように、端末１ｃのエージェント２ｃが、周辺端末（周辺エージェント）を探索するため、問い合わせパケットを送信（マルチキャスト送信）する。
図１０に示すように、この問い合わせに対して、他の端末１ａ，１ｂ，１ｄのエージェント２ａ，２ｂ，２ｄは、返答パケットを、端末１ｃのエージェント２ｃに返す。ただし、エージェントが搭載されていない（又は何らかの理由によりエージェントが未起動の）端末１ｅからは、返答パケットは返ってこない。
エージェント２ｃは、他のエージェント２ａ，２ｂ，２ｄからの返答により、自身の周辺に、アプリケーションダウンロード可能な端末１ａ，１ｂ，１ｄ（エージェントが搭載された端末）が存在することを把握することができる。端末検索部２７は、アプリケーションダウンロード可能な端末１ａ，１ｂ，１ｄが複数ある場合には、適宜、一の端末（例えば、端末１ａ）を決定する。
【００６５】
続いて、端末検索部２７は、決定された一の端末１ａとの接続を試みる。
決定された一の端末１ａと接続可能である場合には（ステップＳ１６）、その端末１ａがダウンロード先として決定される。この場合、端末検索部２７は、接続できた端末装置の識別子を、ダウンロード先決定部２５に返却する（ステップＳ１７）。
また、決定された一の端末１ａと接続可能である場合、アプリケーションダウンロード可能な端末１ａ，１ｂ，１ｄのうち、他の端末１ｂとの接続を試み、接続できれば、接続できた端末装置の識別子を、ダウンロード先決定部２５に返却するが、どの端末１ａ，１ｂ，１ｄとも接続できなければ（ステップＳ１６）、ダウンロード先決定処理は失敗として終了する。
【００６６】
［５．アプリケーション配信処理］
図４のステップＳ０８において、エージェント２が、ステップＳ０７において決定されたダウンロード先に対して、アプリケーションダウンロード要求（アプリケーションプログラムの取得要求）を送信すると、ダウンロード先端末のエージェント２は、図６に示す配信処理を行う。なお、ダウンロード先がサーバ４であった場合には、サーバ４は、単に、ダウンロード要求元にアプリケーションを転送すればよい。
【００６７】
ここで、エージェント２が、ダウンロード先端末のエージェントに送信するダウンロード要求のデータフォーマットＤＤは、図１１に示す通りであり、ダウンロード要求ＤＤは、要求アプリケーション識別子ＤＤ１、要求アプリケーションバージョン情報ＤＤ２、現在の問い合わせホップ数（回数情報）ＤＤ３、及びホップ経路（経路情報）ＤＤ４の各データを有している。このダウンロード要求ＤＤは、図７に示すアプリケーション間通信データＤのペイロードＤ４領域に格納されて、当該アプリケーション間通信データＤがダウンロード先端末のエージェントに送信される。
【００６８】
前記要求アプリケーション識別子ＤＤ１は、ダウンロードの対象となっているアプリケーションを示す情報である。また、前記要求アプリケーションバージョン情報ＤＤ２は、ダウンロードの対象となっているアプリケーションのバージョンを示す情報である。
前記ホップ数ＤＤ３は、アプリケーションダウンロードために、ダウンロード要求がホップされた回数を示す。つまり、ホップ数ＤＤ３は、ダウンロード要求がエージェントによって送信された回数を示す回数情報である。最初になされたダウンロード要求においては、ホップ数ＤＤ３が「１」に設定されているが、ダウンロード先において更に要求ホップ（ダウンロード要求）される度に、ホップ数ＤＤ３はインクリメント（＋１）される。
【００６９】
前記ホップ経路ＤＤ４は、ダウンロード要求がホップされた経路を示す。最初になされたダウンロード要求においては、ダウンロード要求を送信したエージェント２が搭載された端末の識別子が格納される。ダウンロード先において更に要求ホップ（ダウンロード要求）されると、当該ダウンロード先は、自身の識別子を、ホップ経路ＤＤ４に追加する。
【００７０】
図６において、まず、ダウンロード先のエージェント２が、図１１に示すダウンロード要求を受信すると（ステップＳ２１）、当該エージェント２のアプリケーション判定部２２は、ダウンロード要求ＤＤの要求アプリケーション識別子ＤＤ１及び要求アプリケーションバージョン情報ＤＤ２によって指定されたバージョンのアプリケーションを、自身の端末が保持しているか否かを判定する（ステップＳ２２）。
【００７１】
指定されたアプリケーションを、ダウンロード先の端末が保持している場合、すなわち、指定されたアプリケーションが、当該エージェント２自身が管理するアプリケーションに含まれている場合（ステップＳ２３）、ダウンロード先のエージェント２のアプリケーション転送部２９は、指定されたアプリケーションを、ダウンロード要求元に転送し（ステップＳ２４）、処理を終了する。
【００７２】
一方、指定されたアプリケーションを、ダウンロード先の端末が保持していない場合、当該ダウンロード先のエージェント２は、更に他の端末のエージェント２に対して、ダウンロード要求を送信する「要求ホップ」を行う（ステップＳ２５〜Ｓ２９）。
この要求ホップ処理の際には、まず、ダウンロード先エージェント２の問い合わせ範囲管理部２８が、ダウンロード要求ＤＤのホップ数ＤＤ３をインクリメント（＋１）する（ステップＳ２５）。
さらに、前記問い合わせ範囲管理部２８は、前記ホップ数ＤＤ３が、設定された最大ホップ数を超えていないかどうか確認する（ステップＳ２６）。
ホップ数ＤＤ３が、最大ホップ数を超えている場合（ステップＳ２７）、他の端末のエージェント２への要求ホップは実行せずに、処理を終了する。これにより、要求ホップ処理は、設定された最大ホップ数で停止し、要求ホップ処理が無限に行われることを防止できる。
【００７３】
ホップ数ＤＤ３が、最大ホップ数を超えていない場合（ステップＳ２７）、ダウンロード先決定部２５が、更なるダウンロード先（要求ホップ先）を決定する。このダウンロード先決定処理は、図５に示すフローに従って行われる。
【００７４】
ここで、図５のステップＳ１５における周辺エージェント検索処理について、要求ホップを考慮した、追加説明をする。
図５のステップＳ１５では、前述のように、エージェント２ｃが、他のエージェント２ａ，２ｂ，２ｄからの応答により、自身の周辺に、アプリケーションダウンロード可能な端末１ａ，１ｂ，１ｄ（エージェントが搭載された端末）が存在することを把握し、アプリケーションダウンロード可能な端末１ａ，１ｂ，１ｄが複数ある場合には、適宜、一の端末１ａを決定する。
このとき決定される一の端末１ａとしては、ダウンロード要求ＤＤのホップ経路ＤＤ４に含まれる端末が除外される。これにより、同一のダウンロード要求について、過去に要求ホップした端末に対して、再度、要求ホップを実行することを防止できる。
【００７５】
さて、ステップＳ２８において、ダウンロード先（要求ホップ先）が決定されると、エージェント２のダウンロード部２６は、図１１に示すダウンロード要求を、決定されたダウンロード先に送信する。このとき送信されるダウンロード要求は、前述のようにホップ数ＤＤ３がインクリメントされているとともに、ホップ経路ＤＤ４に、ダウンロード要求送信元のエージェント２の端末識別子が追加される。
【００７６】
本実施形態では、エージェント２が上記の要求ホップ機能を有しているため、ダウンロード要求を受け取ったエージェント２が、必要なアプリケーションを保持していなくても、他の端末１のエージェント２へ、次々とダウンロード要求をホップさせることができる。
このような要求ホップによって、必要なアプリケーションが見つかると、そのアプリケーションを保持（管理）しているエージェント２は、ダウンロード要求元に、アプリケーションを転送する（ステップＳ３０）。このアプリケーション転送は、ホップ経路の逆経路に沿って、順次行われるため、最終的に、最初のダウンロード要求元が、必要なアプリケーションを取得することができる。
【００７７】
上記のように、本実施形態のネットワークシステムでは、エージェント２が搭載されている端末１は、サーバ４だけでなく、他の端末１からも必要なアプリケーションをダウンロード（取得）することができる。したがって、ネットワーク上にサーバ４が存在しなかったり、サーバ４との通信が不能であったりしても、必要なアプリケーションを他の端末１から取得することが可能である。
【００７８】
また、本実施形態のエージェント２は、アプリケーション宛の受信データを受信した場合に、当該アプリケーションが存在しなかったり、バージョンが不整合であったりすると、適切なバージョンのアプリケーションのダウンロードを行って、アプリケーションを自己の端末にインストール／起動させてから、当該アプリケーションに受信データを渡す。したがって、アプリケーションが存在しなかったり、バージョンが不整合であったりしても、当該アプリケーション宛の受信データの受信処理を正常に完了することができる。
【００７９】
さらに、本実施形態のエージェント２は、ダウンロード先のエージェントが必要なアプリケーションを実際に保有・管理しているか否かにかかわらず、決定されたダウンロード先に対してダウンロード要求を行い、アプリケーションを実際に保有するエージェント（端末）まで、ダウンロード要求のホップを繰り返す。したがって、ダウンロードの最初の要求元のエージェントが、アプリケーションを実際に保有するエージェントを見つける必要がない。
【００８０】
また、図５のステップＳ１５における周辺エージェントの検索の際には、問い合わせパケットのマルチキャスト送信によって、周辺のエージェント（端末）を発見するが、図８のようにネットワークが、ルータによって区分けされている場合、マルチキャストのパケットは、ルータを通過できないように、当該ルータが設定されている場合がある。この場合、図５のステップＳ１５における周辺エージェントの検索では、同一サブネット内のエージェント（端末）しか発見できない。
しかし、本実施形態のエージェント２では、図５のステップＳ１５に先だって、候補装置への接続を試みるように構成されており、この候補装置として、他のサブネットに属する端末１も選択可能としておけば、サブネットを跨いだダウンロード要求が可能である。このためには、例えば、各サブネットに属する特定の端末１については、候補装置になり得る端末として予め設定しておけばよい。
【００８１】
また、本実施形態では、ダウンロードの要求元のエージェントが、アプリケーションを実際に保有するエージェントを見つけることなく、ダウンロード要求を送信するよう構成されているが、エージェント間通信によって、必要なアプリケーションを保有するエージェントを見つけて、そのエージェントからアプリケーションのダウンロードを行うようにしてもよい。
【００８２】
本実施の形態における端末（コンピュータ）は、ＰＣや個人情報端末の他、携帯電話や車載器、家電機器、オフィス機器などの各種組込み機器であってもよい。それら端末にエージェントプログラムを導入したり、端末上でエージェントプログラムを利用したりするために、エージェントプログラムは、ＲＡＭやフラッシュメモリなどの半導体メモリ、ＨＤＤや各種の光学メディアなど、コンピュータ読取可能な記録媒体に格納することができる。
【００８３】
なお、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味、及び範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００８４】
【図１】端末コンピュータの構成図である。
【図２】ネットワークシステムの全体図である。
【図３】エージェントの機能ブロック図である。
【図４】アプリケーション間通信の際のエージェントによるデータ受信処理を示すフローチャートである。
【図５】ダウンロード先決定処理を示すフローチャートである。
【図６】ダウンロード先のエージェントにおける、アプリケーション配信処理を示すフローチャートである。
【図７】エージェントによって送受信されるアプリケーション間通信用のデータフォーマットである。
【図８】サブネットワークからなるネットワークを示す構成図である。
【図９】周辺エージェントを発見するための説明図である。
【図１０】周辺エージェントを発見するための説明図である。
【図１１】ダウンロード要求のデータフォーマットである。
【符号の説明】
【００８５】
Ｓ  ネットワークシステム
１  端末コンピュータ
２  エージェント
３  アプリケーションプログラム
４  サーバ
２１  受信部
２２  アプリケーション判定部
２３  アプリケーション妥当性判定部
２４  バージョン判定部
２５  ダウンロード先決定部
２６  ダウンロード部
２７  端末検索部
２８  問い合わせ範囲管理部
２９  アプリケーション転送部
【図１】
2010128573.tif 000004
【図２】
2010128573.tif 000005
【図３】
2010128573.tif 000006
【図４】
2010128573.tif 000007
【図５】
2010128573.tif 000008
【図６】
2010128573.tif 000009
【図７】
2010128573.tif 000010
【図８】
2010128573.tif 000011
【図９】
2010128573.tif 000012
【図１０】
2010128573.tif 000013
【図１１】
2010128573.tif 000014