(57)【要約】【課題】ソフトウェアのインストール時間を短縮する。【解決手段】情報処理装置１０は、インストール候補の複数のソフトウェアそれぞれについて、関連するソフトウェアのインストール時にインストールされたファイルに基づき、インストール候補の複数のソフトウェアのインストール時にインストールされる複数のファイルを推定する。次に情報処理装置１０は、インストール候補の複数のソフトウェアのうち、推定した複数のファイルを含み、かつ、インストール候補の複数のソフトウェアをインストールする場合よりも同一ファイルのインストールの重複が少なくなる一又は複数のソフトウェアを特定する。そして情報処理装置１０は、特定した一又は複数のソフトウェアのインストールを実行する。【選択図】図１
2019040400.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
インストール候補の複数のソフトウェアの識別情報を取得し、
インストール実績がある複数のソフトウェアそれぞれのインストール時にインストールされたファイルの識別情報を、該複数のソフトウェアそれぞれの識別情報に対応付けて記憶する記憶部を参照して、前記インストール候補の複数のソフトウェアそれぞれについて、該ソフトウェアに関連するソフトウェアのインストール時にインストールされたファイルの識別情報に基づき、前記インストール候補の複数のソフトウェアのインストール時にインストールされる複数のファイルを推定し、
前記インストール候補の複数のソフトウェアのうち、推定した前記複数のファイルを含み、かつ、前記インストール候補の複数のソフトウェアをインストールする場合よりも同一ファイルのインストールの重複が少なくなる一又は複数のソフトウェアを特定し、
特定した前記一又は複数のソフトウェアのインストールを実行する、
処理を実行させるインストール制御プログラム。
【請求項２】
前記記憶部は、前記インストール候補の複数のソフトウェアおよび前記インストール実績がある複数のソフトウェアの特徴を示すソフトウェア定義情報を記憶しており、
前記推定では、前記ソフトウェア定義情報を参照し、前記インストール実績がある複数のソフトウェアのうち、前記インストール候補の複数のソフトウェアと特徴が類似する一又は複数のソフトウェアを、前記インストール候補の複数のソフトウェアと関連するソフトウェアに決定する、
請求項１記載のインストール制御プログラム。
【請求項３】
前記ソフトウェア定義情報には、前記インストール候補の複数のソフトウェアおよび前記インストール実績がある複数のソフトウェアそれぞれについて、対応するソフトウェア製品名とインストールの要否判定に使用するファイル名とが設定されており、
前記推定では、前記インストール実績がある複数のソフトウェアのうち、前記インストール候補の複数のソフトウェアと、対応するソフトウェア製品名とインストールの要否判定に使用するファイル名とが共通の一又は複数のソフトウェアを、前記インストール候補の複数のソフトウェアと関連するソフトウェアに決定する、
請求項２記載のインストール制御プログラム。
【請求項４】
前記推定では、前記インストール候補の複数のソフトウェアと関連するソフトウェアが複数ある場合、該ソフトウェアそれぞれにおいて共通にインストールされた共通インストールファイルを、前記インストール候補の複数のソフトウェアのインストール時にインストールされるファイルとして推定する、
請求項１ないし３のいずれかに記載のインストール制御プログラム。
【請求項５】
前記記憶部は、複数のファイルと、前記コンピュータの動作期間に関するカテゴリごとに、対応する前記動作期間内での前記複数のファイルの使用の有無を示すファイル使用情報を記憶しており、
前記コンピュータに、さらに、
前記記憶部を参照し、前記インストール候補の複数のソフトウェアそれぞれについて、該ソフトウェアと関連するソフトウェアのインストール時にインストールされたファイルの識別情報に基づいて、前記インストール候補の複数のソフトウェアのインストール時にインストールされる可能性のあるファイルを決定し、
前記特定では、前記ファイル使用情報を参照し、インストール時にインストールされる可能性のあるファイルが、現在の日時に応じた前記カテゴリに対応する前記動作期間内に使用されるインストール候補のソフトウェアを特定する、
請求項１ないし４のいずれかに記載のインストール制御プログラム。
【請求項６】
特定した前記一又は複数のソフトウェアのインストール後、前記インストール候補の複数のソフトウェアそれぞれのインストール実績に基づく、前記インストール候補の複数のソフトウェアそれぞれのインストール時にインストールされたファイルの識別情報を取得し、
前記インストール候補の複数のソフトウェアそれぞれのインストール時にインストールされたファイルのうち、特定した前記一又は複数のソフトウェアのインストール時にインストールされていない未インストールファイルがある場合、前記インストール候補の複数のソフトウェアのうちの、インストール時に前記未インストールファイルをインストールするソフトウェアを、追加インストール対象として特定し、
前記追加インストール対象のソフトウェアのインストールを実行する、
請求項１ないし５のいずれかに記載のインストール制御プログラム。
【請求項７】
コンピュータが、
インストール候補の複数のソフトウェアの識別情報を取得し、
インストール実績がある複数のソフトウェアそれぞれのインストール時にインストールされたファイルの識別情報を、該複数のソフトウェアそれぞれの識別情報に対応付けて記憶する記憶部を参照して、前記インストール候補の複数のソフトウェアそれぞれについて、該ソフトウェアに関連するソフトウェアのインストール時にインストールされたファイルの識別情報に基づき、前記インストール候補の複数のソフトウェアのインストール時にインストールされる複数のファイルを推定し、
前記インストール候補の複数のソフトウェアのうち、推定した前記複数のファイルを含み、かつ、前記インストール候補の複数のソフトウェアをインストールする場合よりも同一ファイルのインストールの重複が少なくなる一又は複数のソフトウェアを特定し、
特定した前記一又は複数のソフトウェアのインストールを実行する、
インストール制御方法。
【請求項８】
インストール実績がある複数のソフトウェアそれぞれのインストール時にインストールされたファイルの識別情報を、該複数のソフトウェアそれぞれの識別情報に対応付けて記憶する記憶部と、
インストール候補の複数のソフトウェアの識別情報を取得し、前記記憶部を参照して、前記インストール候補の複数のソフトウェアそれぞれについて、該ソフトウェアに関連するソフトウェアのインストール時にインストールされたファイルの識別情報に基づき、前記インストール候補の複数のソフトウェアのインストール時にインストールされる複数のファイルを推定し、前記インストール候補の複数のソフトウェアのうち、推定した前記複数のファイルを含み、かつ、前記インストール候補の複数のソフトウェアをインストールする場合よりも同一ファイルのインストールの重複が少なくなる一又は複数のソフトウェアを特定し、
特定した前記一又は複数のソフトウェアのインストールを実行する、処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インストール制御プログラム、インストール制御方法、および情報処理装置に関する。
【背景技術】
【０００２】
コンピュータで実行されているソフトウェアは、修正用のソフトウェアを用いて修正することができる。修正用のソフトウェアは、例えばパッチファイルとして、ソフトウェアの開発元または販売元により公開される。
【０００３】
パッチファイルには、ソフトウェアの修正に用いるデータやプログラムが含まれる。例えばソフトウェアにバグ（プログラム上の欠陥）がある場合、パッチファイルのインストール処理を行うことで、欠陥のあるプログラムファイルが、欠陥を修正したプログラムファイルに更新される。なおパッチファイルは、単に「パッチ」と呼ばれることもある。また、パッチをインストールしてプログラムの欠陥を修正する処理は、一般のソフトウェアのインストールと区別して、ソフトウェアへのパッチの適用とも呼ばれる。
【０００４】
コンピュータで実行されているソフトウェアへのパッチの適用は、そのソフトウェアを用いた業務を停止させて実行される。そのため多くの場合は、業務時間を避けてパッチが適用される。例えば、コンピュータのシャットダウン時に、そのコンピュータ内のソフトウェアに対するパッチが適用される。
【０００５】
パッチ適用に関する技術としては、例えば顧客システムの稼動環境に応じたパッチ情報を提供し、さらに適用する時間帯を提供することで、顧客の負担を低減する予防保守装置がある。またシステムに適用可能な多数のパッチの中からユーザが本当に適用したいパッチだけを簡単に自動で取捨選択できるようにする適用パッチ選別装置もある。さらに、マシンの状況に応じてパッチの適用方法や適用時期を柔軟に変化させ、対話形式などのパッチも自動で適用するパッチ適用システムもある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１２８５８１号公報
【特許文献２】国際公開第２００７／１０５２７４号
【特許文献３】特開２０１０−２５０７４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ソフトウェアのバグには、例えばセキュリティ上の欠陥（セキュリティホール）も含まれる。コンピュータを安全に運用するには、セキュリティ上の欠陥を修正するパッチ（セキュリティパッチ）を、そのパッチの公開後、できるだけはやく適用するのが適切である。すなわち、セキュリティパッチのような重要なパッチは、業務中であっても、その業務を停止して、すぐに適用するのが望ましい。その一方、近年は、セキュリティパッチのような重要度の高いパッチの公開数が増大化すると共に、１つのパッチのサイズが肥大化している。そのため、重要度の高いすべてのパッチを適用するのに何時間もかかる場合がある。このようなパッチの適用を、業務を停止して実行すると、パッチの適用による業務の停止期間が長期化し、業務の遂行に多大な支障がでる。
【０００８】
なお、パッチの適用に焦点を当てて説明したが、パッチに限らず、コンピュータにソフトウェアをインストールする際、関連する実行中のソフトウェアの使用を停止しなければならないことがある。インストールするソフトウェアが複数であれば、インストール時間が長期化し、実行中のソフトウェアを用いた業務の停止期間も長期化する。
【０００９】
１つの側面では、本件は、ソフトウェアのインストール時間を短縮することを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、コンピュータに、以下の処理を実行させるインストール制御プログラムが提供される。
コンピュータは、インストール候補の複数のソフトウェアの識別情報を取得する。次にコンピュータは、インストール実績がある複数のソフトウェアそれぞれのインストール時にインストールされたファイルの識別情報を、該複数のソフトウェアそれぞれの識別情報に対応付けて記憶する記憶部を参照して、インストール候補の複数のソフトウェアそれぞれについて、該ソフトウェアに関連するソフトウェアのインストール時にインストールされたファイルの識別情報に基づき、インストール候補の複数のソフトウェアのインストール時にインストールされる複数のファイルを推定する。次にコンピュータは、インストール候補の複数のソフトウェアのうち、推定した複数のファイルを含み、かつ、インストール候補の複数のソフトウェアをインストールする場合よりも同一ファイルのインストールの重複が少なくなる一又は複数のソフトウェアを特定する。そしてコンピュータは、特定した一又は複数のソフトウェアのインストールを実行する。
【発明の効果】
【００１１】
１態様によれば、ソフトウェアのインストール時間が短縮される。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係る情報処理装置の機能構成例を示す図である。
【図２】第２の実施の形態のシステム構成例を示す図である。
【図３】端末装置のハードウェアの一構成例を示す図である。
【図４】第２の実施の形態の各装置の機能の一例を示すブロック図である。
【図５】ソフトウェア辞書の一例を示す図である。
【図６】パッチ構成ファイル一覧の一例を示す図である。
【図７】類似パッチ構成ファイル一覧の一例を示す図である。
【図８】適用候補パッチ構成ファイル一覧の一例を示す図である。
【図９】ファイル使用状況一覧の一例を示す図である。
【図１０】新規パッチ適用結果一覧の一例を示す図である。
【図１１】新規公開パッチ適用管理表の一例を示す図である。
【図１２】１段階目のパッチ適用処理の手順を示すシーケンス図である。
【図１３】適用パッチ決定処理の手順の一例を示すフローチャートの前半である。
【図１４】第１の適用パッチ決定方法による適用パッチの決定例を示す図である。
【図１５】適用パッチ決定処理の手順の一例を示すフローチャートの後半である。
【図１６】第２の適用パッチ決定方法による適用パッチの決定例を示す図である。
【図１７】類似パッチ構成ファイル一覧生成処理の手順の一例を示すフローチャートである。
【図１８】適用候補パッチ構成ファイル一覧の生成処理の手順の一例を示すフローチャートである。
【図１９】２段階目のパッチ適用処理の手順の一例を示すシーケンス図である。
【図２０】追加適用パッチ決定処理の手順の一例を示すフローチャートである。
【図２１】追加適用パッチの決定例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず第１の実施の形態について説明する。
【００１４】
図１は、第１の実施の形態に係る情報処理装置の機能構成例を示す図である。情報処理装置１０は、記憶部１１と処理部１２とを有する。記憶部１１は、例えば情報処理装置１０が有するメモリ、またはストレージ装置である。処理部１２は、例えば情報処理装置１０が有するプロセッサ、または演算回路である。
【００１５】
記憶部１１は、例えばソフトウェア定義情報１１ａとインストールファイル情報１１ｂとを記憶する。
ソフトウェア定義情報１１ａは、ソフトウェアの識別情報に対応付けて、そのソフトウェアの特徴を示す情報が設定されている。例えば、ソフトウェアの特徴として、そのソフトウェアが、他のソフトウェアの修正版または改良版のとき、修正または改良の対象となる他のソフトウェアの製品名が、ソフトウェア定義に設定される。またソフトウェアのインストールの要否の判断に使用するファイルのファイル名が、ソフトウェア定義に設定される。
【００１６】
インストールファイル情報１１ｂには、インストール実績のある複数の第２ソフトウェアそれぞれのインストール時にインストールされたファイルの識別情報が、複数の第２ソフトウェアそれぞれの識別情報に対応付けて設定される。
【００１７】
処理部１２は、記憶部１１に記憶された情報を参照して、ソフトウェアのインストール処理を効率的に実行する。例えば処理部１２は、インストール候補である複数の第１ソフトウェアの識別情報を含むインストール候補ソフトウェア情報１を取得する。インストール候補ソフトウェア情報１は、例えば情報処理装置１０にネットワークを介して接続されたサーバ３から入力される。
【００１８】
処理部１２は、インストール候補ソフトウェア情報１を取得すると、記憶部１１を参照し、複数の第１ソフトウェアそれぞれについて、第１ソフトウェアのインストール時にインストールされるファイルを推定する。処理部１２は、複数の第１ソフトウェアそれぞれについて推定した結果を含むインストール推定ファイル情報２を生成する。
【００１９】
この推定処理は、第１ソフトウェアと関連する第２ソフトウェアのインストール時にインストールされたファイルの識別情報に基づいて行われる。第１ソフトウェアと関連する第２ソフトウェアは、例えばソフトウェア定義情報１１ａに基づいて判断できる。例えば処理部１２は、ソフトウェア定義情報１１ａを参照し、複数の第２ソフトウェアのうち、第１ソフトウェアと特徴が類似する一又は複数の第２ソフトウェアを、第１ソフトウェアと関連する第２ソフトウェアに決定する。図１の例では、処理部１２は、複数の第２ソフトウェアのうち、第１ソフトウェアと、対応するソフトウェア製品名とインストールの要否判定に使用するファイル名とが共通の一又は複数の第２ソフトウェアを、ソフトウェア定義情報１１ａから検索する。そして処理部１２は、検索によって該当した第２ソフトウェアを、その第１ソフトウェアと関連する第２ソフトウェアに決定する。
【００２０】
次に処理部１２は、インストール候補の複数の第１ソフトウェアのうち、推定した複数のファイルを含み、かつ、複数の第１ソフトウェアをインストールする場合よりも同一ファイルのインストールの重複が少なくなる一又は複数のソフトウェアを特定する。例えば、処理部１２は、インストール推定ファイル情報２に基づいて、複数の第１ソフトウェアそれぞれについて推定したファイルの重複の有無を判断する。そして処理部１２は、複数の第１ソフトウェアそれぞれについて推定したファイルに重複があるとき、所定の条件を満たす、複数の第１ソフトウェアのうちの一部である一又は複数のインストール対象第１ソフトウェアを特定する。所定の条件は、一又は複数のインストール対象第１ソフトウェアそれぞれについて推定したファイルを含む第１集合が、複数の第１ソフトウェアそれぞれについて推定したファイルを含む第２集合と等しくなるという条件である。
【００２１】
処理部１２は、特定した一又は複数のインストール対象第１ソフトウェアのインストールを実行する。例えば処理部１２は、一又は複数のインストール対象第１ソフトウェアそれぞれに対応するインストール用ファイル４，５を、サーバ３から取得する。そして処理部１２は、インストール用ファイル４，５を用いて、一又は複数のインストール対象第１ソフトウェアのインストール処理を実行する。
【００２２】
このような情報処理装置１０によれば、インストールされるファイルが他の第１ソフトウェアと重複する第１ソフトウェアについて、インストール処理が省略される。その結果、インストールするソフトウェアの総数が少なくなり、インストール時間が短縮される。
【００２３】
図１の例では、インストール候補ソフトウェア情報１に、複数の第１ソフトウェアの識別情報として「ＳＷ＃１１，ＳＷ＃１２，ＳＷ＃１３，ＳＷ＃１４」が設定されている。ソフトウェア定義情報１１ａを参照すると、識別情報「ＳＷ＃１１」の第１ソフトウェアは、識別情報「ＳＷ＃０１」の第２ソフトウェアと、対象とする製品名と、インストールの条件の判定に使用するファイルが同じである。したがって、識別情報「ＳＷ＃１１」の第１ソフトウェアは、識別情報「ＳＷ＃０１」の第２ソフトウェアと関連する。インストールファイル情報１１ｂを参照すると、識別情報「ＳＷ＃０１」の第２ソフトウェアのインストール時には、「ｆｉｌｅ−ａ，ｆｉｌｅ−ｂ，ｆｉｌｅ−ｃ，ｆｉｌｅ−ｄ」がインストールされたことが分かる。そこで識別情報「ＳＷ＃１１」の第１ソフトウェアのインストール時にも「ｆｉｌｅ−ａ，ｆｉｌｅ−ｂ，ｆｉｌｅ−ｃ，ｆｉｌｅ−ｄ」がインストールされるものと推定される。同様にして、他の第１ソフトウェア（識別情報「ＳＷ＃１２，ＳＷ＃１３，ＳＷ＃１４」）についても、インストールされるファイルが推定される。そして推定結果から、インストール推定ファイル情報２が生成される。
【００２４】
インストール推定ファイル情報２を参照すると、識別情報「ＳＷ＃１２」の第１ソフトウェアについて推定されたファイルは、「ｆｉｌｅ−ａ，ｆｉｌｅ−ｃ」である。これらのファイルは、識別情報「ＳＷ＃１１」の第１ソフトウェアについて推定されたファイルと重複している。すなわち、識別情報「ＳＷ＃１２」の第１ソフトウェアをインストールしなくても、識別情報「ＳＷ＃１１」の第１ソフトウェアをインストールすれば、識別情報「ＳＷ＃１２」の第１ソフトウェアについて推定されたファイルはインストールされる。したがって、識別情報「ＳＷ＃１２」の第１ソフトウェアのインストールは、省略してもよいことが分かる。
【００２５】
同様に、識別情報「ＳＷ＃１３」の第１ソフトウェアについて推定されたファイルは、「ｆｉｌｅ−ｃ，ｆｉｌｅ−ｄ」であり、これらのファイルは、識別情報「ＳＷ＃１１」の第１ソフトウェアについて推定されたファイルと重複している。したがって、識別情報「ＳＷ＃１２」の第１ソフトウェアのインストールは、省略可能である。
【００２６】
識別情報「ＳＷ＃１４」の第１ソフトウェアについて推定されたファイルは、「ｆｉｌｅ−ｃ，ｆｉｌｅ−ｐ，ｆｉｌｅ−ｒ」である。これらのファイルのうち「ｆｉｌｅ−ｐ，ｆｉｌｅ−ｒ」は、識別情報「ＳＷ＃１１」の第１ソフトウェアについて推定されたファイルに含まれない。したがって、識別情報「ＳＷ＃１４」の第１ソフトウェアのインストールは、省略することはできない。
【００２７】
このように複数の第１ソフトウェアの一部について、インストールを省略可能である。インストールを省略できない一又は複数の第１ソフトウェアが、インストール対象第１ソフトウェアとなる。最終的には、インストール対象第１ソフトウェアそれぞれについて推定したファイルを含む第１集合が、複数の第１ソフトウェアそれぞれについて推定したファイルを含む第２集合と等しくなる、最も少ないインストール対象第１ソフトウェアが決定される。図１の例では、識別情報「ＳＷ＃１１」、「ＳＷ＃１４」の第１ソフトウェアが、インストール対象第１ソフトウェアとなる。
【００２８】
そして識別情報「ＳＷ＃１１」、「ＳＷ＃１４」の第１ソフトウェアそれぞれに対応するインストール用ファイル４，５がサーバ３から取得され、これらの第１ソフトウェアが情報処理装置１０にインストールされる。このように、図１の例では、インストール候補ソフトウェア情報１に、４つの第１ソフトウェアの識別情報が示されているものの、インストールするソフトウェアは２つで済んでいる。４つの第１ソフトウェアそれぞれのインストール時間が同程度であれば、４つの第１ソフトウェアをインストールする場合に比べて、インストール時間が半分で済む。したがって、インストール時間が短縮されている。
【００２９】
なお、インストールされるファイルの推定では、第１ソフトウェアと関連する第２ソフトウェアが複数ある場合がある。この場合、処理部１２は、例えば関連する第２ソフトウェアそれぞれにおいて共通にインストールされた共通インストールファイルを、第１ソフトウェアのインストール時にインストールされるファイルとして推定する。これにより、確実にインストールされると思われるファイルを推定することができる。
【００３０】
インストールされるファイルの推定では、第１ソフトウェアと関連する第２ソフトウェアが複数ある場合において、関連する第２ソフトウェアの一部でのみインストールされたファイルも存在し得る。このようなファイルは、第１ソフトウェアのインストール時にもインストールされる可能性がある。第１ソフトウェアにおいて、このようなインストールされる可能性のあるファイルがある場合、処理部１２は、そのファイルの使用状況に応じて、その第１ソフトウェアをインストールするか否かを決定する。この場合、記憶部１１に、複数のファイルと、コンピュータの動作期間に関するカテゴリごとに、対応する動作期間内での複数のファイルの使用の有無を示すファイル使用情報を、予め格納する。処理部１２は、記憶部１１を参照し、複数の第１ソフトウェアそれぞれについて、第１ソフトウェアと関連する第２ソフトウェアのインストール時にインストールされたファイルの識別情報に基づいて、インストールされる可能性のあるファイルを決定する。処理部１２は、ファイル使用情報を参照し、第１ソフトウェアのインストール時にインストールされる可能性のあるファイルが、現在の日時に応じたカテゴリに対応する動作期間内に使用されるかどうかを判断する。処理部１２は、第１ソフトウェアのインストール時にインストールされる可能性のあるファイルが該当期間内に使用される場合、その第１ソフトウェアを、一又は複数のインストール対象第１ソフトウェアに含める。
【００３１】
これにより、近いうちに使用されるファイルがインストールされる可能性がある第１ソフトウェアについては即時にインストールされる。それに対して、インストールされる可能性があるファイルがすぐには使用されない第１ソフトウェアについては、インストール対象から除外される。その結果、急いでインストールせずに済む第１ソフトウェアをインストール対象から除外することができ、インストール時間を短縮できる。
【００３２】
なお、上記の例では、第１ソフトウェアのインストール時にインストールされるファイルの推定結果に基づいて、インストールするソフトウェアを決定しているが、推定結果が誤っている場合もあり得る。そこで処理部１２は、実際に第１ソフトウェアにインストールした後に、推定結果に誤りが見つかった場合、実際にインストールされたファイルに基づいて、追加でインストールする第１ソフトウェアを決定してもよい。
【００３３】
例えば、処理部１２は、特定したインストール対象第１ソフトウェアのインストール後、複数の第１ソフトウェアそれぞれのインストール実績に基づく、複数の第１ソフトウェアそれぞれのインストール時にインストールされたファイルの識別情報を取得する。次に処理部１２は、複数の第１ソフトウェアそれぞれのインストール時にインストールされたファイルのうち、インストール対象第１ソフトウェアのインストール時にインストールされていない未インストールファイルの有無を確認する。未インストールファイルがある場合、処理部１２は、複数の第１ソフトウェアのうちの、インストール時に未インストールファイルをインストールする未インストール第１ソフトウェアを、追加インストール対象として特定する。そして処理部１２は、追加インストール対象の未インストール第１ソフトウェアのインストールを実行する。
【００３４】
これにより、インストールされるファイルの推定結果に誤りがあっても、インストールすべき第１ソフトウェアがインストール対象から漏れてしまうことを抑止できる。
なお、インストール候補として指定されるソフトウェアは、例えば既に情報処理装置１０にインストールされているソフトウェアのパッチである。第１の実施の形態に示した処理でパッチを適用すれば、多数のパッチが同時に公開された場合において、それらのパッチの適用に要する時間を短縮することができる。すなわち、パッチ適用先のソフトウェアを用いた業務の停止期間が短くて済む。
【００３５】
またインストール候補として指定されるソフトウェアが、例えば既に情報処理装置１０にインストールされているソフトウェアの次のバージョンのソフトウェアの場合もある。バージョンアップをする場合も、旧バージョンのソフトウェアを用いた業務は停止される。関連性の高い複数のソフトウェアの場合、それらのアップデート版のソフトウェアが同時に配布される場合もある。このような場合も、第１の実施の形態に示した処理により、アップデート版のソフトウェアのインストール時間を短縮することができる。
【００３６】
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、セキュリティパッチなどのパッチの適用時間を短縮するシステムである。
【００３７】
図２は、第２の実施の形態のシステム構成例を示す図である。ソフトウェア辞書配信センタ３１のソフトウェア辞書配信サーバ３００と企業３３内の管理サーバ２００とが、ネットワーク３２を介して接続されている。ソフトウェア辞書配信サーバ３００は、企業３３が使用するソフトウェアについての情報を提供するコンピュータである。管理サーバ２００は、企業３３内のコンピュータで使用するソフトウェアを管理するコンピュータである。
【００３８】
管理サーバ２００は、企業内のネットワーク２０を介して複数の端末装置１００，１００ａ，・・・に接続されている。端末装置１００，１００ａ，・・・は、様々なソフトウェアを用いて業務を実行するコンピュータである。
【００３９】
このようなシステムにおいて、端末装置１００，１００ａ，・・・にインストールされているソフトウェアの販売元から、そのソフトウェアのパッチが配布される場合がある。ソフトウェアのパッチは、企業３３のシステム管理の担当者により、管理サーバ２００に入力される。そして管理サーバ２００の制御により、各端末装置１００，１００ａ，・・・に対してパッチが適用される。
【００４０】
各端末装置１００，１００ａ，・・・は、管理サーバ２００を介してパッチファイル（ソフトウェア修正用のデータおよびプログラムを含むファイル）を取得して、インストールされているソフトウェアにパッチを適用する。その際、各端末装置１００，１００ａ，・・・は、複数のパッチファイルのうち、所定の条件を満たすパッチファイルについては、適用対象から除外する。例えば各端末装置１００，１００ａ，・・・は、パッチの適用により更新されるすべてのファイルが、他のパッチの適用によって更新される場合、ファイルを重複して更新する理由はないため、該当パッチを適用対象から除外する。このように各端末装置１００，１００ａ，・・・は、少なくともすぐに適用しなくてもよいパッチについて適用対象から除外することで、パッチの適用時間の短縮を図る。
【００４１】
パッチの適用時間の短縮のための適用パッチ決定方法には、以下の３つの方法が含まれる。
［第１の適用パッチ決定方法］複数の端末装置１００，１００ａ，・・・それぞれは、新規に公開されたパッチの構成ファイルを推定する。そして複数の端末装置１００，１００ａ，・・・それぞれが、端末装置自身に適用対象のソフトウェアがインストールされているパッチの構成ファイルすべてを包含する最小限のパッチを適用する。これにより、適用するパッチ数を減らすことができる。
【００４２】
［第２の適用パッチ決定方法］複数の端末装置１００，１００ａ，・・・それぞれは、ファイルの利用履歴を採取する。そして複数の端末装置１００，１００ａ，・・・それぞれは、新規に公開されたパッチの構成ファイルであるとは判定できないものの、構成ファイルの可能性があるファイルについては、利用状況に応じて、そのファイルを含むパッチの適用の有無を判断する。例えば複数の端末装置１００，１００ａ，・・・それぞれは、利用されていないファイルを構成ファイルに含むパッチは適用しないか、もしくは後で（例えばシャットダウン時）適用する。
【００４３】
［第３の適用パッチ決定方法］複数の端末装置１００，１００ａ，・・・それぞれは、実際にパッチを適用後、第１・第２の適用パッチ決定方法によるパッチ適用で適用漏れが発生した場合は、実際にセキュリティパッチを適用した結果により、適用漏れとなったパッチを特定する。そして複数の端末装置１００，１００ａ，・・・それぞれは、適用漏れとなったパッチの追加適用を行う。
【００４４】
図３は、端末装置のハードウェアの一構成例を示す図である。端末装置１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００４５】
メモリ１０２は、端末装置１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に利用する各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００４６】
バス１０９に接続されている周辺機器としては、ストレージ装置１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびネットワークインタフェース１０８がある。
【００４７】
ストレージ装置１０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置１０３は、コンピュータの補助記憶装置として使用される。ストレージ装置１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置１０３としては、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）を使用することができる。
【００４８】
グラフィック処理装置１０４には、モニタ２１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２１の画面に表示させる。モニタ２１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００４９】
入力インタフェース１０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース１０５は、キーボード２２やマウス２３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス２３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００５０】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２４に記録されたデータの読み取りを行う。光ディスク２４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００５１】
機器接続インタフェース１０７は、端末装置１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００５２】
ネットワークインタフェース１０８は、ネットワーク２０に接続されている。ネットワークインタフェース１０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００５３】
以上のようなハードウェア構成によって、第２の実施の形態の端末装置１００の処理機能を実現することができる。なお図２に示した他の端末装置１００ａ，・・・、管理サーバ２００、およびソフトウェア辞書配信サーバ３００も、端末装置１００と同様のハードウェアによって実現することができる。また、第１の実施の形態に示した情報処理装置１０も、図３に示した端末装置１００と同様のハードウェアにより実現することができる。
【００５４】
端末装置１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。端末装置１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、端末装置１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。また端末装置１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００５５】
図４は、第２の実施の形態の各装置の機能の一例を示すブロック図である。ソフトウェア辞書配信サーバ３００は、ソフトウェア辞書３１１を記憶する記憶部３１０を有している。記憶部３１０は、例えばソフトウェア辞書配信サーバ３００が有するメモリまたはストレージ装置である。ソフトウェア辞書３１１は、複数のソフトウェアそれぞれについての様々な情報が記録されたデータベースである。
【００５６】
管理サーバ２００は、記憶部２１０、ソフトウェア辞書取得部２２０、およびパッチ適用管理部２３０を有する。記憶部２１０は、例えば管理サーバ２００が有するメモリまたはストレージ装置である。ソフトウェア辞書取得部２２０とパッチ適用管理部２３０とは、例えば管理サーバ２００が有するプロセッサが実行する機能である。
【００５７】
記憶部２１０は、ソフトウェア辞書２１１、パッチ構成ファイル一覧２１２、新規公開パッチ適用管理表２１３、新規パッチ適用結果一覧２１４、および複数のパッチファイル２１５ａ，２１５ｂ，・・・を記憶する。ソフトウェア辞書２１１は、ソフトウェア辞書配信サーバ３００が有するソフトウェア辞書３１１と同じ内容のデータベースである。パッチ構成ファイル一覧２１２は、複数の端末装置１００，１００ａ，・・・のいずれかに適用したパッチについて、そのパッチを適用した際にインストールされたファイルの一覧である。新規公開パッチ適用管理表２１３は、新たに配布されたパッチ（新規公開パッチ）を適用先の端末装置を管理するデータテーブルである。新規パッチ適用結果一覧２１４は、新規公開パッチを、複数の端末装置１００，１００ａ，・・・のいずれかに適用した際にインストールされたファイルの一覧である。複数のパッチファイル２１５ａ，２１５ｂ，・・・それぞれは、パッチのプログラムやデータを含むファイルである。
【００５８】
ソフトウェア辞書取得部２２０は、ソフトウェア辞書配信サーバ３００からソフトウェア辞書３１１を取得し、内部のソフトウェア辞書２１１として記憶部２１０に格納する。
パッチ適用管理部２３０は、複数の端末装置１００，１００ａ，・・・それぞれに対する新規公開パッチの適用を指示する。またパッチ適用管理部２３０は、複数の端末装置１００，１００ａ，・・・それぞれが新規公開パッチを適用するために利用する情報を、複数の端末装置１００，１００ａ，・・・それぞれに送信する。さらにパッチ適用管理部２３０は、複数の端末装置１００，１００ａ，・・・それぞれから、適用したパッチの適用結果に関する情報を収集し、複数の端末装置１００，１００ａ，・・・それぞれにパッチの適用結果を通知する。
【００５９】
端末装置１００は、記憶部１１０、パッチ情報収集部１２０、適用パッチ選択部１３０、およびパッチ適用部１４０を有する。記憶部１１０は、例えば端末装置１００が有するメモリ１０２またはストレージ装置１０３である。パッチ情報収集部１２０、適用パッチ選択部１３０、およびパッチ適用部１４０は、例えば端末装置１００が有するプロセッサ１０１が実行する機能である。
【００６０】
記憶部１１０は、ソフトウェア辞書１１１、パッチ構成ファイル一覧１１２、類似パッチ構成ファイル一覧１１３、適用候補パッチ構成ファイル一覧１１４、ファイル使用状況一覧１１５、新規パッチ適用結果一覧１１６、およびその他の複数のファイル１１７ａ，１１７ｂ，・・・を記憶する。ソフトウェア辞書１１１は、ソフトウェア辞書配信サーバ３００が有するソフトウェア辞書１１１と同じ内容のデータベースである。パッチ構成ファイル一覧１１２は、管理サーバ２００が有するパッチ構成ファイル一覧１１２と同じ内容のデータテーブルである。類似パッチ構成ファイル一覧１１３は、類似関係にあるパッチをグループ化して得られるパッチ群について、属するパッチの適用時にインストールされたファイルの情報を示すデータテーブルである。適用候補パッチ構成ファイル一覧１１４は、新規公開パッチの適用によってインストールされることが予測されるファイルの一覧である。ファイル使用状況一覧１１５は、端末装置１００における複数のファイル１１７ａ，１１７ｂ，・・・それぞれの使用状況を示すデータテーブルである。新規パッチ適用結果一覧１１６は、管理サーバ２００に格納されている新規パッチ適用結果一覧２１４と同様に、新規公開パッチを、複数の端末装置１００，１００ａ，・・・のいずれかに適用した際にインストールされたファイルの一覧である。なお新規パッチ適用結果一覧１１６は、管理サーバ２００に格納されている新規パッチ適用結果一覧２１４と異なり、新規公開パッチを適用したのが、端末装置１００自身なのか、別の端末装置１００ａ，・・・なのかに関する情報を含んでいる。複数のファイル１１７ａ，１１７ｂ，・・・は、記憶部１１０にインストールされたソフトウェアで使用するファイルである。ソフトウェアにパッチが適用される場合、例えばそのソフトウェア用の新たなファイルがインストールされる。またソフトウェアへのパッチの適用により、そのソフトウェアが使用していたファイルが、バージョンの新しい同名のファイルに置き換えられる場合もある。
【００６１】
なお、図４に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図４に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【００６２】
次に各装置の記憶部で記憶される情報について詳細に説明する。以下の説明では、まず端末装置１００の記憶部１１０で記憶される情報を詳細に説明し、その後、管理サーバ２００の記憶部２１０で記憶される情報のうち、端末装置１００の記憶部１１０に記憶されていない情報について説明する。
【００６３】
図５は、ソフトウェア辞書の一例を示す図である。ソフトウェア辞書１１１には、ソフトウェアごとに生成されたソフトウェア定義情報１１１ａ，１１１ｂ，・・・が含まれる。１つのソフトウェアに対して、一又は複数のソフトウェア定義情報が生成される。例えば多数の機能それぞれに対応するコンポーネントを含むソフトウェアについては、コンポーネントごとにソフトウェア定義情報が生成される場合がある。
【００６４】
ソフトウェア辞書１１１に含まれる複数のソフトウェア定義情報１１１ａ，１１１ｂ，・・・それぞれには、定義種別、コード、名称、ファイル条件、レジストリ条件、判定論理、およびパッチダウンロード先の欄が設けられている。
【００６５】
定義種別の欄には、登録されているレコードで定義されている情報の種別（定義種別）が設定される。定義種別としては、内部、監査、適用などがある。定義種別「内部」は、ソフトウェア製品、ソフトウェアを構成するコンポーネント、ソフトウェアに含まれるファイルなどについての定義である。定義種別「監査」は、「内部」の定義に基づいて、パッチが適用済みか否かの判定論理に関する定義である。定義種別「適用」は、「監査」の定義に基づいて、未適用と判定されたパッチを適用する際に使用する情報に関する定義である。
【００６６】
コードの欄には、レコードごとの定義の識別コードが設定される。名称の欄には、定義の名称が設定される。ファイル条件の欄には、定義を適用するためのファイルに関する条件が設定される。レジストリ条件の欄には、定義を適用するためのレジストリに関する条件が設定される。判定論理の欄には、パッチが適用済みか否かの判定の論理式が設定される。パッチダウンロード先の欄には、パッチの適用に関する定義におけるパッチのダウンロードする際のアクセス先（パッチファイルの格納場所）が設定される。
【００６７】
例えばソフトウェア定義情報１１１ａは、「Ｗｉｎ  ７」という６４ビット版のＯＳで動作する「コンポα」というコンポーネントについての、「パッチＡ」というパッチの適用に関する定義情報が設定されている。ソフトウェア定義情報１１１ａには、ファイル「ｆｌａｓｈ．ｏｃｘ」のバージョンが「２２．０．０．２０９」以上の場合、該当コンポーネントに「パッチＡ」が適用済みであると定義されている。すなわち、「ｆｌａｓｈ．ｏｃｘ」のバージョンが「２２．０．０．２０９」未満であれば、「パッチＡ」は未適用である。
【００６８】
そこで定義種別「監査」において、「パッチＡ」が未適用であることの判定論理「（Ｐ１  ＡＮＤ  Ｉ１）  ＡＮＤ  （Ｅ１  ＡＮＤ  （ＮＯＴ  Ｆ１））」が定義されている。この判定論理は、定義「Ｐ１」と定義「Ｉ１」が共に満足すること、および定義「Ｅ１」は満足するが定義「Ｆ１」は満足しないことの両方が成立したときに、「パッチＡ」が未適用であることが定義されている。
【００６９】
定義種別「適用」では、「パッチＡ」を適用するための条件を示す判定論理と、パッチをダウンロードするためのアクセス先が定義されている。ソフトウェア定義情報１１１ａの例では、定義種別「適用」の判定論理は、定義種別「監査」の判定論理と同じとなっている。
【００７０】
このようなソフトウェア定義情報に基づいて、複数の端末装置１００，１００ａ，・・・それぞれにおいて、ソフトウェアに対するパッチを適用するか否かを判定することができる。
【００７１】
図６は、パッチ構成ファイル一覧の一例を示す図である。パッチ構成ファイル一覧１１２には、適用済みパッチとインストールされたファイルの欄が設けられている。適用済みパッチの欄には、複数の端末装置１００，１００ａ，・・・のいずれかに適用されたパッチの名称が設定される。インストールされたファイルの欄には、複数の端末装置１００，１００ａ，・・・のいずれかに適用されたパッチの適用時にインストールされたファイルのファイル名が設定される。なお、パッチ適用時にインストールされたファイルのファイル名は、例えば、パッチ適用部１４０が、パッチ適用プロセスによるファイルアクセスのイベントをフックすることにより取得する。
【００７２】
図７は、類似パッチ構成ファイル一覧の一例を示す図である。類似パッチ構成ファイル一覧１１３には、類似パッチ群名、適用済みパッチ、共通インストールファイル、および一部パッチインストールファイルの欄が設けられている。類似パッチ群名の欄には、類似するパッチの集合（類似パッチ群）の名称が設定される。パッチが類似するか否かは、例えばソフトウェア辞書内の以下の条件から判定される。
・適用対象製品が同じであること。
・パッチの未適用／適用済を判定するために参照するファイルが同じであること。
【００７３】
これらの２つの条件が共通のパッチの集合が、１つの類似パッチ群に纏められている。
適用済みパッチの欄には、対応するパッチ群に属する、複数の端末装置１００，１００ａ，・・・のいずれかに適用された適用済みパッチの名称が設定される。共通インストールファイルの欄には、パッチ群に属するすべての適用済みパッチにおいて、適用時にインストールされたファイルのファイル名が設定される。一部パッチインストールファイルの欄には、パッチ群に属する一部の適用済みパッチにおいて、適用時にインストールされたファイルのファイル名が設定される。
【００７４】
図８は、適用候補パッチ構成ファイル一覧の一例を示す図である。適用候補パッチ構成ファイル一覧１１４には、適用候補パッチ、インストール推定ファイル、およびインストール可能性ありファイルの欄が設けられている。
【００７５】
適用候補パッチの欄には、適用対象のソフトウェアが端末装置１００にインストールされている新規公開パッチ（適用候補パッチ）の名称が設定される。
インストール推定ファイルの欄には、適用候補パッチを適用することでインストールすることが推定されるファイルのファイル名が設定される。インストールすることが推定されるファイルは、類似パッチ構成ファイル一覧１１３に基づいて、適用パッチ選択部１３０によって決定される。例えば適用パッチ選択部１３０は、適用候補パッチが属する類似パッチ群を判定し、その類似パッチ群の共通インストールファイルを、インストールすることが推定されるファイルとする。
【００７６】
インストール可能性ありファイルの欄には、適用候補パッチを適用することでインストールされる可能性のあるファイルのファイル名が設定される。インストールされる可能性のあるファイルは、類似パッチ構成ファイル一覧１１３に基づいて、適用パッチ選択部１３０によって決定される。例えば適用パッチ選択部１３０は、適用候補パッチが属する類似パッチ群を判定し、その類似パッチ群に属する一部の適用済みパッチの適用時においてのみインストールされたファイルを、インストールされる可能性のあるファイルとする。
【００７７】
図９は、ファイル使用状況一覧の一例を示す図である。ファイル使用状況一覧１１５には、ファイルの欄と複数のカテゴリの欄とが設けられている。ファイルの欄には、端末装置１００内の複数のファイル１１７ａ，１１７ｂ，・・・それぞれの名称が設定される。カテゴリの欄には、ファイルの使用状況に関するカテゴリごとに、そのカテゴリにおいて対応するファイルを使用したか否かを示すフラグが設定される。
【００７８】
ファイルの使用状況に関するカテゴリとしては、例えば以下のような基準でカテゴリが設定される。
・各曜日
・休日、休日の一日前、休日の一日後
・各月の５・１０日、各月の５・１０日の一日前、各月の５・１０日の一日後
・各月の１日、月末、月の最初の第一営業日、月の最後の営業日
例えば各曜日でカテゴリを生成することで、曜日ごとの各ファイルの使用の有無が、ファイル使用状況一覧１１５に設定される。ファイルを使用したか否かは、ファイルの使用に関するイベントをフックすることで監視できる。
【００７９】
図１０は、新規パッチ適用結果一覧の一例を示す図である。新規パッチ適用結果一覧１１６には、適用パッチ、インストールされたファイル、および種別の欄が設けられている。
【００８０】
適用パッチの欄には、複数の端末装置１００，１００ａ，・・・のいずれかに適用された新規公開パッチ（適用パッチ）の名称が設定される。インストールされたファイルの欄には、新規公開パッチを適用したことでインストールされたファイルの名称が設定される。種別の欄には、新規公開パッチを適用したのが、端末装置１００自身なのか（自）、他の端末装置１００ａ，・・・のいずれかなのか（他）を示す情報が設定される。
【００８１】
以上が、端末装置１００の記憶部１１０に格納される情報の詳細である。管理サーバ２００の記憶部２１０に格納されているソフトウェア辞書２１１とパッチ構成ファイル一覧２１２とは、それぞれ端末装置１００の記憶部１１０に格納されているソフトウェア辞書１１１とパッチ構成ファイル一覧１１２と同じ情報である。管理サーバ２００の記憶部２１０に格納されている新規パッチ適用結果一覧２１４は、端末装置１００の記憶部１１０に格納されている新規パッチ適用結果一覧１１６（図１０参照）から種別の欄の情報を除外したデータテーブルである。
【００８２】
以下、図１１を参照して、管理サーバ２００の記憶部２１０に格納されている情報のうち、端末装置１００の記憶部１１０に格納されていない新規公開パッチ適用管理表２１３について詳細に説明する。
【００８３】
図１１は、新規公開パッチ適用管理表の一例を示す図である。新規公開パッチ適用管理表２１３には、新規公開パッチ、適用候補パッチ、適用先、および適用回数の欄が設けられている。新規公開パッチの欄には、新規公開パッチの名称が設定される。適用候補パッチの欄には、複数の端末装置１００，１００ａ，・・・のうちの少なくとも１つが、新規公開パッチを適用候補パッチに決定したか否かを示す情報が設定される。例えば複数の端末装置１００，１００ａ，・・・それぞれは、新規公開パッチによる修正の対象となるソフトウェアがインストールされており、そのソフトウェアに新規公開パッチがまだ適用されていない場合、その新規公開パッチを適用候補パッチに決定する。新規公開パッチを適用候補パッチに決定した端末装置があれば、適用候補パッチの欄に「ＹＥＳ」が設定され、新規公開パッチを適用候補パッチに決定した端末装置がなければ、適用候補パッチの欄に「ＮＯ」が設定される。適用先の欄には、新規公開パッチを適用する端末装置の名称が設定される。適用回数の欄には、新規公開パッチを適用する端末装置の数が設定される。
【００８４】
以上のような情報を用いて、効率的なパッチの適用が行われる。以下、パッチ適用の処理について詳細に説明する。
パッチの適用処理は２段階に分かれる。１段階目のパッチ適用処理では、第１の適用パッチ決定方法と第２の適用パッチ決定方法とによって、適用パッチが決定される。そして決定された適用パッチが適用される。２段階目のパッチ適用処理では、第３の適用パッチ決定方法によって、追加適用パッチが決定される。そして追加適用パッチが適用される。
【００８５】
図１２は、１段階目のパッチ適用処理の手順を示すシーケンス図である。図１２に示す処理は、例えばシステムの管理者により、管理サーバ２００に新規公開パッチが格納されたときに開始される。以下、図１２に示す処理をステップ番号に沿って説明する。
【００８６】
［ステップＳ１０１］管理サーバ２００は、新規公開パッチのリストと共に、ソフトウェア辞書を端末装置１００に送信する。例えば管理サーバ２００のソフトウェア辞書取得部２２０が、ソフトウェア辞書配信サーバ３００から、記憶部３１０内のソフトウェア辞書３１１（図４参照）を取得し、管理サーバ２００のソフトウェア辞書２１１として記憶部２１０に格納する。パッチ適用管理部２３０は、ソフトウェア辞書２１１を記憶部２１０から取得し、新規適用対象パッチのリストと共にソフトウェア辞書２１１を端末装置１００に送信する。端末装置１００では、パッチ情報収集部１２０がソフトウェア辞書２１１を受信し、そのソフトウェア辞書２１１を、端末装置１００内のソフトウェア辞書１１１として記憶部１１０に格納する。
【００８７】
［ステップＳ１０２］端末装置１００の適用パッチ選択部１３０は、端末装置１００内のインベントリ情報を収集する。インベントリ情報は、例えば端末装置１００にインストールされているソフトウェアの情報である。
【００８８】
［ステップＳ１０３］適用パッチ選択部１３０は、収集したインベントリ情報を管理サーバ２００に送信する。
［ステップＳ１０４］適用パッチ選択部１３０は、適用候補パッチを決定する。例えば適用パッチ選択部１３０は、収集したインベントリ情報とソフトウェア辞書１１１の情報とに基づいて、端末装置１００への適用候補パッチを選択する。具体的には適用パッチ選択部１３０は、ソフトウェア辞書１１１内の複数のソフトウェア定義情報１１１ａ，１１１ｂ，・・・それぞれについて、定義種別「監査」の判定論理が満たされるインベントリ情報の有無を判断する。ソフトウェア定義情報の定義種別「監査」の判定論理が満たされた場合、その定義種別「監査」の名称の欄に示されるパッチが、適用候補パッチに決定される。例えば図５に示すソフトウェア定義情報１１１ａの定義種別「監査」の判定論理が満たされる場合、適用パッチ選択部１３０は「パッチＡ」が適用候補パッチであると判断する。
【００８９】
［ステップＳ１０５］適用パッチ選択部１３０は、適用候補パッチを示す適用候補パッチ情報を管理サーバ２００に送信する。
［ステップＳ１０６］管理サーバ２００のパッチ適用管理部２３０は、新規公開パッチ適用管理表２１３を生成する。例えばパッチ適用管理部２３０は、新規公開パッチそれぞれに対応するレコードを、新規公開パッチ適用管理表２１３に登録する。各レコードの適用候補パッチの欄の初期値は「ＮＯ」である。そして、パッチ適用管理部２３０は、新規公開パッチについて、複数の端末装置１００，１００ａ，・・・のいずれかから適用候補パッチであるとの適用候補パッチ情報を受信すると、その新規公開パッチの適用候補パッチの欄に「ＹＥＳ」を設定する。さらにパッチ適用管理部２３０は、新規公開パッチを適用候補パッチと決定した端末装置の名称を、その新規公開パッチに対応する適用先の欄に設定すると共に、適用回数の欄の値に１を加算する。
【００９０】
［ステップＳ１０７］端末装置１００の適用パッチ選択部１３０は、適用候補パッチのうち、実際に適用する適用パッチの決定処理を実行する。適用パッチの決定処理の詳細は後述する（図１３参照）。
【００９１】
［ステップＳ１０８］パッチ適用部１４０は、適用パッチとして決定された新規公開パッチを適用する。例えばパッチ適用部１４０は、適用パッチが実行形式のパッチファイルで提供されている場合、そのパッチファイルを実行する。
【００９２】
［ステップＳ１０９］パッチ適用部１４０は、適用パッチとして決定された新規公開パッチの適用が完了すると、新規パッチ適用結果一覧１１６を生成する。例えばパッチ適用部１４０は、新規パッチ適用結果一覧１１６に、適用した新規公開パッチの名称と、適用時にインストールされたファイルのファイル名とを含むレコードを登録する。このとき登録したレコードの種別の欄には、自装置に適用したことを示す「自」の値が設定される。
【００９３】
［ステップＳ１１０］パッチ適用部１４０は、新規パッチ適用結果一覧１１６を記憶部１１０に格納すると共に、新規パッチ適用結果一覧１１６を管理サーバ２００に送信する。
【００９４】
［ステップＳ１１１］管理サーバ２００のパッチ適用管理部２３０は、取得した新規パッチ適用結果一覧１１６に基づいて、パッチ構成ファイル一覧１１２を更新する。例えばパッチ適用管理部２３０は、新規パッチ適用結果一覧１１６における新規公開パッチの名称と、適用時にインストールされたファイルのファイル名との組を含むレコードを、パッチ構成ファイル一覧１１２に登録する。
【００９５】
このようにして、過去に適用されたパッチの適用時にインストールされたファイルの情報に基づいて決定された最小限のパッチが適用される。
次に、適用パッチ決定処理について詳細に説明する。
【００９６】
図１３は、適用パッチ決定処理の手順の一例を示すフローチャートの前半である。以下、図１３に示す処理をステップ番号に沿って説明する。
［ステップＳ１２１］適用パッチ選択部１３０は、ソフトウェア辞書１１１とパッチ構成ファイル一覧１１２とに基づいて、類似パッチ構成ファイル一覧１１３を生成する。この処理の詳細は後述する（図１７参照）。
【００９７】
［ステップＳ１２２］適用パッチ選択部１３０は、ソフトウェア辞書１１１と類似パッチ構成ファイル一覧１１３とに基づいて、適用候補パッチ構成ファイル一覧１１４を生成する。この処理の詳細は後述する（図１８参照）。
【００９８】
［ステップＳ１２３］適用パッチ選択部１３０は、ファイル使用状況一覧１１５に基づいて、すべてのファイルが使用されていない新規公開パッチを、適用パッチの対象から除外する。
【００９９】
［ステップＳ１２４］適用パッチ選択部１３０は、端末装置１００における適用候補パッチのうち、ステップＳ１２５〜Ｓ１２６の処理が未処理の適用候補パッチを１つ選択する。
【０１００】
［ステップＳ１２５］適用パッチ選択部１３０は、選択した適用候補パッチのインストール推定ファイルのすべてが、既に適用パッチに決定された適用候補パッチを適用することでインストールされると推定されているか否かを判断する。例えば適用パッチ選択部１３０は、選択した適用候補パッチのインストール推定ファイルのすべてが、既に適用パッチに決定された適用候補パッチのうちのいずれかのインストール推定ファイルに含まれる場合、ステップＳ１２５でＹＥＳと判定する。適用パッチ選択部１３０は、インストール推定ファイルのすべてが適用パッチの適用時にインストールされると推定される場合、選択した適用候補パッチを適用パッチとはせずに、処理をステップＳ１２７に進める。適用パッチ選択部１３０は、選択した適用候補パッチのインストール推定ファイルの少なくとも一部が適用パッチの適用時にインストールされると推定されない場合、処理をステップＳ１２６に進める。
【０１０１】
［ステップＳ１２６］適用パッチ選択部１３０は、ステップＳ１２４で選択した適用候補パッチを適用パッチに決定する。
［ステップＳ１２７］適用パッチ選択部１３０は、ステップＳ１２４において適用候補パッチをすべて選択したか否かを判断する。適用パッチ選択部１３０は、未選択の適用候補パッチがあれば、処理をステップＳ１２４に進める。適用パッチ選択部１３０は、すべての適用候補パッチが選択済みであれば、処理をステップＳ１２８（図１５参照）に進める。
【０１０２】
このようにして、インストール推定ファイルに基づいて、実際に端末装置１００に適用する適用パッチが、第１の適用パッチ決定方法により決定される。
図１４は、第１の適用パッチ決定方法による適用パッチの決定例を示す図である。まず適用パッチ選択部１３０は、適用候補パッチ構成ファイル一覧１１４の最初のレコードに示される適用候補パッチ「パッチＡ」を選択する。この段階では、適用パッチが存在しないため、適用候補パッチ「パッチＡ」は適用パッチに決定される。
【０１０３】
次に適用パッチ選択部１３０は、適用候補パッチ構成ファイル一覧１１４の２番目のレコードに示される適用候補パッチ「パッチＢ」を選択する。適用候補パッチ「パッチＢ」のインストール推定ファイルは、すべて適用パッチに決定された「パッチＡ」のインストール推定ファイルに含まれる。すなわち「パッチＡ］を適用すれば、「パッチＢ」を適用した際にインストールされるファイルもインストールされることが推定される。そこで「パッチＢ」は適用パッチから除外される。
【０１０４】
次に適用パッチ選択部１３０は、適用候補パッチ構成ファイル一覧１１４の３番目のレコードに示される適用候補パッチ「パッチＣ」を選択する。適用候補パッチ「パッチＣ」のインストール推定ファイルは、すべて適用パッチに決定された「パッチＡ」のインストール推定ファイルに含まれる。したがって、「パッチＣ」は適用パッチから除外される。
【０１０５】
次に適用パッチ選択部１３０は、適用候補パッチ構成ファイル一覧１１４の４番目のレコードに示される適用候補パッチ「パッチＤ」を選択する。適用候補パッチ「パッチＤ」のインストール推定ファイルのうち「ｆｉｌｅ−ｐ」と「ｆｉｌｅ−ｒ」は適用パッチに決定された「パッチＡ」のインストール推定ファイルに含まれない。そこで「パッチＤ」は適用パッチに決定される。
【０１０６】
次に適用パッチ選択部１３０は、適用候補パッチ構成ファイル一覧１１４の５番目のレコードに示される適用候補パッチ「パッチＥ」を選択する。適用候補パッチ「パッチＥ」のインストール推定ファイルは、すべて適用パッチに決定された「パッチＡ」のインストール推定ファイルに含まれる。したがって、「パッチＥ」は適用パッチから除外される。
【０１０７】
次に適用パッチ選択部１３０は、適用候補パッチ構成ファイル一覧１１４の６番目のレコードに示される適用候補パッチ「パッチＦ」を選択する。適用候補パッチ「パッチＦ」のインストール推定ファイルは、すべて適用パッチに決定された「パッチＡ」のインストール推定ファイルに含まれる。したがって、「パッチＦ」は適用パッチから除外される。
【０１０８】
これまでの処理により、「パッチＡ」と「パッチＤ」とが適用パッチに決定されている。このとき、適用候補パッチそれぞれのインストール推定ファイルの集合と、適用パッチである「パッチＡ」と「パッチＤ」のインストール推定ファイルの集合とは等しくなる。すなわち、６個の適用候補パッチのすべてのインストール推定ファイルが、２個の適用パッチを適用することでインストールすることができる。
【０１０９】
その後、適用パッチ選択部１３０は、適用パッチに決定されていない適用候補パッチについて、インストールされる可能性のあるファイルが所定期間内に使用されるのであれば、その適用候補パッチも適用パッチに決定する。具体的には、以下の基準で、インストール漏れとなるファイルが特定される。
【０１１０】
まず、すでに適用パッチとなった適用候補パッチでのみインストールされる可能性のあるファイルは、インストール漏れのファイルにはならない（例えば「パッチＡ」の「ｆｉｌｅ−ｐ」、「ｆｉｌｅ−ｑ」）。適用パッチとなっていない適用候補パッチでインストールされる可能性のあるファイルのうち、適用パッチのインストール推定ファイルに含まれるファイルは、インストールされると考える（例えばパッチＢの「ｆｉｌｅ−ｒ」）。逆に適用パッチとなっていない適用候補パッチでインストールされる可能性のあるファイルのうち、適用パッチのインストール推定ファイルに含まれないファイルは、インストール漏れと判定される（例えばパッチＥの「ｆｉｌｅ−ｔ」とパッチＦの「ｆｉｌｅ−ｓ」）。
【０１１１】
インストール漏れのファイルと判定されたものについては、現在の端末装置が属するカテゴリでそのファイルが利用されていると判定された場合のみ、そのファイルを含む適用候補パッチが、適用パッチに決定される。
【０１１２】
図１５は、適用パッチ決定処理の手順の一例を示すフローチャートの後半である。以下、図１５に示す処理をステップ番号に沿って説明する。
［ステップＳ１２８］適用パッチ選択部１３０は、ステップＳ１２６で適用パッチに決定されてない適用候補パッチのうち、ステップＳ１２９〜Ｓ１３１の処理を行っていない適用候補パッチの１つを選択する。
【０１１３】
［ステップＳ１２９］適用パッチ選択部１３０は、選択した適用候補パッチの適用時にインストールされる可能性のあるファイルのすべてが、適用パッチを適用することでインストールされるか否かを判断する。例えば適用パッチ選択部１３０は、選択した適用候補パッチの適用時にインストールされる可能性のあるファイルが、適用パッチのインストール推定ファイルに含まれる場合、そのファイルはインストールされると判断する。適用パッチ選択部１３０は、該当するすべてのファイルが適用パッチを適用することでインストールされる場合、処理をステップＳ１３２に進める。また適用パッチ選択部１３０は、該当するファイルのうちの一部が、適用パッチを適用してもインストールされない可能性がある場合、処理をステップＳ１３０に進める。
【０１１４】
［ステップＳ１３０］適用パッチ選択部１３０は、選択した適用候補パッチにおいてインストールされる可能性のあるファイルが、端末装置１００において所定期間内（例えば本日中）に使用されるか否かを判断する。例えば適用パッチ選択部１３０は、適用候補パッチ構成ファイル一覧１１４を参照し、選択した適用候補パッチを適用したときにインストールされる可能性のあるファイルを特定する。次に適用パッチ選択部１３０は、ファイル使用状況一覧を参照し、現在の端末装置１００の状況に合うカテゴリにおける、特定したファイルの使用状況を確認する。例えば本日が月曜日であれば、適用パッチ選択部１３０は、月曜日に対応するカテゴリでの、特定したファイルの使用状況を確認する。適用パッチ選択部１３０は、該当カテゴリにおいて特定したファイルが使用されることが示されている場合、特定したファイルを所定期間内に使用するものと判断する。適用パッチ選択部１３０は、特定したファイルを所定期間内に使用する場合、処理をステップＳ１３１に進める。また適用パッチ選択部１３０は、特定したファイルを所定期間内に使用しない場合、処理をステップＳ１３２に進める。
【０１１５】
［ステップＳ１３１］適用パッチ選択部１３０は、ステップＳ１２８で選択した適用候補パッチを、適用パッチに決定する。
［ステップＳ１３２］適用パッチ選択部１３０は、ステップＳ１２６で適用パッチに決定されていないすべての適用候補パッチを、ステップＳ１２８で選択したか否かを判断する。適用パッチ選択部１３０は、未選択の該当適用候補パッチがあれば、処理をステップＳ１２８に進める。また適用パッチ選択部１３０は、すべての該当適用候補パッチが選択済みであれば、適用パッチ決定処理を終了する。
【０１１６】
このようにして、適用候補パッチの適用時にインストールされる可能性のあるファイルが、近いうちに使用される場合には、その適用候補パッチが、第２の適用パッチ決定方法により決定される。
【０１１７】
図１６は、第２の適用パッチ決定方法による適用パッチの決定例を示す図である。まず適用パッチ選択部１３０は、適用パッチに決定されていない適用対象パッチのうち、適用候補パッチ構成ファイル一覧１１４の２番目のレコードに示される適用候補パッチ「パッチＢ」を選択する。この適用候補パッチ「パッチＢ」の適用時にインストールされる可能性のある「ｆｉｌｅ−ｒ」は適用パッチである「パッチＤ」の適用時にインストールされる。したがって、「パッチＢ」は適用パッチから除外される。
【０１１８】
次に適用パッチ選択部１３０は、適用候補パッチ構成ファイル一覧１１４の３番目のレコードに示される適用候補パッチ「パッチＣ」を選択する。この適用候補パッチ「パッチＣ」は、インストール推定ファイル以外にインストールされる可能性のあるファイルがない。そのため、「パッチＣ」は適用パッチから除外される。
【０１１９】
次に適用パッチ選択部１３０は、適用候補パッチ構成ファイル一覧１１４の５番目のレコードに示される適用候補パッチ「パッチＥ」を選択する。この適用候補パッチ「パッチＥ」の適用時にインストールされる可能性のある「ｆｉｌｅ−ｔ」は、適用パッチのインストール推定ファイルに含まれない。そのため「パッチＥ」は、「ｆｉｌｅ−ｔ」が所定期間内に使用されるのであれば適用パッチに決定される。
【０１２０】
次に適用パッチ選択部１３０は、適用候補パッチ構成ファイル一覧１１４の６番目のレコードに示される適用候補パッチ「パッチＦ」を選択する。この適用候補パッチ「パッチＦ」の適用時にインストールされる可能性のある「ｆｉｌｅ−ｓ」は、適用パッチのインストール推定ファイルに含まれない。そのため「パッチＦ」は、「ｆｉｌｅ−ｓ」が所定期間内に使用されるのであれば適用パッチに決定される。
【０１２１】
このように適用パッチ選択部１３０は、適用候補パッチの適用時にインストールされる可能性のあるファイルについては、使用状況に応じて、その適用候補パッチを適用するか否かを判断する。これにより、例えば適用候補パッチであっても、インストールされるファイルがすぐには使用されず、適用の緊急性が低い場合には、パッチの適用時期を遅らせることができる。その結果、一度に大量の新規公開パッチが公開された場合であっても、緊急性の高いパッチのみを取捨選択して速やかに適用することができ、パッチ適用による端末装置１００が使用できない期間が短縮できる。
【０１２２】
次に、類似パッチ構成ファイル一覧生成処理（ステップＳ１２１）について詳細に説明する。
図１７は、類似パッチ構成ファイル一覧生成処理の手順の一例を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
【０１２３】
［ステップＳ１４１］適用パッチ選択部１３０は、パッチ構成ファイル一覧１１２から、適用済みパッチを１つ選択する。
［ステップＳ１４２］適用パッチ選択部１３０は、類似パッチ構成ファイル一覧１１３において、選択した適用済みパッチと類似するパッチが属する類似パッチ群があるか否かを判断する。例えば適用パッチ選択部１３０は、類似パッチ群ごとに、その類似パッチ群に属するパッチの適用対象商品と、パッチの未適用／適用済を判定するために使用しているファイル（判定用ファイル）との両方が、選択した適用済みパッチと同じかどうかを判断する。適用パッチ選択部１３０は、適用対象商品と判定用ファイルが同じであれば、その類似パッチ群は、選択した適用済みパッチと類似するパッチが属する類似パッチ群であると判断する。なお各パッチの適用対象商品と判定用ファイルは、該当パッチの適用の有無の判定用のソフトウェア定義情報に示されている。
【０１２４】
適用パッチ選択部１３０は、該当する類似パッチ群が存在する場合、処理をステップＳ１４３に進める。また適用パッチ選択部１３０は、該当するパッチ群が存在しない場合、処理をステップＳ１４４に進める。
【０１２５】
［ステップＳ１４３］適用パッチ選択部１３０は、類似パッチ構成ファイル一覧１１３における選択した適用済みパッチと類似するパッチが属する類似パッチ群のレコードのパッチの欄に、選択した適用済みパッチの名称を登録する。適用パッチ選択部１３０は、その後、処理をステップＳ１４６に進める。
【０１２６】
［ステップＳ１４４］適用パッチ選択部１３０は、新たな類似パッチ群のレコードを、類似パッチ構成ファイル一覧１１３に追加する。
［ステップＳ１４５］適用パッチ選択部１３０は、類似パッチ構成ファイル一覧１１３内に追加した、新たな類似パッチ群のレコードのパッチの欄に、選択した適用済みパッチの名称を登録する。
【０１２７】
［ステップＳ１４６］適用パッチ選択部１３０は、すべての適用済みパッチを選択したか否かを判断する。適用パッチ選択部１３０は、未選択の適用済みパッチがあれば、処理をステップＳ１４１に進める。また適用パッチ選択部１３０は、すべての適用済みパッチが選択済みであれば、処理をステップＳ１４７に進める。
【０１２８】
［ステップＳ１４７］適用パッチ選択部１３０は、類似パッチ構成ファイル一覧１１３から類似パッチ群を１つ選択する。
［ステップＳ１４８］適用パッチ選択部１３０は、選択した類似パッチ群に属するすべての適用済みパッチでインストールされたファイルを、共通インストールファイルとする。例えば適用パッチ選択部１３０は、類似パッチ構成ファイル一覧１１３を参照し、選択した類似パッチ群に属する１以上の適用済みパッチを特定する。次に適用パッチ選択部１３０は、パッチ構成ファイル一覧１１２を参照し、特定した適用済みパッチそれぞれを適用したときにインストールされたファイルを特定する。次に適用パッチ選択部１３０は、特定した適用済みパッチのすべてにおいて、適用時にインストールされたファイルの名称を、選択した類似パッチ群の共通インストールファイルの欄に設定する。
【０１２９】
［ステップＳ１４９］適用パッチ選択部１３０は、選択した類似パッチ群に属する一部の適用済みパッチでインストールされたファイルを、一部パッチインストールファイルとする。例えば適用パッチ選択部１３０は、類似パッチ構成ファイル一覧１１３を参照し、選択した類似パッチ群に属する１以上の適用済みパッチを特定する。次に適用パッチ選択部１３０は、パッチ構成ファイル一覧１１２を参照し、特定した適用済みパッチそれぞれを適用したときにインストールされたファイルを特定する。次に適用パッチ選択部１３０は、特定した適用済みパッチの一部において適用時にインストールされたファイルの名称を、選択した類似パッチ群の一部パッチインストールファイルの欄に設定する。
【０１３０】
［ステップＳ１５０］適用パッチ選択部１３０は、すべての類似パッチ群を選択したか否かを判断する。適用パッチ選択部１３０は、未選択の類似パッチ群があれば、処理をステップＳ１４７に進める。また適用パッチ選択部１３０は、すべての類似パッチ群が選択済みであれば、類似パッチ構成ファイル一覧１１３の生成処理を終了する。
【０１３１】
このようにして類似パッチ構成ファイル一覧１１３が生成される。生成された類似パッチ構成ファイル一覧１１３に基づいて、適用候補パッチ構成ファイル一覧１１４を作成することができる。
【０１３２】
図１８は、適用候補パッチ構成ファイル一覧の生成処理の手順の一例を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。
［ステップＳ１６１］適用パッチ選択部１３０は、適用候補パッチのうちの１つを選択する。なお適用候補パッチは、図１２に示したステップＳ１０４の処理で、新規公開パッチの中から決定されている。
【０１３３】
［ステップＳ１６２］適用パッチ選択部１３０は、選択した適用候補パッチと類似するパッチが属する類似パッチ群を、類似パッチ構成ファイル一覧１１３から特定する。
［ステップＳ１６３］適用パッチ選択部１３０は、特定した類似パッチ群の共通インストールファイルを、選択した適用候補パッチのインストール推定ファイルに決定する。
【０１３４】
［ステップＳ１６４］適用パッチ選択部１３０は、特定した類似パッチ群の一部パッチインストールファイルを、選択した適用候補パッチのインストールされる可能性のあるファイルに決定する。
【０１３５】
［ステップＳ１６５］適用パッチ選択部１３０は、適用候補パッチ構成ファイル一覧１１４に、選択した適用候補パッチのレコードを追加する。追加したレコードのインストール推定ファイルの欄には、ステップＳ１６３で決定したインストール推定ファイルのファイル名が設定される。また追加したレコードのインストール可能性ありファイルの欄には、ステップＳ１６４で決定したインストールされる可能性のあるファイルのファイル名が設定される。
【０１３６】
［ステップＳ１６６］適用パッチ選択部１３０は、すべての適用候補パッチを選択したか否かを判断する。適用パッチ選択部１３０は、未選択の適用候補パッチがある場合、処理をステップＳ１６１に進める。また適用パッチ選択部１３０は、すべての適用候補パッチが選択済みであれば、適用候補パッチ構成ファイル一覧生成処理を終了する。
【０１３７】
図１２〜図１８の処理により、１段階目のパッチ適用処理が行われる。１段階目のパッチ適用処理では、適用候補パッチに類似する適用済みパッチにおいてインストールされたファイルから、適用候補パッチの適用時にインストールされるファイルを推定している。しかし、適用候補パッチを実際に適用したとき、インストールされると推定されたファイルがインストールされない可能性がある。インストールされると推定されたにも関わらずインストールされなかったファイルが、未適用の適用候補パッチの適用でインストールされることが判明した場合、２段階目のパッチ適用処理により、その未適用の適用候補パッチが追加適用される。
【０１３８】
図１９は、２段階目のパッチ適用処理の手順の一例を示すシーケンス図である。以下、図１９に示す処理をステップ番号に沿って説明する。
［ステップＳ２０１］管理サーバ２００のパッチ適用管理部２３０は、未適用の適用候補パッチを検出する。例えばパッチ適用管理部２３０は、複数の端末装置１００，１００ａ，・・・のすべてから受信した新規パッチ適用結果一覧に基づいて、複数の端末装置１００，１００ａ，・・・のそれぞれで適用された適用候補パッチを認識する。またパッチ適用管理部２３０は、新規公開パッチ適用管理表２１３を参照し、新規公開パッチのうちの適用候補パッチを判断する。そしてパッチ適用管理部２３０は、複数の端末装置１００，１００ａ，・・・から受信した新規パッチ適用結果一覧のいずれにも含まれていない適用候補パッチを、未適用の適用候補パッチとして検出する。
【０１３９】
［ステップＳ２０２］パッチ適用管理部２３０は、新規公開パッチ適用管理表２１３を参照し、未適用の適用候補パッチの適用先となる端末装置のうちの１つを選択し、その端末装置に、未適用の適用候補パッチの適用を指示する。図１９の例では、端末装置１００ａに提供の指示が送信されたものとする。
【０１４０】
［ステップＳ２０３］端末装置１００ａは、管理サーバ２００からの未適用の適用候補パッチの適用指示に応じて、未適用の適用候補パッチを適用する。この際、端末装置１００ａは、適用候補パッチを適用するプロセスが出力するファイル更新のイベントを検出し、インストールされたファイルを認識する。
【０１４１】
［ステップＳ２０４］端末装置１００ａは、自身が有する新規パッチ適用結果一覧を更新する。例えば端末装置１００ａは、ステップＳ２０３で適用した適用候補パッチに対応するレコードを、新規パッチ適用結果一覧に追加する。追加されたレコードのインストールされたファイルの欄には、ステップＳ２０３の適用候補パッチの適用時にインストールされたファイルのファイル名が設定される。また、追加されたレコードの種別の欄には「自」と設定される。
【０１４２】
［ステップＳ２０５］端末装置１００ａは、更新後の新規パッチ適用結果一覧を管理サーバ２００に送信する。
［ステップＳ２０６］管理サーバ２００のパッチ適用管理部２３０は、複数の端末装置１００，１００ａ，・・・それぞれに対して、他の端末装置における適用候補パッチの適用結果を送信する。送信される適用結果には、適用された適用候補パッチの名称と、適用時にインストールされたファイルの名称とが含まれる。
【０１４３】
他の端末装置１００ａ，・・・における適用候補パッチの適用結果を受信した複数の端末装置１００，１００ａ，・・・それぞれは、２段階目のパッチ適用処理を行う。以下、端末装置１００における２段階目のパッチ適用処理を例に取り、図１９に示すステップＳ２０７以降の処理を説明する。
【０１４４】
［ステップＳ２０７］端末装置１００のパッチ情報収集部１２０は、他の端末装置１００ａ，・・・における適用候補パッチの適用結果を管理サーバ２００から受信すると、新規パッチ適用結果一覧１１６を更新する。例えばパッチ適用部１４０は、他の端末装置１００ａ，・・・で適用した適用候補パッチに対応するレコードを、新規パッチ適用結果一覧１１６に追加する。追加されたレコードのインストールされたファイルの欄には、適用候補パッチの適用時にインストールされたファイルのファイル名が設定される。また、追加されたレコードの種別の欄には「他」と設定される。
【０１４５】
［ステップＳ２０８］適用パッチ選択部１３０は、未適用の適用候補パッチのうち、新たに適用する追加適用パッチを決定する。追加適用パッチ決定処理の詳細は後述する（図２０参照）。
【０１４６】
［ステップＳ２０９］パッチ適用部１４０は、追加適用パッチを適用する。
［ステップＳ２１０］パッチ適用部１４０は、新規パッチ適用結果一覧１１６を更新する。例えばパッチ適用部１４０は、ステップＳ２０９で適用した追加適用パッチに対応するレコードを、新規パッチ適用結果一覧１１６に追加する。追加されたレコードのインストールされたファイルの欄には、ステップＳ２０９の追加適用パッチの適用時にインストールされたファイルのファイル名が設定される。また、追加されたレコードの種別の欄には「自」と設定される。
【０１４７】
［ステップＳ２１１］パッチ適用部１４０は、更新後の新規パッチ適用結果一覧１１６を管理サーバ２００に送信する。
［ステップＳ２１２］管理サーバ２００のパッチ適用管理部２３０は、パッチ構成ファイル一覧を更新する。例えばパッチ適用管理部２３０は、ステップＳ２０５とステップＳ２１１で受信した新規パッチ適用結果一覧に基づいて、パッチ構成ファイル一覧１１２を更新する。
【０１４８】
次に追加適用パッチ決定処理について詳細に説明する。
図２０は、追加適用パッチ決定処理の手順の一例を示すフローチャートである。以下、図２０に示す処理をステップ番号に沿って説明する。
【０１４９】
［ステップＳ２２１］適用パッチ選択部１３０は、未適用の適用候補パッチを１つ選択する。例えば適用パッチ選択部１３０は、適用候補パッチ構成ファイル一覧１１４に示されている適用候補パッチのうち、新規パッチ適用結果一覧１１６において種別「他」として登録されているパッチを、未適用の適用候補パッチと判断する。
【０１５０】
［ステップＳ２２２］適用パッチ選択部１３０は、選択した適用候補パッチを適用することでインストールされるファイルを特定する。例えば適用パッチ選択部１３０は、新規パッチ適用結果一覧１１６を参照し、選択した適用候補パッチの名称に対応付けて登録されているファイルを、適用候補パッチを適用することでインストールされるファイルであると特定する。
【０１５１】
［ステップＳ２２３］適用パッチ選択部１３０は、特定したすべてのファイルが、端末装置１００自身に既に適用済みのパッチでインストールされたか否かを判断する。例えば適用パッチ選択部１３０は、新規パッチ適用結果一覧１１６を参照し、種別「自」のレコードにおけるインストールされたファイルの欄に、ステップＳ２２２で特定したファイルが登録されている場合、そのファイルはインストールされていると判断する。また、適用パッチ選択部１３０は、新規パッチ適用結果一覧１１６を参照し、種別「自」のレコードにおけるインストールされたファイルの欄に、ステップＳ２２２で特定したファイルが登録されていない場合、そのファイルはインストールされていないと判断する。
【０１５２】
適用パッチ選択部１３０は、特定したファイルのうちの少なくとも１つがインストールされていない場合、処理をステップＳ２２４に進める。また適用パッチ選択部１３０は、特定したファイルのすべてがインストールされている場合、処理をステップＳ２２６に進める。
【０１５３】
［ステップＳ２２４］適用パッチ選択部１３０は、ステップＳ２２２で特定したファイルのうちのインストールされていないファイル（未インストールファイル）を、所定期間内に使用するか否かを判断する。例えば適用パッチ選択部１３０は、ファイル使用状況一覧１１５を参照し、端末装置１００における現在のカテゴリにおける未インストールファイルの使用の有無を確認する。適用パッチ選択部１３０は、未インストールファイルを使用することが示されている場合、未インストールファイルを所定期間内に使用すると判断する。
【０１５４】
適用パッチ選択部１３０は、未インストールファイルを所定期間内に使用する場合、処理をステップＳ２２５に進める。また適用パッチ選択部１３０は、未インストールファイルを所定期間内に使用しない場合、処理をステップＳ２２６に進める。
【０１５５】
［ステップＳ２２５］適用パッチ選択部１３０は、選択した適用候補パッチを追加適用パッチに決定する。
［ステップＳ２２６］適用パッチ選択部１３０は、未適用の適用候補パッチのすべてを選択したか否かを判断する。適用パッチ選択部１３０は、未適用の適用候補パッチの中に未選択のものがあれば、処理をステップＳ２２１に進める。また適用パッチ選択部１３０は、未適用の適用候補パッチのすべてが選択済みであれば、追加適用パッチ決定処理を終了する。
【０１５６】
このようにして追加適用パッチが決定される。これにより、実際に自端末装置の適用候補パッチを他の端末装置が適用した結果、自端末装置の適用候補パッチでインストールされるファイルがまだ自端末装置にインストールされていないことが判明した場合、その適用候補パッチが自端末装置にも適用される。その結果、適用候補パッチでインストールされるファイルのインストール漏れを抑止することができる。
【０１５７】
図２１は、追加適用パッチの決定例を示す図である。例えば端末装置１００の適用パッチ選択部１３０は、１段階目のパッチ適用処理により、「パッチＡ」と「パッチＤ」とを適用パッチに決定したものとする。この場合、端末装置１００には、「パッチＡ」と「パッチＤ」とが適用され、インストールされたファイルの情報が取得される。インストールされたファイルの情報は、新規パッチ適用結果一覧１１６に登録される。その他のパッチ（例えば「パッチＢ」、「パッチＣ」）は、他の端末装置１００ａ，・・・のいずれかに適用され、適用結果が端末装置１００の新規パッチ適用結果一覧１１６に反映されている。
【０１５８】
図２１の例では「パッチＡ」の適用によりファイル「ｆｉｌｅ−ａ、ｆｉｌｅ−ｂ、ｆｉｌｅ−ｃ」がインストールされている。適用候補パッチ構成ファイル一覧１１４（図８参照）では、「パッチＡ」の適用時には「ｆｉｌｅ−ａ、ｆｉｌｅ−ｂ、ｆｉｌｅ−ｃ、ｆｉｌｅ−ｄ」がインストールされるものと推定されている。すなわち「パッチＡ」の適用時にインストールされるものと推定されていた「ｆｉｌｅ−ｄ」が、実際にはインストールされていない。また「パッチＣ」については、他の端末装置が適用した結果、「パッチＣ」の適用時に「ｆｉｌｅ−ｃ、ｆｉｌｅ−ｄ」がインストールされたことが判明している。「パッチＣ」は端末装置１００の適用候補パッチであるため、適用パッチ選択部１３０は、「ｆｉｌｅ−ｄ」を所定期間内に使用するのであれば「パッチＣ」を追加適用することを決定する。
【０１５９】
「パッチＢ」については、他の端末装置が適用した結果、「パッチＢ」の適用時に「ｆｉｌｅ−ａ、ｆｉｌｅ−ｃ、ｆｉｌｅ−ｅ」がインストールされたことが判明している。適用候補パッチ構成ファイル一覧１１４（図８参照）では、「パッチＢ」の適用時には「ｆｉｌｅ−ａ、ｆｉｌｅ−ｃ」がインストールされるものと推定されている。すなわち「パッチＢ」の適用時にインストールされるものと推定されていない「ｆｉｌｅ−ｅ」が、実際にはインストールされている。しかも「ｆｉｌｅ−ｅ」は、端末装置１００に適用した「パッチＡ」と「パッチＤ」との何れの適用時にもインストールされていない。「パッチＢ」は端末装置１００の適用候補パッチであるため、適用パッチ選択部１３０は、「ｆｉｌｅ−ｅ」を所定期間内に使用するのであれば「パッチＢ」を追加適用することを決定する。
【０１６０】
この結果、実際に適用するパッチの数を減らしながらも、所定期間内に使用するファイルのインストール漏れを抑止することができる。その結果、端末装置１００の脆弱性を残すことなく、パッチ適用による端末装置１００の使用停止期間を短縮することができる。
【０１６１】
パッチの適用時間が短縮されることで、業務開始前に業務に支障を与えることなくパッチの適用ができるようになる。その結果、脆弱性に対処した端末装置を用いて業務を行うことができる。
【０１６２】
なお、ソフトウェア辞書１１１に含まれるソフトウェア定義情報１１１ａ，１１１ｂ，・・・は、例えばソフトウェアの開発元から提供される。ソフトウェアの開発元は、パッチによってどのファイルがインストールされるのかを把握しているため、ソフトウェア定義情報１１１ａ，１１１ｂ，・・・に、インストールされるファイルの情報を含めることも考えられる。しかし、ソフトウェア辞書１１１により、すべてのパッチの構成ファイル情報を保持しようとすると、ソフトウェア辞書１１１が肥大化してしまう。すなわち、ソフトウェア辞書１１１は、様々な企業すべてで使用できるように汎用的に作成されるため、以下の理由により、ソフトウェア辞書１１１の肥大化が加速する。
【０１６３】
ソフトウェア辞書１１１は、全企業で使用されているソフトウェアのパッチに対応しなければならず、過去のセキュリティパッチの情報を安易に削除することもできない。そのため、ソフトウェア定義情報１１１ａ，１１１ｂ，・・・それぞれの容量が大きくなれば、ソフトウェア辞書１１１は年々肥大化する。そして、このようなソフトウェア辞書１１１の肥大化により、ソフトウェア辞書作成および管理工数の増大、使用する資源（ディスク／メモリ／ネットワークなど）の増大などの問題が発生する。ソフトウェア辞書１１１の肥大化が進むと、パッチの適用に使用する資源（ディスク／メモリ／ネットワークなど）の見積もりも困難となる。すると、最終的には、新規公開セキュリティパッチに対応したソフトウェア辞書１１１を公開しても、資源不足の問題が発生し、新規公開のパッチを適用できなくなるおそれがある。
【０１６４】
このような問題があるため、パッチの適用によりインストールされるファイルの把握を、ソフトウェア辞書１１１で対応することは非常に困難である。第２の実施の形態によれば、ソフトウェア辞書１１１を肥大化させることなく、パッチの適用によりインストールされるファイルを推定することで、最小限のパッチのみを適用することができる。しかも、ソフトウェア辞書１１１のサイズの変動が抑えられるため、システム設計が簡単になり、安定的にシステムを運用できるようになる。
【０１６５】
また、そもそもソフトウェア辞書１１１を使わず、企業内において、最初に、公開されたすべてのパッチを、内部のシステムに適用して全パッチの構成ファイルを事前に確認することも考えられる。この場合、以下の問題が発生する。
【０１６６】
専用のテスト環境を使用して、パッチ適用前に確認する場合、大規模なテスト環境を維持管理していかなければならず、多大な労力がかかる。また運用しているコンピュータの環境を使用して、パッチ適用時に確認する場合、全パッチの構成ファイルが確認できるまで、他のシステムへのパッチの適用が行えず、パッチ適用が遅くなる。そうすると、セキュリティパッチのような重要なパッチを迅速に適用するという目的を果たすことができない。しかも、すべてのパッチの構成ファイルの確認を行うことになるため、確認時間は、適用時間が最長のパッチの適用時間よりも短くなることはない。さらに、公開されたパッチの構成ファイルを確認する段階では、いずれの端末装置でも使用していないソフトウェアについてもパッチを適用することとなり、無駄な時間が発生する。
【０１６７】
このように、第２の実施の形態と異なる手法でパッチの構成ファイルを把握しようとしても、すぐに適用することが求められるパッチを迅速に適用することができない。
〔その他の実施の形態〕
第２の実施の形態では、類似パッチ構成ファイル一覧１１３の生成処理を、複数の端末装置１００，１００ａ，・・・それぞれが行うものとしているが、この処理を管理サーバ２００が行ってもよい。その場合、管理サーバ２００から複数の端末装置１００，１００ａ，・・・それぞれに、生成された類似パッチ構成ファイル一覧１１３が送信される。
【０１６８】
また第２の実施の形態では、適用候補パッチ構成ファイル一覧１１４の生成処理を、複数の端末装置１００，１００ａ，・・・それぞれが行うものとしているが、この処理を管理サーバ２００が行ってもよい。この場合、管理サーバ２００は、複数の端末装置１００，１００ａ，・・・それぞれから取得したインベントリ情報に基づいて、複数の端末装置１００，１００ａ，・・・それぞれの適用候補パッチ構成ファイル一覧１１４を生成する。そして管理サーバ２００から複数の端末装置１００，１００ａ，・・・それぞれに、生成された適用候補パッチ構成ファイル一覧１１４が送信される。
【０１６９】
さらに、追加適用パッチ決定処理（図２０参照）において、未適用の適用候補パッチを適用することでインストールされるファイルがまだインストールされていないとき、そのファイルの使用状況に関係無く、その適用候補パッチを追加適用してもよい。
【０１７０】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１７１】
１  インストール候補ソフトウェア情報
２  インストール推定ファイル情報
３  サーバ
４，５  インストール用ファイル
１０  情報処理装置
１１  記憶部
１１ａ  ソフトウェア定義情報
１１ｂ  インストールファイル情報
１２  処理部
【図１】
2019040400.tif 000003
【図２】
2019040400.tif 000004
【図３】
2019040400.tif 000005
【図４】
2019040400.tif 000006
【図５】
2019040400.tif 000007
【図６】
2019040400.tif 000008
【図７】
2019040400.tif 000009
【図８】
2019040400.tif 000010
【図９】
2019040400.tif 000011
【図１０】
2019040400.tif 000012
【図１１】
2019040400.tif 000013
【図１２】
2019040400.tif 000014
【図１３】
2019040400.tif 000015
【図１４】
2019040400.tif 000016
【図１５】
2019040400.tif 000017
【図１６】
2019040400.tif 000018
【図１７】
2019040400.tif 000019
【図１８】
2019040400.tif 000020
【図１９】
2019040400.tif 000021
【図２０】
2019040400.tif 000022
【図２１】
2019040400.tif 000023