JP5621914B2 - 情報処理装置、修正適用判定プログラムおよび修正適用判定方法 - Google Patents

情報処理装置、修正適用判定プログラムおよび修正適用判定方法 Download PDF

Info

Publication number
JP5621914B2
JP5621914B2 JP2013505705A JP2013505705A JP5621914B2 JP 5621914 B2 JP5621914 B2 JP 5621914B2 JP 2013505705 A JP2013505705 A JP 2013505705A JP 2013505705 A JP2013505705 A JP 2013505705A JP 5621914 B2 JP5621914 B2 JP 5621914B2
Authority
JP
Japan
Prior art keywords
patch
data
program
correction
counter
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
JP2013505705A
Other languages
English (en)
Other versions
JPWO2012127635A1 (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
Publication of JPWO2012127635A1 publication Critical patent/JPWO2012127635A1/ja
Application granted granted Critical
Publication of JP5621914B2 publication Critical patent/JP5621914B2/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

Description

本発明は、情報処理装置等に関する。
近年、稼動中の計算機システムにおけるプログラムのパッチは、障害の大小を問わず公開されている。公開された全てのパッチを対応するプログラムに適用すると、パッチによるレベルダウンが発生する場合がある。そこで、パッチによるレベルダウンを防止するため、スキルが高い人間が、公開されたパッチの情報から適用するパッチを抽出する。
また、システムの稼動時に、プログラムの走行回数を制御表に記録し、パッチの受信時に、そのパッチと同一の機能名をもつプログラムの走行回数を制御表から求め、走行回数が所定回数以上のとき、当該パッチを適用するパッチとして抽出する技術がある。
特開2000−10766号公報
しかしながら、パッチを適用する従来の技術では、パッチを適用するか否かの判断が困難であるという問題があった。一例として、人間が、適用するパッチを抽出する場合、スキルが高いと過不足ないパッチを抽出できるが、スキルが低いとパッチを適用するか否かを判断できかねる場合がある。また、スキルが高い場合であっても、パッチの組み合わせまで考慮して、過不足ないパッチを抽出することは困難である。
別の一例として、プログラムの走行回数を用いた技術の場合、プログラムのどの部分が動作したかに関係なく走行回数をカウントしているので、このカウントにより自己のシステムでパッチの適用が必要であるか否かを判断することは困難である。
開示の技術は、パッチを適用するか否かの判断を適切に行うことができる情報処理装置等を提供することを目的とする。
本願の開示する情報処理装置は、一つの態様において、運用中のプログラムに修正がある場合、修正箇所が実行されると、修正箇所が実行された回数を計数させる処理を組み込んだ暫定修正プログラムを前記運用中のプログラムに適用するプログラム適用部と、前記プログラム適用部によって適用された前記暫定修正プログラムが適用された結果、修正箇所が実行された回数を示すカウントがアップしているか否かを所定のタイミングで判定する判定部と、前記判定部によってカウントがアップしていると判定された場合、カウントがアップしていると判定された、修正箇所を含む暫定修正プログラムを、当該修正箇所を修正した修正済みのプログラムに置き換える置換部とを有する。
本願の開示する情報処理装置の一つの態様によれば、パッチを適用するか否かの判断を適切に行うことができるという効果を奏する。
図1は、実施例に係るパッチ適用判定を行なうシステムの構成を示す機能ブロック図である。 図2は、パッチ作成部によるパッチ作成の具体例を説明する図である。 図3は、実施例に係るカウンタDBのデータ構造の一例を示す図である。 図4は、実施例に係るパッチ作成の手順を示すフローチャートである。 図5は、実施例に係るパッチ公開の手順を示すフローチャートである。 図6は、実施例に係るパッチ適用判定の手順を示すフローチャートである。 図7は、実施例に係るカウンタDB作成の手順を示すフローチャートである。 図8は、実施例に係るカウンタ処理の手順を示すフローチャートである。 図9は、実施例に係るパッチデータ適用の手順を示すフローチャートである。 図10は、パッチデータの内容の具体例を示す図である。 図11は、カウンタDBの状態を説明する図である。 図12は、1個のパッチIDに対して修正があるオブジェクトが2個ある場合のカウンタDBの状態を説明する図である。 図13は、パッチ適用判定プログラムを実行するコンピュータを示す図である。
以下に、本願の開示する情報処理装置、修正適用判定プログラムおよび修正適用判定方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例では、問題があったプログラムの修正後のプログラムのことを「パッチ」というものとする。また、実施例によりこの発明が限定されるものではない。
[実施例に係る計算機システムの構成]
図1は、実施例に係るパッチ適用判定を行うシステムの構成を示す機能ブロック図である。図1に示すように、計算機システム1は、情報処理装置10と、ネットワーク20と、パッチ公開サーバ30と、パッチ作成サーバ40とを有する。
パッチ作成サーバ40は、パッチを作成するサーバである。すなわち、パッチ作成サーバ40は、運用中のプログラムのいずれかの箇所で障害が発生した場合、プログラムの障害箇所を修正したパッチデータを作成する。また、パッチ作成サーバ40は、パッチを適用する側である後述する情報処理装置10において、パッチデータを適用するか否かを判断するためのチェックデータを作成する。チェックデータは、パッチデータの修正箇所にカウンタ処理を組み込んだデータのことをいう。このカウンタ処理は、呼び出されるとパッチデータの識別情報として与えられるパッチID(identification)に対応するカウントをアップさせる。つまり、情報処理装置10がチェックデータを実行し、チェックデータ内のカウンタ処理が走行すると、カウンタ処理は、パラメータとして引き渡されるパッチデータのパッチIDに対応するカウントをアップさせる。なお、カウント処理は、例えばあらかじめ作成されたライブラリ内に部品化されているものである。
パッチ作成サーバ40は、制御部41および記憶部42を有する。制御部41は、パッチ作成部411を有する。記憶部42は、修正前ソースデータ421および修正後ソースデータ422を有する。修正前ソースデータ421は、運用中のプログラムのソースファイルを示す。修正後ソースデータ422は、プログラムの障害箇所を修正したパッチデータのソースファイル、すなわち修正後のプログラムのソースファイルを示す。パッチ作成部411は、修正前ソースデータ421の障害箇所に修正部分を追加し、修正後ソースデータ422を作成する。そして、パッチ作成部411は、修正後ソースデータ422をコンパイルし、さらにパッチ関連のデータを作成するツールであるパッチ作成ツールを動作させ、パッチデータを作成する。また、パッチ作成部411は、修正前ソースデータ421と修正後ソースデータ422とを比較し、差分となる修正箇所を探索する。そして、パッチ作成部411は、修正前ソースデータ421の探索した修正箇所にカウンタ処理を追加する。そして、パッチ作成部411は、カウンタ処理を追加したソースデータをコンパイルし、さらにパッチ作成ツールを動作させ、チェックデータを作成する。
ここで、パッチ作成部411によるパッチ作成の具体例について、図2を参照して説明する。図2は、パッチ作成部によるパッチ作成の具体例を説明する図である。図2に示すように、修正前ソースデータ421には、aaa、bbbおよびcccのソースコードが記述されている。ここで、bbbの箇所で障害が発生したとする。パッチ作成部411は、修正前ソースデータ421の障害箇所であるbbbとcccとの間に修正コードを追加し、修正後ソースデータ422を作成する(s1)。そして、パッチ作成部411は、作成した修正後ソースデータ422をコンパイルし、さらにパッチ作成ツールを動作させ、パッチデータを作成する(s2)。パッチデータには、例えば、パッチIDとして「123456」が書き込まれる。
次に、パッチ作成部411は、修正前ソースデータ421と修正後ソースデータ422とを比較し(s3)、差分となる修正箇所を探索する。ここでは、パッチ作成部411は、bbbとcccとの間に修正コードが追加されているので、探索の結果、bbbとcccとの間を修正箇所とする。そして、パッチ作成部411は、修正前ソースデータ421の修正箇所にカウンタ処理を追加する(s4)。このとき、パッチ作成部411は、カウンタ処理のパラメータとして、パッチデータのパッチIDを記述する。そして、パッチ作成部411は、修正前ソースデータ421にカウンタ処理を追加したソースデータをコンパイルし、さらにパッチ作成ツールを動作させ、チェックデータを作成する(s5)。
図1に戻って、パッチ作成部411は、作成したパッチデータおよびチェックデータを、パッチ公開サーバ30へ登録する。
パッチ公開サーバ30は、パッチを公開するサーバである。パッチ公開サーバ30は、制御部31および記憶部32を有する。制御部31は、パッチ提供部311を有する。記憶部32は、チェックデータ321およびパッチデータ322を有する。チェックデータ321は、パッチ作成部411によって登録されたチェックデータを示す。パッチデータ322は、パッチ作成部411によって登録されたパッチデータを示す。そして、パッチ公開サーバ30は、パッチ作成サーバ40によって登録されたパッチデータ322およびチェックデータ321を一括して管理する。また、パッチ公開サーバ30は、情報処理装置10からパッチデータ322のダウンロード要求を取得すると、要求があったパッチデータ322およびパッチデータ322に対応するチェックデータ321を、要求元に対して提供する。
情報処理装置10は、運用中のプログラムに修正がある場合、パッチデータを適用する代わりに、カウンタ処理が組み込まれたチェックデータを用いて通常運用し、チェックデータ内の修正箇所が実行された場合にカウントをアップさせる。そして、情報処理装置10は、所定のタイミングで、カウントがアップしたか否かを判定し、カウントがアップした修正について、本来のパッチデータを適用する。すなわち、情報処理装置10は、一度でも修正箇所が実行された場合、例えば電源オフまたはオンのタイミングで、カウントアップを検出した修正箇所のチェックデータを本来のパッチデータに置き換える。
情報処理装置10は、パッチ公開サーバ30とネットワーク20で接続される。また、情報処理装置10は、制御部11および記憶部12を有する。制御部11は、チェックデータ適用部111と、カウントアップを判定するカウントアップ判定部112と、例えば情報処理装置10の電源オンまたはオフ時にカウントアップされたパッチを適用するパッチデータ適用部113とを有する。なお、制御部11の機能は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現することができる。また、所定のプログラムがCPU(Central Processing Unit)を機能させることで実現することができる。
記憶部12は、例えば、RAM(Random Access Memory)、フラッシュメモリ(flash memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。さらに、記憶部12は、カウンタDB121と、チェックデータ122と、パッチデータ123とを有する。カウンタDB121は、パッチデータの修正箇所を通過したか否かの判定に用いられるカウンタをパッチデータ毎に記憶する。なお、カウンタDB121の詳細な説明については、後述するものとする。
チェックデータ122は、パッチデータの修正箇所にカウンタ処理を組み込んだオブジェクトである。パッチデータ123は、運用中のプログラムの障害箇所を修正したオブジェクトである。チェックデータ122およびパッチデータ123は、パッチデータ123のダウンロード要求に基づいて、パッチ公開サーバ30から提供される。
チェックデータ適用部111は、運用中のプログラムに修正がある場合、修正箇所を通過するとカウントをアップさせるカウンタ処理を組み込んだ暫定修正プログラム、すなわちチェックデータ122を運用中のプログラムに適用する。例えば、チェックデータ適用部111は、運用中のプログラムに修正がある場合、修正があるプログラムに対応したパッチデータ322およびチェックデータ321のダウンロード要求をパッチ公開サーバ30に出力する。そして、チェックデータ適用部111では、要求に応じたパッチデータ322およびチェックデータ321がパッチ公開サーバ30から提供される。そして、チェックデータ適用部111は、提供されたチェックデータ321を本来実行されるべきオブジェクトの配置先へ配置し、提供されたパッチデータ322をパッチデータ322毎に区別できる配置先へ配置する。一例として、チェックデータ適用部111は、パッチデータ322を本来実行されるべきオブジェクトの配置先の上位にパッチIDを付加した配置先へ配置する。
また、チェックデータ適用部111は、提供されたパッチデータ123に関するカウンタDB121を作成する。ここで、カウンタDB121のデータ構造について、図3を参照しながら説明する。図3は、実施例に係るカウンタDBのデータ構造の一例を示す図である。図3に示すように、カウンタDB121は、パッチID121a毎に、チェックデータのオブジェクト121b、パッチデータのオブジェクト121cおよびカウンタ121dを対応付けて記憶する。パッチID122aには、パッチデータ123の識別子が記憶される。チェックデータのオブジェクト122bには、チェックデータ122の配置先が記憶される。パッチデータのオブジェクト122cには、パッチデータ123の配置先が記憶される。例えば、カウンタDB122は、パッチIDの値が「123456」である場合、チェックデータのオブジェクトの配置先として「/opt/パッケージ名/sbin/aaa」を記憶する。パッチデータのオブジェクトの配置先として「/opt/patch/123456/opt/パッケージ名/sbin/aaa」を記憶する。すなわち、パッチデータのオブジェクトの配置先は、チェックデータのオブジェクトの配置先の上位にパッチID「123456」を付加した配置先となっている。また、カウンタDB122は、カウンタ122dの値として初期値の0を記憶する。なお、チェックデータ適用部111は、カウンタDB122をパッチデータ123の配置先に作成しても良いし、カウンタDB122を作成するための専用の配置先に作成しても良い。
図1に戻って、チェックデータ適用部111は、情報処理装置10でプログラムを実行した際に、チェックデータ122内の修正箇所を通過した場合には、修正箇所に埋め込まれたカウンタ処理にカウンタDB122のカウンタ122dの値をインクリメントさせる。なお、カウンタ処理の手順については、後述するものとする。
カウントアップ判定部112は、チェックデータ適用部111によってチェックデータ122が実行された結果、所定のタイミングで、カウントがアップしているか否かを判定する。例えば、カウントアップ判定部112は、情報処理装置10の電源オフまたは電源オンのタイミングで、カウンタDB121のカウンタ122dの値を順次読み出し、読み出したカウンタ122dの値が「0」でないか否かを判定する。
パッチデータ適用部113は、カウントアップ判定部112によってカウントがアップしていると判定された場合、チェックデータ122を、修正箇所を修正した修正済みのプログラム、すなわちパッチデータ123に置き換える。例えば、パッチデータ適用部113は、カウンタDB121のカウンタ122dの値が「0」でないと判定された場合、「0」でないと判定された行のパッチIDをカウンタDB121から読み出す。そして、パッチデータ適用部113は、読み出したパッチIDと同じ行のパッチデータのオブジェクトをチェックデータのオブジェクトの配置先にコピーする。すなわち、パッチデータ適用部113は、動作していたチェックデータのオブジェクトを修正済みのプログラムであるパッチデータに置き換える。さらに、パッチデータ適用部113は、カウンタDB122から置き換え対象となったパッチIDの行を削除する。
[実施例に係るパッチ適用判定の手順]
次に、実施例に係るパッチ適用判定の手順を、図4〜図6を参照して説明する。図4は、実施例に係るパッチ作成の手順を示すフローチャートである。図5は、実施例に係るパッチ公開の手順を示すフローチャートである。図6は、実施例に係るパッチ適用判定の手順を示すフローチャートである。なお、一例として、運用中のプログラムのいずれかの箇所で障害が発生したものとする。
運用中のプログラムで障害が発生すると、パッチ作成サーバ40では、パッチ作成部411が、障害が発生したプログラムのソースファイルである修正前ソースデータ421の修正を実施する(ステップS11)。そして、パッチ作成部411は、修正前ソースデータ421の障害箇所に修正部分を追加し、修正後ソースデータ422を作成する。そして、パッチ作成部411は、作成した修正後ソースデータ422をコンパイルし、さらにパッチ作成ツールを動作させ、パッチデータを作成する(ステップS12)。
続いて、パッチ作成部411は、修正前ソースデータ421と修正後ソースデータ422とを比較し、差分となる修正箇所にカウンタ処理を追加する(ステップS13)。そして、パッチ作成部411は、カウンタ処理を追加したソースデータをコンパイルし、さらにパッチ作成ツールを動作させ、チェックデータを作成する(ステップS14)。
そして、パッチ作成部411は、作成したパッチデータおよびチェックデータをパッチ公開サーバ30へ登録する(ステップS15)。
パッチ作成サーバ40によりパッチデータ322およびチェックデータ321が登録されると、パッチ公開サーバ30は、登録されたパッチデータ322およびチェックデータ321を公開する(ステップS21)。
続いて、情報処理装置10では、チェックデータ適用部111が、障害が発生したプログラムに関するパッチデータ322およびチェックデータ321をパッチ公開サーバ30からダウンロードする(ステップS31)。そして、チェックデータ実行部111は、ダウンロードしたチェックデータ122を本来実行されるべきオブジェクトの配置先へ配置し、ダウンロードしたパッチデータ123をパッチデータ毎に区別できる配置先へ配置する。
そして、チェックデータ適用部111は、ダウンロードしたパッチデータ123のパッチIDに対応するカウンタDB121を作成する(ステップS32)。なお、カウンタDB121の作成手順については、後に詳述する。
続いて、情報処理装置10におけるプログラム実行中にチェックデータ122内の修正箇所を通過した場合には、通過したチェックデータ内の修正箇所のカウンタがカウントアップを実施する(ステップS33)。すなわち、チェックデータ実行部111は、チェックデータ122内の修正箇所を通過した場合には、修正箇所に埋め込まれたカウンタ処理にカウンタDB121のカウンタ121dの値をインクリメントさせる。なお、カウンタ処理には、パラメータとしてパッチデータのパッチIDが与えられる。そして、カウンタ処理は、カウンタDB121について、与えられたパッチIDに対応するカウンタ121dの値を1加算することとなる。
その後、カウントアップ判定部112は、電源オフまたは電源オンのタイミングで、パッチIDに対応するカウンタ122dの値をカウンタDB121から読み出す(ステップS34)。そして、カウントアップ判定部112は、読み出したカウンタ122dの値が0であるか否かを判定する(ステップS35)。カウンタ122dの値が0であると判定した場合(ステップS35;Yes)、カウントがアップしていないので、パッチデータを適用しても修正箇所は動作しないと判断し、パッチ適用判定処理を終了する。
一方、カウンタ122dの値が0でないと判定した場合(ステップS35;No)、パッチデータ適用部113は、カウントがアップしているので、パッチデータ123を自動適用する(ステップS36)。すなわち、パッチデータ適用部113は、動作していたチェックデータ122をパッチデータ123に置き換える。なお、パッチデータの適用手順については、後に詳述する。
[実施例に係るカウンタDB作成の手順]
次に、図6に示すS32の処理手順を、図7を参照して説明する。図7は、実施例に係るカウンタDB作成の手順を示すフローチャートである。図7の例では、カウンタDB121は、パッチデータ123に記述された、パッチIDおよびオブジェクトの配置先に基づいて作成されるものとする。
まず、チェックデータ適用部111は、カウンタDB121が作成済みであるか否かを判定する(ステップS41)。カウンタDB121が作成済みでないと判定する場合(ステップS41;No)、チェックデータ適用部111は、空のカウンタDB121を作成し(ステップS42)、ステップS43に移行する。一方、カウンタDB121が作成済みであると判定する場合(ステップS41;Yes)、チェックデータ適用部111は、ステップS43に移行する。
続いて、チェックデータ適用部111は、適用するパッチデータ123からパッチIDを読み出す(ステップS43)。そして、チェックデータ適用部111は、読み出したパッチIDをカウンタDB121のパッチID欄に追加する(ステップS44)。
そして、チェックデータ適用部111は、パッチデータ123内のオブジェクトの配置先の中から、最初に「/opt/patch」と付いている配置先をカウンタDB121のパッチデータのオブジェクト欄に更新する(ステップS45)。
さらに、チェックデータ適用部111は、パッチデータ123内のオブジェクトの配置先の中から、その他の配置先を読み出す。そして、チェックデータ適用部111は、読み出した配置先の中からパッチデータのオブジェクトの配置先内の「/opt/patch/XXXXXX」配下と同じ配置先を検索する。そして、チェックデータ適用部111は、検索した配置先をカウンタDB121のチェックデータのオブジェクト欄に更新する(ステップS46)。
そして、チェックデータ適用部111は、カウンタDB121のカウンタ欄に初期値の0を更新する(ステップS47)。
[実施例に係るカウンタ処理の手順]
次に、図6に示すS33のカウンタ処理の手順を、図8を参照して説明する。図8は、実施例に係るカウンタ処理の手順を示すフローチャートである。なお、パラメータとしてパッチIDが与えられたものとする。
まず、カウンタ処理は、カウンタDB121のパッチIDを読み出す(ステップS51)。そして、カウンタ処理は、カウンタDB121から読み出したパッチIDとパラメータとして与えられたパッチIDとを比較する(ステップS52)。そして、カウンタ処理は、読み出したパッチIDがパラメータとして与えられたパッチIDと一致しているか否かを判定する(ステップS53)。
一致していないと判定する場合(ステップS53;No)、カウンタ処理は、カウンタDB121の次行のパッチIDを読み出し(ステップS54)、ステップS52に移行する。
一方、一致していると判定する場合(ステップS53;Yes)、カウンタ処理は、一致していると判定したパッチIDと同じ行のカウンタ値を読み出す(ステップS55)。そして、カウンタ処理は、読み出したカウンタ値を1加算し、カウントをアップする(ステップS56)。そして、カウンタ処理は、カウンタDB121のカウンタ値を加算した値に更新する(ステップS57)。
[実施例に係るパッチデータ適用の手順]
次に、図6に示すS34〜S36のパッチデータ適用の手順を、図9を参照して説明する。図9は、実施例に係るパッチデータ適用の手順を示すフローチャートである。
まず、カウントアップ判定部112は、電源オフまたは電源オンであるか否かを判定する(ステップS61)。電源オフおよび電源オンでないと判定した場合(ステップS61;No)、カウントアップ判定部112は、電源オフまたは電源オンとなるまで判定を繰り返す。
一方、電源オフまたは電源オンであると判定した場合(ステップS61;Yes)、カウントアップ判定部112は、カウンタDB121の先頭行を選択する(ステップS62)。そして、カウントアップ判定部112は、選択した先頭行からカウンタ値を読み出す(ステップS63)。
続いて、カウントアップ判定部112は、読み出したカウンタ値が0であるか否かを判定する(ステップS64)。カウントアップ判定部112によってカウンタ値が0でないと判定された場合(ステップS64;No)、パッチデータ適用部113は、選択した行のパッチIDを読み出す(ステップS65)。そして、パッチデータ適用部113は、読み出したパッチIDと同じ行のパッチデータのオブジェクトをチェックデータの配置先にコピーする(ステップS66)。すなわち、パッチデータ適用部113は、動作していたチェックデータ122をパッチデータ123に置き換える。
そして、パッチデータ適用部113は、カウンタDB121から読み出したパッチIDと同じパッチIDの行を削除する(ステップS67)。その後、パッチデータ適用部113は、次の行を選択すべく、ステップS69に移行する。
一方、カウントアップ判定部112によってカウンタ値が0であると判定された場合(ステップS64;Yes)、パッチデータ適用部113は、選択した行が最終行であるか否かを判定する(ステップS68)。選択した行が最終行でないとパッチデータ適用部113によって判定された場合(ステップS68;No)、カウントアップ判定部112は、カウンタDB121の次の行を選択し(ステップS69)、ステップS63に移行する。
一方、選択した行が最終行であると判定した場合(ステップS68;Yes)、パッチデータ適用部113は、パッチデータ123がOS(Operation System)に係るデータであった場合には、カーネルの再構成を実施する(ステップS70)。なお、パッチデータ123がOSに係るデータでない場合には、カーネルの再構成は実施しなくても良い。
[パッチデータを運用中のオブジェクトに適用する具体例]
ここで、パッチIDの値が「123456」であるパッチデータを運用中のオブジェクトに適用する具体例について、図10および図11を参照して説明する。図10は、パッチデータの内容の具体例を示す図である。図11は、カウンタDBの状態を説明する図である。なお、運用中のオブジェクトは、「/opt/FJSVabcd/sbin/aaa」に配置されているものとする。
図10に示すように、パッチデータ123には、パッチIDの値として「123456」、パッケージの名称として「FJSVabcd」が記述されている。オブジェクトの配置先は、チェックデータ122およびパッチデータ123の配置先が記述されている。チェックデータ122の配置先には、「/opt/FJSVabcd/sbin/aaa」が記述され、「aaa」がチェックデータ123のオブジェクト名となっている。
パッチデータ123の配置先には、「/opt/patch/123456/opt/FJSVabcd/sbin/aaa」が記述され、「aaa」がパッチデータ122のオブジェクト名となっている。すなわち、パッチデータ123の配置先は、「/opt/123456/opt」配下に、本来実行されるべきオブジェクトの配置先が付加された配置先となっている。
このようなパッチデータ123およびチェックデータ122が情報処理装置10に提供されると、チェックデータ適用部111は、パッチデータ123に記述されたパッチID「123456」に関するカウンタDB121を作成する。図11に示すように、作成直後のカウンタDB121の状態は、パッチIDの値が「123456」であり、チェックデータ122のオブジェクトの配置先として「/opt/FJSVabcd/sbin/aaa」を記憶している。パッチデータ123のオブジェクトの配置先として「/opt/patch/123456/opt/FJSVabcd/sbin/aaa」を記憶し、カウンタ121dの値として初期値の0を記憶している。
この状態で、チェックデータ適用部111は、チェックデータ122であるオブジェクト「aaa」を実行し、オブジェクト「aaa」内の修正箇所を通過した場合には、カウンタ処理によってカウンタDB121のカウンタ値を1加算させる。その後、電源オフまたは電源オンのタイミングで、パッチデータ適用部113は、カウンタDB121に記憶された、パッチID「123456」に対応するカウンタの値をチェックする。
ここで、パッチデータ適用部113は、パッチID「123456」に対応するカウンタの値が図11に示すように0である場合には、パッチID「123456」の修正を行っても修正箇所を通過しないので、パッチデータ123を適用しない。しかしながら、パッチデータ適用部113は、パッチID「123456」に対応するカウンタの値が0以外の数である場合には、パッチID「123456」の修正を行うと修正箇所を通過するので、パッチデータ123を適用する。すなわち、パッチデータ適用部113は、チェックデータ122のオブジェクト「aaa」をパッチデータ123のオブジェクト「aaa」に置き換える。
ところで、上記した実施例では、1個のパッチIDに対して修正があるオブジェクトが1個の場合について説明した。しかしながら、1個のパッチIDに対して修正があるオブジェクトが2個以上の場合であっても、パッチ適用判定処理に変化はない。1個のパッチIDに対して修正があるオブジェクトが2個ある場合のカウンタDB121の状態を、図12を参照して説明する。図12は、1個のパッチIDに対して修正があるオブジェクトが2個ある場合のカウンタDBの状態を説明する図である。
図12に示すように、作成直後のカウンタDB121の状態は、パッチIDの値が「123456」であり、修正があるオブジェクトが「aaa」、「bbb」の2個ある。そして、パッチID「123456」に対して修正があるオブジェクトが2個あっても、カウンタは1つしか使用されない。したがって、チェックデータ適用部111は、「aaa」および「bbb」のどちらか一方でも、修正箇所を通過した場合には、1つのカウンタ値を1加算させることとなる。
ここで、パッチID「123456」に対応するカウンタの値が図12に示すように0であるものとする。この場合には、パッチデータ適用部113は、パッチID「123456」の修正を行っても修正箇所を通過しないので、パッチデータ123のオブジェクト「aaa」および「bbb」を適用しない。しかしながら、パッチデータ適用部113は、カウンタ値が0以外の数である場合には、チェックデータ122のオブジェクト「aaa」をパッチデータ123のオブジェクト「aaa」に置き換える。さらに、パッチデータ適用部113は、チェックデータ122のオブジェクト「bbb」をパッチデータ123のオブジェクト「bbb」に置き換える。
[実施例の効果]
上記実施例によれば、情報処理装置10のチェックデータ適用部111は、運用中のプログラムに修正がある場合、修正箇所を通過するとカウントをアップさせる処理を組み込んだチェックデータ122を運用中のプログラムに組み込む。そして、カウントアップ判定部112は、情報処理装置10上でのプログラム実行によりチェックデータ122が実行されたか否かを、所定のタイミングで、カウンタDBのカウントアップの有無により判定する。さらに、パッチデータ適用部113は、カウントアップ判定部112によってカウントがアップしているパッチ(チェックデータ)適用箇所があると判定された場合、カウントアップが行われたチェックデータ122を、修正箇所を修正した修正済みのプログラム、すなわちパッチデータ123に置き換える。かかる構成によれば、情報処理装置10は、修正箇所を通過するとカウントをアップさせる処理を組み込んだチェックデータ122を実行するようにしたので、カウントを用いることにより修正箇所を通過したか否かを判定できる。このため、情報処理装置10は、修正箇所を通過した場合に、パッチデータ123を適用できるので、パッチデータ123を適用するか否かを適切に判断できる。
また、上記実施例によれば、パッチデータ適用部113は、カウントアップ判定部112によってカウントがアップしていないと判定された場合、チェックデータ122をパッチデータ123に置き換えない。かかる構成によれば、パッチデータ適用部113は、カウントがアップしていない場合、すなわち修正箇所を通過していない場合にチェックデータ122をパッチデータ123に置き換えないこととした。このため、パッチデータ適用部113は、パッチデータ123を適用しなくても良い場合にまで適用してしまうことによるレベルダウンの発生を未然に防止することができる。
また、上記実施例によれば、カウントアップ判定部112は、情報処理装置10を停止するタイミングまたは自装置を起動するタイミングで、カウントがアップしているか否かを判定する。かかる構成によれば、カウントアップ判定部112は、カウントがアップしているか否かの判定をプログラムの運用の妨げとならないタイミングにしているので、仮にカウントがアップしている場合には、効率的にパッチデータ123に置き換えることができる。
なお、実施例では、チェックデータ適用部111は、運用中のプログラムに修正がある場合、修正箇所が実行されると修正箇所が実行された回数を計数させるカウント処理を組み込んだチェックデータ122を運用中のプログラムに適用するものと説明した。そして、チェックデータ122内のカウンタ処理が走行すると、カウンタ処理が、パラメータとして引き渡されるパッチデータ123のパッチIDに対応するカウントをアップさせる。しかしながら、カウンタ処理は、これに限定されず、パラメータとして引き渡されるパッチデータ123のパッチIDに対応するカウントをダウンさせるものとしても良い。この場合、パッチデータ適用部113は、カウント判定部112によってカウントがダウンしていると判定された場合、チェックデータ122を、パッチデータ123に置き換えるようにすれば良い。
[プログラム等]
なお、情報処理装置10は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した制御部11および記憶部12等の各機能を搭載することによって実現することができる。
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、カウントアップ判定部112とパッチデータ適用部113とを1個の部として統合しても良い。一方、チェックデータ適用部111は、チェックデータ321およびパッチデータ322をダウンロードするダウンロード部と、ダウンロードしたチェックデータ321を実行するチェックデータ適用部111とに分散しても良い。また、カウンタDB121等の記憶部12を情報処理装置10の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図13を用いて、図1に示した情報処理装置10の制御部11と同様の機能を有するパッチ適用判定プログラムを実行するコンピュータの一例を説明する。
図13は、パッチ適用判定プログラムを実行するコンピュータを示す図である。図13に示すように、コンピュータ1000は、図1に示した情報処理装置10と同じものであり、RAM1010と、ネットワークインタフェース装置1020と、HDD1030と、CPU1040、媒体読取装置1050およびバス1060とを有する。RAM1010、ネットワークインタフェース装置1020、HDD1030、CPU1040、媒体読取装置1050は、バス1060によって接続されている。なお、図1におけるパッチ作成サーバ40やパッチ公開サーバ30も図13と同様の構成を有する情報処理装置により実現できる。
そして、HDD1030には、図1に示した制御部11と同様の機能を有するパッチ適用判定プログラム1031が記憶される。また、HDD1030には、図1に示したカウンタDB121、チェックデータ122およびパッチデータ123に対応するパッチ適用判定処理関連情報1032が記憶される。
そして、CPU1040がパッチ適用判定プログラム1031をHDD1030から読み出してRAM1010に展開することにより、パッチ適用判定プログラム1031は、パッチ適用判定プロセス1011として機能するようになる。そして、パッチ適用判定プロセス1011は、パッチ適用判定処理関連情報1032から読み出した情報等を適宜RAM1010上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
媒体読取装置1050は、パッチ適用判定プログラム1031がHDD1030に記憶されていない場合であっても、パッチ適用判定プログラム1031を記憶する媒体等からパッチ適用判定プログラム1031を読み取る。媒体読取装置1050には、例えばCD−ROMや光ディスク装置がある。
ネットワークインタフェース装置1020は、外部装置とネットワーク経由で接続する装置であり、有線に対応するものであっても、無線に対応するものであっても良い。
なお、上記のパッチ適用判定プログラム1031は、公衆回線、インターネット、LAN、WAN(Wide Area Network)等を介してコンピュータ1000に接続される他のコンピュータ(またはサーバ)等に記憶されるようにしても良い。この場合には、コンピュータ1000がネットワークインタフェース装置1020を介して他のコンピュータ等からパッチ適用判定プログラム1031を読み出して実行する。
1 計算機システム
10 情報処理装置
11 制御部
111 チェックデータ適用部
112 カウントアップ判定部
113 パッチデータ適用部
12 記憶部
121 カウンタDB
122、321 チェックデータ
123、322 パッチデータ
20 ネットワーク
30 パッチ公開サーバ
31 制御部
311 パッチ提供部
32 記憶部
40 パッチ作成サーバ
41 制御部
411 パッチ作成部
42 記憶部
421 修正前ソースデータ
422 修正後ソースデータ

Claims (5)

  1. 運用中のプログラムに修正がある場合、修正箇所が実行されると、修正箇所が実行された回数を計数させる処理を組み込んだ暫定修正プログラムを前記運用中のプログラムに適用するプログラム適用部と、
    前記プログラム適用部によって適用された前記暫定修正プログラムが適用された結果、修正箇所が実行された回数を示すカウントがアップしているか否かを所定のタイミングで判定する判定部と、
    前記判定部によってカウントがアップしていると判定された場合、カウントがアップしていると判定された、修正箇所を含む暫定修正プログラムを、当該修正箇所を修正した修正済みのプログラムに置き換える置換部と
    を有することを特徴とする情報処理装置。
  2. 前記置換部は、
    前記判定部によって前記カウントがアップしていないと判定された場合、前記暫定修正プログラムを、前記修正済みのプログラムに置換しないことを特徴とする請求項1に記載の情報処理装置。
  3. 前記判定部は、
    自装置を停止するタイミングまたは自装置を起動するタイミングで、前記カウントがアップしているか否かを判定することを特徴とする請求項1に記載の情報処理装置。
  4. コンピュータに、
    運用中のプログラムに修正がある場合、修正箇所が実行されると、修正箇所が実行された回数を計数させる処理を組み込んだ暫定修正プログラムを前記運用中のプログラムに適用し、
    前記暫定修正プログラムが適用された結果、修正箇所が実行された回数を示すカウントがアップしているか否かを所定のタイミングで判定し、
    該判定によってカウントがアップしていると判定された場合、カウントがアップしていると判定された、修正箇所を含む暫定修正プログラムを、当該修正箇所を修正した修正済みのプログラムに置き換える
    処理を実行させる修正適用判定プログラム。
  5. 運用中のプログラムに修正がある場合、修正箇所が実行されると、修正箇所が実行された回数を計数させる処理を組み込んだ暫定修正プログラムを前記運用中のプログラムに適用し、
    前記暫定修正プログラムが適用された結果、修正箇所が実行された回数を示すカウントがアップしているか否かを所定のタイミングで判定し、
    該判定によってカウントがアップしていると判定された場合、カウントがアップしていると判定された、修正箇所を含む暫定修正プログラムを、当該修正箇所を修正した修正済みのプログラムに置き換える
    処理を含むことを特徴とする修正適用判定方法。
JP2013505705A 2011-03-22 2011-03-22 情報処理装置、修正適用判定プログラムおよび修正適用判定方法 Expired - Fee Related JP5621914B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/056853 WO2012127635A1 (ja) 2011-03-22 2011-03-22 情報処理装置、修正適用判定プログラムおよび修正適用判定方法

Publications (2)

Publication Number Publication Date
JPWO2012127635A1 JPWO2012127635A1 (ja) 2014-07-24
JP5621914B2 true JP5621914B2 (ja) 2014-11-12

Family

ID=46878828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013505705A Expired - Fee Related JP5621914B2 (ja) 2011-03-22 2011-03-22 情報処理装置、修正適用判定プログラムおよび修正適用判定方法

Country Status (3)

Country Link
US (1) US20140019950A1 (ja)
JP (1) JP5621914B2 (ja)
WO (1) WO2012127635A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015111067A1 (en) * 2014-01-24 2015-07-30 Hewlett-Packard Development Company, L.P. Dynamically patching kernels using storage data structures
GB2527060B (en) * 2014-06-10 2021-09-01 Arm Ip Ltd Method and device for updating software executed from non-volatile memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010766A (ja) * 1998-06-18 2000-01-14 Fujitsu Ltd プログラム修正抽出適用システムおよび修正抽出適用プログラムを格納した記憶媒体
US20040163077A1 (en) * 2003-02-13 2004-08-19 International Business Machines Corporation Apparatus and method for dynamic instrumenting of code to minimize system perturbation
US20040255290A1 (en) * 2003-06-12 2004-12-16 International Business Machines Corporation Installing fixes based on usage
JP2008198001A (ja) * 2007-02-14 2008-08-28 Hitachi Ltd 修正パッチ選択支援システム及び支援方法
JP2008269394A (ja) * 2007-04-23 2008-11-06 Konica Minolta Business Technologies Inc 画像形成装置、プログラム更新システム、プログラム更新方法およびプログラム更新プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481713A (en) * 1993-05-06 1996-01-02 Apple Computer, Inc. Method and apparatus for patching code residing on a read only memory device
CN101375252B (zh) * 2006-02-14 2011-06-08 富士通株式会社 补丁应用装置和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010766A (ja) * 1998-06-18 2000-01-14 Fujitsu Ltd プログラム修正抽出適用システムおよび修正抽出適用プログラムを格納した記憶媒体
US20040163077A1 (en) * 2003-02-13 2004-08-19 International Business Machines Corporation Apparatus and method for dynamic instrumenting of code to minimize system perturbation
US20040255290A1 (en) * 2003-06-12 2004-12-16 International Business Machines Corporation Installing fixes based on usage
JP2008198001A (ja) * 2007-02-14 2008-08-28 Hitachi Ltd 修正パッチ選択支援システム及び支援方法
JP2008269394A (ja) * 2007-04-23 2008-11-06 Konica Minolta Business Technologies Inc 画像形成装置、プログラム更新システム、プログラム更新方法およびプログラム更新プログラム

Also Published As

Publication number Publication date
WO2012127635A1 (ja) 2012-09-27
JPWO2012127635A1 (ja) 2014-07-24
US20140019950A1 (en) 2014-01-16

Similar Documents

Publication Publication Date Title
EP3528149A1 (en) Software repackaging prevention method and device
CN111078662B (zh) 一种区块链数据存储方法与装置
US20110320794A1 (en) Flash System And Method For Updating The Flash System
JP5071372B2 (ja) パッチ適用装置およびプログラム
US8812906B2 (en) Method for system recovery and apparatus supporting the same
CN109491698A (zh) 基于热补丁的系统更新方法及装置
US20150067316A1 (en) Electronic device and testing method
WO2018024198A1 (zh) 机顶盒的应用程序升级方法、系统及机顶盒
JP2009199321A (ja) 関連性検査装置、関連性検査方法、及び関連性検査プログラム
CN108897576B (zh) 一种基于arm芯片的快速启动boot的方法
WO2016185577A1 (ja) プログラム検証方法、検証プログラム、及び情報処理装置
JP5621914B2 (ja) 情報処理装置、修正適用判定プログラムおよび修正適用判定方法
US8788800B2 (en) OS processing method, system and non-transitory computer readable storage medium thereof
CN112882746B (zh) 应用程序的更新方法、装置、存储介质及计算机设备
CN103685471B (zh) 一种以独占方式对软件客户端进行更新的方法及系统
AU2013380500B2 (en) Database device, program, and data processing method
JP5744078B2 (ja) 組み込み機器制御システム、組み込み機器制御装置、及び組み込み機器制御装置の制御方法
CN113806139B (zh) 操作系统恢复方法、设备、存储介质及计算机程序产品
US11429537B2 (en) Method, device, and computer program product for managing storage system
JP2006146709A (ja) 更新制御プログラム、更新制御方法および更新制御装置
WO2016037314A1 (zh) 软件版本升级方法、装置及设备
JP2006139696A (ja) データ復元方法、及びデータ復元プログラム
CN110569088A (zh) 客户端插件管理方法、装置、电子设备及存储介质
JP7411902B1 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
US20240104219A1 (en) Information processing apparatus, information processing method, and non-transitory computer readable medium

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140826

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140908

R150 Certificate of patent or registration of utility model

Ref document number: 5621914

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees