(57)【要約】【課題】ソフトウェアのアップデートに要する時間を最短にする。【解決手段】ソフトウェア記憶手段１３に格納されている旧版数ソフトウェアを要求された新版数ソフトウェアにアップデートする場合、まず、版数情報取得手段１４が、要求された任意の新版数ソフトウェアに関する版数情報を取得する。次に、処理時間算出手段１５が、取得した新版数ソフトウェアの版数情報と、旧版数ソフトウェアの版数情報とに基づき、全更新処理、部分更新処理、及び複写後更新処理それぞれの更新処理時間を算出する。処理選択手段１６は、算出されたそれぞれの更新処理時間を比較し、最も時間の短い更新処理を選択する。そして、更新手段１７が、選択された更新処理を用いてソフトウェア記憶手段１３の旧版数ソフトウェアを要求された任意の新版数ソフトウェアに更新する。【選択図】図１
2007334636.tif 000002
【特許請求の範囲】
【請求項１】
インストールされている旧版数ソフトウェアを要求された任意の新版数ソフトウェアに更新するソフトウェアの更新処理プログラムにおいて、
コンピュータを、
所定の版数のソフトウェアに関する版数情報が記録される版数管理情報から、要求された任意の新版数ソフトウェアの版数情報を取得する版数情報取得手段、
取得した前記新版数ソフトウェアの版数情報と、ソフトウェア記憶手段に格納されている更新対象の旧版数ソフトウェアの版数情報とに基づき、前記旧版数ソフトウェア全体を前記新版数ソフトウェアへ更新する全更新処理による更新処理時間、前記旧版数ソフトウェアと前記新版数ソフトウェアとの第１の差分データを更新する部分更新処理による更新処理時間、及び前記ソフトウェア記憶手段に格納されている前記旧版数ソフトウェアと前記新版数ソフトウェアとの間の中間版数ソフトウェアを前記旧版数ソフトウェアの格納領域に複写した後、前記中間版数ソフトウェアと前記新版数ソフトウェアとの第２の差分データを更新する複写後更新処理による更新処理時間をそれぞれ算出する処理時間算出手段、
前記処理時間算出手段によって算出された各々の更新処理時間を比較し、最も更新時間が短い更新処理を選択する処理選択手段、
前記処理選択手段によって選択された前記全更新処理、前記部分更新処理、または前記複写後更新処理のいずれかによって、前記ソフトウェア記憶手段に格納されている前記旧版数ソフトウェアを前記新版数ソフトウェアに更新する更新手段、
として機能させることを特徴とするソフトウェアの更新処理プログラム。
【請求項２】
前記処理時間算出手段は、
前記全更新処理による更新処理時間を、前記新版数ソフトウェアの全データを対象データとし、前記対象データを前記新版数ソフトウェアが格納される領域から前記コンピュータに転送する転送時間を算出するとともに、転送された前記対象データで前記旧版数ソフトウェアが格納されている該当領域を書き換える書換時間とを算出し、前記全データを対象とする前記転送時間と前記書換時間を合算して算出し、
前記部分更新処理による更新処理時間を、前記旧版数ソフトウェアの前記新版数ソフトウェアに対する前記第１の差分データを前記対象データとして前記転送時間、前記書換時間及び前記書換位置の位置決めを含むオーバヘッド時間を算出し、前記第１の差分データを対象とする前記転送時間、前記書換時間、及び前記オーバヘッド時間を合算して算出し、
前記ソフトウェア記憶手段に複数の異なる版数のソフトウェアが格納されている場合に、前記複写後更新処理による更新処理時間を、前記ソフトウェア記憶手段に格納されている前記中間版数ソフトウェアの全データを前記旧版数ソフトウェアが格納されている該当領域へ複写する複写時間と、前記中間版数ソフトウェアの前記新版数ソフトウェアに対する前記第２の差分データを前記対象データとして前記転送時間、前記書換時間、前記オーバヘッド時間を算出し、前記第２の差分データを対象とする前記転送時間、前記書換時間、及び前記オーバヘッド時間と、前記複写時間とを合算して算出する、
ことを特徴とする請求項１記載のソフトウェアの更新処理プログラム。
【請求項３】
前記版数情報には、各々版数によって更新管理がされる複数のコンポーネントから成る前記ソフトウェアに関し、前記所定の版数のソフトウェアに属する前記コンポーネントの版数が設定されており、
前記処理時間算出手段は、前記旧版数ソフトウェアの版数情報または前記中間版数ソフトウェアの版数情報と、前記新版数ソフトウェアの版数情報とに基づき、双方の版数に属する前記コンポーネントの版数を照合し、異なる版数の前記コンポーネントの集合を前記第１の差分データ及び前記第２の差分データとする、
ことを特徴とする請求項１記載のソフトウェアの更新処理プログラム。
【請求項４】
前記新版数ソフトウェアは、前記コンピュータとネットワークを介して接続する管理サーバに格納されており、
前記版数情報取得手段は、前記新版数ソフトウェアを管理する前記管理サーバに対し、前記新版数ソフトウェアに関する版数情報の要求を送信し、要求に応じて前記管理サーバが生成した前記新版数ソフトウェアに関する版数情報を受信することによって、前記新版数ソフトウェアの版数情報を取得し、
前記処理時間算出手段は、要求データが前記管理サーバから前記ネットワークを介して転送される時間を前記転送時間とし、
前記更新手段は、前記処理選択手段によって前記全更新処理が選択された場合は、前記新版数ソフトウェアの全データを前記管理サーバに要求し、前記部分更新処理が選択された場合は、前記第１の差分データを前記管理サーバに要求し、前記複写後更新処理が選択された場合は、前記第２の差分データを前記管理サーバに要求し、要求に応じて前記管理サーバが送信したデータを受信し、受信データに基づき該当領域を更新する、
ことを特徴とする請求項１記載のソフトウェアの更新処理プログラム。
【請求項５】
インストールされている旧版数ソフトウェアを要求された任意の新版数ソフトウェアに更新するソフトウェアの更新処理装置において、
前記インストールされたソフトウェアを格納するソフトウェア記憶手段と、
所定の版数のソフトウェアに関する版数情報が記録される版数管理情報から、要求された任意の新版数ソフトウェアの版数情報を取得する版数情報取得手段と、
取得した前記新版数ソフトウェアの版数情報と、前記ソフトウェア記憶手段に格納されている更新対象の旧版数ソフトウェアの版数情報とに基づき、前記旧版数ソフトウェア全体を前記新版数ソフトウェアへ更新する全更新処理による更新処理時間、前記旧版数ソフトウェアと前記新版数ソフトウェアとの第１の差分データを更新する部分更新処理による更新処理時間、及び前記ソフトウェア記憶手段に格納されている前記旧版数ソフトウェアと前記新版数ソフトウェアとの間の中間版数ソフトウェアを前記旧版数ソフトウェアの格納領域に複写した後、前記中間版数ソフトウェアと前記新版数ソフトウェアとの第２の差分データを更新する複写後更新処理による更新処理時間をそれぞれ算出する処理時間算出手段と、
前記処理時間算出手段によって算出された各々の更新処理時間を比較し、最も更新時間が短い更新処理を選択する処理選択手段と、
前記処理選択手段によって選択された前記全更新処理、前記部分更新処理、または前記複写後更新処理のいずれかによって、前記ソフトウェア記憶手段に格納されている前記旧版数ソフトウェアを前記新版数ソフトウェアに更新する更新手段と、
を有することを特徴とするソフトウェアの更新処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェアの更新処理プログラム及び更新処理装置に関し、特に情報処理装置にインストールされている旧版数ソフトウェアを要求された任意の新版数ソフトウェアに更新するソフトウェアの更新処理プログラム及び更新処理装置に関する。
【背景技術】
【０００２】
情報処理装置にインストールされ、所定の処理機能を実現させるソフトウェアは、必要に応じて適宜バージョンアップされている。したがって、問題の解決や所定の機能を実行させるためには、バージョンアップされたソフトウェアを情報処理装置にインストールするアップデート作業が必要になる。
【０００３】
従来のアップデート作業には、任意の新版数のソフトウェア全体を一度にアップデートする（以下、全更新とする）方法と、旧版数から更新された差分データのみをアップデートする（以下、部分更新とする）方法とがあり、全更新・部分更新のどちらにするかは予め決められていた。
【０００４】
全更新する場合は、本来変更が必要ないファイルを含めて書き換えが行われるため、更新データ量が多くなり、作業効率が良くない。一方、部分更新する場合は、必要な箇所のみ書き換えが行われるため、更新データ量は少ない。しかし、インストールされている旧版数と任意の新版数との間に複数段階の版数があった場合、段階ごとに各ファイルの版数の差分を書き換えていかなければならず、作業が煩雑になるという問題があった。たとえば、１版から３版への更新の場合、まず、１版から２版への差分書き換えを行い、次に、２版から３版への差分書き換えを行う必要があった。
【０００５】
そこで、版数段階ごとの差分ファイルを生成し、任意の旧版数から任意の新版数にアップデートするために必要な差分ファイルの組み合わせを求め、インストールを行うインストーラが提案されている（たとえば、特許文献１参照）。
【特許文献１】特開平１０−２６０８２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、従来のソフトウェアのアップデートでは、設定されたアップデート方法が必ずしも時間的に最短であるとは限らないという問題点があった。
上述のように、必要な部分のみ更新する部分更新における更新データ量は、全更新の場合より少ない。しかし、個別差分データごとに、データの格納アドレスを特定して書き換える処理を行わなければならない。したがって、書換箇所が多い場合などには、書換位置のサーチ、あるいは、差分データの結合や分解などの時間が増大し、結果として処理時間が長くなることがある。これに対し、全更新では、書換位置のサーチなどに要する時間は必要ない。このため、部分更新する際の変更箇所の数や差分データサイズ、ネットワーク上の転送速度、装置性能などによっては、部分更新より全更新の方が処理に要する時間が短い場合がある。しかしながら、従来のソフトウェアのアップデートでは、更新に要する処理時間を考慮した更新方法の選択がなされていなかった。
【０００７】
また、情報処理装置には、装置内に複数の版数のソフトウェアを格納して運用するものがある。たとえば、カーナビゲーションシステムの端末装置や携帯電話機などには、用途に応じた処理の切り替えなどのため、同じソフトウェアについて複数の版数を装置内に格納しているものがある。このような装置では、装置内に複数の版数を格納していても、アップデートはそれぞれの版数ごとに独立して行われていた。たとえば、格納されている最も古い旧版数を最新版数にアップデートしようとした場合、この旧版数と最新版数の差分データを管理サーバなどから取得し、アップデートを行っていた。すなわち、アップデートされる差分データが装置内に格納されている他の版数にあったとしても、新たにこの差分データを管理サーバなどから取得していた。このため、管理サーバより取得しなければならない差分データ量が多くなり、処理に要する時間も長くなっていた。
【０００８】
本発明はこのような点に鑑みてなされたものであり、ソフトウェアのアップデートに要する時間を最短にすることが可能なソフトウェアの更新処理プログラム及び更新処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では上記課題を解決するために、図１に示すような処理をコンピュータに実行させるためのソフトウェアの更新処理プログラムが提供される。本発明に係るソフトウェアの更新処理プログラムは、情報処理装置１０に適用され、コンピュータに以下の処理を実行させることができる。情報処理装置１０は、ソフトウェア記憶手段１３、版数情報取得手段１４、処理時間算出手段１５、処理選択手段１６、及び更新手段１７を具備し、情報処理装置１０にインストールされている旧版数ソフトウェアを、要求された任意の新版数ソフトウェアに更新する処理を行う。なお、ここでは、更新対象のソフトウェア格納領域について、アップデート前にソフトウェア記憶手段１３に格納されていたソフトウェアの版数を旧版数、アップデート後にソフトウェア記憶手段１３に格納されているソフトウェアの版数を新版数とする。
【００１０】
ソフトウェア記憶手段１３には、予め用意された領域に任意の版数のソフトウェアが格納されている。版数情報取得手段１４は、所定の版数のソフトウェアに関する版数情報が記録される版数管理情報から、要求された任意の新版数ソフトウェアの版数情報を取得する。処理時間算出手段１５は、取得した新版数ソフトウェアの版数情報と、ソフトウェア記憶手段１３に格納されている更新対象の旧版数ソフトウェアの版数情報とに基づき、更新処理に要する時間を算出する。第１に、旧版数ソフトウェア全体を新版数ソフトウェアへ更新する全更新処理による更新処理時間を算出する。第２に、旧版数ソフトウェアと新版数ソフトウェアとの第１の差分データを更新する部分更新処理による更新処理時間を算出する。第３に、ソフトウェア記憶手段１３に格納されている旧版数ソフトウェアと新版数ソフトウェアとの間の中間版数ソフトウェアを旧版数ソフトウェアの格納領域に複写した後、中間版数ソフトウェアと新版数ソフトウェアとの第２の差分データを更新する複写後更新処理による更新処理時間を算出する。なお、中間版数ソフトウェアは、旧版数ソフトウェアよりも新版数ソフトウェアに近い版数であり、新版数ソフトウェアに対し、旧版数ソフトウェアよりも類似している。処理選択手段１６は、処理時間算出手段１５によって算出された各々の更新処理時間を比較し、最も更新時間が短い更新処理を選択する。更新手段１７は、処理選択手段１６によって選択された全更新処理、部分更新処理、または複写後更新処理のいずれかによって、ソフトウェア記憶手段１３に格納されている旧版数ソフトウェアを新版数ソフトウェアに更新する。
【００１１】
このような情報処理装置１０によれば、ソフトウェア記憶手段１３に格納されている旧版数ソフトウェアを要求された新版数ソフトウェアにアップデートする場合、まず、版数情報取得手段１４が、要求された任意の新版数ソフトウェアに関する版数情報を取得する。次に、処理時間算出手段１５が、取得した新版数ソフトウェアの版数情報と、旧版数ソフトウェアの版数情報とに基づき、全更新処理、部分更新処理、及び複写後更新処理それぞれの更新処理時間を算出する。処理選択手段１６は、算出されたそれぞれの更新処理時間を比較し、最も時間の短い更新処理を選択する。そして、更新手段１７が、選択された更新処理を用いてソフトウェア記憶手段１３の旧版数ソフトウェアを要求された任意の新版数ソフトウェアに更新する。これにより、最も処理時間の短い処理手順でアップデートが行われる。
【発明の効果】
【００１２】
本発明では、情報処理装置にインストールされている旧版数のソフトウェアをアップデートする場合に、実行可能な更新処理手順それぞれについて、更新に要する更新処理時間を算出する。そして、時間的に最短の更新処理手順を選択し、選択された更新処理手順に従ってアップデートを行う。これにより、転送データサイズ、データ転送時間、及びソフトウェア記憶領域への書き込み時間などのシステム環境に応じて更新処理時間が変動する更新処理手順のうち、更新処理時間が最短の更新処理手順によるアップデートを行うことができる。
【００１３】
この結果、どのような環境下においても、情報処理装置のソフトウェアのアップデートを最短で実行することが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、実施の形態に適用される発明の概念図である。
【００１５】
本発明に係るアップデートシステムは、必要に応じてソフトウェアをアップデートする情報処理装置１０と、アップデートに利用される複数版数のソフトウェアを管理する管理サーバ２０とが、図示しないネットワークを介して接続する。
【００１６】
情報処理装置１０は、管理情報記憶手段１１、時間情報記憶手段１２、ソフトウェア記憶手段１３の各記憶手段と、版数情報取得手段１４、処理時間算出手段１５、処理選択手段１６、及び更新手段１７の各処理手段を具備し、状況に応じてソフトウェア記憶手段１３に格納されている複数バージョンのシステムソフトウェアを使い分けて動作する。
【００１７】
システムソフトウェアは、複数のコンポーネントから構成されており、各コンポーネントも版数によって管理されている。すなわち、システムソフトウェアの版数は、そのシステムソフトウェアに属するコンポーネントの種類、または、コンポーネントの版数が変わるごとに更新される。
【００１８】
管理情報記憶手段１１は、ソフトウェア記憶手段１３に用意されているシステムＡ領域１３ａ及びシステムＢ領域１３ｂを管理するための管理情報を格納する。管理情報には、ソフトウェア記憶手段１３に格納されている全システムソフトウェアに関する全体情報と、システム領域ごとに、格納されているシステムソフトウェアの版数、このシステムソフトウェアに属するコンポーネント名、そのコンポーネントの版数やサイズなどの版数情報が設定される領域別情報とがある。
【００１９】
時間情報記憶手段１２は、処理時間算出手段１５が各更新処理による更新処理時間を算出する際に参照する時間情報を格納する。時間情報には、管理サーバ２０からアップデートに用いるデータを転送する転送時間を算出するための転送時間情報、転送されたデータをソフトウェア記憶手段１３に書き込む書換時間を算出するための書換時間情報、及びソフトウェア記憶手段１３内でデータをコピーする複写時間を算出するための複写時間情報がある。転送時間情報として、たとえば、サイズ当たりの転送時間が設定される。この転送時間情報は、管理サーバ２０とのネゴシエーション時のデータ転送速度から計算した値や、過去のダウンロード時の実績値などから算出される。同様に、書換時間情報として、ソフトウェア記憶手段１３にデータを書き込む際のサイズあたりの書換時間や、サイズ当たりの複写時間、書換位置サーチのためなどのオーバヘッド時間などが設定される。複写時間情報として、サイズ当たりの複写時間が設定される。書換時間情報及び複写時間情報は、情報処理装置１０の基本性能に基づく装置固有の値として、予め設定される。
【００２０】
ソフトウェア記憶手段１３は、インストールされたシステムソフトウェアを複数格納するメモリ領域を具備する。図の例では、システムＡ領域１３ａと、システムＢ領域１３ｂの２つの領域が用意されており、それぞれ異なる版数のシステムソフトウェアが格納されている。
【００２１】
版数情報取得手段１４は、図示しない入力手段を介してアップデートの指示が入力されると、管理サーバ２０に対し、指示に応じた版数のシステムソフトウェアに関する版数情報を要求する。たとえば、最新版に更新する場合は、最新版のシステムソフトウェアに関する版数情報を要求する。そして、管理サーバ２０から要求した版数の版数情報を受信したら、この版数情報を処理時間算出手段１５へ送る。
【００２２】
処理時間算出手段１５は、版数情報取得手段１４から取得した新たにインストールする新版数のシステムソフトウェアの版数情報を用いて、全更新処理、部分更新処理、及び複写後更新処理それぞれの処理による更新処理時間の予想値を算出する。全更新処理の場合は、新版数のシステムソフトウェアの全データで旧版数のシステムソフトウェア領域を更新するために要する時間を算出する。部分更新処理の場合は、旧版数ソフトウェアと新版数ソフトウェアの差分データで旧版数ソフトウェア領域を更新するための時間を算出する。なお、差分データは、双方のシステムソフトウェアの版数情報に基づき、各コンポーネントの版数を比較することによって検出する。すなわち、差分データは、双方のシステムソフトウェアの版数が異なるコンポーネントの集合を意味する。複写後更新の場合は、ソフトウェア記憶手段１３に格納されている旧版数と新版数の間の中間版数のシステムソフトウェアを選択する。版数はソフトウェアの変更があるごとに更新されるので、旧版数よりも新版数に近い中間版数のソフトウェアは、旧版数と比較して、より新版数に類似していると推定できる。そして、中間版数のシステムソフトウェアで旧版数のシステムソフトウェア領域を書き換えた後、中間版数と新版数との差分データで中間版数のシステムソフトウェアに更新された旧版数のシステムソフトウェア領域を更新するために要する時間を算出する。算出した結果は、処理選択手段１６へ送る。更新処理時間の算出の詳細は、後述する。
【００２３】
処理選択手段１６は、処理時間算出手段１５によって算出された、全更新処理、部分更新処理、及び複写後更新処理それぞれによる更新処理時間を比較し、最も時間の短い更新処理を選択する。
【００２４】
更新手段１７は、処理選択手段１６の選択した更新処理を用いて、対象の旧版数のシステムソフトウェアが格納されているソフトウェア記憶手段１３の領域を、新版数のシステムソフトウェアに更新する。全更新が選択された場合は、管理サーバ２０に対し、新版数のシステムソフトウェアに属する全データを要求し、転送された全データをソフトウェア記憶手段１３の該当領域に書き込む。部分更新が選択された場合は、管理サーバ２０に対し、旧版数のシステムソフトウェアから更新された差分データを要求し、転送された差分データによってソフトウェア記憶手段１３に格納されている旧版数のシステムソフトウェアの該当領域を更新する。複写後更新が選択された場合は、ソフトウェア記憶手段１３内で、複写元の版数のシステムソフトウェアに属する全データを対象の旧版数ソフトウェアの領域に複写する。続いて、管理サーバ２０に対し、複写元の版数のシステムソフトウェアと新版数のシステムソフトウェアとの差分データを要求し、転送された差分データによって、旧版数のシステムソフトウェアの領域に格納されている複写元の版数のシステムソフトウェアの該当領域を更新する。さらに、管理情報記憶手段１１に格納されている管理情報を更新し、旧版数のシステムソフトウェアの版数情報を削除し、新たにインストールした新版数のシステムソフトウェアの版数情報を登録する。
【００２５】
一方、管理サーバ２０は、版数管理情報記憶手段２１及びシステムソフトウェア記憶手段２２の記憶手段と、版数情報通知手段２３、差分データ抽出手段２４、及び転送処理手段２５を具備する。
【００２６】
版数管理情報記憶手段２１には、システムソフトウェア記憶手段２２に格納されているシステムソフトウェアの版数に関する版数管理情報が格納されている。
システムソフトウェア記憶手段２２には、情報処理装置１０のアップデートに利用される複数版数のシステムソフトウェアが格納されている。
【００２７】
版数情報通知手段２３は、情報処理装置１０から要求された版数のシステムソフトウェアに関する版数情報を版数管理情報記憶手段２１から読み出し、読み出したデータを情報処理装置１０へ送信する。
【００２８】
差分データ抽出手段２４は、情報処理装置１０から要求された新版数ソフトウェアと旧版数ソフトウェアの差分データをシステムソフトウェア記憶手段２２から抽出し、転送処理手段２５へ出力する。差分データには、全データも含まれる。
【００２９】
転送処理手段２５は、差分データ抽出手段２４が抽出した差分データを情報処理装置１０へ転送する。
ここで、全更新、部分更新、及び複写後更新それぞれの更新処理手順と更新処理時間算出について説明する。以下の説明では、情報処理装置１０のソフトウェア記憶手段１３には、異なる３つの版数のシステムソフトウェアを格納するため、システムＡ領域１３ａ、システムＢ領域１３ｂ、及びシステムＣ領域１３ｃが用意されているとする。
【００３０】
図２は、実施の形態に適用される全更新処理を示した図である。
図に示したように、情報処理装置１０のソフトウェア記憶手段１３のシステムＡ領域１３ａには第１版、システムＢ領域１３ｂには第２版、及びシステムＣ領域には第３版のシステムソフトウェアが格納されている。システムソフトウェアは、版数が大きくなるほど新しいものになっている。以下、最も古い第１版を最新の第４版にアップデートする場合について説明する。
【００３１】
全更新では、管理サーバ２０に対し、第４版のシステムソフトウェアに属する全コンポーネントのデータを要求する。管理サーバ２０は、要求に従って第４版の全コンポーネント・データを転送する。情報処理装置１０では、転送された第４版の全コンポーネント・データを、第１版が格納されているシステムＡ領域１３ａに書き込み、システムソフトウェアを第１版から第４版にアップデートする。
【００３２】
ゆえに、更新処理に要する時間は、全体転送時間と全体書換時間とであり、
更新処理時間＝  ［サイズ当たりの転送時間］×［全体サイズ］＋［サイズ当たりの書換時間］×［全体サイズ］                                        ・・・（１）
によって算出することができる。なお、サイズ当たりの転送時間は、管理サーバ２０から情報処理装置１０にデータを転送するために要する時間であり、時間情報記憶手段１２に転送時間情報として設定されている。全体サイズは、第４版２２ａの全コンポーネント・データのサイズであり、版数情報取得手段１４が取得した新版数のシステムソフトウェアの版数情報に基づいて算出される。サイズ当たりの書換時間は、ソフトウェア記憶手段１３にデータ書き込みを行うために要する時間であり、時間情報記憶手段１２に書換時間情報として設定されている。
【００３３】
全更新処理は、全データに対し、差分データ（コンポーネント数）が大きいような場合、部分更新処理などより処理時間が短くなる可能性がある。
図３は、実施の形態に適用される部分更新処理を示した図である。図２と同じものには同じ番号を付す。
【００３４】
部分更新では、旧版数のシステムソフトウェアから更新されたコンポーネントのコンポーネント・データのみを更新する。情報処理装置１０は、管理サーバ２０から取得した最新版数の版数情報と、更新対象の旧版数の版数情報とを比較し、版数が異なっているコンポーネント、すなわち、更新されているコンポーネントを検出する。そして、管理サーバ２０に対し、更新されているコンポーネントのデータを要求する。管理サーバ２０は、要求に従って、指定されたコンポーネントのデータを転送する。図の例では、更新されているコンポーネントとして、コンポーネント２２１、２２２、２２３が検出され、管理サーバ２０に対してデータが要求される。管理サーバ２０は、システムソフトウェア記憶手段２２から該当するコンポーネント・データを抽出し、情報処理装置１０に転送する。情報処理装置１０では、取得した各コンポーネント・データを第１版が格納されているシステムＡ領域１３ａの対応領域２２１ｃ、２２２ｃ、２２３ｃに書き込み、第４版にアップデートする。
【００３５】
ゆえに、更新処理に要する時間は、各コンポーネントのデータ転送時間と、各コンポーネントの書換時間とに、書換位置のサーチなどのオーバヘッドを加えた時間であり、
更新処理時間＝  ［サイズ当たりの転送時間］×［差分サイズ］＋［サイズ当たりの書換時間］×［差分サイズ］＋オーバヘッド時間                          ・・・（２）
によって算出することができる。なお、差分サイズは、更新される各コンポーネント・データの合計サイズであり、管理サーバ２０側で管理しているシステムソフトウェアの版数ごとの差分データのサイズである。部分更新処理では、差分データのみを更新するため、全データに対し、差分データ（コンポーネント数）が小さい場合は、全更新処理よりも処理時間が短くなる可能性が高い。
【００３６】
図４は、実施の形態に適用される複写後更新処理を示した図である。図２、図３と同じものには同じ番号を付す。
複写後更新では、情報処理装置１０では、まず、各システムソフトウェアの版数情報に基づき、ソフトウェア記憶手段１３に格納されているシステムソフトウェアのうち、所望する新版数（この例では、最新版の第４版）と最も差分の小さい版を検出する。ここでは、第３版のシステムソフトウェアが最新版との差分が最も小さく、コンポーネント２２３のみが異なるとする。そこで、最新版に最も類似すると判定された第３版のシステムソフトウェアを、第３版が格納されているシステムＣ領域１３ｃから読み出し、第１版が格納されているシステムＡ領域１３ａに複写する。その後、第３版と第４版（最新版）の差分であるコンポーネント２２３を管理サーバ２０に要求する。管理サーバ２０は、要求に従って、指定されたコンポーネント２２３のデータを転送する。情報処理装置１０では、取得したコンポーネント２２３によって第１版が格納されているシステムＡ領域１３ａの対応領域２２３ｃを更新し、第４版にアップデートする。
【００３７】
ゆえに、更新処理に要する時間は、全体の複写時間、各コンポーネントのデータ転送時間と書換時間、及びオーバヘッド時間とを合算した時間であり、
更新処理時間＝  ［サイズ当たりの複写時間］×［全体サイズ］＋［サイズ当たりの転送時間］×［差分サイズ］＋［サイズ当たりの書換時間］×［差分サイズ］＋オーバヘッド時間                                                                ・・・（３）
によって算出することができる。なお、サイズ当たりの複写時間は、ソフトウェア記憶手段１３内でデータを複写するために要する時間であり、時間情報記憶手段１２に複写時間情報として設定されている。通常、ネットワークなどを介さない装置内での複写に要する時間は、ネットワークを介して行われる処理時間よりはるかに短い。また、差分データ（コンポーネント数）を部分更新の場合より少なくできるので、複写時間を考慮しても全更新や部分更新よりも処理時間が短くなる場合がある。
【００３８】
図１に戻って、このような構成の情報処理装置１０と管理サーバ２０とにおけるアップデート処理について説明する。
情報処理装置１０では、図示しない入力手段を介して、所定の版数へのアップデートが指示されると、版数情報取得手段１４が、アップデート・データを管理する管理サーバ２０に対し、指定された版数のソフトウェアに関する版数管理情報を要求する。管理サーバ２０の版数情報通知手段２３は、要求を受信すると、版数管理情報記憶手段２１から該当する版数情報を読み出し、情報処理装置１０へ送信する。版数情報取得手段１４は、受信した版数情報を処理時間算出手段１５へ送る。
【００３９】
処理時間算出手段１５では、全更新、部分更新、及び複写後更新に要する更新処理時間を算出する。全更新による更新処理時間は、式（１）を用いて、新版数の全データの転送時間と書換時間から算出する。部分更新による更新処理時間は、式（２）を用いて、更新される各コンポーネント・データの転送時間と書換時間、及びオーバヘッド時間から算出する。更新対象のコンポーネントは、ソフトウェア記憶手段１３に格納されている更新対象の旧版数のシステムソフトウェアの版数情報を管理情報記憶手段１１から読み出し、版数情報取得手段１４が取得した新版数のシステムソフトウェアの版数情報と比較して検出する。複写後更新による更新処理時間は、式（３）を用いて、新版数に類似した版数のシステムソフトウェアへの複写時間、複写した版数から更新が必要な各コンポーネント・データの転送時間と書換時間、及びオーバヘッド時間から算出する。複写元の版数は、ソフトウェア記憶手段１３に格納されている旧版数以外の版数のシステムソフトウェアに関する版数情報を管理情報記憶手段１１から読み出し、版数情報取得手段１４が取得した新版数のシステムソフトウェアの版数情報と比較して検出する。また、複写後のシステムソフトウェアからさらに更新が必要なコンポーネントは、複写元のシステムソフトウェアの版数情報と、新版数のシステムソフトウェアの版数情報を比較して検出する。なお、情報処理装置１０に１つのシステムを格納する領域しか用意されていない場合は、複写後更新による更新処理時間は算出しない。
【００４０】
処理選択手段１６は、処理時間算出手段１５が算出した、全更新による更新処理時間、部分更新による更新処理時間、及び複写後更新処理が実行可能であった場合は複写後更新による更新処理時間を比較し、最も更新処理時間が短い更新方法を選択する。更新手段１７は、処理選択手段１６が選択した更新処理に基づき、更新対象の旧版数のシステムソフトウェアが格納されているソフトウェア記憶手段１３の領域を、要求された新版数のシステムソフトウェアに書き換え、アップデートを完了する。なお、アップデートに伴って、管理情報記憶手段１１の管理情報も更新される。
【００４１】
以上の処理手順が実行されることにより、状況に応じて変化するそれぞれの更新処理手順における更新処理時間が算出され、算出された更新処理時間に基づき、今回のアップデートにおいて時間的に最短となる更新処理手順が決定されて実行される。したがって、どのような状況下においても、最も処理時間の短い処理手順でアップデートを行うことができる。
【００４２】
なお、上記の説明では、管理サーバ２０が保有するコンポーネントをダウンロードしてソフトウェアの更新処理を行うとしたが、ＣＤ（Compact Disc）などの記録媒体に記録されたコンポーネントを読み出してソフトウェア更新処理を行う場合にも本発明を適用することができる。たとえば、予め、記録媒体の所定の領域に、コンポーネントとコンポーネントの格納情報とともに、版数管理情報を記録しておく。情報処理装置１０の版数情報取得手段１４では、記録媒体の所定の領域に格納されている版数管理情報を読み出し、任意の新版数ソフトウェアの版数情報を取得する。処理時間算出手段１５では、全更新処理、部分更新処理、及び複写後更新処理による更新処理時間をそれぞれ算出する。このとき、転送時間は、記録媒体からのデータ転送時間とする。また、記録媒体のシークタイムなどを考慮し、オーバヘッド時間を算出してもよい。処理選択手段１６は、更新処理時間が最短の更新処理を選択する。そして、更新手段１７は、管理サーバ２０からコンポーネントを取得する代わりに、記録媒体からコンポーネントを読み出し、選択された更新処理を実行する。
【００４３】
このように、任意の版数のソフトウェアが格納されている記録媒体を用いる場合にも、最短時間でアップデートを行うことができる。
以下、実施の形態を、装置内に複数の版数のソフトウェアシステムを格納する領域を具備し、用途によってソフトウェアシステムを切り替えて運用されるクライアントのアップデートシステムに適用した場合を例に図面を参照して詳細に説明する。
【００４４】
図５は、本発明の実施の形態のシステム構成を示す構成である。
本発明の実施の形態のアップデートシステムは、不特定多数のクライアント、図では、クライアントａ１００ａ、クライアントｂ１００ｂ、クライアントｃ１００ｃ、及びクライアントｄ１００ｄが、ネットワーク３００を介して複数版数のソフトウェアシステムのデータを管理する管理サーバ２００と接続する。
【００４５】
クライアントａ１００ａは、複数のソフトウェアシステム（以下、システムとする）を記憶する記憶部１３０を具備し、記憶部１３０に格納されているシステムを切り替えて運用される。図の例では、記憶部１３０には、システムＡ１３１、システムＢ１３２、システムＣ１３３、及びシステムＤ１３４の４つのシステムを格納する領域が確保されている。本実施の形態のアップデート処理部１８０は、図示しない入力手段によってアップデート指示が入力されると、記憶部１３０に格納されているシステムのうち、最も古い版数のシステム・データを削除し、そのシステム領域を最新版数のシステム・データに更新するアップデート処理を行う。なお、内部構成を図示していないクライアントｂ１００ｂ、クライアントｃ１００ｃ、及びクライアントｄ１００ｄは、クライアントａ１００ａと同様の構成をとる。
【００４６】
管理サーバ２００は、データベース２１０に格納されている複数の版数のシステムに属するコンポーネントのデータを管理する。また、ネットワーク３００を介して不定期に入力されるクライアントからの要求を受けて、版数管理情報や要求された版数のコンポーネントのデータを要求元のクライアントに提供する。
ここで、クライアント１００のハードウェア構成について説明する。図６は、本実施の形態のクライアントのハードウェア構成例を示すブロック図である。
【００４７】
クライアント１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、通信インタフェース１０６が接続されている。
【００４８】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納されている。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納されている。ＨＤＤ１０３には、ＯＳやアプリケーションのプログラムが格納されている。複数のシステムを記憶する記憶部１３０は、このＨＤＤ１０３に設けられる。グラフィック処理装置１０４には、モニタ１０８が接続されており、ＣＰＵ１０１からの命令に従って画像をモニタ１０８の画面に表示させる。入力インタフェース１０５には、キーボード１０９ａやマウス１０９ｂが接続されており、キーボード１０９ａやマウス１０９ｂから送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。なお、入力インタフェース１０５には、リモートコントローラなどが接続されていてもよい。通信インタフェース１０６は、ネットワーク３００に接続されており、ネットワーク３００を介して管理サーバ２００との間でデータの送受信を行う。
【００４９】
このようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図６には、クライアントのハードウェア構成を示したが、管理サーバのハードウェア構成も同様である。
【００５０】
次に、クライアントのアップデート処理に関するソフトウェア構成について説明する。
図７は、本実施の形態のクライアントのアップデート処理部のソフトウェア構成例を示すブロック図である。図５と同じものには同じ番号を付し、説明は省略する。図には、アップデート処理部１８０とともに、アップデート処理部１８０と関連する通信処理部１９０及び各記憶部を示している。
【００５１】
本発明の実施の形態のクライアントのアップデート処理部１８０は、管理サーバ２００から最新版のシステムに関する版数情報を取得する版数情報取得部１４０、それぞれの更新処理方法による更新処理時間を算出する処理時間算出部１５０、アップデート処理時間が最短の更新方法を選択する選択部１６０、及び選択された更新方法でアップデートを行う更新部１７０を具備し、アップデート指示が入力されると、最も古いシステムを最新版に更新する。また、管理情報記憶部１１０は、記憶部１３０に格納されているシステムに関する管理情報を格納する記憶手段である。時間情報記憶部１２０は、更新処理時間算出時に必要な各種パラメータの値を格納する記憶手段である。記憶部１３０は、複数の異なる版数のシステムを格納する記憶手段であり、それぞれの領域には、ａ、ｂ、ｃの３つのコンポーネントより構成される任意の版数のシステムが格納されている。図では、Ａ−ａは、システムＡ領域１３１のコンポーネントａを表す。同様に、Ａ−ｂは、システム領域Ａ１３１のコンポーネントｂを表し、Ａ−ｃは、システムＡ領域１３１のコンポーネントｃを表す。システムＢ領域１３２、システムＣ領域１３３、及びシステムＤ領域１３４についても同様である。通信処理部１９０は、クライアント１００と管理サーバ２００との間の通信を制御する。
【００５２】
版数情報取得部１４０は、通信処理部１９０を介して管理サーバ２００に対し、インストールする最新版数のシステムに関する版数情報を要求し、これを取得する。
処理時間算出部１５０は、全更新処理時要する時間を算出する全更新処理時間算出（モジュール）１５１、部分更新処理時間算出（モジュール）１５２、及び複写後更新処理時間算出（モジュール）１５３を具備し、それぞれの処理による更新処理時間を算出する。選択部１６０は、処理時間算出部１５０が算出した更新処理時間に基づき、処理時間が最短の更新処理を選択する。
【００５３】
更新部１７０は、全更新処理を行う全更新処理（モジュール）１７１、部分更新処理を行う部分更新処理（モジュール）１７２、及び複写後更新処理を行う複写後更新処理（モジュール）１７３を具備し、選択部１６０の選択に基づいて、このうちの１つのモジュールによる更新処理を実行させる。
【００５４】
次に、管理情報記憶部１１０及び時間情報記憶部１２０に格納されている管理情報と時間情報について説明する。
図８は、本実施の形態のクライアントが具備する管理情報の一例を示す図である。
【００５５】
管理情報記憶部１１０には、管理情報として、クライアント１００が保有する全システムに関する全体情報４０１と、各領域に格納されている個別のシステムに関する領域別情報４０２とがある。
【００５６】
全体情報４０１には、クライアント１００が保有する所有システム数と、システムが有するコンポーネント数が設定される。図の例では、記憶部１３０には、システム版数３、４、５、６の４世代のシステムが格納されていること、及び、システムは、コンポーネント名ａ、ｂ、ｃの３つのコンポーネントを有していることが設定されている。
【００５７】
領域別情報４０２には、記憶部１３０に用意されている領域（システムＡ領域、システムＢ領域、システムＣ領域、及びシステムＤ領域）ごとに、そのシステム版数、このシステム版数に属するコンポーネントの版数と、データサイズが設定されている。たとえば、システムＤ領域には、コンポーネントａの版数が１（サイズ＝１００ＫＢ）、コンポーネントｂの版数が２（サイズ＝１１０ＫＢ）、コンポーネントｃの版数が５（サイズ＝１３０ＫＢ）であるシステム版数６が格納されていることが設定されている。同様に、システムＣ領域には、コンポーネントａは版数が１（サイズ＝１００ＫＢ）、コンポーネントｂは版数が２（サイズ＝１１０ＫＢ）、コンポーネントｃは版数が４（サイズ＝１２０ＫＢ）であるシステム版数５が格納されていることが設定されている。システムＢ領域には、コンポーネントａは版数が１（サイズ＝１００ＫＢ）、コンポーネントｂは版数が１（サイズ＝１００ＫＢ）、コンポーネントｃは版数が４（サイズ＝１２０ＫＢ）であるシステム版数４が格納されていることが設定されている。そして、システムＡ領域には、コンポーネントａは版数が１（サイズ＝１００ＫＢ）、コンポーネントｂは版数が１（サイズ＝１００ＫＢ）、コンポーネントｃは版数が３（サイズ＝１２０ＫＢ）であるシステム版数３が格納されていることが設定されている。
【００５８】
図９は、本実施の形態のクライアントが具備する時間情報の一例を示す図である。
時間情報記憶部１２０には、時間情報として、管理サーバ２００からデータをダウンロードする転送時間を算出するための転送時間情報４１１、記憶部１３０のデータを書き換える時間を算出するための書換時間情報４１２、及び記憶部１３０内のデータコピー時間を算出するための複写時間情報４１３が格納されている。
【００５９】
転送時間情報４１１は、サイズ当たりの転送時間であり、管理サーバ２００との通信時に実際の転送時間の計測値に基づき設定される。たとえば、更新処理を行った際に、通信に要した転送時間を計測し、そのときの転送データサイズからサイズ当たりの転送時間を算出する。算出した値は、転送時間情報４１１に登録しておき、次回の更新処理で利用する。また、更新処理を行う前に、規定サイズのダミーのデータを送受信し、このときの転送時間とデータサイズから算出してもよい。
【００６０】
書換時間情報４１２は、サイズ当たりの書換時間と、オーバヘッド（書換準備時間）とである。これらの値は、ＣＰＵの性能など装置に固有の値であるので、予め、装置性能に応じた固定値が設定される。図の例では、サイズ当たりの書換時間が、２．５秒／ＭＢ、オーバヘッド時間が１．０秒に設定されている。なお、オーバヘッド時間は、正確にはコンポーネント数などに応じて変化するが、その変化分は小さいので固定としている。必要であれば、コンポーネント数に応じた変数データとしてもよい。
【００６１】
複写時間情報４１３は、サイズ当たりの複写時間が設定される。サイズ当たりの複写時間は、書換時間と同様、装置に固有の値であるので、予め装置性能に応じて設定される。
次に、管理サーバ側が保持する情報について説明する。
【００６２】
図１０は、本実施の形態の管理サーバが具備する版数管理情報の一例を示す図である。
管理サーバ２００のデータベース２１０には、各システム版数のコンポーネントのデータとともに、システム版数を管理するための版数管理情報が格納されている。版数管理情報には、管理サーバ２００が管理するシステム版数全体の全体情報４２１と、システム版数ごとの版数別情報４２２とがある。
【００６３】
全体情報４２１には、管理サーバ２００が保有する所有システム世代数と、現在管理している管理システム数、及びシステムが有するコンポーネント数が設定される。図の例では、システム版数１から７の７世代のシステムを保有して管理しており、システムはコンポーネント名ａ、ｂ、ｃの３つのコンポーネントを有していることが設定されている。
【００６４】
版数別情報４２２には、管理対象のシステム版数ごとに、そのシステム版数の値、このシステム版数に属するコンポーネントの版数と、データサイズが設定されている。その構成要素は、図８に示したクライアント１００の管理情報と同様である。
【００６５】
以上の構成のアップデートシステムによるアップデート動作及びアップデート方法について説明する。
図１１は、本実施の形態におけるクライアントと管理サーバ間のやり取りを示した図である。図５と同じものには同じ番号を付し、説明は省略する。なお、管理サーバ２００の版数情報通知部２３０は、図１に示した版数情報通知手段２３、差分データ抽出部２４０は、差分データ抽出手段２４、及び転送処理部２５０は、転送処理手段２５と同様の処理を実行する。
【００６６】
クライアント１００に対し、アップデート要求が入力されると、クライアント１００の版数情報取得部１４０は、管理サーバ２００に対し、最新版のシステムに関する版数情報要求メッセージ５０１を送信する。このとき、版数情報要求メッセージ５０１には、管理情報記憶部１１０に格納されている管理情報（領域別情報４０２）を参照し、クライアント１００が保有するシステムの中で最も新しい版数（＝６）に関する保有版数情報を添付し、管理サーバ２００に保有する最新版数を通知する。管理サーバ２００は、版数情報要求メッセージ５０１を受信すると、版数情報通知部２３０が、データベース２１０に格納されている版数管理情報の版数別情報４２２から、最新版数（＝７）の版数情報を抽出する。なお、版数情報通知の際に、クライアント１００から送信されたクライアント１００が保有する最新の版数と、管理サーバ２００が保有する最新版数とを照合し、一致しているかどうかを判定してもよい。一致している場合、クライアント１００は最新版数を保有していると判定し、アップデートの必要がない旨をクライアント１００に通知する。一致していない場合は、管理サーバ２００の持つ最新版数の版数情報を最新版数情報メッセージ５０２に添付し、応答メッセージとして送信する。この場合の最新版数情報メッセージ５０２には、最新版（＝７）の版数情報（システム版数＝７、コンポーネントａは、版数＝１、サイズ＝１００ＫＢ、コンポーネントｂは、版数＝２、サイズ＝１１０ＫＢ、コンポーネントｃは、版数＝６、サイズ＝１５０ＫＢ）が設定されている。
【００６７】
最新版数情報メッセージ５０２を受信したクライアント１００は、更新対象をシステムＡ領域に格納されている最も古い版数３とし、処理時間算出部１５０で、全更新処理、部分更新処理、及び複写後更新処理に要する処理時間を算出する。そして、算出結果に基づき、選択部１６０により最短の処理時間の更新処理を選択する。
【００６８】
図の例を用いて具体的に説明する。
全更新の場合は、最新版数情報メッセージ５０２に基づき、最新版（＝７）の全データサイズとして、各コンポーネントの合計サイズを算出する。図の例では、全データサイズ＝コンポーネントａ（１００）＋コンポーネントｂ（１１０）＋コンポーネントｃ（１５０）＝３６０ＫＢとなる。算出された全データサイズ、転送時間情報４１１に設定されるサイズ当たり転送時間、及び書換時間情報４１２に設定されるサイズ当たり書換時間を式（１）に代入し、全更新の更新処理時間を算出する。
【００６９】
部分更新の場合は、更新対象の旧版数（＝７）の版数情報を管理情報記憶部１１０から読み出し、最新版数情報メッセージ５０２の最新版（＝７）に属するコンポーネントの版数と比較する。この場合、コンポーネントｂとコンポーネントｃとが更新されていることがわかる。そこで、最新版数情報メッセージ５０２のコンポーネントｂ及びコンポーネントｃのデータサイズと、転送時間情報４１１に設定されるサイズ当たり転送時間、及び書換時間情報４１２に設定されるサイズ当たり書換時間とオーバヘッド時間とを式（２）に代入し、部分更新の更新処理時間を算出する。
【００７０】
複写後更新の場合は、まず、複写元のシステムを検索する。最新版数情報メッセージ５０２の最新版（＝７）の各コンポーネントの版数と、管理情報記憶部１１０に格納されているクライアント１００が保持する各システムのコンポーネントの版数を比較し、最も類似する版数を検出する。この例では、コンポーネントｃのみが異なるシステムＤ領域の版数６のシステムと、システムＣ領域の版数５のシステムが検出される。複数検出された場合、予め設定されるルールに従って複写元を決める。たとえば、「複数検出された場合、より新しい版数を選択する。」というルールであれば、版数６のシステムが選択される。また、「複数検出された場合、複写データサイズが小さい方を選択する。」というルールであれば、版数５が選択される。ルールは、システムに応じて適宜設定される。こうして選択された版数の全データサイズと、サイズ当たりの複写時間とから、式（３）の前半の複写に要する時間が算出される。また、さらに式（３）の後半部のダウンロードされるコンポーネントｃに関する更新処理時間は、部分更新処理と同様にして算出される。
【００７１】
選択部１６０は、上記の処理手順で算出された更新処理時間を比較し、最短の処理時間の更新処理を選択する。ここでは、部分更新処理が選択されたとする。
更新部１７０は、選択された更新処理に従ってアップデート処理を行う。ここでは、部分更新処理が選択されたので、管理サーバ２００に対し、必要なコンポーネントを指定した差分データ要求メッセージ５０３を送信する。図の例では、コンポーネントｂとコンポーネントｃが必要であるので、必要個数（＝２）と、各コンポーネント名（ｂとｃ）がメッセージに設定されている。なお、全更新処理が選択された場合は、全コンポーネント（ａとｂとｃ）を差分データとして要求する。また、複写後更新処理が選択された場合は、複写元の版数のシステム・データで対象のシステムＡ領域を書き換えた後、差分データとしてコンポーネントｃを要求するメッセージを送信する。
【００７２】
管理サーバ２００の差分データ抽出部２４０は、差分データ要求メッセージ５０３を受信すると、メッセージを解析し、要求されたコンポーネント・データをデータベース２１０から抽出する。そして、抽出したコンポーネント・データを差分データメッセージ５０４に添付し、転送処理部２５０によって、応答メッセージとしてクライアント１００へ送信する。差分データメッセージ５０４には、要求されたコンポーネントについて、コンポーネント名、版数、サイズとともにデータが添付されている。
【００７３】
クライアント１００の更新部１７０は、差分データメッセージ５０４を受信すると、メッセージに含まれるデータで該当コンポーネントを更新する。また、管理情報記憶部１１０の管理情報も更新する。
【００７４】
以上の処理手順が実行され、最短の処理時間でアップデートが行われるようになる。
次に、本実施の形態のアップデート方法による処理手順について、クライアント１００、管理サーバ２００の順に説明する。
【００７５】
図１２は、本実施の形態のクライアントのアップデート処理手順を示したフローチャートである。
クライアント１００は、アップデート指示（最新版へのアップデート）が入力されると、処理を開始する。
【００７６】
［ステップＳ１１］  更新対象の旧システム版数の版数情報とともに、最新版数情報を要求する版数情報要求メッセージ５０１を管理サーバ２００へ送信する。更新対象のシステムは、たとえば、最も古い版数など、あらかじめ設定されたルールに基づいて選択される。また、ユーザがアップデート要求時に指定できるようにしてもよい。
【００７７】
［ステップＳ１２］  版数情報要求メッセージ５０１に対する応答メッセージとして、最新版数情報メッセージ５０２が管理サーバ２００から送信されるのを待つ。最新版数情報メッセージ５０２を受信したら、処理をステップＳ１３へ進める。
【００７８】
［ステップＳ１３］  最新版数情報メッセージ５０２を受信したら、最新版数情報メッセージ５０２に含まれる最新版数情報を取り出し、クライアント１００が保有するシステムの管理情報、時間情報を参照して、各更新処理に要する更新処理時間を算出する。全更新処理による更新処理時間は、最新版数情報から最新版数の全データサイズを算出し、式（１）を用いて算出する。部分更新処理による更新処理時間は、最新版数情報と管理情報に基づき、最新版数と更新対象の旧システム版数との差分データを検出し、式（２）を用いて算出する。複写後更新処理による更新処理時間は、最新版数情報と管理情報に基づき、複写元の版数を決定するとともに、最新版数と複写元の版数との差分データを検出する。そして、これらのデータを式（３）に適用し、算出する。
【００７９】
［ステップＳ１４］  ステップＳ１３による更新処理時間算出結果を比較し、処理時間が最短の更新処理を選択する。そして、選択された更新処理が複写後更新処理であるかどうかを判定する。複写後更新処理でなければ、処理をステップＳ１６へ進める。
【００８０】
［ステップＳ１５］  複写後更新処理が選択された場合、複写元に決定されたシステムを更新対象の旧システム版数の領域にコピーする。
［ステップＳ１６］  差分データ（更新に必要なコンポーネント）を要求する差分データ要求メッセージ５０３を生成し、管理サーバ２００へ送信する。全更新処理の場合、差分データは、全コンポーネント・データになる。部分更新処理の場合、差分データは、旧システム版数と最新版との差分のコンポーネント・データになる。複写後更新処理の場合、差分データは、複写元のシステム版数と最新版との差分のコンポーネント・データになる。
【００８１】
［ステップＳ１７］  差分データ要求メッセージ５０３に対する応答メッセージとして、差分データメッセージ５０４が管理サーバ２００から送信されるのを待つ。差分データメッセージ５０４を受信したら、処理をステップＳ１８へ進める。
【００８２】
［ステップＳ１８］  ステップＳ１７で受信した差分データメッセージ５０４に基づき、旧システム版数の領域を更新する。
以上の処理手順が実行されることにより、クライアント１００は、アップデート要求があると、実行可能な各更新処理に要する更新処理時間を算出する。そして、処理時間が最短の更新処理を選択し、アップデート処理を行う。
【００８３】
図１３は、本実施の形態の管理サーバのアップデート処理手順を示したフローチャートである。
管理サーバ２００は、クライアント１００からの要求メッセージを受信すると、その要求に応じて処理を行う。
【００８４】
［ステップＳ２１］  クライアント１００から要求メッセージを受信すると、要求メッセージが最新版の版数情報を要求する版数情報要求メッセージ５０１であるかどうかを判定する。版数情報要求メッセージ５０１でなければ、処理をステップＳ２３へ進める。
【００８５】
［ステップＳ２２］  受信した要求メッセージが、版数情報要求メッセージである場合、データベース２１０に格納されている最新版の版数情報を読み出し、最新版数情報メッセージ５０２を生成してクライアント１００に送信し、処理を終了する。なお、受信した版数情報要求メッセージ５０１に設定されるクライアント１００が保有する最新のシステム版数が、最新版である場合には、クライアント１００に対し、更新の必要がないことを通知する。
【００８６】
［ステップＳ２３］  受信した要求メッセージが版数情報要求メッセージ５０１でない場合、要求メッセージが差分データ要求メッセージ５０３であるかどうかを判定する。差分データ要求メッセージ５０３でない場合、処理を終了する。
【００８７】
［ステップＳ２４］  受信した要求メッセージが差分データ要求メッセージ５０３の場合、要求された差分データ（指定コンポーネント）のデータを抽出し、差分データメッセージ５０４としてクライアント１００に送信し、処理を終了する。なお、全更新の場合は、クライアント１００が差分データ要求メッセージ５０３に全コンポーネントを指定してくるので、指定に従って全データを送信する。
【００８８】
以上の処理手順が実行されることにより、クライアント１００は、管理サーバ２００から所望のデータを取得することができる。
このように、アップデートに必要な差分データの指定や、更新処理の選択はクライアント１００で実行し、管理サーバ２００は、要求されたデータを抽出して送信する処理のみを実行する。図５に示したように、管理サーバ２００は、不特定多数のクライアントからの要求を処理するため、管理サーバ２００に負荷がかかると、クライアント１００のアップデート処理が遅延する恐れがある。したがって、クライアント１００で差分データの決定処理などをすべて行うことにより、管理サーバ２００の負荷を軽減し、システム全体の処理効率を上げることができる。
【００８９】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、クライアントの情報処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【００９０】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００９１】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００９２】
（付記１）  インストールされている旧版数のソフトウェアを要求された任意の新版数のソフトウェアに更新するソフトウェアの更新処理プログラムにおいて、
コンピュータを、
所定の版数のソフトウェアに関する版数情報が記録される版数管理情報から、要求された任意の新版数ソフトウェアの版数情報を取得する版数情報取得手段、
取得した前記新版数ソフトウェアの版数情報と、ソフトウェア記憶手段に格納されている更新対象の旧版数ソフトウェアの版数情報とに基づき、前記旧版数ソフトウェア全体を前記新版数ソフトウェアへ更新する全更新処理による更新処理時間、前記旧版数ソフトウェアと前記新版数ソフトウェアとの第１の差分データを更新する部分更新処理による更新処理時間、及び前記ソフトウェア記憶手段に格納されている前記旧版数ソフトウェアと前記新版数ソフトウェアとの間の中間版数ソフトウェアを前記旧版数ソフトウェアの格納領域に複写した後、前記中間版数ソフトウェアと前記新版数ソフトウェアとの第２の差分データを更新する複写後更新処理による更新処理時間をそれぞれ算出する処理時間算出手段、
前記処理時間算出手段によって算出された各々の更新処理時間を比較し、最も更新時間が短い更新処理を選択する処理選択手段、
前記処理選択手段によって選択された前記全更新処理、前記部分更新処理、または前記複写後更新処理のいずれかによって、前記ソフトウェア記憶手段に格納されている前記旧版数ソフトウェアを前記新版数ソフトウェアに更新する更新手段、
として機能させることを特徴とするソフトウェアの更新処理プログラム。
【００９３】
（付記２）  前記処理時間算出手段は、
前記全更新処理による更新処理時間を、前記新版数ソフトウェアの全データを対象データとし、前記対象データを前記新版数ソフトウェアが格納される領域から前記コンピュータに転送する転送時間を算出するとともに、転送された前記対象データで前記旧版数ソフトウェアが格納されている該当領域を書き換える書換時間とを算出し、前記全データを対象とする前記転送時間と前記書換時間を合算して算出し、
前記部分更新処理による更新処理時間を、前記旧版数ソフトウェアの前記新版数ソフトウェアに対する前記第１の差分データを前記対象データとして前記転送時間、前記書換時間及び前記書換位置の位置決めを含むオーバヘッド時間を算出し、前記第１の差分データを対象とする前記転送時間、前記書換時間、及び前記オーバヘッド時間を合算して算出し、
前記ソフトウェア記憶手段に複数の異なる版数のソフトウェアが格納されている場合に、前記複写後更新処理による更新処理時間を、前記ソフトウェア記憶手段に格納されている前記中間版数ソフトウェアの全データを前記旧版数ソフトウェアが格納されている該当領域へ複写する複写時間と、前記中間版数ソフトウェアの前記新版数ソフトウェアに対する前記第２の差分データを前記対象データとして前記転送時間、前記書換時間、前記オーバヘッド時間を算出し、前記第２の差分データを対象とする前記転送時間、前記書換時間、及び前記オーバヘッド時間と、前記複写時間とを合算して算出する、
ことを特徴とする付記１記載のソフトウェアの更新処理プログラム。
【００９４】
（付記３）  前記版数情報には、各々版数によって更新管理がされる複数のコンポーネントから成る前記ソフトウェアに関し、前記所定の版数のソフトウェアに属する前記コンポーネントの版数が設定されており、
前記処理時間算出手段は、前記旧版数ソフトウェアの版数情報または前記中間版数ソフトウェアの版数情報と、前記新版数ソフトウェアの版数情報とに基づき、双方の版数に属する前記コンポーネントの版数を照合し、異なる版数の前記コンポーネントの集合を前記第１の差分データ及び前記第２の差分データとする、
ことを特徴とする付記１記載のソフトウェアの更新処理プログラム。
【００９５】
（付記４）  前記処理時間算出手段は、
前記ソフトウェア記憶手段に複数の異なる版数のソフトウェアが格納されている場合に、前記新版数ソフトウェアの版数情報と、前記ソフトウェア記憶手段に格納されている前記複数の異なる版数のソフトウェアそれぞれの版数情報とを比較し、前記新版数ソフトウェアに属するコンポーネントの版数に最も類似する版数情報を有するソフトウェアを前記中間版数ソフトウェアとして前記複写後更新処理による更新処理時間を算出する、
ことを特徴とする付記３記載のソフトウェアの更新処理プログラム。
【００９６】
（付記５）  前記新版数ソフトウェアは、前記コンピュータとネットワークを介して接続する管理サーバに格納されており、
前記版数情報取得手段は、前記新版数ソフトウェアを管理する前記管理サーバに対し、前記新版数ソフトウェアに関する版数情報の要求を送信し、要求に応じて前記管理サーバが生成した前記新版数ソフトウェアに関する版数情報を受信することによって、前記新版数ソフトウェアの版数情報を取得し、
前記処理時間算出手段は、要求データが前記管理サーバから前記ネットワークを介して転送される時間を前記転送時間とし、
前記更新手段は、前記処理選択手段によって前記全更新処理が選択された場合は、前記新版数ソフトウェアの全データを前記管理サーバに要求し、前記部分更新処理が選択された場合は、前記第１の差分データを前記管理サーバに要求し、前記複写後更新処理が選択された場合は、前記第２の差分データを前記管理サーバに要求し、要求に応じて前記管理サーバが送信したデータを受信し、受信データに基づき該当領域を更新する、
ことを特徴とする付記１記載のソフトウェアの更新処理プログラム。
【００９７】
（付記６）  前記処理時間算出手段は、前記全更新処理による更新処理時間を、
前記新版数ソフトウェアに属する全データを、前記ネットワークを介して前記管理サーバから転送する場合に要する全データ転送時間と、前記管理サーバより転送された前記新版数ソフトウェアに属する全データで前記ソフトウェア記憶手段の該当領域を書き換える全データ書換時間とを算出し、算出された前記全データ転送時間と前記全データ書換時間とを合算して求める、
ことを特徴とする付記５記載のソフトウェアの更新処理プログラム。
【００９８】
（付記７）  前記版数情報には、各々版数によって更新管理がされる複数のコンポーネントから成る前記ソフトウェアに関し、前記所定の版数のソフトウェアに属する前記コンポーネントの版数が設定されており、
前記処理時間算出手段は、前記部分更新による更新処理時間を、
前記新版数ソフトウェアに属するコンポーネントの版数と、前記旧版数ソフトウェアに属するコンポーネントの版数とを照合して、版数が異なる更新が必要なコンポーネントを特定し、前記更新が必要なコンポーネントのデータを、前記ネットワークを介して前記管理サーバから転送する場合に要するコンポーネント転送時間と、前記管理サーバより転送された前記更新が必要なコンポーネントのデータで前記ソフトウェア記憶手段の該当領域を書き換えるコンポーネント書換時間と、書換時のオーバヘッド時間とを算出し、算出された前記コンポーネント転送時間、前記コンポーネント書換時間、及び前記オーバヘッド時間を合算して求める、
ことを特徴とする付記５記載のソフトウェアの更新処理プログラム。
【００９９】
（付記８）  前記版数情報には、各々版数によって更新管理がされる複数のコンポーネントから成る前記ソフトウェアに関し、前記所定の版数のソフトウェアに属する前記コンポーネントの版数が設定されており、
前記処理時間算出手段は、前記複写後部分更新による更新処理時間を、
前記旧版数ソフトウェアの領域を前記中間版数ソフトウェアで書き換える複写時間と、前記新版数ソフトウェアに属するコンポーネントの版数と、前記中間版数ソフトウェアに属するコンポーネントの版数とを照合して特定される前記更新が必要なコンポーネントのデータを前記管理サーバから転送する前記コンポーネント転送時間と、前記管理サーバより転送された前記更新が必要なコンポーネントのデータで前記ソフトウェア記憶手段の該当領域を書き換える前記コンポーネント書換時間と、前記オーバヘッド時間とを算出し、算出された前記複写時間、前記コンポーネント転送時間、前記コンポーネント書換時間、及び前記オーバヘッド時間を合算して求める、
ことを特徴とする付記５記載のソフトウェアの更新処理プログラム。
【０１００】
（付記９）  前記処理時間算出手段は、
前記ネットワークを介して前記管理サーバから転送する場合に要する転送時間を、前記更新処理によるデータ転送時に計測して計測データを保管しておくか、あるいは、前記処理時間算出手段による処理時間算出の前にダミーデータを転送して計測して、実際のデータ転送時間を用いて前記更新処理時間を算出する、
ことを特徴とする付記５記載のソフトウェアの更新処理プログラム。
【０１０１】
（付記１０）  前記版数情報取得手段は、前記管理サーバに対し、前記ソフトウェア記憶手段に格納されている前記ソフトウェアのうち最も新しい版数に関する保有版数情報を前記版数情報の要求に添付して送信し、前記保有版数情報に基づき更新の要否を判定する前記管理サーバから更新不要の通知を受信した場合は、以降の更新処理を行わない、
ことを特徴とする付記５記載のソフトウェアの更新処理プログラム。
【０１０２】
（付記１１）  前記新版数ソフトウェアは、前記コンピュータが読み取り可能な記録媒体に格納されており、
前記版数情報取得手段は、前記記録媒体の所定の領域に格納されている前記新版数ソフトウェアに関する版数情報を読み出して取得し、
前記更新手段は、前記処理選択手段によって前記全更新処理が選択された場合は、前記新版数ソフトウェアの全データを前記記録媒体から読み出し、前記部分更新処理が選択された場合は、前記第１の差分データを前記記録媒体から読み出し、前記複写後更新処理が選択された場合は、前記第２の差分データを前記記録媒体から読み出し、読み出したデータに基づき該当領域を更新する、
ことを特徴とする付記１記載のソフトウェアの更新処理プログラム。
【０１０３】
（付記１２）  インストールされている旧版数のソフトウェアを要求された任意の新版数のソフトウェアに更新するソフトウェアの更新処理装置において、
前記インストールされたソフトウェアを格納するソフトウェア記憶手段と、
所定の版数のソフトウェアに関する版数情報が記録される版数管理情報から、要求された任意の新版数ソフトウェアの版数情報を取得する版数情報取得手段と、
取得した前記新版数ソフトウェアの版数情報と、前記ソフトウェア記憶手段に格納されている更新対象の旧版数ソフトウェアの版数情報とに基づき、前記旧版数ソフトウェア全体を前記新版数ソフトウェアへ更新する全更新処理による更新処理時間、前記旧版数ソフトウェアと前記新版数ソフトウェアとの第１の差分データを更新する部分更新処理による更新処理時間、及び前記ソフトウェア記憶手段に格納されている前記旧版数ソフトウェアと前記新版数ソフトウェアとの間の中間版数ソフトウェアを前記旧版数ソフトウェアの格納領域に複写した後、前記中間版数ソフトウェアと前記新版数ソフトウェアとの第２の差分データを更新する複写後更新処理による更新処理時間をそれぞれ算出する処理時間算出手段と、
前記処理時間算出手段によって算出された各々の更新処理時間を比較し、最も更新時間が短い更新処理を選択する処理選択手段と、
前記処理選択手段によって選択された前記全更新処理、前記部分更新処理、または前記複写後更新処理のいずれかによって、前記ソフトウェア記憶手段に格納されている前記旧版数ソフトウェアを前記新版数ソフトウェアに更新する更新手段と、
を有することを特徴とするソフトウェアの更新処理装置。
【０１０４】
（付記１３）  前記処理時間算出手段は、
前記全更新処理による更新処理時間を、前記新版数ソフトウェアの全データを対象データとし、前記対象データを前記新版数ソフトウェアが格納される領域から前記コンピュータに転送する転送時間を算出するとともに、転送された前記対象データで前記旧版数ソフトウェアが格納されている該当領域を書き換える書換時間とを算出し、前記全データを対象とする前記転送時間と前記書換時間を合算して算出し、
前記部分更新処理による更新処理時間を、前記旧版数ソフトウェアの前記新版数ソフトウェアに対する前記第１の差分データを前記対象データとして前記転送時間、前記書換時間及び前記書換位置の位置決めを含むオーバヘッド時間を算出し、前記第１の差分データを対象とする前記転送時間、前記書換時間、及び前記オーバヘッド時間を合算して算出し、
前記ソフトウェア記憶手段に複数の異なる版数のソフトウェアが格納されている場合に、前記複写後更新処理による更新処理時間を、前記ソフトウェア記憶手段に格納されている前記中間版数ソフトウェアの全データを前記旧版数ソフトウェアが格納されている該当領域へ複写する複写時間と、前記中間版数ソフトウェアの前記新版数ソフトウェアに対する前記第２の差分データを前記対象データとして前記転送時間、前記書換時間、前記オーバヘッド時間を算出し、前記第２の差分データを対象とする前記転送時間、前記書換時間、及び前記オーバヘッド時間と、前記複写時間とを合算して算出する、
ことを特徴とする付記１２記載のソフトウェアの更新処理装置。
【０１０５】
（付記１４）  前記版数情報には、各々版数によって更新管理がされる複数のコンポーネントから成る前記ソフトウェアに関し、前記所定の版数のソフトウェアに属する前記コンポーネントの版数が設定されており、
前記処理時間算出手段は、前記旧版数ソフトウェアの版数情報または前記中間版数ソフトウェアの版数情報と、前記新版数ソフトウェアの版数情報とに基づき、双方の版数に属する前記コンポーネントの版数を照合し、異なる版数の前記コンポーネントの集合を前記第１の差分データ及び第２の差分データとする、
ことを特徴とする付記１２記載のソフトウェアの更新処理装置。
【０１０６】
（付記１５）  前記処理時間算出手段は、
前記ソフトウェア記憶手段に複数の異なる版数のソフトウェアが格納されている場合に、前記新版数ソフトウェアの版数情報と、前記ソフトウェア記憶手段に格納されている前記複数の異なる版数のソフトウェアそれぞれの版数情報とを比較し、前記新版数ソフトウェアに属するコンポーネントの版数に最も類似する版数情報を有するソフトウェアを前記中間版数ソフトウェアとして前記複写後更新処理による更新処理時間を算出する、
ことを特徴とする付記１４記載のソフトウェアの更新処理装置。
【０１０７】
（付記１６）  前記新版数ソフトウェアは、前記コンピュータとネットワークを介して接続する管理サーバに格納されており、
前記版数情報取得手段は、前記新版数ソフトウェアを管理する前記管理サーバに対し、前記新版数ソフトウェアに関する版数情報の要求を送信し、要求に応じて前記管理サーバが生成した前記新版数ソフトウェアに関する版数情報を受信することによって、前記新版数ソフトウェアの版数情報を取得し、
前記処理時間算出手段は、要求データが前記管理サーバから前記ネットワークを介して転送される時間を前記転送時間とし、
前記更新手段は、前記処理選択手段によって前記全更新処理が選択された場合は、前記新版数ソフトウェアの全データを前記管理サーバに要求し、前記部分更新処理が選択された場合は、前記第１の差分データを前記管理サーバに要求し、前記複写後更新処理が選択された場合は、前記第２の差分データを前記管理サーバに要求し、要求に応じて前記管理サーバが送信したデータを受信し、受信データに基づき該当領域を更新する、
ことを特徴とする付記１２記載のソフトウェアの更新処理装置。
【０１０８】
（付記１７）  前記処理時間算出手段は、前記全更新処理による更新処理時間を、
前記新版数ソフトウェアに属する全データを、前記ネットワークを介して前記管理サーバから転送する場合に要する全データ転送時間と、前記管理サーバより転送された前記新版数ソフトウェアに属する全データで前記ソフトウェア記憶手段の該当領域を書き換える全データ書換時間とを算出し、算出された前記全データ転送時間と前記全データ書換時間とを合算して求める、
ことを特徴とする付記１６記載のソフトウェアの更新処理装置。
【０１０９】
（付記１８）  前記版数情報には、各々版数によって更新管理がされる複数のコンポーネントから成る前記ソフトウェアに関し、前記所定の版数のソフトウェアに属する前記コンポーネントの版数が設定されており、
前記処理時間算出手段は、前記部分更新による更新処理時間を、
前記新版数ソフトウェアに属するコンポーネントの版数と、前記旧版数ソフトウェアに属するコンポーネントの版数とを照合して、版数が異なる更新が必要なコンポーネントを特定し、前記更新が必要なコンポーネントのデータを、前記ネットワークを介して前記管理サーバから転送する場合に要するコンポーネント転送時間と、前記管理サーバより転送された前記更新が必要なコンポーネントのデータで前記ソフトウェア記憶手段の該当領域を書き換えるコンポーネント書換時間と、書換時のオーバヘッド時間とを算出し、算出された前記コンポーネント転送時間、前記コンポーネント書換時間、及び前記オーバヘッド時間を合算して求める、
ことを特徴とする付記１６記載のソフトウェアの更新処理装置。
【０１１０】
（付記１９）  前記版数情報には、各々版数によって更新管理がされる複数のコンポーネントから成る前記ソフトウェアに関し、前記所定の版数のソフトウェアに属する前記コンポーネントの版数が設定されており、
前記処理時間算出手段は、前記複写後部分更新による更新処理時間を、
前記旧版数ソフトウェアの領域を前記中間版数ソフトウェアで書き換える複写時間と、前記新版数ソフトウェアに属するコンポーネントの版数と、前記中間版数ソフトウェアに属するコンポーネントの版数とを照合して特定される前記更新が必要なコンポーネントのデータを前記管理サーバから転送する前記コンポーネント転送時間と、前記管理サーバより転送された前記更新が必要なコンポーネントのデータで前記ソフトウェア記憶手段の該当領域を書き換える前記コンポーネント書換時間と、前記オーバヘッド時間とを算出し、算出された前記複写時間、前記コンポーネント転送時間、前記コンポーネント書換時間、及び前記オーバヘッド時間を合算して求める、
ことを特徴とする付記１６記載のソフトウェアの更新処理装置。
【０１１１】
（付記２０）  前記処理時間算出手段は、
前記ネットワークを介して前記管理サーバから転送する場合に要する転送時間を、前記更新処理によるデータ転送時に計測して計測データを保管しておくか、あるいは、前記処理時間算出手段による処理時間算出の前にダミーデータを転送して計測して、実際のデータ転送時間を用いて前記更新処理時間を算出する、
ことを特徴とする付記１６記載のソフトウェアの更新処理装置。
【０１１２】
（付記２１）  前記版数情報取得手段は、前記管理サーバに対し、前記ソフトウェア記憶手段に格納されている前記ソフトウェアのうち最も新しい版数に関する保有版数情報を前記版数情報の要求に添付して送信し、前記保有版数情報に基づき更新の要否を判定する前記管理サーバから更新不要の通知を受信した場合は、以降の更新処理を行わない、
ことを特徴とする付記１６記載のソフトウェアの更新処理装置。
【０１１３】
（付記２２）  前記新版数ソフトウェアは、前記コンピュータが読み取り可能な記録媒体に格納されており、
前記版数情報取得手段は、前記記録媒体の所定の領域に格納されている前記新版数ソフトウェアに関する版数情報を読み出して取得し、
前記更新手段は、前記処理選択手段によって前記全更新処理が選択された場合は、前記新版数ソフトウェアの全データを前記記録媒体から読み出し、前記部分更新処理が選択された場合は、前記第１の差分データを前記記録媒体から読み出し、前記複写後更新処理が選択された場合は、前記第２の差分データを前記記録媒体から読み出し、読み出したデータに基づき該当領域を更新する、
ことを特徴とする付記１２記載のソフトウェアの更新処理装置。
【０１１４】
（付記２３）  インストールされている旧版数のソフトウェアを要求された任意の新版数のソフトウェアに更新するソフトウェアの更新処理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータを、
所定の版数のソフトウェアに関する版数情報が記録される版数管理情報から、要求された任意の新版数ソフトウェアの版数情報を取得する版数情報取得手段、
取得した前記新版数ソフトウェアの版数情報と、ソフトウェア記憶手段に格納されている更新対象の旧版数ソフトウェアの版数情報とに基づき、前記旧版数ソフトウェア全体を前記新版数ソフトウェアへ更新する全更新処理による更新処理時間、前記旧版数ソフトウェアと前記新版数ソフトウェアとの第１の差分データを更新する部分更新処理による更新処理時間、及び前記ソフトウェア記憶手段に格納されている前記旧版数ソフトウェアと前記新版数ソフトウェアとの間の中間版数ソフトウェアを前記旧版数ソフトウェアの格納領域に複写した後、前記中間版数ソフトウェアと前記新版数ソフトウェアとの第２の差分データを更新する複写後更新処理による更新処理時間をそれぞれ算出する処理時間算出手段、
前記処理時間算出手段によって算出された各々の更新処理時間を比較し、最も更新時間が短い更新処理を選択する処理選択手段、
前記処理選択手段によって選択された前記全更新処理、前記部分更新処理、または前記複写後更新処理のいずれかによって、前記ソフトウェア記憶手段に格納されている前記旧版数ソフトウェアを前記新版数ソフトウェアに更新する更新手段、
として機能させることを特徴とするソフトウェアの更新処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１１５】
（付記２４）  前記処理時間算出手段は、
前記全更新処理による更新処理時間を、前記新版数ソフトウェアの全データを対象データとし、前記対象データを前記新版数ソフトウェアが格納される領域から前記コンピュータに転送する転送時間を算出するとともに、転送された前記対象データで前記旧版数ソフトウェアが格納されている該当領域を書き換える書換時間とを算出し、前記全データを対象とする前記転送時間と前記書換時間を合算して算出し、
前記部分更新処理による更新処理時間を、前記旧版数ソフトウェアの前記新版数ソフトウェアに対する前記第１の差分データを前記対象データとして前記転送時間、前記書換時間及び前記書換位置の位置決めを含むオーバヘッド時間を算出し、前記第１の差分データを対象とする前記転送時間、前記書換時間、及び前記オーバヘッド時間を合算して算出し、
前記ソフトウェア記憶手段に複数の異なる版数のソフトウェアが格納されている場合に、前記複写後更新処理による更新処理時間を、前記ソフトウェア記憶手段に格納されている前記中間版数ソフトウェアの全データを前記旧版数ソフトウェアが格納されている該当領域へ複写する複写時間と、前記中間版数ソフトウェアの前記新版数ソフトウェアに対する前記第２の差分データを前記対象データとして前記転送時間、前記書換時間、前記オーバヘッド時間を算出し、前記第２の差分データを対象とする前記転送時間、前記書換時間、及び前記オーバヘッド時間と、前記複写時間とを合算して算出する、
ことを特徴とする付記２３記載のソフトウェアの更新処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１１６】
（付記２５）  前記版数情報には、各々版数によって更新管理がされる複数のコンポーネントから成る前記ソフトウェアに関し、前記所定の版数のソフトウェアに属する前記コンポーネントの版数が設定されており、
前記処理時間算出手段は、前記旧版数ソフトウェアの版数情報または前記中間版数ソフトウェアの版数情報と、前記新版数ソフトウェアの版数情報とに基づき、双方の版数に属する前記コンポーネントの版数を照合し、異なる版数の前記コンポーネントの集合を前記第１の差分データ及び前記第２の差分データとする、
ことを特徴とする付記２３記載のソフトウェアの更新処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１１７】
（付記２６）  前記処理時間算出手段は、
前記ソフトウェア記憶手段に複数の異なる版数のソフトウェアが格納されている場合に、前記新版数ソフトウェアの版数情報と、前記ソフトウェア記憶手段に格納されている前記複数の異なる版数のソフトウェアそれぞれの版数情報とを比較し、前記新版数ソフトウェアに属するコンポーネントの版数に最も類似する版数情報を有するソフトウェアを前記中間版数ソフトウェアとして前記複写後更新処理による更新処理時間を算出する、
ことを特徴とする付記２５記載のソフトウェアの更新処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１１８】
（付記２７）  前記新版数ソフトウェアは、前記コンピュータとネットワークを介して接続する管理サーバに格納されており、
前記版数情報取得手段は、前記新版数ソフトウェアを管理する前記管理サーバに対し、前記新版数ソフトウェアに関する版数情報の要求を送信し、要求に応じて前記管理サーバが生成した前記新版数ソフトウェアに関する版数情報を受信することによって、前記新版数ソフトウェアの版数情報を取得し、
前記処理時間算出手段は、要求データが前記管理サーバから前記ネットワークを介して転送される時間を前記転送時間とし、
前記更新手段は、前記処理選択手段によって前記全更新処理が選択された場合は、前記新版数ソフトウェアの全データを前記管理サーバに要求し、前記部分更新処理が選択された場合は、前記第１の差分データを前記管理サーバに要求し、前記複写後更新処理が選択された場合は、前記第２の差分データを前記管理サーバに要求し、要求に応じて前記管理サーバが送信したデータを受信し、受信データに基づき該当領域を更新する、
ことを特徴とする付記２３記載のソフトウェアの更新処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１１９】
（付記２８）  前記処理時間算出手段は、前記全更新処理による更新処理時間を、
前記新版数ソフトウェアに属する全データを、前記ネットワークを介して前記管理サーバから転送する場合に要する全データ転送時間と、前記管理サーバより転送された前記新版数ソフトウェアに属する全データで前記ソフトウェア記憶手段の該当領域を書き換える全データ書換時間とを算出し、算出された前記全データ転送時間と前記全データ書換時間とを合算して求める、
ことを特徴とする付記２７記載のソフトウェアの更新処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１２０】
（付記２９）  前記版数情報には、各々版数によって更新管理がされる複数のコンポーネントから成る前記ソフトウェアに関し、前記所定の版数のソフトウェアに属する前記コンポーネントの版数が設定されており、
前記処理時間算出手段は、前記部分更新による更新処理時間を、
前記新版数ソフトウェアに属するコンポーネントの版数と、前記旧版数ソフトウェアに属するコンポーネントの版数とを照合して、版数が異なる更新が必要なコンポーネントを特定し、前記更新が必要なコンポーネントのデータを、前記ネットワークを介して前記管理サーバから転送する場合に要するコンポーネント転送時間と、前記管理サーバより転送された前記更新が必要なコンポーネントのデータで前記ソフトウェア記憶手段の該当領域を書き換えるコンポーネント書換時間と、書換時のオーバヘッド時間とを算出し、算出された前記コンポーネント転送時間、前記コンポーネント書換時間、及び前記オーバヘッド時間を合算して求める、
ことを特徴とする付記２７記載のソフトウェアの更新処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１２１】
（付記３０）  前記版数情報には、各々版数によって更新管理がされる複数のコンポーネントから成る前記ソフトウェアに関し、前記所定の版数のソフトウェアに属する前記コンポーネントの版数が設定されており、
前記処理時間算出手段は、前記複写後部分更新による更新処理時間を、
前記旧版数ソフトウェアの領域を前記中間版数ソフトウェアで書き換える複写時間と、前記新版数ソフトウェアに属するコンポーネントの版数と、前記中間版数ソフトウェアに属するコンポーネントの版数とを照合して特定される前記更新が必要なコンポーネントのデータを前記管理サーバから転送する前記コンポーネント転送時間と、前記管理サーバより転送された前記更新が必要なコンポーネントのデータで前記ソフトウェア記憶手段の該当領域を書き換える前記コンポーネント書換時間と、前記オーバヘッド時間とを算出し、算出された前記複写時間、前記コンポーネント転送時間、前記コンポーネント書換時間、及び前記オーバヘッド時間を合算して求める、
ことを特徴とする付記２７記載のソフトウェアの更新処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１２２】
（付記３１）  前記処理時間算出手段は、
前記ネットワークを介して前記管理サーバから転送する場合に要する転送時間を、前記更新処理によるデータ転送時に計測して計測データを保管しておくか、あるいは、前記処理時間算出手段による処理時間算出の前にダミーデータを転送して計測して、実際のデータ転送時間を用いて前記更新処理時間を算出する、
ことを特徴とする付記２７記載のソフトウェアの更新処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１２３】
（付記３２）  前記版数情報取得手段は、前記管理サーバに対し、前記ソフトウェア記憶手段に格納されている前記ソフトウェアのうち最も新しい版数に関する保有版数情報を前記版数情報の要求に添付して送信し、前記保有版数情報に基づき更新の要否を判定する前記管理サーバから更新不要の通知を受信した場合は、以降の更新処理を行わない、
ことを特徴とする付記２７記載のソフトウェアの更新処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１２４】
（付記３３）  前記新版数ソフトウェアは、前記コンピュータが読み取り可能な記録媒体に格納されており、
前記版数情報取得手段は、前記記録媒体の所定の領域に格納されている前記新版数ソフトウェアに関する版数情報を読み出して取得し、
前記更新手段は、前記処理選択手段によって前記全更新処理が選択された場合は、前記新版数ソフトウェアの全データを前記記録媒体から読み出し、前記部分更新処理が選択された場合は、前記第１の差分データを前記記録媒体から読み出し、前記複写後更新処理が選択された場合は、前記第２の差分データを前記記録媒体から読み出し、読み出したデータに基づき該当領域を更新する、
ことを特徴とする付記２３記載のソフトウェアの更新処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【図面の簡単な説明】
【０１２５】
【図１】実施の形態に適用される発明の概念図である。
【図２】実施の形態に適用される全更新処理を示した図である。
【図３】実施の形態に適用される部分更新処理を示した図である。
【図４】実施の形態に適用される複写後更新処理を示した図である。
【図５】本発明の実施の形態のシステム構成を示す構成図である。
【図６】本実施の形態のクライアントのハードウェア構成例を示すブロック図である。
【図７】本実施の形態のクライアントのアップデート処理部のソフトウェア構成例を示すブロック図である。
【図８】本実施の形態のクライアントが具備する管理情報の一例を示す図である。
【図９】本実施の形態のクライアントが具備する時間情報の一例を示す図である。
【図１０】本実施の形態の管理サーバが具備する版数管理情報の一例を示す図である。
【図１１】本実施の形態におけるクライアントと管理サーバ間のやり取りを示した図である。
【図１２】本実施の形態のクライアントのアップデート処理手順を示したフローチャートである。
【図１３】本実施の形態の管理サーバのアップデート処理手順を示したフローチャートである。
【符号の説明】
【０１２６】
１０  情報処理装置
１１  管理情報記憶手段
１２  時間情報記憶手段
１３  ソフトウェア記憶手段
１３ａ  システムＡ領域
１３ｂ  システムＢ領域
１４  版数情報取得手段
１５  処理時間算出手段
１６  処理選択手段
１７  更新手段
２０  管理サーバ
２１  版数管理情報記憶手段
２２  システムソフトウェア記録手段
２３  版数情報通知手段
２４  差分データ抽出手段
２５  転送処理手段
【図１】
2007334636.tif 000003
【図２】
2007334636.tif 000004
【図３】
2007334636.tif 000005
【図４】
2007334636.tif 000006
【図５】
2007334636.tif 000007
【図６】
2007334636.tif 000008
【図７】
2007334636.tif 000009
【図８】
2007334636.tif 000010
【図９】
2007334636.tif 000011
【図１０】
2007334636.tif 000012
【図１１】
2007334636.tif 000013
【図１２】
2007334636.tif 000014
【図１３】
2007334636.tif 000015