(57)【特許請求の範囲】
【請求項１】
外部装置と通信する端末装置であって、
所定プログラムのプログラム名を取得するプログラム名取得手段と、
前記プログラム名取得手段が取得した前記プログラム名を用いて、前記所定プログラムを取得するプログラム取得手段と、を備え、
前記プログラム取得手段は、
前記プログラム名取得手段が取得したプログラム名を用いて前記所定プログラムを、前記外部装置からダウンロードするダウンロード手段と、
前記ダウンロードされた前記所定プログラムと前記プログラム名とを関連づけて保存する保存手段と、
前記ダウンロード手段と前記保存手段とのうちのいずれの方から、前記所定プログラムを取得するかを決定する決定手段と、を含み、
前記決定手段により決定された方から、前記所定プログラムを取得し、
前記プログラム名取得手段は、
他の前記端末装置から送信された、前記プログラム名を含む要求を受理したときに前記プログラム名を取得する手段を、さらに含み、
前記端末装置は、
前記要求を受理したときに、前記プログラム取得手段が取得した前記所定プログラムを要求元の前記他の端末装置に供給する供給手段を、さらに備え、
前記所定プログラムには、配布処理制御手順が組み込まれており、
前記供給手段は、前記配布処理制御手順に基づいて前記所定プログラムを含む情報を要求元の前記他の端末装置に供給する、端末装置。
【請求項２】
前記供給手段により前記所定プログラムが供給されるごとに、供給の履歴を示す履歴情報を登録する供給履歴情報登録手段をさらに備えて、
前記端末装置は前記供給履歴情報登録手段により登録されている前記履歴情報に基づいて自己の前記所定プログラムの供給に関する貢献度を判定する、請求項１に記載の端末装置。
【請求項３】
前記配布処理制御手順には前記所定プログラムを、要求元の前記他の端末装置への供給の許可または禁止を決定するための許可手順が含まれる、請求項１または２に記載の端末装置。
【請求項４】
前記許可手順は、要求元の前記他の端末装置の前記所定プログラムの供給に関する課金状況を示す課金情報に基づいて前記許可または禁止を決定する、請求項３に記載の端末装置。
【請求項５】
前記プログラム取得手段が取得した前記所定プログラムを実行する実行手段と、
前記実行手段による実行の結果を、前記所定プログラムとともに要求元の前記他の端末装置に送信する実行結果送信手段と、を備える、請求項１から４のいずれかに記載の端末装置。
【請求項６】
前記外部装置は、他の前記端末装置を含む、請求項１に記載の端末装置。
【請求項７】
外部装置と通信する端末装置のコンピュータを用いた情報取得方法であって、
所定プログラムのプログラム名を取得するプログラム名取得ステップと、
前記プログラム名取得ステップが取得した前記プログラム名を用いて、前記所定プログラムを取得するプログラム取得ステップと、を備え、
前記プログラム取得ステップは、
前記プログラム名取得ステップが取得したプログラム名を用いて前記所定プログラムを、前記外部装置からダウンロードするダウンロードステップと、
前記ダウンロードされた前記所定プログラムと前記プログラム名とを関連づけて、前記コンピュータの記憶部に格納する格納ステップと、
前記ダウンロードステップによるダウンロードと前記記憶部からの読出しのうちのいずれの方法で、前記所定プログラムを取得するかを決定する決定ステップと、を含み、
前記決定ステップにより決定された方法で、前記所定プログラムを取得し、
前記プログラム名取得ステップは、
他の前記端末装置から送信された、前記プログラム名を含む要求を受理したときに前記プログラム名を取得するステップを、さらに含み、
前記情報取得方法は、
前記要求を受理したときに、前記プログラム取得ステップにおいて取得した前記所定プログラムを要求元の前記他の端末装置に供給する供給ステップを、さらに備え、
前記所定プログラムには、配布処理制御手順が組み込まれており、
前記供給ステップにおいては、前記配布処理制御手順に基づいて前記所定プログラムを含む情報を要求元の前記他の端末装置に供給する、情報取得方法。
【請求項８】
請求項７に記載の情報取得方法をコンピュータに実行させるための情報取得プログラム。
【請求項９】
請求項８に記載の情報取得プログラムが記録された機械読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は端末装置に関し、特に、ネットワークに接続された他の端末装置にプログラムを配布することができる端末装置に関する。
【０００２】
【従来の技術】
ネットワークに接続された２台以上のコンピュータ間におけるプログラムの実行形態として、クライアントサーバ方法が採用される。典型的なクライアントサーバ方法の一例として、次のようなものがある。つまり、クライアント（端末装置）はサーバに対して、キーボードなどからの入力信号を送信しサーバにおいて適切にプログラムを実行させて、その実行結果をサーバから受信し、クライアントのユーザに受信内容（プログラム実行結果）を出力する。このようなクライアントサーバ方法では、プログラムが実行される間、クライアントはサーバと接続し続ける必要があり、またクライアントでは何もプログラムが実行されないのでクライアントのコンピュータ資源が有効活用されない。
【０００３】
また、他の例として特開平１０−２７１０６号公報に示されるプログラムダウンロード型のクライアントサーバ方法がある。このクライアントサーバ方法においては、クライアントは必要なときにサーバに対してプログラムのダウンロード要求をすると、要求したプログラムはサーバからクライアントにダウンロードされて、ダウンロードされたプログラムはクライアントにおいてが実行される。この方法によれば、クライアントのコンピュータ資源を有効活用でき、必要であればサーバのコンピュータ資源も活用可能である。
【０００４】
同様の方法として、マイクロソフト社が開発したActiveXがある。ActiveXによれば、プログラムはサーバからクライアントへダウンロードされるとクライアントにインストールされて、その後は該プログラムを再度ダウンロードする必要はない。
【０００５】
【発明が解決しようとする課題】
上述したようにサーバでプログラムが実行される場合は、プログラムの実行中はクライアントはサーバと接続し続ける必要があるから、ネットワークの負荷が上昇する。また、特開平１０−２７１０６号公報に示されるＷＷＷ（world  wide  web）ブラウザ上におけるJava(R)アプレットやActiveXをクライアントで実行する場合において、プログラムを初めて実行するクライアントは、プログラムを供給してもらうためにサーバに接続可能でなければならない。しかしながら、サーバがダウンしている場合、または該クライアントからサーバまでのネットワーク上に何らかの障害が生じている場合は、クライアントはプログラムを実行することができない。
【０００６】
それゆえにこの発明の目的は、所望のプログラムを含む情報が確実に供給される端末装置を提供することである。
【０００７】
【課題を解決するための手段】
この発明のある局面に係る、外部装置と通信する端末装置は、所定プログラムのプログラム名を取得するプログラム名取得手段と、プログラム名取得手段が取得したプログラム名を用いて、所定プログラムを取得するプログラム取得手段と、を備え、プログラム取得手段は、プログラム名取得手段が取得したプログラム名を用いて所定プログラムを、外部装置からダウンロードするダウンロード手段と、ダウンロードされた所定プログラムとプログラム名とを関連づけて保存する保存手段と、ダウンロード手段と保存手段とのうちのいずれの方から、所定プログラムを取得するかを決定する決定手段と、を含み、決定手段により決定された方から、所定プログラムを取得する。
好ましくは、プログラム名取得手段は、他の端末装置から送信された、プログラム名を含む要求を受理したときにプログラム名を取得する手段を、含み、端末装置は、要求を受理したときに、プログラム取得手段が取得した所定プログラムを要求元の他の端末装置に供給する供給手段を、さらに備える。
好ましくは、所定プログラムには、配布処理制御手順が組み込まれており、供給手段は、配布処理制御手順に基づいて所定プログラムを含む情報を要求元の他の端末装置に供給する。
好ましくは、供給手段により所定プログラムが供給されるごとに、供給の履歴を示す履歴情報を登録する供給履歴情報登録手段をさらに備えて、端末装置は供給履歴情報登録手段により登録されている履歴情報に基づいて自己の前記所定プログラムの供給に関する貢献度を判定する。
好ましくは、配布処理制御手順には所定プログラムを、要求元の他の端末装置への供給の許可または禁止を決定するための許可手順が含まれる。
好ましくは、許可手順は、要求元の他の端末装置の所定プログラムの供給に関する課金状況を示す課金情報に基づいて許可または禁止を決定する。
好ましくは、プログラム取得手段が取得した所定プログラムを実行する実行手段と、実行手段による実行の結果を、所定プログラムとともに他の端末装置に送信する実行結果送信手段と、を備える。
好ましくは、外部装置は、他の端末装置を含む。
この発明の他の局面に係る、外部装置と通信するコンピュータを用いた情報取得方法は、所定プログラムのプログラム名を取得するプログラム名取得ステップと、プログラム名取得ステップが取得したプログラム名を用いて、所定プログラムを取得するプログラム取得ステップと、を備え、プログラム取得ステップは、プログラム名取得ステップが取得したプログラム名を用いて所定プログラムを、外部装置からダウンロードするダウンロードステップと、ダウンロードされた所定プログラムとプログラム名とを関連づけて、コンピュータの記憶部に格納する格納ステップと、ダウンロードステップによるダウンロードと記憶部からの読出しのうちのいずれの方法で、所定プログラムを取得するかを決定する決定ステップと、を含み、決定ステップにより決定された方法で、所定プログラムを取得する。
この発明のさらに他の局面に係る情報取得プログラムは、上述の情報取得方法をコンピュータに実行させるための情報取得プログラムである。
この発明のさらに他の局面に係る記録媒体は、上述の情報取得プログラムが記録された機械読取り可能な記録媒体である。
【００１０】
端末装置は要求すれば他の端末装置から、所定プログラムが供給される。
【００２０】
また、所定プログラムを含む情報の要求元に対しては、実行手段による該所定プログラムの実行結果が、該所定プログラムとともに供給される。
【００２１】
それゆえに、要求元の装置は所定プログラムを実行しなくても、該所定プログラムを要求するだけで、実行結果を取得できるので、その分要求元の装置の処理の負荷は軽減される。
【００２７】
また、端末装置のそれぞれについて所定プログラムの供給に関する貢献度を判定できるから、判定結果に基づいてより貢献した端末装置を簡単に特定できる。
【００２９】
また、許可手順に従い所定プログラムの供給を許可するか禁止するか決定しながら要求元への供給動作を行うことができる。それゆえに、所定プログラムを要求することにより供給動作を決定する許可手順を任意に変更することができる。
【００３７】
【発明の実施の形態】
以下、この発明の各実施の形態について図面を参照して詳細に説明する。
【００３８】
（実施の形態１）
図１は本実施の形態１によるネットワークシステムの概略構成図である。図２は、この発明の実施の形態１におけるクライアントコンピュータ（以下、クライアントと略す）の概略構成図である。図１においてネットワークシステムは、サーバコンピュータ（以下、サーバと略す）４、インターネットなどの各種の通信回線が適用されるネットワーク８と８１、ネットワーク８を介してサーバ４に接続された複数のクライアント１０ｉ（ｉ＝１，２，３、・・・、ｎ）を含む。クライアント１０ｉのそれぞれは同様な構成を有して、ネットワーク８１を介して相互に接続される。
【００３９】
ここでは、クライアント１０ｉとサーバ４を接続するためのネットワーク８とクライアント１０ｉ同士を接続するネットワーク８１とを個別に設けたが、これに限定されない。つまり、両者は理論的に別個であれば、物理的に別個であることまでは要求されないから、クライアント１０ｉは同一ネットワークでサーバ４に接続されるとともに他のクライアント１０ｉにも接続されるようにしてもよい。たとえば、クライアント１０ｉ間同士の通信はＩｒＤＡなどの赤外線通信で行い、クライアント１０ｉとサーバ４との通信は、ダイヤルアップにによるネットワーク通信であってもよいし、クライアント１０ｉ間同士の通信はＬＡＮ（local  area  network）経由でなされて、クライアント１０ｉとサーバ４との通信はＷＡＮ（wide  area  network）経由でなされてもよい。
【００４０】
図２を参照してクライアント１０ｉは閲覧部１、後述するテーブルＴＢを有する実行部２、中継部３、保存部５、配布部６および後述する配布履歴情報ＩＮＦを格納する配布履歴記憶部７を含む。閲覧部１は各種情報の表示を行なう。ユーザは閲覧部１を介して指示または要求などの各種情報を入力する。閲覧部１は典型的にはＷＷＷのブラウザと同様のものとして構成される。実行部２は、閲覧部１から入力された要求を受付け、受付けた要求に対応のプログラムを実行する。もし要求に対応のプログラムが存在しなければ、中継部３に対して該プログラムのダウンロード要求を出力する。実行部２はたとえばJava(R)のServletエンジンなどのアプリケーションサーバや、あるいはＷＷＷブラウザ内に組込まれた実行エンジンとして構成される。
【００４１】
中継部３は、実行部２からプログラムのダウンロード要求を入力すると、ネットワーク８を介してサーバ４に該プログラムのダウンロード要求を行なう。中継部３は、サーバ４からダウンロードされた該プログラムとデータ（該プログラムの実行に必要なデータ）を実行部２に出力するとともに、保存部５に対して該プログラムとデータの保存処理を要求する。また中継部３は、サーバ４に対してプログラムのダウンロード要求を行なう代わりに保存部５から該プログラムとデータを読出し、実行部２に供給する。中継部３は、サーバ４からダウンロードされた、または保存部５から読出されたプログラムとデータを配布部６に供給する。
【００４２】
中継部３はネットワーク８に対しては一般の通信装置として実装される。この通信装置はネットワーク８が有線の場合はＬＡＮ（ローカルエリアネットワーク）ケーブルの接続装置およびその専用プログラムなどで構成される。無線の場合はアンテナなど無線通信装置およびその制御プログラムなどで構成される。
【００４３】
配布部６はネットワーク８１を介して他のクライアント１０ｉを接続する。配布部６は、接続される他のクライアント１０ｉに対しては、プロキシサーバのようなソフトウェアやファイルシステム管理プログラムとして構成される。
【００４４】
サーバ４は、中継部３からダウンロード要求を受信したことに応じて、または能動的に、中継部３にプログラムまたはデータを送信するための機能を有する。サーバ４は典型的にはＷＷＷサーバと同様のものであるが、メール配信（ＳＭＴＰ：simple  mail  transport  protocol）サーバやファイル転送（ＦＴＰ：file  transport  protocol）サーバと同様のものであってよい。
【００４５】
保存部５は、ハードディスクやメモリなどの一般の記憶装置とその制御プログラムから構成される。保存部５は中継部３から出力されたプログラムまたはデータを入力して記憶装置に書込んで保存する。保存部５に格納されるプログラムまたはデータには、最新の更新時刻を示す更新時刻情報が対応付けて書込まれる。
【００４６】
配布部６は、他のクライアント１０ｉからプログラムのダウンロード要求があったとき、または能動的に、保存部５または中継部２からプログラムまたはデータを取得し、要求元の他のクライアント１０ｉに送信する。これにより、プログラムまたはデータを要求元のクライアント１０ｉに配布部６により配布される。配布部６による配布の方法は、典型的にはＷＷＷサーバと同様の処理に従うか、メール配信（ＳＭＴＰ）サーバなどと同様の送信処理に従う。ただし、配布部６は通信ネットワーク８１を介してデータを送受信することのできる機能を有していればよく、ＷＷＷサーバやメール配信サーバに限定されるものではない。
【００４７】
配布部６は、必要に応じて、プログラムまたはデータの配布の履歴を示す情報を配布履歴記憶部７に書込んで蓄えるように処理する。配布部６は他のクライアント１０ｉに接続するための一般の通信装置とその制御プログラムとＷＷＷサーバやメール配信サーバのようなサーバプログラムから構成される。配布履歴記憶部７は、配布部６による配布の履歴情報を蓄える。配布履歴記憶部７は、ハードディスクやメモリなどの一般の記憶装置を有して、ファイルシステムやデータベース管理システムなどにより管理される。
【００４８】
図３は、この発明の実施の形態１による閲覧処理のフローチャートである。図４（Ａ）と（Ｂ）はプログラムとプログラム名の対応関係が登録されるテーブルＴＢと配布履歴情報ＩＮＦの内容を示す図である。図４（Ａ）のテーブルＴＢには、閲覧部１においてユーザにより実行が指定され得る複数のプログラムＩＰと、プログラムＩＰのそれぞれに対応して要求すべきプログラムの名称を示す要求するプログラム名ＲＰが登録される。図３のフローチャートに従い、クライアント１０ｉにおいて所望プログラムを要求して取得し、実行するまでの閲覧処理の手順について説明する。
【００４９】
まず、ユーザが所望プログラムＡをクライアント１０ｉにおいて実行する場合を想定する。またクライアント１０ｉには閲覧部１としてＷＷＷブラウザが組み込まれており、閲覧部１によりあるサイトのホームページの画面が表示されていたと想定する。また、このホームページ画面においては「プログラムＡを実行するにはここをクリック」というメッセージとともにハイパーリンクが表示されており、ユーザはこのリンクをクリックするものと想定する。
【００５０】
ユーザは、上述したような閲覧部１の図示されないハイパーリンクをクリックするので、プログラムＡを実行するためのアクセス要求が発生する（Ｓ１０１）。このプログラムＡのアクセス要求は実行部２に出力されるので、実行部２は該アクセス要求を受付け、アクセスが要求されたプログラムＡに対応のプログラム名ＰＲを図４のテーブルＴＢを参照して決定して、決定されたプログラム名ＰＲを用いて中継部３に対してプログラムを要求する（Ｓ１０２）。実行部２におけるプログラム名ＰＲの決定方法はこれに特定されない。たとえば、プログラムＡという文言に“/servlet”を付加するなどして決定してもよい。なお、付加する文言は “/servlet”に限定されない。以下、実行が要求されるプログラムのみまたは、実行が要求されるプログラムと該プログラムの実行に必要とされるデータとを併せたものを単にプログラムと呼ぶことにする。
【００５１】
次に、中継部３は要求されたプログラムをサーバ４、他のクライアント１０ｉおよび保存部５のいずれから取得するかを決定する（Ｓ１０３）。取得先がサーバ４と決定されるのは次のような場合である。つまり、該クライアント１０ｉがサーバ４と接続可能な状態である場合、または要求されたプログラムが保存部５に保存されていなかった場合などである。典型的には、要求されたプログラムが保存部５に保存されておらず、かつ該クライアント１０ｉがサーバ４に接続可能な場合には取得先はサーバ４と決定される。また、取得先が保存部５と決定されるのはサーバ４と接続可能な状態になく、かつ要求されたプログラムが保存部５に保存されている場合である。なお、要求されたプログラムが保存部５に保存されているか否かにかかわらず、サーバ４と接続可能な状態にあれば、優先的にサーバ４を取得先と決めてもよい。また予めデータ取得先を設定することによって、あるいはユーザの指示によって、優先的にサーバ４を取得先と決定してもよい。逆に、取得先をサーバ４としないように指定するようにしてもよい。
【００５２】
中継部３は、取得先を保存部５と決定した場合には、要求されたプログラムを保存部５から読出す（Ｓ１０６）。また取得先をサーバ４と決定した場合には、サーバ４に接続して、サーバ４から要求されたプログラムをダウンロードする（Ｓ１０４）。ダウンロード終了後は、中継部３はサーバ４との接続を断つ。ここではダウンロードの方法はどのような方法でもよい。たとえば、サーバ４がＷＷＷサーバとして実装されているのなら、中継部３はＨＴＴＰ（hypertext  transport  protocol）などに従いサーバ４に接続し、ＨＴＴＰに従ってプログラム名ＲＰを指定して対応のプログラムをサーバ４からダウンロードする。また、サーバ４がメール配信（ＳＭＴＰ）サーバとして実装されているのなら、サーバ４に対して要求するプログラム名ＰＲなどの情報を記述した電子メールを送信すると、サーバ４から必要するプログラムＰＲに対応のプログラムをメールとして受信できる。プログラム名ＲＰに対応のプログラムの受信方法は、これらの方法に限定されない。
【００５３】
中継部３はダウンロードまたは保存部５からの読出しなどにより取得したプログラムを実行部２に出力する。このとき、中継部３は保存部５に対してダウンロードにより取得した該プログラムの保存要求を出力してもよい。保存部５は、中継部３から保存要求を入力すると、保存が要求されたプログラムを中継部３から受理して、ハードディスクやメモリなどの一般の記憶装置に読出し可能なように書込んで蓄える。ダウンロードしたプログラムが保存部５において保存されることにより、その後、同一のプログラムのアクセス要求が発生した場合には、保存部５の記憶装置を優先的にアクセスすることにより、高速に該プログラムを取得できる。ただし、サーバ４から取得したプログラムを必ずしも保存部５において保存する必要はない。たとえば、ユーザやサーバ４からの指示に従い、保存部５にプログラム保存したり、しなかったりしてもよい。
【００５４】
実行部２は、取得したプログラムを中継部３から受理して実行する（Ｓ１０７）。ここでは、たとえば、Java(R)技術を用いたServletエンジンにおけるサーブレットの実行や、Java(R)技術を用いたアプレットの実行、あるいはActiveXコンポーネントの実行と同様の方法でプログラムが実行されるので、詳細な説明は省略する。なお、プログラムの実行技術は、これに限定されるものではない。
【００５５】
実行部２はプログラムの実行結果を閲覧部１に出力するので、閲覧部１において所望プログラムＡの実行結果が出力される（Ｓ１０８）。ここでは、一般のＷＷＷブラウザにおける表示が行なわれるので、詳細な説明は省略する。
【００５６】
図３のＳ１０３においては、プログラムの取得先を他のクライアント１０ｉに決定してクライアント１０ｉ間でプログラムを配布することもできる。図５は、この発明の実施の形態１におけるクライアント間のプログラム配布処理のフローチャートである。
【００５７】
前述した図３のＳ１０３において、中継部３はプログラムの取得先を他のクライアント１０ｉと決定すると、配布部６をプログラム名ＰＲを指定して所望プログラム取得のためのアクセス要求を他のクライアント１０ｉに送信するように制御する。プログラムの取得先を他のクライアント１０ｉに指定するために、ユーザは他のクライアント１０ｉの識別子を閲覧部１において設定するので、中継部３および配布部６を介して識別子で指定された他のクライアント１０ｉに対してプログラム名ＰＲを含むアクセス要求が送信される。
【００５８】
このときの他のクライアント１０ｉにおける処理を図５のフローチャートを参照し説明する。図５において、他のクライアント１０ｉの配布部６は図３のＳ１０３において送信されたアクセス要求を受信する（Ｓ２０１）。このとき、配布部６は、たとえばＷＷＷサーバとして機能するならばＨＴＴＰに従うアクセス要求を受理するので、受理したアクセス要求により指定されたプログラム名ＰＲを中継部３に出力する。あるいは、メール配信（ＳＭＴＰ）サーバとして機能するならばＳＭＴＰに従ってアクセス要求のメールの受信処理を行ない、受信内容をを解釈して、指定されたプログラム名ＰＲを中継部３に出力する。
【００５９】
中継部３は、配布部６からプログラム名ＰＲを含むアクセス要求を入力するので、入力したプログラム名ＰＲに基づいて図２のＳ１０３〜Ｓ１０６と同様の手順にてプログラムを取得する（Ｓ２０２〜Ｓ２０６）。このとき、Ｓ２０１で受理したアクセス要求に更なる他のクライアント１０ｉの識別子が含まれる場合には、該識別子で指定される更なる他のクライアント１０ｉがプログラムの取得先に決定される。
【００６０】
配布部６は、取得したプログラムを中継部３から受理して、アクセス要求元のクライアント１０ｉへ送信する（Ｓ２０７）。したがって、アクセス要求元のクライアント１０ｉにはサーバ４ではなくて他のクライアント１０ｉから所望プログラムが配布される。
【００６１】
配布部６は上述のようにアクセス要求元のクライアント１０ｉにプログラムを配布するごとに、配布履歴記憶部７の配布履歴情報ＩＮＦを更新する。配布履歴情報ＩＮＦは、図４（Ｂ）に示されるように該クライアント１０ｉにより他のクライアント１０ｉに配布されたプログラムのそれぞれについて、該プログラムの名称を示す配布プログラム名データＤＰ、配布先のクライアント１０ｉを示す配布先クライアントデータＤＣおよび配布した回数を示す回数データＣＯＮを含む。配布部６はプログラムを配布するごとに、配布されたプログラムについて、配布履歴情報ＩＮＦの配布プログラム名データＤＰ、配布先クライアントデータＤＣおよび回数データＣＯＮについて新規に登録するか、対応の配布先クライアントデータＤＣおよび回数データＣＯＮを更新する。
【００６２】
したがって、配布履歴記憶部７の配布履歴情報ＩＮＦを参照することにより、各クライアント１０ｉは、いくつのクライアント１０ｉに対してプログラムを配布したかがわかるので、たとえば、回数データＣＯＮで示される配布の回数が多いほどプログラムの普及に貢献したクライアントと判断できる。プログラム普及に貢献したと判断されたクライアント１０ｉには、貢献度に従う報酬を与えるなどすることにより、プログラムを効率的に普及させることができる。また、プログラムの配布が有料で行われる場合には、プログラムを効率的に販売できる。
【００６３】
なお、各クライアント１０ｉの配布履歴情報ＩＮＦの内容はサーバ４に定期的の送信されて、サーバ４の管理者（プログラム販売者、プログラム販売の代理人など）に提示されて、その内容を管理者が確認することで、各クライアント１０ｉの上述の貢献度を判断するようにしてもよい。また、各クライアント１０ｉは配布履歴情報ＩＮＦの内容をサーバ４に定期的に送信するのに代替して、次のようにしてもよい。つまり、各クライアント１０ｉは定期的に、配布履歴記憶部７の配布履歴情報ＩＮＦの内容に基づいて、自己の上述したような貢献度を求めて、求めた貢献度をサーバ４に送信するようにしてもよい。
【００６４】
ここでは、配布履歴情報ＩＮＦはプログラムの配布元のクライアント１０ｉにおいて登録されるとしているが、配布先のクライアント１０ｉに登録するようにしてもよい。
【００６５】
また、プログラムの配布回数の制限を設けて、一定回数以上の配布を許可しないように設定してもよい。このようにすれば、プログラムの配布数を制限できて、プログラムに関連したライセンスの乱用を阻止できる。プログラム配布数の制限は各クライアント１０ｉ独自に行われてもよいし、サーバ４から各クライアント１０ｉに指示することにより行われてもよい。
【００６６】
前者の場合には、配布履歴情報ＩＮＦには各プログラムに対応してさらに配布の制限回数を示す制限回数データが追加登録されるようにして、各クライアントはプログラムを配布する場合に、対応の配布回数データＣＯＮと制限回数データとを比較し、比較結果に基づいて、該プログラムの配布を許可するか否かを決定する。
【００６７】
後者の場合には、サーバ４の図示されないメモリに各プログラムに対応した上述の制限回数データを予め登録しておく。サーバ４は各クライアント１０ｉから定期的に配布履歴情報ＩＮＦを受信すると、受信した配布履歴情報ＩＮＦにおける各プログラムの回数データＣＯＮと予め登録された対応の請願回数データとを比較し、比較結果に基づいて、該プログラムの配布を許可するか否かを決定し、決定に従う指示を各クライアント１０ｉに送信する。各クライアント１０ｉはあるプログラムについて配布を許可しない旨の指示を受信すると、該プログラムについてのアクセス要求があってとしても、該プログラムの配布をしないように動作する。
【００６８】
ここで、図３のＳ１０３でプログラム取得先を決定する方法について説明する。まず１つの決定方法は、中継部３は、保存部５にアクセス要求されているプログラムが格納されていない場合には、サーバ４および他のクライアント１０ｉの中で最も高速に通信できるものを、予めレスポンス時間を測るなどして特定し、特定されたものを取得先に決定する方法である。レスポンス時間計測には、たとえば、定期的にＴＣＰ／ＩＰネットワークにおいて相手先端末や通信回線の状況をチェックするのに利用するpingコマンドを発行して測る方法、またはサーバ４または他のクライアント１０ｉにアクセスするごとにレスポンス時間を測定する方法が適用される。なお、pingコマンドの実行のための負荷は非常に小さいので、プログラムの取得先を決定する都度、該コマンドを実行するようにしてもよい。
【００６９】
他の決定方法は、アクセス要求されているプログラムの取得先は、サーバ４、他のクライアント１０ｉおよび保存部５のうち更新時刻が最も新しい該プログラムを格納しているところとなるように決定する方法である。具体的にはアクセス要求されているプログラムの取得先の決定時に、該プログラムの更新時刻を示す更新時刻情報を受信するための通信をサーバ４と他のクライアント１０ｉそれぞれと行なう。この通信方法は、たとえばＨＴＴＰならば、ＨＥＡＤコマンドを相手に送信することによって、更新時刻情報を受信できる。ＨＥＡＤコマンドの実行にかかる負荷は極めて小さいので、プログラム取得先決定の都度、該コマンドを実行してもよい。
【００７０】
さらなる他の決定方法は、保存部５にアクセス要求されているプログラムが格納されていない場合に、サーバ４と他のクライアント１０ｉのうち後述する課金管理において最も経済的な接続先となるものを取得先に決定するものである。
【００７１】
さらなる他の決定方法は、保存部５にアクセス要求されているプログラムが格納されていない場合に、サーバ４と他のクライアント１０ｉのうち最も信頼性の高いものを取得先に決定するものである。たとえば、プログラム取得のために経由する通信路が第三者により傍受されるまたは改質されてしまうおそれがあるような場合は、信頼性が低いといえる。ＨＴＴＰプロトコルとＨＴＴＰＳプロトコルを比較すると、ＨＴＴＰＳプロトコルは暗号化の機能があり、信頼性が高いといえる。通信路に適用されるプロトコルの種類は事前に決定されているから、プログラム取得先の決定時に最も信頼性の高い通信路（取得先）を適用されるプロトコルに基づいて判断できる。
【００７２】
さらなる他の決定方法は、保存部５にアクセス要求されているプログラムが格納されていない場合に、サーバ４と他のクライアント１０ｉのうち、対応する回線の品質が最も高いものをプログラム取得先に決定するものである。上述したように回線の品質は、ＨＴＴＰＳとＨＴＴＰなどのような該回線に適用のプロトコルの種類により決定される。回線に適用されるプロトコルの種類は、回線接続時には既に決定されているから、プログラム取得先の決定時に対応する回線の品質が最も高い取得先を適用されるプロトコルに基づいて判断できる。
【００７３】
本実施の形態１によれば、所定プログラムがダウンロードされていないクライアント１０ｉは、該所定プログラムのアクセス要求が生じたときは、該所定プログラムがダウンロードされている他のクライアント１０ｉに接続して、他のクライアント１０ｉから所定プログラムをダウンロードすることができる。
【００７４】
なお、クライアント１０ｉは所定プログラムを要求元の他のクライアント１０ｉに送信して配布する場合には、実行部２により該所定プログラムを実行して、その実行結果も該所定プログラムとともに送信するようにしてもよい。またはその実行結果のみを、言いかえると実行結果を所定プログラムに代替して送信するようにしてもよい。これにより、他のクライアント１０ｉでは自己において所定プログラムを実行しなくても、該所定プログラムの実行結果を取得できるので、他のクライアント１０ｉの処理の負荷を削減できる。したがって、複数のクライアント１０ｉ間で効果的に負荷分散できる。
【００７５】
（実施の形態２）
次に、本実施の形態２について説明する。
【００７６】
図６は本実施の形態２に係るクライアント９０ｉ（ｉ＝１，２，３、・・・、ｎ）の構成図である。本実施の形態に適用されるネットワークシステムの構成は、図１に示されたクライアント１０ｉが図６のクライアント９０ｉに代替されるが、他の部分は図１のそれと同様であり説明は省略する。クライアント９０ｉのそれぞれには、予め一意に特定するための識別子が割当てられていると想定する。
【００７７】
図７は、本実施の形態２によるプログラム配布処理のフローチャートである。図８は、本実施の形態２によるプログラム配布の可否を決定するための条件ＤＡの一例を示す図である。図８の条件ＤＡは、複数の対象識別子データＩＤと、対象識別子データＩＤのそれぞれに対応したプログラムの配布を許可するか拒絶するかを示す可否データＡＬとを用いて示される。対象識別子データＩＤは、対応の可否データＡＬによりプログラムの配布が許可または拒絶される対象となるクライアント９０ｉに割当てられている識別子を示す。なお、図８の条件ＤＡは実行部２２を制御するプログラムにおいて記述される。
【００７８】
図６のクライアント９０ｉと図２のクライアント１０ｉとを比較し異なる点は、クライアント９０ｉはクライアント１０ｉの実行部２および配布部６に代替して実行部２２および配布部６２を備える点にある。クライアント９０ｉの他の部分は図２に示されたものと同様であり説明は省略する。
【００７９】
実行部２２は、実行部２の機能に加えて配布部６２からのアクセス要求を受付る機能を有する。実行部２２は条件ＤＡの内容に基づいて、さまざまな配布手順をプログラムによって指定でき、プログラムが要求する条件に適合しない場合は配布を拒否すること、あるいは制限を課すことができる。図１の配布部６が中継部３に対してプログラムの要求を行なうのに対し、配布部６２は実行部２２に対してプログラムの要求を行なう。
【００８０】
本実施の形態２におけるクライアント間のプログラム配布処理の手順を図７のフローチャートを参照しながら説明する。本実施の形態２では前述した実施の形態１に比べ、他のクライアント９０ｉからのプログラムのアクセス要求があった場合の処理が異なる。
【００８１】
まず、配布部６２は、他のクライアント９０ｉからプログラムのアクセス要求を受信すると、アクセス要求とともに受信したプログラム名ＲＰを実行部２２に出力する（Ｓ３０１）。
【００８２】
実行部２２は、プログラム名ＰＲとアクセス要求を入力して、入力したアクセス要求を分析する（Ｓ３０２）。分析においては、たとえば、アクセス要求元のクライアント９０ｉの識別子を該アクセス要求から取得して、取得した識別子にと図８の条件ＤＡとに基づいて、プログラムの配布の可否を判断する。許可と判断した場合には、以降の配布処理を継続するが、拒否と判断した場合にはエラーメッセージを配布部６２に出力する。
【００８３】
具体的には、図８の条件ＤＡを参照すると、アクセス要求元のクライアント９０ｉの識別子が’１０．’で始まる場合には、対応の可否データＡＬは許可を示すのでプログラム配布が許可されて、それ以外の場合には対応の可否データＡＬは拒否を示すのでプログラム配布が拒絶される。このように、図８の条件ＤＡを用いたＳ３０２における分析のためのプログラムは、サーバ４などからダウンロード可能なので、プログラム配布のために図８の条件ＤＡを動的に変化させることができる。たとえば、プログラム配布手順に課金条件に関する情報を含み、アクセス要求元のクライアント９０ｉの識別子と所定の課金条件とを照合して、識別子が課金条件に適合している場合のみ（たとえば、プログラムの配布に関する課金に対する料金支払い状況が、たとえば所定金額支払い済みの場合のみ）プログラム配布を許可することができる。プログラムの配布を許可したり、配布のたびにアクセス要求元に対して課金したりできる。さらに、複雑な配布処理を行なう配布処理プログラムを組み込んでもよいし、動的に配布プログラムを編成してもよい。
【００８４】
また配布履歴記憶部７の配布履歴情報ＩＮＦを参照して、該プログラムに対応の回数データＣＯが一定回数以上を示す場合には、該プログラムを配布するのを拒否したり、アクセス要求元にさらに課金するなどしてもよい。
【００８５】
上述の配布手順では、配布条件が変更されるが、配布の手続きが変更されてもよい。たとえば、あるプログラムが配布済みのクライアント９０ｉが示されたリストを準備する。その後、該プログラムのアクセス要求が生じた場合には、該プログラムを複数部分に分割して、分割された各部分プログラムはリストに示された複数のクライアント９０ｉから該アクセス要求元のクライアント９０ｉにダウンロードされるようにしてもよい。
【００８６】
実行部２２はアクセス要求の分析結果、プログラムの配布を許可する場合には、アクセス要求に対応のプログラム名ＰＲを中継部３に出力して、配布処理を継続するように指示する。ここでは、中継部３には分析後にプログラム名ＰＲが与えられるとしているが、分析が行われる前にプログラム名ＰＲを中継部３に出力するようにしてもよい。この場合には、アクセスの分析結果、プログラムの配布が許可されたときにのみ、中継部３に配布処理を継続するような指示が与えられる。
【００８７】
中継部３は、配布処理を継続するような指示を入力すると、応じてプログラムの取得処理を行なう（Ｓ３０３〜Ｓ３０７）。この取得処理は図４におけるステップＳ２０２〜Ｓ２０６による処理と同様であり、説明は省略する。
【００８８】
実行部２２は、Ｓ３０７で取得したプログラムを配布部６２に出力するので、配布部６２は、与えられるプログラムを入力して、アクセス要求元の他のクライアント１０ｉへ送信する（Ｓ３０８）。これにより、クライアント９０ｉはサーバ４からではなくて他のクライアント９０ｉからプログラムが配布される。
【００８９】
上述のＳ３０２では、図８の条件ＤＡに基づいてプログラム配布の可否を決定していたが、配布の可否を決定するタイミングはこれに限定されない。たとえば、Ｓ３０２の処理をアクセス要求分析の処理を省略して、実行部２２は取得したプログラムを分析し、その結果によって配布の可否を判定して、配布が許可されると判定されたときに、該プログラムを配布部６２に出力するようにしてもよい。ここで、取得したプログラムの分析とは、たとえば、該プログラムにデジタル署名が付加されているかどうかを調べ、その結果によって配布の可否を決定してもよい。
【００９０】
また、上述のアクセス要求の分析と取得プログラムの分析とを行い、それらの分析結果に基づいて配布の可否を決定してもよい。
【００９１】
またサーバ４からクライアント９０ｉにダウンロードされた任意のプログラムを実行部２２において実行させることができるので、サーバ４から中継部３に対するレスポンスと全く同じレスポンスを実行部２２から配布部６２を経由して他のクライアント９０ｉに送信することができる。つまり、他のクライアント９０ｉにとって、サーバ４と本実施の形態に係るクライアント９０ｉとを同等のものに見せることができる。すなわち、ネットワークシステムの１台のクライアント９０ｉの保存部５０に所定プログラムをロードしておけば、ネットワークシステムのすべてのクライアント９０ｉは、サーバ４から所定プログラムをダウンロードすることなく、他のクライアント９０ｉとの通信のみで所定プログラムが配布されて取得できる。この所定プログラムは、上述の書くフローチャートを参照して説明した閲覧および配布の処理手順に対応するものであってもよい。
【００９２】
上述のクライアント１０ｉ（９０ｉ）には、ＰＤＡ（personal  digital  assistants）、情報処理機能を有した携帯型電話機、インターネットなどのネットワーク上で運用されているサーバ装置などが適用される。サーバ装置への適用は、複数サーバ装置間で負荷分散するように運用される場合に有効である。また、新規のサーバ装置をネットワークに追加したときは、新規サーバ装置に対してサービス用アプリケーションプログラムやデータを既設のサーバ装置から上述の手順で配布できるので、ネットワーク上のサーバ装置に関する各種設定が簡単化できる。
【００９３】
なお、ここでは図８の条件ＤＡは実行部２２で実行されるプログラム中に記述されるとしたが、実行部２２は図８の条件ＤＡのデータをプログラムとは別個に有して、プログラムを該テーブル内容を参照しながら実行するようにしてもよい。条件ＤＡを変更する場合には、プログラム中に条件ＤＡが記載されていればプログラム自体を更新して再ダウンロードする必要があり煩雑であるが、条件ＤＡをプログラムとは別個に有していれば条件ＤＡのみ更新するだけで済み簡単である。
【００９４】
各実施の形態によれば、サーバ４がダウンしている場合、またはサーバ４までのネットワーク８に何らかの障害が生じている場合でも、プログラムの配布をサーバ４を介さずにクライアント１０ｉ（９０ｉ）間で行なうことができる。そのため、どのクライアント１０ｉ（９０ｉ）でもプログラムインストール済みの他のクライアント１０ｉ（９０ｉ）から該プログラムを取得して実行できる。
【００９５】
また、クライアント１０ｉ（９０ｉ）間通信のプログラム自体をクライアント間の通信によって配布することができる。したがって、クライアント間の配布手順を変化させることも容易となる。
【００９６】
また、プログラム配布の際に、クライアント１０ｉ（９０ｉ）間で課金管理をすることができる。
【００９７】
また、プログラム配布の際に、クライアント１０ｉ（９０ｉ）間の配布履歴に関する情報も蓄えることができる。これによってクライアント間で配布履歴の優劣を決定できる。
【００９８】
また、プログラムをダウンロード済みのクライアント１０ｉ（９０ｉ）は、他のクライアント１０ｉ（９０ｉ）にとってサーバ４と同等のものとして振る舞うことができる。
【００９９】
（実施の形態３）
本実施の形態では前述のクライアント１０ｉ（９０ｉ）のハードウェア構成と、プログラム記憶媒体が示される。
【０１００】
図９は各実施の形態に適用されるクライアント１０ｉ（９０ｉ）のハードウェア構成図である。図９を参照してクライアント１０ｉ（９０ｉ）は、該クライアント自体を集中的に制御するためのＣＰＵ（中央処理装置の略）４２２、ＲＯＭ（Read  Only  Memory）またはＲＡＭ（ランダムアクセスメモリの略）を含んで構成されるメモリ４２４、固定ディスク４２６、ＦＤ（フレキシブルディスク）４３２が着脱自在に装着されて、装着されたＦＤ４３２をアクセスするＦＤ駆動装置４３０、ＣＤ−ＲＯＭ（Compact  Disc  Read  Only  Memory）４４２が着脱自在に装着されて、装着されたＣＤ−ＲＯＭ４４２をアクセスするＣＤ−ＲＯＭ駆動装置４４０、ＣＲＴ（陰極線管）や液晶などからなるモニタ４１０、キーボード４５０、マウス４６０、ネットワーク８および８１と該クライアントとを通信接続するための通信インターフェィス４８０を含む。これらの各部はバスを介して通信接続される。
【０１０１】
クライアント１０ｉ（９０ｉ）には、カセット形式の磁気テープが着脱自在に装着されて磁気テープをアクセスする磁気テープ装置が設けられてもよい。
【０１０２】
閲覧部１にはマウス４６０、キーボード４５０およびモニタ４１０が対応する。実行部２（２２）にはＣＰＵ４２２などが対応する。配布履歴記憶部７および保存部５それぞれにはメモリ４２４または固定ディスク４２６が対応する。中継部３および配布部６（６２）それぞれには通信インターフェイス４８０が対応する。
【０１０３】
上述の各実施の形態で説明したクライアント１０ｉ（９０ｉ）の処理機能はプログラムで実現される。このプログラムは図９のクライアント１０ｉ（９０ｉ）で読取可能な記録媒体に格納される。
【０１０４】
本実施の形態では、この記録媒体として、図９に示されている装置で処理が行なわれるために必要なメモリ、たとえばメモリ４２４のＲＯＭのようなそのものがプログラムメディアであってもよいし、また外部記憶装置として磁気テープ装置（図示せず）およびＣＤ−ＲＯＭ駆動装置４４０などのプログラム読取装置が設けられ、そこに記憶媒体である磁気テープ（図示せず）またはＣＤ−ＲＯＭ４４２が挿入されることで読取可能なプログラムメディアであってもよい。いずれの場合においても、格納されているプログラムはＣＰＵ４２２がアクセスして実行させる構成であってもよいし、あるいはいずれの場合もプログラムが一旦読出されて、読出されたプログラムは、図９の装置の所定のプログラム記憶エリア、たとえばメモリ４２４のＲＡＭのプログラム記憶エリアにロードされて、ＣＰＵ４２２により読出されて実行される方式であってもよい。このロード用のプログラムは、予め当該装置に格納されているものとする。
【０１０５】
ここで、上述したプログラムメディアはクライアント１０ｉ（９０ｉ）の装置本体と分離可能に構成される記録媒体であり、固定的にプログラムを担持する媒体であってよい。たとえば磁気テープやカセットテープなどのテープ系、ＦＤ４３２や固定ディスク４２６などの磁気ディスクやＣＤ−ＲＯＭ４４２／ＭＯ（Magnetic  Optical  Disc）／ＭＤ（Mini  Disc）／ＤＶＤ（Digital  Versatile  Disc）などの光ディスクのディスク系、ＩＣカード（メモリカードを含む）／光カードなどのカード系、あるいはマスクＲＯＭ、ＥＰＲＯＭ（Erasable  and  Programmable  ＲＯＭ）、ＥＥＰＲＯＭ(Electrically  ＥＰＲＯＭ)、フラッシュＲＯＭなどによる半導体メモリが含まれる。
【０１０６】
クライアント１０ｉ（９０ｉ）はインターネットを含むネットワーク８、８１と接続可能な構成が採用されているから、これらネットワークからプログラムが所定の記憶領域、たとえばメモリ４２４などにダウンロードされるようにしてもよい。なお記録媒体に格納されている内容としてはプログラムに限定されず、データであってもよい。
【０１０７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【図１】  本実施の形態１によるネットワークシステムの概略構成図である。
【図２】  この発明の実施の形態１におけるクライアントコンピュータの概略構成図である。
【図３】  この発明の実施の形態１による閲覧処理のフローチャートである。
【図４】  （Ａ）と（Ｂ）はプログラムとプログラム名の対応関係が登録されるテーブルと配布履歴情報の内容を示す図である。
【図５】  本実施の形態１によるプログラム配布処理のフローチャートである。
【図６】  本実施の形態２に係るクライアントの構成図である。
【図７】  本実施の形態２によるプログラム配布処理のフローチャートである。
【図８】  本実施の形態２によるプログラム配布の可否を決定するための条件例を示す図である。
【図９】  各実施の形態に適用されるクライアントのハードウェア構成図である。
【符号の説明】
１  閲覧部、２，２２  実行部、３  中継部、４  サーバ、５  保存部、６，６２  配布部、７  配布履歴記憶部、８，８１  ネットワーク、１０ｉ，９０ｉクライアント。
【図１】
0004953531.tif 000002
【図２】
0004953531.tif 000003
【図３】
0004953531.tif 000004
【図４】
0004953531.tif 000005
【図５】
0004953531.tif 000006
【図６】
0004953531.tif 000007
【図７】
0004953531.tif 000008
【図８】
0004953531.tif 000009
【図９】
0004953531.tif 000010