[実施の形態1]
図1は、コンピュータ11の構成を示す説明図である。コンピュータ11は、CPU(Central Processing Unit)12、主記憶装置13、補助記憶装置14、入力部15、表示部16、通信部17、読取部18およびバスを備える。本実施の形態のコンピュータ11は、様々なソフトウェア製品31が導入されて使用される情報処理装置である。本実施の形態のコンピュータ11は、汎用のパーソナルコンピューター、タブレット、大型計算機等の情報機器等である。また、本実施の形態のコンピュータ11は、大型計算機上で動作する仮想マシンでも良い。
CPU12は、本実施の形態に係るプログラムを実行する演算制御装置である。CPU12には、一または複数のCPUまたはマルチコアCPU等が使用される。CPU12は、バスを介してコンピュータ11を構成するハードウェア各部と接続されている。
主記憶装置13は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の記憶装置である。主記憶装置13には、CPU12が行う処理の途中で必要な情報およびCPU12で実行中のプログラムが一時的に保存される。
補助記憶装置14は、SRAM、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置14には、CPU12に実行させるプログラム、第1フォルダ21、ソフトウェア製品31群のファイルおよびプログラムの実行に必要な各種情報が保存される。
ソフトウェア製品31群は、コンピュータ11に導入済の各種ソフトウェア製品31を含む。ソフトウェア製品31は、たとえばソフトウェア製品A311、ソフトウェア製品B312およびソフトウェア製品C313等である。ソフトウェア製品31は、たとえばコンピュータの基本的な制御を行うオペレーティングシステムと、各業務処理を行うアプリケーションソフトウェアとの中間に入るミドルウェアである。また、ソフトウェア製品31は、アプリケーションソフトウェアであっても良い。
第1フォルダ21は、判定ファイル24を含む。判定ファイル24については後述する。
入力部15は、マウス、キーボード、タッチパネル、ペンタブレット、マイク等の機器である。入力部15は、ユーザによる操作をコンピュータ11が受け付ける際に使用する。表示部16は、ディスプレイ、プリンタ、プロッタ等の機器である。表示部16は、コンピュータ11がユーザに情報を提示する際に使用する。通信部17は、ネットワークとの通信を行うインターフェイスである。
読取部18は、後述する可搬型記録媒体72(図27参照)を読み取る装置であり、具体的にはたとえばSD(Secure Digital)カードスロット、光学ディスクドライブまたはUSB(Universal Serial Bus)ポート等である。
図2は、ソフトウェア製品31の構成を示す説明図である。図2ではソフトウェア製品A311を例にして説明を行う。ソフトウェア製品A311は、6個の機能を有する。それぞれの機能は、A1機能モジュール41からA6機能モジュール41までの6個の機能モジュール41に含まれる製品ファイル45を使用して実現される。コンピュータ11に導入する機能は、たとえばオペレーティングシステムの種類およびバージョン、コンピュータ11のハードウェアの構成およびコンピュータ11を使用するユーザによる選択等により定められる。
ソフトウェア製品A311には、破線で囲んで示す7個の修正単位43が定義されている。修正単位43は、ソフトウェア製品31の修正を行う際に、修正を適用する製品ファイル45の範囲を定める群である。すなわち、ソフトウェア製品A311を構成する製品ファイル45は、修正単位43に区分されている。修正単位43は、ソフトウェア製品31を開発する際に定義される。
図2を使用して、本実施の形態のソフトウェア製品A311の修正単位43の定義について説明する。A1機能モジュール41の機能を実現するために使用する製品ファイル45は、a1修正単位43と、a2修正単位43とに区分されている。A2機能モジュール41の機能を実現するために使用する製品ファイル45は、a3修正単位43と、a4修正単位43とに区分されている。A3機能モジュール41の機能を実現するために使用する製品ファイル45は、a4修正単位43と、a5修正単位43とに区分されている。すなわち、a4修正単位43には、A2機能モジュール41の機能を実現するために使用する製品ファイル45およびA3機能モジュール41の機能を実現するために使用する製品ファイル45を含む。
A4機能モジュール41の機能を実現するために使用するすべての製品ファイル45は、a6修正単位43に区分されている。A5機能モジュール41の機能を実現するために使用する製品ファイル45およびA6機能モジュール41の機能を実現するために使用する製品ファイル45は、すべてa7修正単位43に区分されている。
機能モジュール41とは別に、修正単位43を定義する理由を説明する。複数の機能モジュール41が連携して動作する場合がある。A2機能モジュール41と、A3機能モジュール41との間で、通信を行う場合を例にして具体的に説明する。これらの機能モジュール41が使用する通信プロトコルを修正する場合に、一方の機能モジュール41のみを修正すると、正常な通信ができなくなる等の不具合が生じる。したがって、両方の機能モジュール41を同時に修正する必要がある。a4修正単位43のように、A2機能モジュール41に含まれる製品ファイル45とA3機能モジュール41に含まれる製品ファイル45とを包含する修正単位43を定義することにより、修正時の不具合の発生を防止することができる。
一つの機能モジュール41が、複数の独立した機能を実現する製品ファイル45の群を含む場合がある。A1機能モジュール41が、ディスプレイに表示する映像と、スピーカから出力する音声の両方を制御する機能を有する場合を例にして具体的に説明する。ディスプレイを制御する製品ファイル45と、スピーカを制御する製品ファイル45との両方に同時に修正が必要になる可能性は低い。したがって、A1機能モジュール41に含まれる製品ファイル45を、a1修正単位43とa2修正単位43のように二つの修正単位43に区分することにより、修正を効率的に実施することができる。
独立した機能を有する機能モジュール41の場合には、機能モジュール41と一致するように、修正単位43を定義しても良い。規模が大きくないソフトウェア製品31の場合には、ソフトウェア製品31全体を1個の修正単位43と定義しても良い。ソフトウェア製品31の開発時に修正単位43を適切に定義することにより、ソフトウェア製品31の修正を効率的に実行することが可能になる。
なお、図2を使用して説明したソフトウェア製品A311の構成は例示である。機能モジュール41、修正単位43および製品ファイル45の数および区分は、ソフトウェア製品31により異なる。
図3は、補助記憶装置14に記憶される情報を示す説明図である。図3は、ソフトウェア製品A311のA3機能モジュール41およびA5機能モジュール41がコンピュータ11に導入された状態を模式的に示す図である。図3で×印が記載された機能モジュール41は、コンピュータ11に導入されていない機能を示す。したがって、×印が記載された機能モジュール41に対応する製品ファイル45は、補助記憶装置14に記憶されていない。
第1フォルダ21には、ソフトウェア製品A311に含まれる7個の修正単位43に対応する判定ファイル24が記録されている。図3の判定ファイル24内に示すa1からa7の文字は、それぞれa1修正単位43からa7修正単位43に対応する判定ファイル24であることを示す。
図3を使用して説明した状態で、コンピュータ11のユーザは、ソフトウェア製品A311のA3機能モジュール41およびA5機能モジュール41に含まれる機能を利用することができる。
図4は、判定ファイル24の構成を示す説明図である。図4は、a1修正単位43に対応する判定ファイル24の例を示す。なお、判定ファイル24はたとえば共通鍵暗号方式を使用して暗号化された状態で第1フォルダ21内に記憶されている。
判定ファイル24は、修正単位ID(IDentification)、修正単位名、修正単位バージョンおよび判定情報を含む。修正単位IDは、修正単位43に一意に割り当てられた固有の記号を示す。修正単位名は、修正単位IDにより特定される修正単位43の名称を示す。修正単位バージョンは、修正単位IDにより特定される修正単位43のバージョン名を示す。判定情報は、修正単位IDにより特定される修正単位43が、コンピュータ11に導入されているか否かを判定する判定式を示す。
図4に示す判定ファイル24では、判定情報に“ファイル /aaa/bbb.txt内に「V1.0L30」という文字列が含まれるか?”という判定式が記録されている。これは、補助記憶装置14の“aaa”フォルダ内の“bbb.txt”という名称のファイルに“V1.0L30”という文字列が含まれている場合には、判定情報が「真」であることを意味する。判定情報が「真」である場合には、a1修正単位43はコンピュータ11に導入されている。一方、判定情報が「偽」である場合には、a1修正単位43はコンピュータ11に導入されていない。
図3に戻って説明を続ける。ソフトウェア製品31の修正が製造元から提供された場合を例にして説明する。CPU12は第1フォルダ21に記憶された判定ファイル24内の判定情報を順次判定する。CPU12は、判定情報に基づいて導入済と判定した修正単位43に対応する修正を適用する。
以上により、コンピュータ11に導入済の修正単位43に対する修正の適用漏れを防止することができる。また、コンピュータ11に導入されていない修正単位43に対する修正を誤って適用することによる不具合も防止することができる。
図5は、プログラムの処理の流れを示すフローチャートである。図5に示すプログラムは、コンピュータ11にソフトウェア製品31の導入を行うとともに、既に導入済の修正単位43を識別して、導入済の修正単位43に対する修正を適用するプログラムである。図5を使用して、本実施の形態のプログラムの処理の流れを説明する。
CPU12は、新たなソフトウェア製品31の導入を行うか否かを判定する(ステップS501)。たとえば、入力部15または通信部17を介して、ユーザから導入を行う旨の指示を受け付けた場合に、CPU12は導入を行うと判定する。また、ネットワーク上の所定の場所に導入に使用するファイルが存在する場合に、CPU12は導入を行うと判定しても良い。
新たなソフトウェア製品31の導入を行うと判定した場合(ステップS501でYES)、CPU12はソフトウェア製品31の導入を行う(ステップS502)。導入は、たとえばソフトウェア製品31ごとに用意されたインストールプログラムを用いて行う。インストールプログラムによる処理は、既存の様々なソフトウェア製品31と同様であるので、説明を省略する。
なお、CPU12は、インストールプログラムおよび製品ファイル45を、読取部18を介してたとえば光ディスクから取得する。CPU12は、インストールプログラムおよび製品ファイル45を、通信部17を介して図示しないネットワークから取得しても良い。
導入が完了すると、導入された機能モジュール41に対応する製品ファイル45が補助記憶装置14に記憶される。
CPU12は、ステップS512で導入したソフトウェア製品31に含まれるすべての修正単位43に対応する判定ファイル24を第1フォルダ21に保存する(ステップS503)。
新たなソフトウェア製品31の導入を行わないと判定した場合(ステップS501でNO)、CPU12はソフトウェア製品31の修正を適用するか否かを判定する(ステップS511)。たとえば、入力部15または通信部17を介して、ユーザから修正を適用する旨の指示を受け付けた場合に、CPU12は修正適用を行うと判定する。CPU12は通信部17を介して図示しないネットワークから導入済のソフトウェア製品31の修正の有無に関する情報を取得しても良い。
修正を適用すると判定した場合(ステップS511でYES)、CPU12はカウンタIを初期値1に設定する(ステップS512)。CPU12は、第1フォルダ21からI番目の判定ファイル24を取得する(ステップS513)。CPU12は、取得した判定ファイル24に含まれる判定情報を評価する(ステップS514)。
CPU12は、判定式が真であるか否かを判定する(ステップS515)。真であると判定した場合(ステップS515でYES)、CPU12は、I番目の判定ファイル24に対応する修正単位43はコンピュータ11に導入済であることを主記憶装置13または補助記憶装置14に記憶する(ステップS516)。真でないと判定した場合(ステップS515でNO)、CPU12は、I番目の判定ファイル24に対応する修正単位43はコンピュータ11に導入されていないことを主記憶装置13または補助記憶装置14に記憶する(ステップS517)。
ステップS516またはステップS517の終了後、CPU12は第1フォルダ21に記憶されたすべての判定ファイル24の処理が終了したか否かを判定する(ステップS518)。終了していないと判定した場合(ステップS518でNO)、CPU12はカウンタIに1を加算する(ステップS519)。その後、CPU12はステップS513に戻る。
終了したと判定した場合(ステップS518でYES)、CPU12はステップS516で導入済と記憶した修正単位43に対して修正を行う(ステップS520)。修正は、たとえばソフトウェア製品31ごとに用意された修正適用プログラムを用いて行う。修正適用プログラムは、ステップS516で導入済と記憶した修正単位43に対する修正の要否を判定し、修正が必要と判定した修正単位43に対する修正を適用する。修正適用プログラムによる処理は、既存の様々なソフトウェア製品31と同様であるので、説明を省略する。
なお、CPU12は、修正適用プログラムおよび関連するファイルを、読取部18を介してたとえば光ディスクから取得する。CPU12は、修正適用プログラムおよび関連するファイルを、通信部17を介して図示しないネットワークから取得しても良い。
ステップS503またはステップS520の終了後および修正を適用しないと判定した場合(ステップS511でNO)、CPU12は処理を終了するか否かを判定する(ステップS521)。処理を終了する場合とは、たとえば入力部15を介して処理を終了するという入力を受け付けた場合である。
処理を終了しないと判定した場合(ステップS521でNO)、CPU12はステップS501に戻る。処理を終了すると判定した場合(ステップS521でYES)、CPU12は処理を終了する。
本実施の形態によると、コンピュータ11に導入済の修正単位43に対する修正の適用漏れを防止することができる。また、コンピュータ11に導入されていない修正単位43に対する修正を誤って適用することによる不具合も防止することができる。
本実施の形態によると、CPU12は、コンピュータ11に導入されたソフトウェア製品31に関する判定式のみを判定する。したがって、導入済のソフトウェアの状態を判定する処理の負荷が大きくならない。
本実施の形態によると、ネットワークに接続されていないコンピュータ11においてもソフトウェア製品31の導入および修正の適用を行える。したがって、たとえばソフトウェアの開発作業等に使用するために、ネットワークに接続せずにいわゆるスタンドアロン状態で使用するコンピュータ11にも、適切に修正を適用することができる。
なお、判定ファイル24は、複数の修正単位43に対する判定情報等を、1つのファイルにまとめたものであっても良い。このようにする場合には、CPU12は判定ファイル24から一つの修正単位43に対する判定情報を順次読み出して、ステップS514からステップS518までの処理を行う。
[実施の形態2]
本実施の形態は、コンピュータ11に導入されていない修正単位43に対応する判定ファイル24を第1フォルダ21から削除するコンピュータ11に関する。実施の形態1と共通する部分については、説明を省略する。
図6は、実施の形態2のコンピュータ11の構成を示す説明図である。コンピュータ11は、CPU12、主記憶装置13、補助記憶装置14、入力部15、表示部16、通信部17、読取部18およびバスを備える。
補助記憶装置14には、CPU12に実行させるプログラム、第1フォルダ21、第2フォルダ22、管理ファイル23、ソフトウェア製品31群のファイルおよびプログラムの実行に必要な各種情報が保存される。管理ファイル23については後述する。
第1フォルダ21は、判定ファイル24を含む。第2フォルダ22は、製品識別ファイル25を含む。
図7は、実施の形態2の製品識別ファイル25の構成を示す説明図である。図7は、ソフトウェア製品A311に対応する製品識別ファイル25の例を示す。なお、製品識別ファイル25はたとえば共通鍵暗号方式を使用して暗号化された状態で第2フォルダ22内に記憶されている。
製品識別ファイル25は、製品ID、製品名、製品バージョンおよび修正単位ID値を含む。製品IDは、ソフトウェア製品31に一意に割り当てられた固有の記号を示す。製品名は、製品IDにより特定されるソフトウェア製品31の名称を示す。製品バージョンは、製品IDにより特定されるソフトウェア製品31のバージョン名を示す。修正単位ID値は、製品IDにより特定されるソフトウェア製品31が含む修正単位43の修正単位IDの一覧を示す。
図8は、実施の形態2の管理ファイル23の構成を示す説明図である。管理ファイル23は、コンピュータ11に導入された各種のソフトウェア製品31に関する情報が記録されたファイルである。図8は、補助記憶装置14に記憶された管理ファイル23の例を示す。
管理ファイル23には、製品情報51、修正単位情報53および修正情報55が記録されている。製品情報51は、コンピュータ11に導入済の各製品に関する情報である。製品情報51は、製品ID、製品名、製品バージョンおよび修正単位ID値を含む。
修正単位情報53は、修正単位ID、修正単位名、修正単位バージョンおよび適用済の修正番号を含む。適用済の修正番号は、修正単位IDにより特定される修正単位43に対して既に適用された修正の修正番号を示す。
修正情報55は、修正番号、修正タイトル、前提修正情報および排他修正情報を含む。修正番号は、ソフトウェア製品31の修正に一意に割り当てられた固有の番号を示す。修正タイトルは、修正番号により特定される修正のタイトルを示す。前提修正情報は、修正番号により特定される修正を適用する前に、コンピュータ11に適用されていなければならない修正番号を示す。排他修正情報は、修正番号により特定される修正を適用する際に、コンピュータ11に適用されていてはならない修正番号を示す。
図9は、実施の形態2の管理ファイル23の構成を示す説明図である。図9においては、製品情報51、修正単位情報53および修正情報55の具体的な内容については記載を省略している。以後の説明では、管理ファイル23は図9に示すように省略した形式で記載する。
図10は、実施の形態2の補助記憶装置14に記憶される情報を示す説明図である。図10は、コンピュータ11にプログラム製品A311を導入する処理が完了した段階を模式的に示す図である。なお、図示を省略するが、コンピュータ11にはソフトウェア製品B312等も導入されている。
ソフトウェア製品A311のA3機能モジュール41およびA5機能モジュール41が、コンピュータ11に導入され、関連する製品ファイル45が補助記憶装置14に保存されている。第1フォルダ21には、ソフトウェア製品A311に含まれる7個の修正単位43に対応する判定ファイル24が記録されている。第2フォルダ22には、ソフトウェア製品A311に対応する製品識別ファイル25が記憶されている。
図10を使用して説明した状態で、コンピュータ11のユーザは、ソフトウェア製品A311のA3機能モジュール41およびA5機能モジュール41に含まれる機能を利用することができる。
図11は、実施の形態2の補助記憶装置14に記憶される情報を示す説明図である。図11は、第1フォルダ21から不要な判定ファイル24を削除した段階を模式的に示す図である。
不要な判定ファイル24について説明する。図10および図11においては、コンピュータ11にはA3機能モジュール41およびA5機能モジュール41が導入されている。A3機能モジュール41に対応する製品ファイル45は、a4修正単位43およびa5修正単位43に含まれている。A5機能モジュール41に対応する製品ファイル45は、a7修正単位43に含まれている。
一方、ソフトウェア製品A311に含まれる7個の修正単位43のうち、a1修正単位43からa3修正単位43およびa6修正単位43はコンピュータ11に導入されていない。すなわち、これらの修正単位43に対応する判定ファイル24は、不要な判定ファイル24である。
CPU12は、第1フォルダ21内の判定ファイル24を読み込み、判定情報に記録された判定式を判定する。判定式が「偽」であると判定した場合には、その判定ファイル24に対応する修正単位43はコンピュータ11に導入されていない。したがって、CPU12は当該判定ファイル24を削除する。CPU12は、第1フォルダ21内のすべての判定ファイル24について、上述の処理を行う。
以上の処理を行うことにより、CPU12は、図11に示すようにa1修正単位43からa3修正単位43およびa6修正単位43に対応する、不要な判定ファイル24を第1フォルダ21から削除する。
図9に戻って説明を続ける。図9は、図11に示す段階における管理ファイル23の構成を示す。管理ファイル23には、ソフトウェア製品A311およびソフトウェア製品B312等に対応する製品情報51が記録されている。管理ファイル23には、a4修正単位43、a5修正単位43、a7修正単位43およびソフトウェア製品B312に含まれる修正単位43に対応する修正単位情報53等も記録されている。さらに、管理ファイル23には適用済の修正に関する修正情報55等も記録されている。
図12は、実施の形態2の補助記憶装置14に記憶される情報を示す説明図である。図12は、コンピュータ11に導入済のソフトウェア製品A311の状態を変更して、A2機能モジュール41を導入する処理が完了した段階を模式的に示す図である。変更は、コンピュータ11に機能モジュール41を追加導入すること、または導入済の機能モジュール41を削除することを意味する。変更は、コンピュータ11に導入済の機能モジュール41を構成する製品ファイル45を変更することも意味する。
図12においては、第1フォルダ21には、ソフトウェア製品A311に含まれる7個の修正単位43に対応する判定ファイル24が記録されている。
図12を使用して説明した状態で、コンピュータ11のユーザは、ソフトウェア製品A311のA3機能モジュール41およびA5機能モジュール41に加えて、A2機能モジュール41に含まれる機能も利用することができる。
図13は、実施の形態2の補助記憶装置14に記憶される情報を示す説明図である。図13は、第1フォルダ21から不要な判定ファイル24を再度削除した段階を模式的に示す図である。
図12および図13においては、コンピュータ11にはA2機能モジュール41、A3機能モジュール41およびA5機能モジュール41が導入されている。A2機能モジュール41に対応する製品ファイル45は、a3修正単位43およびa4修正単位43に含まれている。A3機能モジュール41に対応する製品ファイル45は、a4修正単位43およびa5修正単位43に含まれている。A5機能モジュール41に対応する製品ファイル45は、a7修正単位43に含まれている。
一方、ソフトウェア製品A311に含まれる7個の修正単位43のうち、a1修正単位43、a2修正単位43およびa6修正単位43はコンピュータ11に導入されていない。すなわち、これらの修正単位43に対応する判定ファイル24は、不要な判定ファイル24である。
第1フォルダ21内の判定ファイル24の処理を行うことにより、CPU12は、図13に示すようにa1修正単位43、a2修正単位43およびa6修正単位43に対応する、不要な判定ファイル24を第1フォルダ21から削除する。
図14は、実施の形態2の管理ファイル23の構成を示す説明図である。図14は、図13に示す段階における管理ファイル23の構成を示す。図9を使用して説明した管理ファイル23と比較すると、a3修正単位43に対応する修正単位情報53が追加されている。
図15は、実施の形態2の補助記憶装置14に記憶される情報を示す説明図である。図15は、ソフトウェア製品A311をコンピュータ11から削除した段階を模式的に示す図である。ソフトウェア製品A311の製品ファイル45がすべて補助記憶装置14から削除されている。第2フォルダ22からソフトウェア製品A311に対応する製品識別ファイル25が削除されている。
図16は、実施の形態2の補助記憶装置14に記憶される情報を示す説明図である。図16は、第1フォルダ21から不要な判定ファイル24を削除した段階を模式的に示す図である。第1フォルダ21からソフトウェア製品A311に対応する判定ファイル24がすべて削除されている。
図17は、実施の形態2の管理ファイル23の構成を示す説明図である。図17は、図16に示す段階における管理ファイル23の構成を示す。図14を使用して説明した管理ファイル23と比較すると、ソフトウェア製品A311に対応する製品情報51および修正単位情報53が削除されている。
本実施の形態においては、CPU12はコンピュータ11に導入されていない修正単位43に対応する判定ファイル24を、第1フォルダ21から削除する。様々なソフトウェア製品31を導入するコンピュータ11において、不要な判定ファイル24を削除することにより、処理の負荷を軽くすることができる。
また、ソフトウェア製品31の状態を変更する際には、当該ソフトウェア製品31に関連するすべての判定ファイル24を第1フォルダ21に保存しなおすことにより、コンピュータ11に導入済の修正単位43に対する修正の適用漏れを防止することができる。また、コンピュータ11に導入されていない修正単位43に対する修正を誤って適用することによる不具合も防止することができる。
図18は、実施の形態2のプログラムの処理の流れを示すフローチャートである。図18に示すプログラムは、コンピュータ11へのソフトウェア製品31の導入および削除を行うとともに、既に導入済の修正単位43を識別して、導入済の修正単位43に対する修正を適用するプログラムである。図18を使用して、本実施の形態のプログラムの処理の流れを説明する。
CPU12は、ソフトウェア製品31の導入または削除を行うか否かを判定する(ステップS531)。たとえば、入力部15または通信部17を介して、ユーザから導入または削除を行う旨の指示を受け付けた場合に、CPU12は導入または削除を行うと判定する。また、ネットワーク上の所定の場所に導入または削除に使用するファイルが存在する場合に、CPU12は導入または削除を行うと判定しても良い。
ソフトウェア製品31の導入または削除を行うと判定した場合(ステップS531でYES)、CPU12は導入処理のサブルーチンを起動する(ステップS532)。導入処理のサブルーチンは、ソフトウェア製品31の新規導入、完全削除および導入済のソフトウェア製品31の変更を行うサブルーチンである。導入処理のサブルーチンの処理の流れは後述する。
ソフトウェア製品31の導入または削除を行わないと判定した場合(ステップS531でNO)、CPU12はソフトウェア製品31の修正を適用するか否かを判定する(ステップS541)。
修正を適用すると判定した場合(ステップS541でYES)、CPU12は不要ファイル削除のサブルーチンを起動する(ステップS542)。不要ファイル削除のサブルーチンは、コンピュータ11に導入されていない修正単位43に関連する判定ファイル24を第1フォルダ21から削除するサブルーチンである。不要ファイル削除のサブルーチンの処理の流れは後述する。
CPU12は、管理ファイル更新のサブルーチンを起動する(ステップS543)。管理ファイル更新のサブルーチンは、管理ファイル23に記録された情報を、コンピュータ11に導入されているソフトウェア製品31の状態と合致するように更新するサブルーチンである。管理ファイル更新のサブルーチンの処理の流れは後述する。
CPU12は第1フォルダ21に記憶されている判定ファイル24に対応する修正単位43に対して修正を行う(ステップS544)。修正は、たとえばソフトウェア製品31ごとに用意された修正適用プログラムを用いて行う。修正適用プログラムによる処理は、既存の様々なソフトウェア製品31に対して行われている処理と同様であるので、説明を省略する。CPU12は、管理ファイル23にステップS544で適用した修正に関する修正情報55を追記する(ステップS545)。
ステップS532またはステップS545の終了後、および修正を適用しないと判定した場合(ステップS541でNO)、CPU12は処理を終了するか否かを判定する(ステップS546)。処理を終了する場合とは、たとえば入力部15を介して処理を終了するという入力を受け付けた場合である。
処理を終了しないと判定した場合(ステップS546でNO)、CPU12はステップS531に戻る。処理を終了すると判定した場合(ステップS546でYES)、CPU12は処理を終了する。
図19は、実施の形態2の導入処理のサブルーチンの処理の流れを示すフローチャートである。導入処理のサブルーチンは、ソフトウェア製品31の新規導入、完全削除および導入済のソフトウェア製品31の変更を行うサブルーチンである。図19を使用して、導入処理のサブルーチンの処理の流れを説明する。
CPU12は、ソフトウェア製品31の完全削除を行うか否かを判定する(ステップS551)。たとえば、入力部15または通信部17を介して、ユーザからソフトウェア製品31の完全削除を行う旨の指示を受け付けた場合に、CPU12は完全削除を行うと判定する。
完全削除を行うと判定した場合(ステップS551でYES)、CPU12はソフトウェア製品31の削除を行う(ステップS552)。削除は、たとえばソフトウェア製品31ごとに用意されたアンインストールプログラムを用いて行う。アンインストールプログラムによる処理は、既存の様々なソフトウェア製品31に対して行われている処理と同様であるので、説明を省略する。
なお、CPU12は、アンインストールプログラムを、読取部18を介してたとえば光ディスクから取得する。CPU12は、アンインストールプログラムを、通信部17を介して図示しないネットワークから取得しても良い。
CPU12は、ステップS552で削除したソフトウェア製品31に対応する製品識別ファイル25を第2フォルダ22から削除する(ステップS553)。その後、CPU12は処理を終了する。
完全削除を行わないと判定した場合(ステップS551でNO)、CPU12はソフトウェア製品31を新規に導入するか否かを判定する(ステップS561)。たとえば、入力部15または通信部17を介して、ユーザからソフトウェア製品31の新規導入を行う旨の指示を受け付けた場合に、CPU12は新たなソフトウェア製品31を新規に導入すると判定する。
新たなソフトウェア製品31の導入を行うと判定した場合(ステップS561でYES)、CPU12はソフトウェア製品31の導入を行う(ステップS562)。導入は、たとえばソフトウェア製品31ごとに用意されたインストールプログラムを用いて行う。インストールプログラムによる処理は、既存の様々なソフトウェア製品31に対して行われている処理と同様であるので、説明を省略する。
CPU12は、ステップS562で導入したソフトウェア製品31に対応する製品識別ファイル25を第2フォルダ22に保存する(ステップS563)。
新たなソフトウェア製品31の導入を行わないと判定した場合(ステップS561でNO)、CPU12はソフトウェア製品31の変更を行う(ステップS571)。前述のとおり、変更はコンピュータ11に機能モジュール41を追加導入または導入済の機能モジュール41を削除することにより実施する。変更は、たとえばソフトウェア製品31ごとに用意されたインストールプログラムを用いて行う。インストールプログラムによる処理は、既存の様々なソフトウェア製品31に対して行われている処理と同様であるので、説明を省略する。
ステップS563またはステップS571の終了後、CPU12は、ステップS562で導入したソフトウェア製品31に含まれるすべての修正単位43に対応する判定ファイル24を第1フォルダ21に保存する(ステップS564)。その後、CPU12は処理を終了する。
図20は、実施の形態2の不要ファイル削除のサブルーチンの処理の流れを示すフローチャートである。不要ファイル削除のサブルーチンは、コンピュータ11に導入されていない修正単位43に関連する判定ファイル24を第1フォルダ21から削除するサブルーチンである。図20を使用して、不要ファイル削除のサブルーチンの処理の流れを説明する。
CPU12は、カウンタIを初期値1に設定する(ステップS601)。CPU12は、第1フォルダ21からI番目の判定ファイル24を取得する(ステップS602)。CPU12は、取得した判定ファイル24に含まれる判定情報を評価する(ステップS603)。
CPU12は、判定式が真であるか否かを判定する(ステップS604)。真でないと判定した場合(ステップS604でNO)、CPU12は、I番目の判定ファイル24を第1フォルダ21から削除する(ステップS605)。
判定式が真であると判定した場合(ステップS604でYES)およびステップS605の終了後、CPU12は第1フォルダ21に記憶されたすべての判定ファイル24の処理が終了したか否かを判定する(ステップS611)。終了していないと判定した場合(ステップS611でNO)、CPU12はカウンタIに1を加算する(ステップS612)。その後、CPU12はステップS602に戻る。
終了したと判定した場合(ステップS611でYES)、CPU12は処理を終了する。
図21は、実施の形態2の管理ファイル更新のサブルーチンの処理の流れを示すフローチャートである。管理ファイル更新のサブルーチンは、管理ファイル23に記録された情報を、コンピュータ11に導入されているソフトウェア製品31の状態と合致するように更新するサブルーチンである。図21を使用して、管理ファイル更新のサブルーチンの処理の流れを説明する。
CPU12は、補助記憶装置14から管理ファイル23を取得する(ステップS621)。CPU12は、製品情報更新のサブルーチンを起動する(ステップS622)。製品情報更新のサブルーチンは、管理ファイル23に含まれる製品情報51を、コンピュータ11に導入されているソフトウェア製品31と合致させるサブルーチンである。製品情報更新のサブルーチンの処理の流れは後述する。
CPU12は、修正単位情報更新のサブルーチンを起動する(ステップS623)。修正単位情報更新のサブルーチンは、管理ファイル23に含まれる修正単位情報53を、コンピュータ11に導入されているソフトウェア製品31の修正単位43と合致させるサブルーチンである。修正単位情報更新のサブルーチンの処理の流れは後述する。
CPU12は、修正した管理ファイル23を補助記憶装置14に上書き保存する(ステップS624)。CPU12は、その後処理を終了する。
図22は、実施の形態2の製品情報更新のサブルーチンの処理の流れを示すフローチャートである。製品情報更新のサブルーチンは、管理ファイル23に含まれる製品情報51を、コンピュータ11に導入されているソフトウェア製品31と合致させるサブルーチンである。図22を使用して、製品情報更新のサブルーチンの処理の流れを説明する。
CPU12は、管理ファイル23から製品情報51を抽出する(ステップS631)。CPU12は、抽出した製品情報51を主記憶装置13または補助記憶装置14に記憶する。CPU12は、カウンタJを初期値1に設定する(ステップS632)。
CPU12は、ステップS631で抽出したJ番目の製品情報51に対応する製品識別ファイル25が第2フォルダ22内に存在するか否かを判定する(ステップS633)。J番目の製品情報51に対応する製品識別ファイル25の存在有無は、たとえば製品識別ファイル25の名称と製品情報51内の製品IDとを対比することにより判定する。また製品識別ファイル25を復号して製品IDを取得して、製品情報51内の製品IDと対比することにより判定しても良い。
J番目の製品情報51に対応する製品識別ファイル25が第2フォルダ22内に存在しないと判定した場合(ステップS633でNO)、CPU12は管理ファイル23からJ番目の製品情報51を削除する(ステップS634)。
製品識別ファイル25が第2フォルダ22内に存在すると判定した場合(ステップS633でYES)およびステップS634の終了後、CPU12はステップS631で抽出したすべての製品情報51の処理が終了したか否かを判定する(ステップS635)。
終了していないと判定した場合(ステップS635でNO)、CPU12はカウンタJに1を加算する(ステップS636)。その後CPU12はステップS633に戻る。
終了したと判定した場合(ステップS635でYES)、CPU12はカウンタJを初期値1に設定する(ステップS641)。
CPU12は、第2フォルダ22内に記憶されたJ番目の製品識別ファイル25に対応する製品情報51が、ステップS631で抽出した製品情報51に含まれるか否かを判定する(ステップS642)。
J番目の製品識別ファイル25に対応する製品情報51が含まれていないと判定した場合(ステップS642でNO)、CPU12は管理ファイル23にJ番目の製品識別ファイル25に対応する製品情報51を追加する(ステップS643)。
製品情報51が含まれていると判定した場合(ステップS642でYES)およびステップS643の終了後、CPU12は第2フォルダ22に記憶されたすべての製品識別ファイル25の処理が終了したか否かを判定する(ステップS644)。
終了していないと判定した場合(ステップS644でNO)、CPU12はカウンタJに1を加算する(ステップS645)。その後CPU12はステップS642に戻る。終了したと判定した場合(ステップS644でYES)、CPU12は処理を終了する。
図23は、実施の形態2の修正単位情報更新のサブルーチンの処理の流れを示すフローチャートである。修正単位情報更新のサブルーチンは、管理ファイル23に含まれる修正単位情報53を、コンピュータ11に導入されているソフトウェア製品31の修正単位43と合致させるサブルーチンである。図23を使用して、修正単位情報更新のサブルーチンの処理の流れを説明する。
CPU12は、管理ファイル23から修正単位情報53を抽出する(ステップS651)。CPU12は、抽出した修正単位情報53を主記憶装置13または補助記憶装置14に記憶する。CPU12は、カウンタJを初期値1に設定する(ステップS652)。
CPU12は、ステップS651で抽出したJ番目の修正単位情報53に対応する判定ファイル24が第1フォルダ21内に存在するか否かを判定する(ステップS653)。J番目の修正単位情報53に対応する判定ファイル24の存在有無は、たとえば判定ファイル24の名称と修正単位情報53内の修正単位IDとを対比することにより判定する。また判定ファイル24を復号して修正単位IDを取得して、修正単位情報53の修正単位IDと対比することにより判定しても良い。
J番目の修正単位情報53に対応する判定ファイル24が第1フォルダ21内に存在しないと判定した場合(ステップS653でNO)、CPU12は管理ファイル23からJ番目の修正単位情報53を削除する(ステップS654)。
判定ファイル24が第1フォルダ21内に存在すると判定した場合(ステップS653でYES)およびステップS654の終了後、CPU12はステップS651で抽出したすべての修正単位情報53の処理が終了したか否かを判定する(ステップS655)。
終了していないと判定した場合(ステップS655でNO)、CPU12はカウンタJに1を加算する(ステップS656)。その後CPU12はステップS653に戻る。
終了したと判定した場合(ステップS655でYES)、CPU12はカウンタJを初期値1に設定する(ステップS661)。
CPU12は、第1フォルダ21内に記憶されたJ番目の判定ファイル24に対応する修正単位情報53が、ステップS651で抽出した修正単位情報53に含まれるか否かを判定する(ステップS662)。
J番目の判定ファイル24に対応する修正単位情報53が含まれていないと判定した場合(ステップS662でNO)、CPU12は管理ファイル23にJ番目の判定ファイル24に対応する修正単位情報53を追加する(ステップS663)。
修正単位情報53が含まれていると判定した場合(ステップS662でYES)およびステップS663の終了後、CPU12は第1フォルダ21に記憶されたすべての判定ファイル24の処理が終了したか否かを判定する(ステップS664)。
終了していないと判定した場合(ステップS664でNO)、CPU12はカウンタJに1を加算する(ステップS665)。その後CPU12はステップS662に戻る。終了したと判定した場合(ステップS664でYES)、CPU12は処理を終了する。
本実施の形態によると、不要な判定ファイル24を削除することにより、様々なソフトウェア製品31を導入するコンピュータ11の処理の負荷をさらに軽くすることができる。
本実施の形態によると、コンピュータ11に導入済の修正単位43に対する修正の適用漏れを防止することができる。また、コンピュータ11に導入されていない修正単位43に対する修正を誤って適用することによる不具合も防止することができる。
本実施の形態によると、コンピュータ11に導入された各種のソフトウェア製品31等に関する情報が記録された管理ファイル23を作成することができる。管理ファイル23は、コンピュータ11の管理およびトラブル発生時の対策等に利用することができる。
[実施の形態3]
本実施の形態は、コンピュータ11からソフトウェア製品31を完全に削除する際に、関連する判定ファイル24も削除するコンピュータ11に関する。実施の形態2と共通する部分については、説明を省略する。
図24は、実施の形態3の導入処理のサブルーチンの処理の流れを示すフローチャートである。図24に示すサブルーチンは、図19を使用して説明したサブルーチンの代わりに使用するサブルーチンである。図24を使用して、本実施の形態の処理の流れを説明する。
CPU12は、ソフトウェア製品31の完全削除を行うか否かを判定する(ステップS551)。完全削除を行うと判定した場合(ステップS551でYES)、CPU12はソフトウェア製品31の削除を行う(ステップS552)。
CPU12は、ステップS552で削除したソフトウェア製品31に対応する製品識別ファイル25を第2フォルダ22から取得して、復号する(ステップS671)。CPU12は、復号した製品識別ファイル25から修正単位ID値を取得する(ステップS672)。
CPU12は、ステップS672で取得した修正単位ID値に対応する判定ファイル24を第1フォルダ21から削除する(ステップS673)。CPU12は、ステップS552で削除したソフトウェア製品31に対応する製品識別ファイル25を第2フォルダ22から削除する(ステップS553)。その後、CPU12は処理を終了する。
完全削除を行わないと判定した場合(ステップS551でNO)以降の処理は、図19を使用して説明した導入処理のサブルーチンの処理の流れと同一であるので、説明を省略する。
本実施の形態によると、コンピュータ11からソフトウェア製品31を削除する際に、判定情報の判定を行わずに判定ファイル24を削除する。そのため、削除処理を速やかに実行するコンピュータ11を提供することができる。
[実施の形態4]
本実施の形態は、コンピュータ11にソフトウェア製品31を導入した直後に、不要な判定ファイル24を削除するコンピュータ11に関する。実施の形態2と共通する部分については、説明を省略する。
図25は、実施の形態4のプログラムの処理の流れを示すフローチャートである。図25を使用して、本実施の形態の処理の流れを説明する。
CPU12は、ソフトウェア製品31の導入または削除を行うか否かを判定する(ステップS531)。ソフトウェア製品31の導入または削除を行わないと判定した場合(ステップS531でNO)以降の処理は、図18を使用して説明したプログラムの処理の流れと同一であるので、説明を省略する。
ソフトウェア製品31の導入または削除を行うと判定した場合(ステップS531でYES)、CPU12は導入処理のサブルーチンを起動する(ステップS532)。導入処理のサブルーチンには、図19を使用して説明したサブルーチンまたは図24を使用して説明したサブルーチンを使用することができる。
CPU12は、不要ファイル削除のサブルーチンを起動する(ステップS691)。不要ファイル削除のサブルーチンには、図20を使用して説明したサブルーチンを使用することができる。
CPU12は、管理ファイル更新のサブルーチンを起動する(ステップS692)。管理ファイル更新のサブルーチンには、図21を使用して説明したサブルーチンを使用することができる。
CPU12は処理を終了するか否かを判定する(ステップS546)。以後の処理は、図18を使用して説明したプログラムの処理の流れと同一であるので、説明を省略する。
本実施の形態によると、コンピュータ11にソフトウェア製品31を導入した直後に、不要な判定ファイル24を削除する。したがって、多くの修正単位43に区分されており、多数の判定ファイル24を使用するソフトウェア製品31を導入した場合にも、補助記憶装置14の容量が不必要に圧迫されることを防止することができる。
[実施の形態5]
図26は、実施の形態5のコンピュータ11の動作を示す機能ブロック図である。コンピュータ11は、CPU12による制御に基づいて以下のように動作する。
記憶処理部61は、修正単位43に区分されたソフトウェア製品31の修正単位43のコンピュータ11に対する導入有無を判定する判定情報を含む判定ファイル24を記憶装置に記憶する。読出部62は、記憶処理部61が記憶した判定ファイル24を読み出す。判定部63は、読出部62が読み出した判定ファイル24に含まれる判定情報に基づいて修正単位43の導入有無を判定する。修正部64は、判定部63が導入されていると判定した修正単位43に対応する修正を行う。
[実施の形態6]
実施の形態6は、汎用の情報処理装置19とプログラム71とを組み合わせて動作させることにより、本実施の形態のコンピュータ11を実現する形態に関する。図27は、実施の形態6のコンピュータ11の構成を示す説明図である。図27を使用して、本実施の形態の構成を説明する。なお、実施の形態1と共通する部分の説明は省略する。
情報処理装置19は、CPU12、主記憶装置13、補助記憶装置14、入力部15、表示部16、通信部17、読取部18およびバスを備える。情報処理装置19は、汎用のパソコン、タブレット等の情報処理装置である。
プログラム71は、可搬型記録媒体72に記録されている。CPU12は、読取部18を介してプログラム71を読み込み、補助記憶装置14に保存する。またCPU12は、情報処理装置19内に実装されたフラッシュメモリ等の半導体メモリ73に記憶されたプログラム71を読出しても良い。さらに、CPU12は、通信部17および図示しないネットワークを介して接続される図示しない他のサーバコンピュータからプログラム71をダウンロードして補助記憶装置14に保存しても良い。
プログラム71は、情報処理装置19の制御プログラムとしてインストールされ、主記憶装置13にロードして実行される。これにより、情報処理装置19は上述したコンピュータ11として機能する。
各実施例で記載されている技術的特徴(構成要件)はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
以上の実施の形態1から6を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
修正単位に区分されたソフトウェアの前記修正単位のコンピュータに対する導入有無を判定する判定情報を含む判定ファイルを記憶装置に記憶し、
記憶した前記判定ファイルを読み出し、
読み出した前記判定ファイルに含まれる前記判定情報に基づいて修正単位の導入有無を判定し、
導入されていると判定した修正単位に対応する修正を行う
処理を前記コンピュータに実行させるプログラム。
(付記2)
導入されていると判定した修正単位に対応する修正の要否を判定し、
修正が必要であると判定した修正単位に対応する修正を行う
付記1に記載のプログラム。
(付記3)
前記ソフトウェアを前記コンピュータに導入する場合に、前記ソフトウェアが含む各修正単位に対応する前記判定ファイルを前記記憶装置に記憶する
付記1または付記2に記載のプログラム。
(付記4)
導入済の前記ソフトウェアの状態を変更する場合に、前記ソフトウェアが含む各修正単位に対応する前記判定ファイルを前記記憶装置に記憶する
付記3に記載のプログラム。
(付記5)
前記判定ファイルは、修正単位ごとに分離したファイルであり、
導入されていないと判定した修正単位に対応する前記判定ファイルを削除する
付記1から付記4のいずれか一つに記載のプログラム。
(付記6)
前記判定情報は、前記修正単位が前記コンピュータに導入されている場合に前記記憶装置に記憶されているファイルを特定する情報である
付記1から付記5のいずれか一つに記載のプログラム。
(付記7)
導入されたソフトウェアに関する判定ファイルを特定する情報を含む製品識別ファイルを記憶装置に記憶し、
保存した前記製品識別ファイルおよび前記判定ファイルに対応する情報を記録した管理ファイルを作成する、
付記1から付記6のいずれか一つに記載のプログラム。
(付記8)
導入されたソフトウェアの削除を行うと判定した場合に、前記ソフトウェアに対応する前記製品識別ファイルを削除する
付記7に記載のプログラム。
(付記9)
前記製品識別ファイルが含む情報により特定される前記判定ファイルを削除する
付記8に記載のプログラム。
(付記10)
修正単位に区分されたソフトウェアの前記修正単位のコンピュータに対する導入有無を判定する判定情報を含む判定ファイルを記憶装置に記憶し、
記憶した前記判定ファイルを読み出し、
読み出した前記判定ファイルに含まれる前記判定情報に基づいて修正単位の導入有無を判定し、
導入されていると判定した修正単位に対応する修正を行う
処理を前記コンピュータに実行させる情報処理方法。
(付記11)
修正単位に区分されたソフトウェアの前記修正単位の情報処理装置に対する導入有無を判定する判定情報を含む判定ファイルを記憶装置に記憶する記憶処理部と、
前記記憶処理部が記憶した前記判定ファイルを読み出す読出部と、
前記読出部が読み出した前記判定ファイルに含まれる前記判定情報に基づいて修正単位の導入有無を判定する判定部と、
前記判定部が導入されていると判定した修正単位に対応する修正を行う修正部と
を備える前記情報処理装置。