JP2008198001A - 修正パッチ選択支援システム及び支援方法 - Google Patents
修正パッチ選択支援システム及び支援方法 Download PDFInfo
- Publication number
- JP2008198001A JP2008198001A JP2007033755A JP2007033755A JP2008198001A JP 2008198001 A JP2008198001 A JP 2008198001A JP 2007033755 A JP2007033755 A JP 2007033755A JP 2007033755 A JP2007033755 A JP 2007033755A JP 2008198001 A JP2008198001 A JP 2008198001A
- Authority
- JP
- Japan
- Prior art keywords
- correction
- patch
- operation information
- information acquisition
- software
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】修正パッチの選択をソフトウェアや修正箇所の稼動状況に応じて支援する。
【解決手段】ソフトウェア120に適用する修正パッチ100を入力装置10より入力し、修正個所の修正要素名、修正位置、修正内容の組で表される修正情報を取得し、パッチ毎に修正要素名と修正位置との組による修正位置情報をパッチ情報テーブル121に登録するパッチ情報取得部110と、パッチ情報テーブル121からソフトウェア120の修正位置情報で示される挿入アドレスを計算してパッチ情報テーブル121に登録後、該当位置に稼動情報取得部112の呼び出し処理を挿入し、稼動情報の取得開始、終了を制御する稼動情報取得処理挿入部111と、稼動情報取得部112によって作成された稼動情報テーブル122と、パッチ情報テーブル121とから修正位置毎の稼働率と重要度を計算し、修正パッチ毎の重要度を示す修正重要度情報テーブル123を作成し、出力装置13に出力する。
【選択図】図1
【解決手段】ソフトウェア120に適用する修正パッチ100を入力装置10より入力し、修正個所の修正要素名、修正位置、修正内容の組で表される修正情報を取得し、パッチ毎に修正要素名と修正位置との組による修正位置情報をパッチ情報テーブル121に登録するパッチ情報取得部110と、パッチ情報テーブル121からソフトウェア120の修正位置情報で示される挿入アドレスを計算してパッチ情報テーブル121に登録後、該当位置に稼動情報取得部112の呼び出し処理を挿入し、稼動情報の取得開始、終了を制御する稼動情報取得処理挿入部111と、稼動情報取得部112によって作成された稼動情報テーブル122と、パッチ情報テーブル121とから修正位置毎の稼働率と重要度を計算し、修正パッチ毎の重要度を示す修正重要度情報テーブル123を作成し、出力装置13に出力する。
【選択図】図1
Description
本発明は、修正パッチ選択支援システム及び支援方法に係り、特に、コンピュータシステムにおいて利用されるソフトウェアの予防保守を行う際に適用する修正パッチの選択を支援する修正パッチ選択支援システム及び支援方法に関する。
コンピュータ上のソフトウェアを安定に稼動させるためには、ソフトウェアに対する修正パッチを適宜対策する必要がある。そして、ミッションクリティカルなコンピュータシステムに対する修正パッチの対策は、対策時のトラブルを防止するために、事前に適用するパッチを選択して行われることが多い。しかし、近年、コンピュータのシステム構成の多様化により、システムで利用されるソフトウェア数が増加し、修正パッチ量も増加の傾向にあるため、修正パッチの選択に伴う作業量が増大している。
前述したような修正パッチの選択に伴う作業量の増大に対して、修正パッチ選択の支援を行う技術が、例えば、特許文献1等に記載されて知られている。この従来技術は、コンピュータシステムの構成情報をデータベースに登録し、その情報に基づいて対策する修正パッチを選択するための情報を提供することができるようにしたものである。また、他の従来技術として、修正パッチそれ自体に設定された重要度から修正パッチを選択するという方法も知られている。これらの方法は、いずれも、コンピュータシステムで利用されるソフトウェアの稼動状況と連動しない情報を用いて修正パッチの選択を行っているものである。
特開2005−99967号公報
前述した従来技術は、ソフトウェアの修正箇所の稼動状況に応じた情報を提供していないため、稼働率が低いソフトウェアやコンピュータシステムの使用状況では動作しない箇所のソフトウェアに対する修正パッチの対策を除外することができず、逆に、稼動率は高いが修正パッチに与えられた重要度が低い修正パッチが対策されない等、コンピュータシステムの稼動状況に応じた修正パッチの選択を支援することができないという問題点を有している。
本発明の目的は、前述したような従来技術の問題点を解決し、ソフトウェアの修正箇所の稼動状況に連動したデータを取得して、コンピュータシステムの使用状況に基づいて最適に修正パッチの選択を行うことを支援することができるようにした修正パッチ選択支援システム及び支援方法を提供することにある。
本発明によれば前記目的は、コンピュータシステムにおいて利用されるソフトウェアに適用する修正パッチの選択を支援する修正パッチ選択支援システムにおいて、入力された個々の修正パッチからパッチ名、修正対象のソフトウェアを構成する個々の要素の修正要素名及び修正位置からなる修正位置情報を取得し、パッチ情報を生成するパッチ情報取得手段と、生成したパッチ情報からソフトウェアの修正位置情報で示される修正予定箇所に、稼動情報を取得する稼働情報取得手段を呼び出す処理を挿入し、稼動情報の取得の開始、終了を制御する稼働情報取得処理挿入手段と、前記パッチ情報、稼動情報から修正位置、修正パッチ毎の稼働率と重要度とを計算し、その結果を出力する修正重要度計算手段とを前記コンピュータシステムに備えたことにより達成される。
本発明によれば、コンピュータシステムの稼動情報から、修正個所の稼動状況に基づいて修正パッチの重要度を自動的に計算することができるため、コンピュータシステムの利用状況に則した最適な修正パッチの選択を支援することができるので、ユーザは、ソフトウェアに対して最適な修正パッチを施すことが可能となる。
以下、本発明による修正パッチ選択支援システム及び支援方法の実施形態を図面により詳細に説明する。
図1は本発明の一実施形態による修正パッチ選択支援システムが構築されるコンピュータシステムの構成を示すブロック図である。図示コンピュータシステムは、パッチされるソフトウェアを有して、そのソフトウェアを用いて処理を行うコンピュータシステムであってよい。
図示コンピュータシステム1は、PCに代表される情報処理装置であり、入力装置10と、CPU11と、主記憶装置12と、出力装置13と、HDD15とを備え、これらがバス14を介して接続されて構成されている。そして、主記憶装置12には、OS114、コンピュータシステム1上で動作しているソフトウェア120が格納されていると共に、本発明により設けられるパッチ情報取得部110、稼働情報取得出力挿入部111、稼働情報取得部112、修正重要度計算部113等を実現するプログラム、及び、パッチ情報テーブル121、稼働情報テーブル122、修正重要度情報テーブル123が格納されている。前述したプログラムは、磁気ディスク等により構成される外部記憶装置としてのHDD15に格納されていて、主記憶装置12にロードされ、OS114の下で実行されることにより、対応する各機能を実現する。また、前述した各テーブルは、前述の各機能部により作成される。
前述したように構成される本発明の実施形態において、コンピュータシステム1の記憶装置12上で動作しているソフトウェア120に適用する修正パッチ100は、その修正パッチを選択する際に、入力装置10から入力される。修正パッチ100は、ソフトウェア120の開発者等から記録媒体あるいは図示しないネットワークを介して提供され、入力装置10から入力される。
そして、パッチ情報取得部110は、入力された修正パッチ100から個々の修正個所の修正要素名、修正位置、及び、修正内容の組で表される修正情報を取得し、パッチ毎に得られた修正要素名と修正位置との組で表される修正位置情報をパッチ情報テーブル121に登録する。稼動情報取得処理挿入部111は、作成されたパッチ情報テーブル121内のソフトウェア120の修正位置情報から挿入アドレスを計算し、その挿入アドレスをパッチ情報テーブル121に登録後、該当位置に稼動情報取得部112の呼び出し処理を挿入し、また、稼動情報の取得開始、終了を制御する。稼動情報取得部112は、稼働情報テーブル122を作成し、修正位置毎の稼働情報を取得し、その稼働情報を稼働情報テーブル122に格納する。また、修正重要度計算部113は、稼動情報取得部112によって作成された修正位置毎の稼動データを記録する稼動情報テーブル122と、作成されたパッチ情報テーブル121との内容により修正位置毎の稼働率と重要度とを計算し、それに基づいて修正パッチ毎の重要度を示す修正重要度情報テーブル123を作成し、その内容を表示装置、印刷装置等による出力装置13に出力する。
パッチ情報テーブル121、稼動情報テーブル122、修正重要度情報テーブル123は、主記憶装置12上に作成され、CPU11に制御されてOS114上で動作するパッチ情報取得部110、稼動情報取得処理挿入部111、稼動情報取得部112、修正重要度計算部113によって作成、更新、または、参照される。
図2はソフトウェア120と修正パッチ100との関係例について説明する図である。
ソフトウェア120は、複数の要素の集合で構成され、複数の要素の個々の要素は、要素名を持つ。図示例において、ソフトウェア120は、要素A201、要素B202の2つの要素により構成されている。
修正パッチ100は、ソフトウェア120を構成する個々の要素の中で修正を行う要素の要素名を示す修正要素名と修正要素の先頭からの変位で表される修正位置とからなる修正位置情報とその位置に対策される修正内容とにより構成される。修正情報は、修正要素名、修正位置、修正内容の順に記録されている。修正位置は、修正要素名の次のデータに記録されている。修正要素名、修正位置を示す情報としてユニークな識別子が設定されている。図2に示す例では、修正要素名を示す識別子をTAG1、修正位置を示す識別子をTAG2と表している。修正パッチ100には複数の修正情報が存在し得る。すなわち、同一の修正要素に対する異なる修正情報が同一の修正パッチ、または、複数の修正パッチに含まれていることがある。図2に示す例の場合、修正パッチ100は、修正パッチA21、修正パッチB23の2つの修正パッチにより構成されている。
修正パッチA21は、ソフトウェア120の要素A201に対する修正情報A1(210)、修正情報A2(218)と、ソフトウェア120の要素B202に対する修正情報B1(214)とが含まれている。また、修正情報A1(210)は、修正情報として、修正要素名211と修正位置212と修正内容213とを含んで構成される。修正情報A2(218)は、修正情報として修正要素名219と修正位置220と修正内容221とを含んで構成される。修正情報B1(214)は、修正情報として、修正要素名215と修正位置216と修正内容217とを含んで構成される。
また、修正パッチB23に含まれるソフトウェア120の要素B202に対する修正情報B2(231)は、修正情報として修正要素名232と修正位置233と修正内容234とを含んで構成される。
図2に示す例において、ソフトウェア120を構成する要素A201、要素B202の先頭アドレスX、Yは、各要素が格納されている主記憶装置12の先頭アドレスを表しており、このアドレスは、要素名を入力することによりOS114によって取得することができる。
修正パッチA21の修正情報A1(210)は、修正要素名211が要素A201、修正位置が+1000番地となっているため、修正要素名A201の先頭アドレスX番地をOSから求め、+1000番地目のアドレス=X+1000番地に、修正内容A1(213)が対策される。同様に、修正情報A2(218)は、修正要素名A201の先頭アドレスX番地から+1100番地目のアドレス=X+1100番地に、修正内容A2(221)が対策される。同様に、要素B202に対しても、修正パッチA21の修正情報B1(214)から、修正要素名B202の先頭アドレスY番地から+100番地目のアドレス=Y+100番地に、修正内容B1(217)が対策される。同様に、修正パッチB23の修正情報B2(231)から、修正要素名B202の先頭アドレスY番地から+300番地目=Y+300番地に、修正内容B2(234)が対策される。
図3はパッチ情報取得部110での処理動作を説明するフローチャート、図4は図3に示す処理によって生成されるパッチ情報テーブル121の構成例を示す図である。図3に示す処理は、パッチ情報取得部110が、図2で説明した修正パッチ100の構成に基づいて修正パッチ名を取得し、パッチ情報テーブル121に登録し、取得した個々の修正パッチの修正情報をパッチ情報テーブル121に登録し、また、修正パッチ100の修正位置毎の稼動情報を後述する稼動情報取得部112での処理で取得するために必要な修正位置情報を修正パッチから取得する処理である。
まず、図4を参照してパッチ情報テーブル121の構成例について説明する。パッチ情報テーブル121は、修正パッチ100の名称を登録する修正パッチ名400と、そのパッチに含まれる修正要素名及び修正位置からなる修正位置情報401と、後述の処理で使用する挿入アドレス402と、稼動情報取得開始時刻403と、稼動情報取得終了時刻404とを1組のレコードとして構成される。修正位置情報401及び挿入アドレス402は、対応する修正パッチ毎に作成される。
次に、図3に示すフローを参照してパッチ情報取得部110での処理動作を説明する。
(1)修正パッチ100は複数存在し得るため、パッチ情報取得部110は、図1に示す入力装置10から該当する修正パッチ名を順に入力し、修正パッチ名の入力が完了したか否かを判定し、完了した場合、ここでの処理を終了する(ステップ300、301)。
(2)ステップ301の判定で、修正パッチ名の入力が完了していなかった場合、入力される修正パッチ名を、図4に示したパッチ情報テーブル121の修正パッチ名400の欄に登録する(ステップ302)。
(3)次に、修正パッチに含まれる複数の修正位置情報(修正位置情報と修正内容とを含む)からなるパッチ情報を図1で示す入力装置10から入力し、修正パッチ情報の入力が完了したか否かを判定し、修正パッチ情報の入力が完了していた場合、ステップ300からの処理に戻って次の修正パッチの入力処理からの処理を繰り返す(ステップ303、304)。
(4)ステップ304の判定で、修正パッチの入力が完了していなかった場合、ステップ303の処理で入力された修正要素名に対応する識別子が含まれているか否かを判定し、入力データに識別子が含まれていなかった場合、ステップ303からの処理に戻って該当する修正パッチの入力処理からの処理を繰り返す(ステップ305)。
(5)ステップ305の判定で、入力された修正要素名に対応する識別子が含まれていることを検出した場合、入力データから修正要素名を取得し、次のデータを入力して、そのデータから修正位置を取得する(ステップ306、307)。
(6)次に、パッチ情報テーブル121の修正パッチ名に対応する修正位置情報401の欄に、先に求めた修正要素名と修正位置情報とを登録し、以上の処理が完了した時点で、ステップ303からの処理に戻って該当する修正パッチの入力処理からの処理を繰り返す(ステップ308)。
前述したようなパッチ情報取得部110での処理により、図4に示したパッチ情報テーブル121の修正パッチ名400の欄、修正位置情報401の欄への登録が行われることになる。
図5は稼動情報取得処理挿入部111での処理動作を説明するフローチャートであり、次に、これについて説明する。この処理は、図3に示すフローによる処理で作成したパッチ情報テーブル121の修正位置情報401に基づいて対象ソフトウェアの稼動情報を取得する処理を登録する挿入アドレスを計算し、その位置に稼動情報取得部112の呼び出し処理を挿入し、また、対象ソフトウェアの主記憶装置12への読み込みや実行開始、終了を制御することにより修正位置毎の稼動情報の取得を制御する処理である。
(1)まず、稼動情報取得処理挿入部111は、対象のソフトウェア120が既に主記憶装置12上に存在するか否か、すなわち、対象のソフトウェア120が動作中であるか否かを判定する(ステップ500)。
(2)ステップ500の判定で、対象のソフトウェア120が記憶装置12上に存在していた場合、当該ソフトウェア120の実行を終了させ、主記憶装置12上からそのソフトウェア120を消去する(ステップ501)。
(3)ステップ500の判定で、対象のソフトウェア120が記憶装置12上に存在しなかった場合、あるいは、ステップ501の処理で、そのソフトウェア120を主記憶装置12から消去した後、対象のソフトウェア120を主記憶装置12に読み込む(ステップ502)。
(4)次に、後述の処理で作成する稼動情報テーブル122が既に存在するか否かを判定し、存在する場合、この稼動情報テーブル122の全ての情報を消去して初期化する(ステップ503、504)。
(5)ステップ503の判定で、稼動情報テーブル122が存在しなかった場合、あるいは、ステップ504の処理で、当該テーブルを初期化した後、図3に示す処理で作成したパッチ情報テーブル121から修正位置情報401を順に入力し、入力が完了したか否かを判定する(ステップ505、506)。
(6)ステップ506の判定で、修正位置情報401の全ての入力が完了していなかった場合、ステップ505の処理で入力された修正位置情報401から対応するソフトウェア120の修正個所を示すアドレスである修正アドレスを計算するため、修正位置情報401内の修正要素名の先頭アドレスをOS114から求める(ステップ507)。
(7)次に、ステップ507の処理で求めた修正要素名の先頭アドレスの値に、修正位置を加算することにより挿入アドレスを決定し、その内容をパッチ情報テーブル121の挿入アドレスの欄402に登録する(ステップ508)。
(8)ステップ508の処理で決定した挿入アドレスで示されるソフトウェア120の該当位置に稼動情報取得部112の呼び出し処理を挿入する。説明している本発明の実施形態では、この挿入処理はOSの機能を用いて実現しており、この機能は、修正アドレスで示す位置のソフトウェア120の処理を改変せずに処理を挿入することができる。以上の挿入処理が完了した時点で、ステップ505からの処理に戻って次の修正位置情報の入力処理からの処理を繰り返す(ステップ509)。
(9)ステップ506の判定で、修正位置情報401の全ての入力が完了した場合、すなわち、全ての修正位置情報の入力と、稼動情報取得部の呼び出し処理の挿入とが完了した場合、パッチ情報テーブル121の稼動情報取得開始時間403の欄に現在の時刻を設定し、その後、対象ソフトウェア120を実行させ、その終了を待つ(ステップ510〜512)。
(10)ソフトウェア120が終了した場合、稼動情報取得処理挿入部111は、ステップ512でのソフトウェア実行完了待ちの処理を終了する。その後、パッチ情報テーブル121の稼動情報取得終了時刻404の欄に現在の時間を設定する。以上の処理を完了した段階で、稼動情報取得処理挿入部111は処理を終了する(ステップ513)。
図6は稼動情報取得部112での処理動作を説明するフローチャート、図7は図6に示す稼動情報取得部112の処理によって生成される稼動情報テーブル122の構成例を示す図である。図6に示す処理は、対象ソフトウェア120に挿入した稼動情報取得部112の呼び出し処理を経由して起動される稼動情報取得部112が修正位置毎の稼動情報を、対象ソフトウェア120の稼動状況に基づいて取得する処理である。このため、稼動情報取得部112は、対象ソフトウェア120が処理を終了するまでの間に何回でも起動されることになる。説明する例では、稼動情報取得部112は、1秒間に複数回起動されるものとしている。
まず、図7を参照して、稼動情報取得部112の処理によって生成される稼動情報テーブルの構成について説明する。稼動情報テーブル122は、図7に示すように、挿入アドレス402で表される修正位置毎の稼動情報として、最終実行時刻700と、稼働時間701との組を1つのレコードとして保持するテーブルである。最終実行時刻700は、挿入アドレス402に対応する修正位置が最後に稼動した際の時刻を1秒単位に保持している。稼働時間701は、修正個所が動作した時間を1秒単位に保持している。この稼動時間701は、該当の修正位置に対応する稼動情報取得部112が毎秒1回以上呼び出された場合、1秒単位に加算される。
次に、図6に示すフローを参照して稼動情報取得部112での処理動作を説明する。
(1)稼動情報取得処理挿入部111での図5により説明したステップ511のソフトウェアの実行開始処理によって対象ソフトウェア120が実行を開始すると、稼動情報取得部112の呼び出し処理を挿入した修正個所を通過する毎に稼動情報取得部112が動作し、稼動情報取得部112は、呼び出し時の呼び出し元アドレスを、ソフトウェアへの挿入アドレス402を設定する際に利用したOSの該当機能により求める。ここで求めた呼び出し元アドレスは、パッチ情報テーブル121、及び、稼動情報テーブル122に登録される挿入アドレス402と等価である(ステップ600)。
(2)次に、呼び出しアドレスと一致する稼動情報テーブル122を検索し、該当するレコードが存在するか否かを判定する。このとき、該当するテーブルが存在しなかった場合、稼働情報テーブル122を新たに作成し、作成した稼働情報テーブル122に新たなレコードを作成して、最終実行時刻700の欄に0を設定する(ステップ601〜604)。
(3)ステップ602の判定で、稼動情報テーブル122が存在した場合、あるいは、ステップ604の処理で当該テーブルを生成した場合、該当する稼動情報テーブル122から最終実行時刻700を求め、次に、稼動情報取得部112が呼び出された時刻を取得する(ステップ605、606)。
(4)次に、稼動情報取得部112が呼び出された時刻と、先に求めた最終実行時刻700との差の時間が1秒を越えているか否かを判定し、超えていなかった場合、ここでの処理を終了する(ステップ607)。
(5)ステップ607の判定で、稼動情報取得部112が呼び出された時刻と、先に求めた最終実行時刻700との差の時間が1秒を越えていた場合、最終実行時刻700を呼び出された時刻に更新し、稼動時間701に1秒を加算して、ここでの処理を終了する。以上の処理がソフトウェア120の実行終了まで、稼動情報取得部112が呼び出される毎に繰り返される(ステップ608、609)。
図8は修正重要度計算部113での処理動作を説明するフローチャート、図9は修正重要度計算部113の処理によって作成される修正重要度情報テーブル123の構成例を示す図、図10は修正重要度計算部113がパッチ毎の重要度を決定するために用いる修正重要度テーブル1000の構成例を示す図である。図8に示す処理は、パッチの重要度を設定するため、稼動情報テーブル122に格納されている修正パッチ毎の各修正個所の稼動時間から稼動率と重要度とを計算し、それらの重要度のうち最も高いものから該当する修正パッチの重要度900を設定する処理である。
修正重要度計算部113がパッチ毎の重要度を決定するために用いる修正重要度テーブル1000には、図10に示すように、パッチにより修正される箇所の稼働率1001に対応した5段階の重要度900が設定されており、修正重要度計算部113は、この修正重要度テーブル1000の内容により、図9に示すような修正パッチ名400毎に重要度900を対応させたレコードを持つ修正重要度情報テーブル123を作成する。
次に、図8に示すフローを参照して、修正重要度計算部113での処理動作を説明する。
(1)修正重要度計算部113は、パッチ情報テーブル121を入力し、入力が完了したか否か判定し、完了していた場合、後述する修正重要度情報テーブル123の作成が終了したとして、修正重要度情報テーブル123を出力装置に出力して処理を終了する(ステップ800、801、813)。
(2)ステップ801の判定で、パッチ情報テーブル121の入力が完了していなかった場合、入力したパッチ情報テーブル121から修正パッチ名を求め、求めたパッチの重要度の初期値として1を設定する(ステップ802、803)。
(3)次に、当該修正パッチ名で登録された挿入アドレス402をパッチ情報テーブル121から順に入力し、入力が完了したか否かを判定する(ステップ804、805)。
(4)ステップ805の判定で、挿入アドレス402の入力を完了していた場合、重要度の算出が終了したものとして、修正パッチ名と重要度とを修正重要度情報テーブル123に登録し、その後、ステップ800からの処理に戻って処理を繰り返す(ステップ812)。
(5)ステップ805の判定で、挿入アドレス402の入力が完了していなかった場合、入力された挿入アドレス402と一致する稼動情報テーブル122の情報を入力し、入力が完了したか否かを判定し、稼動情報テーブル122の情報の入力が完了していなかった場合、次の挿入アドレス402を入力するステップ804からの処理に戻って処理を繰り返す(ステップ806、807)。
(6)ステップ807の判定で、稼動情報テーブル122の情報が入力された場合、当該稼働情報テーブル122から登録された修正箇所の稼動時間701を取得し、取得した稼動時間701から修正箇所の稼働率を計算する。稼働率は、パッチ情報テーブル121の稼動情報取得終了時刻404に記録された時刻からパッチ情報テーブル121の稼動情報取得開始時刻403に記録された時刻を引いたソフトウェア120全体の実働時間を算出し、稼働時間/実働時間の計算を行うことにより算出する(ステップ808、809)。
(7)次に、算出した稼働率と修正重要度テーブル1000に定義された稼働率1001の範囲とを比較し、一致する重要度を求め、求めた重要度と修正パッチの重要度900とを比較し、修正パッチの重要度が小さい場合、修正パッチの重要度を先に計算した重要度に更新し、パッチ名に対応する挿入アドレス402を入力するステップ804からの処理に戻って処理を繰り返す(ステップ810、811)。
前述した処理において、修正パッチの重要度900は、重要度1で初期化されているため、前述した処理での判定と重要度の更新とを繰り返すことにより、修正パッチに含まれる修正情報の中で最も稼働率が高い修正情報の重要度が登録される。対応する全ての挿入アドレス402に対する処理が完了した場合、前述で説明したように、ステップ812の処理で、設定した重要度と該当修正パッチ名とが修正重要度情報テーブル123に登録される。前述の処理で全ての修正パッチの重要度を修正重要度情報テーブル123に登録した時点で、修正重要度情報テーブル123の内容は、前述で説明したように、ステップ813の処理で、図1で説明した出力装置13に出力される。
次に、前述までに説明した本発明の実施形態での一連の処理をまとめて具体的に説明する。
ベンダから提供された修正パッチ100は、入力装置10を通してコンピュータシステム1に取り込まれる。ここで、修正パッチ100は、修正パッチA21、修正パッチB23等の複数のパッチから構成されるパッチ群である。このような修正パッチが入力されると、まず、パッチ情報取得部110は、図3により説明したフローに示す処理に従い、最初の修正パッチ名として、修正パッチA21を取り込む。ここで、パッチ情報取得部110は、修正パッチ名が入力されたか否かを判断し、今回は入力があるため次の処理へ進む。修正パッチ名として、修正パッチA21が入力されると、パッチ情報テーブル121の修正パッチ名400の欄に修正パッチA21が登録される。
次に、パッチ情報取得部110は、修正パッチA21の中から修正要素名を表す識別子を検索する。ここでは、修正要素211に要素A201を表す識別子が含まれているため、修正要素名として要素A201が取得される。次に、修正パッチA21から修正要素に続くデータを読み込むことにより、修正位置(+1000番地)(212)が取得される。取得した情報を、パッチ情報テーブル121の修正パッチA21に対応する修正位置情報401の欄に、要素A201、修正位置(+1000番地)(212)として登録する。修正パッチA21を続けて検索すると、識別子としての修正要素名として要素B215が得られる。パッチから続けてデータを入力すると修正位置(+100番地)(216)が得られる。これにより取得した情報を、パッチ情報テーブル121の修正パッチA21に対応する修正位置情報401の欄に、要素B202、修正位置(+100番地)(216)として登録する。以上の処理をパッチに識別子がある間、さらに全ての修正パッチ100について繰り返すことにより、パッチに含まれる修正位置情報をパッチ情報テーブル121に登録し、パッチ情報テーブル121が完成する。
パッチ情報テーブル121が完成すると、次に、稼動情報処理挿入部111により図5に示すフローの処理が実行される。
稼動情報取得処理挿入部111は、前述のようにソフトウェア120に対して、パッチ情報テーブル121に登録されたパッチ毎の修正情報で示される修正位置に、稼動情報を取得するための処理を挿入し、ソフトウェア120の実行を行う。
まず、対象ソフトウェア120が主記憶装置12中に存在して動作中であるか否かを判断する。ここでは主記憶装置12中にソフトウェア120が存在しなかったとして、対象ソフトウェア120の読み込み処理に進む。次に、それまでの処理で作成した稼動情報テーブル122が存在するか否かを判断する。ここでは存在しなかったとする。
以上の初期化処理が終わると、次に、稼動情報取得処理挿入部111は、パッチ情報テーブル121から修正パッチの修正位置情報401を順に読み込んでいく。まず、修正位置情報401を入力すると、修正要素名として要素A211、修正位置として+1000番地(212)の組で表される修正情報が入力される。ここで、OSの機能から修正要素名の先頭アドレスXを取得する。先頭アドレスXと修正位置(+1000番地)(212)とから、挿入アドレスX+1000番地が得られる。得られたアドレスに、OSの機能を用いて稼動情報取得部112の呼び出し処理を挿入する。
次に、稼動情報取得処理挿入部111は、パッチ情報テーブル121から新たな修正位置情報401を入力し、修正要素名として要素B215、修正位置として+100番地(216)の組で表される修正情報が入力される。ここでも同様に、OSの機能から修正要素名の先頭アドレスYを取得する。先頭アドレスYと修正位置(+100番地)(216)とから、挿入アドレスY+100番地が得られる。得られたアドレスに、OSの機能を用いて稼動情報取得部112の呼び出し処理を挿入する。
以上の処理をパッチ情報テーブル121の全ての修正位置情報に対して実施することにより、全ての修正パッチの修正個所に稼動情報取得部112の呼び出し処理を挿入することができる。
稼動情報取得部112の呼び出し処理の挿入が完了すると、パッチ情報テーブル121の稼動情報取得開始時刻403の欄に現在時刻としてxx年yy月zz日00時00分00秒を記憶し、対象ソフトウェア120の実行を開始する。ソフトウェア120の実行が開始されると、稼動情報取得処理挿入部111は待ち状態となり、対象ソフトウェア120の終了を監視し、ソフトウェアが終了した時点の時刻xx年yy月zz日00時10分00秒を稼動情報取得終了時刻404の欄に登録する。
ソフトウェア120が実行されると、内部の個々の要素が動作する。その際、個々の要素に設定された稼動情報取得部112の呼び出し処理が実行され、それに伴い稼動情報取得部112が呼び出される。ソフトウェア120を実行中に、要素A201のX+1000番地が実行された場合、当該アドレスに挿入された稼動情報取得部112の呼び出し処理により、稼動情報所取得部112に処理が移る。
稼動情報取得部112に処理が移ると、稼動情報取得部112は、まず、呼び出し元のアドレスを取得し、取得した呼び出し元アドレスを元にパッチ情報テーブル121の挿入アドレス402に、一致するアドレスを格納したレコードがあるか否かを検索する。該当するテーブルが存在する場合、挿入アドレス402を元に稼動情報テーブル122に新規のレコードを作成する。このとき、挿入アドレスに対応する最終実行時刻700を0で初期化する。次に、挿入アドレス402に対する最終実行時刻700を取得する。この場合、最終実行時刻700は初期値の0が得られる。続いて、稼動情報取得部112が呼び出された時刻を取得する。
ここで、稼動情報取得部112は、最終実行時刻700と稼動情報取得部112が呼び出された時刻とを比較し、呼び出し時刻が最終実行時刻700より1秒以上経過している場合は、稼動情報テーブル122の最終実行時刻700を現在時刻に更新し、稼働時間に1秒加算する。最後に、呼び出し元アドレスの次のアドレスに戻る処理を行うことにより、稼動情報取得部112での処理が終了する。以上の処理が、ソフトウェア120を実行している間、稼動情報取得部112の呼び出し処理が登録された修正位置を通る毎に実行され、稼動情報テーブル122の情報が更新されていく。
次に、修正重要度計算部113の処理が開始され、前述までの処理で得られた稼動情報テーブル122の稼動情報から個々の修正情報の稼働率を計算し、そこからパッチの重要度を計算する。修正重要度計算部113は、まず、パッチ情報テーブル121の入力を行い入力が完了したか否かを判定する。この場合、入力は未完了のため次のパッチ名の取得処理へ進む。パッチ名が得られるとパッチの重要度の初期値として1を設定する。
次に、修正重要度計算部113は、個々のパッチの重要度を稼動情報テーブル122の稼働時間701を元に計算する処理を行う。まず、パッチ情報テーブル121から修正パッチ名に対応する挿入アドレス402を取得する。ここでは、挿入アドレスX+1000番地が得られる。次に、この挿入アドレスX+1000番地を元に稼動情報テーブル122を検索すると、この修正位置情報の稼働時間701から100秒が得られる。ここで、ソフトウェア120が実際に実行されていた時間を計算するために、パッチ情報テーブル121から実行開始時刻である稼動情報取得開始時刻403と、実行終了時刻である稼動情報取得終了時刻404を取得する。
ここで得られる稼動情報取得開始時刻403は、xx年yy月zz日00時00分00秒であり、稼動情報取得終了時刻404は、xx年yy月zz日00時10分00秒である。この終了時刻から開始時刻を引いた10分、すなわち、600秒がソフトウェアの実働時間であるため、この修正情報の稼働率は、100/600で16%と計算される。稼働率16%は、修正重要度テーブル1000では重要度2に設定されているため重要度が2と決定される。ここで得られた重要度と、修正パッチA21の現在の重要度=1とを比較し、より大きい重要度である重要度2が修正パッチA21の重要度として選択される。以上の処理を繰り返すことにより、最終的に修正パッチA21の重要度は、要素A201と修正位置(+1100番地)(220)の稼働時間から計算される重要度4となる。パッチの重要度が決定すると、パッチ名とパッチの重要度とが修正重要度情報テーブル123に登録される。このような処理を全てのパッチに対して繰り返し実施することにより全てのパッチの重要度が決定される。
最後に、以上から得られた修正重要度情報テーブル123を表示装置等の出力装置13に出力する。作業者は、表示される修正重要度情報テーブル123の内容からどの修正パッチが重要であるかを知って、修正パッチを選択することができる。
前述した本発明の実施形態での各処理は、プログラムにより構成し、本発明が備えるCPUに実行させることができ、また、それらのプログラムは、FD、CDROM、DVD等の記録媒体に格納して提供することができ、また、ネットワークを介してディジタル情報により提供することができる。
1 コンピュータシステム
10 入力装置
11 CPU
12 主記憶装置
13 出力装置
14 バス
15 HDD
100 修正パッチ
110 パッチ情報取得部
111 稼動情報取得処理挿入部
112 稼動情報取得部
113 修正重要度計算部
114 OS
120 ソフトウェア
121 パッチ情報テーブル
122 稼動情報テーブル
123 修正重要度情報テーブル
10 入力装置
11 CPU
12 主記憶装置
13 出力装置
14 バス
15 HDD
100 修正パッチ
110 パッチ情報取得部
111 稼動情報取得処理挿入部
112 稼動情報取得部
113 修正重要度計算部
114 OS
120 ソフトウェア
121 パッチ情報テーブル
122 稼動情報テーブル
123 修正重要度情報テーブル
Claims (4)
- コンピュータシステムにおいて利用されるソフトウェアに適用する修正パッチの選択を支援する修正パッチ選択支援システムにおいて、
入力された個々の修正パッチからパッチ名、修正対象のソフトウェアを構成する個々の要素の修正要素名及び修正位置からなる修正位置情報を取得し、パッチ情報を生成するパッチ情報取得手段と、
生成したパッチ情報からソフトウェアの修正位置情報で示される修正予定箇所に、稼動情報を取得する稼働情報取得手段を呼び出す処理を挿入し、稼動情報の取得の開始、終了を制御する稼働情報取得処理挿入手段と、
前記パッチ情報、稼動情報から修正位置、修正パッチ毎の稼働率と重要度とを計算し、その結果を出力する修正重要度計算手段とを前記コンピュータシステムに備えたことを特徴とする修正パッチ選択支援システム。 - 前記稼働情報取得手段は、前記ソフトウェアの稼動時に、前記修正予定箇所に挿入された稼働情報取得手段を呼び出す処理を契機に動作し、前記ソフトウェアの稼動情報を取得することを特徴とする請求項1記載の修正パッチ選択支援システム。
- コンピュータシステムにおいて利用されるソフトウェアに適用する修正パッチの選択を支援する修正パッチ選択支援方法において、
パッチ情報取得手段と、稼働情報取得処理挿入手段と、稼働情報取得手段と、修正重要度計算手段とを前記コンピュータシステムに備え、
前記パッチ情報取得手段は、入力された個々の修正パッチからパッチ名、修正対象のソフトウェアを構成する個々の要素の修正要素名及び修正位置からなる修正位置情報を取得し、パッチ情報を生成し、
前記稼働情報取得処理挿入手段は、生成したパッチ情報からソフトウェアの修正位置情報で示される修正予定箇所に、稼動情報を取得する稼働情報取得手段を呼び出す処理を挿入し、稼動情報の取得の開始、終了を制御し、
前記修正重要度計算手段は、前記パッチ情報、稼動情報から修正位置、修正パッチ毎の稼働率と重要度とを計算し、その結果を出力することを特徴とする修正パッチ選択支援方法。 - 前記稼働情報取得手段は、前記ソフトウェアの稼動時に、前記修正予定箇所に挿入された稼働情報取得手段を呼び出す処理を契機に動作し、前記ソフトウェアの稼動情報を取得することを特徴とする請求項3記載の修正パッチ選択支援方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007033755A JP2008198001A (ja) | 2007-02-14 | 2007-02-14 | 修正パッチ選択支援システム及び支援方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007033755A JP2008198001A (ja) | 2007-02-14 | 2007-02-14 | 修正パッチ選択支援システム及び支援方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008198001A true JP2008198001A (ja) | 2008-08-28 |
Family
ID=39756872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007033755A Pending JP2008198001A (ja) | 2007-02-14 | 2007-02-14 | 修正パッチ選択支援システム及び支援方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008198001A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012127635A1 (ja) * | 2011-03-22 | 2012-09-27 | 富士通株式会社 | 情報処理装置、修正適用判定プログラムおよび修正適用判定方法 |
CN103885969A (zh) * | 2012-12-20 | 2014-06-25 | 国际商业机器公司 | 提供软件问题解决方案的方法和装置 |
-
2007
- 2007-02-14 JP JP2007033755A patent/JP2008198001A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012127635A1 (ja) * | 2011-03-22 | 2012-09-27 | 富士通株式会社 | 情報処理装置、修正適用判定プログラムおよび修正適用判定方法 |
JP5621914B2 (ja) * | 2011-03-22 | 2014-11-12 | 富士通株式会社 | 情報処理装置、修正適用判定プログラムおよび修正適用判定方法 |
CN103885969A (zh) * | 2012-12-20 | 2014-06-25 | 国际商业机器公司 | 提供软件问题解决方案的方法和装置 |
CN103885969B (zh) * | 2012-12-20 | 2017-03-01 | 国际商业机器公司 | 提供软件问题解决方案的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6011479B2 (ja) | アプリケーション管理装置、アプリケーション管理システムおよびプログラム | |
US8719788B2 (en) | Techniques for dynamically determining test platforms | |
JP2007334636A (ja) | ソフトウェアの更新処理プログラム及び更新処理装置 | |
JP4513806B2 (ja) | プログラマブルロジックコントローラの周辺装置及びそのプログラム作成方法 | |
US20130080751A1 (en) | Method and device for updating bios program for computer system | |
JP6571685B2 (ja) | データ一意性制御及び情報記憶 | |
CN106990974B (zh) | 一种app应用更新方法、装置及电子设备 | |
JP2008198001A (ja) | 修正パッチ選択支援システム及び支援方法 | |
JP2005309829A5 (ja) | ||
JP2008055849A (ja) | 画像形成装置及びその管理方法 | |
WO2019091216A1 (zh) | 数据管理方法、装置、计算设备及存储介质 | |
JP4977681B2 (ja) | データパターン/テストデータ生成・蓄積方法及びシステム | |
JP2006277280A (ja) | コンピュータシステム、その日付時刻変更方法及び日付変更方法 | |
KR20190127110A (ko) | Plc 프로그램 처리 장치 | |
JP6552162B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP6789776B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2010128701A (ja) | システムファイル共有装置、システムファイル共有方法及びプログラム | |
JP2008257410A (ja) | システム設計検証装置 | |
JP2015095035A (ja) | パラメータ設定支援システムおよびパラメータ設定支援方法ならびにパラメータ設定支援プログラム | |
CN112769961B (zh) | 网络系统的节点处理方法及装置 | |
JPH0546378A (ja) | プログラムの修正処理方法 | |
JP2014099082A (ja) | 情報処理システム、情報処理装置、情報処理プログラム、アプリケーションの実行方法、および、記憶媒体 | |
CN109739544B (zh) | 用于生成应用安装包的方法、装置及电子设备 | |
JP5720749B2 (ja) | 表示プログラム、表示方法、およびコンピュータ | |
CN113617032B (zh) | 游戏剧情的编辑方法和装置 |