JP5168112B2 - パッチ適用装置、パッチ適用方法およびパッチ適用プログラム - Google Patents

パッチ適用装置、パッチ適用方法およびパッチ適用プログラム Download PDF

Info

Publication number
JP5168112B2
JP5168112B2 JP2008307662A JP2008307662A JP5168112B2 JP 5168112 B2 JP5168112 B2 JP 5168112B2 JP 2008307662 A JP2008307662 A JP 2008307662A JP 2008307662 A JP2008307662 A JP 2008307662A JP 5168112 B2 JP5168112 B2 JP 5168112B2
Authority
JP
Japan
Prior art keywords
patch
unit
patches
information
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008307662A
Other languages
English (en)
Other versions
JP2010134543A (ja
Inventor
誠也 宮崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008307662A priority Critical patent/JP5168112B2/ja
Priority to US12/625,601 priority patent/US20100138822A1/en
Publication of JP2010134543A publication Critical patent/JP2010134543A/ja
Application granted granted Critical
Publication of JP5168112B2 publication Critical patent/JP5168112B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

パッチ適用装置、パッチ適用方法およびパッチ適用プログラムに関する。
従来より、プログラムの一部を修正する場合には、修正点のみを含むパッチを作成し、作成したパッチをプログラムに適用する手法が用いられている。ここで、複数のパッチを適用する場合には、複数のパッチを一つずつ順番に適用していた。
特開平1−188938号公報 特開2004−102379号公報
ところで、上記した従来の技術は、パッチを効率的に適用することができないという課題があった。例えば、複数のパッチを適用する場合には、パッチ各々を一つずつ順番に適用していたので、個々のパッチを適用するのに要する適用時間各々を合計した時間を要していた。
そこで、本出願は、上述した従来技術の課題を解決するためになされたものであり、パッチを効率的に適用することが可能なパッチ適用装置、パッチ適用方法およびパッチ適用プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、パッチ適用装置は、システムに適用する複数のパッチ各々について、依存関係がある他のパッチを識別する識別部を備える。また、パッチ適用装置は、前記識別部による識別の結果依存関係があると識別されたパッチ間では、当該依存関係に基づいた順番にてパッチ各々を適用し、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行して適用する適用部を備える。
パッチを効率的に適用することが可能である。
以下に添付図面を参照して、パッチ適用装置、パッチ適用方法およびパッチ適用プログラムの実施例を詳細に説明する。なお、以下では、実施例1に係るパッチ適用装置の概要、パッチの構造の一例、パッチ適用装置の構成および処理の流れを順に説明し、その後、その他の実施例について説明する。
[パッチ適用装置の概要]
まず最初に、図1を用いて、実施例1に係るパッチ適用装置の概要を説明する。図1は、実施例1に係るパッチ適用装置の概要を説明するための図である。
図1に示すように、実施例1に係るパッチ適用装置は、システムに適用する複数のパッチ各々について、依存関係がある他のパッチを識別する。例えば、図1に示すように、「パッチA」〜「パッチE」各々をシステムに適用する場合には、パッチ適用装置は、「パッチA」〜「パッチE」各々について依存関係を識別する。そして、図1の(1)に示す例では、パッチ適用装置は、「パッチA」と「パッチE」とに依存関係があり、「パッチE」を適用した後に「パッチA」を適用するという依存関係を識別する。また、パッチ適用装置は、他のパッチ間では、依存関係がないと識別する。
そして、図1の(2)に示すように、実施例1に係るパッチ適用装置は、識別の結果依存関係があると識別されたパッチ間では、依存関係に基づいた順番にてパッチ各々を適用する。図1の(2−1)に示す例では、パッチ適用装置は、「パッチE」「パッチA」の順番にて、一つずつ適用する。
また、図1の(2)に示すように、実施例1に係るパッチ適用装置は、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行して適用する。図1の(2−2)に示す例では、パッチ適用装置は、「パッチA」「パッチB」「パッチC」「パッチD」の内一部または全てのパッチを並行して適用し、「パッチB」「パッチC」「パッチD」「パッチE」の内一部または全てのパッチを並行して適用する。
すなわち、実施例1に係るパッチ適用装置は、複数のパッチを並行して適用し、その際、相互に依存関係がある「パッチA」と「パッチE」とが並行して適用されないように制御する。
このようなことから、実施例1に係るパッチ適用装置は、パッチを効率的に適用することが可能である。具体的には、パッチ適用装置は、依存関係にないパッチ各々を並行して適用することができ、パッチ適用に要する所要時間を短縮可能である。また、パッチ適用装置は、依存関係を識別することで、システムが停止中となる時間を短縮することが可能である。
[パッチの構造の一例]
次に、図2と図3とを用いて、パッチの構造の一例について説明する。図2と図3とは、実施例1におけるパッチの構造の一例を説明するための図である。図2に示すように、パッチ各々には、「パッチ情報ファイル」と、「前処理スクリプト」と、「置き換えファイル」と、「後処理スクリプト」とが含まれる。
「パッチ情報ファイル」とは、自パッチに関する情報である。図3に示す例では、「パッチ情報ファイル」は、「パッチ情報(パッチIDとも称する)」と「ファイルリスト」と「アーキテクチャリスト」と「プログラムリスト」とを含む。また、「パッチ情報ファイル」は、「依存パッチ情報リスト」と「吸収パッチ情報リスト」と「排他パッチ情報リスト」とを含む。
「パッチ情報」とは、自パッチを他のパッチから識別する識別情報であり、図3に示す例では、「XX」が該当する。なお、パッチ情報「XX」は、パッチ「XX」を識別する情報である。
また、「ファイルリスト」とは、パッチ適用により置き換えられるファイルを識別する識別情報各々のリストであり、図3に示す例では、「/xxxxdir/xxxxxxxx1」〜「/xxxxdir/xxxxxxxxN」が該当する。すなわち、パッチ「XX」が適用されると、ファイル「/xxxxdir/xxxxxxxx1」〜「/xxxxdir/xxxxxxxxN」が置き換えられることを示す。
「アーキテクチャリスト」とは、システムのハードウェアアーキテクチャを識別するアーキテクチャ情報のリストであり、図3に示す例では、アーキテクチャ情報「arch1」や「arch2」を含む。すなわち、図3に示す例では、パッチ「XX」は、アーキテクチャ情報「arch1」や「arch2」によって識別されるハードウェアのアーキテクチャを備えるシステムが適用対象となることを示す。なお、ハードウェアアーキテクチャとは、例えば、演算処理装置としてのCPU(Central Processing Unit)や情報処理装置としてのサーバの種類などが該当する。
「プログラムリスト」とは、パッチが適用されるプログラムを識別するプログラム情報のリストであり、図3に示す例では、プログラム情報「app1」や「app2」や「app3」を含む。すなわち、図3に示す例では、パッチ「XX」は、プログラム情報「app1」や「app2」や「app3」によって識別されるプログラムが適用対象となることを示す。
「依存パッチ情報リスト」とは、他のパッチとの関係を示す関係情報の一つであり、具体的には、自パッチが依存する他のパッチについてのパッチ情報のリストである。「依存する他のパッチ」とは、自パッチを適用する際に前提とするパッチであり、言い換えると、自パッチを適用する際には、適用済みであることを要するパッチである。図3に示す例では、パッチ情報「YY」や「ZZ」が該当し、パッチ「XX」を適用する場合には、パッチ「YY」と「ZZ」とが適用済みであることを要することを示す。
「吸収パッチ情報リスト」とは、他のパッチとの関係を示す関係情報の一つであり、具体的には、自パッチが吸収している他のパッチについてのパッチ情報のリストである。「自パッチが吸収している他のパッチ」とは、自パッチの内容に含まれる他のパッチであり、自パッチを適用することで適用されたことになる他のパッチを示す。図3に示す例では、パッチ情報「AA」や「BB」が該当し、すなわち、パッチ「XX」を適用することによって、パッチ「AA」や「BB」も適用したことになることを示す。
「排他パッチ情報リスト」とは、他のパッチとの関係を示す関係情報の一つであり、具体的には、排他関係にある他のパッチについてのパッチ情報のリストである。「排他関係にある他のパッチ」とは、自パッチを適用する際に、適用されていてはならない他のパッチを示し、言い換えると、排他関係にある他のパッチが適用済みである場合には、自パッチは適用されないことを示す。図3に示す例では、何のデータも含まれておらず(null)、排他関係にある他のパッチがないことを示す。
ここで、図2に戻ると、「置き換えファイル」とは、パッチを適用することで置き換えるファイルを示し、図3に示す例では、「xxxxxxxx1」〜「xxxxxxxxN」が該当する。すなわち、「ファイルリスト」にて示されたファイル各々が、「置き換えファイル」にて示されるファイル各々に置き換えられる事を示す。
「前処理スクリプト」と「後処理スクリプト」とは、パッチを適用する際に実行される処理内容を示すスクリプトであり、「ファイルリスト」にて示されたファイル各々を「置き換えファイル」にて示されるファイル各々に置き換える前後に実行される。例えば、「前処理スクリプト」は、ファイル各々を置き換える前に実行され、「後処理スクリプト」は、ファイル各々を置き換えた後に実行される。
例えば、「前処理スクリプト」と「後処理スクリプト」とでは、環境変数を追加したり変更する処理を実行する。また、例えば、「前処理スクリプト」は、置き換え対象ファイルを保持する処理を実行し、「後処理スクリプト」が、置き換え対象ファイルのユーザ定義にパッチ適用内容を反映する処理を実行する。
このように、パッチに含まれる「置き換えファイル」と「前処理スクリプト」と「後処理スクリプト」とが実行されることで、パッチが適用されることになる。
なお、パッチは、「置き換えファイル」と「前処理スクリプト」と「後処理スクリプト」とのすべてを備えるパッチに限定されるものではない。具体的には、「置き換えファイル」と「前処理スクリプト」と「後処理スクリプト」との内一部のみを備えるパッチであっても良い。例えば、パッチを適用する際に、ファイルの置き換えを実行せず、後処理スクリプトや前処理スクリプトが、ユーザ定義が存在する定義ファイルに新規の環境変数を追加する処理のみを実行しても良い。
[パッチ適用装置の構成]
次に、図4を用いて、パッチ適用装置100の構成を説明する。図4は、実施例1に係るパッチ適用装置の構成の一例を説明するためのブロック図である。図4に示すように、パッチ適用装置100は、記憶部200と、制御部300とを備える。なお、以下では、特に言及しない限り、パッチ適用装置100が、自パッチ適用装置100のシステムにパッチを適用するものとして説明する。
記憶部200は、制御部300と接続され、制御部300による各種パッチ適用処理に用いるデータを記憶する。図4に示すように、記憶部200は、システム情報記憶部201と、適用済みパッチ情報記憶部202と、パッチ記憶部203と、統合パッチ記憶部204と、プログラム記憶部205と、バックアップデータ記憶部206とを備える。
システム情報記憶部201は、後述する情報取得部321と接続され、パッチが適用されるシステムについての情報(システム情報とも称する)を記憶する。具体的には、システム情報記憶部201は、図5に示すように、パッチ適用装置100が備えるプログラムについてのプログラム情報を記憶し、また、パッチ適用装置100が備えるハードウェアのアーキテクチャについてのアーキテクチャ情報を記憶する。図5は、実施例1におけるシステム情報記憶部を説明するための図である。
図5に示す例では、システム情報記憶部201は、プログラム情報「app1」や「app2」や「app3」などを記憶する。すなわち、パッチ適用装置100は、プログラム情報「app1」や「app2」や「app3」によって識別されるプログラムを備えることを示す。また、システム情報記憶部201は、アーキテクチャ情報「arch1」を記憶する。すなわち、パッチ適用装置100は、アーキテクチャ情報「arch1」によって示されるハードウェアのアーキテクチャを備えることを示す。
なお、パッチ適用装置100が備えるプログラムとは、パッチ適用装置100にインストールされたプログラムが該当し、例えば、OS(Operating System)や各種のアプリケーションプログラムなどが該当する。
また、パッチ適用装置100が備えるプログラムは、パッチが適用される対象となり、パッチ適用装置100が、パッチ適用装置100が備えるプログラムに対してパッチを適用する。また、システム情報記憶部201が記憶するプログラム情報やアーキテクチャ情報は、情報取得部321によって用いられる。
適用済みパッチ情報記憶部202は、情報取得部321と後述する統合パッチ適用部313と接続され、パッチ適用装置100が備えるプログラムに適用済みであるパッチについてのパッチ情報を記憶する。
図6に示す例では、適用済みパッチ情報記憶部202は、パッチ情報「AA」や「bb」や「cc」を記憶する。なお、図6は、実施例1における適用済みパッチ情報記憶部を説明するための図である。すなわち、パッチ適用装置100では、パッチ「AA」や「bb」や「cc」が適用済みであることを示す。
また、適用済みパッチ情報記憶部202が記憶する適用済みであるパッチについてのパッチ情報は、統合パッチ適用部313によって格納され、情報取得部321によって用いられる。
パッチ記憶部203は、後述するパッチ関係チェック部322と接続され、図7に示すように、パッチを記憶し、例えば、パッチ情報「AA」や「BB」や「CC」によって識別されるパッチ各々を記憶する。なお、図7は、実施例1におけるパッチ記憶部を説明するための図である。
例えば、図7に示すように、パッチ記憶部203は、「パッチ情報」に対応づけて、「ファイルリスト」と「アーキテクチャリスト」と「プログラムリスト」と「依存パッチ情報リスト」と「吸収パッチ情報リスト」と「排他パッチ情報リスト」とを記憶する。また、パッチ記憶部203は、「パッチ情報」に対応づけて、「前処理スクリプト」と「置き換えファイル」と「後処理スクリプト」とを記憶する。
図7に示す例では、パッチ記憶部203は、パッチ情報「AA」に対応づけて、ファイルリスト「/aaaadir/aaaaaaaa1〜/aaaadir/aaaaaaaaN」を記憶し、アーキテクチャリストにアーキテクチャ情報「arch1」と「arch2」とを記憶する。また、パッチ情報記憶部203は、パッチ情報「AA」に対応づけて、プログラムリストに、プログラム情報「app1」や「app2」「app3」を記憶する。また、パッチ記憶部203は、パッチ情報「AA」に対応づけて、依存パッチ情報リストと吸収パッチ情報リストと排他パッチ情報リストとにパッチ情報を記憶しない。また、パッチ記憶部203は、パッチ情報「AA」に対応づけて、前処理スクリプト「scriptBaaaaaaaa」と置き換えファイル「aaaaaaaa1〜aaaaaaaaN」と後処理スクリプト「scriptAaaaaaaaa」とを記憶する。
また、例えば、パッチ記憶部203は、パッチ適用装置100を管理する管理者によってパッチが格納され、または、パッチ適用装置100が備えるプログラムの配布元から新たなパッチが送信されると、パッチ適用装置100が新たなパッチを受信してパッチ記憶部203に格納する。
また、パッチ記憶部203が記憶するパッチ各々は、パッチ関係チェック部322によって用いられる。
統合パッチ記憶部204は、後述する業務停止再開処理部312と統合パッチ適用部313と統合パッチ作成部323と接続され、複数のパッチを一つに統合したパッチである統合パッチを記憶する。統合パッチ記憶部204が記憶する統合パッチは、統合パッチ作成部323によって格納され、業務停止再開処理部312や統合パッチ適用部313によって用いられ、例えば、統合パッチ適用部313によって削除される。
ここで、図8と図9とを用いて、統合パッチ記憶部204が記憶する統合パッチの構造の一例について説明する。なお、図8と図9とは、実施例1における統合パッチの構造の一例を説明するための図である。図8に示すように、統合パッチは、「統合パッチ情報ファイル」と複数のパッチとを含み、図8に示す例では、N個のパッチを含む。
「統合パッチ情報ファイル」とは、統合パッチに関する情報であり、図9に示す例では、「統合パッチ情報」と、「パッチ情報」と「依存パッチ情報リスト」との対応付けとを含む。「統合パッチ情報」とは、統合パッチを識別する識別情報であり、図9に示す例では、統合パッチ情報「NN」が該当する。
「パッチ情報」と「依存パッチ情報リスト」との対応付けについて説明する。「統合パッチ情報ファイル」に含まれる「パッチ情報」とは、統合パッチに含まれるパッチ各々についてのパッチ情報である。また、パッチ情報に対応づけられた「依存パッチ情報リスト」とは、対応するパッチ情報によって識別されるパッチについての「依存パッチ情報リスト」である。
プログラム記憶部205は、業務停止再開処理部312と統合パッチ適用部313と接続され、パッチ適用装置100が備えるプログラムを記憶する。具体的には、プログラム記憶部205は、システム情報記憶部201によって記憶されているプログラム情報によって識別されるプログラム各々を記憶する。すなわち、プログラム記憶部205は、パッチが適用される対象となるプログラム各々を記憶する。
また、プログラム記憶部205が記憶するプログラムは、業務停止再開処理部312によってバックアップデータが作成され、また、統合パッチ適用部313によって統合パッチが適用される。
バックアップデータ記憶部206は、業務停止再開処理部312と接続され、プログラム記憶部205が記憶するプログラムに関するバックアップデータを記憶する。バックアップデータ記憶部206が記憶するバックアップデータは、パッチが適用されるプログラムについてのバックアップデータであり、例えば、パッチを適用すると置き換えられるファイル各々が該当する。また、バックアップデータ記憶部206が記憶するバックアップデータは、業務停止再開処理部312によって格納される。
また、バックアップデータ記憶部206は、適用済みのパッチを削除する際に用いられるパッチ削除用データを記憶する。なお、パッチ削除用データとは、適用処理が完了したパッチについてのバックアップデータが該当し、業務停止再開処理部312によって格納される。
制御部300は、記憶部200と接続され、各種のパッチ適用処理手順などを規定したプログラムを格納するための内部メモリを有し、種々のパッチ適用処理を実行する。図4に示すように、制御部300は、パッチ適用制御部310と、パッチ変換制御部320とを備える。
パッチ適用制御部310は、記憶部200とパッチ変換制御部320と接続され、要求受付処理部311と、業務停止再開処理部312と、統合パッチ適用部313とを備える。パッチ適用制御部310は、パッチ変換制御部320と協働することで統合パッチを適用する処理を制御し、具体的には、パッチ変換制御部320によって作成された統合パッチを適用する。
パッチ変換制御部320は、記憶部200とパッチ適用制御部310と接続され、情報取得部321と、パッチ関係チェック部322と、統合パッチ作成部323とを備える。パッチ変換制御部320は、パッチ適用制御部310と協働することで統合パッチを適用する処理を制御し、具体的には、パッチ適用制御部310によって適用される統合パッチを作成する。
以下では、まず、図10を用いて、実施例1に係るパッチ適用装置100による全体処理の流れの一例を簡単に説明する。図10を用いての説明では、他の部との接続関係や詳細な説明については省略する。なお、図10は、実施例1に係るパッチ適用装置による全体処理の流れの一例を簡単に説明するためのシーケンス図である。
図10に示すように、パッチ適用装置100では、例えば、管理者によってパッチを適用する指示である適用指示が送られると(ステップS101)、要求受付処理部311が、情報取得部321に統合パッチ作成指示を送る(ステップS102)。なお、統合パッチ作成指示とは、統合パッチを作成する旨の指示である。
そして、情報取得部321は、システム情報等を取得する(ステップS103)。具体的には、情報取得部321は、パッチ適用装置100に関するシステム情報をシステム情報記憶部201から読み出し、また、適用済みパッチ情報記憶部202から、適用済みであるパッチについてのパッチ情報を読み出す。そして、情報取得部321は、取得したシステム情報とパッチ情報とをパッチ関係チェック部322に送る(ステップS104)。
そして、パッチ適用装置100では、パッチ関係チェック部322が、システム運用中にパッチのチェックを行う(ステップS105)。つまり、パッチ関係チェック部322は、パッチ記憶部203に記憶されたパッチ各々について、パッチ適用装置100への適用の要否をシステム運用中にチェックする。また、パッチ関係チェック部322は、システムに適用する複数のパッチ各々について、依存関係がある他のパッチをシステム運用中に識別する。そして、パッチ関係チェック部322は、チェック結果を統合パッチ作成部323に送る(ステップS106)。
そして、パッチ適用装置100では、統合パッチ作成部323が、統合パッチを作成し(ステップS107)、統合パッチの作成が完了した旨の情報である作成完了通知を業務停止再会処理部312に送る(ステップS108)。
そして、パッチ適用装置100では、業務停止再開処理部312が、後述する業務停止処理を行い(ステップS109)、業務停止処理が完了した旨の情報である業務停止処理完了通知を統合パッチ適用部313に送る(ステップS110)。
そして、パッチ適用装置100では、統合パッチ適用部313が、統合パッチ作成部323によって作成された統合パッチを適用する(ステップS111)。つまり、統合パッチ適用部313は、識別の結果依存関係があると識別されたパッチ間では、依存関係に基づいた順番にてパッチ各々をシステム停止中に適用する。また、統合パッチ適用部313は、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行してシステム停止中に適用する。
そして、統合パッチ適用部313は、統合パッチの適用が完了した旨の情報である統合パッチ適用完了通知を業務停止再開処理部312に送る(ステップS112)。その後、業務停止再開処理部312は、業務再開処理を行う(ステップS113)。
図4の説明に戻ると、要求受付処理部311は、情報取得部321と接続され、図11の(1)に示すように、統合パッチを作成する作成指示を情報取得部321に送る。なお、図11は、実施例1に係るパッチ適用装置100の各部を説明するための図である。
ここで、図11は、パッチ適用装置100の各部の処理の関係を概念的に説明するための図であり、図11に示すターゲットシステムとは、パッチを適用する対象となるシステムを示す。また、図11に示すバックアップシステムとは、ターゲットシステムのバックアップを行うシステムであり、バックアップデータを保持するシステムである。
例えば、要求受付処理部311は、管理者からパッチを適用する指示である適用指示を受け付けると、通常のパッチ適用処理が開始されないように制御した上で、情報取得部321に統合パッチ作成指示を送る。なお、要求受付処理部311は、管理者によって設定された所定のタイミングとなると、通常のパッチ適用処理が開始されないように制御した上で、統合パッチ作成指示を送ってもよい。
なお、通常のパッチ適用処理が開始されないように制御するのは、統合パッチを作成して統合パッチを適用する一連の処理と並行して、個々のパッチを適用する処理が行われないようにするためである。
情報取得部321は、システム情報記憶部201と適用済みパッチ情報記憶部202と要求受付処理部311とパッチ関係チェック部322と接続される。情報取得部321は、要求受付処理部311から統合パッチ作成指示を受け付けると、図11の(2)に示すように、システム情報記憶部201からシステム情報を読み出し、適用済みパッチ情報記憶部202からパッチ情報各々を読み出す。
例えば、情報取得部321は、システム情報記憶部201から、プログラム情報「app1」や「app2」や「app3」を読み出し、アーキテクチャ情報「arch1」を読み出す。
また、情報取得部321は、適用済みパッチ情報記憶部202から、適用済みであるパッチについてのパッチ情報を読み出し、例えば、パッチ情報「AA」や「bb」や「cc」を読み出す。
また、情報取得部321は、読み出したシステム情報やパッチ情報をパッチ関係チェック部322に送る。具体的には、情報取得部321は、プログラム情報と、アーキテクチャ情報と、適用済みであるパッチについてのパッチ情報とを送る。
パッチ関係チェック部322は、パッチ記憶部203と情報取得部321と統合パッチ作成部323と接続される。また、パッチ関係チェック部322は、情報取得部321から、プログラム情報と、アーキテクチャ情報と、適用済みであるパッチについてのパッチ情報とを受け付ける。例えば、パッチ関係チェック部322は、プログラム情報「app1」や「app2」や「app3」や、アーキテクチャ情報「arch1」、適用済みであるパッチについてのパッチ情報「AA」や「bb」や「cc」を受け付ける。
また、パッチ関係チェック部322は、パッチ記憶部203に記憶されたパッチすべてを読み出す。例えば、パッチ関係チェック部322は、パッチ記憶部203から、パッチ「AA」や「BB」などを読み出す。
また、図11の(3)に示すように、パッチ関係チェック部322は、パッチ記憶部203に記憶されたパッチ各々について、パッチのチェックを行う。具体的には、パッチ関係チェック部322は、パッチ記憶部203に記憶されたパッチ各々について、適用の要否をチェックし、また、他のパッチとの関係をチェックする。
パッチ記憶部203に記憶されたパッチについて適用の要否をチェックする処理について説明する。パッチ関係チェック部322は、プログラム情報と、アーキテクチャ情報と、適用済みであるパッチについてのパッチ情報と、パッチ記憶部203に記憶されたパッチについての「パッチ情報ファイル」とを用いて、適用の要否をチェックする。
以下では、適用の要否をチェックする手法の一例として、種々の判定処理を行い、判定結果を用いて適用の要否をチェックする手法について説明する。以下では、ハードウェアのアーキテクチャが適用対象となるかの判定と、パッチ適用装置100のプログラムが適用対象となるかの判定と、適用済みではないかの判定と、排他関係にある他のパッチが適用済みではないかの判定とを行う場合について説明する。また、以下では、種々の判定処理について説明し、その後、判定結果を用いて適用の要否をチェックする手法について説明する。
ハードウェアのアーキテクチャが適用対象となるかを判定する点について説明する。パッチ関係チェック部322は、読み出したパッチについての「アーキテクチャリスト」各々について、パッチ適用装置100についてのアーキテクチャ情報が含まれているかを判定する。
パッチ適用装置100についてのアーキテクチャ情報が「arch1」である場合を例に、具体的に説明する。パッチ関係チェック部322は、パッチ記憶部203に記憶されたパッチ各々についてのアーキテクチャリストに、「arch1」が含まれるかを判定する。
例えば、パッチ関係チェック部322は、パッチ「DD」以外のパッチ(例えば、パッチ「XX」や「YY」など)についての「アーキテクチャリスト」に、アーキテクチャ情報「arch1」が含まれると判定する。また、パッチ関係チェック部322は、パッチ「DD」についてのアーキテクチャリストに、アーキテクチャ情報「arch1」が含まれていないと判定する。すなわち、パッチ関係チェック部322は、パッチ「DD」以外のパッチ(例えば、パッチ「XX」や「YY」など)について、パッチ適用装置100のハードウェアのアーキテクチャが適用対象であり、パッチ「DD」について適用対象でないと判定する。
パッチ適用装置100のプログラムが適用対象となるかを判定する点について説明する。パッチ関係チェック部322は、読み出したパッチについての「プログラムリスト」各々について、パッチ適用装置100についてのプログラム情報のいずれかが含まれるかを判定する。
パッチ適用装置100についてのプログラム情報が「app1」や「app2」や「app3」である場合を例に、具体的に説明する。パッチ関係チェック部322は、パッチ記憶部203に記憶されたパッチ各々についてのプログラムリストに、「app1」や「app2」や「app3」が含まれるかを判定する。
例えば、パッチ関係チェック部322は、パッチ「EE」以外のパッチ(例えば、パッチ「XX」や「YY」など)についての「プログラムリスト」に、プログラム情報「app1」や「app2」や「app3」のいずれかが含まれると判定し、「EE」についての「プログラムリスト」に、いずれも含まれていないと判定する。すなわち、パッチ関係チェック部322は、パッチ「EE」以外のパッチ(例えば、パッチ「XX」や「YY」など)について、パッチ適用装置100のプログラムが適用対象であり、パッチ「EE」について適用対象でないと判定する。
適用済みではないかを判定する点について説明する。パッチ関係チェック部322は、適用対象となるパッチについての「パッチ情報」各々について、読み出したパッチについての「パッチ情報」と一致するかを判定する。すなわち、パッチ関係チェック部322は、適用済みであるパッチについてのパッチ情報と一致するかを判定する。
適用済みであるパッチについてのパッチ情報がパッチ情報「AA」である場合を例に、具体的に説明する。パッチ関係チェック部322は、パッチ記憶部203に記憶されたパッチ各々について、パッチ情報「AA」と一致するかを判定する。
例えば、パッチ関係チェック部322は、パッチ「AA」以外のパッチ(例えば、パッチ「XX」や「YY」など)について一致しないと判定し、また、パッチ情報「AA」について一致すると判定する。すなわち、パッチ関係チェック部322は、パッチ「AA」以外のパッチ(例えば、パッチ「XX」や「YY」など)について、適用済みではなく適用対象であり、パッチ「AA」について、適用済みであり適用対象でないと判定する。
排他関係にある他のパッチが適用済みではないかを判定する点について説明する。パッチ関係チェック部322は、パッチ記憶部203に記憶されたパッチ各々についての「排他パッチ情報リスト」に、適用済みであるパッチについてのパッチ情報が含まれているかを判定する。
適用済みであるパッチについてのパッチ情報がパッチ情報「AA」であり、パッチ「CC」についての「排他パッチ情報リスト」に「AA」が含まれる場合を例に、具体的に説明する。また、パッチ「XX」や「YY」についての「排他パッチ情報リスト」にはパッチ情報が含まれないものとして説明する。
パッチ関係チェック部322は、パッチ「CC」以外のパッチ(例えば、パッチ「XX」や「YY」など)についての「排他パッチ情報リスト」に、パッチ情報「AA」が含まれないと判定し、また、パッチ情報「CC」についての「排他パッチ情報リスト」に、適用済みであるパッチについてのパッチ情報「AA」が含まれると判定する。すなわち、パッチ関係チェック部322は、パッチ「CC」以外のパッチ(例えば、パッチ「XX」や「YY」など)について、排他関係にある他のパッチが適用済みではなく、適用対象であると判定する。また、パッチ関係チェック部322は、パッチ「CC」について、排他関係にある他のパッチが適用済みであり、新たな適用対象ではないと判定する。
判定結果を用いて適用の要否をチェックする点について説明する。パッチ関係チェック部322は、ハードウェアのアーキテクチャが適用対象であり、プログラムが適用対象であり、自パッチが適用済みではなく適用対象であり、排他関係にある他のパッチが適用済みではなく適用対象であると判定したパッチすべてを選別する。例えば、パッチ関係チェック部322は、パッチ記憶部203に記憶されたパッチの内、パッチ「BB」「WW」「XX」「YY」「ZZ」を選別する。
なお、ここで、パッチ関係チェック部322は、選別したパッチの内、相互に排他関係のあるパッチがある場合には、いずれか一方のパッチを除外する。
次に、他のパッチとの関係をチェックする処理について説明する。つまり、システムに適用する複数のパッチ各々について、依存関係がある他のパッチをシステム運用中に識別する点について説明する。
パッチ関係チェック部322は、適用するパッチがあるかを判定し、つまり、選別したパッチの有無を判定する。そして、パッチ関係チェック部322は、あると判定すると、選別したパッチ各々について、他の選別したパッチ各々との関係を識別し、具体的には、依存関係と吸収関係とを識別する。
なお、パッチ関係チェック部322は、適用するパッチがあるかを判定し、無いと判定した場合には、統合パッチを作成する処理を終了し、例えば、要求受付処理部311による制御を解除する。つまり、要求受付処理部311は、通常のパッチ適用処理が開始されないよう制御しているため、パッチ関係チェック部322が、当該制御を解除する。
例えば、パッチ関係チェック部322は、パッチ「XX」について、パッチ「YY」と「ZZ」とに依存関係があると識別し、パッチ「XX」よりも前にパッチ「YY」と「ZZ」が実行される適用順番であると判定する。また、例えば、パッチ関係チェック部322は、他のパッチに依存されているパッチの適用順番が早くなるように、適用順番を判定する。例えば、パッチ「YY」と「ZZ」について、パッチ「XX」よりも早い適用順番であると判定する。
また、例えば、パッチ関係チェック部322は、パッチ「XX」について、パッチ「AA」や「BB」を吸収しているパッチであると識別する。そして、パッチ関係チェック部322は、選別したパッチ各々の内、他のパッチに吸収されるパッチを除外し、例えば、パッチ「BB」を選別したパッチから除外する。
また、パッチ関係チェック部322は、チェック結果を統合パッチ作成部323に送り、具体的には、選別したパッチ各々と、選別したパッチ各々について判定した適用順番とを送る。
統合パッチ作成部323は、統合パッチ記憶部204とパッチ関係チェック部322と業務停止再開処理部312と接続される。統合パッチ作成部323は、パッチ関係チェック部322から、選別したパッチ各々と、選別したパッチ各々について判定した適用順番とを受け付ける。そして、統合パッチ作成部323は、図11の(4)に示すように、統合パッチをシステム運用中に作成する。なお、統合パッチは、パッチ関係チェック部322によって依存関係が識別されたパッチ各々が統合されたパッチとなる。そして、統合パッチ作成部323は、統合パッチ記憶部204に統合パッチを格納する。
適用するパッチ各々をまとめた統合パッチを作成する処理について説明する。統合パッチ作成部323は、「統合パッチ情報ファイル」を作成する。具体的には、統合パッチ作成部323は、任意の「統合パッチ情報」を作成し、例えば、統合パッチ情報「NN」を作成する。また、統合パッチ作成部323は、「統合パッチ情報ファイル」に含まれるパッチ情報として、決定した適用順番にて選別したパッチ各々についてのパッチ情報を並べる。また、統合パッチ作成部323は、並べたパッチ各々の内依存関係があるパッチについて、依存関係にあるパッチ各々についてのパッチ情報を「依存パッチ情報リスト」として対応づける。
また、統合パッチ作成部323は、「統合パッチ情報ファイル」と、パッチ関係チェック部322によって選別された複数のパッチとをまとめて統合パッチとし、統合パッチ記憶部204に格納する。すなわち、統合パッチ作成部323は、統合パッチを統合パッチ記憶部204に格納する。
また、統合パッチ作成部323は、作成完了通知を業務停止再会処理部312に送り、例えば、統合パッチ記憶部204に格納した統合パッチについての統合パッチ情報を送る。
業務停止再開処理部312は、統合パッチ記憶部204とプログラム記憶部205とバックアップデータ記憶部206と統合パッチ適用部313と統合パッチ作成部323と接続される。
業務停止再開処理部312は、統合パッチ作成部323から統合パッチ情報を受け付けると、図11の(5)に示すように、パッチを適用することで置き換えられるファイルのバックアップ処理を行う。つまり、業務停止再開処理部312は、パッチを適用することで置き換えられるファイルについてバックアップを行う。
また、業務停止再開処理部312は、バックアップ処理を実行した後に、業務停止処理を行う。また、業務停止再開処理部312は、業務停止処理を行うと、業務停止処理完了通知を統合パッチ適用部313に送る。以下では、まず、バックアップ処理について説明し、その後、業務停止処理について説明する。
業務停止再開処理部312によるバックアップ処理について説明する。業務停止再開処理部312は、統合パッチ記憶部204から、統合パッチに含まれるパッチ各々についての「ファイルリスト」を読み出す。そして、業務停止再開処理部312は、ファイルリストによって識別されるファイル各々についてのバックアップデータを作成し、バックアップデータ記憶部206に格納する。すなわち、業務停止再開処理部312は、統合パッチを適用することによって置き換えられるファイル各々について、バックアップデータを作成する。
図9に示す例では、業務停止再開処理部312は、統合パッチ「NN」に含まれるパッチ「XX」について、ファイルリスト「/xxxxdir/xxxxxxxx1」〜「/xxxxdir/xxxxxxxxN」を読み出す。そして、業務停止再開処理部312は、ファイルリスト「/xxxxdir/xxxxxxxx1」〜「/xxxxdir/xxxxxxxxN」によって識別されるファイル各々についてのバックアップデータを作成し、バックアップデータ記憶部206に格納する。また、業務停止再開処理部312は、統合パッチ「NN」に含まれるパッチ「XX」以外のパッチについて、同様にバックアップデータを作成してバックアップデータ記憶部206に格納する。
なお、業務停止再開処理部312は、適用処理が完了したパッチについてのバックアップデータについて、適用済みのパッチを削除する際に用いられるデータであるパッチ削除用データとしてバックアップデータ記憶部206に格納する。
業務停止再開処理部312による業務停止処理について説明する。業務停止再開処理部312は、統合パッチについてのバックアップデータすべてをバックアップデータ記憶部206に格納すると、プログラム記憶部205によって記憶されたプログラム各々を用いた処理が行われないように制御する。例えば、業務停止再開処理部312は、利用者からの指示を受け付けないように制御する。
また、業務停止再開処理部312は、統合パッチ適用部313から統合パッチが適用された旨を受け付けると、業務再開処理を行い、パッチ適用後に行う処理を実行する。
業務停止再開処理部312による業務再開処理について説明する。業務停止再開処理部312は、プログラム記憶部205によって記憶されたプログラム各々を用いた処理が行われないように制御していた処理を停止し、例えば、利用者からの指示を再び受け付けるように制御する。
業務停止再開処理部312によるパッチ適用後に行う処理について説明する。図11の(7)に示すように、業務停止再開処理部312(「格納部」とも称する)は、システムに適用されたパッチに関する情報を記憶する記憶部に、統合パッチ適用部313によって適用されたパッチ各々に関する情報各々をシステム運用中に格納する。言い換えると、業務停止再開処理部312は、適用処理が完了したパッチ各々についてのパッチ情報を適用済みパッチ情報記憶部202に格納する。すなわち、パッチが適用されたことを示す情報をシステムに反映する。
例えば、統合パッチ「NN」を適用する適用処理が完了した場合には、統合パッチ「NN」に含まれるパッチについてのパッチ情報「XX」や「YY」などを格納する。また、業務停止再開処理部312は、要求受付処理部311による制御を解除する。つまり、要求受付処理部311によって、通常のパッチ適用処理が開始されないような制御が行われているため、業務停止再開処理部312が解除する。
統合パッチ適用部313は、適用済みパッチ情報記憶部202と統合パッチ記憶部204とプログラム記憶部205と業務停止再開処理部312と接続される。統合パッチ適用部313は、業務停止再開処理部312から業務停止処理を行った旨を受け付けると、統合パッチ記憶部204から統合パッチを読み出す。そして、図11の(6)に示すように、統合パッチ適用部313は、プログラム記憶部205に記憶されたプログラム各々に統合パッチを適用する。すなわち、例えば、統合パッチ適用部313は、統合パッチに含まれるパッチ各々について、前処理スクリプトを実行し、ファイルを置き換え、後処理スクリプトを実行する。
統合パッチ適用部313は、パッチ関係チェック部322による識別の結果依存関係があると識別されたパッチ間では、依存関係に基づいた順番にてパッチ各々をシステム停止中に適用する。また、統合パッチ適用部313は、パッチ関係チェック部322による識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行してシステム停止中に適用する。
ここで、統合パッチ適用部313による統合パッチ適用処理について説明する。統合パッチ適用部313は、相互に依存関係がないと識別されたパッチ各々を並行して適用する。例えば、統合パッチ適用部313は、統合パッチの「統合パッチ情報ファイル」から、「パッチ情報」と「依存パッチ情報リスト」との対応付け各々を読み出す。そして、統合パッチ適用部313は、依存パッチ情報リストにパッチ情報が含まれないパッチ情報や、依存パッチ情報リストに含まれるパッチすべてが適用されたパッチ情報について、パッチを読み出して適用する。また、パッチを読み出して適用する際には、一つのパッチの適用が終了した後に、次のパッチの適用を開始するのではなく、並行して複数のパッチを適用する。
例えば、統合パッチ適用部313は、統合パッチ情報リストを参照し、依存パッチ情報リストにパッチ情報が含まれていないパッチ「YY」と「ZZ」とを特定し、特定したパッチ「YY」と「ZZ」とを並行して適用する。また、統合パッチ適用部313は、パッチ「YY」の適用処理が終了すると、パッチ「YY」に依存するパッチであるパッチ「WW」の適用処理を開始し、また、パッチ「YY」と「ZZ」との適用処理が終了すると、パッチ「XX」の適用処理を開始する。ここで、パッチ「YY」の適用処理のみが終了し、パッチ「ZZ」の処理が終了していない場合には、パッチ「WW」と「ZZ」とが並行して適用されることになるが、パッチ「WW」と「ZZ」とには依存関係がなく、並行して適用する。同様に、統合パッチ適用部313は、パッチ「WW」と「XX」とを並行して適用してもよい。なお、個々のパッチを適用する適用処理については、図14を用いて説明するため、説明を省略する。
また、統合パッチ適用部313は、統合パッチを適用すると、統合パッチ適用完了通知業務停止再開処理部312に送る。
また、パッチを適用する際にシステムが停止されるのは、図11の(6)に示す処理のみとなり、具体的には、前処理スクリプトの実行中や、ファイルの置き換え処理、後処理スクリプトの実行中のみとなる。すなわち、他の処理を実行している間には業務がシステム運用中となる。
また、パッチ適用装置100は、既知のサーバ、パーソナルコンピュータ、ワークステーション、携帯電話、PHS端末、移動体通信端末またはPDAなどの情報処理装置に、パッチ適用制御部310とパッチ変換制御部320と記憶部200との各機能を搭載することによって実現することもできる。
[パッチ適用装置による処理]
次に、図12〜14を用いて、パッチ適用装置100による処理を説明する。以下では、実施例1に係るパッチ適用装置100による全体処理の流れの一例について説明し、実施例1におけるパッチ変換制御部320による処理の流れの一例について説明する。そして、実施例1に係るパッチ適用装置100による統合パッチに含まれる個々のパッチ適用処理の流れの一例について説明する。
[パッチ適用装置による全体処理]
図12を用いて、実施例1に係るパッチ適用装置100による全体処理の流れの一例について説明する。図12は、実施例1に係るパッチ適用装置による全体処理の流れの一例を説明するためのフローチャートである。なお、図12を用いて、実施例1に係るパッチ適用装置100による全体処理の流れの一例について説明する際には、統合パッチを作成する処理については簡単に説明する。
図12に示すように、パッチ適用装置100では、要求受付処理部311は、適用指示を受け付けると(ステップS201肯定)、通常のパッチ適用コマンドが起動されないようにパッチ適用装置100をロックする(ステップS202)。つまり、要求受付処理部311は、通常のパッチ適用処理が開始されないように制御する。
その後、パッチ適用装置100では、パッチ変換制御部320が、統合パッチを作成し(ステップS203)、例えば、統合パッチ「NN」を作成して統合パッチ記憶部204に格納する。そして、業務停止再開処理部312は、統合パッチが作成された後に、バックアップ処理を行い(ステップS204)、つまり、業務停止再開処理部312は、置き換え対象となるファイルについてのバックアップデータを作成してバックアップデータ記憶部206に格納する。続いて、業務停止再開処理部312は、業務停止処理を行い(ステップS205)、例えば、プログラム記憶部205によって記憶されたプログラム各々を用いた処理が行われないように制御する。
そして、パッチ適用装置100では、統合パッチ適用部313が、統合パッチを適用する(ステップS206)。つまり、統合パッチ適用部313は、依存関係があると識別されたパッチ間では、依存関係に基づいた順番にてパッチ各々をシステム停止中に適用し、依存関係がないと識別されたパッチ間では、パッチ各々を並行してシステム停止中に適用する。
その後、統合パッチの適用が完了すると、業務停止再開処理部312は、業務再開処理を行い(ステップS207)、つまり、プログラム記憶部205によって記憶されたプログラム各々を用いた処理が行われないように制御していた処理を停止する。
そして、パッチ適用装置100では、業務停止再開処理部312が、適用済みパッチ情報記憶部202にパッチ情報を格納する(ステップS208)。例えば、業務停止再開処理部312は、統合パッチ「NN」を適用する適用処理が完了した場合には、統合パッチ「NN」に含まれるパッチについてのパッチ情報「XX」や「YY」などを格納する。そして、業務停止再開処理部312は、要求受付処理部311によるロックを解除し(ステップS209)、つまり、要求受付処理部311によって、通常のパッチ適用処理が開始されないような制御が行われているため、業務停止再開処理部312が解除する。
なお、図12に示した各処理の内、ステップS205にて行われた業務停止処理からステップS207にて行われた業務再開処理との間の処理が行われる際にのみ、パッチ適用装置100の状態が、プログラム記憶部205によって記憶されたプログラム各々を用いた処理が行われない状態となる。また、図12に示した各処理の内、ステップS201〜ステップS204、ステップS208〜ステップS209の各処理が行われる際には、パッチ適用装置100の状態が、プログラム記憶部205によって記憶されたプログラム各々を用いた処理が行うことが可能な状態となる。
[パッチ変換制御部による処理]
図13を用いて、実施例1におけるパッチ変換制御部320による処理の流れの一例について説明する。図13は、実施例1におけるパッチ変換制御部による処理の流れの一例を説明するためのフローチャートである。図12に示すステップS203に対応する。
図13に示すように、パッチ変換制御部320では、システム情報取得部321は、統合パッチ作成指示を受け付けると(ステップS301肯定)、システム情報を取得し(ステップS302)、適用済みであるパッチについてのパッチ情報を取得する(ステップS303)。つまり、例えば、情報取得部321は、システム情報記憶部201から、プログラム情報「app1」や「app2」や「app3」を読み出し、アーキテクチャ情報「arch1」を読み出す。また、例えば、情報取得部321は、適用済みパッチ情報記憶部202から、適用済みであるパッチについてのパッチ情報を読み出し、例えば、パッチ情報「AA」や「bb」や「cc」を読み出す。
そして、パッチ変換制御部320では、パッチ関係チェック部322が、パッチ記憶部203に記憶されたパッチすべてを取得し(ステップS304)、例えば、パッチ記憶部203から、パッチ「AA」や「BB」などを取得する。
そして、パッチ変換制御部320では、パッチ関係チェック部322が、適用の要否をチェックする(ステップS305)。具体的には、パッチ関係チェック部322は、プログラム情報と、アーキテクチャ情報と、適用済みであるパッチについてのパッチ情報と、パッチ記憶部203に記憶されたパッチについての「パッチ情報ファイル」とを用いて、適用の要否をチェックする。そして、パッチを選別し、例えば、パッチ「BB」や「XX」や「YY」などを選別する。
そして、パッチ変換制御部320では、パッチ関係チェック部322は、適用するパッチがあるかを判定し(ステップS306)、つまり、選別したパッチの有無を判定する。ここで、パッチ関係チェック部322は、適用するパッチがないと判定すると(ステップS306否定)、処理を終了する。一方、パッチ関係チェック部322は、適用するパッチがあると判定すると(ステップS306肯定)、他のパッチとの関係をチェックする(ステップS307)。例えば、パッチ関係チェック部322は、パッチ「XX」について、パッチ「YY」や「ZZ」と依存関係があると識別し、また、パッチ「XX」について、パッチ「AA」や「BB」を吸収しているパッチであると識別する。
そして、統合パッチ作成部323は、適用順番を決定する(ステップS308)。例えば、統合パッチ作成部323は、他のパッチと依存関係があると識別されたパッチ各々について、適用順番を決定し、また、他のパッチに依存されているパッチの適用順番が早くなるように、適用順番を決定する。そして、統合パッチ作成部323は、適用するパッチ各々をまとめて統合パッチを作成する(ステップS309)。具体的には、統合パッチ作成部323は、「統合パッチ情報ファイル」を作成し、パッチ関係チェック部322によって選別された複数のパッチと「統合パッチ情報ファイル」とをまとめて統合パッチとして、統合パッチ記憶部204に格納する。
[個々のパッチ適用処理]
図14を用いて、実施例1に係るパッチ適用装置100による統合パッチに含まれる個々のパッチ適用処理の流れの一例について説明する。図14は、実施例1に係るパッチ適用装置による統合パッチに含まれる個々のパッチ適用処理の流れの一例を説明するためのフローチャートである。なお、具体例を用いて説明する場合には、パッチ「XX」を適用する場合を例に用いて説明する。
図14に示すように、統合パッチ適用部313は、前処理スクリプトを実行し(ステップS401)、例えば、「scriptBxxxxxxxx」を実行する。なお、パッチに前処理スクリプトが含まれていない場合には、統合パッチ適用部313は、前処理スクリプトを実行する処理を行わない。
そして、統合パッチ適用部313は、ファイルを置き換え(ステップS402)、例えば、「/xxxxdir/xxxxxxxx1」〜「/xxxxdir/xxxxxxxxN」によって識別されるファイル各々について、「xxxxxxxx1」〜「xxxxxxxxN」へと置き換える。なお、パッチに置き換えファイルが含まれていない場合には、統合パッチ適用部313は、ファイルの置き換えを実行する処理を行わない。
そして、統合パッチ適用部313は、後処理スクリプトを実行し(ステップS403)、例えば、「scriptAxxxxxxxx」を実行する。なお、パッチに後処理スクリプトが含まれていない場合には、統合パッチ適用部313は、後処理スクリプトを実行する処理を行わない。
[実施例1の効果]
上記したように、実施例1によれば、パッチ適用装置100は、システムに適用する複数のパッチ各々について、依存関係がある他のパッチを識別する。そして、パッチ適用装置100は、識別の結果依存関係があると識別されたパッチ間では、依存関係に基づいた順番にてパッチ各々を適用し、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行して適用する。この結果、パッチを効率的に適用することが可能である。
具体的には、パッチ適用装置100によれば、依存関係にないパッチ各々を並行して適用することができ、パッチ適用に要する所要時間を短縮可能である。また、依存関係を識別する処理を行うことで、行われる処理内容を減らすことができ、システムが停止する時間を短縮可能である。
また、実施例1によれば、パッチ適用装置100は、システムに適用されたパッチに関する情報を記憶する適用済みパッチ情報記憶部202に、適用されたパッチ各々に関する情報各々を格納するので、システムが停止する時間を短縮可能である。
すなわち、図15の(1)に示すように、パッチ各々を個々に適用した際に要する場合には、各パッチを適用する適用時間各々を合計した時間を要するのに対して、図15の(2)に示す用に、パッチ各々を並行して適用することで、パッチ各々を適用するのに要する時間を短縮することが可能である。なお、図15は、実施例1に係るパッチ適用装置による効果を説明するための図である。
また、従来の手法では、個々のパッチ各々について、図16に示す処理各々を別個に行っていた。すなわち、図16に示すように、従来の手法では、他のパッチを適用する処理が開始されないようにロックした後に、他のパッチとの関係をチェックし、パッチ適用の要否をチェックする。そして、従来の手法では、パッチが適用対象である場合には、バックアップ処理を行い、パッチを適用する処理を実行し、その後、適用したパッチについての情報をシステムに反映し、他のパッチを適用する処理が開始されないためのロックを解除していた。ここで、図17に示すように、従来の手法では、図16に示す処理各々を実行する間、システムを停止していた。なお、図16は、従来のパッチ適用処理を説明するためのフローチャートである。図17は、従来のパッチ適用処理を説明するための図である。
これに対して、実施例1によれば、パッチ適用装置100は、他のパッチとの関係をチェックし、パッチ適用の要否をチェックする処理について、システム運用中に実行する。また、パッチ適用装置100は、適用したパッチについての情報を適用済みパッチ情報記憶部202に格納する処理について、システム運用中に実行する。この結果、パッチ適用装置100では、システム停止中に行われるのは、前処理スクリプトや後処理スクリプトの実行や、ファイルの置き換えのみとなり、システムが停止する時間を短縮することが可能である。
さて、これまで実施例1について説明したが、実施例1以外にも、その他の実施例にて実施されてもよい。そこで、以下では、その他の実施例について説明する。
例えば、実施例1では、複数のパッチを並行して適用する手法に加えて、(1)システム停止中に適用したパッチについてのパッチ情報を記憶部に格納する手法や、(2)適用するパッチをまとめた統合パッチを作成する手法を併せて実施する手法について説明した。しかし、これに限定されるものではなく、手法(1)や手法(2)を実施しなくてもよく、また、片方のみを併せて実施してもよい。
[システム構成]
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。例えば、統合パッチを手動にて作成してもよい。
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については(例えば、図1〜図17)、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
例えば、実施例1では、パッチ適用装置100が、自パッチ適用装置100にパッチを適用する場合について説明したが、パッチを適用する処理を実行するパッチ適用装置100と、パッチが適用されるシステムとが別装置であってもよい。また、例えば、パッチ適用制御部310とパッチ変換制御部320とを統合して一つの制御部としてもよい。
[コンピュータ]
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをサーバ、パーソナルコンピュータやワークステーションなどの情報処理装置としてのコンピュータで実行することによって実現することができる。そこで、以下では、図18を用いて、上記の実施例と同様の機能を有するパッチ適用プログラムを実行するコンピュータの一例を説明する。なお、図18は、実施例1に係るパッチ適用装置プログラムを実行するコンピュータを説明するための図である。
図18に示すように、実施例1におけるコンピュータ3000は、操作部3001、マイク3002、スピーカ3003、ディスプレイ3004、通信部3006、演算処理装置としてのCPU(Central Processing Unit)3010、ROM(Read Only Memory)3011、HDD(Hard Disk Drive)3012、RAM(Random Access Memory)3013をバス3009などで接続して構成されている。
ROM3011には、上記の実施例1で示したパッチ適用制御部310と、パッチ変換制御部320と同様の機能を発揮する制御プログラム、つまり、図18に示すように、パッチ適用制御プログラム3011aと、パッチ変換制御プログラム3011bとが予め記憶されている。なお、これらのプログラム3011a〜3011bについては、図4に示したパッチ適用装置100の各構成要素と同様、適宜統合または分離してもよい。
そして、CPU3010が、これらのプログラム3011a〜3011bをROM3011から読み出して実行することにより、図18に示すように、各プログラム3011a〜3011bについては、パッチ適用制御プロセス3010aと、パッチ変換制御プロセス3010bとして機能するようになる。なお、各プロセス3010a〜3010bは、図4に示した、パッチ適用制御部310と、パッチ変換制御部320とにそれぞれ対応する。
そして、HDD3012には、システム情報テーブル3012aと、適用済みパッチ情報テーブル3012bと、パッチテーブル3012cと、統合パッチテーブル3012dと、プログラムテーブル3012eと、バックアップデータテーブル3012fとが設けられている。なお、各テーブル3012a〜3012fは、図4に示した、システム情報記憶部201と、適用済みパッチ情報記憶部202と、パッチ記憶部203と、統合パッチ記憶部204と、プログラム記憶部205と、バックアップデータ記憶部206とにそれぞれ対応する。
そして、CPU3010は、システム情報テーブル3012aと、適用済みパッチ情報テーブル3012bと、適用対象パッチテーブル3012cと、統合パッチテーブル3012dと、プログラムテーブル3012eと、バックアップデータテーブル3012fとを読み出してRAM3013に格納し、RAM3013に格納されたシステム情報データ3013aと、適用済みパッチ情報データ3013bと、適用対象パッチデータ3013cと、統合パッチデータ3013dと、プログラムデータ3013eと、バックアップデータデータ3013fとを用いてパッチ適用プログラムを実行する。
[その他]
なお、本実施例で説明したパッチ適用装置100は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。パッチ適用装置プログラムは、インターネットなどのネットワークを介して配布することができる。また、パッチ適用装置プログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
実施例1に係るパッチ適用装置の概要を説明するための図である。 実施例1におけるパッチの構造の一例を説明するための図である。 実施例1におけるパッチの構造の一例を説明するための図である。 実施例1に係るパッチ適用装置の構成の一例を説明するためのブロック図である。 実施例1におけるシステム情報記憶部を説明するための図である。 実施例1における適用済みパッチ情報記憶部を説明するための図である。 実施例1におけるパッチ記憶部を説明するための図である。 実施例1における統合パッチの構造の一例を説明するための図である。 実施例1における統合パッチの構造の一例を説明するための図である。 実施例1に係るパッチ適用装置による全体処理の流れの一例を簡単に説明するためのシーケンス図である。 実施例1に係るパッチ適用装置の各部を説明するための図である。 実施例1に係るパッチ適用装置による全体処理の流れの一例を説明するためのフローチャートである。 実施例1におけるパッチ変換制御部による処理の流れの一例を説明するためのフローチャートである。 実施例1に係るパッチ適用装置による統合パッチに含まれる個々のパッチ適用処理の流れの一例を説明するためのフローチャートである。 実施例1に係るパッチ適用装置による効果を説明するための図である。 従来のパッチ適用処理を説明するためのフローチャートである。 従来のパッチ適用処理を説明するための図である。 実施例1に係るパッチ適用装置プログラムを実行するコンピュータを説明するための図である。
符号の説明
100 パッチ適用装置
200 記憶部
201 システム情報記憶部
202 適用済みパッチ情報記憶部
203 パッチ記憶部
204 統合パッチ記憶部
205 プログラム記憶部
206 バックアップデータ記憶部
300 制御部
310 パッチ適用制御部
311 要求受付処理部
312 業務停止再開処理部
313 統合パッチ適用部
320 パッチ変換制御部
321 情報取得部
322 パッチ関係チェック部
323 統合パッチ作成部

Claims (5)

  1. システムに適用する複数のパッチ各々について、依存関係がある他のパッチを識別する識別部と、
    前記識別部による識別の結果依存関係があると識別されたパッチ間では、当該依存関係に基づいた順番にてパッチ各々を適用し、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行して適用する適用部と
    を備えたことを特徴とするパッチ適用装置。
  2. 前記システムに適用されたパッチに関する情報を記憶する記憶部に、前記適用部によって適用されたパッチ各々に関する情報各々を格納する格納部をさらに備えたことを特徴とする請求項1に記載のパッチ適用装置。
  3. 前記識別部によって依存関係が識別されたパッチ各々を統合したパッチである統合パッチを作成する作成部をさらに備え、
    前記適用部は、前記統合パッチに含まれるパッチ各々を適用することを特徴とする請求項1または2に記載のパッチ適用装置。
  4. コンピュータが、
    システムに適用する複数のパッチ各々について、依存関係がある他のパッチを識別する識別ステップと、
    前記識別ステップによる識別の結果依存関係があると識別されたパッチ間では、当該依存関係に基づいた順番にてパッチ各々を適用し、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行して適用する適用ステップと
    実行することを特徴とするパッチ適用方法。
  5. システムに適用する複数のパッチ各々について、依存関係がある他のパッチを識別する識別手順と、
    前記識別手順による識別の結果依存関係があると識別されたパッチ間では、当該依存関係に基づいた順番にてパッチ各々を適用し、識別の結果依存関係がないと識別されたパッチ間では、パッチ各々を並行して適用する適用手順と
    をコンピュータに実行させることを特徴とするパッチ適用プログラム。
JP2008307662A 2008-12-02 2008-12-02 パッチ適用装置、パッチ適用方法およびパッチ適用プログラム Expired - Fee Related JP5168112B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008307662A JP5168112B2 (ja) 2008-12-02 2008-12-02 パッチ適用装置、パッチ適用方法およびパッチ適用プログラム
US12/625,601 US20100138822A1 (en) 2008-12-02 2009-11-25 Patch application apparatus and patch application method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008307662A JP5168112B2 (ja) 2008-12-02 2008-12-02 パッチ適用装置、パッチ適用方法およびパッチ適用プログラム

Publications (2)

Publication Number Publication Date
JP2010134543A JP2010134543A (ja) 2010-06-17
JP5168112B2 true JP5168112B2 (ja) 2013-03-21

Family

ID=42223940

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008307662A Expired - Fee Related JP5168112B2 (ja) 2008-12-02 2008-12-02 パッチ適用装置、パッチ適用方法およびパッチ適用プログラム

Country Status (2)

Country Link
US (1) US20100138822A1 (ja)
JP (1) JP5168112B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028271B2 (en) * 2007-03-12 2011-09-27 Wind River Systems, Inc. Patch-aware editor
US9158533B2 (en) * 2012-01-16 2015-10-13 International Business Machines Corporation Manipulating source code patches
US9229771B2 (en) * 2012-03-08 2016-01-05 Microsoft Technology Licensing, Llc Cloud bursting and management of cloud-bursted applications
US9444896B2 (en) 2012-12-05 2016-09-13 Microsoft Technology Licensing, Llc Application migration between clouds
US20140359593A1 (en) * 2013-05-31 2014-12-04 Microsoft Corporation Maintaining known dependencies for updates
WO2015068206A1 (ja) * 2013-11-05 2015-05-14 株式会社日立製作所 計算機、そのモジュールの修正方法
US9442715B2 (en) * 2014-07-28 2016-09-13 Microsoft Technology Licensing, Llc Patch process ensuring high availability of cloud application
US11010151B2 (en) * 2018-07-05 2021-05-18 International Business Machines Corporation Software patch ordering
CN115630020B (zh) * 2022-12-23 2023-03-10 北京亿赛通科技发展有限责任公司 一种安全扫描结果复用的方法、装置及电子设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0546378A (ja) * 1991-08-12 1993-02-26 Fujitsu Ltd プログラムの修正処理方法
WO1994025913A2 (en) * 1993-04-30 1994-11-10 Novadigm, Inc. Method and apparatus for enterprise desktop management
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US7861211B2 (en) * 2003-07-29 2010-12-28 Hewlett-Packard Development Company, L.P. Mobile handset with update agent implemented in hardware
JP4265431B2 (ja) * 2004-02-09 2009-05-20 日本電気株式会社 パッチ管理システムおよびパッチ管理プログラム
US7676448B2 (en) * 2004-03-12 2010-03-09 Microsoft Corporation Controlling installation update behaviors on a client computer
US7552431B2 (en) * 2004-08-31 2009-06-23 Microsoft Corporation Multiple patching in a single installation transaction
US7765538B2 (en) * 2004-10-29 2010-07-27 Hewlett-Packard Development Company, L.P. Method and apparatus for determining which program patches to recommend for installation
US8245216B2 (en) * 2005-10-11 2012-08-14 Oracle International Corporation Patch management system
KR100973022B1 (ko) * 2006-02-01 2010-07-30 후지쯔 가부시끼가이샤 오브젝트 관계 표시 프로그램을 기록한 기록 매체 및 오브젝트 관계 표시 방법
US8239854B2 (en) * 2007-03-26 2012-08-07 Microsoft Corporation Bookmark and configuration file for installation sequence
JP4155331B2 (ja) * 2007-07-19 2008-09-24 セイコーエプソン株式会社 ソフトウェアの管理方法、管理装置、そのためのサーバ、及び、コンピュータプログラム

Also Published As

Publication number Publication date
US20100138822A1 (en) 2010-06-03
JP2010134543A (ja) 2010-06-17

Similar Documents

Publication Publication Date Title
JP5168112B2 (ja) パッチ適用装置、パッチ適用方法およびパッチ適用プログラム
US9928059B1 (en) Automated deployment of a multi-version application in a network-based computing environment
US20090328026A1 (en) Update system, program execution device, and computer program
US9081639B2 (en) System and method for remotely re-imaging a computer system
TWI475402B (zh) 遠端備份系統及其遠端備份方法
US8918783B2 (en) Managing virtual computers simultaneously with static and dynamic dependencies
US20090327815A1 (en) Process Reflection
US20100205416A1 (en) Automatic analysis of an application's run-time settings
US8782643B2 (en) Device and method for controlling communication between BIOS and BMC
US8196137B2 (en) Remote auto provisioning and publication of applications
US20160378458A1 (en) Method and device for system application installation package, and terminal
US8661418B2 (en) Setting program, workflow creating method, and work flow creating apparatus
US20150007252A1 (en) System and Method for Automatically Configuring Application Control Rules
JP2006507570A5 (ja)
US20100281143A1 (en) Maintaining mobile device operations
JP2010205267A (ja) 仮想化サブレイヤを統合する方法およびシステム
CN109684298B (zh) 数据库迁移方法、装置、设备及存储介质
WO2014000616A1 (zh) 扫描方法、装置和客户端设备
US7818557B2 (en) Method for re-imaging a computer system
US20150039872A1 (en) Multiple Signed Filesystem Application Packages
JP2012526322A (ja) オペレーティングシステム状態の取込み及びローディング
CN113313353A (zh) 一种持续交付流水线管理方法及装置
US8250558B2 (en) Dynamic linked library add-on features
CN112685063B (zh) 特征库更新方法、装置、网络设备及可读存储介质
CN114398155A (zh) 一种应用程序自动化部署流水线配置方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121030

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121107

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121210

LAPS Cancellation because of no payment of annual fees