(57)【特許請求の範囲】
【請求項１】
ネットワークを介してソフトウェアの転送を行うサーバコンピュータと、
ソフトウェアが使用する資源を有するクライアントコンピュータと
を備えたソフトウェア転送システムにおいて、
上記サーバコンピュータは、
実行時に所定の資源を必要資源として使用するソフトウェアを記憶する記憶手段と、
上記記憶手段に記憶されたソフトウェアのソフトウェア名とそのソフトウェアが使用する必要資源とを記載した提供可能ソフトウェアリストと、
ソフトウェアの転送を制御するソフトウェア転送サーバ処理手段と、
ネットワークを介してクライアントコンピュータと通信するサーバ通信手段と
を備え、
上記クライアントコンピュータは、
上記クライアントが有する資源のうちサーバコンピュータに対応して割り当てられた割当資源を示す資源情報を記憶する資源情報テーブルと、
ソフトウェアの転送を制御するソフトウェア転送クライアント処理手段と、
ネットワークを介してサーバコンピュータと通信するクライアント通信手段と
を備え、
上記クライアントコンピュータは、
クライアント通信手段により、上記サーバコンピュータから上記提供可能ソフトウェアリストを受信し、
ソフトウェア転送クライアント処理手段により、提供可能ソフトウェアリストに記載されたソフトウェアの必要資源と資源情報テーブルに記憶された資源情報が示す割当資源とを比較して、上記提供可能ソフトウェアリストを送信したサーバコンピュータに対応して割り当てられた割当資源が上記提供可能ソフトウェアリストに記載されたソフトウェアの必要資源を満足するか否かを判断し、
クライアント通信手段により、上記割当資源が上記必要資源を満足するソフトウェアを転送要求ソフトウェアとして上記サーバコンピュータに要求し、
上記サーバコンピュータは、
ソフトウェア転送サーバ処理手段により、記憶手段に記憶されたソフトウェアの中から、上記転送要求ソフトウェアとして要求されたソフトウェアを転送ソフトウェアとして選択して、
サーバ通信手段により、上記転送ソフトウェアを上記クライアントコンピュータに送信する
ことを特徴とするソフトウェア転送システム。
【請求項２】
上記提供可能ソフトウェアリストは、
ソフトウェアのソフトウェア名と必要資源とともにソフトウェアのハッシュ値を記載し、
上記クライアントコンピュータは、さらに、
インストール済みのソフトウェアのソフトウェア名とインストール済みのソフトウェアのハッシュ値とを記載した受信済みソフトウェアリストを備え、
上記クライアントコンピュータは、
上記提供可能ソフトウェアリストに記載されたソフトウェアのソフトウェア名とハッシュ値とが、受信済みソフトウェアリストに記載されたインストール済みのソフトウェアのソフトウェア名とインストール済みのソフトウェアのハッシュ値とにそれぞれ一致するソフトウェアを、上記転送要求ソフトウェアから除外することを特徴とする請求項１記載のソフトウェア転送システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はネットワークを介してコンピュータ間でソフトウェアの転送を行う際に必要ソフトを選別するシステムとその転送方法に関するものである。
【０００２】
【従来の技術】
２つ以上の装置間でデータ転送を行うコンピュータシステムにおいて、ユーザが欲しいソフトウェアを、ネットワークを介して転送する、例えばオンライン・ロードシステムがある。
【０００３】
図１４は、従来のネットワークを介してソフトウェアをオンライン・ロードするシステムの構成図である。図において、少なくとも１台以上のサーバーコンピュータ１と少なくとも１台以上のクライアントコンピュータ２がネットワーク３を介して接続されている。
サーバーコンピュータ１は、他のコンピュータとネットワーク３を介して通信を行う通信手段６と、ソフトウェアの転送を制御するソフトウェア転送サーバー処理手段４と、ソフトウェアが保存されている記憶手段５などによって構成されている。
クライアントコンピュータ２は、他のコンピュータとネットワーク３を介して通信を行う通信手段６と、ソフトウェアの転送を制御するソフトウェア転送クライアント処理手段７と、ソフトウェアを保存する記憶手段５と、ユーザーへ情報を表示する表示手段８と、ユーザーがソフトウェア転送クライアント処理手段７を操作するための操作手段９などから構成されている。
【０００４】
次に、図に示したシステムにおいて、ソフトウェアを転送する場合の動作について相互間の通信シーケンスを示す図１５も参照しながら説明する。
最初に、ユーザーがクライアントコンピュータ２の操作手段９によって接続するサーバーコンピュータ１を指定すると、指定されたサーバーコンピュータ１へ接続を要求し、コネクションを確立する。次に、クライアントコンピュータ２はサーバーコンピュータ１へソフトウェアのリストを要求、受信して、表示手段８によってユーザーに提示する。次に、ユーザーはクライアントコンピュータ２の操作手段９によって転送するソフトウェアを選択すると、選択されたソフトウェアをサーバーコンピュータ１に要求、受信して、記憶手段５に格納する。転送するすべてのソフトウェアについてこの処理を繰り返す。
すべてのソフトウェアの転送が終了すると、ユーザーの操作によりクライアントコンピュータ２とサーバーコンピュータ１間のコネクションが切断される。
【０００５】
【発明が解決しようとする課題】
従来のソフトウェア転送方法は上記のように動作し、転送元のサーバまたはそのサーバが持つソフトウェアの信頼性をチェックせずに転送するので、クライアント側では受け入れたソフトウェアが自クライアントの既存ソフトウェアや、データに悪影響を及ぼさないかという懸念が残るという課題があった。
また更に、転送に際してソフトウェア名のみで転送するので、既にインストール済みのソフトウェアを再度転送して時間を浪費するという課題もあった。
【０００６】
この発明は上記の課題を解消するためになされたもので、既にインストール済みのソフトウェアや、そのデータに影響が及ばず安全であり、無駄な転送を防いだソフトウェア転送システムを得ることを目的とする。
【０００７】
【課題を解決するための手段】
この発明に係るソフトウェア転送システムは、
ネットワークを介してソフトウェアの転送を行うサーバコンピュータと、
ソフトウェアが使用する資源を有するクライアントコンピュータと
を備えたソフトウェア転送システムにおいて、
上記サーバコンピュータは、
実行時に所定の資源を必要資源として使用するソフトウェアを記憶する記憶手段と、
上記記憶手段に記憶されたソフトウェアのソフトウェア名とそのソフトウェアが使用する必要資源とを記載した提供可能ソフトウェアリストと、
ソフトウェアの転送を制御するソフトウェア転送サーバ処理手段と、
ネットワークを介してクライアントコンピュータと通信するサーバ通信手段と
を備え、
上記クライアントコンピュータは、
上記クライアントが有する資源のうちサーバコンピュータに対応して割り当てられた割当資源を示す資源情報を記憶する資源情報テーブルと、
ソフトウェアの転送を制御するソフトウェア転送クライアント処理手段と、
ネットワークを介してサーバコンピュータと通信するクライアント通信手段と
を備え、
上記クライアントコンピュータは、
クライアント通信手段により、上記サーバコンピュータから上記提供可能ソフトウェアリストを受信し、
ソフトウェア転送クライアント処理手段により、提供可能ソフトウェアリストに記載されたソフトウェアの必要資源と資源情報テーブルに記憶された資源情報が示す割当資源とを比較して、上記提供可能ソフトウェアリストを送信したサーバコンピュータに対応して割り当てられた割当資源が上記提供可能ソフトウェアリストに記載されたソフトウェアの必要資源を満足するか否かを判断し、
クライアント通信手段により、上記割当資源が上記必要資源を満足するソフトウェアを転送要求ソフトウェアとして上記サーバコンピュータに要求し、
上記サーバコンピュータは、
ソフトウェア転送サーバ処理手段により、記憶手段に記憶されたソフトウェアの中から、上記転送要求ソフトウェアとして要求されたソフトウェアを転送ソフトウェアとして選択して、
サーバ通信手段により、上記転送ソフトウェアを上記クライアントコンピュータに送信する
ことを特徴とする。
【０００８】
上記提供可能ソフトウェアリストは、
ソフトウェアのソフトウェア名と必要資源とともにソフトウェアのハッシュ値を記載し、
上記クライアントコンピュータは、さらに、
インストール済みのソフトウェアのソフトウェア名とインストール済みのソフトウェアのハッシュ値とを記載した受信済みソフトウェアリストを備え、
上記クライアントコンピュータは、
上記提供可能ソフトウェアリストに記載されたソフトウェアのソフトウェア名とハッシュ値とが、受信済みソフトウェアリストに記載されたインストール済みのソフトウェアのソフトウェア名とインストール済みのソフトウェアのハッシュ値とにそれぞれ一致するソフトウェアを上記転送要求ソフトウェアから除外することを特徴とする。
【０００９】
【発明の実施の形態】
実施の形態１．
特定の契約したサーバからの信頼できるソフトウェアを利用できる場合は問題ないが、クライアントが移動先から未だインストールしていないソフトウェアを手近なサーバから転送して使用する場合には、安全性に懸念がある。こうした必要に迫られた転送にも安全な転送方法を説明する。
図９はこの発明の実施の形態１におけるクライアントコンピュータの基本動作を示すフローチャートである。また図１は、図９のステップＳＴ００６の詳細を示すフローチャートであり、更に図２は、図１のステップＳＴ１０５の詳細を示すフローチャートであり、図３は図１のステップＳＴ１０１−１の詳細を示すフローチャートである。
【００１０】
図４は、この発明の実施の形態１におけるシステム構成をあらわしたものである。図４において、少なくとも１台以上のサーバーコンピュータ１と少なくとも１台以上のクライアントコンピュータ２がネットワーク３を介して接続されている。またサーバーコンピュータ１は、他のコンピュータとネットワーク３を介して通信を行う通信手段６と、ソフトウェアの転送を制御するソフトウェア転送サーバー処理手段４と、クライアントコンピュータ２に提供可能なソフトウェアが格納されている記憶手段５と、各ソフトウェアの属性情報のリストである提供可能ソフトウェアリスト１０などによって構成されている。
【００１１】
図５は、サーバコンピュータ１内の提供可能ソフトウェアリスト１０の例を示す図であり、各ソフトウェアの属性情報としてソフトウェア名、サイズ、最終更新日時、ハッシュ値、対応するソフトウェアを利用するのに不可欠の資産（リソース）である必要資源などが含まれている。
図の必要資源１０−１は、メモリとして２５ＫＢが必要で、かつ表示装置が４８０×２００ドットのものが必要であったり、またはファイルが書き込みと読み出し動作が必要とされたり、またはソフトウェアがアプリケーションＢというプログラムを使用する必要があることを示している。
また１０−２のハッシュ値とは、任意長のデータをそれよりも小さなデータ長（例えば１２８ビット）に圧縮するハッシュ関数によって圧縮されたソフトウェアデータの圧縮値である。このメッセージダイジェストと呼ばれるハッシュ関数は、暗号などで用いられ、同じハッシュ値を持つ元データを見つけることが困難な性質を持っている。そのため２つのデータのハッシュ値を比較すればそのデータの中身が同じ物かどうかをほとんど間違いなく判断することができる。
【００１２】
また、クライアントコンピュータ２は、通信手段６と、ソフトウェアの転送を制御するソフトウェア転送クライアント処理手段７と、サーバーコンピュータ１から転送されたソフトウェアを格納する記憶手段５と、記憶手段５に格納されている各ソフトウェアの属性情報のリストである受信済ソフトウェアリスト１１と、転送したソフトウェアが利用可能な資源（リソース）情報である利用制限資源情報テーブル１２と、ユーザーへ情報を表示する表示手段８と、ユーザーがソフトウェア転送クライアント処理手段を操作するための操作手段９などがバスを介して接続、構成されている。
【００１３】
図６は、クライアントコンピュータ２内の受信済ソフトウェアリスト１１の例を示す図であり、各ソフトウェアの属性情報としてソフトウェア名、サイズ、最終更新日時、ハッシュ値１１−２、転送元サーバーコンピュータなどが含まれている。
図７は、利用制限資源情報テーブル１２の例を示した図であり、サーバコンピュータ毎にソフトウェアの転送元が利用できる資源（リソース）を示している。例えば、サーバーＡから転送されたソフトウェアはファイルの読み込み・書込みとネットワーク接続と５０ＫＢまでのメモリを使用することができ、サーバーＢから転送されたソフトウェアはファイルの読込と１０ＫＢまでのメモリを使用することができ、サーバーＣから転送されたソフトウェアはファイルの読み込み・書込みと８０ＫＢまでのメモリを使用することができることを示している。また、全てのサーバーコンピュータ（全サーバー）から転送されたソフトウェアは６４０×４００ドットの表示装置を利用可能であることを示している。
【００１４】
次に、図４に示したシステムが行う動作について、サーバとクライアント間の通信シーケンスを示す図８およびクライアントコンピュータの基本動作フローを示す図９も参照しながら説明する。
ここでは、サーバーコンピュータ１からクライアントコンピュータ２へソフトウェアを転送する。
まず、クライアントコンピュータ２からサーバーコンピュータ１に対して提供可能ソフトウェアリストを要求する（ＳＴ００１）。このとき、サーバーコンピュータ１が不明の場合は、ブロードキャスト送信（ネットワーク３に接続された全てのコンピュータへ送信）により要求してもよい。サーバーコンピュータ１は、この問合せに対して提供可能ソフトウェアリストを応答する（ＳＴ００２）。
【００１５】
この要求に応じてサーバコンピュータ１から、まず提供可能ソフトウェアリストが送信される。これを受けたクライアントコンピュータ２は、送信したサーバーコンピュータ１が、自身の利用制限資源情報テーブル１２に含まれているサーバかどうかをチェックする（ＳＴ００３）。もし、応答したサーバーコンピュータ１が利用制限資源情報テーブル１２に含まれていない場合、表示手段８によって転送したソフトウェアに与える利用可能資源をユーザーに問い合わせる（ＳＴ００４）。ユーザーは、操作手段９によって応答したサーバーコンピュータに対する利用制限資源を入力し、利用制限資源情報テーブル１２を更新する（ＳＴ００５）。
もちろん、ここでユーザーへの問合せを行わずに利用制限資源情報テーブル１２に記憶されていないサーバーコンピュータへ利用可能資源を割り当てないようにしてもよい。
【００１６】
次に、クライアントコンピュータ２は、受信した提供可能ソフトウェアリスト１０から、ステップＳＴ００６で、転送するソフトウェアを図１に詳細フローを示す処理によって選択する。クライアントコンピュータ２は、利用可能資源リスト作成の処理ＳＴ１０１−１をする。
図３は図１中の利用可能資源リストと作成の処理ステップＳＴ１０１−１の更に詳細を示すフローチャートである。ここで、送信元サーバから送信されたソフトウェアが利用可能なすべての資源のリスト（利用可能資源リスト）を作成する。
まず、利用可能資源リストを初期化する（ＳＴ６０１）。
次に、利用制限資源情報テーブル１２に送信元サーバの欄があるかどうかチェックし（ＳＴ６０２）、ある場合にはその利用可能資源を利用可能資源リストに追加する（ＳＴ６０３）。
次に利用制限資源情報テーブル１２に全サーバの欄があるかどうかチェックし（ＳＴ６０４）、ある場合にはその利用可能資源を利用可能資源リストに追加する（ＳＴ６０５）。
図１６の利用可能資源リストは、以上のようにして作成された利用可能資源リストの例であり、図７の転送元サーバ毎に異なる利用可能資源と全サーバに共通の利用可能資源を併せたものとなっている。図１６は、図７の利用制限情報テーブルの例におけるサーバＡからソフトウェアを転送する場合に作成される利用可能資源リストであり、サーバＡに対する利用可能資源と全サーバに対する利用可能資源を併せたものとなっている。
次にクライアントコンピュータ２は、サーバコンピュータ１に転送を要求するソフトウェアのリストである転送要求ソフトウェアリストを初期化した後（図１、ＳＴ１０１−２）、提供可能ソフトウェアリストに含まれる各ソフトウェアについて以下のような処理（ＳＴ１０２〜ＳＴ１０７）を繰り返す。
【００１７】
まず、クライアントコンピュータ２は提供可能ソフトウェアと同名のソフトウェアが受信済ソフトウェアリスト１１に含まれているかどうかチェックする（ＳＴ１０３）。同名のソフトウェアがある場合は、さらにそのハッシュ値を比較する（ＳＴ１０４）。ハッシュ値が同じ場合は、そのソフトウェアは受信済のソフトウェアと同一のものであるとみなし、転送要求はせず、次の提供可能ソフトウェアの処理に移る。
同名のソフトウェアがない場合、またはハッシュ値が異なりソフトウェアが更新されたとみなされる場合は、その提供可能ソフトウェアの必要資源（リソース）と利用制限資源情報テーブル１２を比較し、そのソフトウェアが必要とする資源を全て利用可能かどうかチェックする（ＳＴ１０５）。
【００１８】
この必要資源は利用可能か判定ステップＳＴ１０５は、更に図２の詳細動作フローで構成されており、ＳＴ７０１ないしＳＴ７０７からなる資源利用可否判断処理ＳＴ７００となっている。即ちソフトウェアの必要資源が全て利用可能か否かをチェックする。
まず、例えば“ＭＥＭＯＲＹ．ＵＳＥ”のような必要資源１０−１の名が利用可能資源リストに含まれているかどうかチェックする（ＳＴ７０２）。必要資源名が利用可能資源リストに含まれていない場合は、必要資源は利用不可であると判断され処理を終了する（ＳＴ７０７）。
必要資源名が利用可能資源リストに含まれていた場合には、資源毎に異なるオプション条件についてもチェックする（ＳＴ７０３）。このオプション条件は、メモリの“２５ＫＢ”や表示装置の“４８０×２００ドット”というように、資源毎に異なるサイズなどの条件を示したものであり、その判断処理は資源毎に異なる。もちろん、オプション条件は必ずしも設定しなくともよく、この場合はオプション条件を満たしていると判断される。
【００１９】
オプション条件を満たしていない場合には、必要資源名が利用可能資源リストに他に含まれているかどうかチェックする（ＳＴ７０４）。含まれている場合には、再びオプション条件のチェックを行う（ＳＴ７０３）。必要資源名が利用可能資源リストに含まれていない場合には、必要資源は利用不可であると判断され処理を終了する（ＳＴ７０７）。
オプション条件を満たしている場合、処理中の必要資源は利用可能であると判断され、次の処理に移る（ＳＴ７０５）。
以上のように、送信するソフトウェアの各必要資源について、資源が利用可能か否か繰返しチェックする。すべての必要資源が利用可能であると判断されるとソフトウェアの必要資源がすべて利用可能であると判断され、処理を終了する（ＳＴ７０７）。
【００２０】
図５の提供可能ソフトウェアリスト１０の例において、ＡｐｐｌｉｃａｔｉｏｎＡは、４８０×２００ドット以上の表示装置と、２５ＫＢ以上のメモリが必要である。これをサーバーＡから図７の利用制限資源情報テーブル１２を持つクライアントコンピュータ２に転送する場合、サーバーＡから転送したソフトウェアが利用可能な資源は、図１６の利用可能資源リストにより示されるファイルの読込・書込みとネットワークの接続と、５０ＫＢ以内のメモリと６４０×４００ドットの表示装置である。
この例の場合、ＡｐｐｌｉｃａｔｉｏｎＡが必要な資源が、クライアントコンピュータ２により作成された利用可能資源リスト（図１６）に含まれているので、サーバーＡから転送されたＡｐｐｌｉｃａｔｉｏｎＡは利用可能と判断される。このようにソフトウェアの必要資源を全て利用可能な場合は、このソフトウェアを転送要求ソフトウェアリストに追加する（ＳＴ１０６）。
【００２１】
以上のような処理（ＳＴ１０２〜ＳＴ１０７）をサーバーコンピュータから受信した提供可能ソフトウェアリストに含まれる全てのソフトウェアについて繰り返し、転送要求ソフトウェアリストが作成される（ＳＴ１０８）。転送要求ソフトウェアリストに要素がなく、転送すべきソフトウェアがない場合は、以上でクライアントコンピュータ２の処理を終了する（図９ＳＴ００７）。
【００２２】
転送すべきソフトウェアがある場合、クライアントコンピュータ２はサーバーコンピュータ１へ転送要求ソフトウェアリストを送る（ＳＴ００８）。サーバーコンピュータ１は受信した転送要求ソフトウェアリストに含まれるそれぞれのソフトウェアデータをクライアントコンピュータ２に送信する。クライアントコンピュータ２は、各ソフトウェアを受信し、記憶手段５に格納する（ＳＴ００９）。また、同時に受信済ソフトウェアリストも更新する。
【００２３】
最後に、ソフトウェアのアイコンを登録する、インストーラを起動するなどのソフトウェアのインストール処理を行うことによって転送したソフトウェアが使用可能となる（ＳＴ０１０）。
【００２４】
以上のようにこの実施の形態においては、クライアントコンピュータはサーバーコンピュータから提供可能なソフトウェアのリストを受信し、これに含まれるソフトウェアと受信済のソフトウェアとをハッシュ値によって比較し、同一性判定を行う。ハッシュ値として暗号分野でメッセージダイジェストと呼ばれるハッシュ関数などを用いれば、データの中身が同じ物かどうかをほとんど間違いなく判断することができる。
データ本体を転送せずに短いハッシュ値のみで比較するため、データ本体の２重転送を防止し、トラフィック、転送時間、通信料金などを削減することができる。また、データ本体の転送前に同一性判定を行うことができるため、同一名称のソフトウェアを上書きをするかどうかユーザーが判断に迷うことがない。更にハッシュ値を取扱うことでサーバもしくはそのソフトウェアの信頼度が高いことを確認できる。
【００２５】
また、ソフトウェアが必要とする資源（リソース）情報と転送元サーバーコンピュータ毎に設定された利用制限資源情報テーブルを比較し、クライアントコンピュータ上で利用できないソフトウェアはダウンロードを阻止して、安全性を高め、かつ、トラフィック、転送時間を削減できる。サーバーコンピュータ毎に利用可能資源リストを設定することによって、信頼できるサーバーコンピュータからのソフトウェアの入手・最新バージョンへの更新を、ほとんど自動的に、簡単に行える。
また、信頼性が低いサーバーコンピュータに対しては利用可能資源リストでリソースの使用方法を制限するので、利用可能資源リストを超えるソフトウェアは転送を阻止して、安全性が高い。
【００２６】
実施の形態２．
実施の形態１では、クライアントコンピュータ２が主体的にソフトウェアの転送の可否を判断していた。これに対して本実施の形態２においては、サーバコンピュータ側で転送の可否を判断する。なお、システム構成は実施の形態１の図４と同一である。
【００２７】
次に、図４に示したシステムが本実施の形態で行う動作について、通信シーケンスを示す図１０、サーバコンピュータ動作フローを示す図１１およびクライアントコンピュータ動作フローを示す図１２も参照しながら説明する。
ここでは、先の実施の形態と同様、サーバーコンピュータ１からクライアントコンピュータ２へソフトウェアを転送する。
【００２８】
まず、ソフトウェアの転送元であるサーバーコンピュータ１がソフトウェアの転送先であるクライアントコンピュータ２に対してソフトウェア転送要求を送信する（ＳＴ２０１）。クライアントコンピュータ２は、ソフトウェア転送要求を受信すると（ＳＴ３０１）、ソフトウェア転送要求を送信したサーバーコンピュータ１が利用制限資源情報テーブル１２に含まれているかどうかチェックする（ＳＴ３０２）。もし、サーバーコンピュータ１が利用制限資源情報テーブル１２に含まれていない場合、表示手段８によって転送したソフトウェアに与える利用可能資源をユーザーに問い合わせる（ＳＴ３０３）。ユーザーは、操作手段９によってそのサーバーコンピュータ１に対する利用可能資源１２−１を入力し、利用制限資源情報テーブル１２を更新する（ＳＴ３０４）。もちろん、この処理を省いて、その新規サーバーコンピュータ１へは利用可能資源を割り当てないようにしてもよい。
【００２９】
次に、クライアントコンピュータ２は、サーバコンピュータ１に対する利用可能資源リストを作成する（ＳＴ３０５−１）。図３はこの利用可能資源リストの作成処理の詳細を示すフローチャートであるが、この処理は先の実施の形態と同様であるのでここでは説明を省略する。そして作成されたサーバコンピュータ１に対する利用可能資源リストと受信済みソフトウェアリスト１１を送信する（ＳＴ３０５−２）。
【００３０】
次に、サーバーコンピュータ１が利用可能資源リストと受信済みソフトウェアリストを受信する（ＳＴ２０２）と、転送するソフトウェアを選択する（ＳＴ２０３）。
図１３は、図１１におけるソフトウェア選択処理ステップＳＴ２０３の詳細を示した動作フローチャートである。即ち、サーバーコンピュータ１は、クライアントコンピュータ２に転送するソフトウェアのリストである転送ソフトウェアリストを初期化（ＳＴ４０１）した後、提供可能ソフトウェアリスト１０に含まれる各ソフトウェアについて以下のような処理を繰り返す（ＳＴ４０２〜ＳＴ４０７）。
【００３１】
まず、サーバーコンピュータ１は提供可能ソフトウェアと同名のソフトウェアがクライアントコンピュータ１から受信した受信済ソフトウェアリストに含まれているかどうかチェックする（ＳＴ４０３）。同名のソフトウェアがある場合は、さらにそのハッシュ値を比較する（ＳＴ４０４）。ハッシュ値が同じ場合は、そのソフトウェアは受信済のソフトウェアと同一のものであるとみなし、転送する準備をやめて、次の提供可能ソフトウェアの処理に移る。
【００３２】
同名のソフトウェアがない場合、またはハッシュ値が異なりバージョンの更新がある場合は、その提供可能ソフトウェアの必要資源（リソース）と送られてきたクライアントコンピュータの利用可能資源リストを比較し、転送が可能かをチェックする（ＳＴ４０５）。利用可能な場合、このソフトウェアを転送ソフトウェアリストに追加する（ＳＴ４０６）。
以上のような処理（ＳＴ４０２〜ＳＴ４０７）を提供可能ソフトウェアリスト１０に含まれる全てのソフトウェアについて繰り返し、転送ソフトウェアリストが作成される。転送ソフトウェアリストに要素がなく、転送すべきソフトウェアがない場合は、以上でサーバコンピュータ１の処理を終了する（ＳＴ２０４）。転送すべきソフトウェアがある場合、サーバーコンピュータ１はクライアントコンピュータ２へ転送ソフトウェアリストに含まれるソフトウェアを送信する（ＳＴ２０５）。
【００３３】
クライアントコンピュータ２は、各ソフトウェアを受信し、記憶手段５に格納する（ＳＴ３０６）。また、同時に受信済ソフトウェアリストも更新する。
最後に、クライアントコンピュータ２は、ソフトウェアのアイコンを登録する、インストーラを起動するなどのソフトウェアのインストール処理を行うことによって転送したソフトウェアが使用可能となる（ＳＴ３０７）。
【００３４】
以上のようにこの実施の形態においては、サーバーコンピュータが主体的に、クライアントコンピュータから受信済みソフトウェアのリストを受信し、これに含まれるソフトウェアと提供可能なソフトウェアとをハッシュ値によって比較し、同一性判定を行う。データ本体を転送せずに短いハッシュ値のみで比較するため、データ本体の２重転送を防止し、無駄な転送を防止できる。
また、サーバーコンピュータはクライアントコンピュータからサーバー毎に用意された利用可能資源リストを受信し、これと転送するソフトウェアが必要とする資源（リソース）情報とを比較して事前に転送の可否を決めることができる。
【００３５】
【発明の効果】
以上のようにこの発明の実施の形態によれば、転送元コンピュータ毎に利用可能資源リストを記載した利用制限資源テーブルを設け、この条件に合致するか調べる資源利用可否判断処理ステップを備えたので、信頼性の低い転送元コンピュータからのソフトウェアを阻止し、無駄な転送を防いで安全性を高められる効果がある。
【００３６】
また更に、転送するソフトウェアの同一性判定を圧縮値であるハッシュ値で行うようにしたので、同一バージョンのソフトウェアの転送を防いで、トラフィック、通信時間を削減できる効果もある。
【図面の簡単な説明】
【図１】  本発明の実施の形態１における受信ソフトウェア選択処理ステップの詳細を示すフローチャート図である。
【図２】  図１中の必要資源は利用可能か判定ステップの更に詳細を示すフローチャート図である。
【図３】  図１中の利用可能資源リスト作成ステップの更に詳細を示すフローチャート図である。
【図４】  本発明のネットワークを介したサーバコンピュータとクライアントコンピュータで構成されたソフトウェア転送システムの構成図である。
【図５】  実施の形態１と実施の形態２におけるサーバコンピュータ内の提供可能ソフトウェアリスト１０の例を示す図である。
【図６】  実施の形態１と実施の形態２におけるクライアントコンピュータ内の受信済ソフトウェアリスト１１の例を示す図である。
【図７】  実施の形態１と実施の形態２におけるクライアントコンピュータ内の利用制限資源情報テーブル１２の例を示す図である。
【図８】  本発明の実施の形態１におけるソフトウェア転送時のサーバとクライアント間の通信シーケンス図である。
【図９】  本発明の実施の形態１におけるクライアントコンピュータ２が行う全体の基本処理を示す動作フローチャート図である。
【図１０】  本発明の実施の形態２におけるソフトウェア転送時のサーバとクライアント間の通信シーケンス図である。
【図１１】  本発明の実施の形態２におけるサーバーコンピュータ１が行う全体の基本処理を示す動作フローチャート図である。
【図１２】  実施の形態２におけるクライアントコンピュータ２が行う全体の基本処理を示す動作フローチャート図である。
【図１３】  図１１中の転送ソフトウェア選択処理ステップの詳細を示すフローチャート図である。
【図１４】  従来のオンラインローディングによるソフトウェア転送方式を示す図である。
【図１５】  従来のオンライン・ローディングにおける通信シーケンス図である。
【図１６】  実施の形態１と実施の形態２における利用可能資源リストの例を示す図である。
【符号の説明】
１  サーバーコンピュータ、２  クライアントコンピュータ、３  ネットワーク、４  ソフトウェア転送サーバー処理手段、５  記憶手段、６  通信手段、７ソフトウェア転送クライアント処理手段、８  表示手段、９  操作手段、１０提供可能ソフトウェアリスト、１０−２  ハッシュ値、１１  受信済みソフトウェアリスト、１１−２  ハッシュ値、１２  利用制限資源情報テーブル、１２−１  利用可能資源、ＳＴ１０１−１利用可能資源リスト作成ステップ、ＳＴ１０５  必要資源は利用可能か判定（資源利用可否判断処理）ステップ。
【図１】
0004370018.tif 000002
【図２】
0004370018.tif 000003
【図３】
0004370018.tif 000004
【図４】
0004370018.tif 000005
【図５】
0004370018.tif 000006
【図６】
0004370018.tif 000007
【図７】
0004370018.tif 000008
【図８】
0004370018.tif 000009
【図９】
0004370018.tif 000010
【図１０】
0004370018.tif 000011
【図１１】
0004370018.tif 000012
【図１２】
0004370018.tif 000013
【図１３】
0004370018.tif 000014
【図１４】
0004370018.tif 000015
【図１５】
0004370018.tif 000016
【図１６】
0004370018.tif 000017