(57)【要約】【課題】端末装置間でのファイル配布が可能なシステムにおいて、端末装置の記憶容量の圧迫を抑制しつつ、端末装置がファイル取得にかかる時間の短縮化を図り得る、ファイル配布システム、サーバ装置、ファイル配布方法、及びプログラムを提供する。【解決手段】ファイル配布システム３は、端末装置２とサーバ装置１とを備える。サーバ装置１は、端末装置２を、各端末装置２で利用された配布ファイルの公開日に基づいてグループに分割し、グループ毎に、端末装置２によってツリー構造を構築する。更に、サーバ装置１は、端末装置２から配布ファイルの送信が求められた場合に、この配布ファイルを有するグループを特定し、送信を求めた端末装置２を、特定したグループのツリー構造に組み入れ、送信を求めた端末装置２に対して、グループ内の端末装置２の上層に位置する端末装置２から配布ファイルを取得するように指示を行う。【選択図】図１
2011107907.tif 000002
【特許請求の範囲】
【請求項１】
複数の端末装置と、前記複数の端末装置に配布ファイルを送信するサーバ装置とを備え、
前記サーバ装置は、
前記複数の端末装置を、それぞれで利用された前記配布ファイルの公開日に基づいて、グループに分割し、更に、前記グループ毎に、当該グループに属する端末装置によってツリー構造を構築し、
そして、前記複数の端末装置のいずれかから、前記配布ファイルの送信が求められた場合に、求められた前記配布ファイルを有する前記グループを特定し、前記配布ファイルの送信を求めた端末装置を、特定した前記グループの前記ツリー構造に組み入れ、
前記配布ファイルの送信を求めた端末装置に対して、特定した前記グループ内の当該端末装置の上層に位置する端末装置から、求められた配布ファイルを取得するように指示を行う、ことを特徴とするファイル配布システム。
【請求項２】
前記配布ファイルが、前記端末装置に対して適用されるパッチであり、
前記サーバ装置が、前記複数の端末装置それぞれにおける適用済みの最新のパッチの公開日からの経過時間に基づき、それぞれの前記経過時間が、前記グループ毎に設定されている前記経過時間の上限以下となるように、前記グループへの分割を行う、請求項１に記載のファイル配布システム。
【請求項３】
前記グループそれぞれにおいて、当該グループを構成している端末装置の一つが、当該グループを構成している端末装置における適用済みの前記パッチを保持している、請求項２に記載のファイル配布システム。
【請求項４】
前記サーバ装置が、公開されている前記パッチに関する情報を管理しており、そして、前記複数の端末装置のいずれかが、前記情報を要求した場合に、要求を行った端末装置に前記情報を送信し、
前記要求を行った端末装置が、前記情報に基づいて、適用済みでない前記パッチを特定し、前記サーバ装置に対して、適用済みでない前記パッチの送信を求める、請求項２または３に記載のファイル配布システム。
【請求項５】
前記サーバ装置が、前記要求を行った端末装置における、適用済みでない前記パッチにおける最も古い公開日を特定し、そして、前記最も古い公開日からの経過時間が前記上限以下となり、且つ、前記上限の値が最も小さくなるように前記グループを選択し、選択した前記グループの前記ツリー構造に、前記要求を行った端末装置を組み入れる、請求項４に記載のファイル配布システム。
【請求項６】
前記サーバ装置が、
前記複数の端末装置それぞれについて、当該端末装置の有する前記パッチの前記公開日からの経過期間が、当該端末装置が所属するグループに設定されている前記上限を超えているかどうかを判定し、
判定の結果、超えている場合に、当該端末装置に、前記公開日からの経過期間が前記上限を超えている前記パッチを削除させる、請求項２〜５のいずれかに記載のファイル配布システム。
【請求項７】
複数の端末装置に配布ファイルを送信するサーバ装置であって、
前記複数の端末装置を、それぞれで利用された前記配布ファイルの公開日に基づいて、グループに分割し、更に、前記グループ毎に、当該グループに属する端末装置によってツリー構造を構築し、
そして、前記複数の端末装置のいずれかから、前記配布ファイルの送信が求められた場合に、求められた前記配布ファイルを有する前記グループを特定し、前記配布ファイルの送信を求めた端末装置を、特定した前記グループの前記ツリー構造に組み入れる、端末管理部と、
前記配布ファイルの送信を求めた端末装置に対して、特定した前記グループ内の当該端末装置の上層に位置する端末装置から、求められた配布ファイルを取得するように指示を行う、接続先通知部と、を備えていることを特徴とするサーバ装置。
【請求項８】
前記配布ファイルが、前記端末装置に対して適用されるパッチであり、
前記端末管理部が、前記複数の端末装置それぞれにおける適用済みの最新のパッチの公開日からの経過時間に基づき、それぞれの前記経過時間が、前記グループ毎に設定されている前記経過時間の上限以下となるように、前記グループへの分割を行う、請求項７に記載のサーバ装置。
【請求項９】
公開されている前記パッチに関する情報を管理し、且つ、前記複数の端末装置のいずれかが、前記情報を要求した場合に、要求を行った端末装置に前記情報を送信する、パッチ情報管理部を更に備え、
前記端末管理部は、前記要求を行った端末装置が、当該サーバ装置に対して、前記情報から特定された、適用済みでない前記パッチの送信を求めた場合に、前記ツリー構造への組み入れを行う、請求項８に記載のサーバ装置。
【請求項１０】
前記端末管理部が、前記要求を行った端末装置における、適用済みでない前記パッチのうち、公開日が最も古いパッチを特定し、特定したパッチの公開日からの経過時間が前記上限以下となり、且つ、前記上限の値が最も小さくなるように前記グループを選択し、選択した前記グループの前記ツリー構造に、前記要求を行った端末装置を組み入れる、請求項９に記載のサーバ装置。
【請求項１１】
前記複数の端末装置それぞれについて、当該端末装置の有する前記パッチの前記公開日からの経過期間が、当該端末装置が所属するグループに設定されている前記上限を超えているかどうかを判定し、判定の結果、超えている場合に、当該端末装置に、前記公開日からの経過期間が前記上限を超えている前記パッチを削除させる、パッチ削除指示部を、更に備えている、請求項８〜１０のいずれかに記載のサーバ装置。
【請求項１２】
複数の端末装置に配布ファイルを送信するための方法であって、
（ａ）前記複数の端末装置を、それぞれで利用された前記配布ファイルの公開日に基づいて、グループに分割する、ステップと、
（ｂ）前記グループ毎に、当該グループに属する端末装置によってツリー構造を構築する、ステップと、
（ｃ）前記複数の端末装置のいずれかから、前記配布ファイルの送信が求められた場合に、求められた前記配布ファイルを有する前記グループを特定し、前記配布ファイルの送信を求めた端末装置を、特定した前記グループの前記ツリー構造に組み入れる、ステップと、
（ｄ）前記（ｃ）のステップの実行後に、前記配布ファイルの送信を求めた端末装置に対して、特定した前記グループ内の当該端末装置の上層に位置する端末装置から、求められた配布ファイルを取得するように指示を行う、ステップと、を有することを特徴とするファイル配布方法。
【請求項１３】
前記配布ファイルが、前記端末装置に対して適用されるパッチであり、
前記（ａ）のステップにおいて、前記複数の端末装置それぞれにおける適用済みの最新のパッチの公開日からの経過時間に基づき、それぞれの前記経過時間が、前記グループ毎
に設定されている前記経過時間の上限以下となるように、前記グループへの分割を行う、請求項１２に記載のファイル配布方法。
【請求項１４】
（ｅ）公開されている前記パッチに関する情報を管理する、ステップと、
（ｆ）前記複数の端末装置のいずれかが、前記情報を要求した場合に、要求を行った端末装置に前記情報を送信する、ステップと、を更に有し、
前記（ｃ）のステップは、前記要求を行った端末装置が、当該サーバ装置に対して、前記情報から特定された、適用済みでない前記パッチの送信を求めた場合に、実行される、請求項１３に記載のファイル配布方法。
【請求項１５】
前記（ａ）のステップにおいて、前記要求を行った端末装置における、適用済みでない前記パッチのうち、公開日が最も古いパッチを特定し、特定したパッチの公開日からの経過時間が前記上限以下となり、且つ、前記上限の値が最も小さくなるように前記グループを選択し、選択した前記グループの前記ツリー構造に、前記要求を行った端末装置を組み入れる、請求項１４に記載のファイル配布方法。
【請求項１６】
（ｇ）前記複数の端末装置それぞれについて、当該端末装置の有する前記パッチの前記公開日からの経過期間が、当該端末装置が所属するグループに設定されている前記上限を超えているかどうかを判定し、判定の結果、超えている場合に、当該端末装置に、前記公開日からの経過期間が前記上限を超えている前記パッチを削除させる、ステップを、更に有している、請求項１３〜１５のいずれかに記載のファイル配布方法。
【請求項１７】
複数の端末装置への配布ファイルの送信をコンピュータによって実行するためのプログラムであって、
前記コンピュータに、
（ａ）前記複数の端末装置を、それぞれで利用された前記配布ファイルの公開日に基づいて、グループに分割する、ステップと、
（ｂ）前記グループ毎に、当該グループに属する端末装置によってツリー構造を構築する、ステップと、
（ｃ）前記複数の端末装置のいずれかから、前記配布ファイルの送信が求められた場合に、求められた前記配布ファイルを有する前記グループを特定し、前記配布ファイルの送信を求めた端末装置を、特定した前記グループの前記ツリー構造に組み入れる、ステップと、
（ｄ）前記（ｃ）のステップの実行後に、前記配布ファイルの送信を求めた端末装置に対して、特定した前記グループ内の当該端末装置の上層に位置する端末装置から、求められた配布ファイルを取得するように指示を行う、ステップと、を実行させる、ことを特徴とするプログラム。
【請求項１８】
前記配布ファイルが、前記端末装置に対して適用されるパッチであり、
前記（ａ）のステップにおいて、前記複数の端末装置それぞれにおける適用済みの最新のパッチの公開日からの経過時間に基づき、それぞれの前記経過時間が、前記グループ毎に設定されている前記経過時間の上限以下となるように、前記グループへの分割を行う、請求項１７に記載のプログラム。
【請求項１９】
（ｅ）公開されている前記パッチに関する情報を管理する、ステップと、
（ｆ）前記複数の端末装置のいずれかが、前記情報を要求した場合に、要求を行った端末装置に前記情報を送信する、ステップと、を更に前記コンピュータに実行させ、
前記（ｃ）のステップは、前記要求を行った端末装置が、当該サーバ装置に対して、前記情報から特定された、適用済みでない前記パッチの送信を求めた場合に、実行される、請求項１８に記載のプログラム。
【請求項２０】
前記（ａ）のステップにおいて、前記要求を行った端末装置における、適用済みでない前記パッチのうち、公開日が最も古いパッチを特定し、特定したパッチの公開日からの経過時間が前記上限以下となり、且つ、前記上限の値が最も小さくなるように前記グループを選択し、選択した前記グループの前記ツリー構造に、前記要求を行った端末装置を組み入れる、請求項１９に記載のプログラム。
【請求項２１】
（ｇ）前記複数の端末装置それぞれについて、当該端末装置の有する前記パッチの前記公開日からの経過期間が、当該端末装置が所属するグループに設定されている前記上限を超えているかどうかを判定し、判定の結果、超えている場合に、当該端末装置に、前記公開日からの経過期間が前記上限を超えている前記パッチを削除させる、ステップを、更に前記コンピュータに実行させる、請求項１８〜２０のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の端末装置に向けて、配布ファイル、特にパッチを送信するための、ファイル配布システム、サーバ装置、ファイル配布方法、及びこれらを実現するプログラムに関する。
【背景技術】
【０００２】
一般に、プログラムにおいては、出荷後に、バグやセキュリティホール等が発見されることがあるため、ベンダーは、定期的に、又は必要に応じて、これらを修正するパッチをＷｅｂサイト上で公開している。この場合、利用者が、コンピュータによって、パッチが公開されているＷｅｂサイトにアクセスすると、パッチ配布用のサーバ（配布サーバ）から当該コンピュータにパッチが配布される。
【０００３】
また、多数のコンピュータによって構成された企業のコンピュータシステムでは、端末装置（クライアントコンピュータ）に対するパッチの配布を効率的に行うようにするため、コンピュータシステム内に、社内専用の配布サーバが構築される場合もある。この場合は、パッチは、社内の配布サーバから各クライアントへと配布される。
【０００４】
更に、このようなファイルの配布は、パッチに関わらず、ウィルス定義ファイル、更にはコンテンツファイル等を対象としても行われている。但し、このようなファイル配布システムでは、多数の端末装置が同時にファイルを必要とした場合に、配布サーバにアクセスが集中し、配布サーバのダウン、ファイルのダウンロード速度の低下等の問題が発生する可能性がある。このような問題を解決するため、従来から、種々のファイル配布システムが提案されている（例えば、特許文献１及び特許文献２参照）。
【０００５】
具体的には、特許文献１は、Ｐ２Ｐ（Peer To Peer）グループを構成する複数の端末装置と、配布サーバとを備えたファイル配布システムを開示している。このファイル配布システムでは、端末装置から配布サーバに対して配布ファイルの問い合わせが行われると、先ず、配布サーバは、端末装置に、問い合わせ対象となった配布ファイルを有するＰ２Ｐグループを通知する。
【０００６】
そして、端末装置は、Ｐ２Ｐグループ内の端末装置を検索対象として、当該配布ファイルを保持する端末装置の検索を実行する。検索がヒットした場合は、端末装置は、検索によって特定された端末装置から、当該配布ファイルを取得する。検索がミスヒットの場合は、端末装置は、配布サーバから当該配布ファイルを取得する。
【０００７】
このように、特許文献１に開示のファイル配布システムでは、端末装置間でファイルのやり取りが行われるので、配布サーバへのアクセスが軽減され、上述した問題は解消されると考えられる。
【０００８】
また、特許文献２は、配布サーバと複数の端末装置とを備え、これらが、配布サーバをルートとしたツリー構造を構築する、ファイル配布システムを開示している。特許文献２に開示のファイル配布システムでは、ファイルは、上層の端末装置から下層の端末装置へと送信されるので、配布サーバへのアクセスは軽減される。特許文献２に開示のファイル配布システムを用いた場合も、特許文献１に開示のファイル配布システムを用いた場合と同様に、上述した問題は解消されると考えられる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００６−２８５６０１号公報
【特許文献２】特開２００８−０３５３３７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に開示のファイル配布システムには、一部の端末装置に負荷が集中するという問題がある。これは、グループ内で最初にファイルを取得した端末装置に、他の端末装置からのアクセスが集中してしまうからである。
【００１１】
更に、特許文献１に開示のファイル配布システムでは、端末装置が保持しているファイルが多ければ多い程、別の端末装置がファイル取得にかかる時間の短縮化は図られるが、この場合は端末装置の記憶容量が圧迫されるという問題が発生する。また、逆に、端末装置が保持する配布ファイルを少なくすると、ファイル取得にかかる時間が長くなるという別の問題が発生してしまう。
【００１２】
これに対して、特許文献２に開示のファイル配布システムでは、上述したように、配布ファイルは上層の端末装置から下層の端末装置へと送信されるので、一部の端末装置に負荷が集中するという問題が発生することはないと考えられる。しかしながら、特許文献２に開示のファイル配布システムは、下層の端末装置からの要求に応じてファイルを配布することを目的としたシステムではないため、クライアントコンピュータからの要求に応じてファイルを配布するシステムには不適である。
【００１３】
一方、仮に、特許文献２に開示のファイル配布システムが、下層の端末装置からの要求に応じたファイル配布が可能となるように構築されている態様を想定する。そして、ファイルの配布を求めた端末装置の直上の端末装置が、求められたファイルを有していないとする。この場合、下層の端末装置は、ツリーを辿り、更に上層に位置する端末装置又は配布サーバにファイル配布を要求する必要がある。更に、場合によってはサブツリーが異なる端末装置にファイル配布を要求する必要がある。このため、特許文献２に開示のファイル配布システムにおいても、特許文献１に開示のファイル配布システムと同様に、ファイル取得にかかる時間が長くなるという問題が発生してしまう。
【００１４】
本発明の目的は、上記問題を解消し、端末装置間でのファイル配布が可能なシステムにおいて、端末装置の記憶容量の圧迫を抑制しつつ、端末装置がファイル取得にかかる時間の短縮化を図り得る、ファイル配布システム、サーバ装置、ファイル配布方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明におけるファイル配布システムは、複数の端末装置と、前記複数の端末装置に配布ファイルを送信するサーバ装置とを備え、
前記サーバ装置は、
前記複数の端末装置を、それぞれで利用された前記配布ファイルの公開日に基づいて、グループに分割し、更に、前記グループ毎に、当該グループに属する端末装置によってツリー構造を構築し、
そして、前記複数の端末装置のいずれかから、前記配布ファイルの送信が求められた場合に、求められた前記配布ファイルを有する前記グループを特定し、前記配布ファイルの送信を求めた端末装置を、特定した前記グループの前記ツリー構造に組み入れ、
前記配布ファイルの送信を求めた端末装置に対して、特定した前記グループ内の当該端末装置の上層に位置する端末装置から、求められた配布ファイルを取得するように指示を行
う、ことを特徴とする。
【００１６】
上記目的を達成するため、本発明におけるサーバ装置は、複数の端末装置に配布ファイルを送信するサーバ装置であって、
前記複数の端末装置を、それぞれで利用された前記配布ファイルの公開日に基づいて、グループに分割し、更に、前記グループ毎に、当該グループに属する端末装置によってツリー構造を構築し、
そして、前記複数の端末装置のいずれかから、前記配布ファイルの送信が求められた場合に、求められた前記配布ファイルを有する前記グループを特定し、前記配布ファイルの送信を求めた端末装置を、特定した前記グループの前記ツリー構造に組み入れる、端末管理部と、
前記配布ファイルの送信を求めた端末装置に対して、特定した前記グループ内の当該端末装置の上層に位置する端末装置から、求められた配布ファイルを取得するように指示を行う、接続先通知部と、を備えていることを特徴とする。
【００１７】
また、上記目的を達成するため、本発明におけるファイル配布方法は、複数の端末装置に配布ファイルを送信するための方法であって、
（ａ）前記複数の端末装置を、それぞれで利用された前記配布ファイルの公開日に基づいて、グループに分割する、ステップと、
（ｂ）前記グループ毎に、当該グループに属する端末装置によってツリー構造を構築する、ステップと、
（ｃ）前記複数の端末装置のいずれかから、前記配布ファイルの送信が求められた場合に、求められた前記配布ファイルを有する前記グループを特定し、前記配布ファイルの送信を求めた端末装置を、特定した前記グループの前記ツリー構造に組み入れる、ステップと、
（ｄ）前記（ｃ）のステップの実行後に、前記配布ファイルの送信を求めた端末装置に対して、特定した前記グループ内の当該端末装置の上層に位置する端末装置から、求められた配布ファイルを取得するように指示を行う、ステップと、を有することを特徴とする。
【００１８】
更に、上記目的を達成するため、本発明におけるプログラムは、複数の端末装置への配布ファイルの送信をコンピュータによって実行するためのプログラムであって、
前記コンピュータに、
（ａ）前記複数の端末装置を、それぞれで利用された前記配布ファイルの公開日に基づいて、グループに分割する、ステップと、
（ｂ）前記グループ毎に、当該グループに属する端末装置によってツリー構造を構築する、ステップと、
（ｃ）前記複数の端末装置のいずれかから、前記配布ファイルの送信が求められた場合に、求められた前記配布ファイルを有する前記グループを特定し、前記配布ファイルの送信を求めた端末装置を、特定した前記グループの前記ツリー構造に組み入れる、ステップと、
（ｄ）前記（ｃ）のステップの実行後に、前記配布ファイルの送信を求めた端末装置に対して、特定した前記グループ内の当該端末装置の上層に位置する端末装置から、求められた配布ファイルを取得するように指示を行う、ステップと、を実行させる、ことを特徴とする。
【発明の効果】
【００１９】
以上の特徴により、本発明によれば、端末装置間でのファイル配布が可能なシステムにおいて、端末装置の記憶容量の圧迫を抑制しつつ、端末装置がファイル取得にかかる時間の短縮化を図ることができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、本発明の実施の形態におけるファイル配布システムの全体構成を示す図である。
【図２】図２は、本発明の実施の形態におけるファイル配布システムを構成するサーバ装置及び端末装置の構成を示すブロック図である。
【図３】図３は、本発明の実施の形態においてサーバ装置によって保持される情報の一例を示す図である。
【図４】図４は、本発明の実施の形態におけるファイル配布システムの動作を示すアクティビィティ図である。
【図５】図５は、図４に示したツリー再構築処理におけるファイル配布システムの動作を具体的に示すアクティビィティ図である。
【発明を実施するための形態】
【００２１】
（実施の形態）
以下、本発明の実施の形態におけるファイル配布システム、サーバ装置、ファイル配布方法、及びプログラムについて、図１〜図４を参照しながら説明する。最初に、本実施の形態におけるファイル配布システム及びファイル配布装置の構成を図１及び図２を用いて説明する。図１は、本発明の実施の形態におけるファイル配布システムの全体構成を示す図である。図２は、本発明の実施の形態におけるファイル配布システムを構成するサーバ装置及び端末装置の構成を示すブロック図である。
【００２２】
図１に示すように、ファイル配布システム３は、サーバ装置１と、複数の端末装置２とを備えている。サーバ装置１は、端末装置２に配布ファイルを送信する。但し、後述するように、配布ファイルは、一部の端末装置２に対しては、サーバ装置１から直接送信されるが、他の端末装置２に対しては、端末装置２間の通信によって送信される。また、本実施の形態では、端末装置２としてはパーソナルコンピュータ（ＰＣ）が用いられている。このため、図１では、端末装置は「ＰＣ」と表されている。
【００２３】
図２に示すように、サーバ装置１は、接続先通知部１５と、端末管理部１６とを備えている。端末管理部１６は、複数の端末装置２を、それぞれで利用された配布ファイルの公開日に基づいて、幾つかのグループに分割する。また、端末管理部１６は、グループ毎に、各グループに属する端末装置２によってツリー構造（図１参照）を構築する。端末管理部１６は、各端末装置２をノードとするツリー構造によって、複数の端末装置２を管理している。
【００２４】
なお、図１に示すように、グループ毎のツリー構造は、サーバ装置１の直下のノード（端末装置２）をルート（root）としていることから、サーバ装置１をルートとするツリー構造の「サブツリー」と捉えることもできる。このため、以降の説明では、グループ毎のツリー構造を「サブツリー」と表すことがある。図１には、サブツリー１〜サブツリー４が示されている。
【００２５】
更に、端末管理部１６は、いずれかの端末装置２から、配布ファイルの送信が求められた場合は、求められた配布ファイルを有するグループを特定し、配布ファイルの送信を求めた端末装置を、このグループのツリー構造に組み入れる。
【００２６】
接続先通知部１５は、配布ファイルの送信を求めた端末装置２に対して、特定したグループ内の当該端末装置２の上層に位置する端末装置２から、求められた配布ファイルを取得するように指示を行う。本実施の形態では、接続先通知部１５は、配布ファイルの送信を求めた端末装置２の親ノードを、配布ファイルの取得先（接続ノード）として通知し、通知した親ノードから配布ファイルを取得するように指示を行う。
【００２７】
このように、ファイル配布システム３は、端末装置２間での配布ファイルの送信が可能なシステムである。そして、端末装置２間での配布ファイルの送信はグループ単位で行われるので、グループ内で配布元となる端末装置２は、他のグループ内で保持される配布ファイルを保持する必要がない。このため、ファイル配布システム３によれば、端末装置２の記憶容量の圧迫が抑制され、同時に、端末装置２がファイル取得にかかる時間の短縮化も図られる。
【００２８】
ここで、図１及び図２に加えて図３を用いて、ファイル配布システム３、サーバ装置１、及び端末装置２の構成を更に具体的に説明する。図３は、本発明の実施の形態においてサーバ装置によって保持される情報の一例を示す図である。また、以降の説明は、配布ファイルが、端末装置２に対して適用されるパッチである場合について説明する。なお、本実施の形態では、配布ファイルは、パッチ以外の配布ファイル、例えば、ウィルスパターン定義ファイル、コンテンツファイル等であっても良い。
【００２９】
本実施の形態では、端末管理部１６は、サーバ直下のノードをルートとする各サブツリーに対して、各サブツリーを一意に識別するためのサブツリーＩＤを付与し、サブツリーＩＤによってサブツリーを管理している。また、端末管理部１６は、各端末装置２における適用済みの最新のパッチの公開日からの経過時間（以下、単に「経過時間」とする。）に基づき、グループ分割を行う。
【００３０】
また、本実施の形態では、グループ（サブツリー）毎に、グループに所属可能な端末装置２の経過時間について上限が設定されている。端末管理部１６は、各端末装置２の経過時間が、各グループに設定されている上限以下となるようにグループ分割を行う。また、このようにして設定された各グループにおいて、当該グループに所属する端末装置２が有する適用済みのパッチは、当該グループにおいて共有されるパッチとなる。
【００３１】
更に、端末装置２では、パッチは、一旦、端末装置のキャッシュメモリに格納され、その後、端末装置２に適用される。よって、グループで共有されるパッチとは、グループを構成する端末装置のキャッシュメモリに格納されているパッチをいう。また、共有されるパッチは、グループを構成する全ての端末装置によって保持されていても良いし、グループを構成する一の端末装置のみによって保持されていても良い。例えば、サブツリーのルートとなる端末装置２のみが、共有されるパッチを保持し、他の端末装置はパッチの適用後にキャッシュメモリからパッチを削除する態様であっても良い。
【００３２】
具体的には、図１に示す例において、サブツリー１〜サブツリー４それぞれに上限として、「３日」、「１週間」、「１カ月」、「無期限」が設定されているとする。この場合、各サブツリーで共有されるパッチファイルに対して認められる経過時間の範囲（以下「共有されるパッチファイルの範囲」）は、それぞれ「公開日から３日以内」、「公開日から１週間以内」、「公開日から１カ月」、「公開日から無期限」となる。従って、公開日から４日以内に全てのパッチが適用されている端末装置は、サブツリー２に所属することになる。
【００３３】
また、本実施の形態では、端末管理部１６は、端末装置２が適用済みでないパッチの送信を求めると、この端末装置２における、適用済みでないパッチのうち、公開日が最も古いパッチを特定する。そして、端末管理部１６は、特定されたパッチの公開日（最も古い公開日）からの経過時間が上限以下となり、且つ、上限の値が最も小さくなるようにグループを選択し、選択したグループのツリー構造に、要求を行った端末装置２を組み入れる。
【００３４】
言い換えると、端末管理部１６は、端末装置２が未適用のパッチを全て取得でき、且つ、端末装置２が所属することとなるグループの「共有されるパッチの範囲」が小さくなるように、所属先のサブツリー（グループ）を選択する。その後、端末管理部１６は、選択したグループのツリー構造に、適用済みでないパッチを求めた端末装置２を組み入れる。
【００３５】
具体的には、図１の例において、２週間前に公開された一部のパッチのみが適用済みでない端末装置２が、この適用済みでないパッチの送信を要求したとする。この場合、端末管理部１６は、当該端末装置２をサブツリー３に組み入れる。このような端末管理部１６による処理により、サブツリー毎に共有が必要なパッチは最小限となるため、端末装置２がキャッシュとして保持するパッチのサイズを小さくすることができる。
【００３６】
また、図２に示すように、本実施の形態では、サーバ装置１は、接続先通知部１５及び端末管理部１６に加えて、パッチ削除指示部１７と、パッチ情報管理部１８と、パッチ送信部１９と、記憶部１０とを備えている。また、記憶部１０は、ツリー情報保管部１１と、端末情報保管部１２と、パッチ情報保管部１３と、パッチ保管部１４とを備えている。
【００３７】
記憶部１０において、ツリー情報保管部１１は、サブツリー毎に、各サブツリーの情報（以下「サブツリー情報」）を格納している。図３に示すように、サブツリー情報には、各サブツリーを一意に識別するための「サブツリーＩＤ」、及びサブツリー毎の「共有されるパッチの範囲」が含まれる。
【００３８】
また、記憶部１０において、端末情報保管部１２は、ファイル配布システム３上に存在する端末装置２毎の情報（以下「端末情報」）を格納している。図３に示すように、端末情報には、端末装置２を一意に識別するための「端末ＩＤ」、端末装置２に付与されている「ＩＰアドレス」、端末装置２で未適用のパッチのＩＤのリスト、端末装置２が所属するサブツリーの「所属サブツリーＩＤ」、及び端末装置２の親ノードとなる端末装置のＩＤが含まれる。
【００３９】
更に、記憶部１０において、パッチ情報保管部１３は、ファイル配布システム３で配布対象となるパッチ毎の情報（以下「パッチ情報」）を格納している。図３に示すように、パッチ情報には、パッチを一意に識別するための「パッチＩＤ」、パッチの「ハッシュ値」、パッチが公開された日を表す「公開日」、及び「適用条件」が含まれる。なお、パッチ情報には、公開日の代わりに、パッチが公開された日及び時を表す「公開日時」が含まれていても良い。また、適用条件は、パッチを端末装置２に適用する必要があるかどうかを調査するための条件である。
【００４０】
また、記憶部１０において、パッチ保管部１４は、配布対象となるパッチを格納している。サーバ装置１から端末装置２へのパッチの送信が必要になった場合は、パッチ送信部１９が、パッチ保管部１４からパッチを取り出し、取り出したパッチを端末装置２へと送信する。
【００４１】
パッチ削除指示部１７は、端末装置２に対して、端末装置２がキャッシュメモリに保持しているパッチのうち、削除が可能なパッチを通知する。つまり、パッチ削除指示部１７は、先ず、各端末装置２について、この端末装置２の有するパッチの公開日からの経過期間が、この端末装置２が所属するグループに設定されている上限を超えているかどうかを判定する。そして、パッチ削除指示部１７は、判定の結果、超えている場合に、端末装置２に、公開日からの経過期間が上限を超えているパッチを削除させる。
【００４２】
また、パッチ情報管理部１８は、公開されているパッチに関する情報（パッチ情報）を管理している。そして、パッチ情報管理部１８は、端末装置２がパッチ情報を要求すると
、パッチ情報保管部１３からパッチ情報を取り出し、これを、要求を行った端末装置２に送信する。これにより、端末装置２は、後述するように、パッチ情報に基づき、適用の必要のあるパッチが存在しているかどうかを判断し、存在している場合は、未適用のパッチの送信をサーバ装置１に対して要求する。
【００４３】
続いて、図２を用いて端末装置２の構成を説明する。図２に示すように、端末装置２は、接続先取得部２３と、パッチ適用状況調査部２４と、パッチ削除部２５と、パッチ情報取得部２６と、パッチ送受信部２７と、記憶部２０とを備えている。記憶部２０は、更に、パッチ情報保管部２１と、パッチ保管部２２とを備えている。
【００４４】
接続先取得部２３は、サーバ装置１から、パッチを取得するための接続先ノードが指示された通知を取得する。本実施の形態では、接続先取得部２３は、サーバ装置１の接続先通知部１５が送信する通知を受信する。
【００４５】
パッチ情報取得部２６は、サーバ装置１に対して、パッチの適用状況を調査するため、パッチ情報を要求し、これをサーバ装置１から取得する。本実施の形態では、パッチ情報取得部２６は、サーバ装置１のパッチ情報管理部１８が送信したパッチ情報を受信し、受信したパッチ情報を記憶部２０に送る。パッチ情報は、記憶部２０においては、パッチ情報保管部２１に格納される。
【００４６】
パッチ適用状況調査部２４は、パッチ情報取得部２６が取得したパッチ情報に基づいて、未適用であって、適用の必要あるパッチの存在の有無を調査する。そして、パッチ適用状況調査部２４は、調査結果から、パッチの適用状況を特定するパッチ適用情報を作成し、これをサーバ装置１に送信する。また、パッチ適用状況調査部２４は、適用の必要のあるパッチが存在している場合は、パッチ適用情報によって、未適用のパッチの送信をサーバ装置１に要求する。サーバ装置１では、要求があると、上述したように端末管理部１６による処理が実行される。
【００４７】
パッチ削除部２５は、サーバ装置１のパッチ削除指示部１７からの通知に従って、キャッシュとして保存しているパッチを削除する。また、パッチ送受信部２７は、親ノード又はサーバ装置１から送信されるパッチを受信し、受信したパッチを記憶部２０に送信する。記憶部２０においては、パッチ保管部２２が、受信したパッチを格納する。また、パッチ送受信部２７は、端末装置２が子ノードからパッチの送信を要求された場合は、パッチ保管部２２からパッチを取得し、取得したパッチを要求元の子ノードに送信する。
【００４８】
次に、ファイル配布システム３の動作について図４及び図５を用いて説明する。最初に図４を用いてファイル配布システム３の全体の動作を説明する。図４は、本発明の実施の形態におけるファイル配布システムの動作を示すアクティビィティ図である。以下の説明においては、適宜図１及び図２を参酌する。また、本実施の形態では、ファイル配布システム３を動作させることによって、ファイル配布方法が実施される。よって、本実施の形態におけるファイル配布方法の説明は、以下のファイル配布システムの動作説明に代える。
【００４９】
図４に示すように、先ず、端末装置２において、パッチ情報取得部２６が、サーバ装置１のパッチ情報管理部１８に対して、パッチ情報の送信を要求する（ステップＢ１）。ステップＢ１は、例えば、端末装置２の起動時、又は端末装置２におけるユーザのログオン時等において、定期的に実行される。
【００５０】
次に、サーバ装置１において、パッチ情報管理部１８は、パッチ情報保管部１３にアクセスしてパッチ情報を取得し、取得したパッチ情報を、端末装置２のパッチ情報取得部２
６に送信する（ステップＡ１）。ステップＡ１の実行により、端末装置２では、パッチ情報取得部２６が、送信されたパッチ情報をパッチ情報保管部２１に格納する。なお、ステップＡ１において、パッチ情報管理部１８は、パッチ情報保管部１３に格納されている全てのパッチ情報を送信しても良い。また、ステップＡ１において、パッチ情報管理部１８は、端末装置２のＯＳの種類毎に、送信するパッチ情報を制限する等しても良い。
【００５１】
次に、端末装置２において、パッチ適用状況調査部２４は、ステップＡ１によってパッチ保管部２２に格納されたパッチ情報を取り出す。そして、パッチ適用状況調査部２５は、取り出したパッチ情報に含まれる適用条件（図３参照）に基づいて、端末装置２に適用する必要のあるパッチの存在有無を調査する（ステップＢ２）。
【００５２】
続いて、パッチ適用状況調査部２４は、ステップＢ２によって得られた調査結果からパッチ適用情報を作成し、これを、サーバ装置１の端末管理部１６に送信する（ステップＢ３）。また、ステップＢ３では、パッチ適用状況調査部２４は、未適用であって、適用の必要があるパッチが存在する場合は、パッチ適用情報によってパッチの送信をサーバ装置１に要求する。
【００５３】
次に、サーバ装置１において、端末管理部１６は、ステップＢ３で送信された端末装置２のパッチ適用情報（未適用パッチの送信要求）に基づいて、サーバ装置１をルートとするツリーを再構築する（ステップＡ２）。具体的には、ステップＢ３によってパッチ適用情報を送信した端末装置２を組み入れるツリーを特定し、この端末装置２を特定したツリーに組み入れる。なお、ステップＡ２については、図５を用いて後述する。
【００５４】
更に、端末管理部１６は、ステップＡ２で受け取ったパッチ適用情報に基づいて、未適用のパッチが存在するかどうかを判定する。そして、未適用のパッチが存在する場合は、サーバ装置１によりステップＡ３が実行され、未適用のパッチが存在しない場合は、サーバ装置１によりステップＡ４が実行される。
【００５５】
ステップＡ３では、サーバ装置１の接続先通知部１５は、端末情報保管部１２から、端末情報（図３参照）を取り出し、取り出した端末情報から、ステップＢ１でパッチ情報の送信を要求した端末装置２の親ノードを特定する。そして、接続先通知部１５は、特定した親ノードを接続先ノードとした通知を、端末装置２の接続先取得部２３に送信して、接続先ノードからのパッチのダウンロードを指示する。
【００５６】
次に、ステップＡ３の実行後、端末装置２において、パッチ送受信部２７は、ステップＡ３で通知された接続先ノードのパッチ送受信部２７に対して、ステップＢ２で未適用と判定され、且つ、パッチ保管部２２に格納されていないパッチを要求する（ステップＢ４）。ステップＢ４の実行により、パッチのダウンロードが行われる。
【００５７】
なお、ステップＢ４において、要求を受けた親ノードは、要求されたパッチを所持していれば、要求元の端末装置２に、パッチを送信する。一方、要求を受けた親ノードは、要求されたパッチを所持していなければ、更にその上層に位置する親ノードに対して、パッチを送信するよう要求する。
【００５８】
また、ステップＢ４において、パッチを受け取ったパッチ送受信部２７は、受け取ったパッチをパッチ保管部２２に格納する。更に、ステップＢ４において、パッチ送受信部２７は、通知された接続先ノードへのアクセスに失敗した場合は、サーバ装置の接続先通知部１５に対して、別の接続先ノード（親ノード）を要求する。これにより、新規の接続先ノードが通知された場合は、パッチ送受信部２７は、新規に通知された接続先ノードに対してパッチを要求する。
【００５９】
また、ステップＡ４では、サーバ装置１のパッチ削除指示部１７は、ツリー情報保管部１１にアクセスし、ステップＢ１でパッチ情報を要求した端末装置２のグループ（サブツリー）で共有されるパッチの範囲を取得する。そして、パッチ削除指示部１７は、この端末装置２がキャッシュメモリに保持しているパッチのうち、削除が可能なパッチを特定し、特定したパッチを削除するように端末装置２のパッチ削除部２５に対して指示を行う。なお、本実施の形態では、ステップＡ４において、パッチ削除指示部１７は、取得した「共有されるパッチの範囲」を特定する情報を端末装置２に送信することができる。
【００６０】
次に、端末装置２において、パッチ削除部２５は、サーバ装置１のパッチ削除指示部１７からパッチ削除の指示を受けると、指示されたパッチの削除を実行する（ステップＢ５）。
【００６１】
また、ステップＢ５では、パッチ削除部２５が、ステップＡ４で送信された「共有されパッチの範囲」と、パッチ情報保管部２１に保管されている「パッチ情報」とから、公開日からの経過期間が「共有されるパッチの範囲」の範囲外となっているパッチを確認しても良い。この場合、パッチ削除部２５は、公開日からの経過期間が「共有されるパッチの範囲」の範囲外であることを確認できたパッチを削除する。なお、ステップＢ５におけるパッチの削除は、削除対象となるパッチが、パッチ保管部２２に存在する場合にのみ行われる。
【００６２】
ここで、図４に示したツリーの再構築処理（ステップＡ２）について図５を用いて更に具体的に説明する。図５は、図４に示したツリー再構築処理におけるファイル配布システムの動作を具体的に示すアクティビィティ図である。
【００６３】
図５に示すように、先ず、サーバ装置１において、端末管理部１６は、端末装置２のパッチ適用状況調査部２４から、端末装置２のパッチ適用状況を特定するパッチ適用情報を受信する（ステップＣ１）。本実施の形態では、パッチ適用情報には、端末装置２における、端末ＩＤ、ＩＰアドレス、未適用パッチのＩＤのリストが含まれている。
【００６４】
次に、端末管理部１６は、端末情報保管部１２において、ステップＣ１で受信したパッチ適用情報に含まれる端末ＩＤが、エントリとして格納されているか（登録されているか）どうかを判定する。判定の結果、端末ＩＤが登録されていない場合は、ステップＣ２が実行され、端末ＩＤが登録されている場合は、ステップＣ３が実行される。
【００６５】
ステップＣ２では、端末管理部１６は、端末装置２を新規のエントリとして登録するため、端末装置２の端末情報（図３参照）を端末情報保管部１２に格納させる。また、端末管理部１６は、新規の端末装置２を「共有されるパッチの範囲」が「全て」となっているサブツリー４に組み入れる。
【００６６】
このとき、端末情報において、端末ＩＤ及びＩＰアドレスとしては、ステップＢ１で受信された端末ＩＤ及びＩＰアドレスが用いられる。また、端末情報において、未適用パッチのＩＤのリストは「ＩＤ無し」、所属サブツリーのサブツリーＩＤは「共有されるパッチの範囲が全てとなっているサブツリーのＩＤ」、親ノードの端末ＩＤは「所属サブツリーに含まれる任意のノードのＩＤ」とされる。
【００６７】
ステップＣ３では、端末管理部１６は、端末情報保管部１２に格納されている端末情報の未適用パッチのＩＤのリストを、ステップＣ１で受信したパッチ適用情報に基づいて更新する。
【００６８】
次に、端末管理部１６は、端末装置２が所属するべきグループ（サブツリー）を特定する（ステップＣ４）。具体的には、ステップＣ４では、端末管理部１６は、端末装置２で適用済みでないパッチの内、最も公開日が古いパッチを特定する。更に、端末管理部１６は、ツリー情報保管部１１に格納されているサブツリー情報に基づき、サブツリーの内、適用済みでないパッチの公開日を「共有されるパッチの範囲」内に含み、且つ、「共有されるパッチの範囲」が最も小さいサブツリーを特定する。そして、端末管理部１６は、特定したサブツリーのグループを、端末装置２が所属するべきグループに設定する。
【００６９】
続いて、端末管理部１６は、端末装置２が現在所属しているサブツリーと、ステップＣ４で特定したサブツリーとが同一であるかどうかを判定する。判定の結果、同一である場合は、ステップＡ２における処理が完了する。一方、判定の結果、異なる場合は、ステップＣ５が実行される。
【００７０】
ステップＣ５では、端末管理部１６は、処理対象となっている端末装置２の端末情報を端末情報保管部１２から取り出し、取り出した端末情報の所属サブツリーＩＤを、ステップＣ４で特定したサブツリーのサブツリーＩＤに変更する。更に、端末管理部１６は、同端末情報の親ノードの端末ＩＤを、変更後のサブツリーに所属する任意のノードの端末ＩＤに変更する。
【００７１】
次に、端末管理部１６は、ステップＣ５で端末装置２が脱退したサブツリーに対して、サブツリーの再構築を行う（ステップＣ６）。具体的には、端末管理部１６は、脱退した端末装置２の子ノードから任意のノードを一つ選択し、選択した子ノードの端末情報を書き換え、これを、脱退した端末装置２の親ノードの子ノードとする。更に、端末管理部１６は、先の選択で選択されなかったノードの端末情報を書き換え、この（又はこれらの）ノードの親ノードを選択されたノードとする。以上で、ステップＡ２における処理は完了する。
【００７２】
また、本発明の実施の形態におけるプログラムは、コンピュータに、図４に示すステップＡ１〜Ａ４、図５に示すステップＣ１〜Ｃ６を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態におけるサーバ装置１を実現することができる。この場合、コンピュータのＣＰＵ（Central Processing Unit）は、接続先通知部１５、端末管理部１６、パッチ削除指示部１７、パッチ情報管理部１８、パッチ送信部１９として機能し、処理を行なう。更に、コンピュータに備えられたハードディスク等の記憶装置は、記憶部１０として機能する。
【００７３】
更に、本実施の形態では、コンピュータに、図４に示すステップＢ１〜Ｂ５を実行させるプログラムをインストールし、これを実行すれば、端末装置２を実現することができる。この場合、コンピュータのＣＰＵは、接続先取得部２３、パッチ適用状況調査部２４、パッチ削除部２５、パッチ情報取得部２６、及びパッチ送受信部２７として機能し、処理を行う。また、コンピュータに備えられたハードディスク等の記憶装置は、記憶部２０として機能する。
【００７４】
以上のように、本実施の形態によれば、サブツリー構成するグループ内でパッチの送信が行われるので、各端末装置２はグループの条件に合致するファイルのみを有していれば良い。更に、不要なパッチかどうかが判断され、不要と判断されたパッチは端末装置２から削除される。このため、各端末装置２において、必要となる記憶容量を節約することができる。また、パッチを求める端末装置２は、親ノードからパッチを取得できるので、パッチ取得にかかる時間の軽減も図られる。
【産業上の利用可能性】
【００７５】
以上のように、本発明によれば、端末装置間でのファイル配布が可能なシステムにおいて、端末装置の記憶容量の圧迫を抑制でき、しかも、端末装置がファイル取得にかかる時間の短縮化も図られる。本発明は、ファイル配布システム、これを構成するサーバ装置に有用である。
【符号の説明】
【００７６】
１  サーバ装置
２  端末装置
３  ファイル配布システム
１０  サーバ装置の記憶部
１１  ツリー情報保管部
１２  端末情報保管部
１３  パッチ情報保管部
１４  パッチ保管部
１５  接続先通知部
１６  端末管理部
１７  パッチ削除指示部
１８  パッチ情報管理部
１９  パッチ送信部
２０  端末装置の記憶部
２１  パッチ情報保管部
２２  パッチ保管部
２３  接続先取得部
２４  パッチ適用状況調査部
２５  パッチ削除部
２６  パッチ情報取得部
２７  パッチ送受信部
【図１】
2011107907.tif 000003
【図２】
2011107907.tif 000004
【図３】
2011107907.tif 000005
【図４】
2011107907.tif 000006
【図５】
2011107907.tif 000007