(57)【要約】  リスト生成部（１１０４）は、共有ファイルを共有するソフトウェア群のソフトウェアアップデートに付随して行われる共有ファイルのファイルアップデートにより発生した共有ファイルの差分を抽出し、ソフトウェアアップデートとファイルアップデートとの関係を解析し、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分をユーザ環境にインストール済みのソフトウェアのバージョンとの照合により選択可能な適用差分選択リストを生成する。差分インストーラ生成部（１２００）は、ユーザ環境にインストール済みのソフトウェアのバージョンと適用差分選択リストとを照合してユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を選択する適用差分選択プログラムが含まれる差分インストーラを生成する。
2017145357.tif 000002
【特許請求の範囲】
【請求項１】
共有ファイルを共有する複数のソフトウェアのソフトウェアアップデートに付随して行われる前記共有ファイルのファイルアップデートごとに、ファイルアップデートにより発生した、ファイルアップデート前の前記共有ファイルとの差分を抽出する抽出部と、
前記複数のソフトウェアのソフトウェアアップデートと前記共有ファイルのファイルアップデートとの関係を解析し、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を前記ユーザ環境にインストール済みのソフトウェアのバージョンとの照合により選択可能な差分選択情報を生成する情報生成部と、
前記ユーザ環境にインストール済みのソフトウェアのバージョンと前記差分選択情報とを照合して前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を選択する選択プログラムが含まれる差分インストーラを生成する差分インストーラ生成部とを有する情報処理装置。
【請求項２】
前記情報生成部は、
前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を前記ユーザ環境にインストール済みのソフトウェアのバージョン及び前記ユーザ環境で行われるソフトウェアアップデートで取得するソフトウェアのバージョンとの照合により選択可能な差分選択情報を生成し、
前記差分インストーラ生成部は、
前記ユーザ環境にインストール済みのソフトウェアのバージョン及び前記ユーザ環境で行われるソフトウェアアップデートで取得するソフトウェアのバージョンと前記差分選択情報とを照合して前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を選択する選択プログラムが含まれる差分インストーラを生成する請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、更に、
前記ユーザ環境で想定されるソフトウェアアップデートの順序に従って前記複数のソフトウェアのソフトウェアアップデートを実行し、前記複数のソフトウェアのうちのいずれかのソフトウェアのソフトウェアアップデートに付随して前記共有ファイルのファイルアップデートを実行するソフトウェアアップデート実行部を有し、
前記抽出部は、
前記ソフトウェアアップデート実行部によるソフトウェアアップデートごとに、アップデートされたソフトウェアとアップデート後のバージョンとの対が示されるアップデート識別子を生成し、
前記ソフトウェアアップデート実行部による前記共有ファイルのファイルアップデートごとに、ファイルアップデート前の前記共有ファイルとの差分を抽出し、当該ファイルアップデートが付随するソフトウェアアップデートのアップデート識別子を、抽出した差分に対応付け、
前記情報生成部は、
前記ソフトウェアアップデート実行部で実行された前記複数のソフトウェアのソフトウェアアップデートと前記共有ファイルのファイルアップデートとの関係を解析し、ソフトウェアアップデートごとに、ソフトウェアアップデートでアップデートされたソフトウェアのアップデート後のバージョンで用いられる前記共有ファイルのバージョンを特定し、
前記ソフトウェアアップデート実行部で実行されたソフトウェアアップデートの順に各ソフトウェアアップデートのアップデート識別子が示され、アップデート識別子ごとに、当該アップデート識別子で示されるソフトウェアのアップデート後のバージョンで用いられる前記共有ファイルのバージョンとその次のバージョンとの差分に対応付けられたアップデート識別子を指し示すポインタ情報が対応付けられている差分選択情報を生成し、
前記差分インストーラ生成部は、
前記差分選択情報に示される複数のアップデート識別子から、前記ユーザ環境にインストール済みのソフトウェアとそのバージョンとの対に一致するアップデート識別子を抽出し、抽出したアップデート識別子に対応付けられているポインタ情報が指し示すアップデート識別子に対応付けられている差分を、前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分として選択する選択プログラムが含まれる差分インストーラを生成する請求項１に記載の情報処理装置。
【請求項４】
前記差分インストーラ生成部は、
前記差分選択情報に示される複数のアップデート識別子から、前記ユーザ環境にインストール済みのソフトウェアとそのバージョンとの対に一致するアップデート識別子を第１のアップデート識別子として抽出し、前記ユーザ環境で行われるソフトウェアアップデートでアップデートされるソフトウェアとアップデート後のバージョンとの対に一致するアップデート識別子を第２のアップデート識別子として抽出し、前記第１のアップデート識別子に対応付けられているポインタ情報が指し示すアップデート識別子に対応付けられている差分と、前記差分選択情報において前記第１のアップデート識別子と前記第２のアップデート識別子との間にある中間アップデート識別子に対応付けられているポインタ情報が指し示すアップデート識別子に対応付けられている差分とを、前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分として選択する選択プログラムが含まれる差分インストーラを生成する請求項３に記載の情報処理装置。
【請求項５】
前記差分インストーラ生成部は、
前記差分選択情報において前記第１のアップデート識別子と前記第２のアップデート識別子との間にある中間アップデート識別子に対応付けられているポインタ情報が指し示すアップデート識別子が他の中間アップデート識別子又は前記第２のアップデート識別子である場合に、前記他の中間アップデート識別子又は前記第２のアップデート識別子に対応付けられている差分を、前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分として選択する選択プログラムが含まれる差分インストーラを生成する請求項４に記載の情報処理装置。
【請求項６】
前記差分インストーラ生成部は、
前記選択プログラムと、前記抽出部により抽出された複数の差分と、前記差分選択情報とが含まれる差分インストーラを生成する請求項１に記載の情報処理装置。
【請求項７】
前記差分インストーラ生成部は、
各ソフトウェアに固有の固有ファイルのファイルアップデートにより発生した、ファイルアップデート前の前記固有ファイルとの差分が含まれる差分インストーラを生成する請求項１に記載の情報処理装置。
【請求項８】
コンピュータが、共有ファイルを共有する複数のソフトウェアのソフトウェアアップデートに付随して行われる前記共有ファイルのファイルアップデートごとに、ファイルアップデートにより発生した、ファイルアップデート前の前記共有ファイルとの差分を抽出し、
前記コンピュータが、前記複数のソフトウェアのソフトウェアアップデートと前記共有ファイルのファイルアップデートとの関係を解析し、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を前記ユーザ環境にインストール済みのソフトウェアのバージョンとの照合により選択可能な差分選択情報を生成し、
前記コンピュータが、前記ユーザ環境にインストール済みのソフトウェアのバージョンと前記差分選択情報とを照合して前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を選択する選択プログラムが含まれる差分インストーラを生成する情報処理方法。
【請求項９】
共有ファイルを共有する複数のソフトウェアのソフトウェアアップデートに付随して行われる前記共有ファイルのファイルアップデートごとに、ファイルアップデートにより発生した、ファイルアップデート前の前記共有ファイルとの差分を抽出する抽出処理と、
前記複数のソフトウェアのソフトウェアアップデートと前記共有ファイルのファイルアップデートとの関係を解析し、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を前記ユーザ環境にインストール済みのソフトウェアのバージョンとの照合により選択可能な差分選択情報を生成する情報生成処理と、
前記ユーザ環境にインストール済みのソフトウェアのバージョンと前記差分選択情報とを照合して前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を選択する選択プログラムが含まれる差分インストーラを生成する差分インストーラ生成処理とをコンピュータに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアをアップデートする方法に関する。
【背景技術】
【０００２】
ソフトウェアをアップデートする方法として差分アップデートがある。差分アップデートでは、まず、旧バージョンのソフトウェアと新バージョンのソフトウェアが比較され、旧バージョンのソフトウェアから新バージョンのソフトウェアへアップデートする際の変更内容が差分として抽出される。その後、抽出された差分を旧バージョンのソフトウェアに適用する差分インストーラが生成される。そして、旧バージョンのソフトウェアがインストールされたコンピュータ上で差分インストーラが実行されて、旧バージョンのソフトウェアが新バージョンのソフトウェアにアップデートされる。
差分アップデートにおいて、差分抽出に用いられる旧バージョンのソフトウェアと、差分が適用される旧バージョンのソフトウェアは、ファイル構成、および各ファイルの内容が同一である必要がある。これら２つの旧バージョンのソフトウェアの間で、ファイル構成または各ファイルの内容が異なる場合は、新バージョンへのアップデートがうまくいかず、場合によってはソフトウェアが実行不能となる。
このような事態を避けるため、差分インストーラはコンピュータにインストールされたソフトウェアのバージョンが、差分抽出に用いられた旧バージョンのソフトウェアのバージョンと一致しているかを確認する機能を持つのが一般的である。これは、ソフトウェアのバージョンが一致していれば、ファイル構成、および各ファイルの内容は同一であることを前提としている。【０００３】
従来のアップデート手法では、差分インストーラが、コンピュータにインストールされたソフトウェアのバージョンを確認する。更に、従来のアップデート手法では、差分インストーラが、用意された複数の差分の中からコンピュータにインストールされている旧バージョンのソフトウェアをアップデートするために必要な差分を選択し、選択した差分をコンピュータにインストールされている旧バージョンのソフトウェアに適用する。以上の手順にて、従来のアップデート手法に係る差分インストーラが、複数の旧バージョンを新バージョンにアップデートする（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２６０８２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
大規模なソフトウェア群では、複数のソフトウェアから参照され、共通で使用されるファイル（以下、共有ファイル）が存在する。このような共有ファイルの多くは、アップデートされた場合にも下位互換性を持つ。本明細書では、共有ファイルが下位互換性を持つことを前提とする。
共有ファイルを共有しているソフトウェアをアップデートするとき、アップデート後のソフトウェアが、共有ファイルの新しい機能を使用している場合には、共有ファイルも同時にアップデートする必要がある。
従来の差分アップデート手法を用いて共有ファイルを差分アップデートする場合、共有ファイルにバージョン情報を付与し、共有ファイルがバージョンアップする度に差分抽出を行うことになる。そして、差分インストーラを生成する際には、その共有ファイルを差分アップデートするために、どの差分を共有ファイルに適用するかを指定する必要がある。この一連の作業は共有ファイルそれぞれについて行う必要があるため、共有ファイルの数が増えるに従って作業量は線形的に増加する。そのため、従来手法では多くの共有ファイルが存在するソフトウェアを差分アップデートすることが困難であるという課題があった。【０００６】
この発明は上記のような課題を解決することを主な目的とし、複数のソフトウェアで共有される共有ファイルのファイルアップデートを効率的に行うことを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、
共有ファイルを共有する複数のソフトウェアのソフトウェアアップデートに付随して行われる前記共有ファイルのファイルアップデートごとに、ファイルアップデートにより発生した、ファイルアップデート前の前記共有ファイルとの差分を抽出する抽出部と、
前記複数のソフトウェアのソフトウェアアップデートと前記共有ファイルのファイルアップデートとの関係を解析し、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を前記ユーザ環境にインストール済みのソフトウェアのバージョンとの照合により選択可能な差分選択情報を生成する情報生成部と、
前記ユーザ環境にインストール済みのソフトウェアのバージョンと前記差分選択情報とを照合して前記ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を選択する選択プログラムが含まれる差分インストーラを生成する差分インストーラ生成部とを有する。
【発明の効果】
【０００８】
本発明によれば、ユーザ環境にインストール済みのソフトウェアに応じて、ソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分を差分インストーラが選択する。そして、差分インストーラが、選択した差分を適用した共有ファイルのファイルアップデートを行うため、共有ファイルのファイルアップデートを効率的に行うことができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る差分インストーラ生成システムの機能構成例を示す図。
【図２】実施の形態１に係る差分抽出部における動作を示すフローチャート図。
【図３】実施の形態１に係るソフトウェア群とファイルの関係を示す図。
【図４】実施の形態１に係るバージョン遷移リストの例を示す図。
【図５】実施の形態１に係る差分データベースの構成例を示す図。
【図６】実施の形態１に係る適用差分選択リストの例を示す図。
【図７】実施の形態１に係る適用差分選択リストの生成動作を示すフローチャート図。
【図８】実施の形態１に係る適用差分選択リストの生成動作を示すフローチャート図。
【図９】実施の形態１に係る差分インストーラ生成部における動作を示すフローチャート図。
【図１０】実施の形態１に係る差分インストーラ生成のための差分の選択動作を示すフローチャート図。
【図１１】実施の形態１に係る差分インストーラ生成のための差分の選択動作を示す図。
【図１２】実施の形態１に係る適用差分選択プログラムの動作例を示す図。
【図１３】実施の形態１に係る適用差分選択プログラムの動作例を示す図。
【図１４】実施の形態１に係る適用差分選択プログラムの差分の選択動作を示す図。
【図１５】実施の形態１に係る適用差分選択プログラムの始点と終点の列を指定する動作を示すフローチャート図。
【図１６】実施の形態１に係る適用差分選択プログラムの始点の列を指定する動作を示す図。
【図１７】実施の形態１に係る適用差分選択プログラムの終点の列を指定する動作を示す図。
【図１８】実施の形態１に係る差分インストーラ生成システムのハードウェア構成例を示す図。
【発明を実施するための形態】
【００１０】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係る差分インストーラ生成システム１０００の機能構成例を示す。なお、図１の実線の矢印は呼び出し関係を表し、破線の矢印はデータ操作を表している。
差分インストーラ生成システム１０００は、情報処理装置の例である。また、差分インストーラ生成システム１０００で行われる動作は、情報処理方法及び情報処理プログラムの例である。
差分インストーラ生成システム１０００は、図１８に示すハードウェアを備えるコンピュータである。なお、図１８に示すハードウェア構成については後述する。
【００１１】
差分インストーラ生成システム１０００は、差分抽出部１１００、差分インストーラ生成部１２００、適用差分選択リスト記憶部１３００、差分データベース１４００で構成される。
また、差分抽出部１１００は、ソフトウェアインストーラ受付部１１０１、ソフトウェア群バックアップ生成部１１０２、ソフトウェアアップデート実行部１１０３、リスト生成部１１０４、ソフトウェア群記憶部１１０５、バックアップ記憶部１１０６から構成される。リスト生成部１１０４は、抽出部及び情報生成部の例である。また、リスト生成部１１０４で行われる動作は、抽出処理及び情報生成処理の例である。
また、差分インストーラ生成部１２００は、インストーラ生成内容受付部１２０１、差分インストーラ生成実行部１２０２から構成される。差分インストーラ生成部１２００で行われる動作は、差分インストーラ生成処理の例である。
【００１２】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る差分インストーラ生成システム１０００の動作例を説明する。
差分インストーラ生成システム１０００では、ソフトウェアの差分と共有ファイルの差分を抽出する処理と、差分インストーラを生成する処理が行われる。ソフトウェアの差分と共有ファイルの差分を抽出する処理は差分抽出部１１００により行われる。また、差分インストーラを生成する処理は、差分インストーラ生成部１２００により行われる。
以下、フローチャートを参照して、それぞれの処理を説明する。
【００１３】
図２は、差分抽出部１１０における動作例を示すフローチャートである。
【００１４】
ステップＳ１０１において、ユーザが、ソフトウェアインストーラ受付部１１０１に、共有ファイルを含むソフトウェアのフルインストーラを指定する。
ユーザは、ソフトウェア群に含まれるソフトウェアが更新される度に、ソフトウェアインストーラ受付部１１０１にフルインストーラを指定する。
本明細書では、共有ファイルを共有する複数のソフトウェアをソフトウェア群という。例えば、図３では、ソフトウェア１、ソフトウェア２及びソフトウェア３が共有ファイルＡ及び共有ファイルＢを共有している。これらソフトウェア１、ソフトウェア２及びソフトウェア３は、ソフトウェア群である。なお、図３のファイル１、ファイル２はソフトウェア１に固有のファイルである。ファイル３はソフトウェア２に固有のファイルである。ファイル４はソフトウェア３に固有のファイルである。これらソフトウェア群に共有されていない、ソフトウェアに固有のファイルを固有ファイルという。
【００１５】
次に、ステップＳ１０２において、ソフトウェア群バックアップ生成部１１０２が、ソフトウェア群に含まれるファイルのバックアップを生成する。
ソフトウェア群記憶部１１０５にはソフトウェア群が記憶されている。後述する差分を抽出する処理を行うたびに、ソフトウェア群記憶部１１０５のソフトウェア群はソフトウェアアップデート実行部１１０３によりアップデートされる。そのため、ソフトウェア群記憶部１１０５には、前回差分を抽出する処理を行った際のソフトウェア群（アップデート後のソフトウェア群）がそのまま格納される。
後の手順で、ソフトウェア群に含まれるファイルについて、アップデート前後の差分抽出を行うためには、アップデート前のソフトウェア群に含まれるファイルが必要となる。そのため、ステップＳ１０２において、ソフトウェア群バックアップ生成部１１０２が、ソフトウェア群と、ソフトウェア群に含まれるファイルのバックアップを生成する。ソフトウェア群バックアップ生成部１１０２は、生成したソフトウェア群とファイルのバックアップをバックアップ記憶部１１０６に格納する。
なお、ソフトウェア群のアップデートをソフトウェアアップデートともいう。更に、ファイルのアップデートをファイルアップデートともいう。ソフトウェアアップデートには、ソフトウェアのバージョンアップと、ソフトウェアの新規インストールの両方が含まれる。ファイルアップデートにも、ファイルのバージョンアップと、ファイルの新規インストールの両方が含まれる。
【００１６】
次に、ステップＳ１０３において、ソフトウェアアップデート実行部１１０３が、フルインストーラを用いてソフトウェア群をアップデートする。
ソフトウェアアップデート実行部１１０３は、ユーザ環境で想定されるソフトウェアアップデートの順序に従って各ソフトウェアのソフトウェアアップデートを実行する。ユーザ環境とは、ソフトウェア群がインストールされるコンピュータである。ユーザ環境は、差分インストーラ生成システム１０００とは異なるコンピュータである。
また、ソフトウェアアップデート実行部１１０３は、各ソフトウェアのアップデートに付随して、各ソフトウェアの固有ファイルのアップデートを行う。更に、ソフトウェアアップデート実行部１１０３は、ソフトウェア群のうちのいずれかのソフトウェアのアップデートに付随して、共有ファイルのアップデートも行う。
このように、差分抽出部１１００では、各ソフトウェアのアップデート、固有ファイルのアップデート、共有ファイルのアップデートを管理するが、本実施の形態では、主に共有ファイルのアップデートについて説明を行う。
【００１７】
次に、ステップＳ１０４において、リスト生成部１１０４が、バックアップ記憶部１１０６のソフトウェア群のバックアップと、ソフトウェア群記憶部１１０５のアップデート後のソフトウェア群との間の差分抽出を行う。
リスト生成部１１０４は、ソフトウェアごとの差分抽出、固有ファイルの差分抽出、共有ファイルの差分抽出を行う。
固有ファイルの差分抽出と共有ファイルの差分抽出では、リスト生成部１１０４は、ファイル単位で変更の有無を判断してもよいし、さらにファイルのバイナリの比較まで行い、バイナリ単位での差分を抽出してもよい。
図４は、リスト生成部１１０４により生成されたバージョン遷移リストの例を示す。バージョン遷移リストでは、ソフトウェアのバージョンの遷移と共有ファイルのバージョンの遷移とが記述される。図４では、共有ファイルＡ及び共有ファイルＢを共有するソフトウェア１〜３（以下、ＳＷ１〜３ともいう）についてのバージョン遷移リストを示す。
「インストールしたソフトウェア」の欄には、ソフトウェアアップデート実行部１１０３により差分抽出部１１００内でアップデートされたソフトウェアの識別子が示される。
「ソフトウェアのバージョン」の欄には、アップデート後のソフトウェアのバージョンが示されれる。
「インストールしたソフトウェア」の欄に示される値及び「ソフトウェアのバージョン」の欄に示される値の組み合わせにより、ソフトウェアアップデートの経緯が示される。図４の例では、左から順にソフトウェアアップデートの順序が記述されている。具体的には、図４の例では、最初に、ソフトウェア１のバージョン１．０が新規にインストールされ、次に、ソフトウェア２のバージョン１．０が新規にインストールされ、次に、ソフトウェア３のバージョン１．０が新規にインストールされている。更に、ソフトウェア１がバージョン２．０にアップデートされ、次に、ソフトウェア２がバージョン２．０にアップデートされている。なお、「インストールしたソフトウェア」の欄に示される値及び「ソフトウェアのバージョン」の欄に示される値の組み合わせ（例えば、「ＳＷ１」と「１．０」の組み合わせ）を、アップデート識別子という。
「共有ファイルのバージョン」の欄には、ソフトウェアアップデート実行部１１０３により差分抽出部１１００内でアップデートされた共有ファイルのバージョンが示される。つまり、「共有ファイルのバージョン」の欄には、共有ファイルの段階的なアップデートの経緯が示される。図４の例では、左から順にファイルアップデートの順序が記述されている。具体的には、図４の例では、ソフトウェア１のバージョン１．０のインストール時に共有ファイルＡのバージョン１．０がインストールされ、共有ファイルＢのバージョン１．０がインストールされている。次に、ソフトウェア２のバージョン１．０のインストール時に共有ファイルＡがバージョン１．１にアップデートされ、共有ファイルＢがバージョン１．１にアップデートされている。また、ソフトウェア３のバージョン１．０のインストール時に共有ファイルＡのみがバージョン１．２にアップデートされている。また、ソフトウェア１のバージョン２．０へのアップデート時に共有ファイルＢのみがバージョン１．２にアップデートされている。また、ソフトウェア２のバージョン２．０へのアップデート時に共有ファイルＡのみがバージョン１．３にアップデートされている．
「共有ファイルのバージョン」の欄に示される順序に従って共有ファイルの差分を適用すれば、全てのバージョンの共有ファイルをユーザ環境で再現できる。
【００１８】
次に、ステップＳ１０５において、リスト生成部１１０４が、ステップＳ１０４で抽出した差分を差分データベース１４００に格納する。
差分データベース１４００の構成例を図５に示す。図５に示すように、差分データベース１４００では、アップデート識別子ごとに、固有ファイルのバージョン情報と共有ファイルのバージョン情報と差分情報が管理されている。固有ファイルのバージョン情報には、固有ファイルの旧バージョンのバージョン名と新バージョンのバージョン名との組合せが示される。共有ファイルのバージョン情報には、共有ファイルの旧バージョンのバージョン名と新バージョンのバージョン名との組合せが示される。また、差分情報には、ソフトウェアのアップデートで発生した差分、固有ファイルのアップデートで発生した差分、共有ファイルのアップデートで発生した差分が示される。
このように、リスト生成部１１０４は、ステップＳ１０４とＳ１０５において、ソフトウェアアップデートごとにアップデート識別子を生成し、共有ファイルのファイルアップデートごとに、ファイルアップデート前の共有ファイルとの差分を抽出し、当該ファイルアップデートが付随するソフトウェアアップデートのアップデート識別子を、抽出した差分に対応付ける。
なお、ソフトウェアアップデートにおいて固有ファイルのファイルアップデートが行われていない場合は、固有ファイルのバージョン情報には、固有ファイルの１つのバージョン名が示される。また、差分情報には、固有ファイルの差分は含まれない。同様に、ソフトウェアアップデートにおいて共有ファイルのファイルアップデートが行われていない場合は、共有ファイルのバージョン情報には、共有ファイルの１つのバージョン名が示される。また、差分情報には、共有ファイルの差分は含まれない。
【００１９】
次に、ステップＳ１０６において、リスト生成部１１０４が、適用差分選択リストを生成する。
適用差分選択リストとは、ユーザ環境で差分インストーラ内の適用差分選択プログラムが適用する差分を効率的に選択するために用いるリストである。後述するように、ユーザ環境では、ソフトウェアアップデートに付随して共有ファイルのファイルアップデートが行われる。適用差分選択リストは、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分をユーザ環境にインストール済みのソフトウェアのバージョンとの照合により差分インストーラ内の適用差分選択プログラムが選択可能なリストである。リスト生成部１１０４は、ソフトウェア群のソフトウェアアップデートと共有ファイルのファイルアップデートとの関係を解析し、ソフトウェアアップデートごとに、ソフトウェアアップデートでアップデートされたソフトウェアのアップデート後のバージョンで用いられる共有ファイルのバージョンを特定し、適用差分選択リストを生成する。
適用差分選択リストは、差分選択情報の例である。
差分インストーラ及び適用差分選択プログラムの詳細は後述する。
【００２０】
適用差分選択リストの例を図６に示す。
図６において、「インストールしたソフトウェア」及び「ソフトウェアのバージョン」の欄は、図４に示したものと同じである。つまり、適用差分選択リストでは、ソフトウェアアップデート実行部１１０３で実行されたソフトウェアアップデートの順に各ソフトウェアアップデートのアップデート識別子が示される。
また、ポインタ情報は、対応するアップデート識別子で示されるソフトウェアのアップデート後のバージョンで用いられる共有ファイルのバージョンとその次のバージョンとの差分に対応付けられたアップデート識別子を指し示す情報である。つまり、ポインタ情報の値が示されている列に対応したソフトウェアがユーザ環境にインストールされているとき、ポインタ情報の値が示されている行の共有ファイルを１段階アップデートするためには、どの列のソフトウェアをインストール、またはアップデートしたときの差分を適用すればよいのかが、右方向への移動量で示されている。
例えば、ソフトウェア１のバージョン１．０がユーザ環境にインストールされており、このソフトウェア１のバージョン１．０に用いられる共有ファイルＡがバージョン１．０であると想定する。ソフトウェア１のバージョン１．０の列の共有ファイルＡのポインタ情報は「１」である。このため、共有ファイルＡのバージョン１．０と次のバージョンであるバージョン１．１との差分は、１つ右の列のソフトウェア２のバージョン１．０に対応付けられている。差分インストーラ内の適用差分選択プログラムは、ユーザ環境にソフトウェア１のバージョン１．０がインストールされている場合に、ソフトウェア２のバージョン１．０がソフトウェアアップデート実行部１１０３でインストールされた際に抽出された共有ファイルＡの差分を共有ファイルＡのバージョン１．０に適用することで、共有ファイルＡのバージョン１．１を取得することができると判定する。
なお、ポインタ情報が０の場合は、その共有ファイルをアップデートする差分は存在しない。
ステップＳ１０６の適用差分選択リストの生成は、図７及び図８に示すフローチャートに従って行われる。図７及び図８の詳細は、後述する。
【００２１】
最後に、ステップＳ１０７において、リスト生成部１１０４が適用差分選択リストを表示装置に表示し、ユーザが、差分が正しく出力されたことを確認する。
【００２２】
次に、図７及び図８を参照して、適用差分選択リストの生成手順を説明する。
【００２３】
先ず、ステップＳ３０１において、リスト生成部１１０４が、適用差分選択リストの右端に列を追加し、追加した列にソフトウェア及びバージョンを記入する。
【００２４】
次に、ステップＳ３０２において、リスト生成部１１０４が、適用差分選択リストから、共有ファイルを１つ選択する。
【００２５】
次に、リスト生成部１１０４が、ステップＳ３０９において、ステップＳ３０１で対象にしたバージョンのソフトウェア（以下、判定対象ソフトウェアという）が、ステップＳ３０２で選択した共有ファイルを含むか否か（共有ファイルを用いるか否か）をバージョン遷移リストを参照して判定する。
ステップＳ３０９において、判定対象ソフトウェアが共有ファイルを含まない場合は、ステップＳ３０３において、リスト生成部１１０４は、ステップＳ３０１で追加した列の、ステップＳ３０２で選択した共有ファイルのポインタ情報に「−」を指定する。
そして、リスト生成部１１０４は、ステップＳ３１０において、全ての共有ファイルを選択したか否かを判定し、まだ選択していない共有ファイルがあれば、ステップＳ３０８で、次の共有ファイルを選択する。
【００２６】
一方、ステップＳ３０９において、判定対象ソフトウェアが、ステップＳ３０２で選択した共有ファイルを含む場合は、リスト生成部１１０４は、ステップＳ３１１において、判定対象ソフトウェアのアップデートにおいて、共有ファイルがアップデートされているか否かをバージョン遷移リストを参照して判定する。
ステップＳ３１１において、共有ファイルがアップデートされている場合は、リスト生成部１１０４は、ステップＳ３０４において、ステップＳ３０１で追加した列の、ステップＳ３０２で選択した共有ファイルのポインタ情報に「０」を指定する。
【００２７】
次に、ステップＳ３０５において、リスト生成部１１０４は、その共有ファイルのポインタ情報が「０」である他の列があれば、ステップＳ３０１で追加した列を指すように、他の列のポインタ情報を更新する。
【００２８】
一方、ステップＳ３１１において、共有ファイルがアップデートされていない場合は、リスト生成部１１０４は、ステップＳ３０６において、バージョン遷移リストを参照して、判定対象ソフトウェアにおける、その共有ファイルのバージョンを確認する。
次に、リスト生成部１１０４は、ステップＳ３０７において、ステップＳ３０１で追加した列の、その共有ファイルのポインタ情報に、次に適用する差分を抽出したソフトウェアの列までの移動量を指定する。
【００２９】
次に、差分インストーラ生成部１２００が差分インストーラを生成する動作を図９のフローチャートを用いて説明する。
【００３０】
先ず、ステップＳ２０１において、ユーザが、インストーラ生成内容受付部１２０１に、生成する差分インストーラの情報を指定する。
ここでユーザが指定する情報は、差分インストーラを生成するソフトウェアの種類、アップデート前のバージョン、アップデート後のバージョンの３つである。
アップデート前のバージョンとは、生成する差分インストーラによるアップデートが可能なバージョンのうち、最も古いバージョンである。例えば、ソフトウェア１のバージョンが、１．０、２．０、３．０の３種類存在するとき、バージョン１．０をバージョン３．０へアップデートする差分インストーラを生成する場合は、アップデート前のバージョンは１．０、アップデート後のバージョンはバージョン３．０である。このとき、生成された差分インストーラによりバージョン２．０からバージョン３．０へのアップデートも可能である。
【００３１】
次に、ステップＳ２０２において、差分インストーラ生成実行部１２０２が適用差分選択リストを取得する。適用差分選択リストは、適用差分選択リスト記憶部１３００で記憶されている。
ここで差分インストーラ生成実行部１２０２が取得する適用差分選択リストは、アップデート後のバージョンのソフトウェアに対応した列を持つ必要がある。例えば、図６の適用差分選択リストでは、最後に追加された列が右端のソフトウェア２、バージョン２．０に対応する列であるので、この適用差分選択リストでは、ソフトウェア２、バージョン２．０よりも後に開発されたソフトウェアの差分インストーラの生成を行うことはできない。
【００３２】
次に、ステップＳ２０３において、差分インストーラ生成実行部１２０２は、ステップＳ２０２で取得した適用差分選択リストの情報に基づき、差分インストーラの生成に必要な差分を選択する。
このステップＳ２０３の動作の詳細は、図１０を参照して後述する。
【００３３】
次に、ステップＳ２０４において、差分インストーラ生成実行部１２０２が、差分インストーラの生成に必要な差分を差分データベース１４００から取得する。
つまり、差分インストーラ生成実行部１２０２は、差分データベース１４００から、図５に示す差分情報を取得する。
【００３４】
次に、ステップＳ２０５において、差分インストーラ生成実行部１２０２は、差分インストーラを生成する。
差分インストーラは、ステップＳ２０２で取得した適用差分選択リスト、ステップＳ２０４で取得した差分、および適用差分選択プログラムで構成される。
適用差分選択プログラムは、ユーザ環境にインストール済みのソフトウェアのバージョンの情報と、適用差分選択リストを用いて、適切な順序で必要な差分を適用するプログラムである。
より具体的には、適用差分選択プログラムは、適用差分選択リストに示される複数のアップデート識別子から、ユーザ環境にインストール済みのソフトウェアとそのバージョンとの対に一致するアップデート識別子を抽出する。そして、適用差分選択プログラムは、抽出したアップデート識別子に対応付けられているポインタ情報が指し示すアップデート識別子に対応付けられている差分を、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分として選択する。
適用差分選択プログラムは、選択プログラムの例である。
なお、適用差分選択プログラムの動作例は、図１２及び図１３のフローチャートを参照して後述する。
【００３５】
最後に、差分インストーラ生成実行部１２０２は、差分インストーラの生成が完了したことを通知するメッセージを表示し、ステップ２０６において、ユーザが差分インストーラが生成されたことを確認する。
【００３６】
次に、図１０を参照して、図９のステップＳ２０３の動作、すなわち、ソフトウェアのアップデートに必要な差分の選択動作の詳細を説明する。
【００３７】
先ず、ステップＳ４０１において、差分インストーラ生成実行部１２０２は、適用差分選択リストから、差分インストーラを生成するソフトウェアの、アップデート前のバージョンの列を指定する。この列を、以下、列Ａという。
【００３８】
ステップＳ４０２において、差分インストーラ生成実行部１２０２は、適用差分選択リストから、差分インストーラを生成するソフトウェアの、アップデート後のバージョンの列を指定する。この列を、以下、列Ｂという。
【００３９】
次に、ステップＳ４０３において、差分インストーラ生成実行部１２０２は、列Ａと列Ｂの間にある列（中間列ともいう）に対応するソフトウェアのインストール又対応するソフトウェアへのアップデート、及び列Ｂに対応するソフトウェアのインストール又は対応するソフトウェアへのアップデートを行った際に抽出された全ての共有ファイルの差分を、必要な差分として選択する。
【００４０】
最後に、ステップＳ４０４において、差分インストーラ生成実行部１２０２は、列Ａと列Ｂの間にある列に対応するソフトウェアのインストール又は対応するソフトウェアへのアップデート、及び列Ｂに対応するソフトウェアのインストール又は対応するソフトウェアへのアップデートを行った際に抽出された差分のうち、差分インストーラを生成するソフトウェアの固有ファイルの差分を、必要な差分として選択する。
【００４１】
図１１は、図６の適用差分選択リストが用いられるとき、ソフトウェア１のバージョン１．０をバージョン２．０にアップデートする差分インストーラを生成するために必要な差分の選択を行う例を示す。
図１１の例では、ソフトウェア２のバージョン１．０のインストール時の共有ファイルの差分と、ソフトウェア３のバージョン１．０のインストール時の共有ファイルの差分と、ソフトウェア１のバージョン２．０へのアップデート時の共有ファイルの差分とが選択される。また、ソフトウェア１のバージョン２．０へのアップデート時の固有ファイルの差分が選択される。
【００４２】
次に、適用差分選択プログラムの動作例を説明する。
適用差分選択プログラムは、最初に適用する差分の候補を全て確認し、その後古い差分から順に共有ファイルへの適用を行う。適用差分選択プログラムは、適用差分選択リストのそれぞれの共有ファイルに対応した行ごとに、適用する差分の候補の確認を行う。より具体的には、適用差分選択プログラムは、適用差分選択リストの各行について、始点と終点を定め、始点から終点に至るまで、ポインタ情報の指す列を確認し、ポインタ情報の指す列を新たな始点とするということを繰り返す。この時、経由した列に対応した差分が、適用する差分の候補となる。
より具体的には、適用差分選択プログラムは、図１２及び図１３に示すフローに従って動作する。
以下、図１２及び図１３を参照して、適用差分選択プログラムの動作を説明する。
【００４３】
先ず、ステップＳ５００において、適用差分選択プログラムは、差分インストーラがユーザ環境に初めて適用されるか否かを判定する。
【００４４】
ユーザ環境への差分インストーラの適用が初めてでない場合は、適用差分選択プログラムは、ステップＳ５０１において、過去に適用した差分の情報を取得する。
【００４５】
次に、ステップＳ５０２において、適用差分選択プログラムは、ユーザ環境にインストールされているソフトウェアとそのバージョンをユーザ環境から取得する。
【００４６】
次に、ステップＳ５１４において、適用差分選択プログラムは、差分アップデート可能なバージョンのソフトウェアがユーザ環境にインストールされているか否かを判定する。
差分アップデート可能なバージョンのソフトウェアがユーザ環境にインストールされていない場合は、ステップＳ５１３において、適用差分選択プログラムは、差分アップデートが失敗したことを、ユーザ環境のユーザに通知する。
【００４７】
次に、ステップＳ５０３において、適用差分選択プログラムは、適用差分選択リストにおいて、ユーザ環境にインストール済みのバージョンの列と、アップデート後のバージョンの列を確認し、中間の列およびアップデート後のバージョンの列に、差分インストールを行うソフトウェアの固有ファイルの差分を含む列があれば、該当する列の差分を差分の候補に追加する。
【００４８】
次に、ステップＳ５０４において、適用差分選択プログラムは、適用差分選択リストから共有ファイルの行を１行選択する。
【００４９】
次に、ステップＳ５０５において、適用差分選択プログラムは、ステップＳ５０４で選択した行の中から始点の列、終点の列を指定する。
【００５０】
次に、ステップＳ５１５において、適用差分選択プログラムは、始点の列が全ての終点の列よりも左にあるか否かを判定する。
【００５１】
ステップ５１５において、始点の列が全ての終点の列よりも左にない場合は、適用差分選択プログラムは、ステップＳ５１７の判定を行う。
【００５２】
一方、ステップＳ５１５において、始点の列が全ての終点の列よりも左にある場合は、ステップＳ５０６において、適用差分選択プログラムは、ステップＳ５０４で選択した行において、始点の列のポインタ情報が指す列を確認する。
【００５３】
次に、ステップＳ５０７において、適用差分選択プログラムは、ポインタ情報が指す列に対応したソフトウェアがソフトウェアアップデート実行部１１０３でアップデートされたときに抽出された共有ファイルの差分が、適用する差分の候補に含まれていなければ、この差分を、適用する差分の候補に追加する。
【００５４】
次に、ステップＳ５１６において、適用差分選択プログラムは、ポインタ情報が指す列が終点の列であるかどうかを判定する。
【００５５】
ステップＳ５１６において、ポインタ情報が指す列が終点の列でなければ、適用差分選択プログラムは、ポインタ情報が指す列を次の始点の列に指定する。その後、適用差分選択プログラムは、ステップＳ５１５以降の動作を繰り返す。
【００５６】
一方、ステップＳ５１６において、ポインタ情報が指す列が終点の列である場合は、適用差分選択プログラムは、ステップＳ５１７において、適用差分選択リストに含まれる全ての共有ファイルの行について確認を行ったか否かを判定する。
【００５７】
ステップＳ５１７において、確認を行っていない行が存在する場合は、適用差分選択プログラムは、ステップＳ５０９において、適用差分選択リストから未確認の共有ファイルの行を選択する。
【００５８】
一方、ステップＳ５１７において、全ての共有ファイルの行について確認を終えている場合は、適用差分選択プログラムは、ステップＳ５１０において、適用する差分の候補を、適用差分選択リストの左側から順に、共有ファイル及び固有ファイルに適用する。
【００５９】
次に、ステップＳ５１１において、適用差分選択プログラムは、適用した差分の情報をユーザ環境内の記憶領域に記録する。
【００６０】
最後に、ステップＳ５１２において、適用差分選択プログラムは、ユーザ環境のユーザに、差分アップデートが完了したことを通知する。
【００６１】
図１４は、適用差分選択プログラムの動作例を示す。
図１４では、ソフトウェア１のバージョン１．０、ソフトウェア２のバージョン１．０がインストール済みのユーザ環境において、図６の適用差分選択リストを持つソフトウェア１の差分インストーラの適用差分選択プログラムの動作例を示す。以下では、適用差分選択プログラムが共有ファイルＡのアップデートを行う例を説明する。
適用差分選択プログラムは、ユーザ環境にインストール済みのソフトウェアである、ソフトウェア１のバージョン１．０とソフトウェア２のバージョン１．０を抽出する。図１４の例では、適用差分選択プログラムは、ソフトウェア２のバージョン１．０に対応する列を始点の列として指定する（ステップＳ５０５）。また、適用差分選択プログラムは、ソフトウェアアップデートの対象であるソフトウェア１のバージョン２．０に対応する列と、ソフトウェア３のバージョン１．０の列を終点の列として指定する（ステップＳ５０５）。
適用差分選択プログラムは、始点の列のポインタ情報が指す列を確認する。図１４では、ポインタ情報は「１」であるため、ソフトウェア３のバージョン１．０の列に対応する、差分インストーラに含まれる差分を、適用する差分の候補に追加する（ステップＳ５０７）。
次に、適用差分選択プログラムは、始点の列のポインタ情報が指す列を次の始点の列に指定する（ステップＳ５０８）。つまり、適用差分選択プログラムは、ソフトウェア３のバージョン１．０の列を次の始点の列に指定する。
この始点の列は、終点の列の１つであるソフトウェア３のバージョン１．０の列に対応する列よりも左にないので、適用差分選択プログラムは、共有ファイルＡについての差分の選択を終える。
この結果、ソフトウェアアップデート実行部１１０３でソフトウェア３のバージョン１．０がインストールされた際に抽出された共有ファイルＡの差分がユーザ環境でのソフトウェア１のバージョン２．０へのアップデートに付随して行われる共有ファイルＡのアップデートに用いられる。
つまり、差分インストーラは、ソフトウェア１のバージョン２．０へのアップデートと並行して、ユーザ環境に存在する共有ファイルＡに、この差分を適用して共有ファイルＡのアップデートを行う。
【００６２】
次に、図１２のステップＳ５０５の始点の列、終点の列を指定する動作の詳細を図１５のフローチャートを参照して説明する。
【００６３】
先ず、ステップＳ６０１において、適用差分選択プログラムは、適用差分選択リストのうち、ユーザ環境にインストール済みのソフトウェアに対応する列、過去に適用した差分に対応する列を始点の候補として抽出する。
【００６４】
次に、ステップＳ６０２において、適用差分選択プログラムは、各始点の候補について、ポインタ情報が指す列を確認し、最も右の列を指す列を始点の列に指定する。該当する列が複数ある場合は、適用差分選択プログラムは、適用差分選択リストにおいて最も右にある列を始点の列に指定する。
【００６５】
次に、ステップＳ６０３において、適用差分選択プログラムは、アップデート後のソフトウェアの列のポインタ情報を確認する。
【００６６】
次に、ステップＳ６０７において、適用差分選択プログラムは、ポインタ情報の値が「−」であるかどうかを判定する。
【００６７】
ステップＳ６０７において、ポインタ情報の値が「−」である場合は、適用差分選択プログラムは、ステップＳ６０４において、ポインタ情報がアップデート後のソフトウェアの列より左を指しているすべての列を終点に指定する。
【００６８】
一方、ステップＳ６０７において、ポインタ情報の値が「−」でない場合は、適用差分選択プログラムは、ステップＳ６０８において、ポインタ情報が「０」であるかどうかを判定する。
【００６９】
ステップＳ６０８において、ポインタ情報の値が「０」である場合は、適用差分選択プログラムは、ステップＳ６０５において、ポインタ情報が「０」の全ての列を終点に指定する。
【００７０】
ステップＳ６０８において、ポインタ情報の値が「０」でない場合は、適用差分選択プログラムは、ステップＳ６０６において、アップデート後のソフトウェアの列を終点に指定する。
また、適用差分選択プログラムは、アップデート後のソフトウェアの列のポインタ情報が指す列を、ポインタ情報が指している他の列も全て終点に指定する。
【００７１】
図１６及び図１７は、ソフトウェア１のバージョン１．０、ソフトウェア２のバージョン１．０がインストールされているユーザ環境において、ソフトウェア１をバージョン２．０にアップデートする場合の、始点と終点を求める動作の例を示す。
【００７２】
適用差分選択プログラムは、ソフトウェア１のバージョン１．０の列と、ソフトウェア２のバージョン１．０の列を始点の候補列として抽出する（ステップＳ６０１）。
また、適用差分選択プログラムは、各始点の候補列のポインタ情報が指す列を確認する（ステップＳ６０２）。ソフトウェア２のバージョン１．０のポインタ情報が指す列は、ソフトウェア１のバージョン１．０のポインタ情報が指す列よりも右にあるので、適用差分選択プログラムは、共有ファイルＡ及び共有ファイルＢについて、ソフトウェア２のバージョン１．０の列を始点の列として指定する（ステップＳ６０２）。
【００７３】
また、適用差分選択プログラムは、アップデート後のソフトウェアの列であるソフトウェア１のバージョン２．０の列のポインタ情報を確認する（ステップＳ６０３）。
共有ファイルＡの場合は、ソフトウェア１のバージョン２．０の列のポインタ情報は「−」でも「０」でもない。このため、適用差分選択プログラムは、アップデート後のソフトウェアの列であるソフトウェア１のバージョン２．０の列、およびソフトウェア１のバージョン２．０の列のポインタ情報が指す列であるソフトウェア２のバージョン２．０をポインタ情報が指しているソフトウェア３のバージョン１．０の列を終点の列として指定する（ステップＳ６０６）。
共有ファイルＢの場合は、ソフトウェア１のバージョン２．０の列のポインタ情報は「０」である。このため、適用差分選択プログラムは、ポインタ情報が「０」である、ソフトウェア１のバージョン２．０の列と、ソフトウェア２のバージョン２．０の列を、終点の列に指定する（ステップＳ６０５）。
【００７４】
以上のように、適用差分選択プログラムは、適用差分選択リストに示される複数のアップデート識別子から、ユーザ環境にインストール済みのソフトウェアとそのバージョンとの対に一致するアップデート識別子（第１のアップデート識別子）の列を始点の列として抽出する。また、適用差分選択プログラムは、ユーザ環境で行われるソフトウェアアップデートでアップデートされるソフトウェアとアップデート後のバージョンとの対に一致するアップデート識別子（第２のアップデート識別子）の列を終点の列として抽出する。そして、適用差分選択プログラムは、始点の列に対応付けられているポインタ情報が指し示すアップデート識別子に対応付けられている差分と、適用差分選択リストにおいて始点の列と終点の列との間にある中間列のアップデート識別子（中間アップデート識別子）に対応付けられているポインタ情報が指し示すアップデート識別子に対応付けられている差分とを、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分として選択する。
また、適用差分選択プログラムは、適用差分選択リストにおいて中間列のアップデート識別子（中間アップデート識別子）に対応付けられているポインタ情報が指し示すアップデート識別子が他の中間列のアップデート識別子（中間アップデート識別子）又は終点の列のアップデート識別子（第２のアップデート識別子）である場合に、他の中間列のアップデート識別子（中間アップデート識別子）又は終点の列のアップデート識別子（第２のアップデート識別子）に対応付けられている差分を、ユーザ環境で行われるソフトウェアアップデートに付随して行われるファイルアップデートで取得する差分として選択する。
【００７５】
＊＊＊ハードウェア構成の説明＊＊＊
次に、差分インストーラ生成システム１０００のハードウェア構成例を図１８に示す。
図１８において、差分抽出マシンＨ１００は図１の差分抽出部１１００の処理を行うコンピュータである。また、差分インストーラ生成マシンＨ２００は図１の差分インストーラ生成部１２００の処理を行うコンピュータである。そして、インストールメディアＨ３００は、差分抽出部１１００で差分抽出を行う際に差分抽出マシンＨ１００にインストーラを入力するためのメディアである。差分インストールメディアＨ４００は、差分インストーラ生成マシンＨ２００で生成された差分インストーラが出力されるメディアである。ストレージＨ５００は、図１の適用差分選択リスト記憶部１３００及び差分データベース１４００を実現する記憶装置である。
図１８では、差分抽出マシンＨ１００と差分インストーラ生成マシンＨ２００はそれぞれ別のコンピュータとなっているが、１つのコンピュータに差分抽出マシンＨ１００と差分インストーラ生成マシンＨ２００の役割を持たてもよい。その場合、ストレージＨ５００は、コンピュータのハードディスクで実現してもよい。また、インストーラがメディアではなく電子データで配布される場合は、ディスクドライブＨ１０３、ディスクドライブＨ２０３は不要となる。
【００７６】
動作とハードウェアの関係について説明する。
図１の差分抽出部１１００の動作は、図１８において、メモリＨ１０２に展開されたプログラムをプロセッサＨ１０１が実行することで実現される。
つまり、差分抽出部１１００は、プログラムで構成される。
このプログラムは、ハードディスクＨ１０４に格納されており、メモリＨ１０２にロードされて、プロセッサＨ１０１により実行される。
プロセッサＨ１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等である。
メモリＨ１０２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
ハードディスクＨ１０４は、不揮発性の記憶装置であり、図１のソフトウェア群記憶部１１０５及びバックアップ記憶部１１０６を実現する。
ソフトウェアインストーラ受付部１１０１の動作では、インストールメディアＨ３００に含まれるインストーラが、ディスクドライブＨ１０３によって取得される。ソフトウェア群バックアップ生成部１１０２の動作では、ハードディスクＨ１０４の操作が行われる。ソフトウェアアップデート実行部１１０３の動作では、インストーラの実行プログラムが、メモリＨ１０２に展開され、プロセッサＨ１０１で実行されることにより、ハードディスクＨ１０４の内容が更新される。リスト生成部１１０４の動作では、プロセッサＨ１０１が、ハードディスクＨ１０４に記録された２つのソフトウェア群の差分抽出を行い、その後、適用差分選択リスト、差分データベース１４００の更新を行うためにＬＡＮアダプタＨ１０５を介して、ストレージＨ５００にアクセスする。
また、ハードディスクＨ１０４には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。そして、ＯＳの少なくとも一部がプロセッサＨ１０１により実行される。
プロセッサＨ１０１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
【００７７】
差分インストーラ生成部１２００の動作も同様に、メモリＨ２０２に展開されたプログラムをプロセッサＨ２０１が実行することで実現される。
つまり、差分インストーラ生成部１２００は、プログラムで構成される。
このプログラムは、ハードディスクＨ２０４に格納されており、メモリＨ２０２にロードされて、プロセッサＨ２０１により実行される。
プロセッサＨ２０１は、ＣＰＵ、ＤＳＰ等である。
メモリＨ２０２は、ＲＡＭである。
差分インストーラ生成実行部１２０２の動作では、プロセッサＨ２０１が、適用差分選択リストと必要な差分をＬＡＮアダプタＨ２０５を介してストレージＨ５００から取得する。そして、プロセッサＨ２０１が、適用差分選択リストと差分とハードディスクＨ２０４に記録された適用差分選択プログラムを組み合わせて差分インストーラを生成する。更に、プロセッサＨ２０１は、生成した差分インストーラを、ハードディスクＨ２０４に記録する。また、プロセッサＨ２０１は、ディスクドライブＨ２０３を用いて、差分インストールメディアＨ４００を生成する。
また、ハードディスクＨ２０４には、ＯＳも記憶されている。そして、ＯＳの少なくとも一部がプロセッサＨ２０１により実行される。
プロセッサＨ２０１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
【００７８】
また、ソフトウェアインストーラ受付部１１０１、ソフトウェア群バックアップ生成部１１０２、ソフトウェアアップデート実行部１１０３、リスト生成部１１０４、インストーラ生成内容受付部１２０１、差分インストーラ生成実行部１２０２（以下、これらをまとめて「部」という）の機能を実現するプログラムは、ハードディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記憶媒体に記憶されてもよい。
【００７９】
また、「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、差分インストーラ生成システム１０００は、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）といった電子回路により実現されてもよい。
この場合は、「部」は、それぞれ電子回路の一部として実現される。
なお、プロセッサＨ１０１、Ｈ２０１及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
【００８０】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態では、共有ファイルを共有する複数のソフトウェアであるソフトウェア群を差分抽出部１１００に持ち、それをインストーラによりアップデートしながら差分抽出を行う。このため、共有ファイルの全てのバージョンに対して、バージョンを１段階アップデートするための差分を得ることができる。
そして、適用差分選択リスト、および適用差分選択プログラムを用いて、ユーザ環境で共有ファイルに差分を順に適用することで、ソフトウェアのアップデートとともに共有ファイルのアップデートが可能となる。
【００８１】
また、本実施の形態では、他に、以下のような効果を得ることができる。
【００８２】
差分抽出部に対して入力するのがインストーラであるため、共有ファイルが多い場合でも、差分抽出のために複数のバージョンが異なる共有ファイルを用意する必要がない。
【００８３】
差分抽出を行う単位が、ソフトウェア群全体であるので、共有ファイルが多い場合でも、１回のアップデートで差分抽出は２回で済み、共有ファイルごとに差分抽出を行う必要がない。
【００８４】
共有ファイルのバージョンが、入力したインストーラによるアップデート内容に対応している。また、ソフトウェアの固有ファイルと共有ファイルに分けて差分を抽出するため、差分の管理が容易である。
【００８５】
適用差分選択プログラムは、どのソフトウェアをアップデートしたとき、あるいはどの差分を適用したときに共有ファイルが更新されたかが分かれば、その共有ファイルをアップデートする差分を選択することができる。従って、差分インストーラ内でアップデートする共有ファイルのバージョンを指定する必要がない。
【００８６】
適用差分選択プログラムは、適用差分選択リストの情報をもとに適用する差分を判定する。このため、適用差分選択リストが更新されていれば、どのソフトウェアのどのバージョンのアップデートに対しても適用差分選択プログラムを転用することが可能である。従って、差分インストーラの生成が容易になる。
【００８７】
適用差分選択リストを用いることで、次に適用する差分を確認できるため、差分適用可否の判定を差分ごとに行う必要がない。
この点、従来方式の複数の差分を持つ差分インストーラは、各差分の適用を試みて、適用先の各ファイルのバージョンをチェックする。そして、従来方式の差分インストーラは、アップデート可能なバージョンであればアップデートし、アップデートできないバージョンであれば、何も行わないという処理を行う。このような差分インストーラでは、アップデートを行わない場合でも各ファイルに対してバージョンチェックを行うため、インストール時間が長くなることがある。
【００８８】
適用差分選択リストでは、ポインタ情報に負の値を指定することで、後に開発されたソフトウェアに含まれる共有ファイルのバージョンが、以前に開発されたソフトウェアに含まれる共有ファイルのバージョンよりも古い場合にも、問題なく差分を適用することができる。
【００８９】
また、複数の旧バージョンをアップデートする差分インストーラも生成することが可能である。
【符号の説明】
【００９０】
１０００  差分インストーラ生成システム、１１００  差分抽出部、１１０１  ソフトウェアインストーラ受付部、１１０２  ソフトウェア群バックアップ生成部、１１０３  ソフトウェアアップデート実行部、１１０４  リスト生成部、１１０５  ソフトウェア群記憶部、１１０６  バックアップ記憶部、１２００  差分インストーラ生成部、１２０１  インストーラ生成内容受付部、１２０２  差分インストーラ生成実行部、１３００  適用差分選択リスト記憶部、１４００  差分データベース。
【図１】
2017145357.tif 000003
【図２】
2017145357.tif 000004
【図３】
2017145357.tif 000005
【図４】
2017145357.tif 000006
【図５】
2017145357.tif 000007
【図６】
2017145357.tif 000008
【図７】
2017145357.tif 000009
【図８】
2017145357.tif 000010
【図９】
2017145357.tif 000011
【図１０】
2017145357.tif 000012
【図１１】
2017145357.tif 000013
【図１２】
2017145357.tif 000014
【図１３】
2017145357.tif 000015
【図１４】
2017145357.tif 000016
【図１５】
2017145357.tif 000017
【図１６】
2017145357.tif 000018
【図１７】
2017145357.tif 000019
【図１８】
2017145357.tif 000020
【国際調査報告】
2017145357.tif 000021
2017145357.tif 000022