(57)【特許請求の範囲】
【請求項１】
複数の対象装置がそれぞれ保持する、異なる複数の第１のデータに関する情報と、第２のデータに関する情報とを保持する情報管理手段と、
前記情報管理手段が保持する各情報を用いて、複数の異なる第１のデータのうち、いずれか１以上の第１のデータと、第２のデータとの間の差分のサイズに基づいて、前記第２のデータに更新するいずれかの前記第１のデータを特定し、
当該特定した前記第１のデータを前記第２のデータに更新可能な差分情報を少なくとも含む配布データを、通信ネットワークを介して提供する
更新処理手段と、を備える
データ提供装置。
【請求項２】
前記更新処理手段は、
前記第１のデータの更新に関する更新通知を送信し、
当該更新通知に応じて１以上の前記対象装置が作成した、前記対象装置が保持するいずれかの第１のデータを特定可能なデータ特定情報を含む情報を受信し、
当該データ特定情報を用いて特定したいずれかの前記第１のデータと、前記第２のデータとの間の差分のサイズに基づいて、前記第２のデータに更新する前記第１のデータを特定し、
前記差分情報と、当該特定した前記第１のデータに関する前記データ特定情報とを少なくとも含む前記配布データを提供する
請求項１に記載のデータ提供装置。
【請求項３】
前記データ特定情報は、第１のデータに基づいて算出されたハッシュ値である、
請求項２に記載のデータ提供装置。
【請求項４】
前記更新処理手段は、複数の異なる前記第１のデータのうち、第２のデータとの間の差分のサイズが最も小さい前記第１のデータを特定する、
請求項１乃至請求項３の何れかに記載のデータ提供装置。
【請求項５】
データ提供装置が、
複数の対象装置がそれぞれ保持する、異なる複数の第１のデータのうちのいずれか１以上の第１のデータと、第２のデータとの間の差分のサイズに基づいて、前記第２のデータに更新するいずれかの前記第１のデータを特定し、
当該特定した前記第１のデータを前記第２のデータに更新可能な差分情報を少なくとも含む配布データを、通信ネットワークを介して提供する
データ提供方法。
【請求項６】
サーバ装置として機能するコンピュータに、
複数の対象装置がそれぞれ保持する、異なる複数の第１のデータのうちのいずれか１以上の第１のデータと、第２のデータとの間の差分のサイズに基づいて、前記第２のデータに更新するいずれかの前記第１のデータを特定する処理と、
当該特定した前記第１のデータを前記第２のデータに更新可能な差分情報を少なくとも含む配布データを、通信ネットワークを介して提供する処理と、を実行させる
コンピュータ・プログラム。
【請求項７】
通信ネットワークを介してデータ提供装置と接続可能な更新対象装置であって、
異なる複数の第１のデータのうち、いずれか１以上の第１のデータを保持するデータ保持手段と、
前記データ提供装置が送信した更新通知に基づいて、自装置が保持する前記第１のデータを特定可能なデータ特定情報を生成する更新通知処理手段と、
自装置が、前記データ提供装置が配布する配布データに含まれる前記データ特定情報により特定される前記第１のデータを保持する場合、当該配布データに含まれる、前記第１のデータを第２のデータに更新可能な差分情報を用いて、自装置が保持する前記第１のデータを前記第２のデータに更新し、
自装置が、前記データ特定情報により特定される前記第１のデータを保持しない場合、他の更新対象装置から、前記第２のデータを取得する
更新データ処理手段と、を備える
更新対象装置。
【請求項８】
通信ネットワークに接続され、異なる複数の第１のデータのうちいずれか１以上の第１のデータを保持する複数の対象装置と、
複数の前記対象装置がそれぞれ保持する前記第１のデータと、第２のデータとの間の差分のサイズに基づいて、前記第２のデータに更新するいずれかの前記第１のデータを特定し、当該特定した前記第１のデータを前記第２のデータに更新可能な差分情報を少なくとも含む配布データを前記通信ネットワークを介して提供可能なデータ提供装置と、を備え、
前記特定された前記第１のデータを保持する前記対象装置は、前記差分情報を用いて自装置が保持する前記第１のデータを更新する
データ提供システム。
【請求項９】
前記データ提供装置は、
前記第１のデータの更新に関する更新通知を送信し、
当該更新通知に応じて前記対象装置が作成した、前記対象装置が保持するいずれかの第１のデータを特定可能なデータ特定情報を含む情報を受信し、
当該データ特定情報を用いて特定した複数の異なる前記第１のデータと、前記第２のデータとの間の差分のサイズに基づいて、前記第２のデータに更新するいずれかの前記第１のデータを特定し、
前記差分情報と、当該特定した前記第１のデータに関する前記データ特定情報とを少なくとも含む前記配布データを提供する
請求項８に記載のデータ提供システム。
【請求項１０】
前記配布データに含まれる前記データ特定情報により特定される前記第１のデータを保持する前記対象装置である第１の対象装置は、当該配布データに含まれる前記差分情報を用いて、自装置が保持する前記第１のデータを前記第２のデータに更新し、当該第１のデータを他の前記対象装置に提供し、
前記データ特定情報により特定される前記第１のデータとは異なる前記第１のデータを保持する前記対象装置である第２の対象装置は、他の前記第１の対象装置から、前記第１のデータが更新された前記第２のデータを取得する
請求項９に記載のデータ提供システム。
【請求項１１】
前記通信ネットワークに接続され、前記対象装置と前記データ提供装置と間に介在する１以上の代表装置を更に備え、
前記代表装置は、
前記データ提供装置から前記更新通知を受信し、
複数の前記対象装置のうち、前記更新通知により更新が通知された前記第１のデータを保持する前記対象装置に対して、前記第１のデータの更新を通知し、
当該通知を受信した前記対象装置が作成した前記データ特定情報を、複数の前記対象装置から受信するとともに、当該データ特定情報のリストを前記データ提供装置に送信し、
当該リストに基づいて前記データ提供装置が作成した前記配布データに含まれる前記データ特定情報を用いて、前記第１の対象装置に対して少なくとも前記差分情報を送信するとともに、前記第２の対象装置に対して、少なくとも前記第１の対象装置を特定可能な情報を送信する
請求項１０に記載のデータ提供システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークを介してデータを提供可能な、データ提供システム等に関する。
【背景技術】
【０００２】
近年、通信ネットワークを介して接続された各種装置に対して、ソフトウェア（ソフトウェア・プログラムを含む）等の各種データを配布（提供）する技術が普及している。例えば各装置が保持するデータを、遠隔地にあるデータを用いて更新する技術として、当該データ全体を送受信する方法や、更新に要する差分情報（差分データ）を送受信する方法（差分転送）等が知られている。これらの方法により、各装置が保持するデータを、遠隔地にあるデータと同期することができる。
【０００３】
差分情報を送受信する方式は、通信ネットワークを介して配布されるデータ（配布データ）の量（あるいはサイズ）を大幅に削減可能である。よって、差分情報を送受信する方式は、例えば、広域ネットワーク（インターネット等）を介してデータを送受信する場合に有用性が高い。
【０００４】
また、近年の通信ネットワークでは、ローカルネットワークに接続された多数の情報通信装置（コンピュータ等）が、ゲートウェイ的な機能を提供する装置を介して、広域ネットワークに接続される構成が増えている。このようなネットワーク構成では、ローカルネットワークに接続された個々の情報通信装置が個別にデータの更新（同期）処理を実行すると、広域ネットワークにおいて大量の差分情報が送受信される可能性がある。これに対して、ゲートウェイ的な機能を提供する装置が、更新に用いられるデータをキャッシュして個別の情報通信装置に配布する技術が知られている。
【０００５】
上記したような、データの配布に関連する技術が、以下の特許文献に開示されている。
【０００６】
特許文献１は、Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）ネットワークを介して修正プログラムを配布するシステムに関する技術を開示する。特許文献１に開示されたシステムにおいては、修正プログラムの適用要否を示す情報をベンダ装置が開示し、修正プログラムを特定する情報をプロバイダ装置が開示する。そして、上記各情報に基づいて、各ユーザ装置が、Ｐ２Ｐネットワークを介して修正プログラムを取得するとともに、他のユーザ装置に係る修正プログラムを提供する。
【０００７】
特許文献２は、家電機器と共にホームネットワークに接続されるホームサーバのアプリケーションを、インターネットを介して更新するシステムに関する技術を開示する。係るシステムにおいては、インターネットを介してホームサーバに接続された情報サーバが、ホームサーバからのアップデート要求に対して、新しいアプリケーションの差分データを提供する。
【０００８】
特許文献３は、クライアント側で提供可能な資源の条件と、サーバが提供するソフトウェアが必要とする資源の条件とを確認し、条件に適合したソフトウェアをサーバからクライアントに転送するシステムに関する技術を開示する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１３−１４９１７０号公報
【特許文献２】特開２００５−３４６１９０号公報
【特許文献３】特開２０００−２５９４２１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
近年、例えば、ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）のように、複数の比較的小規模な装置（小型のコンピュータ、あるいは、単機能デバイス等）により通信ネットワークが構成される場合がある。このような小規模装置により構成された通信ネットワークにおいては、当該小規模装置が保持するデータの更新を制御可能な、高機能な情報通信装置（上記したようなある種のゲートウェイ装置）が利用できるとは限らない。
【００１１】
また、各種装置により送受信される通常の通信データのサイズが小さい場合、経済性等の側面から、通信キャリアとの間の契約帯域が必要最小限に抑えられる場合がある。しかしながら、例えば、複数の小規模装置が一斉にデータを更新するなど、通信量が増大するような状況が発生すると、通信帯域が不足する可能性がある。
【００１２】
特許文献１に開示された技術は、高機能なプロバイダ装置を介して修正データを配布する必要がある。特許文献２に開示された技術は、ホームサーバを介して家電機器用のアプリケーションを取得する技術であり、アップデート要求が大量に発生した場合の通信量については考慮していない。特許文献３に開示された技術は、単にクライアントにおけるソフトウェアの利用可能性を事前にチェックするのみであり、通信量の削減や負荷分散等は考慮されていない。即ち、上記各特許文献に開示された技術は、いずれも上記のような問題点を解決可能な技術ではない。したがって、高機能な情報通信装置が利用できない状況であっても、各種装置に対して配布データを配布する際に必要とされる通信量を削減可能な技術が求められている。
【００１３】
本発明は、上記事情を鑑みてなされたものである。即ち、本発明は、通信ネットワークに接続された装置が保持するデータの更新に用いられる配布データを提供する際の通信量を低減可能なデータ提供システム等を提供することを、主たる目的の一つとする。
【課題を解決するための手段】
【００１４】
上記の目的を達成すべく、本発明の一態様に係るデータ提供システムは、通信ネットワークに接続され、異なる複数の第１のデータのうちいずれか１以上の第１のデータを保持する複数の対象装置と、複数の上記対象装置がそれぞれ保持する上記第１のデータと、第２のデータとの間の差分のサイズに基づいて、上記第２のデータに更新するいずれかの上記第１のデータを特定し、当該特定した上記第１のデータを上記第２のデータに更新可能な差分情報を少なくとも含む配布データを上記通信ネットワークを介して提供可能なサーバ装置と、を備え、上記特定された上記第１のデータを保持する上記対象装置は、上記差分情報を用いて自装置が保持する上記第１のデータを更新する。
【００１５】
また、本発明の一態様に係るデータ提供方法は、サーバ装置が、複数の対象装置がそれぞれ保持する、異なる複数の第１のデータのうちのいずれか１以上の第１のデータと、第２のデータとの間の差分のサイズに基づいて、上記第２のデータに更新するいずれかの上記第１のデータを特定し、当該特定した上記第１のデータを上記第２のデータに更新可能な差分情報を少なくとも含む配布データを通信ネットワークを介して提供し、上記特定された上記第１のデータを保持する上記対象装置が、上記差分情報を用いて自装置が保持する上記第１のデータを更新する。
【００１６】
また、本発明の一態様に係るデータ提供装置は、複数の対象装置がそれぞれ保持する、異なる複数の第１のデータに関する情報と、第２のデータに関する情報とを保持する情報管理手段と、上記情報管理部が保持する上記各情報を用いて、異なる複数の第１のデータのうちのいずれか１以上の第１のデータと、第２のデータとの間の差分のサイズに基づいて、上記第２のデータに更新するいずれかの上記第１のデータを特定し、当該特定した上記第１のデータを上記第２のデータに更新可能な差分情報を少なくとも含む配布データを通信ネットワークを介して提供する、更新処理手段と、を備える。
【００１７】
また、本発明に一態様に係る更新対象装置は、通信ネットワークを介してサーバ装置と接続可能な更新対象装置であって、異なる複数の第１のデータのうち、いずれか１以上の第１のデータを保持するデータ保持手段と、上記サーバ装置が送信した更新通知に基づいて、自装置が保持する上記第１のデータを特定可能なデータ特定情報を生成する更新通知処理手段と、自装置が、上記サーバ装置が配布する配布データに含まれる上記データ特定情報により特定される上記第１のデータを保持する場合、当該配布データに含まれる、上記第１のデータを上記第２のデータに更新可能な差分情報を用いて、自装置が保持する上記第１のデータを上記第２のデータに更新し、自装置が、上記データ特定情報により特定される上記第１のデータを保持しない場合、他の更新対象装置から、上記第２のデータを取得する更新データ処理手段と、を備える。
【００１８】
また、同目的は、上記構成を有するデータ提供システム、データ提供方法、データ提供装置、あるいは、更新対象装置をコンピュータによって実現するコンピュータ・プログラム、及び、そのコンピュータ・プログラムが格納されているコンピュータ読み取り可能な記録媒体等によっても達成される。
【発明の効果】
【００１９】
本発明によれば、通信ネットワークに接続された装置が保持するデータの更新に用いられる配布データを提供する際の通信量を低減することが可能である。
【図面の簡単な説明】
【００２０】
【図１】図１は、本発明の第１の実施形態に係るデータ提供システムの概要を例示する説明図である。
【図２】図２は、本発明の第１の実施形態に係るサーバ装置が保持する、更新対象データに関する情報を例示する説明図である。
【図３】図３は、本発明の第２の実施形態に係るデータ提供システムの概要を例示する説明図である。
【図４】図４は、本発明の第２の実施形態に係るサーバ装置の機能的な構成を例示するブロック図である。
【図５】図５は、本発明の第２の実施形態に係るサーバ装置が保持するソフトウェアに関する情報を例示する説明図である。
【図６】図６は、本発明の第２の実施形態に係る代表装置の機能的な構成を例示するブロック図である。
【図７】図７は、本発明の第２の実施形態に係る代表装置が保持する、対象装置に関する情報を例示する説明図である。
【図８】図８は、本発明の第２の実施形態に係る対象装置の機能的な構成を例示するブロック図である。
【図９】図９は、本発明の第２の実施形態に係るデータ提供システムの動作を例示するシーケンス図（１／２）である。
【図１０】図１０は、本発明の第２の実施形態に係るデータ提供システムの動作を例示するシーケンス図（２／２）である。
【図１１】図１１は、本発明の第３の実施形態に係るデータ提供システムの概要を例示する説明図である。
【図１２】図１２は、本発明の第４の実施形態に係るサーバ装置の機能的な構成を例示するブロック図である。
【図１３】図１３は、本発明の第５の実施形態に係る更新対象装置の機能的な構成を例示するブロック図である。
【図１４】図１４は、本発明の各実施形態におけるデータ提供システムの構成要素を実現可能なハードウェア装置の構成を例示する図面である。
【発明を実施するための形態】
【００２１】
本発明の実施形態に関する説明に先立って、本発明に関する技術的な検討事項等についてより詳細に説明する。
【００２２】
上記したように、近年の通信ネットワーク（以下単に「ネットワーク」と記載する場合がある）は、広域ネットワークと、ローカルネットワークとが、ゲートウェイ的な役割を持つ装置を介して接続される階層的な構成により実現される場合がある。以下、係るゲートウェイ的な役割を持つ装置を、単に「ゲートウェイ装置」と記載する場合がある。当該ゲートウェイ装置は、例えば、比較的高度な処理能力を備えたコンピュータ等により実現されることが多い。上記のような通信ネットワーク構成においては、ローカルネットワークに接続された装置群（コンピュータ等）は、ゲートウェイ装置を介して、広域ネットワークに接続される。以下、ローカルネットワークに接続された装置を「対象装置」と記載する場合がある。
【００２３】
このようなネットワーク構成において、例えば、ローカルネットワークに接続された個々の対象装置が、遠隔地にある他の装置（例えば、サーバ装置等）と個別にデータを同期する場合を想定する。この場合、上記した差分転送の技術を用いたとしても、個々の対象装置が保持するデータの更新に要する差分情報が広域ネットワークを介して転送される。例えば、対象装置群が実質的に同一あるいは類似したデータを保持している場合、同一あるいは類似した差分情報が広域ネットワーク上を何度も転送される状況が発生し得る。これは、非効率的なデータの転送であると考えられる。
【００２４】
このような状況に対して、上記したように、ゲートウェイ装置が差分情報等を含む配布データのキャッシュを保持して、個別の対象装置に配布する技術を採用することが考えられる。係る技術により、広域ネットワークを同一あるいは類似する配布データが何度も転送される状況が緩和され得る。
【００２５】
また、ローカルネットワークに接続された対象装置がある種のコンピュータである場合、それぞれのコンピュータのアーキテクチャ、規模、構成等が異なると、それらの間で実行ファイルやスクリプト等をバイナリイメージとしては共有できない可能性がある。即ち、多様なコンピュータがローカルネットワークに接続される場合、上記した単純なキャッシュ技術（バイナリイメージのキャッシュ）が、転送効率や格納効率の側面から、十分有効に機能しない状況が生じ得る。
【００２６】
このような状況に対して、例えば、上記したゲートウェイ装置が、各アーキテクチャのバイナリイメージを生成する元になるソースコード等を保持し、必要に応じて各アーキテクチャのバイナリイメージを生成する技術を採用することが考えられる。即ち、広域ネットワークにおいては、アーキテクチャに依存しない形式のデータを転送し、ローカルネットワークにおいては、アーキテクチャ毎に適切なデータを配布することが考えられる。この場合、ある種のデータ（例えば、あるバイナリイメージに関するソースコード等）は、広域ネットワークにおいて、アーキテクチャを横断して一度だけ転送される。
【００２７】
上記した各技術は、ゲートウェイ装置が、キャッシュ等を保持する能力、あるいは、バイナリイメージを生成する能力等を備えることを前提としている。しかしながら、ネットワーク構成及び当該ネットワークに接続される対象装置の構成によっては、係る高機能なゲートウェイ装置が必ずしも用意されているとは限らない。例えば、ＩｏＴのような、非常に小型のコンピュータや単機能のデバイスなどで構成されるようなネットワークにおいては、ゲートウェイ装置に対して、上記したような高度な処理能力（機能）を期待できない場合がある。
【００２８】
そこで、ネットワークに接続された各装置に高度な処理能力を期待できない状況であっても、各装置が保持するデータの更新などに必要な通信量（データの転送量）を削減可能とすることが、技術的な検討事項となる。
【００２９】
以下の各実施形態を用いて説明するデータ提供システムにおいて、データを提供する装置（例えば、サーバ装置等）は、各対象装置が保持する更新対象のデータに関する情報に基づいて、更新前後の差分のサイズが小さいデータの組合せを特定する。これにより、各対象装置に高度な処理能力を要求することなく、対象装置に対して提供される差分情報のサイズを低減可能である。
【００３０】
以下、係るデータ提供システムを実現可能な本発明の実施形態について具体的に説明する。以下の各実施形態に記載されている構成は例示であり、本発明の技術範囲はそれらには限定されない。以下の各実施形態におけるデータ提供システムを構成する構成要素の区分け（例えば、機能的な単位による分割）は、データ提供システムを実現可能な一例である。データ提供システムの実装に際しては、以下の例示に限定されず、様々な構成が想定される。即ち、以下の各実施形態におけるデータ提供システムを構成する構成要素は、更に分割されてもよく、１以上の構成要素が統合されてもよい。
【００３１】
以下において説明するデータ提供システムの各構成要素は、単体の装置（物理的あるいは仮想的な装置）を用いて構成されてもよく、複数の離間した装置（物理的あるいは仮想的な装置）を用いて実現されてもよい。データ提供システムの構成要素の間は、有線、無線、又はそれらを適切に組合せた通信ネットワーク（通信回線）により通信可能に接続されてもよい。係る通信ネットワークは、物理的な通信ネットワークであってもよく、仮想的な通信ネットワークであってもよい。以下において説明するデータ提供システム、あるいは、その構成要素を実現可能なハードウェア構成については、後述する。
【００３２】
＜第１の実施形態＞
本発明の第１の実施形態について説明する。図１は、本実施形態におけるデータ提供システム１の概要を例示する説明図である。
【００３３】
図１に例示するように、データ提供システム１においては、１以上のサーバ装置１０と、１以上の対象装置２０とが、通信ネットワークを通じて通信可能に接続されている。各対象装置２０は、適切な通信機器（例えば、ゲートウェイ装置、ルータ、或いはスイッチ等）等を介して、通信ネットワークと接続されていてもよい。対象装置２０のうちのある装置が、上記通信機器の機能を提供してもよい。この場合、１以上の対象装置２０が通信機器として機能し、他の対象装置２０は、通信機器として機能する対象装置２０を介して、通信ネットワークと接続されてもよい。
【００３４】
サーバ装置１０は、データを提供可能な装置（データ提供装置）であり、例えば、コンピュータ等の情報処理装置であってもよい。対象装置２０は、サーバ装置１０が提供するデータを用いて更新可能なデータを保持する装置であり、例えば、各種情報処理装置（小型のコンピュータ、あるいはセンサ等の単機能デバイス等）であってもよい。通信ネットワークは、インターネット等の広域ネットワークであってもよく、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の狭域ネットワークであってもよく、これらを適宜組合せたネットワークであってもよい。また通信ネットワークは、階層的に接続されてもよい。
【００３５】
以下、データ提供システム１の各構成要素について説明する。
【００３６】
対象装置２０は、更新可能なデータを保持する。具体的には、対象装置２０は、異なる複数のデータのうち、何れかのデータを保持するよう構成される。対象装置２０は、自装置が保持するデータを特定可能な情報を保持してもよい。以下、対象装置２０が保持する更新対象のデータを「更新対象データ」、更新対象データを特定可能な情報を「データ特定情報」と記載する場合がある。異なる複数の更新対象データは、例えば、ある更新対象データのバリエーションであってもよい。
【００３７】
対象装置２０が保持する更新対象データは、例えば、１以上のファイルから構成されるソフトウェアであってもよい。この場合、当該ソフトウェア（あるいはファイル）には、複数のバージョンが存在してもよい。この場合、対象装置２０は、異なる複数のバージョンのソフトウェア（あるいはファイル）のうち、いずれかのバージョンのソフトウェア（あるいはファイル）を保持する。異なる複数のバージョンのソフトウェア（あるいはファイル）は、対象装置２０が保持するソフトウェア（あるいはファイル）のバリエーションであるとも考えられる。
【００３８】
また、対象装置２０が保持するデータは、例えば、当該対象装置２０の構成に関する構成情報であってもよい。例えば、対象装置２０が、コンピュータ等の情報処理装置である場合を想定する。この場合、係る構成情報は、例えば、対象装置２０に導入されたＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、各種ミドルウェア、あるいはアプリケーション等、各種ソフトウェアの構成に関する情報であってもよい。また、係る構成情報は、対象装置２０自体の各種設定に関する情報であってもよい。この場合、対象装置２０は、異なる構成を表す構成情報のうち、いずれかの構成情報を保持する。異なる複数の構成情報は、対象装置２０が保持する構成情報のバリエーションであるとも考えられる。
【００３９】
対象装置２０は、自装置が保持する更新対象データを特定可能な情報を作成するよう構成される。更新対象データを特定可能な情報（データ特定情報）は、例えば、当該更新対象データのハッシュ値であってもよい。
【００４０】
対象装置２０は、サーバ装置１０からの更新通知（後述）に応じて、サーバ装置１０に対して、更新対象データを特定可能な情報を通知するよう構成される。上記に依らず、対象装置２０は、自装置が保持する更新対象データを特定可能な情報を、必要に応じて適宜サーバ装置１０に通知してもよい。
【００４１】
また、対象装置２０は、サーバ装置１０から提供される差分情報を用いて、自装置が保持する更新対象データを更新するとともに、更新されたデータを他の対象装置２０に対して公開するよう構成される。
【００４２】
以下、サーバ装置１０について説明する。サーバ装置１０は、各対象装置２０が保持する更新対象データに関する情報を保持するよう構成される。具体的には、サーバ装置１０は、例えば、図２に例示するような形式で、更新対象データに関する情報を保持してもよい。
【００４３】
サーバ装置１０は、例えば、各更新対象データについて、当該更新対象データを特定可能な情報（特定情報）と、当該更新対象データのサイズとを関連付けて保持する。更新対象データを特定可能な情報（特定情報）は、当該更新対象データのハッシュ値であってもよい。また、サーバ装置１０は、例えば、各更新対象データの実体イメージ（実際のデータ）を保持してもよい。
【００４４】
サーバ装置１０は、更新対象データと、当該更新対象データを更新したデータとの差分を作成するよう構成される。以下、更新対象データを更新したデータ（更新後のデータ）を、「更新後データ」と記載する場合がある。また、更新前データと、更新後データとの間の差分を表す情報を「差分情報」と記載する場合がある。係る差分情報は、例えば、バイナリファイルに対するパッチデータであってもよい。
【００４５】
サーバ装置１０は、各更新対象データと、更新後データとの差分情報を作成し、当該差分情報と、差分のサイズとを保持する。これにより、サーバ装置１０は、異なる複数の更新対象データと、更新後データとの間の差分のサイズに基づいて、更新されるデータの組合せを特定することができる。
【００４６】
上記のように構成された本実施形態におけるデータ提供システム１の動作について説明する。
【００４７】
まず、サーバ装置１０が、対象装置２０が保持する更新対象データに関する更新通知を送信する。
【００４８】
係る更新通知を受け付けた各対象装置２０は、自装置が保持する更新対象データを特定可能な情報（例えばハッシュ値等）を生成する。各対象装置２０は、例えば、生成した情報をサーバ装置１０に送信する。
【００４９】
サーバ装置１０は、各対象装置２０が生成した更新対象データを特定可能な情報に基づいて、各対象装置が保持する、いずれかの更新対象データを特定する。
【００５０】
サーバ装置１０は、特定した更新対象データと、更新後データと間の差分（差分情報）のサイズに基づいて、更新後データに更新されるいずれかの更新対象データを特定する。サーバ装置１０は、例えば、更新後データとの間の差分のサイズが最も小さい更新対象データを特定してもよい。また、サーバ装置１０は、例えば、更新後データとの間の差分のサイズに関する基準に基づいて、更新対象データを特定してもよい。上記特定された更新対象データは、差分情報を適用することにより、更新後データに更新可能である。以下、差分情報を直接適用可能な更新対象データを保持する対象装置２０を、「第１の対象装置」と記載する場合がある。また、上記特定された更新対象データとは異なる更新対象データを保持する対象装置２０（即ち、差分情報を直接適用できない更新対象データを保持する対象装置２０）を、「第２の対象装置」と記載する場合がある。
【００５１】
サーバ装置１０は、差分情報を含む配布データを、いずれか１以上の第１の対象装置２０に送信する。係る配布データには、例えば、上記特定した更新対象データを特定可能な情報（例えばハッシュ値等）が含まれてもよい。また、係る配布データには、例えば、上記特定した更新対象データと更新後データとの組合せを特定可能な情報が含まれてもよい。また、サーバ装置１０は、例えば、１以上の第２の対象装置２０に対して、第１の対象装置２０を特定可能な情報（例えば、通信ネットワークにおけるアドレス情報等）を送信する。
【００５２】
サーバ装置１０から配布データを受信した対象装置２０（第１の対象装置２０）は、当該配布データに含まれる差分情報を用いて、自装置が保持する更新対象データを更新することにより更新後データを作成する。また、係る対象装置２０は、他の対象装置２０（第２の対象装置２０）に対して、更新後データを提供する。この際、第１の対象装置２０は、例えば、他の対象装置２０（第２の対象装置２０）に対して、更新後データを提供可能であることを通知（例えば、マルチキャスト等）してもよい。
【００５３】
サーバ装置から、他の対象装置２０（第１の対象装置２０）を特定可能な情報を受信した第２の対象装置２０は、特定の第１の対象装置２０から、更新後データを取得する。
【００５４】
上記のように構成された本実施形態におけるデータ提供システム１によれば、対象装置２０が保持する更新対象データを更新する際の、配布データの提供に要する通信量を低減可能である。その理由は、サーバ装置１０が、複数の異なる更新対象データと、更新後データとの差分のサイズに基づいて、更新後データに更新される更新対象データを特定するからである。これにより、サーバ装置１０は、例えば、複数の異なる更新対象データのうち、更新後データに対する差分のサイズが最も小さい更新対象データを特定することができる。また、サーバ装置１０は、更新後データに対する差分のサイズがある基準値よりも小さい更新対象データを特定することができる。これにより、サーバ装置１０は、配布データに含まれる差分情報のサイズを低減可能である。本実施形態におけるサーバ装置１０は、各対象装置２０に対して、各対象装置２０が保持する更新対象のデータに対する差分情報を個別に提供する必要がない。本実施形態におけるサーバ装置１０は、例えば、サイズが小さい差分情報を含む配布データを、当該差分情報を適用可能な更新対象データを保持するいずれかの対象装置２０に提供すればよい。このことから、データ提供システム２は、各対象装置２０に個別に差分情報を転送する場合に比べて、配布データを提供する際の通信量を低減することができる。
【００５５】
本実施形態におけるデータ提供システム１は、上記したように、例えば、対象装置２０において稼働するソフトウェア（ソフトウェア・プログラム）の更新に適用可能である。例えば、当該ソフトウェアのバージョンが不揃いである状況を、対象装置２０が異なる複数のバージョンのソフトウェア（あるいはそのファイル）を多く保持している状況であると考えることができる。このような状況で、複数のバージョンのソフトウェアをまとめて更新する場合を想定する。この場合、サーバ装置１０は、当該ソフトウェアを構成する各ファイルについて、個々の対象装置２０毎ではなく、複数の対象装置２０が保持するファイルをまとめたセット対して、更新後のファイルとの差分が小さくなるファイルを特定する。これにより、サーバ装置１０は、差分情報が小さくなるファイルの組合せを決定することができる。従って、データ提供システム１によれば、更新後のソフトウェアを構成するファイルの情報を転送する際に要する通信量を低減することが可能である。
【００５６】
本実施形態におけるデータ提供システム１は、上記したように、例えば、対象装置２０の構成情報の更新に適用可能である。ある対象装置２０（仮に「対象装置２０Ｘ」とする）の構成情報を更新する際、新たな構成情報が、他の対象装置２０（仮に「対象装置２０Ｙ」とする）の構成情報との類似性が高い場合がある。この場合、データ提供システム１におけるサーバ装置１０は、「対象装置２０Ｘ」と新たな構成情報との差分ではなく、「対象装置２０Ｙ」と新たな構成情報との差分を、対象装置２０に通知する。これにより、データ提供システム１は、構成情報の差分を提供する際の、通信量を低減可能である。
【００５７】
また、データ提供システム１においては、データの更新を必要とする装置である対象装置２０に対して、高度な処理能力は必要とされない。その理由は、対象装置２０が、更新対象のデータを特定可能な情報（例えば、データのハッシュ値）の生成、及び、各装置が保持しているデータに関する情報の提供等、比較的単純な処理を実行すればよいからである。
【００５８】
＜第２の実施形態＞
以下、上記第１の実施形態を基本とする本発明の第２の実施形態について説明する。
【００５９】
［構成］
まず、本実施形態におけるデータ提供システムの概要について、図面を参照して説明する。なお、以下において説明する構成は、本実施形態におけるデータ提供システムを実現可能な一例であり、本実施形態はこれには限定されない。
【００６０】
図３は、本実施形態におけるデータ提供システム２の機能的な構成要素を例示するブロック図である。図３に例示するように、データ提供システム２は、１以上のサーバ装置１００と、１以上の代表装置２００と、１以上の対象装置３００とを含む。まず、データ提供システム２におけるネットワーク構成の概要について説明する。
【００６１】
サーバ装置１００（サーバ装置Ａ乃至サーバ装置Ｘ）は、適切な通信方法を用いて、広域ネットワーク４００に通信可能に接続される。広域ネットワーク４００は、例えば、インターネット等の開かれたネットワークであってもよく、何らかの組織により運用されるクローズドネットワークであってもよい。係る広域ネットワークは適宜選択可能であることから、詳細な説明を省略する。
【００６２】
１以上の代表装置２００、及び、１以上の対象装置３００は、ローカルネットワーク（ローカルネットワークＡ、Ｂ）の少なくとも一部を構成する。各ローカルネットワークは、例えば、ある組織における構内ＬＡＮ等であってもよい。各ローカルネットワークにおいて代表装置２００と、各対象装置３００との間は適切な通信方法を用いて接続されている。各ローカルネットワークは、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）等の周知の技術を用いて実現可能であることから、詳細な説明を省略する。各ローカルネットワークは、例えば、代表装置２００を介して広域ネットワーク４００と通信可能に接続されている。即ち、代表装置２００及び対象装置３００は、広域ネットワーク４００を介してサーバ装置１００と通信データを送受信することが可能である。代表装置２００は、例えば、広域ネットワーク４００へ接続可能な通信装置（例えば、ゲートウェイ装置、ルータ、スイッチ等）の機能を提供してもよい。
【００６３】
図３に示す具体例において、代表装置２００と、対象装置３００とは、物理的あるいは論理的に同等の構成を有する装置であってもよい。具体的には、代表装置２００と、対象装置３００との構成は、同一であってもよく、少なくとも一部が異なっていてもよい。ローカルネットワークに接続された１以上の対象装置３００のうち、いずれかの対象装置３００が、代表装置２００として機能してもよい。例えば、サーバ装置１００から配布データ（後述）を直接受信した対象装置３００が、代表装置２００として機能してもよい。各ローカルネットワークには、複数台の代表装置２００が含まれてもよい。
【００６４】
上記のように構成されたデータ提供システム２において、対象装置３００はソフトウェア等の各種データを保持し、サーバ装置１００は、対象装置３００が保持するデータを更新可能なデータを提供する。以下においては、説明の便宜上、各対象装置３００が保持するソフトウェアの更新に用いられる差分情報が、サーバ装置１００から提供されることを想定する。以下、更新対象のソフトウェアを、「更新対象ソフトウェア」と記載する場合がある。係る更新対象ソフトウェアは、更新対象データである１以上のファイルにより構成される。更新対象ソフトウェアを構成するファイルのうち、更新対象となるファイルを「更新対象ファイル」と記載する場合がある。なお、ソフトゥエアを構成するデータは、ファイルには限定されず、他の適切な形態により対象装置３００に保持されてもよい。
【００６５】
更新対象ソフトウェアの世代は、バージョン（版）により識別される。係るバージョンは、例えば、更新対処ソフトウェア、及び、当該ソフトウェアを構成するファイルに付与される。係るバージョンは、ソフトウェアあるいはファイルのバリエーションの一種であるとも考えられる。更新対象ソフトウェアの更新は、当該ソフトウェアを構成するファイルのうち、一つ以上を変更することにより実行される。ファイルのバージョンは、例えば、ファイルのハッシュ値により特定することができる。
【００６６】
データ提供システム２を構成する各構成要素について図３乃至図８を参照して説明する。
【００６７】
以下、図３及び図４を参照して、サーバ装置１００について説明する。図４は、サーバ装置の機能的な構成を例示するブロック図である。図４に例示するように、サーバ装置１００は、ＩＤ割当て部１０１と、ファイル情報作成部１０２と、差分作成部１０３とを備える。また、当該サーバ装置１００は、送付先決定部１０４と、更新通知送信部１０５と、ファイル情報受信部１０６と、差分決定部１０７と、差分情報送信部１０８を備える。また、サーバ装置１００は、更に、ソフトウェア情報保持部１０９を備えてもよい。当該サーバ装置１００を構成する各構成要素の間は、適切な通信方法を用いて通信可能に接続されている。以下、それぞれの構成要素について説明する。
【００６８】
サーバ装置１００におけるＩＤ割当て部１０１は、更新単位となるソフトウェア毎にＩＤ（識別情報：Ｉｄｅｎｔｉｆｉｅｒ）を割当てる。更新されるソフトウェアが複数存在する場合には、係るＩＤにより、それぞれのソフトウェアが特定される。
【００６９】
以下、上記説明したＩＤを設定する方法について、具体的に説明する。対象装置３００には、当該対象装置３００の目的を実現することが可能なソフトウェアが導入（インストール）される。導入されたソフトウェアは、例えば、対象装置３００において使用（実行）されてもよい。
【００７０】
上記したように、ソフトウェアにはＩＤが付与される。具体的には、係るＩＤは、更新管理の対象となるソフトウェア毎に付与されてもよい。例えば、複数の対象装置３００において同じソフトウェアが導入される場合、当該ソフトウェアには同じＩＤが付与される。全ての対象装置３００に同じソフトウェアが導入される場合、一つの共通するＩＤが、当該ソフトウェアに付与されてもよい。例えば、いくつかの対象装置３００において、異なるソフトウェアが導入される場合、それらには異なるＩＤが付与されてもよい。
【００７１】
各ソフトウェアのＩＤは、例えば、サーバ装置１００に予め登録されていてもよい。例えば、データ提供システム２のユーザ（あるいは管理者等）が、対象装置３００に導入されたソフトウェアを知っている場合を想定する。この場合、ユーザは、当該ＩＤを、サーバ装置１００に登録してもよい。ユーザは、ソフトウェア毎にＩＤを設定し、当該ＩＤを対象装置３００に登録してもよい。ユーザは、ソフトウェアのＩＤ毎に代表装置２００を選択して、サーバ装置１００に登録してもよい。
【００７２】
各ソフトウェアに付与されるＩＤは、サーバ装置１００（特には、ＩＤ割当て部１０１）により設定されてもよい。この場合、サーバ装置１００（ＩＤ割当て部１０１）が、代表装置２００を介して、当該代表装置２００により代表される対象装置３００に導入されたソフトウェアに関する情報を収集する。例えば、サーバ装置１００は、代表装置２００に対してある種の指示命令（コマンド等）を送信することにより、対象装置３００に導入されたソフトウェアに関する情報を収集するよう指示してもよい。対象装置３００に導入されたソフトウェアに関する情報は、例えば、当該ソフトウェアのファイル名、当該ソフトゥエアを構成するファイルのハッシュ値、等であってもよい。対象装置３００自体に、当該対象装置３００に導入されたソフトウェアのＩＤが設定されている場合には、上記ソフトウェアに関する情報に当該ＩＤが含まれてもよい。
【００７３】
サーバ装置１００（ＩＤ割当て部１０１）は、代表装置２００を介して取得した上記ソフトウェアに関する情報、又は、当該情報を加工した情報を用いて、当該ソフトウェアに対して付与されるＩＤを決定してもよい。上記した方法により、サーバ装置１００は、対象装置３００と、導入されたソフトウェアに関するＩＤとを関連付けて管理することが可能である。
【００７４】
サーバ装置１００におけるファイル情報作成部１０２は、ソフトウェアを構成するファイル毎に、当該ファイルを特定可能な情報（ファイル情報）を生成する。ファイル情報作成部１０２は、ファイルを特定可能な情報として、当該ファイルのハッシュ値を用いてもよい。この場合、ファイル情報作成部１０２は、ハッシュ作成部として機能する。上記したように、ファイルのバージョンは、当該ファイルのハッシュ値を用いて特定可能である。ファイル情報作成部１０２は、例えば、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ  ５）、ＳＨＡ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）等のハッシュ生成アルゴリズムを用いて、ハッシュを計算してもよい。
【００７５】
サーバ装置１００における差分作成部１０３は、更新対象のソフトウェアの過去の全てのバージョンと、最新バージョンと間の差分を、ソフトゥエアを構成するファイル毎に作成する。例えば、更新対象のソフトウェアが「ファイル１」を含み（即ち「ファイル１」が更新対象データ）、「ファイル１」に３つのバージョン（例えば、「Ｖｅｒ．１」、「Ｖｅｒ．２」、「Ｖｅｒ．３」）が存在する具体例を想定する。更に、「Ｖｅｒ．３」の「ファイル１」が最新バージョンのファイル（即ち、更新後データ）であることを想定する。この場合、差分作成部１０３は、「ファイル１」について「Ｖｅｒ．１」と、「Ｖｅｒ．３」との間の差分を作成する。また、差分作成部１０３は、「ファイル１」について「Ｖｅｒ．２」と、「Ｖｅｒ．３」との間の差分を作成する。なお、この際、差分作成部１０３は、各ファイルのバージョン毎の差分について、当該差分のサイズを算出してもよい。
【００７６】
本実施形態において、上記説明したＩＤ割当て部１０１、ファイル情報作成部１０２、及び、差分作成部１０３は、ソフトウェア情報管理部１１０を構成してもよい。また、係るソフトウェア情報管理部１１０には、後述するソフトウェア情報保持部１０９が含まれてもよい。この場合、ソフトウェア情報管理部１１０は、これらの構成要素が提供する機能を備えるハードウェアまたはソフトウェア・プログラムとして実現されてもよい。
【００７７】
上記したＩＤ割当て部１０１により各ソフトウェアに割当てられたＩＤは、後述するソフトウェア情報保持部１０９に登録されてもよい。上記したファイル情報作成部１０２により作成された各ファイルのハッシュ値は、後述するソフトウェア情報保持部１０９に登録されてもよい。上記した差分作成部１０３により作成された各バージョンのファイルの差分は、ソフトウェア情報保持部１０９に登録されてもよい。
【００７８】
サーバ装置１００における送付先決定部１０４は、ＩＤにより特定されるソフトウェア毎に、当該ソフトウェアに関する更新通知の送付先となる代表装置２００を決定する。送付先決定部１０４は、例えば、ローカルネットワーク毎に、予め定められた代表装置２００を、更新通知の送付先として決定してもよい。例えば、各ソフトウェアについて、更新通知の送付先となる装置が予めサーバ装置１００に設定されていてもよい。あるいは、各ローカルネットワークに接続された代表装置２００が、サーバ装置１００に対して自装置の存在を通知し、サーバ装置１００は、係る通知に基づいて更新通知の送付先を決定してもよい。なお、更新通知の送付先を決定する方法は上記に限定されず、送付先決定部１０４は、データ提供システム２のネットワーク構成等に応じて、その他の適切な方法を選択可能である。
【００７９】
サーバ装置１００における更新通知送信部１０５は、送付先決定部１０４において決定された更新通知の送付先である代表装置２００に、あるソフトウェアの更新通知を送付する。係る更新通知には、例えば、更新されるソフトウェアのＩＤを表すデータが含まれる。更新通知送信部１０５は、送付先決定部１０４における決定に応じて、ローカルネットワーク毎に、１台以上の代表装置２００に対して、更新通知を送付してもよい。
【００８０】
サーバ装置１００におけるファイル情報受信部１０６は、複数の対象装置３００がそれぞれ保持する更新対象ソフトウェアを構成するファイルに関するファイル情報のリスト（一覧）を、代表装置２００から受信する。具体的には、ファイル情報受信部１０６は、例えば、複数の対象装置３００がそれぞれ保持するファイルを特定可能な情報として、それらのファイルのハッシュ値のリスト（一覧）を受信する。この場合、ファイル情報受信部１０６は、ハッシュ一覧受信部として機能する。なお、ファイル情報受信部１０６は、ファイルを特定可能な情報として、ハッシュ値以外の適切な識別情報を受信してもよい。
【００８１】
サーバ装置１００における差分決定部１０７は、ファイル情報受信部１０６が受信したファイル情報と、差分作成部１０３が作成した各ファイルのバージョン毎の差分のサイズとに基づいて、更新されるファイルを特定する。これにより、差分決定部１０７は、更新されるファイルと、更新後ファイルとの組合せを特定することができる。
【００８２】
例えば、更新対象データである「ファイル１」について、「Ｖｅｒ．１」のファイルを保持する対象装置３００と、「Ｖｅｒ．２」のファイルを保持する対象装置３００が存在し、「Ｖｅｒ．３」が最新バージョンである具体例を想定する。更に、この具体例においては、「Ｖｅｒ．１」の「ファイル１」と、「Ｖｅｒ．３」の「ファイル１」との差分が、「Ｖｅｒ．２」の「ファイル１」と、「Ｖｅｒ．３」の「ファイル１」との差分よりも、サイズが小さいことを仮定する。この場合、差分決定部１０７は、最も差分のサイズが小さい、「ファイル１」の「Ｖｅｒ．１」と「Ｖｅｒ．３」との組合せを特定する。
【００８３】
上記に限定されず、差分決定部１０７は、更新前後のファイル間の差分のサイズに関する基準に基づいて、ファイルの組合せを特定してもよい。例えば、更新対象データである「ファイル１」について、「Ｖｅｒ．１」乃至「Ｖｅｒ．５」のバージョンが存在し、「Ｖｅｒ．５」が最新バージョンである具体例を想定する。仮に、「Ｖｅｒ．１」と「Ｖｅｒ．５」、「Ｖｅｒ．２」と「Ｖｅｒ．５」の差分がある基準値よりも小さい場合、差分決定部１０７は、それらの組合せを特定してもよい。
【００８４】
サーバ装置１００における差分情報送信部１０８は、差分決定部１０７が決定したファイルの組合せに対する差分を表す差分情報（差分データ）を、配布データとして代表装置２００に送信（提供）する。この場合、当該差分情報が適用されるファイルを特定できるように、係るファイルのハッシュ値が配布データに含められる。また、差分情報送信部１０８は、差分情報が適用されるファイルの組合せを表す情報が、配布データに含められてもよい。差分決定部１０７が決定したファイルの組合せが複数存在する場合には、それら全が送信されてもよく、それらのうち何れか（例えば、差分情報のサイズがより小さい組合せ）が送信されてもよい。
【００８５】
上記説明した送付先決定部１０４、更新通知送信部１０５、ファイル情報受信部１０６、差分決定部１０７、及び、差分情報送信部１０８は、更新処理部１１１を構成してもよい。この場合、更新処理部１１１は、これらの構成要素の機能を備えるハードウェアまたはソフトウェア・プログラムとして実現されてもよい。
【００８６】
サーバ装置１００は、更に、ソフトウェア情報保持部１０９を備えてもよい。ソフトウェア情報保持部１０９は、例えば、サーバ装置１００が各代表装置２００（あるいは対象装置３００）に転送したファイルに関する情報を保持することができる。また、ソフトウェア情報保持部１０９は、例えば、各代表装置２００（あるいは対象装置３００）が保持するソフトウェアを構成するファイルのマスタイメージ等に関する情報を保持することができる。これにより、例えば、差分決定部１０７は、ファイル情報受信部１０６が受信したファイルのハッシュ値に基づいて、対象装置３００が保持するファイルの実体（例えばバイナリイメージ）を特定可能である。
【００８７】
ソフトウェア情報保持部１０９は、例えば、図５に例示するような形式にて、各対象装置３００が保持するソフトウェアに関する情報（ソフトウェア情報）を保持してもよい。図５に示す具体例では、ソフトウェア情報保持部１０９は、ソフトウェアを特定可能なＩＤに対して、当該ソフトウェアを構成するファイルと、当該ファイルのバージョンと、各バージョンのファイルのハッシュ値とを関連付けて保持する。ソフトウェア情報保持部１０９は、更に、ソフトウェアのＩＤ毎に、各バージョンのファイルのサイズと、最新バージョンとの間の差分を表す情報と、その差分サイズとを関連付けて保持する。
【００８８】
上記説明したサーバ装置１００は、第１の実施形態におけるサーバ装置１０と同様の機能を実現するよう構成されてもよい。
【００８９】
以下、図３及び図６を参照して、本実施形態における代表装置２００について説明する。図６は、本実施形態における代表装置２００の機能的な構成を例示するブロック図である。図６に例示する代表装置２００は、更新通知受信部２０１と、対象装置管理部２０２と、更新通知送信部２０３とを備える。また、当該代表装置２００は、ファイル情報受信部２０４と、ファイル情報送信部２０５と、差分ファイル受信部２０６と、差分ファイル情報送信部２０７と、を備える。当該代表装置２００を構成する各構成要素の間は、適切な通信方法により通信可能に接続されている。
【００９０】
代表装置２００における更新通知受信部２０１は、サーバ装置１００（更新通知送信部１０５）により送信された更新通知を受信する。係る更新通知には、例えば、更新されるソフトウェアのＩＤを表すデータが含まれる。
【００９１】
代表装置２００における対象装置管理部２０２は、代表装置２００と同じローカルネットワークに接続された対象装置３００に関する情報を管理する。対象装置管理部２０２は、例えば、ローカルネットワークに接続された１以上の対象装置３００から、当該対象装置３００が保持するソフトウェアに関する情報（例えばＩＤ）を収集して保持してもよい。対象装置管理部２０２は、例えば、当該ソフトウェアを構成するファイルと、そのバージョンに関する情報を、収集して保持してもよい。対象装置管理部２０２は、例えば、図７に例示するように、各対象装置３００と、当該対象装置３００が保持するソフトウェアのＩＤとを関連付けた対象装置管理情報を保持してもよい。また、対象装置管理部２０２は、各対象装置が保持するソフトウェア毎に、当該ソフトウェアを構成するファイルに関する情報（ファイルのバージョン情報、ハッシュ値等）を保持してもよい。
【００９２】
上記に限らず、例えば、データ提供システム２のユーザが、各対象装置３００に導入されたソフトウェアに関する情報（ＩＤ、ハッシュ値、バージョン情報等）を、代表装置２００に設定してもよい。例えば、サーバ装置１００が、各対象装置３００に導入されたソフトウェアに関する情報（ＩＤ、ハッシュ値、バージョン情報等）を保持している場合には、サーバ装置１００が、それらの情報を代表装置２００に提供してもよい。
【００９３】
図７に示す具体例において、対象装置３００を表す情報は、対象装置３００を特定可能な識別情報（例えば、ローカルネットワークにおいて対象装置３００を識別可能なアドレス情報等）であってもよい。対象装置管理部２０２は、例えば、更新通知受信部２０１が受信した更新通知に含まれるソフトウェアのＩＤと、対象装置管理情報とから、当該ＩＤにより識別されるソフトウェアを保持する対象装置３００を特定する。例えば、図７に示す具体例において、更新通知に「ＩＤ１」が含まれる場合、対象装置管理部２０２は、「対象装置Ａ１」、「対象装置Ａ２」を、更新すべき対象装置３００として特定する。
【００９４】
代表装置２００における更新通知送信部２０３は、対象装置管理部２０２において特定した１以上の対象装置３００に対して、更新するソフトウェアのＩＤを通知する。
【００９５】
上記説明した代表装置２００における、更新通知受信部２０１、対象装置管理部２０２、及び、更新通知送信部２０３は、更新通知処理部２０８を構成してもよい。この場合、更新通知処理部２０８はこれらの構成要素が提供する機能を備えるハードウェアまたはソフトウェア・プログラムとして実現されてもよい。
【００９６】
代表装置２００におけるファイル情報受信部２０４は、更新通知送信部２０３がＩＤを通知した対象装置３００から、当該ＩＤにより特定されるソフトウェアを構成するファイルに関するファイル情報を受信する。また、ファイル情報受信部２０４は、対象装置３００から、各ファイルのバージョンを表す情報を受信してもよい。ファイル情報受信部２０４が受信するファイル情報は、例えば、ファイルのハッシュ値である。ファイル情報受信部２０４は、複数の対象装置３００から受信したファイル情報（例えばファイルのハッシュ値）を含むリスト（例えば、ハッシュ値の一覧）を作成する。ファイル情報は、ファイルのハッシュ値のみを含んでもよく、ファイルのハッシュ値以外の情報を含んでもよい。
【００９７】
代表装置２００におけるファイル情報送信部２０５は、ファイル情報受信部２０４がしたファイル情報リスト（ハッシュ値一覧）を、サーバ装置１００に送信する。上記したように、サーバ装置１００におけるファイル情報受信部１０６が、係るファイル情報リストを受信する。
【００９８】
代表装置２００における差分ファイル受信部２０６は、サーバ装置１００（差分情報送信部１０８）から送信された配布データを受信する。係る配布データには、差分情報（差分データ）と、当該差分情報が適用されるファイルを特定するファイル情報（例えばファイルのハッシュ値）とが含まれる。また、係る配布データには、更新されるファイルの組合せを表す情報が含まれてもよい。なお、差分ファイル受信部２０６は、上記各情報を受信した際、サーバ装置１００から受信した差分情報が適用されるファイルと、当該ファイルを保持する対象装置３００とを特定してもよい。
【００９９】
代表装置２００における差分ファイル情報送信部２０７は、上記受信した差分情報（差分データ）を適用可能なファイルを保持する対象装置３００に対して差分情報を送信する。この際、差分ファイル情報送信部２０７は、更新対象のファイルを特定するファイル情報（例えばファイルのハッシュ値）を、併せて送信してもよい。差分情報（差分データ）を直接適用可能なファイルを保持する対象装置３００は、上記第１の実施形態における「第１の対象装置」に相当する。以下、係る装置を「第１の対象装置３００」と記載する場合がある。
【０１００】
差分ファイル情報送信部２０７は、他の対象装置３００に対して、更新されたファイルを公開可能な対象装置３００を特定する情報を送信する。即ち、差分ファイル情報送信部２０７は、サーバ装置１００から受信した差分情報を直接適用できない更新対象のファイルを保持する対象装置３００に対して、更新された当該ファイルを公開する他の対象装置３００を特定可能な情報を通知する。他の対象装置３００を特定可能な情報は、例えば、ローカルネットワークにおいて対象装置３００を識別可能な情報（例えば、アドレス情報）等であってもよい。差分情報（差分データ）を直接適用できない更新対象のファイルを保持する対象装置３００は、上記第１の実施形態における「第２の対象装置」に相当する。以下、係る装置を「第２の対象装置３００」と記載する場合がある。
【０１０１】
差分ファイル情報送信部２０７における上記処理について、具体例を用いて説明する。例えば、差分ファイル受信部２０６が受信した差分情報が、「ファイル１」のバージョンが「Ｖｅｒ．１」と「Ｖｅｒ．３」との間の差分を表すデータであると想定する。この場合、バージョンが「Ｖｅｒ．１」である「ファイル１」を保持する対象装置３００（例えば、図７の「対象装置Ａ１」）は、係る差分情報により、「ファイル１」を直接更新可能である。よって、差分ファイル情報送信部２０７は、当該対象装置（「対象装置Ａ１」）に対して差分情報を送信する。これに対して、バージョンが「Ｖｅｒ．２」である「ファイル２」を保持する対象装置３００（例えば、図７の「対象装置Ａ２」、）は、当該差分情報を用いて直接的にファイルを更新することができない。よって、差分ファイル情報送信部２０７は、「Ｖｅｒ．３」のファイルに更新された「ファイル１」を提供可能な対象装置３００（「対象装置Ａ１」）を特定可能な情報を、他の対象装置（「対象装置Ａ２」）に送信する。
【０１０２】
差分ファイル受信部２０６が受信した配布データに、差分情報が複数含まれる場合、それぞれの差分情報について上記説明した処理を実行する。これにより、複数の対象装置３００が、差分情報を用いてファイルを直接更新することが可能であり、後述する対象装置３００における更新後データの配布処理が、複数の対象装置３００に分散される。
【０１０３】
上記ファイル情報受信部２０４、ファイル情報送信部２０５、差分ファイル受信部２０６、及び、差分ファイル情報送信部２０７は、ファイル処理部２０９を構成してもよい。この場合、ファイル処理部２０９は、これらの構成要素が提供する機能を備えるハードウェア又はソフトウェア・プログラムとして実現されてもよい。
【０１０４】
以下、図３及び図８を参照して、対象装置３００について説明する。図８は、対象装置３００の機能的な構成を例示するブロック図である。図８に例示するように、対象装置３００は、更新通知受信部３０１、ファイル情報作成部３０２、ファイル情報送信部３０３を備える。また、対象装置３００は、差分ファイル情報受信部３０４、更新ファイル作成部３０５、更新ファイル公開部３０６、更新ファイル受信部３０７を備える。また、対象装置３００は、データ保持部３１０を更に備えてもよい。対象装置３００を構成するこれらの構成要素の間は、適切な通信方法により通信可能に接続されている。
【０１０５】
対象装置３００における更新通知受信部３０１は、上記代表装置２００（更新通知送信部２０３）から送信された更新通知を受信する。係る更新通知には、更新対象のソフトウェアのＩＤが含まれる。
【０１０６】
対象装置３００におけるファイル情報作成部３０２は、更新通知受信部３０１が受信した更新通知に含まれるＩＤを参照し、自装置が保持する更新対象のソフトウェアを特定する。ファイル情報作成部３０２は、当該ソフトウェアを構成する各ファイルを特定可能なファイル情報を作成する。ファイル情報作成部３０２は、例えば、各ファイルを特定可能なファイル情報として、各ファイルのハッシュ値を算出してよい。
【０１０７】
対象装置３００におけるファイル情報送信部３０３は、ファイル情報作成部３０２において作成された各ファイルのファイル情報（例えば、ハッシュ値）を、代表装置２００に送信する。また、ファイル情報送信部３０３は、当該ファイルのバージョン情報を、代表装置２００に送信してもよい。上記したように、代表装置２００におけるファイル情報受信部２０４が、当該ファイル情報を受信する。
【０１０８】
上記説明した更新通知受信部３０１、ファイル情報作成部３０２、及び、ファイル情報送信部３０３は、更新通知処理部３０８を構成してもよい。この場合、更新通知処理部３０８は、これらの構成要素が提供する機能を備えるハードウェア又はソフトウェア・プログラムとして実現されてもよい。
【０１０９】
対象装置３００における差分ファイル情報受信部３０４は、代表装置２００（差分ファイル情報送信部２０７）から、あるファイルを更新可能な差分情報か、又は、更新されたファイルを公開可能な他の対象装置３００を特定する情報を受信する。具体的には、ある対象装置３００が、差分情報を用いて更新可能なファイルを保持している場合、当該対象装置３００における差分ファイル情報受信部３０４は、代表装置２００から差分情報を受信する。ある対象装置３００が、差分情報を用いて更新可能なファイルを保持していない場合、差分ファイル情報受信部３０４は、代表装置２００から、更新されたファイルを公開可能な他の対象装置３００を特定する情報を受信する。
【０１１０】
対象装置３００における更新ファイル作成部３０５は、差分ファイル情報受信部３０４が差分情報を受信した場合、当該差分情報と、当該差分情報が適用されるファイルとを用いて、ファイルを更新する。以下、更新されたファイル（即ち更新後データ）を、「更新ファイル」と記載する場合がある。
【０１１１】
対象装置３００における更新ファイル公開部３０６は、更新ファイル作成部３０５が作成した更新ファイルを、他の対象装置３００から参照可能となるよう公開する。更新ファイル公開部３０６は、他の対象装置３００からの要求に応じて、更新ファイルを配布（提供）する。
【０１１２】
更新ファイル受信部３０７は、差分ファイル情報受信部３０４が、更新されたファイルを公開可能な他の対象装置３００を特定する情報を受信した場合、当該他の対象装置３００から、更新ファイルを受信する。
【０１１３】
上記説明した差分ファイル情報受信部３０４、更新ファイル作成部３０５、更新ファイル公開部３０６、及び、更新ファイル受信部３０７は、ファイル処理部３０９を構成してもよい。この場合、ファイル処理部３０９は、これらの構成要素が提供する機能を備えるハードウェア又はソフトウェア・プログラムとして実現されてもよい。
【０１１４】
データ保持部３１０は、ソフトウェアを構成する各ファイルを保持する。またデータ保持部３１０は、ファイルの更新に関するその他の情報（例えば、ファイルを特定可能な情報、あるいは、他の対象装置を特定可能な情報等）を保持してもよい。
【０１１５】
各対象装置３００は、自装置（更新ファイル作成部３０５）において作成した更新ファイル、あるいは、他の対象装置３００から受信（更新ファイル受信部３０７）した更新ファイルを使ってソフトウェアを更新する。
【０１１６】
上記説明した対象装置３００は、第１の実施形態における対象装置２０と同様の機能を実現するよう構成されてもよい。
【０１１７】
以下、上記のように構成された代表装置２００及び対象装置３００に関して、代表装置２００を選択する方法について説明する。
【０１１８】
代表装置２００を選択する方法として、例えば、データ提供システム２のユーザが、ローカルネットワーク毎に、あるソフトウェアに関する更新を管理する１以上の代表装置２００を選択する方法を採用してもよい。この場合、当該ユーザは、選択した代表装置２００に関する情報を、サーバ装置１００に設定してもよい。当該ユーザは、選択した代表装置２００により管理されるソフトウェアが導入された対象装置３００に関する情報を、代表装置２００と関連付けて、サーバ装置１００に設定してもよい。当該ユーザは、代表装置２００により管理されるソフトウェアが導入された対象装置３００に対して、当該代表装置２００に関する情報を設定してもよい。
【０１１９】
代表装置２００を選択する方法として、ローカルネットワーク毎に、対象装置３００が相互に通信することで、広域ネットワークへ接続可能な装置（例えばゲートウェイ装置、ルータ、スイッチ等）の中から、代表装置２００を選択してもよい。例えば、対象装置３００は、広域ネットワークへ接続可能な装置から当該装置が提供可能な機能を取得してもよい。対象装置３００は、当該取得した機能に基づいて、広域ネットワークへ接続可能な装置の中から、代表装置２００を選択してもよい。広域ネットワークへ接続可能な装置から、当該装置が提供可能な機能を取得する方法は、周知の技術（例えば、ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）等）を適宜採用してもよい。
【０１２０】
対象装置３００自体が広域ネットワークに対する接続機能を提供する場合、複数の対象装置３００の中から、適切な対象装置３００が代表装置２００として選択されてもよい。この場合、例えば、各対象装置３００が相互に通信することにより、演算能力、通信処理能力等の観点から、適切な対象装置３００が、代表装置２００として選択されてもよい。対象装置３００が代表装置２００を選択する具体的な方法は上記に限定されず、他の方法を適宜選択してもよい。
【０１２１】
選択された代表装置２００は、例えば、サーバ装置１００に対して、当該装置が代表装置であることを表す情報を送信してもよい。また、選択された代表装置２００は、例えば、サーバ装置１００に対して、当該装置が管理する対象装置３００を表す情報を通知してもよい。
【０１２２】
［動作］
上記のように構成されたデータ提供システム２の各構成要素の動作について、図９、図１０に例示するシーケンス図と、図５及び図７に示す具体例とを用いて説明する。以下の説明においては、具体例として、データ提供システム２が、ＩＤが「１」のソフトウェアの「ファイル１」を、「Ｖｅｒ．３」に更新する処理を実行することを想定する。なお、本具体例では、ソフトウェア（ＩＤ「１」）は複数のファイル（「ファイル１」、ファイル２」）により構成され、それぞれのファイルの内容がバージョンにより異なることを想定する。
【０１２３】
サーバ装置１００におけるＩＤ割当て部１０１は、各対象装置に配置されるソフトウェアに対してＩＤを割当てる。これにより、更新すべきソフトウェアが複数ある場合に、それらを識別することが可能である。本具体例では、ソフトウェアにＩＤ「１」が割当てられている。ＩＤ割当て部１０１は、例えば、係るＩＤの割当て情報をソフトウェア情報保持部１０９に登録する。
【０１２４】
サーバ装置におけるファイル情報作成部１０２は、各対象装置３００に配置されるソフトウェアを構成するファイルを特定可能なファイル情報（ハッシュ値）を生成する。本具体例の場合、ファイル情報作成部は、ソフトウェア（ＩＤ「１」）を構成するファイル（「ファイル１」、「ファイル２」）について、バージョン毎のハッシュ値を生成する。ファイル情報作成部１０２は、例えば、生成したハッシュ値をソフトウェア情報保持部１０９に登録する。ファイル情報作成部１０２は、各ファイルに関するその他の情報（例えば、ファイルサイズ等）を、併せてソフトウェア情報保持部１０９に登録してもよい。
【０１２５】
上記したように、本具体例では、「ファイル１」の内容は、それぞれのバージョン（「Ｖｅｒ．１」、「Ｖｅｒ．２」、「Ｖｅｒ．３」）によって異なる（図５）。この場合、それぞれのバージョン間の差分情報を用いて、ファイルを更新するには、「Ｖｅｒ．１」と「Ｖｅｒ．３」との間の差分情報、及び、「Ｖｅｒ．２」と「Ｖｅｒ．３」との間の差分情報が必要となる。サーバ装置１００における差分作成部１０３は、係る差分を作成する。差分作成部１０３は、例えば、当該差分に関する情報をソフトウェア情報保持部１０９に登録する。
【０１２６】
以下、具体的な更新処理について、図９及び図１０に例示するシーケンス図を参照して説明する。
【０１２７】
サーバ装置１００における更新通知送信部１０５が、代表装置２００に対して、ソフトウェア（ＩＤ「１」）の更新通知を送信する（ステップＳ１）。係る更新通知には更新対象のソフトウェアを特定するＩＤ「１」を表すデータが含まれる。
【０１２８】
代表装置２００（更新通知受信部２０１）は、係る更新通知を受信し（ステップＳ２）、対象装置管理部２０２が、更新対象のソフトウェアを保持する対象装置３００を決定する（ステップＳ３）。本具体例では、「対象装置Ａ１」と、「対象装置Ａ２」とが、ＩＤ「１」のソフトウェアを保持する対象装置３００として決定される（図７）。代表装置２００（更新通知送信部２０３）は、決定された対象装置に対して、更新数値を送信する（ステップＳ４）。
【０１２９】
対象装置３００（更新通知受信部３０１）は、更新通知を受信し（ステップＳ５）、ファイル情報作成部３０２がファイル情報を作成する（ステップＳ６）。本具体例では、「対象装置Ａ１」は、バージョンが「Ｖｅｒ．１」である「ファイル１」を保持する（図７）。よって、「対象装置Ａ１」は、バージョンが「Ｖｅｒ．１」である「ファイル１」に関するファイル情報（具体的には、当該ファイルのハッシュ値）を作成する。同様に、「対象装置Ａ１」は、バージョンが「Ｖｅｒ．２」である「ファイル１」に関するファイル情報を作成する。対象装置３００（ファイル情報送信部３０３）は、作成したファイル情報を、代表装置２００に送信する（ステップＳ７）。
【０１３０】
代表装置２００（ファイル情報受信部２０４）は、各対象装置３００（本具体例では「対象装置Ａ１」、「対象装置Ａ２」）からファイル情報を受信する（ステップＳ８）。代表装置２００（ファイル情報受信部２０４）は、各対象装置３００から受信したファイル情報を用いて、ファイル情報リスト（具体的にはハッシュ値の一覧）を作成する（ステップＳ９）。本具体例では、代表装置２００は、「Ｖｅｒ．１」の「ファイル１」のハッシュ値と、「Ｖｅｒ．２」の「ファイル１」のハッシュ値と、を含むファイル情報リストを作成する。代表装置２００（ファイル情報送信部２０５）は、上記作成したファイル情報リストをサーバ装置１００に送信する（ステップＳ１０）。
【０１３１】
サーバ装置１００（ファイル情報受信部１０６）は、代表装置２００から送信された上記ファイル情報リストを受信する（ステップＳ１１）。これにより、サーバ装置１００は、「Ｖｅｒ．１」の「ファイル１」を保持する対象装置３００と、「Ｖｅｒ．２」の「ファイル１」を保持する対象装置３００と、が存在することを認識することができる。
【０１３２】
サーバ装置１００（差分決定部１０７）は、受信したファイル情報リストと、差分作成部１０３が作成した各ファイルのバージョン毎の差分及び当該差分のサイズとに基づいて、最も差分のサイズが小さくなるファイルの組合せを特定する（ステップＳ１２）。本具体例では、差分決定部１０７は、「ファイル１」について、「Ｖｅｒ．１」と「Ｖｅｒ．３」との間の差分（サイズ）と、「Ｖｅｒ．２」と「Ｖｅｒ．３」との間の差分（サイズ）とを比較する。本具体例では、「Ｖｅｒ．１」と「Ｖｅｒ．３」との間の差分の方が、「Ｖｅｒ．２」と「Ｖｅｒ．３」との間の差分よりもサイズが小さい。これより、差分決定部１０７は、最も差分のサイズが小さいファイルの組合せとして、「Ｖｅｒ．１」と「Ｖｅｒ．３」と組合せを特定する。このように、差分決定部１０７は、最も差分のサイズが小さい組合せを選択することにより、差分情報を転送する際のデータ量を低減することができる。
【０１３３】
サーバ装置１００（差分情報送信部１０８）は、上記ステップＳ１２の結果に基づいて作成した配布データを、代表装置２００に送信する（ステップＳ１３）。当該配布データには、上記特定したファイルの組合せに関する差分情報（差分データ）と、当該差分情報が適用されるファイルを特定可能なファイル情報（例えば、ハッシュ値）とが含まれる。また、当該配布データには、更新されるバージョンのファイルの組合せを表す情報が含まれてもよい。本具体例では、差分情報は、「Ｖｅｒ．１」の「ファイル１」と、「Ｖｅｒ．３」の「ファイル１」との間の差分を表すデータである。係る差分データは、例えば、バイナリファイルに対するパッチデータであってもよい。また、配布データには、当該差分情報が適用される「Ｖｅｒ．１」のハッシュ値が含まれる。更に、配布データには、ファイルの組合せ（「Ｖｅｒ．１」の「ファイル１」と、「Ｖｅｒ．３」の「ファイル１」）を表す情報が含まれてもよい。
【０１３４】
代表装置２００（差分ファイル受信部２０６）は、サーバ装置１００から送信された配布データを受信する（ステップＳ１４）。差分ファイル受信部２０６は、受信した配布データに含まれるファイルのハッシュ値から、差分データが適用されるファイルを特定する。本具体例では、代表装置２００は、サーバ装置１００から受信した差分情報が適用されるファイル（「Ｖｅｒ．１」の「ファイル１」）と、当該ファイル保持する対象装置３００（「対象装置Ａ１」）とを特定してもよい。あるいは、配布データにファイルの組合せを表す情報が含まれている場合には、代表装置２００は、その情報に基づいて、差分データが適用されるファイルを保持する対象装置３００を特定してもよい。例えば、ファイルの組合せを表す情報に、「Ｖｅｒ．１」の「ファイル１」と、「Ｖｅｒ．３」の「ファイル１」との組合せが設定されている場合を想定する。この場合、代表装置は、「Ｖｅｒ．１」の「ファイル１」を保持する対象装置３００を、差分データが適用されるファイルを保持する対象装置３００として特定することができる。また、差分ファイル受信部２０６は、配布データに含まれる差分情報を取り出す。
【０１３５】
代表装置２００（差分ファイル情報送信部２０７）は、サーバ装置１００から受信した差分情報を適用可能なファイルを保持する第１の対象装置３００に、当該差分情報を送信する（ステップＳ１５）。本具体例では、差分ファイル情報送信部２０７は、「Ｖｅｒ．１」の「ファイル１」を保持する第１の対象装置３００である「対象装置Ａ１」に対して、差分情報を送信する。差分ファイル情報送信部２０７は、差分情報と併せて、「Ｖｅｒ．１」の「ファイル１」のハッシュ値を送信してもよい。
【０１３６】
また、差分ファイル情報送信部２０７は、サーバ装置１００から受信した差分情報を直接適用できないファイルを保持する第２の対象装置３００に対して、更新された当該ファイルを公開する他の対象装置３００を特定可能な情報を通知する（ステップＳ１６）。本具体例では、代表装置２００は、「Ｖｅｒ．２」の「ファイル１」を保持する第２の対象装置３００である「対象装置Ａ２」に対して、「Ｖｅｒ．３」の「ファイル１」を公開する対象装置３００として、「対象装置Ａ１」を特定可能な情報を通知する。「対象装置Ａ２」は、「対象装置Ａ１」から、「Ｖｅｒ．３」に更新された「ファイル１」を取得することにより、「ファイル１」を更新することができる（後述）。
【０１３７】
第１の対象装置３００（この場合は「対象装置Ａ１」）における差分ファイル情報受信部３０４は、代表装置２００から送信された差分情報を受信する（ステップＳ１７）。本具体例では、「対象装置Ａ１」が、代表装置２００から差分情報（「Ｖｅｒ．１」の「ファイル１」と、「Ｖｅｒ．３」の「ファイル１」との差分）を受信する。また、「対象装置Ａ１」は、代表装置から、更新対象のファイルである「Ｖｅｒ．１」の「ファイル１」のハッシュ値を受信してもよい。
【０１３８】
第１の対象装置３００（この場合は「対象装置Ａ１」）の更新ファイル作成部３０５は、代表装置２００から受信した差分情報と、自装置が保持するファイルとに基づいて、更新ファイルを作成する（ステップＳ１８）。本具体例では、「対象装置Ａ１」は、差分情報「Ｖｅｒ．１」の「ファイル１」と、「Ｖｅｒ．３」の「ファイル１」との差分）と、「Ｖｅｒ．１」の「ファイル１」とから、「Ｖｅｒ．３」の「ファイル１」を作成する。あるファイルに対する差分情報の適用方法は、周知技術（例えば、各種パッチツール等）を採用であることから、詳細な説明を省略する。
【０１３９】
第１の対象装置３００（この場合は「対象装置Ａ１」）の更新ファイル公開部３０６は、作成した更新ファイルを他の対象装置３００に（特には、第２の対象装置３００に）公開する（ステップＳ１９）。本具体例では、「対象装置Ａ１」が、「Ｖｅｒ．３」に更新された「ファイル１」を公開する。
【０１４０】
第２の対象装置３００（この場合は「対象装置Ａ２」）は、代表装置２００から、更新ファイルを公開する他の対象装置３００（第１の対象装置３００）を特定可能な情報を受信する（ステップＳ２０）。本具体例では、「対象装置Ａ２」は、代表装置２００から、「対象装置Ａ１」を特定可能な情報を受信する。
【０１４１】
第２の対象装置３００（この場合は「対象装置Ａ２」）は、上記ステップＳ２０において受信した情報を用いて、第１の対象装置３００（この場合は「対象装置Ａ１」）にアクセスし、更新ファイルを受信する（ステップＳ２１）。係る更新ファイルは、「Ｖｅｒ．３」に更新された「ファイル１」である。
【０１４２】
上記のような処理により、各対象装置３００（「対象装置Ａ１」、「対象装置Ａ２」）は、更新ファイルを作成あるいは入手可能である。各対象装置３００は、係る更新ファイルを用いて、ソフトウェアを更新することができる。
【０１４３】
以上、各対象装置３００が保持するソフトウェアの更新を例として、本実施形態におけるデータ提供システム２について説明した。本実施形態におけるデータ提供システム２は、ソフトウェアの更新に限定されず、他のデータの更新に適用することも可能である。
【０１４４】
上記のように構成されたデータ提供システム２は、データの更新を要する装置（例えば、代表装置２００あるいは対象装置３００）が保持する情報（更新対象のデータ）を更新する際、当該更新に用いられる配布データの提供に要する通信量を低減可能である。その理由は、データ提供システム２におけるサーバ装置１００が、複数の更新対象データ（例えばファイル）のうち、更新後のデータ（例えば最新版のファイル）との差分が小さいファイルの組合せを特定（選択）するからである。データ提供システム２におけるサーバ装置１００は、各対象装置３００がそれぞれ保持する更新対象のデータに対する差分を配布データとして個別に提供するのではなく、例えば、サイズが小さい差分情報を含む配布データを代表装置２００に提供すればよい。このことから、上記データ提供システム２によれば、各対象装置３００に個別に差分情報を転送する場合に比べて、配布データを提供する際の通信量を低減することができる。
【０１４５】
また、データ提供システム２においては、ファイル（更新対象データ）を特定可能な情報として、ファイルのハッシュ値が、各装置の間で送受信される。即ち、ファイルを特定するために、その実体を送受信する必要がないことから、通信量が抑えられる。
【０１４６】
また、データ提供システム２においては、データの更新を必要とする装置（例えば、代表装置２００あるいは対象装置３００）に対して高度な処理能力は必要とされない。その理由は、それらの装置が、更新対象のデータを特定可能な情報（例えば、ファイルのハッシュ値）の生成、及び、各装置が保持しているデータに関する情報（例えば、当該データバージョン情報や、当該データその物）の提供等、比較的単純な処理を実行すればよいからである。データ提供システム２によれば、各装置は、例えば、更新データのキャッシュや、各アーキテクチャ毎のファイル生成等の比較的複雑な処理を実行する必要がない。
【０１４７】
＜第２の実施形態に関する変形例＞
上記第２の実施形態の変形例について説明する。本変形例におけるデータ提供システム２の基本的な構成は、上記第２の実施形態と同様としてよい。
【０１４８】
本変形例においては、各対象装置３００が、更新対象のデータについて、１つ以上の世代のデータ（例えば、１以上の異なるバージョンのファイル）を保持する。本変形例における各対象装置３００は、例えば、あるソフトウェアを構成するファイルについて、当面必要とされないバージョンのファイルを保持する。
【０１４９】
具体例として、対象装置３００において稼働するソフトウェアが「ファイル１」から構成され、当該「ファイル１」には２つのバージョン（例えば「Ｖｅｒ．１」、「Ｖｅｒ．２」）が存在することを想定する。当該ソフトウェアが「Ｖｅｒ．２」の「ファイル１」を用いて構成される場合、「Ｖｅｒ．１」の「ファイル１」は当該ソフトウェアを稼働する際には不要であると考えられる。しかしながら、本変形例における対象装置３００は、「Ｖｅｒ．２」の「ファイル１」に加え「Ｖｅｒ．１」の「ファイル１」を保持してもよい。
【０１５０】
本変形例における対象装置３００は、例えば、上記ステップＳ５乃至Ｓ７において、保持する全てのバージョンのファイルについて、それぞれファイル情報（例えば、当該ファイルのハッシュ値）を生成し、代表装置２００に送信する。代表装置２００は、各対象装置３００から受信したファイル情報をまとめたファイル情報リスト（ハッシュ値の一覧）を、サーバ装置１００に送信する。
【０１５１】
上記第２の実施形態において説明したように、データ提供システム２におけるサーバ装置１００は、対象装置３００が保持する更新対象のデータ（ファイル）と、更新後のデータ（ファイル）との差分のサイズが小さくなるデータ（ファイル）の組合せを特定する。これにより、複数の対象装置３００が保持するデータの種類（例えばファイルのバージョン）が多い程、差分のサイズが小さい組合せの選択肢が多いと考えられる。本変形例における対象装置３００は、異なる複数のデータ（例えば、複数のバージョンのファイル）を保持することにより、データの組合せの選択肢を複数提供可能である。即ち、本変形例によれば、サーバ装置１００により、差分のサイズがより小さいデータの組合せが選択される可能性がある。これより、サーバ装置１００は、配布データの提供に要する通信量を更に低減可能である。
【０１５２】
＜第３の実施形態＞
本発明の基本的な実施形態である第３の実施形態について説明する。図１１は、本実施形態におけるデータ提供システム３の概要を例示する説明図である。
【０１５３】
図１１に例示するように、データ提供システム３においては、１以上のサーバ装置１０００と、１以上の対象装置２０００とが、通信ネットワークを通じて通信可能に接続されている。各対象装置２０００は、適切な通信機器（例えば、ルータやスイッチ）等を介して、通信ネットワークと接続されていてもよい。対象装置２０００が複数存在する場合、ある対象装置２０００が上記通信機器として機能してもよい。この場合、他の対象装置２０００は、通信機器として機能する対象装置２０００を介して、通信ネットワークに接続してもよい。
【０１５４】
サーバ装置１０００は、データを提供可能な装置であり、例えば、コンピュータ等の情報処理装置であってもよい。対象装置２０００は、サーバ装置１０００が提供するデータを用いて更新可能なデータを保持する装置であり、例えば、小型のコンピュータあるいはセンサ等の単機能デバイスであってもよい。以下、データ提供システム３の各構成要素について説明する。
【０１５５】
対象装置２０００は、通信ネットワークに接続され、複数の異なる第１のデータのうち、いずれかの第１のデータを保持する。
【０１５６】
上記第１のデータは、例えば、上記各実施形態において説明した更新対象データに相当する。係る第１のデータは、例えば、対象装置２０００が保持するソフトウェアを構成するファイルであってもよい。この場合、異なる複数の第１のデータは、複数のバージョンのソフトウェアを構成するファイルあってもよい。また、第１のデータは、対象装置２０００の構成を表す構成情報が設定されたデータであってもよい。この場合、異なる複数の第１のデータは、対象装置２０００に関する異なる構成を表す構成情報であってもよい。
【０１５７】
上記のように構成された対象装置２０００は、例えば、上記各実施形態における対象装置２０、あるいは、対象装置３００と同様に構成されてもよい。
【０１５８】
サーバ装置１０００は、複数の対象装置２０００が保持する、第１のデータと、第２のデータとの差分のサイズに基づいて、第２のデータに更新するいずれかの第１のデータを特定する。サーバ装置１０００は、当該特定した第１のデータを第２のデータに更新可能な差分情報を少なくとも含む配布データを、通信ネットワークを介して提供する。
【０１５９】
上記第２のデータは、例えば、上記各実施形態において説明した更新後データに相当するデータである。係る第２のデータは、例えば、特定のバージョン（例えば、新たなバージョン）のソフトウェアを構成するファイルであってもよい。また、係る第２のデータは、対象装置２０００に関する特定の構成（例えば、新たな構成）を表す構成情報が設定されたデータであってもよい。
【０１６０】
サーバ装置１０００は、例えば、複数の異なる第１のデータのうち、第２のデータとの差分のサイズが最も小さくなるような第１のデータを特定してもよい。また、サーバ装置１００は、例えば、係る差分のサイズがある基準よりも小さくなるような第１のデータを特定してもよい。
【０１６１】
上記のように構成されたデータ提供システム３において、特定された第１のデータを保持する対象装置２０００は、サーバ装置１０００が提供する差分情報を用いて自装置が含む第１のデータを更新する。なお、係る対象装置２０００は、更新した第１のデータを、他の対象装置２０００に提供してもよい。
【０１６２】
上記のように構成された本実施形態におけるデータ提供システム３によれば、対象装置２０００が保持する第１のデータを更新する際の、差分情報の提供に要する通信量を低減可能である。その理由は、サーバ装置１０００が、複数の異なる第１のデータと、第２のデータとの差分のサイズに基づいて、第２のデータに更新する第１のデータを特定するからである。これにより、サーバ装置１０００は、例えば、複数の異なる第１のデータのうち、第２のデータに対する差分のサイズが最も小さい第１のデータを特定してもよい。また、サーバ装置１０００は、例えば、係る差分のサイズがある基準値よりも小さい第１のデータを特定してもよい。これにより、サーバ装置１０００は、差分情報のサイズを低減可能である。
【０１６３】
本実施形態におけるサーバ装置１０００は、各対象装置２０００に対して、各対象装置２０００が保持する第１のデータに対する差分情報を個別に提供する必要がない。本実施形態におけるサーバ装置１０００は、例えば、サイズが小さい差分情報を、当該差分情報を適用可能な第１のデータを保持するいずれかの対象装置２０００に提供すればよい。このことから、データ提供システム３は、各対象装置２０００に個別に差分情報を転送する場合に比べて、差分情報を含む配布データを提供する際の通信量を低減することができる。
【０１６４】
＜第４の実施形態＞
以下、本発明の第４の実施形態について説明する。図１２は、本発明の第４の実施形態に係るサーバ装置の機能的な構成を例示するブロック図である。
【０１６５】
本実施形態におけるサーバ装置３０００は、データを提供可能な装置であり、例えば、コンピュータ等の情報処理装置であってもよい。図１２に例示するように、本実施形態におけるサーバ装置３０００は、情報管理部３００１と、更新処理部３００２と、を備える。サーバ装置３０００を構成するこれらの構成要素の間は、適切な通信方法により通信可能に接続されている。以下、それぞれの構成要素について説明する。
【０１６６】
情報管理部３００１は、複数の対象装置がそれぞれ保持する、異なる複数の第１のデータに関する情報を保持する。また、情報管理部３００１は、第１のデータを更新可能なデータである、第２のデータに関する情報を保持する。
【０１６７】
情報管理部３００１は、例えば、上記第１のデータ、及び第２のデータを特定可能な情報（例えば、当該データのハッシュ値等）を保持してもよい。また、情報管理部３００１は、上記第１のデータ、及び第２のデータのサイズに関する情報を保持し手もよい。また、情報管理部３００１は、上記第１のデータ、及び第２のデータそのものを保持してもよい。なお、上記第１のデータ及び第２のデータは、例えば、上記各実施形態において説明したソフトウェアを構成するファイル等であってもよい。この場合、異なる複数の第１のデータは、それぞれ異なるバージョンのソフトウェアを構成するファイルであってもよい。情報管理部３００１は、例えば、上記第２の実施形態におけるソフトウェア情報管理部１１０と同様に構成されてもよい。
【０１６８】
更新処理部３００２は、情報管理部３００１が保持する各情報を用いて、複数の異なる第１のデータのうち、いずれか１以上の第１のデータと、第２のデータとの間の差分のサイズを特定する。更新処理部３００２は、当該差分のサイズに基づいて、第２のデータに更新するいずれかの第１のデータを特定する。更新処理部３００２は、当該特定した第１のデータを第２のデータに更新可能な差分情報を少なくとも含む配布データを、通信ネットワークを介して提供する。更新処理部３００２は、例えば、上記第２の実施形態における更新処理部１１１と同様に構成されてもよい。
【０１６９】
上記のように構成されたサーバ装置３０００は、例えば、上記各実施形態におけるサーバ装置（１０、１００、１０００）と同様の構成を備えてもよい。
【０１７０】
上記のように構成されたサーバ装置３０００は、対象装置が保持する第１のデータを更新する際の、差分情報の提供に要する通信量を低減可能である。その理由は、サーバ装置３０００が、複数の異なる第１のデータと、第２のデータとの差分のサイズに基づいて、第２のデータに更新する第１のデータを特定するからである。これにより、サーバ装置３０００は、例えば、複数の異なる第１のデータのうち、第２のデータに対する差分のサイズが最も小さい第１のデータを特定することができる。また、サーバ装置３０００は、例えば、係る差分のサイズがある基準値よりも小さい第１のデータを特定することができる。これにより、サーバ装置３０００は、差分情報のサイズを低減可能であることから、当該分情報の提供に要する通信量を低減可能である。
【０１７１】
＜第５の実施形態＞
本発明の第５の実施形態について説明する。図１３は、本実施形態における更新対象装置４０００の機能的な構成を例示するブロック図である。
【０１７２】
更新対象装置４０００は、更新可能なデータを保持する装置であり、例えば、小型のコンピュータ等の情報処理装置であってもよく、あるいは、センサ等の単機能デバイスであってもよい。図１３に例示するように、更新対象装置４０００は、更新通知処理部４００１と、更新データ処理部４００２と、データ保持部４００３と、を備える。更新対象装置４０００を構成するこれらの構成要素の間は、適切な通信方法により通信可能に接続されている。以下、それぞれの構成要素について説明する。
【０１７３】
データ保持部４００３は、複数の異なる第１のデータのうち、いずれか１以上の第１のデータを保持する。なお、上記第１のデータは、例えば、上記各実施形態において説明したソフトウェアを構成するファイル等であってもよい。この場合、異なる複数の第１のデータは、それぞれ異なるバージョンのソフトウェアを構成するファイルであってもよい。データ保持部４００３は、例えば、上記第２の実施形態におけるデータ保持部３１０と同様に構成されてもよい。
【０１７４】
更新通知処理部４００１は、サーバ装置が送信した更新通知に基づいて、自装置（更新対象装置４０００）が保持する第１のデータを特定可能なデータ特定情報を生成する。更新通知処理部４００１が生成するデータ特定情報は、例えば、第１のデータのハッシュ値であってもよい。更新通知処理部４００１は、例えば、上記第２の実施形態における更新通知処理部３０８と同様に構成されてもよい。
【０１７５】
更新データ処理部４００２は、自装置（更新対象装置４０００）が、サーバ装置が配布する配布データに含まれるデータ特定情報により特定される第１のデータを保持する場合、以下の処理を実行する。即ち、この場合、更新データ処理部４００２は、当該配布データに含まれる、第１のデータを第２のデータに更新可能な差分情報を用いて、自装置が保持する第１のデータを第２のデータに更新する。また、この場合更新データ処理部４００２は、更新したデータを他の更新対象装置４０００に公開してもよい。
【０１７６】
また、更新データ処理部４００２は、自装置（更新対象装置４０００）が、サーバ装置が配布する配布データに含まれるデータ特定情報により特定される第１のデータを保持しない場合、以下の処理を実行する。即ち、この場合、更新データ処理部４００２は、多の情報処理装置から、第２のデータを取得する。更新データ処理部４００２は、取得した第２のデータを用いて、自装置が保持する第１のデータを更新してもよい。
【０１７７】
上記のように構成された更新対象装置４０００は、例えば、上記各実施形態における対象装置（２０、３００、２０００）と同様の構成を備えてもよい。
【０１７８】
上記のように構成された更新対象装置４０００は、当該装置が保持する第１のデータの更新に要する、サーバ装置との間の通信量を低減可能である。その理由は、更新対象装置４０００は、サーバ装置から提供された配布データに含まれる差分情報に応じて、自装置が保持する第１のデータを直接更新するか、あるいは、他の情報処理装置から更新された第１のデータを取得するからである。これにより、異なる第１のデータを保持する更新対象装置４０００が、それぞれ異なる差分情報をサーバ装置から取得する必要がない。即ち、異なるサイズの差分情報を含む配布データが、サーバ装置との間で重複して転送されることがない。これにより、更新対象装置４０００は、サーバ装置との間の通信量を低減することが可能である。
【０１７９】
＜ハードウェア及びソフトウェア・プログラム（コンピュータ・プログラム）の構成＞
以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。
【０１８０】
以下の説明においては、上記各実施形態において説明したデータ提供システム（１、２、３）をまとめて、単に「データ提供システム」と記載する。同様に、サーバ装置（１０、１００、１０００、３０００）を単に「サーバ装置」と記載する。代表装置２００を、単に「代表装置」と記載する。また、対象装置（２０、３００、２０００）及び更新対象装置４０００を、まとめて単に「対象装置」と記載する。また、これらデータ提供システムの各構成要素を、単に「データ提供システムの構成要素」と記載する場合がある。
【０１８１】
上記各実施形態において説明したデータ提供システムは、１つ又は複数の専用のハードウェア装置により構成されてもよい。その場合、上記各図（図１、図３、図４、図６、図８、図１１乃至図１３）に示した各構成要素は、その一部又は全部を統合したハードウェア（処理ロジックを実装した集積回路あるいは記憶デバイス等）を用いて実現されてもよい。
【０１８２】
データ提供システムが専用のハードウェアにより実現される場合、係るデータ提供システムの構成要素は、例えば、それぞれの機能を提供可能な回路構成（ｃｉｒｃｕｉｔｒｙ）により実現されてもよい。係る回路構成は、例えば、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）等の集積回路や、当該集積回路を用いて実現されたチップセット等を含む。この場合、データ提供システムの構成要素が保持するデータは、例えば、ＳｏＣとして統合されたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）領域やフラッシュメモリ領域、あるいは、当該ＳｏＣに接続された記憶デバイス（半導体記憶装置等）に記憶されてもよい。また、この場合、データ提供システムの各構成要素を接続する通信回線としては、周知の通信ネットワークを採用してもよい。また、各構成要素を接続する通信回線は、それぞれの構成要素間をピアツーピアで接続してもよい。
【０１８３】
また、上述したデータ提供システムの各構成要素（サーバ装置、代表装置、対象装置）は、図１４に例示するような汎用のハードウェアと、係るハードウェアによって実行される各種ソフトウェア・プログラム（コンピュータ・プログラム）とによって構成されてもよい。この場合、データ提供システムは、任意の数の、汎用のハードウェア装置及びソフトウェア・プログラムにより構成されてもよい。即ち、データ提供システムを構成する構成要素毎に、個別のハードウェア装置が割当てられてもよく、複数の構成要素が、一つのハードウェア装置を用いて実現されてもよい。
【０１８４】
図１４における演算装置１４００１は、汎用のＣＰＵ（中央処理装置：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やマイクロプロセッサ等の演算処理装置である。演算装置１４００１は、例えば後述する不揮発性記憶装置１４００３に記憶された各種ソフトウェア・プログラムを記憶装置１４００２に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。例えば、上記各実施形態におけるデータ提供システムの構成要素の機能は、演算装置１４００１により実行されるソフトウェア・プログラムを用いて実現されてもよい。
【０１８５】
記憶装置１４００２は、演算装置１４００１から参照可能な、ＲＡＭ等のメモリ装置であり、ソフトウェア・プログラムや各種データ等を記憶する。なお、記憶装置１４００２は、揮発性のメモリ装置であってもよい。
【０１８６】
不揮発性記憶装置１４００３は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置のような、不揮発性の記憶装置である。不揮発性記憶装置１４００３は、各種ソフトウェア・プログラムやデータ等を記憶可能である。
【０１８７】
サーバ装置あるいは対象装置が保持する更新対象データあるいは第１のデータは、不揮発性記憶装置１４００３に記憶されてもよい。また、サーバ装置におけるソフトウェア情報保持部１０９は、不揮発性記憶装置１４００３を用いて実現されてもよい。
【０１８８】
ネットワークインタフェース１４００６は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のＬＡＮ接続用インタフェース装置を採用してもよい。
【０１８９】
サーバ装置、代表装置、対象装置は、ネットワークインタフェース１４００６を介して、各種通信ネットワーク（広域ネットワーク、ローカルネットワーク等）に接続可能である。
【０１９０】
ドライブ装置１４００４は、例えば、後述する記録媒体１４００５に対するデータの読み込みや書き込みを処理する装置である。
【０１９１】
記録媒体１４００５は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。
【０１９２】
入出力インタフェース１４００７は、外部装置との間の入出力を制御する装置である。
【０１９３】
上述した各実施形態を例に説明した本発明におけるデータ提供システムの構成要素は、例えば、図１４に例示するハードウェア装置に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより、実現されてもよい。より具体的には、例えば、係るハードウェア装置に対して供給したソフトウェア・プログラムを、演算装置１４００１が実行することによって、本発明が実現されてもよい。この場合、係るハードウェア装置で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト、仮想環境基盤等のミドルウェアなどが各処理の一部を実行してもよい。
【０１９４】
更に、上記ソフトウェア・プログラムは記録媒体１４００５に記録されてもよい。この場合、上記ソフトウェア・プログラムは、上記データ提供システムの構成要素の出荷段階、あるいは運用段階等において、適宜ドライブ装置１４００４を通じて不揮発性記憶装置１４００３に格納されるよう構成されてもよい。
【０１９５】
なお、上記の場合において、上記ハードウェアへの各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具を利用して当該装置内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。
【０１９６】
そして、このような場合において、本発明は、係るソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み取り可能な記録媒体によって構成されると捉えることができる。この場合、係る記録媒体は、ハードウェア装置と独立した媒体に限らず、ＬＡＮやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記録媒体を含む。
【０１９７】
また、上述したデータ提供システムの構成要素は、図１４に例示するハードウェア装置を仮想化した仮想化環境と、当該仮想化環境において実行される各種ソフトウェア・プログラム（コンピュータ・プログラム）とによって構成されてもよい。この場合、図１４に例示するハードウェア装置の構成要素は、当該仮想化環境における仮想デバイスとして提供される。なお、この場合も、図１４に例示するハードウェア装置を物理的な装置として構成した場合と同様の構成にて、本発明を実現可能である。
【０１９８】
以上、本発明を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。更に、上述した各実施形態、あるいは、係る変更又は改良を加えた新たな実施形態を組合せた実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
【符号の説明】
【０１９９】
１    データ提供システム
２    データ提供システム
３    データ提供システム
１０    サーバ装置
２０    対象装置
１００    サーバ装置
１０１    ＩＤ割当て部
１０２    ファイル情報作成部
１０３    差分作成部
１０４    送付先決定部
１０５    更新通知送信部
１０６    ファイル情報受信部
１０７    差分決定部
１０８    差分情報送信部
１０９    ソフトウェア情報保持部
２００    代表装置
２０１    更新通知受信部
２０２    対象装置管理部
２０３    更新通知送信部
２０４    ファイル情報受信部
２０５    ファイル情報送信部
２０６    差分ファイル受信部
２０７    差分ファイル情報送信部
３００    対象装置
３０１    更新通知受信部
３０２    ファイル情報作成部
３０３    ファイル情報送信部
３０４    差分ファイル情報受信部
３０５    更新ファイル作成部
３０６    更新ファイル公開部
３０７    更新ファイル受信部
４００    広域ネットワーク
１０００    サーバ装置
２０００    対象装置
３０００    サーバ装置
３００１    情報管理部
３００２    更新処理部
４０００    更新対象装置
４００１    更新通知処理部
４００２    更新データ処理部
１４００１    演算装置
１４００２    記憶装置
１４００３    不揮発性記憶装置
１４００４    ドライブ装置
１４００５    記録媒体
１４００６    ネットワークインタフェース
１４００７    入出力インタフェース
【図１】
0006728744.tif 000002
【図２】
0006728744.tif 000003
【図３】
0006728744.tif 000004
【図４】
0006728744.tif 000005
【図５】
0006728744.tif 000006
【図６】
0006728744.tif 000007
【図７】
0006728744.tif 000008
【図８】
0006728744.tif 000009
【図９】
0006728744.tif 000010
【図１０】
0006728744.tif 000011
【図１１】
0006728744.tif 000012
【図１２】
0006728744.tif 000013
【図１３】
0006728744.tif 000014
【図１４】
0006728744.tif 000015