(57)【特許請求の範囲】
【請求項１】
修正単位に区分されたソフトウェアの前記修正単位のコンピュータに対する導入有無を判定する判定情報を含む判定ファイルを記憶装置に記憶し、
導入されたソフトウェアに関する判定ファイルを特定する情報を含む製品識別ファイルを前記記憶装置に記憶し、
記憶した前記判定ファイルを読み出し、
読み出した前記判定ファイルに含まれる前記判定情報に基づいて修正単位の導入有無を判定し、
導入されていると判定した修正単位に対応する修正を行い、
保存した前記製品識別ファイルおよび前記判定ファイルに対応する情報を記録した管理ファイルを作成する
処理を前記コンピュータに実行させるプログラム。
【請求項２】
前記ソフトウェアを前記コンピュータに導入する場合に、前記ソフトウェアが含む各修正単位に対応する前記判定ファイルを前記記憶装置に記憶する
請求項１に記載のプログラム。
【請求項３】
導入済の前記ソフトウェアの状態を変更する場合に、前記ソフトウェアが含む各修正単位に対応する前記判定ファイルを前記記憶装置に記憶する
請求項２に記載のプログラム。
【請求項４】
前記判定ファイルは、修正単位ごとに分離したファイルであり、
導入されていないと判定した修正単位に対応する前記判定ファイルを削除する
請求項１から請求項３のいずれか一つに記載のプログラム。
【請求項５】
前記判定情報は、前記修正単位が前記コンピュータに導入されている場合に前記記憶装置に記憶されているファイルを特定する情報である
請求項１から請求項４のいずれか一つに記載のプログラム。
【請求項６】
導入されたソフトウェアの削除を行うと判定した場合に、前記ソフトウェアに対応する前記製品識別ファイルを削除する
請求項１から請求項５のいずれか一つに記載のプログラム。
【請求項７】
前記製品識別ファイルが含む情報により特定される前記判定ファイルを削除する
請求項１から請求項６のいずれか一つに記載のプログラム。
【請求項８】
修正単位に区分されたソフトウェアの前記修正単位のコンピュータに対する導入有無を判定する判定情報を、前記修正単位ごとに分離して記録した判定ファイルを記憶装置に記憶し、
記憶した前記判定ファイルを読み出し、
読み出した前記判定ファイルに含まれる前記判定情報に基づいて修正単位の導入有無を判定し、
導入されていると判定した修正単位に対応する修正を行い、
導入されていないと判定した修正単位に対応する前記判定ファイルを削除する
処理を前記コンピュータに実行させるプログラム。
【請求項９】
修正単位に区分されたソフトウェアの前記修正単位のコンピュータに対する導入有無を判定する判定情報を含む判定ファイルを記憶装置に記憶し、
導入されたソフトウェアに関する判定ファイルを特定する情報を含む製品識別ファイルを前記記憶装置に記憶し、
記憶した前記判定ファイルを読み出し、
読み出した前記判定ファイルに含まれる前記判定情報に基づいて修正単位の導入有無を判定し、
導入されていると判定した修正単位に対応する修正を行い、
保存した前記製品識別ファイルおよび前記判定ファイルに対応する情報を記録した管理ファイルを作成する
処理を前記コンピュータに実行させる情報処理方法。
【請求項１０】
修正単位に区分されたソフトウェアの前記修正単位の情報処理装置に対する導入有無を判定する判定情報を含む判定ファイルを記憶装置に記憶する記憶処理部と、
導入されたソフトウェアに関する判定ファイルを特定する情報を含む製品識別ファイルを前記記憶装置に記憶する製品識別ファイル記憶部と、
前記記憶処理部が記憶した前記判定ファイルを読み出す読出部と、
前記読出部が読み出した前記判定ファイルに含まれる前記判定情報に基づいて修正単位の導入有無を判定する判定部と、
前記判定部が導入されていると判定した修正単位に対応する修正を行う修正部と、
前記製品識別ファイル記憶部が記憶した前記製品識別ファイル、および、前記記憶処理部が記憶した前記判定ファイルに対応する情報を記録した管理ファイルを作成する作成部と
を備える前記情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報処理方法および情報処理装置に関する。
【背景技術】
【０００２】
コンピュータには、様々なソフトウェア製品が導入される。多機能のソフトウェア製品の場合には、製品の機能の一部のみがコンピュータに導入される場合がある。このようなソフトウェア製品の場合には、導入されたコンピュータごとにソフトウェア製品は異なる状態になる。
【０００３】
導入済のソフトウェア製品に対して、不具合対策およびセキュリティ対策等のために、修正を行う場合がある。修正の適用有無によっても、ソフトウェア製品は異なる状態になる。導入済のソフトウェア製品を修正する際には、それぞれのソフトウェア製品の状態に応じた修正を行う。
【０００４】
資源配布マシンからネットワークを介して配布されたソフトウェア構成情報に基づいて、情報処理装置に導入済のソフトウェアの状態を判定する、ソフトウェアのインストール／アップデート／アンインストールシステムが開示されている（特許文献１）。
【０００５】
更新データベースからネットワークを介してソフトウェアの更新情報を取得し、取得した更新情報に基づいてインストールされているソフトウェアの状態を判定して、自動更新を行うソフトウェア製品の自動更新方法が開示されている（特許文献２）。ソフトウェアの修正の差分を階層管理することにより、ネットワークを介して取得する修正ファイルの容量を少なくするシステムが開示されている（特許文献３）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−３５６９１２号公報
【特許文献２】特開２０１０−２０５２６２号公報
【特許文献３】特開２０１１−１８１０９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１から特許文献３に開示されているシステムおよび方法では、ネットワークを介して取得した多くのソフトウェアに関する情報に基づいて、情報処理装置に導入済のソフトウェアの状態を判定する。そのため、導入済のソフトウェアの状態を判定する処理の負荷が大きい。
【０００８】
一つの側面では、導入済のソフトウェアの状態を少ない負荷で判定するプログラム等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
プログラムは、修正単位に区分されたソフトウェアの前記修正単位のコンピュータに対する導入有無を判定する判定情報を含む判定ファイルを記憶装置に記憶し、導入されたソフトウェアに関する判定ファイルを特定する情報を含む製品識別ファイルを前記記憶装置に記憶し、記憶した前記判定ファイルを読み出し、読み出した前記判定ファイルに含まれる前記判定情報に基づいて修正単位の導入有無を判定し、導入されていると判定した修正単位に対応する修正を行い、保存した前記製品識別ファイルおよび前記判定ファイルに対応する情報を記録した管理ファイルを作成する処理を前記コンピュータに実行させる。
【発明の効果】
【００１０】
一つの側面では、導入済のソフトウェアの判定を少ない負荷で行うプログラム等を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】コンピュータの構成を示す説明図である。
【図２】ソフトウェア製品の構成を示す説明図である。
【図３】補助記憶装置に記憶される情報を示す説明図である。
【図４】判定ファイルの構成を示す説明図である。
【図５】プログラムの処理の流れを示すフローチャートである。
【図６】実施の形態２のコンピュータの構成を示す説明図である。
【図７】実施の形態２の製品識別ファイルの構成を示す説明図である。
【図８】実施の形態２の管理ファイルの構成を示す説明図である。
【図９】実施の形態２の管理ファイルの構成を示す説明図である。
【図１０】実施の形態２の補助記憶装置に記憶される情報を示す説明図である。
【図１１】実施の形態２の補助記憶装置に記憶される情報を示す説明図である。
【図１２】実施の形態２の補助記憶装置に記憶される情報を示す説明図である。
【図１３】実施の形態２の補助記憶装置に記憶される情報を示す説明図である。
【図１４】実施の形態２の管理ファイルの構成を示す説明図である。
【図１５】実施の形態２の補助記憶装置に記憶される情報を示す説明図である。
【図１６】実施の形態２の補助記憶装置に記憶される情報を示す説明図である。
【図１７】実施の形態２の管理ファイルの構成を示す説明図である。
【図１８】実施の形態２のプログラムの処理の流れを示すフローチャートである。
【図１９】実施の形態２の導入処理のサブルーチンの処理の流れを示すフローチャートである。
【図２０】実施の形態２の不要ファイル削除のサブルーチンの処理の流れを示すフローチャートである。
【図２１】実施の形態２の管理ファイル更新のサブルーチンの処理の流れを示すフローチャートである。
【図２２】実施の形態２の製品情報更新のサブルーチンの処理の流れを示すフローチャートである。
【図２３】実施の形態２の修正単位情報更新のサブルーチンの処理の流れを示すフローチャートである。
【図２４】実施の形態３の導入処理のサブルーチンの処理の流れを示すフローチャートである。
【図２５】実施の形態４のプログラムの処理の流れを示すフローチャートである。
【図２６】実施の形態５のコンピュータの動作を示す機能ブロック図である。
【図２７】実施の形態６のコンピュータの構成を示す説明図である。
【発明を実施するための形態】
【００１２】
［実施の形態１］
図１は、コンピュータ１１の構成を示す説明図である。コンピュータ１１は、ＣＰＵ（Central Processing Unit）１２、主記憶装置１３、補助記憶装置１４、入力部１５、表示部１６、通信部１７、読取部１８およびバスを備える。本実施の形態のコンピュータ１１は、様々なソフトウェア製品３１が導入されて使用される情報処理装置である。本実施の形態のコンピュータ１１は、汎用のパーソナルコンピューター、タブレット、大型計算機等の情報機器等である。また、本実施の形態のコンピュータ１１は、大型計算機上で動作する仮想マシンでも良い。
【００１３】
ＣＰＵ１２は、本実施の形態に係るプログラムを実行する演算制御装置である。ＣＰＵ１２には、一または複数のＣＰＵまたはマルチコアＣＰＵ等が使用される。ＣＰＵ１２は、バスを介してコンピュータ１１を構成するハードウェア各部と接続されている。
【００１４】
主記憶装置１３は、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、フラッシュメモリ等の記憶装置である。主記憶装置１３には、ＣＰＵ１２が行う処理の途中で必要な情報およびＣＰＵ１２で実行中のプログラムが一時的に保存される。
【００１５】
補助記憶装置１４は、ＳＲＡＭ、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置１４には、ＣＰＵ１２に実行させるプログラム、第１フォルダ２１、ソフトウェア製品３１群のファイルおよびプログラムの実行に必要な各種情報が保存される。
【００１６】
ソフトウェア製品３１群は、コンピュータ１１に導入済の各種ソフトウェア製品３１を含む。ソフトウェア製品３１は、たとえばソフトウェア製品Ａ３１１、ソフトウェア製品Ｂ３１２およびソフトウェア製品Ｃ３１３等である。ソフトウェア製品３１は、たとえばコンピュータの基本的な制御を行うオペレーティングシステムと、各業務処理を行うアプリケーションソフトウェアとの中間に入るミドルウェアである。また、ソフトウェア製品３１は、アプリケーションソフトウェアであっても良い。
【００１７】
第１フォルダ２１は、判定ファイル２４を含む。判定ファイル２４については後述する。
【００１８】
入力部１５は、マウス、キーボード、タッチパネル、ペンタブレット、マイク等の機器である。入力部１５は、ユーザによる操作をコンピュータ１１が受け付ける際に使用する。表示部１６は、ディスプレイ、プリンタ、プロッタ等の機器である。表示部１６は、コンピュータ１１がユーザに情報を提示する際に使用する。通信部１７は、ネットワークとの通信を行うインターフェイスである。
【００１９】
読取部１８は、後述する可搬型記録媒体７２（図２７参照）を読み取る装置であり、具体的にはたとえばＳＤ（Secure Digital）カードスロット、光学ディスクドライブまたはＵＳＢ（Universal Serial Bus）ポート等である。
【００２０】
図２は、ソフトウェア製品３１の構成を示す説明図である。図２ではソフトウェア製品Ａ３１１を例にして説明を行う。ソフトウェア製品Ａ３１１は、６個の機能を有する。それぞれの機能は、Ａ１機能モジュール４１からＡ６機能モジュール４１までの６個の機能モジュール４１に含まれる製品ファイル４５を使用して実現される。コンピュータ１１に導入する機能は、たとえばオペレーティングシステムの種類およびバージョン、コンピュータ１１のハードウェアの構成およびコンピュータ１１を使用するユーザによる選択等により定められる。
【００２１】
ソフトウェア製品Ａ３１１には、破線で囲んで示す７個の修正単位４３が定義されている。修正単位４３は、ソフトウェア製品３１の修正を行う際に、修正を適用する製品ファイル４５の範囲を定める群である。すなわち、ソフトウェア製品Ａ３１１を構成する製品ファイル４５は、修正単位４３に区分されている。修正単位４３は、ソフトウェア製品３１を開発する際に定義される。
【００２２】
図２を使用して、本実施の形態のソフトウェア製品Ａ３１１の修正単位４３の定義について説明する。Ａ１機能モジュール４１の機能を実現するために使用する製品ファイル４５は、ａ１修正単位４３と、ａ２修正単位４３とに区分されている。Ａ２機能モジュール４１の機能を実現するために使用する製品ファイル４５は、ａ３修正単位４３と、ａ４修正単位４３とに区分されている。Ａ３機能モジュール４１の機能を実現するために使用する製品ファイル４５は、ａ４修正単位４３と、ａ５修正単位４３とに区分されている。すなわち、ａ４修正単位４３には、Ａ２機能モジュール４１の機能を実現するために使用する製品ファイル４５およびＡ３機能モジュール４１の機能を実現するために使用する製品ファイル４５を含む。
【００２３】
Ａ４機能モジュール４１の機能を実現するために使用するすべての製品ファイル４５は、ａ６修正単位４３に区分されている。Ａ５機能モジュール４１の機能を実現するために使用する製品ファイル４５およびＡ６機能モジュール４１の機能を実現するために使用する製品ファイル４５は、すべてａ７修正単位４３に区分されている。
【００２４】
機能モジュール４１とは別に、修正単位４３を定義する理由を説明する。複数の機能モジュール４１が連携して動作する場合がある。Ａ２機能モジュール４１と、Ａ３機能モジュール４１との間で、通信を行う場合を例にして具体的に説明する。これらの機能モジュール４１が使用する通信プロトコルを修正する場合に、一方の機能モジュール４１のみを修正すると、正常な通信ができなくなる等の不具合が生じる。したがって、両方の機能モジュール４１を同時に修正する必要がある。ａ４修正単位４３のように、Ａ２機能モジュール４１に含まれる製品ファイル４５とＡ３機能モジュール４１に含まれる製品ファイル４５とを包含する修正単位４３を定義することにより、修正時の不具合の発生を防止することができる。
【００２５】
一つの機能モジュール４１が、複数の独立した機能を実現する製品ファイル４５の群を含む場合がある。Ａ１機能モジュール４１が、ディスプレイに表示する映像と、スピーカから出力する音声の両方を制御する機能を有する場合を例にして具体的に説明する。ディスプレイを制御する製品ファイル４５と、スピーカを制御する製品ファイル４５との両方に同時に修正が必要になる可能性は低い。したがって、Ａ１機能モジュール４１に含まれる製品ファイル４５を、ａ１修正単位４３とａ２修正単位４３のように二つの修正単位４３に区分することにより、修正を効率的に実施することができる。
【００２６】
独立した機能を有する機能モジュール４１の場合には、機能モジュール４１と一致するように、修正単位４３を定義しても良い。規模が大きくないソフトウェア製品３１の場合には、ソフトウェア製品３１全体を１個の修正単位４３と定義しても良い。ソフトウェア製品３１の開発時に修正単位４３を適切に定義することにより、ソフトウェア製品３１の修正を効率的に実行することが可能になる。
【００２７】
なお、図２を使用して説明したソフトウェア製品Ａ３１１の構成は例示である。機能モジュール４１、修正単位４３および製品ファイル４５の数および区分は、ソフトウェア製品３１により異なる。
【００２８】
図３は、補助記憶装置１４に記憶される情報を示す説明図である。図３は、ソフトウェア製品Ａ３１１のＡ３機能モジュール４１およびＡ５機能モジュール４１がコンピュータ１１に導入された状態を模式的に示す図である。図３で×印が記載された機能モジュール４１は、コンピュータ１１に導入されていない機能を示す。したがって、×印が記載された機能モジュール４１に対応する製品ファイル４５は、補助記憶装置１４に記憶されていない。
【００２９】
第１フォルダ２１には、ソフトウェア製品Ａ３１１に含まれる７個の修正単位４３に対応する判定ファイル２４が記録されている。図３の判定ファイル２４内に示すａ１からａ７の文字は、それぞれａ１修正単位４３からａ７修正単位４３に対応する判定ファイル２４であることを示す。
【００３０】
図３を使用して説明した状態で、コンピュータ１１のユーザは、ソフトウェア製品Ａ３１１のＡ３機能モジュール４１およびＡ５機能モジュール４１に含まれる機能を利用することができる。
【００３１】
図４は、判定ファイル２４の構成を示す説明図である。図４は、ａ１修正単位４３に対応する判定ファイル２４の例を示す。なお、判定ファイル２４はたとえば共通鍵暗号方式を使用して暗号化された状態で第１フォルダ２１内に記憶されている。
【００３２】
判定ファイル２４は、修正単位ＩＤ（IDentification）、修正単位名、修正単位バージョンおよび判定情報を含む。修正単位ＩＤは、修正単位４３に一意に割り当てられた固有の記号を示す。修正単位名は、修正単位ＩＤにより特定される修正単位４３の名称を示す。修正単位バージョンは、修正単位ＩＤにより特定される修正単位４３のバージョン名を示す。判定情報は、修正単位ＩＤにより特定される修正単位４３が、コンピュータ１１に導入されているか否かを判定する判定式を示す。
【００３３】
図４に示す判定ファイル２４では、判定情報に“ファイル  ／ａａａ／ｂｂｂ．ｔｘｔ内に「Ｖ１．０Ｌ３０」という文字列が含まれるか？”という判定式が記録されている。これは、補助記憶装置１４の“ａａａ”フォルダ内の“ｂｂｂ．ｔｘｔ”という名称のファイルに“Ｖ１．０Ｌ３０”という文字列が含まれている場合には、判定情報が「真」であることを意味する。判定情報が「真」である場合には、ａ１修正単位４３はコンピュータ１１に導入されている。一方、判定情報が「偽」である場合には、ａ１修正単位４３はコンピュータ１１に導入されていない。
【００３４】
図３に戻って説明を続ける。ソフトウェア製品３１の修正が製造元から提供された場合を例にして説明する。ＣＰＵ１２は第１フォルダ２１に記憶された判定ファイル２４内の判定情報を順次判定する。ＣＰＵ１２は、判定情報に基づいて導入済と判定した修正単位４３に対応する修正を適用する。
【００３５】
以上により、コンピュータ１１に導入済の修正単位４３に対する修正の適用漏れを防止することができる。また、コンピュータ１１に導入されていない修正単位４３に対する修正を誤って適用することによる不具合も防止することができる。
【００３６】
図５は、プログラムの処理の流れを示すフローチャートである。図５に示すプログラムは、コンピュータ１１にソフトウェア製品３１の導入を行うとともに、既に導入済の修正単位４３を識別して、導入済の修正単位４３に対する修正を適用するプログラムである。図５を使用して、本実施の形態のプログラムの処理の流れを説明する。
【００３７】
ＣＰＵ１２は、新たなソフトウェア製品３１の導入を行うか否かを判定する（ステップＳ５０１）。たとえば、入力部１５または通信部１７を介して、ユーザから導入を行う旨の指示を受け付けた場合に、ＣＰＵ１２は導入を行うと判定する。また、ネットワーク上の所定の場所に導入に使用するファイルが存在する場合に、ＣＰＵ１２は導入を行うと判定しても良い。
【００３８】
新たなソフトウェア製品３１の導入を行うと判定した場合（ステップＳ５０１でＹＥＳ）、ＣＰＵ１２はソフトウェア製品３１の導入を行う（ステップＳ５０２）。導入は、たとえばソフトウェア製品３１ごとに用意されたインストールプログラムを用いて行う。インストールプログラムによる処理は、既存の様々なソフトウェア製品３１と同様であるので、説明を省略する。
【００３９】
なお、ＣＰＵ１２は、インストールプログラムおよび製品ファイル４５を、読取部１８を介してたとえば光ディスクから取得する。ＣＰＵ１２は、インストールプログラムおよび製品ファイル４５を、通信部１７を介して図示しないネットワークから取得しても良い。
【００４０】
導入が完了すると、導入された機能モジュール４１に対応する製品ファイル４５が補助記憶装置１４に記憶される。
【００４１】
ＣＰＵ１２は、ステップＳ５１２で導入したソフトウェア製品３１に含まれるすべての修正単位４３に対応する判定ファイル２４を第１フォルダ２１に保存する（ステップＳ５０３）。
【００４２】
新たなソフトウェア製品３１の導入を行わないと判定した場合（ステップＳ５０１でＮＯ）、ＣＰＵ１２はソフトウェア製品３１の修正を適用するか否かを判定する（ステップＳ５１１）。たとえば、入力部１５または通信部１７を介して、ユーザから修正を適用する旨の指示を受け付けた場合に、ＣＰＵ１２は修正適用を行うと判定する。ＣＰＵ１２は通信部１７を介して図示しないネットワークから導入済のソフトウェア製品３１の修正の有無に関する情報を取得しても良い。
【００４３】
修正を適用すると判定した場合（ステップＳ５１１でＹＥＳ）、ＣＰＵ１２はカウンタＩを初期値１に設定する（ステップＳ５１２）。ＣＰＵ１２は、第１フォルダ２１からＩ番目の判定ファイル２４を取得する（ステップＳ５１３）。ＣＰＵ１２は、取得した判定ファイル２４に含まれる判定情報を評価する（ステップＳ５１４）。
【００４４】
ＣＰＵ１２は、判定式が真であるか否かを判定する（ステップＳ５１５）。真であると判定した場合（ステップＳ５１５でＹＥＳ）、ＣＰＵ１２は、Ｉ番目の判定ファイル２４に対応する修正単位４３はコンピュータ１１に導入済であることを主記憶装置１３または補助記憶装置１４に記憶する（ステップＳ５１６）。真でないと判定した場合（ステップＳ５１５でＮＯ）、ＣＰＵ１２は、Ｉ番目の判定ファイル２４に対応する修正単位４３はコンピュータ１１に導入されていないことを主記憶装置１３または補助記憶装置１４に記憶する（ステップＳ５１７）。
【００４５】
ステップＳ５１６またはステップＳ５１７の終了後、ＣＰＵ１２は第１フォルダ２１に記憶されたすべての判定ファイル２４の処理が終了したか否かを判定する（ステップＳ５１８）。終了していないと判定した場合（ステップＳ５１８でＮＯ）、ＣＰＵ１２はカウンタＩに１を加算する（ステップＳ５１９）。その後、ＣＰＵ１２はステップＳ５１３に戻る。
【００４６】
終了したと判定した場合（ステップＳ５１８でＹＥＳ）、ＣＰＵ１２はステップＳ５１６で導入済と記憶した修正単位４３に対して修正を行う（ステップＳ５２０）。修正は、たとえばソフトウェア製品３１ごとに用意された修正適用プログラムを用いて行う。修正適用プログラムは、ステップＳ５１６で導入済と記憶した修正単位４３に対する修正の要否を判定し、修正が必要と判定した修正単位４３に対する修正を適用する。修正適用プログラムによる処理は、既存の様々なソフトウェア製品３１と同様であるので、説明を省略する。
【００４７】
なお、ＣＰＵ１２は、修正適用プログラムおよび関連するファイルを、読取部１８を介してたとえば光ディスクから取得する。ＣＰＵ１２は、修正適用プログラムおよび関連するファイルを、通信部１７を介して図示しないネットワークから取得しても良い。
【００４８】
ステップＳ５０３またはステップＳ５２０の終了後および修正を適用しないと判定した場合（ステップＳ５１１でＮＯ）、ＣＰＵ１２は処理を終了するか否かを判定する（ステップＳ５２１）。処理を終了する場合とは、たとえば入力部１５を介して処理を終了するという入力を受け付けた場合である。
【００４９】
処理を終了しないと判定した場合（ステップＳ５２１でＮＯ）、ＣＰＵ１２はステップＳ５０１に戻る。処理を終了すると判定した場合（ステップＳ５２１でＹＥＳ）、ＣＰＵ１２は処理を終了する。
【００５０】
本実施の形態によると、コンピュータ１１に導入済の修正単位４３に対する修正の適用漏れを防止することができる。また、コンピュータ１１に導入されていない修正単位４３に対する修正を誤って適用することによる不具合も防止することができる。
【００５１】
本実施の形態によると、ＣＰＵ１２は、コンピュータ１１に導入されたソフトウェア製品３１に関する判定式のみを判定する。したがって、導入済のソフトウェアの状態を判定する処理の負荷が大きくならない。
【００５２】
本実施の形態によると、ネットワークに接続されていないコンピュータ１１においてもソフトウェア製品３１の導入および修正の適用を行える。したがって、たとえばソフトウェアの開発作業等に使用するために、ネットワークに接続せずにいわゆるスタンドアロン状態で使用するコンピュータ１１にも、適切に修正を適用することができる。
【００５３】
なお、判定ファイル２４は、複数の修正単位４３に対する判定情報等を、１つのファイルにまとめたものであっても良い。このようにする場合には、ＣＰＵ１２は判定ファイル２４から一つの修正単位４３に対する判定情報を順次読み出して、ステップＳ５１４からステップＳ５１８までの処理を行う。
【００５４】
［実施の形態２］
本実施の形態は、コンピュータ１１に導入されていない修正単位４３に対応する判定ファイル２４を第１フォルダ２１から削除するコンピュータ１１に関する。実施の形態１と共通する部分については、説明を省略する。
【００５５】
図６は、実施の形態２のコンピュータ１１の構成を示す説明図である。コンピュータ１１は、ＣＰＵ１２、主記憶装置１３、補助記憶装置１４、入力部１５、表示部１６、通信部１７、読取部１８およびバスを備える。
【００５６】
補助記憶装置１４には、ＣＰＵ１２に実行させるプログラム、第１フォルダ２１、第２フォルダ２２、管理ファイル２３、ソフトウェア製品３１群のファイルおよびプログラムの実行に必要な各種情報が保存される。管理ファイル２３については後述する。
【００５７】
第１フォルダ２１は、判定ファイル２４を含む。第２フォルダ２２は、製品識別ファイル２５を含む。
【００５８】
図７は、実施の形態２の製品識別ファイル２５の構成を示す説明図である。図７は、ソフトウェア製品Ａ３１１に対応する製品識別ファイル２５の例を示す。なお、製品識別ファイル２５はたとえば共通鍵暗号方式を使用して暗号化された状態で第２フォルダ２２内に記憶されている。
【００５９】
製品識別ファイル２５は、製品ＩＤ、製品名、製品バージョンおよび修正単位ＩＤ値を含む。製品ＩＤは、ソフトウェア製品３１に一意に割り当てられた固有の記号を示す。製品名は、製品ＩＤにより特定されるソフトウェア製品３１の名称を示す。製品バージョンは、製品ＩＤにより特定されるソフトウェア製品３１のバージョン名を示す。修正単位ＩＤ値は、製品ＩＤにより特定されるソフトウェア製品３１が含む修正単位４３の修正単位ＩＤの一覧を示す。
【００６０】
図８は、実施の形態２の管理ファイル２３の構成を示す説明図である。管理ファイル２３は、コンピュータ１１に導入された各種のソフトウェア製品３１に関する情報が記録されたファイルである。図８は、補助記憶装置１４に記憶された管理ファイル２３の例を示す。
【００６１】
管理ファイル２３には、製品情報５１、修正単位情報５３および修正情報５５が記録されている。製品情報５１は、コンピュータ１１に導入済の各製品に関する情報である。製品情報５１は、製品ＩＤ、製品名、製品バージョンおよび修正単位ＩＤ値を含む。
【００６２】
修正単位情報５３は、修正単位ＩＤ、修正単位名、修正単位バージョンおよび適用済の修正番号を含む。適用済の修正番号は、修正単位ＩＤにより特定される修正単位４３に対して既に適用された修正の修正番号を示す。
【００６３】
修正情報５５は、修正番号、修正タイトル、前提修正情報および排他修正情報を含む。修正番号は、ソフトウェア製品３１の修正に一意に割り当てられた固有の番号を示す。修正タイトルは、修正番号により特定される修正のタイトルを示す。前提修正情報は、修正番号により特定される修正を適用する前に、コンピュータ１１に適用されていなければならない修正番号を示す。排他修正情報は、修正番号により特定される修正を適用する際に、コンピュータ１１に適用されていてはならない修正番号を示す。
【００６４】
図９は、実施の形態２の管理ファイル２３の構成を示す説明図である。図９においては、製品情報５１、修正単位情報５３および修正情報５５の具体的な内容については記載を省略している。以後の説明では、管理ファイル２３は図９に示すように省略した形式で記載する。
【００６５】
図１０は、実施の形態２の補助記憶装置１４に記憶される情報を示す説明図である。図１０は、コンピュータ１１にプログラム製品Ａ３１１を導入する処理が完了した段階を模式的に示す図である。なお、図示を省略するが、コンピュータ１１にはソフトウェア製品Ｂ３１２等も導入されている。
【００６６】
ソフトウェア製品Ａ３１１のＡ３機能モジュール４１およびＡ５機能モジュール４１が、コンピュータ１１に導入され、関連する製品ファイル４５が補助記憶装置１４に保存されている。第１フォルダ２１には、ソフトウェア製品Ａ３１１に含まれる７個の修正単位４３に対応する判定ファイル２４が記録されている。第２フォルダ２２には、ソフトウェア製品Ａ３１１に対応する製品識別ファイル２５が記憶されている。
【００６７】
図１０を使用して説明した状態で、コンピュータ１１のユーザは、ソフトウェア製品Ａ３１１のＡ３機能モジュール４１およびＡ５機能モジュール４１に含まれる機能を利用することができる。
【００６８】
図１１は、実施の形態２の補助記憶装置１４に記憶される情報を示す説明図である。図１１は、第１フォルダ２１から不要な判定ファイル２４を削除した段階を模式的に示す図である。
【００６９】
不要な判定ファイル２４について説明する。図１０および図１１においては、コンピュータ１１にはＡ３機能モジュール４１およびＡ５機能モジュール４１が導入されている。Ａ３機能モジュール４１に対応する製品ファイル４５は、ａ４修正単位４３およびａ５修正単位４３に含まれている。Ａ５機能モジュール４１に対応する製品ファイル４５は、ａ７修正単位４３に含まれている。
【００７０】
一方、ソフトウェア製品Ａ３１１に含まれる７個の修正単位４３のうち、ａ１修正単位４３からａ３修正単位４３およびａ６修正単位４３はコンピュータ１１に導入されていない。すなわち、これらの修正単位４３に対応する判定ファイル２４は、不要な判定ファイル２４である。
【００７１】
ＣＰＵ１２は、第１フォルダ２１内の判定ファイル２４を読み込み、判定情報に記録された判定式を判定する。判定式が「偽」であると判定した場合には、その判定ファイル２４に対応する修正単位４３はコンピュータ１１に導入されていない。したがって、ＣＰＵ１２は当該判定ファイル２４を削除する。ＣＰＵ１２は、第１フォルダ２１内のすべての判定ファイル２４について、上述の処理を行う。
【００７２】
以上の処理を行うことにより、ＣＰＵ１２は、図１１に示すようにａ１修正単位４３からａ３修正単位４３およびａ６修正単位４３に対応する、不要な判定ファイル２４を第１フォルダ２１から削除する。
【００７３】
図９に戻って説明を続ける。図９は、図１１に示す段階における管理ファイル２３の構成を示す。管理ファイル２３には、ソフトウェア製品Ａ３１１およびソフトウェア製品Ｂ３１２等に対応する製品情報５１が記録されている。管理ファイル２３には、ａ４修正単位４３、ａ５修正単位４３、ａ７修正単位４３およびソフトウェア製品Ｂ３１２に含まれる修正単位４３に対応する修正単位情報５３等も記録されている。さらに、管理ファイル２３には適用済の修正に関する修正情報５５等も記録されている。
【００７４】
図１２は、実施の形態２の補助記憶装置１４に記憶される情報を示す説明図である。図１２は、コンピュータ１１に導入済のソフトウェア製品Ａ３１１の状態を変更して、Ａ２機能モジュール４１を導入する処理が完了した段階を模式的に示す図である。変更は、コンピュータ１１に機能モジュール４１を追加導入すること、または導入済の機能モジュール４１を削除することを意味する。変更は、コンピュータ１１に導入済の機能モジュール４１を構成する製品ファイル４５を変更することも意味する。
【００７５】
図１２においては、第１フォルダ２１には、ソフトウェア製品Ａ３１１に含まれる７個の修正単位４３に対応する判定ファイル２４が記録されている。
【００７６】
図１２を使用して説明した状態で、コンピュータ１１のユーザは、ソフトウェア製品Ａ３１１のＡ３機能モジュール４１およびＡ５機能モジュール４１に加えて、Ａ２機能モジュール４１に含まれる機能も利用することができる。
【００７７】
図１３は、実施の形態２の補助記憶装置１４に記憶される情報を示す説明図である。図１３は、第１フォルダ２１から不要な判定ファイル２４を再度削除した段階を模式的に示す図である。
【００７８】
図１２および図１３においては、コンピュータ１１にはＡ２機能モジュール４１、Ａ３機能モジュール４１およびＡ５機能モジュール４１が導入されている。Ａ２機能モジュール４１に対応する製品ファイル４５は、ａ３修正単位４３およびａ４修正単位４３に含まれている。Ａ３機能モジュール４１に対応する製品ファイル４５は、ａ４修正単位４３およびａ５修正単位４３に含まれている。Ａ５機能モジュール４１に対応する製品ファイル４５は、ａ７修正単位４３に含まれている。
【００７９】
一方、ソフトウェア製品Ａ３１１に含まれる７個の修正単位４３のうち、ａ１修正単位４３、ａ２修正単位４３およびａ６修正単位４３はコンピュータ１１に導入されていない。すなわち、これらの修正単位４３に対応する判定ファイル２４は、不要な判定ファイル２４である。
【００８０】
第１フォルダ２１内の判定ファイル２４の処理を行うことにより、ＣＰＵ１２は、図１３に示すようにａ１修正単位４３、ａ２修正単位４３およびａ６修正単位４３に対応する、不要な判定ファイル２４を第１フォルダ２１から削除する。
【００８１】
図１４は、実施の形態２の管理ファイル２３の構成を示す説明図である。図１４は、図１３に示す段階における管理ファイル２３の構成を示す。図９を使用して説明した管理ファイル２３と比較すると、ａ３修正単位４３に対応する修正単位情報５３が追加されている。
【００８２】
図１５は、実施の形態２の補助記憶装置１４に記憶される情報を示す説明図である。図１５は、ソフトウェア製品Ａ３１１をコンピュータ１１から削除した段階を模式的に示す図である。ソフトウェア製品Ａ３１１の製品ファイル４５がすべて補助記憶装置１４から削除されている。第２フォルダ２２からソフトウェア製品Ａ３１１に対応する製品識別ファイル２５が削除されている。
【００８３】
図１６は、実施の形態２の補助記憶装置１４に記憶される情報を示す説明図である。図１６は、第１フォルダ２１から不要な判定ファイル２４を削除した段階を模式的に示す図である。第１フォルダ２１からソフトウェア製品Ａ３１１に対応する判定ファイル２４がすべて削除されている。
【００８４】
図１７は、実施の形態２の管理ファイル２３の構成を示す説明図である。図１７は、図１６に示す段階における管理ファイル２３の構成を示す。図１４を使用して説明した管理ファイル２３と比較すると、ソフトウェア製品Ａ３１１に対応する製品情報５１および修正単位情報５３が削除されている。
【００８５】
本実施の形態においては、ＣＰＵ１２はコンピュータ１１に導入されていない修正単位４３に対応する判定ファイル２４を、第１フォルダ２１から削除する。様々なソフトウェア製品３１を導入するコンピュータ１１において、不要な判定ファイル２４を削除することにより、処理の負荷を軽くすることができる。
【００８６】
また、ソフトウェア製品３１の状態を変更する際には、当該ソフトウェア製品３１に関連するすべての判定ファイル２４を第１フォルダ２１に保存しなおすことにより、コンピュータ１１に導入済の修正単位４３に対する修正の適用漏れを防止することができる。また、コンピュータ１１に導入されていない修正単位４３に対する修正を誤って適用することによる不具合も防止することができる。
【００８７】
図１８は、実施の形態２のプログラムの処理の流れを示すフローチャートである。図１８に示すプログラムは、コンピュータ１１へのソフトウェア製品３１の導入および削除を行うとともに、既に導入済の修正単位４３を識別して、導入済の修正単位４３に対する修正を適用するプログラムである。図１８を使用して、本実施の形態のプログラムの処理の流れを説明する。
【００８８】
ＣＰＵ１２は、ソフトウェア製品３１の導入または削除を行うか否かを判定する（ステップＳ５３１）。たとえば、入力部１５または通信部１７を介して、ユーザから導入または削除を行う旨の指示を受け付けた場合に、ＣＰＵ１２は導入または削除を行うと判定する。また、ネットワーク上の所定の場所に導入または削除に使用するファイルが存在する場合に、ＣＰＵ１２は導入または削除を行うと判定しても良い。
【００８９】
ソフトウェア製品３１の導入または削除を行うと判定した場合（ステップＳ５３１でＹＥＳ）、ＣＰＵ１２は導入処理のサブルーチンを起動する（ステップＳ５３２）。導入処理のサブルーチンは、ソフトウェア製品３１の新規導入、完全削除および導入済のソフトウェア製品３１の変更を行うサブルーチンである。導入処理のサブルーチンの処理の流れは後述する。
【００９０】
ソフトウェア製品３１の導入または削除を行わないと判定した場合（ステップＳ５３１でＮＯ）、ＣＰＵ１２はソフトウェア製品３１の修正を適用するか否かを判定する（ステップＳ５４１）。
【００９１】
修正を適用すると判定した場合（ステップＳ５４１でＹＥＳ）、ＣＰＵ１２は不要ファイル削除のサブルーチンを起動する（ステップＳ５４２）。不要ファイル削除のサブルーチンは、コンピュータ１１に導入されていない修正単位４３に関連する判定ファイル２４を第１フォルダ２１から削除するサブルーチンである。不要ファイル削除のサブルーチンの処理の流れは後述する。
【００９２】
ＣＰＵ１２は、管理ファイル更新のサブルーチンを起動する（ステップＳ５４３）。管理ファイル更新のサブルーチンは、管理ファイル２３に記録された情報を、コンピュータ１１に導入されているソフトウェア製品３１の状態と合致するように更新するサブルーチンである。管理ファイル更新のサブルーチンの処理の流れは後述する。
【００９３】
ＣＰＵ１２は第１フォルダ２１に記憶されている判定ファイル２４に対応する修正単位４３に対して修正を行う（ステップＳ５４４）。修正は、たとえばソフトウェア製品３１ごとに用意された修正適用プログラムを用いて行う。修正適用プログラムによる処理は、既存の様々なソフトウェア製品３１に対して行われている処理と同様であるので、説明を省略する。ＣＰＵ１２は、管理ファイル２３にステップＳ５４４で適用した修正に関する修正情報５５を追記する（ステップＳ５４５）。
【００９４】
ステップＳ５３２またはステップＳ５４５の終了後、および修正を適用しないと判定した場合（ステップＳ５４１でＮＯ）、ＣＰＵ１２は処理を終了するか否かを判定する（ステップＳ５４６）。処理を終了する場合とは、たとえば入力部１５を介して処理を終了するという入力を受け付けた場合である。
【００９５】
処理を終了しないと判定した場合（ステップＳ５４６でＮＯ）、ＣＰＵ１２はステップＳ５３１に戻る。処理を終了すると判定した場合（ステップＳ５４６でＹＥＳ）、ＣＰＵ１２は処理を終了する。
【００９６】
図１９は、実施の形態２の導入処理のサブルーチンの処理の流れを示すフローチャートである。導入処理のサブルーチンは、ソフトウェア製品３１の新規導入、完全削除および導入済のソフトウェア製品３１の変更を行うサブルーチンである。図１９を使用して、導入処理のサブルーチンの処理の流れを説明する。
【００９７】
ＣＰＵ１２は、ソフトウェア製品３１の完全削除を行うか否かを判定する（ステップＳ５５１）。たとえば、入力部１５または通信部１７を介して、ユーザからソフトウェア製品３１の完全削除を行う旨の指示を受け付けた場合に、ＣＰＵ１２は完全削除を行うと判定する。
【００９８】
完全削除を行うと判定した場合（ステップＳ５５１でＹＥＳ）、ＣＰＵ１２はソフトウェア製品３１の削除を行う（ステップＳ５５２）。削除は、たとえばソフトウェア製品３１ごとに用意されたアンインストールプログラムを用いて行う。アンインストールプログラムによる処理は、既存の様々なソフトウェア製品３１に対して行われている処理と同様であるので、説明を省略する。
【００９９】
なお、ＣＰＵ１２は、アンインストールプログラムを、読取部１８を介してたとえば光ディスクから取得する。ＣＰＵ１２は、アンインストールプログラムを、通信部１７を介して図示しないネットワークから取得しても良い。
【０１００】
ＣＰＵ１２は、ステップＳ５５２で削除したソフトウェア製品３１に対応する製品識別ファイル２５を第２フォルダ２２から削除する（ステップＳ５５３）。その後、ＣＰＵ１２は処理を終了する。
【０１０１】
完全削除を行わないと判定した場合（ステップＳ５５１でＮＯ）、ＣＰＵ１２はソフトウェア製品３１を新規に導入するか否かを判定する（ステップＳ５６１）。たとえば、入力部１５または通信部１７を介して、ユーザからソフトウェア製品３１の新規導入を行う旨の指示を受け付けた場合に、ＣＰＵ１２は新たなソフトウェア製品３１を新規に導入すると判定する。
【０１０２】
新たなソフトウェア製品３１の導入を行うと判定した場合（ステップＳ５６１でＹＥＳ）、ＣＰＵ１２はソフトウェア製品３１の導入を行う（ステップＳ５６２）。導入は、たとえばソフトウェア製品３１ごとに用意されたインストールプログラムを用いて行う。インストールプログラムによる処理は、既存の様々なソフトウェア製品３１に対して行われている処理と同様であるので、説明を省略する。
【０１０３】
ＣＰＵ１２は、ステップＳ５６２で導入したソフトウェア製品３１に対応する製品識別ファイル２５を第２フォルダ２２に保存する（ステップＳ５６３）。
【０１０４】
新たなソフトウェア製品３１の導入を行わないと判定した場合（ステップＳ５６１でＮＯ）、ＣＰＵ１２はソフトウェア製品３１の変更を行う（ステップＳ５７１）。前述のとおり、変更はコンピュータ１１に機能モジュール４１を追加導入または導入済の機能モジュール４１を削除することにより実施する。変更は、たとえばソフトウェア製品３１ごとに用意されたインストールプログラムを用いて行う。インストールプログラムによる処理は、既存の様々なソフトウェア製品３１に対して行われている処理と同様であるので、説明を省略する。
【０１０５】
ステップＳ５６３またはステップＳ５７１の終了後、ＣＰＵ１２は、ステップＳ５６２で導入したソフトウェア製品３１に含まれるすべての修正単位４３に対応する判定ファイル２４を第１フォルダ２１に保存する（ステップＳ５６４）。その後、ＣＰＵ１２は処理を終了する。
【０１０６】
図２０は、実施の形態２の不要ファイル削除のサブルーチンの処理の流れを示すフローチャートである。不要ファイル削除のサブルーチンは、コンピュータ１１に導入されていない修正単位４３に関連する判定ファイル２４を第１フォルダ２１から削除するサブルーチンである。図２０を使用して、不要ファイル削除のサブルーチンの処理の流れを説明する。
【０１０７】
ＣＰＵ１２は、カウンタＩを初期値１に設定する（ステップＳ６０１）。ＣＰＵ１２は、第１フォルダ２１からＩ番目の判定ファイル２４を取得する（ステップＳ６０２）。ＣＰＵ１２は、取得した判定ファイル２４に含まれる判定情報を評価する（ステップＳ６０３）。
【０１０８】
ＣＰＵ１２は、判定式が真であるか否かを判定する（ステップＳ６０４）。真でないと判定した場合（ステップＳ６０４でＮＯ）、ＣＰＵ１２は、Ｉ番目の判定ファイル２４を第１フォルダ２１から削除する（ステップＳ６０５）。
【０１０９】
判定式が真であると判定した場合（ステップＳ６０４でＹＥＳ）およびステップＳ６０５の終了後、ＣＰＵ１２は第１フォルダ２１に記憶されたすべての判定ファイル２４の処理が終了したか否かを判定する（ステップＳ６１１）。終了していないと判定した場合（ステップＳ６１１でＮＯ）、ＣＰＵ１２はカウンタＩに１を加算する（ステップＳ６１２）。その後、ＣＰＵ１２はステップＳ６０２に戻る。
【０１１０】
終了したと判定した場合（ステップＳ６１１でＹＥＳ）、ＣＰＵ１２は処理を終了する。
【０１１１】
図２１は、実施の形態２の管理ファイル更新のサブルーチンの処理の流れを示すフローチャートである。管理ファイル更新のサブルーチンは、管理ファイル２３に記録された情報を、コンピュータ１１に導入されているソフトウェア製品３１の状態と合致するように更新するサブルーチンである。図２１を使用して、管理ファイル更新のサブルーチンの処理の流れを説明する。
【０１１２】
ＣＰＵ１２は、補助記憶装置１４から管理ファイル２３を取得する（ステップＳ６２１）。ＣＰＵ１２は、製品情報更新のサブルーチンを起動する（ステップＳ６２２）。製品情報更新のサブルーチンは、管理ファイル２３に含まれる製品情報５１を、コンピュータ１１に導入されているソフトウェア製品３１と合致させるサブルーチンである。製品情報更新のサブルーチンの処理の流れは後述する。
【０１１３】
ＣＰＵ１２は、修正単位情報更新のサブルーチンを起動する（ステップＳ６２３）。修正単位情報更新のサブルーチンは、管理ファイル２３に含まれる修正単位情報５３を、コンピュータ１１に導入されているソフトウェア製品３１の修正単位４３と合致させるサブルーチンである。修正単位情報更新のサブルーチンの処理の流れは後述する。
【０１１４】
ＣＰＵ１２は、修正した管理ファイル２３を補助記憶装置１４に上書き保存する（ステップＳ６２４）。ＣＰＵ１２は、その後処理を終了する。
【０１１５】
図２２は、実施の形態２の製品情報更新のサブルーチンの処理の流れを示すフローチャートである。製品情報更新のサブルーチンは、管理ファイル２３に含まれる製品情報５１を、コンピュータ１１に導入されているソフトウェア製品３１と合致させるサブルーチンである。図２２を使用して、製品情報更新のサブルーチンの処理の流れを説明する。
【０１１６】
ＣＰＵ１２は、管理ファイル２３から製品情報５１を抽出する（ステップＳ６３１）。ＣＰＵ１２は、抽出した製品情報５１を主記憶装置１３または補助記憶装置１４に記憶する。ＣＰＵ１２は、カウンタＪを初期値１に設定する（ステップＳ６３２）。
【０１１７】
ＣＰＵ１２は、ステップＳ６３１で抽出したＪ番目の製品情報５１に対応する製品識別ファイル２５が第２フォルダ２２内に存在するか否かを判定する（ステップＳ６３３）。Ｊ番目の製品情報５１に対応する製品識別ファイル２５の存在有無は、たとえば製品識別ファイル２５の名称と製品情報５１内の製品ＩＤとを対比することにより判定する。また製品識別ファイル２５を復号して製品ＩＤを取得して、製品情報５１内の製品ＩＤと対比することにより判定しても良い。
【０１１８】
Ｊ番目の製品情報５１に対応する製品識別ファイル２５が第２フォルダ２２内に存在しないと判定した場合（ステップＳ６３３でＮＯ）、ＣＰＵ１２は管理ファイル２３からＪ番目の製品情報５１を削除する（ステップＳ６３４）。
【０１１９】
製品識別ファイル２５が第２フォルダ２２内に存在すると判定した場合（ステップＳ６３３でＹＥＳ）およびステップＳ６３４の終了後、ＣＰＵ１２はステップＳ６３１で抽出したすべての製品情報５１の処理が終了したか否かを判定する（ステップＳ６３５）。
【０１２０】
終了していないと判定した場合（ステップＳ６３５でＮＯ）、ＣＰＵ１２はカウンタＪに１を加算する（ステップＳ６３６）。その後ＣＰＵ１２はステップＳ６３３に戻る。
【０１２１】
終了したと判定した場合（ステップＳ６３５でＹＥＳ）、ＣＰＵ１２はカウンタＪを初期値１に設定する（ステップＳ６４１）。
【０１２２】
ＣＰＵ１２は、第２フォルダ２２内に記憶されたＪ番目の製品識別ファイル２５に対応する製品情報５１が、ステップＳ６３１で抽出した製品情報５１に含まれるか否かを判定する（ステップＳ６４２）。
【０１２３】
Ｊ番目の製品識別ファイル２５に対応する製品情報５１が含まれていないと判定した場合（ステップＳ６４２でＮＯ）、ＣＰＵ１２は管理ファイル２３にＪ番目の製品識別ファイル２５に対応する製品情報５１を追加する（ステップＳ６４３）。
【０１２４】
製品情報５１が含まれていると判定した場合（ステップＳ６４２でＹＥＳ）およびステップＳ６４３の終了後、ＣＰＵ１２は第２フォルダ２２に記憶されたすべての製品識別ファイル２５の処理が終了したか否かを判定する（ステップＳ６４４）。
【０１２５】
終了していないと判定した場合（ステップＳ６４４でＮＯ）、ＣＰＵ１２はカウンタＪに１を加算する（ステップＳ６４５）。その後ＣＰＵ１２はステップＳ６４２に戻る。終了したと判定した場合（ステップＳ６４４でＹＥＳ）、ＣＰＵ１２は処理を終了する。
【０１２６】
図２３は、実施の形態２の修正単位情報更新のサブルーチンの処理の流れを示すフローチャートである。修正単位情報更新のサブルーチンは、管理ファイル２３に含まれる修正単位情報５３を、コンピュータ１１に導入されているソフトウェア製品３１の修正単位４３と合致させるサブルーチンである。図２３を使用して、修正単位情報更新のサブルーチンの処理の流れを説明する。
【０１２７】
ＣＰＵ１２は、管理ファイル２３から修正単位情報５３を抽出する（ステップＳ６５１）。ＣＰＵ１２は、抽出した修正単位情報５３を主記憶装置１３または補助記憶装置１４に記憶する。ＣＰＵ１２は、カウンタＪを初期値１に設定する（ステップＳ６５２）。
【０１２８】
ＣＰＵ１２は、ステップＳ６５１で抽出したＪ番目の修正単位情報５３に対応する判定ファイル２４が第１フォルダ２１内に存在するか否かを判定する（ステップＳ６５３）。Ｊ番目の修正単位情報５３に対応する判定ファイル２４の存在有無は、たとえば判定ファイル２４の名称と修正単位情報５３内の修正単位ＩＤとを対比することにより判定する。また判定ファイル２４を復号して修正単位ＩＤを取得して、修正単位情報５３の修正単位ＩＤと対比することにより判定しても良い。
【０１２９】
Ｊ番目の修正単位情報５３に対応する判定ファイル２４が第１フォルダ２１内に存在しないと判定した場合（ステップＳ６５３でＮＯ）、ＣＰＵ１２は管理ファイル２３からＪ番目の修正単位情報５３を削除する（ステップＳ６５４）。
【０１３０】
判定ファイル２４が第１フォルダ２１内に存在すると判定した場合（ステップＳ６５３でＹＥＳ）およびステップＳ６５４の終了後、ＣＰＵ１２はステップＳ６５１で抽出したすべての修正単位情報５３の処理が終了したか否かを判定する（ステップＳ６５５）。
【０１３１】
終了していないと判定した場合（ステップＳ６５５でＮＯ）、ＣＰＵ１２はカウンタＪに１を加算する（ステップＳ６５６）。その後ＣＰＵ１２はステップＳ６５３に戻る。
【０１３２】
終了したと判定した場合（ステップＳ６５５でＹＥＳ）、ＣＰＵ１２はカウンタＪを初期値１に設定する（ステップＳ６６１）。
【０１３３】
ＣＰＵ１２は、第１フォルダ２１内に記憶されたＪ番目の判定ファイル２４に対応する修正単位情報５３が、ステップＳ６５１で抽出した修正単位情報５３に含まれるか否かを判定する（ステップＳ６６２）。
【０１３４】
Ｊ番目の判定ファイル２４に対応する修正単位情報５３が含まれていないと判定した場合（ステップＳ６６２でＮＯ）、ＣＰＵ１２は管理ファイル２３にＪ番目の判定ファイル２４に対応する修正単位情報５３を追加する（ステップＳ６６３）。
【０１３５】
修正単位情報５３が含まれていると判定した場合（ステップＳ６６２でＹＥＳ）およびステップＳ６６３の終了後、ＣＰＵ１２は第１フォルダ２１に記憶されたすべての判定ファイル２４の処理が終了したか否かを判定する（ステップＳ６６４）。
【０１３６】
終了していないと判定した場合（ステップＳ６６４でＮＯ）、ＣＰＵ１２はカウンタＪに１を加算する（ステップＳ６６５）。その後ＣＰＵ１２はステップＳ６６２に戻る。終了したと判定した場合（ステップＳ６６４でＹＥＳ）、ＣＰＵ１２は処理を終了する。
【０１３７】
本実施の形態によると、不要な判定ファイル２４を削除することにより、様々なソフトウェア製品３１を導入するコンピュータ１１の処理の負荷をさらに軽くすることができる。
【０１３８】
本実施の形態によると、コンピュータ１１に導入済の修正単位４３に対する修正の適用漏れを防止することができる。また、コンピュータ１１に導入されていない修正単位４３に対する修正を誤って適用することによる不具合も防止することができる。
【０１３９】
本実施の形態によると、コンピュータ１１に導入された各種のソフトウェア製品３１等に関する情報が記録された管理ファイル２３を作成することができる。管理ファイル２３は、コンピュータ１１の管理およびトラブル発生時の対策等に利用することができる。
【０１４０】
［実施の形態３］
本実施の形態は、コンピュータ１１からソフトウェア製品３１を完全に削除する際に、関連する判定ファイル２４も削除するコンピュータ１１に関する。実施の形態２と共通する部分については、説明を省略する。
【０１４１】
図２４は、実施の形態３の導入処理のサブルーチンの処理の流れを示すフローチャートである。図２４に示すサブルーチンは、図１９を使用して説明したサブルーチンの代わりに使用するサブルーチンである。図２４を使用して、本実施の形態の処理の流れを説明する。
【０１４２】
ＣＰＵ１２は、ソフトウェア製品３１の完全削除を行うか否かを判定する（ステップＳ５５１）。完全削除を行うと判定した場合（ステップＳ５５１でＹＥＳ）、ＣＰＵ１２はソフトウェア製品３１の削除を行う（ステップＳ５５２）。
【０１４３】
ＣＰＵ１２は、ステップＳ５５２で削除したソフトウェア製品３１に対応する製品識別ファイル２５を第２フォルダ２２から取得して、復号する（ステップＳ６７１）。ＣＰＵ１２は、復号した製品識別ファイル２５から修正単位ＩＤ値を取得する（ステップＳ６７２）。
【０１４４】
ＣＰＵ１２は、ステップＳ６７２で取得した修正単位ＩＤ値に対応する判定ファイル２４を第１フォルダ２１から削除する（ステップＳ６７３）。ＣＰＵ１２は、ステップＳ５５２で削除したソフトウェア製品３１に対応する製品識別ファイル２５を第２フォルダ２２から削除する（ステップＳ５５３）。その後、ＣＰＵ１２は処理を終了する。
【０１４５】
完全削除を行わないと判定した場合（ステップＳ５５１でＮＯ）以降の処理は、図１９を使用して説明した導入処理のサブルーチンの処理の流れと同一であるので、説明を省略する。
【０１４６】
本実施の形態によると、コンピュータ１１からソフトウェア製品３１を削除する際に、判定情報の判定を行わずに判定ファイル２４を削除する。そのため、削除処理を速やかに実行するコンピュータ１１を提供することができる。
【０１４７】
［実施の形態４］
本実施の形態は、コンピュータ１１にソフトウェア製品３１を導入した直後に、不要な判定ファイル２４を削除するコンピュータ１１に関する。実施の形態２と共通する部分については、説明を省略する。
【０１４８】
図２５は、実施の形態４のプログラムの処理の流れを示すフローチャートである。図２５を使用して、本実施の形態の処理の流れを説明する。
【０１４９】
ＣＰＵ１２は、ソフトウェア製品３１の導入または削除を行うか否かを判定する（ステップＳ５３１）。ソフトウェア製品３１の導入または削除を行わないと判定した場合（ステップＳ５３１でＮＯ）以降の処理は、図１８を使用して説明したプログラムの処理の流れと同一であるので、説明を省略する。
【０１５０】
ソフトウェア製品３１の導入または削除を行うと判定した場合（ステップＳ５３１でＹＥＳ）、ＣＰＵ１２は導入処理のサブルーチンを起動する（ステップＳ５３２）。導入処理のサブルーチンには、図１９を使用して説明したサブルーチンまたは図２４を使用して説明したサブルーチンを使用することができる。
【０１５１】
ＣＰＵ１２は、不要ファイル削除のサブルーチンを起動する（ステップＳ６９１）。不要ファイル削除のサブルーチンには、図２０を使用して説明したサブルーチンを使用することができる。
【０１５２】
ＣＰＵ１２は、管理ファイル更新のサブルーチンを起動する（ステップＳ６９２）。管理ファイル更新のサブルーチンには、図２１を使用して説明したサブルーチンを使用することができる。
【０１５３】
ＣＰＵ１２は処理を終了するか否かを判定する（ステップＳ５４６）。以後の処理は、図１８を使用して説明したプログラムの処理の流れと同一であるので、説明を省略する。
【０１５４】
本実施の形態によると、コンピュータ１１にソフトウェア製品３１を導入した直後に、不要な判定ファイル２４を削除する。したがって、多くの修正単位４３に区分されており、多数の判定ファイル２４を使用するソフトウェア製品３１を導入した場合にも、補助記憶装置１４の容量が不必要に圧迫されることを防止することができる。
【０１５５】
［実施の形態５］
図２６は、実施の形態５のコンピュータ１１の動作を示す機能ブロック図である。コンピュータ１１は、ＣＰＵ１２による制御に基づいて以下のように動作する。
【０１５６】
記憶処理部６１は、修正単位４３に区分されたソフトウェア製品３１の修正単位４３のコンピュータ１１に対する導入有無を判定する判定情報を含む判定ファイル２４を記憶装置に記憶する。読出部６２は、記憶処理部６１が記憶した判定ファイル２４を読み出す。判定部６３は、読出部６２が読み出した判定ファイル２４に含まれる判定情報に基づいて修正単位４３の導入有無を判定する。修正部６４は、判定部６３が導入されていると判定した修正単位４３に対応する修正を行う。
【０１５７】
［実施の形態６］
実施の形態６は、汎用の情報処理装置１９とプログラム７１とを組み合わせて動作させることにより、本実施の形態のコンピュータ１１を実現する形態に関する。図２７は、実施の形態６のコンピュータ１１の構成を示す説明図である。図２７を使用して、本実施の形態の構成を説明する。なお、実施の形態１と共通する部分の説明は省略する。
【０１５８】
情報処理装置１９は、ＣＰＵ１２、主記憶装置１３、補助記憶装置１４、入力部１５、表示部１６、通信部１７、読取部１８およびバスを備える。情報処理装置１９は、汎用のパソコン、タブレット等の情報処理装置である。
【０１５９】
プログラム７１は、可搬型記録媒体７２に記録されている。ＣＰＵ１２は、読取部１８を介してプログラム７１を読み込み、補助記憶装置１４に保存する。またＣＰＵ１２は、情報処理装置１９内に実装されたフラッシュメモリ等の半導体メモリ７３に記憶されたプログラム７１を読出しても良い。さらに、ＣＰＵ１２は、通信部１７および図示しないネットワークを介して接続される図示しない他のサーバコンピュータからプログラム７１をダウンロードして補助記憶装置１４に保存しても良い。
【０１６０】
プログラム７１は、情報処理装置１９の制御プログラムとしてインストールされ、主記憶装置１３にロードして実行される。これにより、情報処理装置１９は上述したコンピュータ１１として機能する。
【０１６１】
各実施例で記載されている技術的特徴（構成要件）はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１６２】
以上の実施の形態１から６を含む実施形態に関し、さらに以下の付記を開示する。
【０１６３】
（付記１）
修正単位に区分されたソフトウェアの前記修正単位のコンピュータに対する導入有無を判定する判定情報を含む判定ファイルを記憶装置に記憶し、
記憶した前記判定ファイルを読み出し、
読み出した前記判定ファイルに含まれる前記判定情報に基づいて修正単位の導入有無を判定し、
導入されていると判定した修正単位に対応する修正を行う
処理を前記コンピュータに実行させるプログラム。
（付記２）
導入されていると判定した修正単位に対応する修正の要否を判定し、
修正が必要であると判定した修正単位に対応する修正を行う
付記１に記載のプログラム。
（付記３）
前記ソフトウェアを前記コンピュータに導入する場合に、前記ソフトウェアが含む各修正単位に対応する前記判定ファイルを前記記憶装置に記憶する
付記１または付記２に記載のプログラム。
（付記４）
導入済の前記ソフトウェアの状態を変更する場合に、前記ソフトウェアが含む各修正単位に対応する前記判定ファイルを前記記憶装置に記憶する
付記３に記載のプログラム。
（付記５）
前記判定ファイルは、修正単位ごとに分離したファイルであり、
導入されていないと判定した修正単位に対応する前記判定ファイルを削除する
付記１から付記４のいずれか一つに記載のプログラム。
（付記６）
前記判定情報は、前記修正単位が前記コンピュータに導入されている場合に前記記憶装置に記憶されているファイルを特定する情報である
付記１から付記５のいずれか一つに記載のプログラム。
（付記７）
導入されたソフトウェアに関する判定ファイルを特定する情報を含む製品識別ファイルを記憶装置に記憶し、
保存した前記製品識別ファイルおよび前記判定ファイルに対応する情報を記録した管理ファイルを作成する、
付記１から付記６のいずれか一つに記載のプログラム。
（付記８）
導入されたソフトウェアの削除を行うと判定した場合に、前記ソフトウェアに対応する前記製品識別ファイルを削除する
付記７に記載のプログラム。
（付記９）
前記製品識別ファイルが含む情報により特定される前記判定ファイルを削除する
付記８に記載のプログラム。
（付記１０）
修正単位に区分されたソフトウェアの前記修正単位のコンピュータに対する導入有無を判定する判定情報を含む判定ファイルを記憶装置に記憶し、
記憶した前記判定ファイルを読み出し、
読み出した前記判定ファイルに含まれる前記判定情報に基づいて修正単位の導入有無を判定し、
導入されていると判定した修正単位に対応する修正を行う
処理を前記コンピュータに実行させる情報処理方法。
（付記１１）
修正単位に区分されたソフトウェアの前記修正単位の情報処理装置に対する導入有無を判定する判定情報を含む判定ファイルを記憶装置に記憶する記憶処理部と、
前記記憶処理部が記憶した前記判定ファイルを読み出す読出部と、
前記読出部が読み出した前記判定ファイルに含まれる前記判定情報に基づいて修正単位の導入有無を判定する判定部と、
前記判定部が導入されていると判定した修正単位に対応する修正を行う修正部と
を備える前記情報処理装置。
【符号の説明】
【０１６４】
１１  コンピュータ
１２  ＣＰＵ
１３  主記憶装置
１４  補助記憶装置
１５  入力部
１６  表示部
１７  通信部
１８  読取部
１９  情報処理装置
２１  第１フォルダ
２２  第２フォルダ
２３  管理ファイル
２４  判定ファイル
２５  製品識別ファイル
３１  ソフトウェア製品
３１１  ソフトウェア製品Ａ
３１２  ソフトウェア製品Ｂ
３１３  ソフトウェア製品Ｃ
４１  機能モジュール
４３  修正単位
４５  製品ファイル
５１  製品情報
５３  修正単位情報
５５  修正情報
６１  記憶処理部
６２  読出部
６３  判定部
６４  修正部
７１  プログラム
７２  可搬型記憶媒体
７３  半導体メモリ
【図１】
0006766366.tif 000002
【図２】
0006766366.tif 000003
【図３】
0006766366.tif 000004
【図４】
0006766366.tif 000005
【図５】
0006766366.tif 000006
【図６】
0006766366.tif 000007
【図７】
0006766366.tif 000008
【図８】
0006766366.tif 000009
【図９】
0006766366.tif 000010
【図１０】
0006766366.tif 000011
【図１１】
0006766366.tif 000012
【図１２】
0006766366.tif 000013
【図１３】
0006766366.tif 000014
【図１４】
0006766366.tif 000015
【図１５】
0006766366.tif 000016
【図１６】
0006766366.tif 000017
【図１７】
0006766366.tif 000018
【図１８】
0006766366.tif 000019
【図１９】
0006766366.tif 000020
【図２０】
0006766366.tif 000021
【図２１】
0006766366.tif 000022
【図２２】
0006766366.tif 000023
【図２３】
0006766366.tif 000024
【図２４】
0006766366.tif 000025
【図２５】
0006766366.tif 000026
【図２６】
0006766366.tif 000027
【図２７】
0006766366.tif 000028