(57)【要約】【課題】パッチを効率的に適用することを課題とする。【解決手段】パッチ適用装置は、システムに適用する複数のパッチ各々について、依存関係がある他のパッチを識別する。また、パッチ適用装置は、識別の結果依存関係があると識別されたパッチ間では、当該依存関係に基づいた順番にてパッチ各々を適用する。また、パッチ適用装置は、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行して適用する。また、パッチ適用装置は、システムに適用されたパッチに関する情報を記憶する記憶部に、適用されたパッチ各々に関する情報各々を格納する。【選択図】        図１
2010134543.tif 000002
【特許請求の範囲】
【請求項１】
システムに適用する複数のパッチ各々について、依存関係がある他のパッチを識別する識別部と、
前記識別部による識別の結果依存関係があると識別されたパッチ間では、当該依存関係に基づいた順番にてパッチ各々を適用し、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行して適用する適用部と
を備えたことを特徴とするパッチ適用装置。
【請求項２】
前記システムに適用されたパッチに関する情報を記憶する記憶部に、前記適用部によって適用されたパッチ各々に関する情報各々を格納する格納部をさらに備えたことを特徴とする請求項１に記載のパッチ適用装置。
【請求項３】
前記識別部によって依存関係が識別されたパッチ各々を統合したパッチである統合パッチを作成する作成部をさらに備え、
前記適用部は、前記統合パッチに含まれるパッチ各々を適用することを特徴とする請求項１または２に記載のパッチ適用装置。
【請求項４】
システムに適用する複数のパッチ各々について、依存関係がある他のパッチを識別する識別ステップと、
前記識別ステップによる識別の結果依存関係があると識別されたパッチ間では、当該依存関係に基づいた順番にてパッチ各々を適用し、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行して適用する適用ステップと
を含んだことを特徴とするパッチ適用方法。
【請求項５】
システムに適用する複数のパッチ各々について、依存関係がある他のパッチを識別する識別手順と、
前記識別手順による識別の結果依存関係があると識別されたパッチ間では、当該依存関係に基づいた順番にてパッチ各々を適用し、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行して適用する適用手順と
をコンピュータに実行させることを特徴とするパッチ適用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
パッチ適用装置、パッチ適用方法およびパッチ適用プログラムに関する。
【背景技術】
【０００２】
従来より、プログラムの一部を修正する場合には、修正点のみを含むパッチを作成し、作成したパッチをプログラムに適用する手法が用いられている。ここで、複数のパッチを適用する場合には、複数のパッチを一つずつ順番に適用していた。
【０００３】
【特許文献１】特開平１−１８８９３８号公報
【特許文献２】特開２００４−１０２３７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記した従来の技術は、パッチを効率的に適用することができないという課題があった。例えば、複数のパッチを適用する場合には、パッチ各々を一つずつ順番に適用していたので、個々のパッチを適用するのに要する適用時間各々を合計した時間を要していた。
【０００５】
そこで、本出願は、上述した従来技術の課題を解決するためになされたものであり、パッチを効率的に適用することが可能なパッチ適用装置、パッチ適用方法およびパッチ適用プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、パッチ適用装置は、システムに適用する複数のパッチ各々について、依存関係がある他のパッチを識別する識別部を備える。また、パッチ適用装置は、前記識別部による識別の結果依存関係があると識別されたパッチ間では、当該依存関係に基づいた順番にてパッチ各々を適用し、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行して適用する適用部を備える。
【発明の効果】
【０００７】
パッチを効率的に適用することが可能である。
【発明を実施するための最良の形態】
【０００８】
以下に添付図面を参照して、パッチ適用装置、パッチ適用方法およびパッチ適用プログラムの実施例を詳細に説明する。なお、以下では、実施例１に係るパッチ適用装置の概要、パッチの構造の一例、パッチ適用装置の構成および処理の流れを順に説明し、その後、その他の実施例について説明する。
【実施例１】
【０００９】
［パッチ適用装置の概要］
まず最初に、図１を用いて、実施例１に係るパッチ適用装置の概要を説明する。図１は、実施例１に係るパッチ適用装置の概要を説明するための図である。
【００１０】
図１に示すように、実施例１に係るパッチ適用装置は、システムに適用する複数のパッチ各々について、依存関係がある他のパッチを識別する。例えば、図１に示すように、「パッチＡ」〜「パッチＥ」各々をシステムに適用する場合には、パッチ適用装置は、「パッチＡ」〜「パッチＥ」各々について依存関係を識別する。そして、図１の（１）に示す例では、パッチ適用装置は、「パッチＡ」と「パッチＥ」とに依存関係があり、「パッチＥ」を適用した後に「パッチＡ」を適用するという依存関係を識別する。また、パッチ適用装置は、他のパッチ間では、依存関係がないと識別する。
【００１１】
そして、図１の（２）に示すように、実施例１に係るパッチ適用装置は、識別の結果依存関係があると識別されたパッチ間では、依存関係に基づいた順番にてパッチ各々を適用する。図１の（２−１）に示す例では、パッチ適用装置は、「パッチＥ」「パッチＡ」の順番にて、一つずつ適用する。
【００１２】
また、図１の（２）に示すように、実施例１に係るパッチ適用装置は、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行して適用する。図１の（２−２）に示す例では、パッチ適用装置は、「パッチＡ」「パッチＢ」「パッチＣ」「パッチＤ」の内一部または全てのパッチを並行して適用し、「パッチＢ」「パッチＣ」「パッチＤ」「パッチＥ」の内一部または全てのパッチを並行して適用する。
【００１３】
すなわち、実施例１に係るパッチ適用装置は、複数のパッチを並行して適用し、その際、相互に依存関係がある「パッチＡ」と「パッチＥ」とが並行して適用されないように制御する。
【００１４】
このようなことから、実施例１に係るパッチ適用装置は、パッチを効率的に適用することが可能である。具体的には、パッチ適用装置は、依存関係にないパッチ各々を並行して適用することができ、パッチ適用に要する所要時間を短縮可能である。また、パッチ適用装置は、依存関係を識別することで、システムが停止中となる時間を短縮することが可能である。
【００１５】
［パッチの構造の一例］
次に、図２と図３とを用いて、パッチの構造の一例について説明する。図２と図３とは、実施例１におけるパッチの構造の一例を説明するための図である。図２に示すように、パッチ各々には、「パッチ情報ファイル」と、「前処理スクリプト」と、「置き換えファイル」と、「後処理スクリプト」とが含まれる。
【００１６】
「パッチ情報ファイル」とは、自パッチに関する情報である。図３に示す例では、「パッチ情報ファイル」は、「パッチ情報（パッチＩＤとも称する）」と「ファイルリスト」と「アーキテクチャリスト」と「プログラムリスト」とを含む。また、「パッチ情報ファイル」は、「依存パッチ情報リスト」と「吸収パッチ情報リスト」と「排他パッチ情報リスト」とを含む。
【００１７】
「パッチ情報」とは、自パッチを他のパッチから識別する識別情報であり、図３に示す例では、「XX」が該当する。なお、パッチ情報「XX」は、パッチ「XX」を識別する情報である。
【００１８】
また、「ファイルリスト」とは、パッチ適用により置き換えられるファイルを識別する識別情報各々のリストであり、図３に示す例では、「/xxxxdir/xxxxxxxx1」〜「/xxxxdir/xxxxxxxxN」が該当する。すなわち、パッチ「XX」が適用されると、ファイル「/xxxxdir/xxxxxxxx1」〜「/xxxxdir/xxxxxxxxN」が置き換えられることを示す。
【００１９】
「アーキテクチャリスト」とは、システムのハードウェアアーキテクチャを識別するアーキテクチャ情報のリストであり、図３に示す例では、アーキテクチャ情報「arch1」や「arch2」を含む。すなわち、図３に示す例では、パッチ「XX」は、アーキテクチャ情報「arch1」や「arch2」によって識別されるハードウェアのアーキテクチャを備えるシステムが適用対象となることを示す。なお、ハードウェアアーキテクチャとは、例えば、演算処理装置としてのＣＰＵ（Central  Processing  Unit）や情報処理装置としてのサーバの種類などが該当する。
【００２０】
「プログラムリスト」とは、パッチが適用されるプログラムを識別するプログラム情報のリストであり、図３に示す例では、プログラム情報「app1」や「app2」や「app3」を含む。すなわち、図３に示す例では、パッチ「XX」は、プログラム情報「app1」や「app2」や「app3」によって識別されるプログラムが適用対象となることを示す。
【００２１】
「依存パッチ情報リスト」とは、他のパッチとの関係を示す関係情報の一つであり、具体的には、自パッチが依存する他のパッチについてのパッチ情報のリストである。「依存する他のパッチ」とは、自パッチを適用する際に前提とするパッチであり、言い換えると、自パッチを適用する際には、適用済みであることを要するパッチである。図３に示す例では、パッチ情報「YY」や「ZZ」が該当し、パッチ「XX」を適用する場合には、パッチ「YY」と「ZZ」とが適用済みであることを要することを示す。
【００２２】
「吸収パッチ情報リスト」とは、他のパッチとの関係を示す関係情報の一つであり、具体的には、自パッチが吸収している他のパッチについてのパッチ情報のリストである。「自パッチが吸収している他のパッチ」とは、自パッチの内容に含まれる他のパッチであり、自パッチを適用することで適用されたことになる他のパッチを示す。図３に示す例では、パッチ情報「AA」や「BB」が該当し、すなわち、パッチ「XX」を適用することによって、パッチ「AA」や「BB」も適用したことになることを示す。
【００２３】
「排他パッチ情報リスト」とは、他のパッチとの関係を示す関係情報の一つであり、具体的には、排他関係にある他のパッチについてのパッチ情報のリストである。「排他関係にある他のパッチ」とは、自パッチを適用する際に、適用されていてはならない他のパッチを示し、言い換えると、排他関係にある他のパッチが適用済みである場合には、自パッチは適用されないことを示す。図３に示す例では、何のデータも含まれておらず（ｎｕｌｌ）、排他関係にある他のパッチがないことを示す。
【００２４】
ここで、図２に戻ると、「置き換えファイル」とは、パッチを適用することで置き換えるファイルを示し、図３に示す例では、「xxxxxxxx1」〜「xxxxxxxxN」が該当する。すなわち、「ファイルリスト」にて示されたファイル各々が、「置き換えファイル」にて示されるファイル各々に置き換えられる事を示す。
【００２５】
「前処理スクリプト」と「後処理スクリプト」とは、パッチを適用する際に実行される処理内容を示すスクリプトであり、「ファイルリスト」にて示されたファイル各々を「置き換えファイル」にて示されるファイル各々に置き換える前後に実行される。例えば、「前処理スクリプト」は、ファイル各々を置き換える前に実行され、「後処理スクリプト」は、ファイル各々を置き換えた後に実行される。
【００２６】
例えば、「前処理スクリプト」と「後処理スクリプト」とでは、環境変数を追加したり変更する処理を実行する。また、例えば、「前処理スクリプト」は、置き換え対象ファイルを保持する処理を実行し、「後処理スクリプト」が、置き換え対象ファイルのユーザ定義にパッチ適用内容を反映する処理を実行する。
【００２７】
このように、パッチに含まれる「置き換えファイル」と「前処理スクリプト」と「後処理スクリプト」とが実行されることで、パッチが適用されることになる。
【００２８】
なお、パッチは、「置き換えファイル」と「前処理スクリプト」と「後処理スクリプト」とのすべてを備えるパッチに限定されるものではない。具体的には、「置き換えファイル」と「前処理スクリプト」と「後処理スクリプト」との内一部のみを備えるパッチであっても良い。例えば、パッチを適用する際に、ファイルの置き換えを実行せず、後処理スクリプトや前処理スクリプトが、ユーザ定義が存在する定義ファイルに新規の環境変数を追加する処理のみを実行しても良い。
【００２９】
［パッチ適用装置の構成］
次に、図４を用いて、パッチ適用装置１００の構成を説明する。図４は、実施例１に係るパッチ適用装置の構成の一例を説明するためのブロック図である。図４に示すように、パッチ適用装置１００は、記憶部２００と、制御部３００とを備える。なお、以下では、特に言及しない限り、パッチ適用装置１００が、自パッチ適用装置１００のシステムにパッチを適用するものとして説明する。
【００３０】
記憶部２００は、制御部３００と接続され、制御部３００による各種パッチ適用処理に用いるデータを記憶する。図４に示すように、記憶部２００は、システム情報記憶部２０１と、適用済みパッチ情報記憶部２０２と、パッチ記憶部２０３と、統合パッチ記憶部２０４と、プログラム記憶部２０５と、バックアップデータ記憶部２０６とを備える。
【００３１】
システム情報記憶部２０１は、後述する情報取得部３２１と接続され、パッチが適用されるシステムについての情報（システム情報とも称する）を記憶する。具体的には、システム情報記憶部２０１は、図５に示すように、パッチ適用装置１００が備えるプログラムについてのプログラム情報を記憶し、また、パッチ適用装置１００が備えるハードウェアのアーキテクチャについてのアーキテクチャ情報を記憶する。図５は、実施例１におけるシステム情報記憶部を説明するための図である。
【００３２】
図５に示す例では、システム情報記憶部２０１は、プログラム情報「app1」や「app2」や「app3」などを記憶する。すなわち、パッチ適用装置１００は、プログラム情報「app1」や「app2」や「app3」によって識別されるプログラムを備えることを示す。また、システム情報記憶部２０１は、アーキテクチャ情報「arch1」を記憶する。すなわち、パッチ適用装置１００は、アーキテクチャ情報「arch1」によって示されるハードウェアのアーキテクチャを備えることを示す。
【００３３】
なお、パッチ適用装置１００が備えるプログラムとは、パッチ適用装置１００にインストールされたプログラムが該当し、例えば、ＯＳ（Operating  System）や各種のアプリケーションプログラムなどが該当する。
【００３４】
また、パッチ適用装置１００が備えるプログラムは、パッチが適用される対象となり、パッチ適用装置１００が、パッチ適用装置１００が備えるプログラムに対してパッチを適用する。また、システム情報記憶部２０１が記憶するプログラム情報やアーキテクチャ情報は、情報取得部３２１によって用いられる。
【００３５】
適用済みパッチ情報記憶部２０２は、情報取得部３２１と後述する統合パッチ適用部３１３と接続され、パッチ適用装置１００が備えるプログラムに適用済みであるパッチについてのパッチ情報を記憶する。
【００３６】
図６に示す例では、適用済みパッチ情報記憶部２０２は、パッチ情報「AA」や「bb」や「cc」を記憶する。なお、図６は、実施例１における適用済みパッチ情報記憶部を説明するための図である。すなわち、パッチ適用装置１００では、パッチ「AA」や「bb」や「cc」が適用済みであることを示す。
【００３７】
また、適用済みパッチ情報記憶部２０２が記憶する適用済みであるパッチについてのパッチ情報は、統合パッチ適用部３１３によって格納され、情報取得部３２１によって用いられる。
【００３８】
パッチ記憶部２０３は、後述するパッチ関係チェック部３２２と接続され、図７に示すように、パッチを記憶し、例えば、パッチ情報「AA」や「BB」や「CC」によって識別されるパッチ各々を記憶する。なお、図７は、実施例１におけるパッチ記憶部を説明するための図である。
【００３９】
例えば、図７に示すように、パッチ記憶部２０３は、「パッチ情報」に対応づけて、「ファイルリスト」と「アーキテクチャリスト」と「プログラムリスト」と「依存パッチ情報リスト」と「吸収パッチ情報リスト」と「排他パッチ情報リスト」とを記憶する。また、パッチ記憶部２０３は、「パッチ情報」に対応づけて、「前処理スクリプト」と「置き換えファイル」と「後処理スクリプト」とを記憶する。
【００４０】
図７に示す例では、パッチ記憶部２０３は、パッチ情報「AA」に対応づけて、ファイルリスト「/aaaadir/aaaaaaaa1〜/aaaadir/aaaaaaaaN」を記憶し、アーキテクチャリストにアーキテクチャ情報「arch1」と「arch2」とを記憶する。また、パッチ情報記憶部２０３は、パッチ情報「AA」に対応づけて、プログラムリストに、プログラム情報「app1」や「app2」「app3」を記憶する。また、パッチ記憶部２０３は、パッチ情報「AA」に対応づけて、依存パッチ情報リストと吸収パッチ情報リストと排他パッチ情報リストとにパッチ情報を記憶しない。また、パッチ記憶部２０３は、パッチ情報「AA」に対応づけて、前処理スクリプト「scriptBaaaaaaaa」と置き換えファイル「aaaaaaaa1〜aaaaaaaaN」と後処理スクリプト「scriptAaaaaaaaa」とを記憶する。
【００４１】
また、例えば、パッチ記憶部２０３は、パッチ適用装置１００を管理する管理者によってパッチが格納され、または、パッチ適用装置１００が備えるプログラムの配布元から新たなパッチが送信されると、パッチ適用装置１００が新たなパッチを受信してパッチ記憶部２０３に格納する。
【００４２】
また、パッチ記憶部２０３が記憶するパッチ各々は、パッチ関係チェック部３２２によって用いられる。
【００４３】
統合パッチ記憶部２０４は、後述する業務停止再開処理部３１２と統合パッチ適用部３１３と統合パッチ作成部３２３と接続され、複数のパッチを一つに統合したパッチである統合パッチを記憶する。統合パッチ記憶部２０４が記憶する統合パッチは、統合パッチ作成部３２３によって格納され、業務停止再開処理部３１２や統合パッチ適用部３１３によって用いられ、例えば、統合パッチ適用部３１３によって削除される。
【００４４】
ここで、図８と図９とを用いて、統合パッチ記憶部２０４が記憶する統合パッチの構造の一例について説明する。なお、図８と図９とは、実施例１における統合パッチの構造の一例を説明するための図である。図８に示すように、統合パッチは、「統合パッチ情報ファイル」と複数のパッチとを含み、図８に示す例では、Ｎ個のパッチを含む。
【００４５】
「統合パッチ情報ファイル」とは、統合パッチに関する情報であり、図９に示す例では、「統合パッチ情報」と、「パッチ情報」と「依存パッチ情報リスト」との対応付けとを含む。「統合パッチ情報」とは、統合パッチを識別する識別情報であり、図９に示す例では、統合パッチ情報「NN」が該当する。
【００４６】
「パッチ情報」と「依存パッチ情報リスト」との対応付けについて説明する。「統合パッチ情報ファイル」に含まれる「パッチ情報」とは、統合パッチに含まれるパッチ各々についてのパッチ情報である。また、パッチ情報に対応づけられた「依存パッチ情報リスト」とは、対応するパッチ情報によって識別されるパッチについての「依存パッチ情報リスト」である。
【００４７】
プログラム記憶部２０５は、業務停止再開処理部３１２と統合パッチ適用部３１３と接続され、パッチ適用装置１００が備えるプログラムを記憶する。具体的には、プログラム記憶部２０５は、システム情報記憶部２０１によって記憶されているプログラム情報によって識別されるプログラム各々を記憶する。すなわち、プログラム記憶部２０５は、パッチが適用される対象となるプログラム各々を記憶する。
【００４８】
また、プログラム記憶部２０５が記憶するプログラムは、業務停止再開処理部３１２によってバックアップデータが作成され、また、統合パッチ適用部３１３によって統合パッチが適用される。
【００４９】
バックアップデータ記憶部２０６は、業務停止再開処理部３１２と接続され、プログラム記憶部２０５が記憶するプログラムに関するバックアップデータを記憶する。バックアップデータ記憶部２０６が記憶するバックアップデータは、パッチが適用されるプログラムについてのバックアップデータであり、例えば、パッチを適用すると置き換えられるファイル各々が該当する。また、バックアップデータ記憶部２０６が記憶するバックアップデータは、業務停止再開処理部３１２によって格納される。
【００５０】
また、バックアップデータ記憶部２０６は、適用済みのパッチを削除する際に用いられるパッチ削除用データを記憶する。なお、パッチ削除用データとは、適用処理が完了したパッチについてのバックアップデータが該当し、業務停止再開処理部３１２によって格納される。
【００５１】
制御部３００は、記憶部２００と接続され、各種のパッチ適用処理手順などを規定したプログラムを格納するための内部メモリを有し、種々のパッチ適用処理を実行する。図４に示すように、制御部３００は、パッチ適用制御部３１０と、パッチ変換制御部３２０とを備える。
【００５２】
パッチ適用制御部３１０は、記憶部２００とパッチ変換制御部３２０と接続され、要求受付処理部３１１と、業務停止再開処理部３１２と、統合パッチ適用部３１３とを備える。パッチ適用制御部３１０は、パッチ変換制御部３２０と協働することで統合パッチを適用する処理を制御し、具体的には、パッチ変換制御部３２０によって作成された統合パッチを適用する。
【００５３】
パッチ変換制御部３２０は、記憶部２００とパッチ適用制御部３１０と接続され、情報取得部３２１と、パッチ関係チェック部３２２と、統合パッチ作成部３２３とを備える。パッチ変換制御部３２０は、パッチ適用制御部３１０と協働することで統合パッチを適用する処理を制御し、具体的には、パッチ適用制御部３１０によって適用される統合パッチを作成する。
【００５４】
以下では、まず、図１０を用いて、実施例１に係るパッチ適用装置１００による全体処理の流れの一例を簡単に説明する。図１０を用いての説明では、他の部との接続関係や詳細な説明については省略する。なお、図１０は、実施例１に係るパッチ適用装置による全体処理の流れの一例を簡単に説明するためのシーケンス図である。
【００５５】
図１０に示すように、パッチ適用装置１００では、例えば、管理者によってパッチを適用する指示である適用指示が送られると（ステップＳ１０１）、要求受付処理部３１１が、情報取得部３２１に統合パッチ作成指示を送る（ステップＳ１０２）。なお、統合パッチ作成指示とは、統合パッチを作成する旨の指示である。
【００５６】
そして、情報取得部３２１は、システム情報等を取得する（ステップＳ１０３）。具体的には、情報取得部３２１は、パッチ適用装置１００に関するシステム情報をシステム情報記憶部２０１から読み出し、また、適用済みパッチ情報記憶部２０２から、適用済みであるパッチについてのパッチ情報を読み出す。そして、情報取得部３２１は、取得したシステム情報とパッチ情報とをパッチ関係チェック部３２２に送る（ステップＳ１０４）。
【００５７】
そして、パッチ適用装置１００では、パッチ関係チェック部３２２が、システム運用中にパッチのチェックを行う（ステップＳ１０５）。つまり、パッチ関係チェック部３２２は、パッチ記憶部２０３に記憶されたパッチ各々について、パッチ適用装置１００への適用の要否をシステム運用中にチェックする。また、パッチ関係チェック部３２２は、システムに適用する複数のパッチ各々について、依存関係がある他のパッチをシステム運用中に識別する。そして、パッチ関係チェック部３２２は、チェック結果を統合パッチ作成部３２３に送る（ステップＳ１０６）。
【００５８】
そして、パッチ適用装置１００では、統合パッチ作成部３２３が、統合パッチを作成し（ステップＳ１０７）、統合パッチの作成が完了した旨の情報である作成完了通知を業務停止再会処理部３１２に送る（ステップＳ１０８）。
【００５９】
そして、パッチ適用装置１００では、業務停止再開処理部３１２が、後述する業務停止処理を行い（ステップＳ１０９）、業務停止処理が完了した旨の情報である業務停止処理完了通知を統合パッチ適用部３１３に送る（ステップＳ１１０）。
【００６０】
そして、パッチ適用装置１００では、統合パッチ適用部３１３が、統合パッチ作成部３２３によって作成された統合パッチを適用する（ステップＳ１１１）。つまり、統合パッチ適用部３１３は、識別の結果依存関係があると識別されたパッチ間では、依存関係に基づいた順番にてパッチ各々をシステム停止中に適用する。また、統合パッチ適用部３１３は、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行してシステム停止中に適用する。
【００６１】
そして、統合パッチ適用部３１３は、統合パッチの適用が完了した旨の情報である統合パッチ適用完了通知を業務停止再開処理部３１２に送る（ステップＳ１１２）。その後、業務停止再開処理部３１２は、業務再開処理を行う（ステップＳ１１３）。
【００６２】
図４の説明に戻ると、要求受付処理部３１１は、情報取得部３２１と接続され、図１１の（１）に示すように、統合パッチを作成する作成指示を情報取得部３２１に送る。なお、図１１は、実施例１に係るパッチ適用装置１００の各部を説明するための図である。
【００６３】
ここで、図１１は、パッチ適用装置１００の各部の処理の関係を概念的に説明するための図であり、図１１に示すターゲットシステムとは、パッチを適用する対象となるシステムを示す。また、図１１に示すバックアップシステムとは、ターゲットシステムのバックアップを行うシステムであり、バックアップデータを保持するシステムである。
【００６４】
例えば、要求受付処理部３１１は、管理者からパッチを適用する指示である適用指示を受け付けると、通常のパッチ適用処理が開始されないように制御した上で、情報取得部３２１に統合パッチ作成指示を送る。なお、要求受付処理部３１１は、管理者によって設定された所定のタイミングとなると、通常のパッチ適用処理が開始されないように制御した上で、統合パッチ作成指示を送ってもよい。
【００６５】
なお、通常のパッチ適用処理が開始されないように制御するのは、統合パッチを作成して統合パッチを適用する一連の処理と並行して、個々のパッチを適用する処理が行われないようにするためである。
【００６６】
情報取得部３２１は、システム情報記憶部２０１と適用済みパッチ情報記憶部２０２と要求受付処理部３１１とパッチ関係チェック部３２２と接続される。情報取得部３２１は、要求受付処理部３１１から統合パッチ作成指示を受け付けると、図１１の（２）に示すように、システム情報記憶部２０１からシステム情報を読み出し、適用済みパッチ情報記憶部２０２からパッチ情報各々を読み出す。
【００６７】
例えば、情報取得部３２１は、システム情報記憶部２０１から、プログラム情報「app1」や「app2」や「app3」を読み出し、アーキテクチャ情報「arch1」を読み出す。
【００６８】
また、情報取得部３２１は、適用済みパッチ情報記憶部２０２から、適用済みであるパッチについてのパッチ情報を読み出し、例えば、パッチ情報「AA」や「bb」や「cc」を読み出す。
【００６９】
また、情報取得部３２１は、読み出したシステム情報やパッチ情報をパッチ関係チェック部３２２に送る。具体的には、情報取得部３２１は、プログラム情報と、アーキテクチャ情報と、適用済みであるパッチについてのパッチ情報とを送る。
【００７０】
パッチ関係チェック部３２２は、パッチ記憶部２０３と情報取得部３２１と統合パッチ作成部３２３と接続される。また、パッチ関係チェック部３２２は、情報取得部３２１から、プログラム情報と、アーキテクチャ情報と、適用済みであるパッチについてのパッチ情報とを受け付ける。例えば、パッチ関係チェック部３２２は、プログラム情報「app1」や「app2」や「app3」や、アーキテクチャ情報「arch1」、適用済みであるパッチについてのパッチ情報「AA」や「bb」や「cc」を受け付ける。
【００７１】
また、パッチ関係チェック部３２２は、パッチ記憶部２０３に記憶されたパッチすべてを読み出す。例えば、パッチ関係チェック部３２２は、パッチ記憶部２０３から、パッチ「AA」や「BB」などを読み出す。
【００７２】
また、図１１の（３）に示すように、パッチ関係チェック部３２２は、パッチ記憶部２０３に記憶されたパッチ各々について、パッチのチェックを行う。具体的には、パッチ関係チェック部３２２は、パッチ記憶部２０３に記憶されたパッチ各々について、適用の要否をチェックし、また、他のパッチとの関係をチェックする。
【００７３】
パッチ記憶部２０３に記憶されたパッチについて適用の要否をチェックする処理について説明する。パッチ関係チェック部３２２は、プログラム情報と、アーキテクチャ情報と、適用済みであるパッチについてのパッチ情報と、パッチ記憶部２０３に記憶されたパッチについての「パッチ情報ファイル」とを用いて、適用の要否をチェックする。
【００７４】
以下では、適用の要否をチェックする手法の一例として、種々の判定処理を行い、判定結果を用いて適用の要否をチェックする手法について説明する。以下では、ハードウェアのアーキテクチャが適用対象となるかの判定と、パッチ適用装置１００のプログラムが適用対象となるかの判定と、適用済みではないかの判定と、排他関係にある他のパッチが適用済みではないかの判定とを行う場合について説明する。また、以下では、種々の判定処理について説明し、その後、判定結果を用いて適用の要否をチェックする手法について説明する。
【００７５】
ハードウェアのアーキテクチャが適用対象となるかを判定する点について説明する。パッチ関係チェック部３２２は、読み出したパッチについての「アーキテクチャリスト」各々について、パッチ適用装置１００についてのアーキテクチャ情報が含まれているかを判定する。
【００７６】
パッチ適用装置１００についてのアーキテクチャ情報が「arch1」である場合を例に、具体的に説明する。パッチ関係チェック部３２２は、パッチ記憶部２０３に記憶されたパッチ各々についてのアーキテクチャリストに、「arch1」が含まれるかを判定する。
【００７７】
例えば、パッチ関係チェック部３２２は、パッチ「DD」以外のパッチ（例えば、パッチ「XX」や「YY」など）についての「アーキテクチャリスト」に、アーキテクチャ情報「arch1」が含まれると判定する。また、パッチ関係チェック部３２２は、パッチ「DD」についてのアーキテクチャリストに、アーキテクチャ情報「arch1」が含まれていないと判定する。すなわち、パッチ関係チェック部３２２は、パッチ「DD」以外のパッチ（例えば、パッチ「XX」や「YY」など）について、パッチ適用装置１００のハードウェアのアーキテクチャが適用対象であり、パッチ「DD」について適用対象でないと判定する。
【００７８】
パッチ適用装置１００のプログラムが適用対象となるかを判定する点について説明する。パッチ関係チェック部３２２は、読み出したパッチについての「プログラムリスト」各々について、パッチ適用装置１００についてのプログラム情報のいずれかが含まれるかを判定する。
【００７９】
パッチ適用装置１００についてのプログラム情報が「app1」や「app2」や「app3」である場合を例に、具体的に説明する。パッチ関係チェック部３２２は、パッチ記憶部２０３に記憶されたパッチ各々についてのプログラムリストに、「app1」や「app2」や「app3」が含まれるかを判定する。
【００８０】
例えば、パッチ関係チェック部３２２は、パッチ「EE」以外のパッチ（例えば、パッチ「XX」や「YY」など）についての「プログラムリスト」に、プログラム情報「app1」や「app2」や「app3」のいずれかが含まれると判定し、「EE」についての「プログラムリスト」に、いずれも含まれていないと判定する。すなわち、パッチ関係チェック部３２２は、パッチ「EE」以外のパッチ（例えば、パッチ「XX」や「YY」など）について、パッチ適用装置１００のプログラムが適用対象であり、パッチ「EE」について適用対象でないと判定する。
【００８１】
適用済みではないかを判定する点について説明する。パッチ関係チェック部３２２は、適用対象となるパッチについての「パッチ情報」各々について、読み出したパッチについての「パッチ情報」と一致するかを判定する。すなわち、パッチ関係チェック部３２２は、適用済みであるパッチについてのパッチ情報と一致するかを判定する。
【００８２】
適用済みであるパッチについてのパッチ情報がパッチ情報「AA」である場合を例に、具体的に説明する。パッチ関係チェック部３２２は、パッチ記憶部２０３に記憶されたパッチ各々について、パッチ情報「AA」と一致するかを判定する。
【００８３】
例えば、パッチ関係チェック部３２２は、パッチ「AA」以外のパッチ（例えば、パッチ「XX」や「YY」など）について一致しないと判定し、また、パッチ情報「AA」について一致すると判定する。すなわち、パッチ関係チェック部３２２は、パッチ「AA」以外のパッチ（例えば、パッチ「XX」や「YY」など）について、適用済みではなく適用対象であり、パッチ「AA」について、適用済みであり適用対象でないと判定する。
【００８４】
排他関係にある他のパッチが適用済みではないかを判定する点について説明する。パッチ関係チェック部３２２は、パッチ記憶部２０３に記憶されたパッチ各々についての「排他パッチ情報リスト」に、適用済みであるパッチについてのパッチ情報が含まれているかを判定する。
【００８５】
適用済みであるパッチについてのパッチ情報がパッチ情報「AA」であり、パッチ「CC」についての「排他パッチ情報リスト」に「AA」が含まれる場合を例に、具体的に説明する。また、パッチ「XX」や「YY」についての「排他パッチ情報リスト」にはパッチ情報が含まれないものとして説明する。
【００８６】
パッチ関係チェック部３２２は、パッチ「CC」以外のパッチ（例えば、パッチ「XX」や「YY」など）についての「排他パッチ情報リスト」に、パッチ情報「AA」が含まれないと判定し、また、パッチ情報「CC」についての「排他パッチ情報リスト」に、適用済みであるパッチについてのパッチ情報「AA」が含まれると判定する。すなわち、パッチ関係チェック部３２２は、パッチ「CC」以外のパッチ（例えば、パッチ「XX」や「YY」など）について、排他関係にある他のパッチが適用済みではなく、適用対象であると判定する。また、パッチ関係チェック部３２２は、パッチ「CC」について、排他関係にある他のパッチが適用済みであり、新たな適用対象ではないと判定する。
【００８７】
判定結果を用いて適用の要否をチェックする点について説明する。パッチ関係チェック部３２２は、ハードウェアのアーキテクチャが適用対象であり、プログラムが適用対象であり、自パッチが適用済みではなく適用対象であり、排他関係にある他のパッチが適用済みではなく適用対象であると判定したパッチすべてを選別する。例えば、パッチ関係チェック部３２２は、パッチ記憶部２０３に記憶されたパッチの内、パッチ「BB」「WW」「XX」「YY」「ZZ」を選別する。
【００８８】
なお、ここで、パッチ関係チェック部３２２は、選別したパッチの内、相互に排他関係のあるパッチがある場合には、いずれか一方のパッチを除外する。
【００８９】
次に、他のパッチとの関係をチェックする処理について説明する。つまり、システムに適用する複数のパッチ各々について、依存関係がある他のパッチをシステム運用中に識別する点について説明する。
【００９０】
パッチ関係チェック部３２２は、適用するパッチがあるかを判定し、つまり、選別したパッチの有無を判定する。そして、パッチ関係チェック部３２２は、あると判定すると、選別したパッチ各々について、他の選別したパッチ各々との関係を識別し、具体的には、依存関係と吸収関係とを識別する。
【００９１】
なお、パッチ関係チェック部３２２は、適用するパッチがあるかを判定し、無いと判定した場合には、統合パッチを作成する処理を終了し、例えば、要求受付処理部３１１による制御を解除する。つまり、要求受付処理部３１１は、通常のパッチ適用処理が開始されないよう制御しているため、パッチ関係チェック部３２２が、当該制御を解除する。
【００９２】
例えば、パッチ関係チェック部３２２は、パッチ「XX」について、パッチ「YY」と「ZZ」とに依存関係があると識別し、パッチ「XX」よりも前にパッチ「YY」と「ZZ」が実行される適用順番であると判定する。また、例えば、パッチ関係チェック部３２２は、他のパッチに依存されているパッチの適用順番が早くなるように、適用順番を判定する。例えば、パッチ「YY」と「ZZ」について、パッチ「XX」よりも早い適用順番であると判定する。
【００９３】
また、例えば、パッチ関係チェック部３２２は、パッチ「XX」について、パッチ「AA」や「BB」を吸収しているパッチであると識別する。そして、パッチ関係チェック部３２２は、選別したパッチ各々の内、他のパッチに吸収されるパッチを除外し、例えば、パッチ「BB」を選別したパッチから除外する。
【００９４】
また、パッチ関係チェック部３２２は、チェック結果を統合パッチ作成部３２３に送り、具体的には、選別したパッチ各々と、選別したパッチ各々について判定した適用順番とを送る。
【００９５】
統合パッチ作成部３２３は、統合パッチ記憶部２０４とパッチ関係チェック部３２２と業務停止再開処理部３１２と接続される。統合パッチ作成部３２３は、パッチ関係チェック部３２２から、選別したパッチ各々と、選別したパッチ各々について判定した適用順番とを受け付ける。そして、統合パッチ作成部３２３は、図１１の（４）に示すように、統合パッチをシステム運用中に作成する。なお、統合パッチは、パッチ関係チェック部３２２によって依存関係が識別されたパッチ各々が統合されたパッチとなる。そして、統合パッチ作成部３２３は、統合パッチ記憶部２０４に統合パッチを格納する。
【００９６】
適用するパッチ各々をまとめた統合パッチを作成する処理について説明する。統合パッチ作成部３２３は、「統合パッチ情報ファイル」を作成する。具体的には、統合パッチ作成部３２３は、任意の「統合パッチ情報」を作成し、例えば、統合パッチ情報「NN」を作成する。また、統合パッチ作成部３２３は、「統合パッチ情報ファイル」に含まれるパッチ情報として、決定した適用順番にて選別したパッチ各々についてのパッチ情報を並べる。また、統合パッチ作成部３２３は、並べたパッチ各々の内依存関係があるパッチについて、依存関係にあるパッチ各々についてのパッチ情報を「依存パッチ情報リスト」として対応づける。
【００９７】
また、統合パッチ作成部３２３は、「統合パッチ情報ファイル」と、パッチ関係チェック部３２２によって選別された複数のパッチとをまとめて統合パッチとし、統合パッチ記憶部２０４に格納する。すなわち、統合パッチ作成部３２３は、統合パッチを統合パッチ記憶部２０４に格納する。
【００９８】
また、統合パッチ作成部３２３は、作成完了通知を業務停止再会処理部３１２に送り、例えば、統合パッチ記憶部２０４に格納した統合パッチについての統合パッチ情報を送る。
【００９９】
業務停止再開処理部３１２は、統合パッチ記憶部２０４とプログラム記憶部２０５とバックアップデータ記憶部２０６と統合パッチ適用部３１３と統合パッチ作成部３２３と接続される。
【０１００】
業務停止再開処理部３１２は、統合パッチ作成部３２３から統合パッチ情報を受け付けると、図１１の（５）に示すように、パッチを適用することで置き換えられるファイルのバックアップ処理を行う。つまり、業務停止再開処理部３１２は、パッチを適用することで置き換えられるファイルについてバックアップを行う。
【０１０１】
また、業務停止再開処理部３１２は、バックアップ処理を実行した後に、業務停止処理を行う。また、業務停止再開処理部３１２は、業務停止処理を行うと、業務停止処理完了通知を統合パッチ適用部３１３に送る。以下では、まず、バックアップ処理について説明し、その後、業務停止処理について説明する。
【０１０２】
業務停止再開処理部３１２によるバックアップ処理について説明する。業務停止再開処理部３１２は、統合パッチ記憶部２０４から、統合パッチに含まれるパッチ各々についての「ファイルリスト」を読み出す。そして、業務停止再開処理部３１２は、ファイルリストによって識別されるファイル各々についてのバックアップデータを作成し、バックアップデータ記憶部２０６に格納する。すなわち、業務停止再開処理部３１２は、統合パッチを適用することによって置き換えられるファイル各々について、バックアップデータを作成する。
【０１０３】
図９に示す例では、業務停止再開処理部３１２は、統合パッチ「NN」に含まれるパッチ「XX」について、ファイルリスト「/xxxxdir/xxxxxxxx1」〜「/xxxxdir/xxxxxxxxN」を読み出す。そして、業務停止再開処理部３１２は、ファイルリスト「/xxxxdir/xxxxxxxx1」〜「/xxxxdir/xxxxxxxxN」によって識別されるファイル各々についてのバックアップデータを作成し、バックアップデータ記憶部２０６に格納する。また、業務停止再開処理部３１２は、統合パッチ「NN」に含まれるパッチ「XX」以外のパッチについて、同様にバックアップデータを作成してバックアップデータ記憶部２０６に格納する。
【０１０４】
なお、業務停止再開処理部３１２は、適用処理が完了したパッチについてのバックアップデータについて、適用済みのパッチを削除する際に用いられるデータであるパッチ削除用データとしてバックアップデータ記憶部２０６に格納する。
【０１０５】
業務停止再開処理部３１２による業務停止処理について説明する。業務停止再開処理部３１２は、統合パッチについてのバックアップデータすべてをバックアップデータ記憶部２０６に格納すると、プログラム記憶部２０５によって記憶されたプログラム各々を用いた処理が行われないように制御する。例えば、業務停止再開処理部３１２は、利用者からの指示を受け付けないように制御する。
【０１０６】
また、業務停止再開処理部３１２は、統合パッチ適用部３１３から統合パッチが適用された旨を受け付けると、業務再開処理を行い、パッチ適用後に行う処理を実行する。
【０１０７】
業務停止再開処理部３１２による業務再開処理について説明する。業務停止再開処理部３１２は、プログラム記憶部２０５によって記憶されたプログラム各々を用いた処理が行われないように制御していた処理を停止し、例えば、利用者からの指示を再び受け付けるように制御する。
【０１０８】
業務停止再開処理部３１２によるパッチ適用後に行う処理について説明する。図１１の（７）に示すように、業務停止再開処理部３１２（「格納部」とも称する）は、システムに適用されたパッチに関する情報を記憶する記憶部に、統合パッチ適用部３１３によって適用されたパッチ各々に関する情報各々をシステム運用中に格納する。言い換えると、業務停止再開処理部３１２は、適用処理が完了したパッチ各々についてのパッチ情報を適用済みパッチ情報記憶部２０２に格納する。すなわち、パッチが適用されたことを示す情報をシステムに反映する。
【０１０９】
例えば、統合パッチ「NN」を適用する適用処理が完了した場合には、統合パッチ「NN」に含まれるパッチについてのパッチ情報「XX」や「YY」などを格納する。また、業務停止再開処理部３１２は、要求受付処理部３１１による制御を解除する。つまり、要求受付処理部３１１によって、通常のパッチ適用処理が開始されないような制御が行われているため、業務停止再開処理部３１２が解除する。
【０１１０】
統合パッチ適用部３１３は、適用済みパッチ情報記憶部２０２と統合パッチ記憶部２０４とプログラム記憶部２０５と業務停止再開処理部３１２と接続される。統合パッチ適用部３１３は、業務停止再開処理部３１２から業務停止処理を行った旨を受け付けると、統合パッチ記憶部２０４から統合パッチを読み出す。そして、図１１の（６）に示すように、統合パッチ適用部３１３は、プログラム記憶部２０５に記憶されたプログラム各々に統合パッチを適用する。すなわち、例えば、統合パッチ適用部３１３は、統合パッチに含まれるパッチ各々について、前処理スクリプトを実行し、ファイルを置き換え、後処理スクリプトを実行する。
【０１１１】
統合パッチ適用部３１３は、パッチ関係チェック部３２２による識別の結果依存関係があると識別されたパッチ間では、依存関係に基づいた順番にてパッチ各々をシステム停止中に適用する。また、統合パッチ適用部３１３は、パッチ関係チェック部３２２による識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行してシステム停止中に適用する。
【０１１２】
ここで、統合パッチ適用部３１３による統合パッチ適用処理について説明する。統合パッチ適用部３１３は、相互に依存関係がないと識別されたパッチ各々を並行して適用する。例えば、統合パッチ適用部３１３は、統合パッチの「統合パッチ情報ファイル」から、「パッチ情報」と「依存パッチ情報リスト」との対応付け各々を読み出す。そして、統合パッチ適用部３１３は、依存パッチ情報リストにパッチ情報が含まれないパッチ情報や、依存パッチ情報リストに含まれるパッチすべてが適用されたパッチ情報について、パッチを読み出して適用する。また、パッチを読み出して適用する際には、一つのパッチの適用が終了した後に、次のパッチの適用を開始するのではなく、並行して複数のパッチを適用する。
【０１１３】
例えば、統合パッチ適用部３１３は、統合パッチ情報リストを参照し、依存パッチ情報リストにパッチ情報が含まれていないパッチ「YY」と「ZZ」とを特定し、特定したパッチ「YY」と「ZZ」とを並行して適用する。また、統合パッチ適用部３１３は、パッチ「YY」の適用処理が終了すると、パッチ「YY」に依存するパッチであるパッチ「WW」の適用処理を開始し、また、パッチ「YY」と「ZZ」との適用処理が終了すると、パッチ「XX」の適用処理を開始する。ここで、パッチ「YY」の適用処理のみが終了し、パッチ「ZZ」の処理が終了していない場合には、パッチ「WW」と「ZZ」とが並行して適用されることになるが、パッチ「WW」と「ZZ」とには依存関係がなく、並行して適用する。同様に、統合パッチ適用部３１３は、パッチ「WW」と「XX」とを並行して適用してもよい。なお、個々のパッチを適用する適用処理については、図１４を用いて説明するため、説明を省略する。
【０１１４】
また、統合パッチ適用部３１３は、統合パッチを適用すると、統合パッチ適用完了通知業務停止再開処理部３１２に送る。
【０１１５】
また、パッチを適用する際にシステムが停止されるのは、図１１の（６）に示す処理のみとなり、具体的には、前処理スクリプトの実行中や、ファイルの置き換え処理、後処理スクリプトの実行中のみとなる。すなわち、他の処理を実行している間には業務がシステム運用中となる。
【０１１６】
また、パッチ適用装置１００は、既知のサーバ、パーソナルコンピュータ、ワークステーション、携帯電話、ＰＨＳ端末、移動体通信端末またはＰＤＡなどの情報処理装置に、パッチ適用制御部３１０とパッチ変換制御部３２０と記憶部２００との各機能を搭載することによって実現することもできる。
【０１１７】
［パッチ適用装置による処理］
次に、図１２〜１４を用いて、パッチ適用装置１００による処理を説明する。以下では、実施例１に係るパッチ適用装置１００による全体処理の流れの一例について説明し、実施例１におけるパッチ変換制御部３２０による処理の流れの一例について説明する。そして、実施例１に係るパッチ適用装置１００による統合パッチに含まれる個々のパッチ適用処理の流れの一例について説明する。
【０１１８】
［パッチ適用装置による全体処理］
図１２を用いて、実施例１に係るパッチ適用装置１００による全体処理の流れの一例について説明する。図１２は、実施例１に係るパッチ適用装置による全体処理の流れの一例を説明するためのフローチャートである。なお、図１２を用いて、実施例１に係るパッチ適用装置１００による全体処理の流れの一例について説明する際には、統合パッチを作成する処理については簡単に説明する。
【０１１９】
図１２に示すように、パッチ適用装置１００では、要求受付処理部３１１は、適用指示を受け付けると（ステップＳ２０１肯定）、通常のパッチ適用コマンドが起動されないようにパッチ適用装置１００をロックする（ステップＳ２０２）。つまり、要求受付処理部３１１は、通常のパッチ適用処理が開始されないように制御する。
【０１２０】
その後、パッチ適用装置１００では、パッチ変換制御部３２０が、統合パッチを作成し（ステップＳ２０３）、例えば、統合パッチ「NN」を作成して統合パッチ記憶部２０４に格納する。そして、業務停止再開処理部３１２は、統合パッチが作成された後に、バックアップ処理を行い（ステップＳ２０４）、つまり、業務停止再開処理部３１２は、置き換え対象となるファイルについてのバックアップデータを作成してバックアップデータ記憶部２０６に格納する。続いて、業務停止再開処理部３１２は、業務停止処理を行い（ステップＳ２０５）、例えば、プログラム記憶部２０５によって記憶されたプログラム各々を用いた処理が行われないように制御する。
【０１２１】
そして、パッチ適用装置１００では、統合パッチ適用部３１３が、統合パッチを適用する（ステップＳ２０６）。つまり、統合パッチ適用部３１３は、依存関係があると識別されたパッチ間では、依存関係に基づいた順番にてパッチ各々をシステム停止中に適用し、依存関係がないと識別されたパッチ間では、パッチ各々を並行してシステム停止中に適用する。
【０１２２】
その後、統合パッチの適用が完了すると、業務停止再開処理部３１２は、業務再開処理を行い（ステップＳ２０７）、つまり、プログラム記憶部２０５によって記憶されたプログラム各々を用いた処理が行われないように制御していた処理を停止する。
【０１２３】
そして、パッチ適用装置１００では、業務停止再開処理部３１２が、適用済みパッチ情報記憶部２０２にパッチ情報を格納する（ステップＳ２０８）。例えば、業務停止再開処理部３１２は、統合パッチ「NN」を適用する適用処理が完了した場合には、統合パッチ「NN」に含まれるパッチについてのパッチ情報「XX」や「YY」などを格納する。そして、業務停止再開処理部３１２は、要求受付処理部３１１によるロックを解除し（ステップＳ２０９）、つまり、要求受付処理部３１１によって、通常のパッチ適用処理が開始されないような制御が行われているため、業務停止再開処理部３１２が解除する。
【０１２４】
なお、図１２に示した各処理の内、ステップＳ２０５にて行われた業務停止処理からステップＳ２０７にて行われた業務再開処理との間の処理が行われる際にのみ、パッチ適用装置１００の状態が、プログラム記憶部２０５によって記憶されたプログラム各々を用いた処理が行われない状態となる。また、図１２に示した各処理の内、ステップＳ２０１〜ステップＳ２０４、ステップＳ２０８〜ステップＳ２０９の各処理が行われる際には、パッチ適用装置１００の状態が、プログラム記憶部２０５によって記憶されたプログラム各々を用いた処理が行うことが可能な状態となる。
【０１２５】
［パッチ変換制御部による処理］
図１３を用いて、実施例１におけるパッチ変換制御部３２０による処理の流れの一例について説明する。図１３は、実施例１におけるパッチ変換制御部による処理の流れの一例を説明するためのフローチャートである。図１２に示すステップＳ２０３に対応する。
【０１２６】
図１３に示すように、パッチ変換制御部３２０では、システム情報取得部３２１は、統合パッチ作成指示を受け付けると（ステップＳ３０１肯定）、システム情報を取得し（ステップＳ３０２）、適用済みであるパッチについてのパッチ情報を取得する（ステップＳ３０３）。つまり、例えば、情報取得部３２１は、システム情報記憶部２０１から、プログラム情報「app1」や「app2」や「app3」を読み出し、アーキテクチャ情報「arch1」を読み出す。また、例えば、情報取得部３２１は、適用済みパッチ情報記憶部２０２から、適用済みであるパッチについてのパッチ情報を読み出し、例えば、パッチ情報「AA」や「bb」や「cc」を読み出す。
【０１２７】
そして、パッチ変換制御部３２０では、パッチ関係チェック部３２２が、パッチ記憶部２０３に記憶されたパッチすべてを取得し（ステップＳ３０４）、例えば、パッチ記憶部２０３から、パッチ「AA」や「BB」などを取得する。
【０１２８】
そして、パッチ変換制御部３２０では、パッチ関係チェック部３２２が、適用の要否をチェックする（ステップＳ３０５）。具体的には、パッチ関係チェック部３２２は、プログラム情報と、アーキテクチャ情報と、適用済みであるパッチについてのパッチ情報と、パッチ記憶部２０３に記憶されたパッチについての「パッチ情報ファイル」とを用いて、適用の要否をチェックする。そして、パッチを選別し、例えば、パッチ「BB」や「XX」や「YY」などを選別する。
【０１２９】
そして、パッチ変換制御部３２０では、パッチ関係チェック部３２２は、適用するパッチがあるかを判定し（ステップＳ３０６）、つまり、選別したパッチの有無を判定する。ここで、パッチ関係チェック部３２２は、適用するパッチがないと判定すると（ステップＳ３０６否定）、処理を終了する。一方、パッチ関係チェック部３２２は、適用するパッチがあると判定すると（ステップＳ３０６肯定）、他のパッチとの関係をチェックする（ステップＳ３０７）。例えば、パッチ関係チェック部３２２は、パッチ「XX」について、パッチ「YY」や「ZZ」と依存関係があると識別し、また、パッチ「XX」について、パッチ「AA」や「BB」を吸収しているパッチであると識別する。
【０１３０】
そして、統合パッチ作成部３２３は、適用順番を決定する（ステップＳ３０８）。例えば、統合パッチ作成部３２３は、他のパッチと依存関係があると識別されたパッチ各々について、適用順番を決定し、また、他のパッチに依存されているパッチの適用順番が早くなるように、適用順番を決定する。そして、統合パッチ作成部３２３は、適用するパッチ各々をまとめて統合パッチを作成する（ステップＳ３０９）。具体的には、統合パッチ作成部３２３は、「統合パッチ情報ファイル」を作成し、パッチ関係チェック部３２２によって選別された複数のパッチと「統合パッチ情報ファイル」とをまとめて統合パッチとして、統合パッチ記憶部２０４に格納する。
【０１３１】
［個々のパッチ適用処理］
図１４を用いて、実施例１に係るパッチ適用装置１００による統合パッチに含まれる個々のパッチ適用処理の流れの一例について説明する。図１４は、実施例１に係るパッチ適用装置による統合パッチに含まれる個々のパッチ適用処理の流れの一例を説明するためのフローチャートである。なお、具体例を用いて説明する場合には、パッチ「XX」を適用する場合を例に用いて説明する。
【０１３２】
図１４に示すように、統合パッチ適用部３１３は、前処理スクリプトを実行し（ステップＳ４０１）、例えば、「scriptBxxxxxxxx」を実行する。なお、パッチに前処理スクリプトが含まれていない場合には、統合パッチ適用部３１３は、前処理スクリプトを実行する処理を行わない。
【０１３３】
そして、統合パッチ適用部３１３は、ファイルを置き換え（ステップＳ４０２）、例えば、「/xxxxdir/xxxxxxxx1」〜「/xxxxdir/xxxxxxxxN」によって識別されるファイル各々について、「xxxxxxxx1」〜「xxxxxxxxN」へと置き換える。なお、パッチに置き換えファイルが含まれていない場合には、統合パッチ適用部３１３は、ファイルの置き換えを実行する処理を行わない。
【０１３４】
そして、統合パッチ適用部３１３は、後処理スクリプトを実行し（ステップＳ４０３）、例えば、「scriptAxxxxxxxx」を実行する。なお、パッチに後処理スクリプトが含まれていない場合には、統合パッチ適用部３１３は、後処理スクリプトを実行する処理を行わない。
【０１３５】
［実施例１の効果］
上記したように、実施例１によれば、パッチ適用装置１００は、システムに適用する複数のパッチ各々について、依存関係がある他のパッチを識別する。そして、パッチ適用装置１００は、識別の結果依存関係があると識別されたパッチ間では、依存関係に基づいた順番にてパッチ各々を適用し、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行して適用する。この結果、パッチを効率的に適用することが可能である。
【０１３６】
具体的には、パッチ適用装置１００によれば、依存関係にないパッチ各々を並行して適用することができ、パッチ適用に要する所要時間を短縮可能である。また、依存関係を識別する処理を行うことで、行われる処理内容を減らすことができ、システムが停止する時間を短縮可能である。
【０１３７】
また、実施例１によれば、パッチ適用装置１００は、システムに適用されたパッチに関する情報を記憶する適用済みパッチ情報記憶部２０２に、適用されたパッチ各々に関する情報各々を格納するので、システムが停止する時間を短縮可能である。
【０１３８】
すなわち、図１５の（１）に示すように、パッチ各々を個々に適用した際に要する場合には、各パッチを適用する適用時間各々を合計した時間を要するのに対して、図１５の（２）に示す用に、パッチ各々を並行して適用することで、パッチ各々を適用するのに要する時間を短縮することが可能である。なお、図１５は、実施例１に係るパッチ適用装置による効果を説明するための図である。
【０１３９】
また、従来の手法では、個々のパッチ各々について、図１６に示す処理各々を別個に行っていた。すなわち、図１６に示すように、従来の手法では、他のパッチを適用する処理が開始されないようにロックした後に、他のパッチとの関係をチェックし、パッチ適用の要否をチェックする。そして、従来の手法では、パッチが適用対象である場合には、バックアップ処理を行い、パッチを適用する処理を実行し、その後、適用したパッチについての情報をシステムに反映し、他のパッチを適用する処理が開始されないためのロックを解除していた。ここで、図１７に示すように、従来の手法では、図１６に示す処理各々を実行する間、システムを停止していた。なお、図１６は、従来のパッチ適用処理を説明するためのフローチャートである。図１７は、従来のパッチ適用処理を説明するための図である。
【０１４０】
これに対して、実施例１によれば、パッチ適用装置１００は、他のパッチとの関係をチェックし、パッチ適用の要否をチェックする処理について、システム運用中に実行する。また、パッチ適用装置１００は、適用したパッチについての情報を適用済みパッチ情報記憶部２０２に格納する処理について、システム運用中に実行する。この結果、パッチ適用装置１００では、システム停止中に行われるのは、前処理スクリプトや後処理スクリプトの実行や、ファイルの置き換えのみとなり、システムが停止する時間を短縮することが可能である。
【実施例２】
【０１４１】
さて、これまで実施例１について説明したが、実施例１以外にも、その他の実施例にて実施されてもよい。そこで、以下では、その他の実施例について説明する。
【０１４２】
例えば、実施例１では、複数のパッチを並行して適用する手法に加えて、（１）システム停止中に適用したパッチについてのパッチ情報を記憶部に格納する手法や、（２）適用するパッチをまとめた統合パッチを作成する手法を併せて実施する手法について説明した。しかし、これに限定されるものではなく、手法（１）や手法（２）を実施しなくてもよく、また、片方のみを併せて実施してもよい。
【０１４３】
［システム構成］
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。例えば、統合パッチを手動にて作成してもよい。
【０１４４】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については（例えば、図１〜図１７）、特記する場合を除いて任意に変更することができる。
【０１４５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１４６】
例えば、実施例１では、パッチ適用装置１００が、自パッチ適用装置１００にパッチを適用する場合について説明したが、パッチを適用する処理を実行するパッチ適用装置１００と、パッチが適用されるシステムとが別装置であってもよい。また、例えば、パッチ適用制御部３１０とパッチ変換制御部３２０とを統合して一つの制御部としてもよい。
【０１４７】
［コンピュータ］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをサーバ、パーソナルコンピュータやワークステーションなどの情報処理装置としてのコンピュータで実行することによって実現することができる。そこで、以下では、図１８を用いて、上記の実施例と同様の機能を有するパッチ適用プログラムを実行するコンピュータの一例を説明する。なお、図１８は、実施例１に係るパッチ適用装置プログラムを実行するコンピュータを説明するための図である。
【０１４８】
図１８に示すように、実施例１におけるコンピュータ３０００は、操作部３００１、マイク３００２、スピーカ３００３、ディスプレイ３００４、通信部３００６、演算処理装置としてのＣＰＵ（Central  Processing  Unit）３０１０、ＲＯＭ（Read  Only  Memory）３０１１、ＨＤＤ（Hard  Disk  Drive）３０１２、ＲＡＭ（Random  Access  Memory）３０１３をバス３００９などで接続して構成されている。
【０１４９】
ＲＯＭ３０１１には、上記の実施例１で示したパッチ適用制御部３１０と、パッチ変換制御部３２０と同様の機能を発揮する制御プログラム、つまり、図１８に示すように、パッチ適用制御プログラム３０１１ａと、パッチ変換制御プログラム３０１１ｂとが予め記憶されている。なお、これらのプログラム３０１１ａ〜３０１１ｂについては、図４に示したパッチ適用装置１００の各構成要素と同様、適宜統合または分離してもよい。
【０１５０】
そして、ＣＰＵ３０１０が、これらのプログラム３０１１ａ〜３０１１ｂをＲＯＭ３０１１から読み出して実行することにより、図１８に示すように、各プログラム３０１１ａ〜３０１１ｂについては、パッチ適用制御プロセス３０１０ａと、パッチ変換制御プロセス３０１０ｂとして機能するようになる。なお、各プロセス３０１０ａ〜３０１０ｂは、図４に示した、パッチ適用制御部３１０と、パッチ変換制御部３２０とにそれぞれ対応する。
【０１５１】
そして、ＨＤＤ３０１２には、システム情報テーブル３０１２ａと、適用済みパッチ情報テーブル３０１２ｂと、パッチテーブル３０１２ｃと、統合パッチテーブル３０１２ｄと、プログラムテーブル３０１２ｅと、バックアップデータテーブル３０１２ｆとが設けられている。なお、各テーブル３０１２ａ〜３０１２ｆは、図４に示した、システム情報記憶部２０１と、適用済みパッチ情報記憶部２０２と、パッチ記憶部２０３と、統合パッチ記憶部２０４と、プログラム記憶部２０５と、バックアップデータ記憶部２０６とにそれぞれ対応する。
【０１５２】
そして、ＣＰＵ３０１０は、システム情報テーブル３０１２ａと、適用済みパッチ情報テーブル３０１２ｂと、適用対象パッチテーブル３０１２ｃと、統合パッチテーブル３０１２ｄと、プログラムテーブル３０１２ｅと、バックアップデータテーブル３０１２ｆとを読み出してＲＡＭ３０１３に格納し、ＲＡＭ３０１３に格納されたシステム情報データ３０１３ａと、適用済みパッチ情報データ３０１３ｂと、適用対象パッチデータ３０１３ｃと、統合パッチデータ３０１３ｄと、プログラムデータ３０１３ｅと、バックアップデータデータ３０１３ｆとを用いてパッチ適用プログラムを実行する。
【０１５３】
［その他］
なお、本実施例で説明したパッチ適用装置１００は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。パッチ適用装置プログラムは、インターネットなどのネットワークを介して配布することができる。また、パッチ適用装置プログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【図面の簡単な説明】
【０１５４】
【図１】実施例１に係るパッチ適用装置の概要を説明するための図である。
【図２】実施例１におけるパッチの構造の一例を説明するための図である。
【図３】実施例１におけるパッチの構造の一例を説明するための図である。
【図４】実施例１に係るパッチ適用装置の構成の一例を説明するためのブロック図である。
【図５】実施例１におけるシステム情報記憶部を説明するための図である。
【図６】実施例１における適用済みパッチ情報記憶部を説明するための図である。
【図７】実施例１におけるパッチ記憶部を説明するための図である。
【図８】実施例１における統合パッチの構造の一例を説明するための図である。
【図９】実施例１における統合パッチの構造の一例を説明するための図である。
【図１０】実施例１に係るパッチ適用装置による全体処理の流れの一例を簡単に説明するためのシーケンス図である。
【図１１】実施例１に係るパッチ適用装置の各部を説明するための図である。
【図１２】実施例１に係るパッチ適用装置による全体処理の流れの一例を説明するためのフローチャートである。
【図１３】実施例１におけるパッチ変換制御部による処理の流れの一例を説明するためのフローチャートである。
【図１４】実施例１に係るパッチ適用装置による統合パッチに含まれる個々のパッチ適用処理の流れの一例を説明するためのフローチャートである。
【図１５】実施例１に係るパッチ適用装置による効果を説明するための図である。
【図１６】従来のパッチ適用処理を説明するためのフローチャートである。
【図１７】従来のパッチ適用処理を説明するための図である。
【図１８】実施例１に係るパッチ適用装置プログラムを実行するコンピュータを説明するための図である。
【符号の説明】
【０１５５】
１００  パッチ適用装置
２００  記憶部
２０１  システム情報記憶部
２０２  適用済みパッチ情報記憶部
２０３  パッチ記憶部
２０４  統合パッチ記憶部
２０５  プログラム記憶部
２０６  バックアップデータ記憶部
３００  制御部
３１０  パッチ適用制御部
３１１  要求受付処理部
３１２  業務停止再開処理部
３１３  統合パッチ適用部
３２０  パッチ変換制御部
３２１  情報取得部
３２２  パッチ関係チェック部
３２３  統合パッチ作成部
【図１】
2010134543.tif 000003
【図２】
2010134543.tif 000004
【図３】
2010134543.tif 000005
【図４】
2010134543.tif 000006
【図５】
2010134543.tif 000007
【図６】
2010134543.tif 000008
【図７】
2010134543.tif 000009
【図８】
2010134543.tif 000010
【図９】
2010134543.tif 000011
【図１０】
2010134543.tif 000012
【図１１】
2010134543.tif 000013
【図１２】
2010134543.tif 000014
【図１３】
2010134543.tif 000015
【図１４】
2010134543.tif 000016
【図１５】
2010134543.tif 000017
【図１６】
2010134543.tif 000018
【図１７】
2010134543.tif 000019
【図１８】
2010134543.tif 000020