JP2008146163A - パッチ再構成方法 - Google Patents
パッチ再構成方法 Download PDFInfo
- Publication number
- JP2008146163A JP2008146163A JP2006329686A JP2006329686A JP2008146163A JP 2008146163 A JP2008146163 A JP 2008146163A JP 2006329686 A JP2006329686 A JP 2006329686A JP 2006329686 A JP2006329686 A JP 2006329686A JP 2008146163 A JP2008146163 A JP 2008146163A
- Authority
- JP
- Japan
- Prior art keywords
- patch
- module
- information
- compatibility
- reconfiguration
- 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
【課題】
適用するパッチを必要最小限にとどめてパッチを再構成する。
【解決手段】
既に提供されたパッチおよび新たに提供されるパッチをモジュール単位に分解し、再構築するためのパッチ再構成方法であって、パッチ情報とその重要度を照合し、提供されたパッチの対象となるモジュール間の互換性情報を管理し、パッチ情報と互換性情報を照合して最低限必要と判断したモジュールを抽出し、その抽出した結果を基にパッチの再構成を行う。
【選択図】 図1
適用するパッチを必要最小限にとどめてパッチを再構成する。
【解決手段】
既に提供されたパッチおよび新たに提供されるパッチをモジュール単位に分解し、再構築するためのパッチ再構成方法であって、パッチ情報とその重要度を照合し、提供されたパッチの対象となるモジュール間の互換性情報を管理し、パッチ情報と互換性情報を照合して最低限必要と判断したモジュールを抽出し、その抽出した結果を基にパッチの再構成を行う。
【選択図】 図1
Description
本発明はパッチ再構成方法に係り、特にソフトウェアの部分的な修正や変更を行うパッチの適用情報を管理するパッチの再構成方法及びシステムに関する。
ソフトウェア製品で発生した問題点を修正する手段の一つとしてパッチ提供という方法が知られている。パッチは通常、修正対象となる問題点ごとに作成され、該当する問題に対応するパッチを作成することで、製品の再インストールなしに問題点の修正を行える。
なお、利用者は現行のシステム環境を極力変更せず、かつ重要度の高い問題点のみを修正したいと考えるケースが多いため、パッチの適用に際しては、利用者のシステムのパッチ適用履歴や、パッチによる修正内容を管理し、その中で顧客システム環境において前提条件を加味した上で該当するパッチを抽出している(例えば、特許文献1参照)。
なお、利用者は現行のシステム環境を極力変更せず、かつ重要度の高い問題点のみを修正したいと考えるケースが多いため、パッチの適用に際しては、利用者のシステムのパッチ適用履歴や、パッチによる修正内容を管理し、その中で顧客システム環境において前提条件を加味した上で該当するパッチを抽出している(例えば、特許文献1参照)。
しかしながら、パッチは前提関係を持つ場合があり、パッチ適用時にその前提となるパッチを事前に適用しておく必要があるため、顧客の必要としないパッチまで適用しなければならない可能性がある。
本発明の目的は、適用するパッチを必要最小限にとどめてパッチを再構成することにある。
上記目的を達成するために、本発明は、好ましくは、既に提供されたパッチおよび新たに提供されるパッチをモジュール単位に分解し、再構築するためのパッチ再構成方法であって、パッチ情報とその重要度を照合し、提供されたパッチの対象となるモジュール間の互換性情報を管理し、パッチ情報と互換性情報を照合して最低限必要と判断したモジュールを抽出し、その抽出した結果を基にパッチの再構成を行うように構成する。
本発明によれば、適用するパッチを分析し、前提関係にあるパッチをモジュール単位に分解し、前提関係にあるモジュールのみを抽出してパッチを再構成することにより、適用するパッチを必要最小限にとどめることが可能となる。
以下、図面を参照して本発明の実施例について説明する。
図1は、一実施形態に係る全体のシステムを示すブロック図である。同図において、計算機101はCPU102,メモリ103,入力装置104,ディスク105を有して構成される。メモリ103にはパッチ再構成プログラム106が格納され、そのプログラムはCPU102で実行される。パッチ再構成プログラム106は、パッチ情報管理部107,モジュール情報管理部108,パッチ重要度照合部109,モジュール抽出部110,パッチ再構成部111で構成され、再構成後のパッチ情報112を出力する。
ディスク105にはパッチの再構成処理のために必要なパッチ情報テーブル113,モジュール互換性テーブル114が蓄積されている。
図1は、一実施形態に係る全体のシステムを示すブロック図である。同図において、計算機101はCPU102,メモリ103,入力装置104,ディスク105を有して構成される。メモリ103にはパッチ再構成プログラム106が格納され、そのプログラムはCPU102で実行される。パッチ再構成プログラム106は、パッチ情報管理部107,モジュール情報管理部108,パッチ重要度照合部109,モジュール抽出部110,パッチ再構成部111で構成され、再構成後のパッチ情報112を出力する。
ディスク105にはパッチの再構成処理のために必要なパッチ情報テーブル113,モジュール互換性テーブル114が蓄積されている。
図1において、パッチ再構成プログラム106を起動させると、パッチ情報管理部107は、ディスク105に格納されたパッチ情報テーブル113を読み出す。また、同様にモジュール情報管理部108はモジュール互換性テーブル114をメモリ103上に読み出し、必要であれば入力装置104により変更をかける。読み出したまたは変更をかけたパッチ情報およびモジュール互換性情報をもとに、パッチ重要度照合部109にて適用するパッチを判断し、モジュール抽出部110にて対象となるモジュールのバージョンを抽出し、パッチ再構成部111にてパッチが再構成される。その結果をもとに、再構成後のパッチ情報112が出力される。
パッチ再構成プログラム106の終了の際には、パッチ情報管理部107およびモジュール情報管理部108にて変更されたパッチ情報およびモジュール互換性情報を、パッチ情報テーブル113およびモジュール互換性テーブル114に格納する。
パッチ再構成プログラム106の終了の際には、パッチ情報管理部107およびモジュール情報管理部108にて変更されたパッチ情報およびモジュール互換性情報を、パッチ情報テーブル113およびモジュール互換性テーブル114に格納する。
図26は、パッチ再構成プログラム106の処理動作を示すフローチャートである。
再構成プログラム106が起動される(S2601)と、パッチ情報テーブル113およびモジュール互換性テーブル114の初期設定が未完了であるか確認する(S2602)。その結果、未完了の場合(S2602=YES)、パッチ情報テーブル113の初期設定(S2603)と、モジュール互換性テーブル114の初期設定(S2604)を行う。
次に、追加提供されたパッチがあるか確認する(S2605)。その結果、追加パッチがあれば(S2605=YES)、パッチ情報テーブル113にパッチ情報を追加し(S2606)、かつモジュール互換性テーブル114に追加する(S2607)。
再構成プログラム106が起動される(S2601)と、パッチ情報テーブル113およびモジュール互換性テーブル114の初期設定が未完了であるか確認する(S2602)。その結果、未完了の場合(S2602=YES)、パッチ情報テーブル113の初期設定(S2603)と、モジュール互換性テーブル114の初期設定(S2604)を行う。
次に、追加提供されたパッチがあるか確認する(S2605)。その結果、追加パッチがあれば(S2605=YES)、パッチ情報テーブル113にパッチ情報を追加し(S2606)、かつモジュール互換性テーブル114に追加する(S2607)。
次にパッチの重要度が変更されているかを確認し(S2608)、変更されていれば(S2608=YES)、パッチ重要度を変更する(S2609)。そして、モジュール互換性情報よりモジュール関連テーブルを生成する(S2610)。更に、パッチ情報テーブル113よりパッチの重要度を取得し(S2611)、重要度の高いパッチのみでモジュールの抽出する(パッチの再構成)(S2612)。
そして、抽出したモジュールどうしの互換性が補償されるかをチェックする(S2613)。もし、互換性が保障されていなければ(S2613=NO)、再度モジュールの抽出を行う。一方、互換性が保障されれば(S2613=YES)、処理を終了する(S2614)。
そして、抽出したモジュールどうしの互換性が補償されるかをチェックする(S2613)。もし、互換性が保障されていなければ(S2613=NO)、再度モジュールの抽出を行う。一方、互換性が保障されれば(S2613=YES)、処理を終了する(S2614)。
次に、パッチを管理するためのパッチ情報のレコード形式について説明する。
図2は、図1のシステムでパッチごとに管理されるパッチ情報レコードの形式の一例を示す。同図において、パッチ情報レコードは、パッチの管理IDを示すパッチID201と、パッチ情報202の具体的な内容として、重要度,パッチ対象モジュール名を有する。本実施形態では、それぞれのパッチごとに固有の管理IDを付加したものを1つのレコードによって管理する。
図2は、図1のシステムでパッチごとに管理されるパッチ情報レコードの形式の一例を示す。同図において、パッチ情報レコードは、パッチの管理IDを示すパッチID201と、パッチ情報202の具体的な内容として、重要度,パッチ対象モジュール名を有する。本実施形態では、それぞれのパッチごとに固有の管理IDを付加したものを1つのレコードによって管理する。
図3は、パッチ情報テーブル113を示す。
パッチ情報テーブル113は、パッチ情報管理部107(図1)により管理され、ディスク105に保持されるテーブルである。新たにパッチが提供されるごとに、新規レコードとしてパッチ情報レコードが追加される。また、新たにパッチが提供されなくても、パッチの適用状況などによりパッチの重要性が変わった場合、本レコードの重要度を更新する。
パッチ情報テーブル113は、パッチ情報管理部107(図1)により管理され、ディスク105に保持されるテーブルである。新たにパッチが提供されるごとに、新規レコードとしてパッチ情報レコードが追加される。また、新たにパッチが提供されなくても、パッチの適用状況などによりパッチの重要性が変わった場合、本レコードの重要度を更新する。
パッチ情報テーブル301内のパッチID302は、登録済みのパッチのIDを示し、パッチ重要度303は、パッチID302が示すパッチの重要性を示し、パッチ対象モジュール304は、パッチID302の対象となるモジュール名称の一覧を示す。
パッチ情報テーブル301では、パッチ情報テーブル113の初期値を示している。パッチ登録の前にパッチID“ID00”として入力装置104によって必ず登録されている。パッチID“ID00”は、パッチ対象プログラムのベースバージョンであるため、パッチ対象モジュールは全てのモジュールであり、また、重要度は対象外であるため“−”が入力される。パッチ情報テーブル301では、パッチ対象プログラムを構成する全てのモジュールが、モジュール名“A”,“B”,“C”,“D”のケースを示している。
パッチ情報テーブル301では、パッチ情報テーブル113の初期値を示している。パッチ登録の前にパッチID“ID00”として入力装置104によって必ず登録されている。パッチID“ID00”は、パッチ対象プログラムのベースバージョンであるため、パッチ対象モジュールは全てのモジュールであり、また、重要度は対象外であるため“−”が入力される。パッチ情報テーブル301では、パッチ対象プログラムを構成する全てのモジュールが、モジュール名“A”,“B”,“C”,“D”のケースを示している。
次に、パッチごとのモジュール間の互換性を管理するためのモジュール互換性情報のレコード形式について説明する。
図4は、図1のシステムでパッチ対象のモジュールごとに管理されるモジュール互換性レコードの形式の一例を示す。
同図において、モジュール互換性レコードは、パッチの管理IDを示すパッチID401と、パッチの対象となるモジュールの名称であるパッチ対象モジュール名402と、モジュール互換性情報403の具体的な内容として、モジュールごとにパッチ対象モジュールと互換性のあるパッチのバージョンとしてパッチID404を有する。本実施形態では、それぞれのパッチの対象となるモジュールごとに1つのレコードによって管理する。
図4は、図1のシステムでパッチ対象のモジュールごとに管理されるモジュール互換性レコードの形式の一例を示す。
同図において、モジュール互換性レコードは、パッチの管理IDを示すパッチID401と、パッチの対象となるモジュールの名称であるパッチ対象モジュール名402と、モジュール互換性情報403の具体的な内容として、モジュールごとにパッチ対象モジュールと互換性のあるパッチのバージョンとしてパッチID404を有する。本実施形態では、それぞれのパッチの対象となるモジュールごとに1つのレコードによって管理する。
図5は、モジュール情報管理部108により管理され、ディスク105に保持されるモジュール互換性テーブル114を示す。
新たにパッチが提供されるごとに、新規レコードとしてパッチ互換レコードが追加される。モジュール互換性テーブル501内のパッチID502は、登録済みのパッチのIDを示し、パッチ対象モジュール名503は、パッチID502が示すパッチの対象となるモジュール名称である。パッチ対象モジュールと互換性のあるパッチID一覧504は、パッチ対象モジュール名503と、パッチ対象プログラムを構成する全てのモジュール505との互換性のあるモジュールのバージョンをパッチIDで記したものである。互換性情報のセル506を例に説明すると、パッチID“ID00”のモジュール名“B”と互換性のあるモジュール名“A”のバージョンは“ID00”となる。なお、セル507の“−”は、パッチ対象モジュール名と比較対象モジュール名が同一のため、対象外であることを示している。
新たにパッチが提供されるごとに、新規レコードとしてパッチ互換レコードが追加される。モジュール互換性テーブル501内のパッチID502は、登録済みのパッチのIDを示し、パッチ対象モジュール名503は、パッチID502が示すパッチの対象となるモジュール名称である。パッチ対象モジュールと互換性のあるパッチID一覧504は、パッチ対象モジュール名503と、パッチ対象プログラムを構成する全てのモジュール505との互換性のあるモジュールのバージョンをパッチIDで記したものである。互換性情報のセル506を例に説明すると、パッチID“ID00”のモジュール名“B”と互換性のあるモジュール名“A”のバージョンは“ID00”となる。なお、セル507の“−”は、パッチ対象モジュール名と比較対象モジュール名が同一のため、対象外であることを示している。
モジュール互換性テーブル501は、モジュール互換性テーブル114の初期値を示している。パッチ登録の前にパッチID“ID00”として入力装置104によって登録されている。パッチID“ID00”はパッチ対象プログラムのベースバージョンであるため、パッチ対象モジュールは全てのモジュールであり、全てのモジュール間で互換性がある。モジュール互換性テーブル501では、パッチ対象プログラムを構成する全てのモジュールが、モジュール名“A”,“B”,“C”,“D”のケースを示している。
次に、パッチが提供された際のパッチ情報テーブルと、モジュール互換性テーブルの更新方法について説明する。
図6は、パッチが提供された際のパッチ情報を示す。パッチ情報601は、パッチIDが“ID01”、重要度が“高”、パッチ対象モジュールがモジュール名“A”,“D”のケースを示す。このパッチ情報601は、パッチの内容を理解している者が判断して提供し、入力装置104により入力される。
図6は、パッチが提供された際のパッチ情報を示す。パッチ情報601は、パッチIDが“ID01”、重要度が“高”、パッチ対象モジュールがモジュール名“A”,“D”のケースを示す。このパッチ情報601は、パッチの内容を理解している者が判断して提供し、入力装置104により入力される。
図7は、パッチが提供された際のモジュール互換性情報を示す。モジュール互換性情報701は、パッチIDが“ID01”、パッチ対象モジュール名がモジュール名“A”,“D”で、互換関係はそれぞれ、モジュール名“A”の“ID01”と互換性があるのは、モジュール名“B”の“ID00”,モジュール名“C”の“ID00”,モジュール名“D”の“ID00”および“ID01”、モジュール名“D”の“ID01”と互換性があるのは、モジュール名“A”の“ID00”および“ID01”,モジュール名“B”の“ID00”,モジュール名“C”の“ID00”であることを示す。このモジュール互換性情報701は、パッチの内容を理解している者が判断して提供し、入力装置104より入力する。
図8は、パッチ登録後のパッチ情報テーブルを示す。
パッチ情報テーブル801は、パッチ情報テーブル301にパッチ情報601を登録した場合を示したものである。入力装置104によりパッチ情報601が入力され、パッチ情報レコード802として追加登録される。
パッチ情報テーブル801は、パッチ情報テーブル301にパッチ情報601を登録した場合を示したものである。入力装置104によりパッチ情報601が入力され、パッチ情報レコード802として追加登録される。
図9は、パッチ登録後のモジュール互換性テーブルを示す。
モジュール互換性テーブル901は、モジュール互換性テーブル501にモジュール互換性情報701を登録した場合を示したものである。入力装置104によりモジュール互換性情報701が入力され、モジュール互換レコード951および961として追加登録される。ここで、新たにパッチIDが追加されたことにより、追加されたパッチの対象となるモジュールのバージョンが増えるため、登録済みのモジュール互換レコード911,921,931および941の更新が必要となる。この更新処理はモジュール情報管理部108により自動的に行われる。
モジュール互換性テーブル901は、モジュール互換性テーブル501にモジュール互換性情報701を登録した場合を示したものである。入力装置104によりモジュール互換性情報701が入力され、モジュール互換レコード951および961として追加登録される。ここで、新たにパッチIDが追加されたことにより、追加されたパッチの対象となるモジュールのバージョンが増えるため、登録済みのモジュール互換レコード911,921,931および941の更新が必要となる。この更新処理はモジュール情報管理部108により自動的に行われる。
次にモジュール互換レコードの自動更新動作について説明する。モジュール互換性情報701(図7)に示すように、パッチID“ID01”で追加されるモジュールとそのバージョンは、モジュール名“A”の“ID01”である。ここで、以後特に断りがなければ、モジュール名およびバージョンを簡略し、モジュール名“A”のバージョン“ID01”の場合、“A−ID01”と略する。“A−ID01”と互換性があるモジュール名“B”のバージョンは、セル713(図7)で示すように“B−ID00”である。別の表現をすれば、“B−ID00”は“A−ID01”と互換関係にあるといえる。よって、登録済みのモジュール互換レコードの“B−ID00”のレコードに、“A−ID01”と互換性があることを示す情報を追加する必要がある。
モジュール情報管理部108では、モジュール互換性情報701をもとに、モジュール互換性テーブルの各レコードの更新を行う。まず、モジュール互換性情報レコード711のセル712をチェックする。ここには“−”が入っており無効セルのため何もしない。次にセル713をチェックし、“B−ID00”と“A−ID01”が互換関係にあることを検出すると、“B−ID00”のモジュール互換レコード921を検索し、モジュール名“A”のセルであるセル922に“ID01”を追記する。
以降、モジュール互換性情報レコード711のセル714,715をチェックし、“C−ID00”および“D−ID00”と“A−ID01”が互換関係にあることを検出すると、図9のモジュール互換レコード931のセル932、およびモジュール互換レコード941のセル942に“ID01”を追記する。また、“D−ID01”と“A−ID01”が互換関係にあることを検出するが、モジュール互換レコード961のセル962には“ID01”が既に登録されているため、ここでは追記を行わない。このようにして、モジュール互換性情報レコード711のチェックを完了する。
次に、モジュール互換性情報レコード721を同様にチェックし、モジュール互換性テーブル901の更新を行う。追加された全てのモジュール互換性情報レコードのチェックが完了すると、更新処理を終了する。このようにして処理したモジュール互換性テーブルを図10に示す。モジュール互換性テーブル1001に示すように、セル1002,1003,1004,1005,1006および1007に、“ID01”が追記されている。
図11は、パッチ“ID02”,“ID03”が提供された際のパッチ情報を示す。
パッチ情報1101は、パッチID“ID02”重要度が“低”、パッチ対象モジュールがモジュール名“A”,“B” ,“C”、および、パッチID“ID03”重要度が“高”、パッチ対象モジュールがモジュール名“D”のケースを示す。このパッチ情報1101は、パッチの内容を理解している者が判断して提供し、入力装置104より入力する。
パッチ情報1101は、パッチID“ID02”重要度が“低”、パッチ対象モジュールがモジュール名“A”,“B” ,“C”、および、パッチID“ID03”重要度が“高”、パッチ対象モジュールがモジュール名“D”のケースを示す。このパッチ情報1101は、パッチの内容を理解している者が判断して提供し、入力装置104より入力する。
図12は、パッチ“ID02”,“ID03”が提供された際のモジュール互換性情報を示す。
モジュール互換性情報1201は、パッチIDが“ID02”、パッチ対象モジュール名がモジュール名“A”,“B”,“C”で、互換関係はそれぞれ、“A−ID02”と互換性があるのは、 “B−ID00”,“B−ID02”,“C−ID00”,“C−ID02”,“D−ID00”,“D−ID01”、“B−ID02”と互換性があるのは、 “A−ID02”,“C−ID00”,“C−ID02”,“D−ID00”,“D−ID01”、“C−ID02”と互換性があるのは、“A−ID00”,“A−ID01”,“A−ID02”,“B−ID00”,“B−ID02”,“D−ID00”,“D−ID01”である。
更に、パッチIDが“ID03”、パッチ対象モジュール名がモジュール名“D”で、“D−ID03”と互換性があるのは、“A−ID00”,“A−ID01”,“A−ID02”,“B−ID02”,“C−ID00”,“C−ID02”であることを示す。このモジュール互換性情報1201は、パッチの内容を理解している者が判断して提供し、入力装置104より入力する。
モジュール互換性情報1201は、パッチIDが“ID02”、パッチ対象モジュール名がモジュール名“A”,“B”,“C”で、互換関係はそれぞれ、“A−ID02”と互換性があるのは、 “B−ID00”,“B−ID02”,“C−ID00”,“C−ID02”,“D−ID00”,“D−ID01”、“B−ID02”と互換性があるのは、 “A−ID02”,“C−ID00”,“C−ID02”,“D−ID00”,“D−ID01”、“C−ID02”と互換性があるのは、“A−ID00”,“A−ID01”,“A−ID02”,“B−ID00”,“B−ID02”,“D−ID00”,“D−ID01”である。
更に、パッチIDが“ID03”、パッチ対象モジュール名がモジュール名“D”で、“D−ID03”と互換性があるのは、“A−ID00”,“A−ID01”,“A−ID02”,“B−ID02”,“C−ID00”,“C−ID02”であることを示す。このモジュール互換性情報1201は、パッチの内容を理解している者が判断して提供し、入力装置104より入力する。
図13は、パッチ“ID02”,“ID03”登録後のパッチ情報テーブルを示す。パッチ情報テーブル1301は、パッチ情報テーブル801に、パッチ情報1101を登録した場合を示したものである。入力装置104よりパッチ情報1101が入力され、パッチ情報レコード1302,1303として追加登録される。
図14は、パッチ“ID02”,“ID03”登録後のモジュール互換性テーブルを示す。モジュール互換性テーブル1401は、モジュール互換性テーブル1001(図10)に、モジュール互換性情報1201(図12)を登録した場合を示したものである。
入力装置104よりモジュール互換性情報1201が入力され、モジュール互換レコード1411,1421,1431および1441として追加登録される。また、モジュール情報管理部108により、登録済みのモジュール互換レコードに、互換性があるパッチIDとして“ID02”および“ID03”が追記されている。
入力装置104よりモジュール互換性情報1201が入力され、モジュール互換レコード1411,1421,1431および1441として追加登録される。また、モジュール情報管理部108により、登録済みのモジュール互換レコードに、互換性があるパッチIDとして“ID02”および“ID03”が追記されている。
次にパッチの再構成方式について説明する。
パッチ“ID01”,“ID02”,“ID03”が提供されている状態で、パッチの情報はパッチ情報テーブル1301、モジュールの互換関係はモジュール互換性テーブル1401に示す内容の場合を考える。
パッチ“ID01”,“ID02”,“ID03”が提供されている状態で、パッチの情報はパッチ情報テーブル1301、モジュールの互換関係はモジュール互換性テーブル1401に示す内容の場合を考える。
図15,図16,図17,および図18は、モジュール間の互換性の有無を表したモジュール関連テーブルを示す。モジュール関連テーブル1501,1601,1701,および1801は、パッチ再構成部111により自動生成される。
次にモジュール関連テーブルの自動生成動作について説明する。
図1のパッチ再構成部111は、パッチ互換性テーブルの情報をもとにモジュール関連テーブルを自動生成する。図15のモジュール名“A”のバージョン一覧1502には、図14のパッチ対象モジュール名1451,1453,1454より、“ID00”,“ID01”,“ID02”を設定する。
図1のパッチ再構成部111は、パッチ互換性テーブルの情報をもとにモジュール関連テーブルを自動生成する。図15のモジュール名“A”のバージョン一覧1502には、図14のパッチ対象モジュール名1451,1453,1454より、“ID00”,“ID01”,“ID02”を設定する。
対応モジュール一覧1503には、図14のモジュール名一覧1461から、モジュール名“A”を除いたモジュール名“B”,“C”,“D”を設定する。モジュール名“B”のバージョン一覧1504には、パッチ対象モジュール名1452,1455より、“ID00”,“ID02”を設定する。同様に、モジュール名“C”のバージョン一覧1505は、“ID00”,“ID02”を、モジュール名“D”のバージョン一覧1506は、“ID00”,“ID01”,“ID03”を設定する。互換性情報1511は、モジュール名“A”の各バージョンと、その他モジュールの各バージョン間の互換性の有無を“○”(互換性あり),“×”(互換性なし)で表した情報である。
“A−ID00”と“B−ID00”の互換関係を示すセル1522は、セル1456に“ID00”があるため“○”、“A−ID00”と“B−ID02”の互換関係を示すセル1523は、セル1456に“ID02”がないため“×”を設定する。同様に各セルに“○”,“×”を設定し、モジュール関連テーブル1501を完成させる。モジュール関連テーブル1601,1701,および1801ついても、同様の手順によりテーブルを生成する。
このようにして生成したモジュール関連テーブルをもとに、パッチの再構成を実行する。
このようにして生成したモジュール関連テーブルをもとに、パッチの再構成を実行する。
図27は、パッチ重要度照合部109における、重要パッチ対象モジュール関連テーブル作成動作を示すフローチャートである。図27において、重要パッチ対象モジュール関連テーブル作成動作開始されたとき(S2701)、パッチ情報テーブル1301より、重要度が“高”に設定されているパッチ(以後、重要パッチと略する)のパッチID“ID01”および“ID03”を取得する(S2702)。
次に、モジュール関連テーブル1501内の先頭レコード1521を読み出し(S2703)、パッチIDが一致するか比較する(S2704)。比較の結果、レコード1502はパッチIDが一致しないので(S2704=NO)、次のレコード1531を読み出す(S2703)。今度はパッチIDが一致するので(S2704=YES)、当該レコードを重要パッチ対象モジュール関連テーブル1901のレコード1911として出力する(S2705)。このとき、重要パッチ対象モジュールと対応モジュールのモジュール名が同一のセルには、対象外として“−”を設定(セル1912のように)する(S2706)。全てのレコードを読み終えていないため(S2707=NO)、再度レコードを読み出す。
この動作を繰り返し、モジュール関連レコード1811,1821も、レコード1921,1931として出力する。そして全てのレコードを読み終える(S2707=YES)と、動作を終了する(S2709)。図19は、図27のフローチャートの処理により出力された、重要パッチ対象モジュール関連テーブルを示した図である。
図28は、モジュール抽出部110における、最古バージョンテーブル作成動作を示すフローチャートである。
この処理動作では、重要パッチ対象のモジュールと、対応するモジュールとの2モジュール間の互換性のある各バージョンから、最古のバージョン(パッチID小さいもの)を抽出する。ここで、互換性のあるモジュールの中から最古バージョンを抽出する理由は、モジュールのベースバージョン(パッチID“ID00”)を抽出するためである。モジュールのベースバージョンは、どのバージョンのプログラムにも含まれているため、再構成の結果にベースバージョンがあれば、そのモジュールはパッチ対象外にすることができるからである。
この処理動作では、重要パッチ対象のモジュールと、対応するモジュールとの2モジュール間の互換性のある各バージョンから、最古のバージョン(パッチID小さいもの)を抽出する。ここで、互換性のあるモジュールの中から最古バージョンを抽出する理由は、モジュールのベースバージョン(パッチID“ID00”)を抽出するためである。モジュールのベースバージョンは、どのバージョンのプログラムにも含まれているため、再構成の結果にベースバージョンがあれば、そのモジュールはパッチ対象外にすることができるからである。
図28において、最古バージョンテーブル作成動作が開始されたとき(S2801)、重要パッチ対象モジュール(図19)の関連テーブルより、先頭レコード1911を読み出し(S2802)、重要パッチのモジュールバージョン“A−ID01”と“A−ID00”の互換性情報であるセル1912が“−”であるか比較を行う(S2803)。セル1912は“−”である(S2803=YES)ため、最古バージョンテーブル2001(図20)内の、“A−ID01”に互換性のあるモジュール名“A”の最古バージョンとして、セル2011に重要パッチのモジュールバージョンである“ID01”を出力し(S2804)、次のモジュールを検証する。
次は重要パッチのモジュールバージョン“A−ID01”と“B−ID00”の互換性情報であるセル1913が“−”であるか比較を行い、セル1913は“○”である(S2803=NO)ため、次にセル1913が“○”であるか比較する(S2805)。セル1913は“○”である(S2805=YES)ため、最古バージョンテーブル2001内の、“A−ID01”に互換性のあるモジュール名“B”の最古バージョンとして、セル2012に“ID00”を出力する(S2806)。全てのモジュールを検証していない(S2807=NO)ため、次のモジュールを検証する。同様に、モジュール名“C”,“D”ついて検証し、セル2013および2014に“ID00”を出力する。
全てのモジュールを検証し終わる(S2807=YES)と、次のレコードを読み出す(S2808=NO)。これを繰り返し、全てのレコードの読み終える(S2808=YES)と、動作を終了する(S2812)。
全てのモジュールを検証し終わる(S2807=YES)と、次のレコードを読み出す(S2808=NO)。これを繰り返し、全てのレコードの読み終える(S2808=YES)と、動作を終了する(S2812)。
図20は、図28のフローチャートの処理により出力された、重要パッチ対象モジュールと互換性のあるモジュール最古バージョンテーブルを示す図である。
最古バージョン一覧2001で示すように、重要パッチ対象モジュール“A−ID01”と互換性のある最古バージョンは、それぞれ、“B−ID00”,“C−ID00”,“D−ID00”であり、重要パッチ対象モジュール“D−ID01”と互換性のあるモジュールの最古バージョンは、“A−ID00”,“B−ID00”,“C−ID00”であり、D−ID03”と互換性のあるモジュールの最古バージョンは、“A−ID00”,“B−ID02”,“C−ID00”であることを示す。
最古バージョン一覧2001で示すように、重要パッチ対象モジュール“A−ID01”と互換性のある最古バージョンは、それぞれ、“B−ID00”,“C−ID00”,“D−ID00”であり、重要パッチ対象モジュール“D−ID01”と互換性のあるモジュールの最古バージョンは、“A−ID00”,“B−ID00”,“C−ID00”であり、D−ID03”と互換性のあるモジュールの最古バージョンは、“A−ID00”,“B−ID02”,“C−ID00”であることを示す。
図21は、重要パッチで再構成したときに、必要となる各モジュールのバージョンの一覧を示す図である。再構成パッチモジュールバージョンテーブル2101は、最古バージョン一覧2001の各モジュールのバージョンのうち、最新のバージョン(パッチIDが大きいもの)を抽出したものである。
モジュール名“A”について説明すると、最古バージョン一覧2001のモジュール名“A”のバージョンであるセル2011(ID01),2015(ID00),2016(ID00)のうち、最新のバージョンはセル2011の“ID01”であり、図21のモジュール名“A”のバージョンであるセル2102は“ID01”となる。同様に、モジュール名“B”のセル2103は“ID02”、モジュール名“C”のセル2104は“ID00”、モジュール名“D”のセル2104は“ID03”となる。
モジュール名“A”について説明すると、最古バージョン一覧2001のモジュール名“A”のバージョンであるセル2011(ID01),2015(ID00),2016(ID00)のうち、最新のバージョンはセル2011の“ID01”であり、図21のモジュール名“A”のバージョンであるセル2102は“ID01”となる。同様に、モジュール名“B”のセル2103は“ID02”、モジュール名“C”のセル2104は“ID00”、モジュール名“D”のセル2104は“ID03”となる。
ここで、最新バージョンを抽出する理由は、最新バージョンであれば、重要パッチ対象のモジュールのバージョンを必ず含ませるためである。なお、当該パッチの仕組みとして、バージョンの新しいモジュールは、同一モジュールのそれ以前のバージョンを含んでいることが前提である必要がある。最新のバージョンを抽出したことにより、各モジュール間の互換性が保障されない組み合わせになっている可能性があるため、これらの互換性のチェックを行う。
図22は、図21中の再構成パッチモジュールバージョンテーブル2101の各モジュールバージョン間の互換性を検証した結果を示す図である。モジュール間の互換性検証結果2201は、縦軸および横軸に各モジュールバージョンを並べ、縦軸と横軸が交差するセルに各々のモジュール間の互換性有無を“○”(互換性あり),“×”(互換性なし)を示している。セル2202およびセル2203の“×”が示すように、“A−ID01”と“B−ID02”の互換性がない。モジュール名“A”のモジュール関連テーブル1501にて検証すると、セル1532が示すように互換性がない。したがって、再構成パッチに必要なモジュールのバージョン2101(図21)うち、モジュール名“A”とモジュール名“B”(その他の互換性は問題なし)の互換性が保障できるよう、バージョンを変更する必要がある。
図23は、図21の再構成パッチに必要なモジュールのバージョン2101内の、“モジュール名“A”とモジュール名“B”の互換性を保障したモジュールバージョンを示す図である。
図21の“モジュール名“A”,“B”バージョンを比較した場合、モジュール名“A”のバージョンが古いため、モジュール名“A”を新しいバージョンに変更する。セル1611が現在のバージョンである“A−ID01”と“B−ID02”の互換性情報であるが、いうまでもなく“×”で互換性がない。一方、“A−ID02”と“B−ID02”の互換性情報であるセル1612は、“○”であり互換性がある。したがって、セル2302に示すように、モジュール名“A”のバージョンを、“A−ID01”から“A−ID02”に変更する。そして、各モジュール間の互換性について再度検証をおこなう。
図21の“モジュール名“A”,“B”バージョンを比較した場合、モジュール名“A”のバージョンが古いため、モジュール名“A”を新しいバージョンに変更する。セル1611が現在のバージョンである“A−ID01”と“B−ID02”の互換性情報であるが、いうまでもなく“×”で互換性がない。一方、“A−ID02”と“B−ID02”の互換性情報であるセル1612は、“○”であり互換性がある。したがって、セル2302に示すように、モジュール名“A”のバージョンを、“A−ID01”から“A−ID02”に変更する。そして、各モジュール間の互換性について再度検証をおこなう。
図24は、図23の検証後の再構成パッチモジュールバージョンテーブル2301の各モジュールバージョン間の互換性を検証した結果を示す図である。モジュール間の互換性再検証結果2401が示すように、全てのモジュール間で互換性が保障されているしたがって、再構成パッチに必要なモジュールのバージョンは、“A−ID02”,“B−ID02”,“C−ID00”,“D−ID03”である。
図25は、再構成後のパッチ対象モジュールとそのバージョンを示す図である。再構成パッチに必要なモジュールのバージョンは、“A−ID02”,“B=ID02”,“C−ID00”,“D−ID03”であるが、“C−ID00”はモジュール名“C”のベースバージョンであるため、再構成パッチに含めないようにする。したがって、再構成後のパッチ対象モジュールとそのバージョンは、テーブル2501に示すように、“A−ID02”,“B−ID02”,“D−ID03”の3モジュールという結果を出力する。
101:計算機 102:CPU 103:メモリ 104:入出力装置 105:ディスク 106:パッチ再構成プログラム 107:パッチ情報管理部 108:モジュール情報管理部 109:パッチ重要度照合部 110:モジュール抽出部 111:パッチ再構成部 112:再構成後のパッチ情報 113:パッチ情報テーブル 114:モジュール互換性テーブル
Claims (5)
- 計算機を用いて既に提供されたパッチおよび新たに提供されるパッチをモジュール単位に分解し、再構築するためのパッチ再構成方法であって、該計算機は、パッチ情報とその重要度を照合するステップと、提供されたパッチの対象となるモジュール間の互換性情報を管理するステップと、パッチ情報と互換性情報を照合し、最低限必要と判断したモジュールを抽出するステップと、前記抽出した結果を基にパッチの再構成を行うステップと、を実行することを特徴とするパッチ再構成方法。
- 提供されたパッチの重要度を格納した前記パッチ情報と、前記互換性情報を照合し、パッチを適用する対象のシステムに対して最低限必要と判断したモジュールのみを抽出することを特徴とする請求項1のパッチ再構成方法。
- 提供されたパッチの重要度を格納した前記パッチ情報と、前記互換性情報を照合し、パッチを適用する対象のシステムに対して最低限必要と判断したモジュールの情報を基に、パッチの再構成を行うことを特徴とする特徴とする請求項1又は2のパッチ再構成方法。
- CPU,メモリ,入力装置,及び記憶装置を有する計算機を用いて、既に提供されたパッチおよび新たに提供されるパッチをモジュール単位に分解して、再構築するためのパッチ再構成システムであって、
該メモリはパッチを再構成するためのプログラムを格納し、かつ該記憶装置は、パッチ情報を記憶するパッチ情報テーブル,及びモジュールの互換情報を記憶するモジュール互換性テーブルを格納し、
該CPUは、該プログラムを実行することにより、該パッチ情報テーブルを参照して該パッチ情報を管理するパッチ情報管理部と、該モジュール互換性テーブルを参照して該モジュール情報を管理するモジュール情報管理部と、該テーブル内又は変更したパッチ情報又はモジュール互換性情報を基に、パッチの重要度を判断するパッチ重要度照合部と、該パッチ重要度照合部の判断に従って対象となるモジュールを抽出するモジュール抽出部と、該モジュール抽出部で抽出されたモジュールに対してパッチの再構成の処理を行うパッチ再構成部を実現する機能を有し、再構成されたパッチ情報を出力することを特徴とするパッチ再構成システム。 - 前記パッチ情報テーブルは、登録されたパッチに固有のIDと、パッチの重要性を示すパッチ重要度と、該パッチIDの対象となるモジュール名称の一覧を示すパッチ対象モジュールとを記憶し、
前記モジュール互換性テーブルは、該パッチに固有のパッチIDと、パッチの対象となるモジュールの名称であるパッチ対象モジュール名と、該モジュールの互換性情報の具体的な内容として、該モジュールごとにパッチ対象のモジュールと互換性のあるパッチのバージョンを含むモジュール互換性情報とを記憶することを特徴とする請求項4のパッチ再構成システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006329686A JP2008146163A (ja) | 2006-12-06 | 2006-12-06 | パッチ再構成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006329686A JP2008146163A (ja) | 2006-12-06 | 2006-12-06 | パッチ再構成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008146163A true JP2008146163A (ja) | 2008-06-26 |
Family
ID=39606311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006329686A Pending JP2008146163A (ja) | 2006-12-06 | 2006-12-06 | パッチ再構成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008146163A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010204430A (ja) * | 2009-03-04 | 2010-09-16 | Ricoh Co Ltd | カメラシステム |
JP2011060160A (ja) * | 2009-09-14 | 2011-03-24 | Fujitsu Ltd | ソフトウェア更新装置、方法、及びプログラム |
JP5206792B2 (ja) * | 2008-09-12 | 2013-06-12 | 富士通株式会社 | ソフトウェアパッチ適用方法、プログラム及び装置 |
JP2020004006A (ja) * | 2018-06-27 | 2020-01-09 | Nttテクノクロス株式会社 | 脆弱性管理装置、脆弱性管理方法及びプログラム |
-
2006
- 2006-12-06 JP JP2006329686A patent/JP2008146163A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5206792B2 (ja) * | 2008-09-12 | 2013-06-12 | 富士通株式会社 | ソフトウェアパッチ適用方法、プログラム及び装置 |
JP2010204430A (ja) * | 2009-03-04 | 2010-09-16 | Ricoh Co Ltd | カメラシステム |
JP2011060160A (ja) * | 2009-09-14 | 2011-03-24 | Fujitsu Ltd | ソフトウェア更新装置、方法、及びプログラム |
JP2020004006A (ja) * | 2018-06-27 | 2020-01-09 | Nttテクノクロス株式会社 | 脆弱性管理装置、脆弱性管理方法及びプログラム |
JP7123659B2 (ja) | 2018-06-27 | 2022-08-23 | Nttテクノクロス株式会社 | 脆弱性管理装置、脆弱性管理方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10055415B2 (en) | Methods and systems for deploying hardware files to a computer | |
US7047403B2 (en) | Method and system for operating system recovery and method of using build-to-configuration mode to model computer system | |
US20050234931A1 (en) | Managing client configuration data | |
US20070277167A1 (en) | System and method for computer system maintenance | |
US10083196B2 (en) | Creating secure virtual databases storing masked data | |
CN101329636A (zh) | 虚拟化窗口信息的方法和设备 | |
US7228526B2 (en) | Application imaging infrastructure | |
JP2008146163A (ja) | パッチ再構成方法 | |
US11977872B2 (en) | Method and system for code maintenance | |
CN113722758B (zh) | 日志脱敏方法、装置、计算机设备及存储介质 | |
US20110040784A1 (en) | Computer device for the time-based management of digital documents | |
CN111737137A (zh) | 接口测试数据生成方法、装置、主机及存储介质 | |
CN111400128B (zh) | 日志管理方法、装置、计算机设备及存储介质 | |
US7401212B2 (en) | Self-contained computer servicing device | |
JP5943753B2 (ja) | 仮想マシン管理システム、仮想マシン管理方法およびプログラム | |
JP2005276040A (ja) | デグレード確認検査方法、デグレード確認検査システム、およびそのためのプログラム | |
CN108958823A (zh) | 修改基本输入输出系统设定值的方法 | |
US20060224958A1 (en) | Processing of user character inputs having whitespace | |
CN113032031A (zh) | 一种高级安全芯片的安全启动方法及智能电视 | |
TWI779257B (zh) | 韌體更新之方法及其韌體更新系統 | |
JP5337675B2 (ja) | 端末管理システム及び方法 | |
JP5544693B2 (ja) | データ処理装置、データ処理プログラムおよびデータ処理方法 | |
CN114461282A (zh) | 一种bios下gpio的配置验证方法及相关组件 | |
JP2024042396A (ja) | 情報処理装置、情報処理方法及びコンピュータプログラム | |
CN117688551A (zh) | 启动路径白名单更新方法、装置、电子设备及存储介质 |