(57)【要約】【課題】パッチの適用時に必要となる、ベンダー提供のパッチ実行形式や適用前提条件、更にシステム構成などの詳細な情報や顧客システムの構成情報、およびパッチの適用ログを統合管理することにより、パッチの適用可否を自動判別し、該当する顧客システムにパッチを自動的に適用してユーザの負荷を軽減することを目的とする。【解決手段】顧客システムに対してサーバからパッチを送付し適用させる際に、顧客システムに導入されているＯＳおよびアプリケーションを示す情報を含む顧客システム情報を保持し、またパッチについて、該パッチが適用できるＯＳおよびアプリケーションを規定する条件である排他条件を含むパッチ詳細情報を保持し、これらの情報に基づいて、顧客システムに対するパッチの適用の可否を判断する。パッチの適用が可のとき、前記パッチを前記顧客システムに送付してパッチの適用指示を出す。【選択図】　図１
2004102379.tif 000002
【特許請求の範囲】
【請求項１】
顧客システムに対してサーバからパッチを送付し該パッチを適用させるパッチ適用管理プログラムであって、
前記顧客システムに導入されているＯＳおよびアプリケーションを示す情報を含む顧客システム情報を保持するステップと、
前記パッチについて、該パッチが適用できるＯＳおよびアプリケーションを規定する条件である排他条件を含むパッチ詳細情報を保持するステップと、
前記顧客システム情報とパッチ詳細情報に基づいて、前記顧客システムに対する前記パッチの適用の可否を判断するステップと、
前記パッチの適用が可であると判断された場合、前記パッチを前記顧客システムに送付してパッチの適用指示を出すステップと
を備えたことを特徴とするパッチ適用管理プログラム。
【請求項２】
請求項１に記載のパッチ適用管理プログラムにおいて、
前記パッチ詳細情報は、そのパッチを適用するにあたって、前提として適用しておく必要のある前提パッチ、および事後に適用する必要のある事後パッチに関する情報を含み、
前記パッチの適用指示を出すステップは、適用が可であると判断されたパッチについて、前記パッチ詳細情報を検索し、そのパッチに関して前提パッチまたは事後パッチがあるか否か判断し、あればそれらの前提パッチまたは事後パッチについてもその適用順序を指示してパッチの適用指示を出すステップを含む
ことを特徴とするパッチ適用管理プログラム。
【請求項３】
請求項１または２に記載のパッチ適用管理プログラムにおいて、
前記パッチ詳細情報は、そのパッチを包含する後継パッチに関する情報を含み、
前記パッチの適用指示を出すステップは、適用が可であると判断されたパッチ、前提パッチ、または事後パッチについて、前記パッチ詳細情報を検索し、そのパッチの後継パッチがあるか否か判断し、あればそのパッチに代えてその後継パッチの適用指示を出すステップを含む
ことを特徴とするパッチ適用管理プログラム。
【請求項４】
請求項１から３の何れか１つに記載のパッチ適用管理プログラムにおいて、
前記顧客システムに対して適用したパッチに関するパッチ適用履歴情報を保持するステップをさらに備え、
前記パッチの適用指示を出すステップは、適用指示を出す前に、適用を指示するパッチについて前記パッチ適用履歴情報を検索してそのパッチが既に正常に適用済みか否か判断し、正常に適用済みであった場合は、そのパッチの適用指示を取りやめるステップを含む
ことを特徴とするパッチ適用管理プログラム。
【請求項５】
請求項１から４の何れか１つに記載のパッチ適用管理プログラムにおいて、
前記パッチの適用指示に応じてパッチを適用したとき、そのパッチ適用の成否を判断するステップと、
パッチ適用が失敗した場合は、そのパッチ適用をロールバックして元の状態に戻すステップと
をさらに備えたことを特徴とするパッチ適用管理プログラム。
【請求項６】
顧客システムに対してサーバからパッチを送付し該パッチを適用させるパッチ適用管理方法であって、
前記顧客システムに導入されているＯＳおよびアプリケーションを示す情報を含む顧客システム情報を保持するステップと、
前記パッチについて、該パッチが適用できるＯＳおよびアプリケーションを規定する条件である排他条件を含むパッチ詳細情報を保持するステップと、
前記顧客システム情報とパッチ詳細情報に基づいて、前記顧客システムに対する前記パッチの適用の可否を判断するステップと、
前記パッチの適用が可であると判断された場合、前記パッチを前記顧客システムに送付してパッチの適用指示を出すステップと
を備えたことを特徴とするパッチ適用管理方法。
【請求項７】
顧客システムに対してサーバからパッチを送付し該パッチを適用させるパッチ適用管理システムであって、
前記顧客システムに導入されているＯＳおよびアプリケーションを示す情報を含む顧客システム情報を保持する手段と、
前記パッチについて、該パッチが適用できるＯＳおよびアプリケーションを規定する条件である排他条件を含むパッチ詳細情報を保持する手段と、
前記顧客システム情報とパッチ詳細情報に基づいて、前記顧客システムに対する前記パッチの適用の可否を判断する手段と、
前記パッチの適用が可であると判断された場合、前記パッチを前記顧客システムに送付してパッチの適用指示を出す手段と
を備えたことを特徴とするパッチ適用管理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、顧客システムで使用されているオペレーティングシステムやアプリケーションプログラムの修正作業を、通信装置で接続されたサーバから自動的に行う技術に関する。
【０００２】
【従来の技術】
従来、オペレーティングシステムやアプリケーションプログラムなどに修正を施す（いわゆるパッチをあてる）ためのパッチ適用システムは、顧客システムの過去のパッチ適用履歴やパッチ、パッチによる修正内容を管理しているだけであり、ベンダーから提供される修正時の前提条件などは全てユーザが個別に管理しなければならなかった。また、実際にパッチを適用する際には、ユーザが提供情報を元に適用可否を判断する必要があった。更に、パッチの種類の多様化に伴い、複数のパッチ実行形式もあわせて個別管理する必要があった。
【０００３】
ソフトウェア修正に関する従来技術の一例として、例えば特開２００１−１２５７８０号「ソフトウェア修正システム、ソフトウェア修正方法および記録媒体」の方式がある。この方式では、顧客コンピュータシステムの修正を行う修正情報管理コンピュータシステムが、顧客コンピュータシステム上のオペレーティングシステムおよびアプリケーション毎に、修正内容、修正内容の説明情報および修正手段を管理する。一方、顧客コンピュータシステムは、オペレーティングシステムおよびアプリケーション毎に修正履歴を記録している。顧客コンピュータシステムは、定期的に修正情報管理コンピュータシステムに修正履歴を送付し、修正情報管理コンピュータシステムは、オペレーティングシステムおよびアプリケーション毎に、自分が管理している修正内容と送信されてきた履歴情報とを比較し、未適用のものがあれば全て適用する。このため、この技術を用いることで、ベンダーから提供されたパッチを漏れなく一定期間内に適用することができる。また、緊急の対応が必要な場合には、修正情報管理コンピュータシステムが顧客コンピュータシステムに対して修正内容を送付する。このため、この技術を用いることで、顧客コンピュータシステムは、一定期間を経過する前に、緊急の修正を実行することができる。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来技術では、顧客コンピュータシステムは、アプリケーション毎に提供されているパッチを全て適用することになってしまう。現在ではシステムの多様化に伴ってパッチの形態も多様化しており、前提条件の相違により異なる種類のパッチを必要とする場合や、適用順序、導入システムによる適用制限など、パッチの適用作業自体が複雑化している。リストにあるパッチを全て適用する従来技術では、こうした現状に対応することができない。
【０００５】
例えば、▲１▼あるアプリケーションＡに対してパッチＸを適用するとき、既にアプリケーションＢがインストールされている場合は前記パッチＸは適用してはいけないという条件、あるいは、▲２▼あるアプリケーションＡに対してパッチＸを適用するとき、その前にＯＳにパッチＹを適用しておかないとエラーになるので、先にＯＳのパッチを行わなければいけないという条件、などがある。従来技術ではパッチを適用するときには、提供されているパッチを全て適用してしまうので上述したような場合に対処できない。
【０００６】
本発明の目的は、パッチの適用時に必要となる、ベンダー提供のパッチ実行形式や適用前提条件、更にシステム構成などの詳細な情報や顧客システムの構成情報、およびパッチの適用ログを統合管理することにより、パッチの適用可否を自動判別し、該当する顧客システムにパッチを自動的に適用してユーザの負荷を軽減することにある。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、本発明は、顧客システムに対してサーバからパッチを送付し該パッチを適用させる際に、顧客システムに導入されているＯＳおよびアプリケーションを示す情報を含む顧客システム情報を保持し、またパッチについて、該パッチが適用できるＯＳおよびアプリケーションを規定する条件である排他条件を含むパッチ詳細情報を保持し、この顧客システム情報とパッチ詳細情報に基づいて、前記顧客システムに対する前記パッチの適用の可否を判断することを特徴とする。パッチの適用が可であると判断された場合、前記パッチを前記顧客システムに送付してパッチの適用指示を出す。
【０００８】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を用いて詳細に説明する。
【０００９】
図１は、本発明を適用したパッチ適用管理システムの構成図である。図１において、クライアント１０１とサーバ１１１と顧客システム１４１は、ネットワーク１５１を介して接続されている。クライアント１０１と顧客システム１４１は、それぞれ複数あってもよい。
【００１０】
クライアント１０１は、パッチ適用情報入出力手段１０２とパッチ管理情報入出力手段１０３とを備える。クライアント１０１は、顧客システム１４１に対してパッチの適用の指示を出すなどを行う装置であり、例えば、顧客システム１４１にインストールされているＯＳやアプリケーションに対するパッチの提供元であるベンダーに備えられている。
【００１１】
サーバ１１１は、パッチ適用ツール１２０とパッチ管理ツール１３０とを備える。パッチ適用ツール１２０は、新規パッチ適用機能１２１と、パッチ実行形式登録機能１２２と、既存パッチ適用機能１２３と、包含関係検索機能１２４と、前後関係検索機能１２５と、パッチ送付機能１２６と、パッチ適用履歴情報格納部１２７と、パッチ実行形式情報格納部１２８と、顧客システム情報格納部１２９からなる。パッチ管理ツール１３０は、パッチ情報登録機能１３１と、パッチ情報検索機能１３２と、パッチ詳細情報格納部１３３と、パッチ格納部１３４とを備える。
【００１２】
パッチ適用履歴情報格納部１２７は、顧客システム毎、かつオペレーティングシステムおよびアプリケーション毎に、パッチを適用した履歴情報を格納するテーブルで、その詳細は図１０で後述する。パッチ実行形式情報格納部１２８は、パッチ適用時に用いる実行形式を管理するテーブルで、その詳細は図６で後述する。顧客システム情報格納部１２９は、顧客毎に導入されているシステムを管理するテーブルで、その詳細は図８で後述する。パッチ詳細情報格納部１３３は、パッチを適用する際に必要な情報を格納するテーブルであり、その詳細は図１１で後述する。パッチを適用する際に必要な情報とは、例えば、前提となるＯＳやＯＳのバージョン、特定のアプリケーションに対するパッチの適用可否を制限した排他条件、パッチの包含関係、パッチの適用前後に別途適用の必要なパッチを示した前後関係、および、パッチの適用によって行われる修正内容などである。パッチ格納部１３４は、ＯＳおよびアプリケーション毎にパッチＩＤとパッチ本体を格納するテーブルであり、その詳細は図１４で後述する。
【００１３】
新規パッチ適用機能１２１は、新しくパッチが登録された際に、該当する顧客システム１４１へそのパッチを適用する機能であり、その処理のフローチャートを図７に示す。既存パッチ適用機能１２３は、パッチ管理ツール１３０に既に登録されているパッチをクライアント１０１からの要求で顧客システム１４１に適用する機能であり、その処理のフローチャートを図１８に示す。包含関係検索機能１２４は、パッチ詳細情報格納部１３３に格納されているパッチ詳細情報内の包含関係に関する情報を元に、パッチの後継リリース版を検索する機能であり、その処理のフローチャートを図１２に示す。前後関係検索機能１２５は、パッチ詳細情報格納部１３３に格納されているパッチ詳細情報内の前後関係に関する情報を元に、適用したいパッチの前提パッチおよび事後パッチを検索し、自動的にあわせて適用する機能であり、その処理のフローチャートを図９に示す。パッチ送付機能１２６は、パッチ適用対象の顧客システム１４１に、パッチを適用するための情報を送付し、適用結果をパッチ適用履歴情報格納部１２７に格納した後、クライアント１０１に結果を通知する機能であり、その処理のフローチャートを図１５に示す。パッチ実行形式登録機能１２２は、新規パッチを登録する際に、対応するパッチ実行形式をサーバ１１１に格納する機能であり、その処理のフローチャートを図５に示す。
【００１４】
パッチ情報登録機能１３１は、ベンダーが例えばクライアント１０１からパッチ詳細情報格納部１３３およびパッチ格納部１３４に新規にデータを登録する際に使用する機能であり、その処理のフローチャートを図４に示す。パッチ情報検索機能１３２は、パッチ詳細情報およびパッチ情報を、パッチ詳細情報格納部１３３およびパッチ格納部１３４から検索、入手するために使用する機能であり、その処理のフローチャートを図１３に示す。
【００１５】
顧客システム１４１は、パッチ適用実行機能１４２と、オペレーティングシステムおよび複数のアプリケーションプログラムからなる。このオペレーティングシステムやアプリケーションプログラムが、パッチを適用する対象である。パッチ適用実行機能１４２は、パッチ適用ツール１２０から受けたパッチ適用に関する指示を展開、解析してパッチの適用を実施し、適用結果が失敗の場合にはロールバック処理を行い、適用結果をパッチ適用ツール１２０に伝達する機能であり、その処理のフローチャートを図１６に示す。
【００１６】
本実施の形態では、クライアント１０１、サーバ１１１、および顧客システム１４１の３つがネットワーク１５１上に繋がっている例を示したが、パッチ適用ツール１２０とパッチ管理ツール１３０とクライアント１０１と顧客システム１４１の４つは自由に組み合わせて計算機に割り付けてよく、例えばスタンドアロンシステムに上記すべての要素を割り当ててもよい。
【００１７】
以下、図１のシステムについて、さらに詳細に説明する。
【００１８】
図２は、パッチの提供元であるベンダーが、サーバ１１１へ新規にパッチを登録する場合における、クライアント１０１、サーバ１１１、および顧客システム１４１の動きを示したイベントダイアグラムである。まず、システムの開発元であるベンダーが、新規にリリースしたパッチのバイナリファイル、当該パッチのＩＤ、当該パッチに関連する詳細な情報、および当該パッチの実行形式を、（例えばクライアント１０１から）サーバ１１１に入力する。サーバ１１１は、パッチ管理ツール１３０内のパッチ情報登録機能１３１により、入力されたパッチのバイナリファイル、およびパッチに関連する詳細な情報をパッチ詳細情報格納部１３３やパッチ格納部１３４に格納する。また、パッチ適用ツール１２０内のパッチ実行形式登録機能１２２を呼び出し、パッチ実行形式を送付して、パッチ実行形式情報格納部１２８に登録する。パッチ情報登録機能１３１はパッチ実行形式の登録終了を受け、更に、パッチ適用ツール１２０内の新規パッチ適用機能１２１に、パッチおよびパッチ詳細情報を引数として処理を渡す。新規パッチ適用機能１２１は、そのパッチの対象であるアプリケーションを導入していて、かつパッチ詳細情報内の排他条件を満たす顧客システム１４１に対し、パッチの適用を行う。この際、前後関係検索機能１２５を用いて当該パッチの前後にあてる必要のある前提パッチおよび事後パッチの適用も自動的にあわせて実行できるように適用パッチリストを編集し、この適用パッチリストを引数にパッチ送付機能１２６が顧客システム１４１内のパッチ適用実行機能１４２を呼び出す。パッチ送付機能１２６は、適用結果をクライアント１０１に送付して処理を終了する。
【００１９】
図３は、適用パッチリストの例である。適用パッチリスト３０は、顧客ＩＤと、その顧客のアドレス情報を保持している。また、適用する必要のあるパッチ（前提パッチと事後パッチを含む）、および各パッチを適用する実行形式を適用順に並べたリストを保持している。なお、図では「パッチ」の欄のみを図示したが、この「パッチ」の欄はパッチのＩＤを登録する欄とバイナリファイルを登録する欄とに分かれているものとする。本例では、パッチのバイナリファイルのファイル名の拡張子を除いた部分をパッチＩＤとして取り扱うので、ここでは１つの「パッチ」の欄のみを図示した。
【００２０】
図４は、パッチ情報登録機能１３１の処理の流れを示すフローチャートである。ユーザ（ベンダー）が例えばクライアント１０１から新たにパッチの登録を指示すると（ステップ４０１）、パッチ情報登録機能１３１は、そのパッチおよびパッチ詳細情報と、パッチ実行形式を入手する（ステップ４０２）。次に、パッチおよびパッチ詳細情報を、それぞれパッチ格納部１３４とパッチ詳細情報格納部１３３へ登録する（ステップ４０３）。続いて、パッチ実行形式登録機能１２２を呼び出し、入力されたパッチ実行形式の登録を依頼する（ステップ４０４）。依頼の終了を受けたパッチ実行形式登録機能１２２は、新規パッチ適用機能１２１を呼び出し、パッチの適用を依頼し（ステップ４０５）、処理を終了する。
【００２１】
図５は、パッチ実行形式登録機能１２２の処理の流れを示すフローチャートである。パッチ実行形式登録機能１２２は、引数として受け取ったパッチ実行形式がパッチ実行形式情報格納部１２８に既に格納されているかを検索し（ステップ５０１）、既に格納されていれば、登録する必要はないので処理を終了する。格納されていなければ、パッチ実行形式情報格納部１２８に新規に登録を行って（ステップ５０３）、処理を終了する。
【００２２】
図６は、パッチ適用時に用いる実行形式を管理するために、パッチ実行形式情報格納部１２８に格納されるパッチ実行形式情報の例である。パッチ実行形式情報は、データベースのテーブル６０の各レコードデータとして格納されている。データ項目としては、パッチ（実行形式）ＩＤ、パッチＩＤ、パッチの実行ファイル（バイナリ）、および備考欄等が挙げられる。新規パッチ適用機能１２１および既存パッチ適用機能１２３は、このパッチ実行形式情報６０を元に、パッチ適用時に使用するパッチを検索し、該当する実行ファイルを入手する。
【００２３】
図７は、新規パッチ適用機能１２１の処理の流れを示すフローチャートである。新規パッチ適用機能１２１は、渡されたパッチ詳細情報を元に、入力された新規パッチを適用可能な顧客システム１４１があるかどうか顧客システム情報格納部１２９を検索し、検索結果をメモリにリストしておく（ステップ７０１）。該当する顧客システム１４１があるかどうかを判定し（ステップ７０２）、なければ処理を終了する。該当する顧客システム１４１があれば、これ以降の処理を、リストされた全顧客システムに対して実施するまで処理を続ける（ステップ７０３）。まず、新規パッチ適用機能１２１は、各顧客システム１４１に対して適用パッチリストを生成（図３の形式のデータの入れ物を生成するだけであり、この時点では適用パッチリスト中にパッチは格納されていない）する（ステップ７０４）。その後、前後関係検索機能１２５を呼び出し（生成した適用パッチリストと、これから適用しようとするパッチのＩＤを渡す）、未適用の前提および事後パッチを反映した適用パッチリストを完成させる（ステップ７０５）。なお、この時点での適用パッチリストは、パッチＩＤの欄にのみデータがパッチの適用順に格納されているという意味での完成である。適用パッチリストのバイナリファイルの欄および実行形式の欄は、次に呼び出すパッチ送付機能１２６中で行われるパッチの検索により完成される。ステップ７０５で完成した適用パッチリストを引数にしてパッチ送付機能１２６を呼び出し、パッチの適用を実行する（ステップ７０６）。リストされた全ての顧客システムに対してステップ７０３〜７０６を終えたら、処理を終了する。
【００２４】
図８は、顧客システム毎に、導入されているオペレーティングシステムやアプリケーション、およびそのバージョンを管理するために、顧客システム情報格納部１２９に格納される顧客システム情報の例である。顧客システム情報は、データベースのテーブル８０の各レコードデータとして格納される。データ項目としては、顧客ＩＤ、顧客名称、サーバ名称、ＩＰアドレス、ＯＳ名称、システム名称、導入しているアプリケーション名称、およびバージョン等が挙げられる。例えば、新規パッチ適用機能１２１は、パッチを適用する際、顧客システム情報格納部１２９に格納された本情報を元にして、各顧客システム１４１に対するパッチの適用可否を判断する。
【００２５】
図９は、前後関係検索機能１２５の処理の流れを示すフローチャートである。前後関係検索機能１２５は、まずパッチ適用リストにパッチのＩＤ（適用すべきパッチとして呼び出し元から渡されたパッチのＩＤ）を追加した後（ステップ９０１）、パッチ詳細情報格納部１３３内の前後関係を参照して、当該パッチに前提パッチが存在するかを検索する（ステップ９０２）。前提パッチがあった場合（ステップ９０３）、適用対象の顧客システム毎に、過去の適用履歴を格納したパッチ適用履歴情報格納部１２７を検索し（ステップ９０４）、その前提パッチが既に正常に適用済みであるかどうかを判断する（ステップ９０５）。ステップ９０３で前提パッチがない場合、またはステップ９０５で前提パッチが正常に適用済みである場合は、ステップ９０８からの事後パッチの処理に進む。ステップ９０５で前提パッチが未適用またはエラー終了であれば、包含関係検索機能１２４を呼び出し、後継パッチがないかを検索する（ステップ９０６）。更に、最新版の前提パッチについて、前後関係検索機能１２５を再帰的に呼び出し、未適用の前提パッチを全て洗い出す（ステップ９０７）。なお、検索された前提パッチ（それを包含する後継パッチの場合も含む）はステップ９０７で呼び出された本前後関係検索機能の中のステップ９０１で適用パッチリストに追加されることになるが、この場合、もとのパッチＩＤの前に前提パッチのＩＤを追加するものとする。前提パッチの方が先に適用されるようにするためである。
【００２６】
前提パッチについての調査が終わったら、適用パッチリスト内の全パッチについての事後パッチについて同様の処理を行う。ステップ９０８〜９１３は、前提パッチに関するステップ９０２〜９０７の処理と同様の処理を事後パッチについて行うものである。なお、検索された事後パッチ（それを包含する後継パッチの場合も含む）はステップ９１３で呼び出された本前後関係検索機能の中のステップ９０１で適用パッチリストに追加されることになるが、この場合、もとのパッチＩＤの後に事後パッチのＩＤを追加するものとする。事後パッチの方が後に適用されるようにするためである。ステップ９０９で事後パッチがないとき、あるいはステップ９１１で事後パッチが既に適用済みであるときは、処理を終了する。
【００２７】
図１０は、パッチ適用履歴情報格納部１２７に格納されるパッチ適用履歴情報の例である。パッチ適用履歴情報は、データベースのテーブル１００のような形式のデータとして格納される。データ項目としては、顧客ＩＤ、顧客名、サーバ名称、アドレス情報（ＩＰアドレス）、およびＯＳ／アプリケーション名等がある。顧客ＩＤと顧客名とＩＰアドレスは、顧客システム１４１のＩＤと名称とアドレスである。サーバ名称は、パッチを適用したサーバ１１１の名称である。ＯＳ／アプリケーション名は、パッチを適用する対象であるＯＳやアプリケーションの名称である。また、パッチ適用履歴情報１００は、前記情報で特定される顧客のＯＳ／アプリケーションに対して前記サーバ名称のサーバから適用された各パッチに関し、パッチＩＤ、適用日時、成否、エラーメッセージ、および、ログファイルへのリンクなどの項目のテーブルデータを格納する。ログファイルへのリンクの項目は、インストーラなどがパッチの適用ログファイルを作成する場合に使用する。パッチ送付機能１２６は、パッチの適用依頼を行った後、顧客システム１４１から送付される適用結果を元に、適用したパッチ毎に前記テーブルのレコードデータを作成し保存する。
【００２８】
図１１は、パッチ詳細情報格納部１３３に格納するパッチ詳細情報の例である。パッチ詳細情報は、パッチＩＤ毎のデータ１１０からなる。図では、パッチＩＤがＡＡＡＡのパッチに関するパッチ詳細情報１１０の例を示した。排他条件は、このパッチを適用する前提となるＯＳとアプリケーションについての条件である。具体的には、ＯＳ名とバージョン、およびアプリケーション名とバージョンと適用の可否についての情報である。前後関係は、このパッチを適用するにあたって前提として適用しておくべきパッチである前提パッチのＩＤ、およびこのパッチの適用の事後に適用しておくべきパッチである事後パッチのＩＤを格納する。包含関係は、このパッチを包含する後継パッチのＩＤを格納する。この後継パッチ（例えば、図示したＺＺＺＺ）を適用すれば、元のパッチ（ＡＡＡＡ）は適用する必要がない。修正内容は、このパッチの修正内容を示す。パッチ適用ツール１２０は、このようなパッチ詳細情報を元に、パッチの適用可否を判断する。
【００２９】
図１２は、包含関係検索機能１２４の処理の流れを示すフローチャートである。包含関係検索機能１２４は、まず引数として渡されたパッチＩＤに関するパッチ詳細情報（図１１）内の包含関係を検索し（ステップ１２０１）、後継パッチがあるかどうかを判断する（ステップ１２０２）。後継パッチが提供されていなかった場合には、調査したパッチ詳細情報に記述されたパッチＩＤ（すなわち、引数として渡されたパッチＩＤ）を戻り値として返し（ステップ１２１１）、処理を終了する。後継パッチが存在した場合には、パッチ適用履歴情報格納部１２７を検索し（ステップ１２０３）、その後継パッチが既に正常に適用済みかどうかを調査する（ステップ１２０４）。正常に適用済みであれば、本処理に引数として渡されたパッチは適用する必要がないから、処理を終了する。
【００３０】
ステップ１２０４で後継パッチが正常に適用済みでないときは、その後継パッチに関する詳細情報の提供をパッチ管理ツール１３０内のパッチ情報検索機能１３２に依頼した後（ステップ１２０５）、そのパッチ詳細情報内の排他条件を検索し（ステップ１２０６）、当該顧客システム１４１への適用可否を判断する（ステップ１２０７）。適用可能なら、再度パッチ詳細情報内の包含関係を検索し（ステップ１２０８）、更に新しい後継パッチが提供されていないか、後継パッチが存在しなくなるまで処理を繰り返して適用可能な最新版のパッチを入手する（ステップ１２０９）。ステップ１２０７でパッチの排他条件を調べて適用不可の場合、またはステップ１２０９で包含関係がこれ以上なくなった場合には、一つ前に検索したパッチのＩＤを戻り値として返し（ステップ１２１０）、処理を終了する。
【００３１】
図１３は、パッチ情報検索機能１３２の処理の流れを示すフローチャートである。まず、パッチ詳細情報の検索依頼か、パッチの検索依頼かを判断する（ステップ１３０１）。パッチ詳細情報の検索依頼だった場合、パッチ詳細情報格納部１３３から、引数で渡されたパッチＩＤに対応するパッチ詳細情報を検索し（ステップ１３０２）、該当するパッチ詳細情報が存在するかどうかを判断する（ステップ１３０３）。検索の結果、存在していた場合には、そのパッチ詳細情報を入手して戻り値として返し（ステップ１３０４）、処理を終了する。
【００３２】
ステップ１３０１でパッチの検索依頼だった場合、パッチ格納部１３４から、引数として渡されたパッチＩＤを検索し（ステップ１３０６）、該当するパッチが存在するかどうかを判断する（ステップ１３０７）。検索の結果、該当するパッチが存在していた場合には、そのバイナリファイルを入手し、引数として渡された適用パッチリストに、入手したパッチのバイナリファイルを追加する（ステップ１３０８）。さらに、パッチ実行形式の検索をパッチ適用ツール１２０に依頼して（ステップ１３０９）、各パッチを適用するためのパッチ実行形式を入手する（ステップ１３１０）。入手したパッチ実行形式を適用パッチリストへパッチ毎に紐付けて追加していく（ステップ１３１１）。最後に、パッチ適用リストを戻り値として返し（ステップ１３１２）、処理を終了する。
【００３３】
パッチ詳細情報格納部１３３あるいはパッチ格納部１３４を検索した際、該当するパッチＩＤの情報が見つからなかった場合には、エラーメッセージを生成して戻り値として返し（ステップ１３０５）、処理を終了する。
【００３４】
図１４は、パッチ格納部１３４に格納するパッチ情報の例である。パッチ情報１４０は、ＯＳおよびアプリケーション毎に、パッチＩＤとパッチ本体（バイナリファイル）とを対応させて格納したデータベーステーブルである。パッチ詳細情報は、ＯＳ／アプリケーション毎に割り振られたＩＤ（不図示）と、ＯＳ／アプリケーション名と、提供ベンダー名を格納する。また、パッチ情報１４０は、当該ベンダーのＯＳ／アプリケーションに対して提供されているパッチを格納するテーブルを含む。このテーブルの項目は、パッチＩＤ、バイナリファイル、および備考欄等からなる。パッチ適用ツール１２０は、パッチを適用する際、ＯＳ／アプリケーションＩＤとパッチＩＤをキー項目としてパッチのバイナリファイルを検索し、顧客システム１４１へ送付する。
【００３５】
図１５は、パッチ送付機能１２６の処理の流れを示すフローチャートである。パッチ送付機能１２６は主にパッチの適用指示を出す。まず、パッチ管理ツール１３０に適用パッチリストを送付し（ステップ１５０１）、パッチ管理ツール１３０内のパッチ情報検索機能１３２を呼び出して、適用パッチリスト内のパッチの検索を依頼する（ステップ１５０２）。パッチ情報検索機能１３２より受け取った編集後の適用パッチリスト（この時点では適用パッチリストのバイナリファイルや実行形式の欄も完成されている）を、アドレス部（図７のステップ７０１でパッチを適用可能であるとリストアップされた顧客システムのアドレス）に従い顧客システム１４１へ送付する（ステップ１５０３）。その後、パッチ送付機能１２６は、顧客システム１４１からパッチの適用結果を受け取り、パッチ適用履歴情報格納部１２７に格納する（ステップ１５０４）。最終的な適用結果をクライアント１０１に通知する（ステップ１５０５）。
【００３６】
図１６は、顧客システム１４１のパッチ適用実行機能１４２の処理の流れを示すフローチャートである。パッチ適用実行機能１４２は、顧客システム１４１のオペレーティングシステムあるいはアプリケーションに対し、適用パッチリストにリストされたパッチを、紐付けられたパッチ実行形式によって適用する（ステップ１６０１）。適用作業が終了した後、パッチ適用結果の成否を判定し（ステップ１６０２）、処理を分岐する（ステップ１６０３）。パッチの適用に成功した場合には、その適用結果を成功のステータスにして、ログファイルなどと共にパッチ適用ツール１２０に通知し（ステップ１６０４）、処理を終了する。パッチの適用に失敗した場合には、パッチの修正内容をロールバックした後（ステップ１６０５）、その適用結果を失敗のステータスにしてエラーメッセージなどの情報とあわせパッチ適用ツール１２０に通知し（ステップ１６０４）、処理を終了する。
【００３７】
次に、図１のシステムにおいて、既にサーバ１１１に登録済みのパッチをクライアント１０１からの指示により、顧客システム１４１へ個別に適用する例を説明する。
【００３８】
図１７は、既にサーバ１１１に登録済みのパッチを、クライアント１０１からの依頼により、顧客システム１４１へ個別に適用する際の、クライアント１０１、サーバ１１１、および顧客システム１４１の動きを示したイベントダイアグラムである。
【００３９】
クライアント１０１から、パッチ適用情報入出力手段１０２を用いて、パッチ適用ツール１２０に、パッチＩＤ、顧客ＩＤ、およびアプリケーション名を引数として渡して既存パッチの適用を指示する。サーバ１１１は、その引数を受け取り、既存パッチ適用機能１２３を呼び出す。既存パッチ適用機能１２３は、入力されたパッチが既に適用されているかを確認し、適用されていなければ、パッチ管理ツール１３０内のパッチ情報検索機能１３２を呼び出して、入力されたパッチＩＤに関するパッチ詳細情報を入手する。また、既存パッチ適用機能１２３は、入力された顧客ＩＤをキーにして顧客システム情報格納部１２９から検索した顧客システム情報、および入手したパッチ詳細情報を元に、パッチの顧客システム１４１への適用可否を調査する。適用可能であるとき、既存パッチ適用機能１２３は、包含関係検索機能１２４を呼び出し、未適用かつ最新の後継パッチを入手した後、クライアント１０１に修正内容を送付し、パッチ適用可否の応答を受ける。
【００４０】
クライアント１０１から適用可の応答を受けたら、既存パッチ適用機能１２３は、前後関係検索機能１２５を呼び出し、未適用またはエラー終了の前提および事後パッチを正しい順番でリストした適用パッチリストを完成させる。続いて、既存パッチ適用機能１２３は、パッチ送付機能１２６を呼び出して、完成した適用パッチリストを渡し、顧客システム１４１に対するパッチの適用を行う。最後に、パッチ送付機能１２６から受けた適用結果をクライアント１０１に通知し、処理を終了する。
【００４１】
図１８は、図１７の手順における既存パッチ適用機能１２３の処理の流れを示すフローチャートである。既存パッチ適用機能１２３は、クライアント１０１より入力された顧客ＩＤ、パッチＩＤ、およびアプリケーション名を入手し、まず、パッチＩＤをキーとしてパッチ適用履歴情報格納部１２７より当該顧客システムにおけるパッチの適用履歴を検索し（ステップ１８０１）、既に登録（適用）済みで正常終了しているかを判断する（ステップ１８０２）。正常に適用済みである場合は、その旨を示すメッセージを生成してクライアント１０１に送付し（ステップ１８１５）、処理を終了する。
【００４２】
ステップ１８０２で当該パッチＩＤのパッチが未適用または適用結果がエラーだった場合は、パッチ管理ツール１３０のパッチ情報検索機能１３２にそのパッチのパッチ詳細情報の提供を依頼して入手する（ステップ１８０３）。続いて顧客システム情報格納部１２９から、処理の始めに入手した顧客ＩＤをキーとして顧客システム情報を検索する（ステップ１８０４）。該当する顧客システム情報があれば（ステップ１８０５）、その顧客システム情報のアドレス情報をアドレスにもつパッチ適用リストを生成する（ステップ１８０６）。次に、パッチ詳細情報内の排他条件を検索し（ステップ１８０７）、入手した顧客システム情報とつきあわせて、当該パッチが当該顧客システムに適用可能かどうか判断する（ステップ１８０８）。適用可能と判断された場合には、包含関係検索機能１２４を呼び出し、未適用で最新の後継パッチを戻り値として受け取る（ステップ１８０９）。
【００４３】
更に、既存パッチ適用機能１２３は、パッチ管理ツール１３０内のパッチ情報検索機能１３２を呼び出して、包含関係検索機能１２４から受けたパッチＩＤに関するパッチ詳細情報を入手し（ステップ１８１０）、修正内容をクライアント１０１に送付してパッチ適用可否の応答を受ける（ステップ１８１１）。更に、前後関係検索機能１２５を呼び出して、未適用またはエラー終了した前提および事後パッチを正しい順番で追加した適用パッチリストを完成させる（ステップ１８１２）。
【００４４】
完成した適用パッチリストを受け取った既存パッチ適用機能１２３は、パッチ送付機能１２６を呼び出して適用パッチリストを渡し、顧客システム１４１に対するパッチの適用を実行する（ステップ１８１３）。最後に、パッチ送付機能１２６からの戻り値である適用結果をクライアント１０１に通知し（ステップ１８１４）、処理を終了する。なお、ステップ１８０５で該当する顧客システム情報が登録されていなかった場合、またはステップ１８０８で当該パッチが当該顧客システムに適用可能でなかった場合は、それぞれ、その旨を示すメッセージを生成してクライアント１０１に送付し（ステップ１８１５）、処理を終了する。
【００４５】
上記実施の形態によれば、パッチの詳細情報を提供元であるベンダーがバイナリ化して管理しているため、パッチを適用する際にパッチ適用時の排他条件や前後関係などの前提条件を自動的に判断し、クライアントから依頼されたパッチの他に必要なパッチがあれば全て一括して適用することができる。これにより、ユーザの負荷を軽減することができ、ユーザによるパッチの誤適用を防ぎ、パッチを正確に適用することができる。
【００４６】
また、上記実施の形態によれば、パッチ適用時に包含関係を確認し、後継パッチがあれば後継パッチを適用することができる。また、ベンダーからパッチが提供された場合には、該当システムを検索し自動的に適用される。これにより、常に最新版のパッチを適用することができる。さらに、他の態様では、クライアントから顧客システムに対して遠隔操作でパッチを適用することができるため、ベンダーが顧客システムに対するパッチの適用管理を全面的に請け負うと言ったサービスを実施することができる。
【００４７】
【発明の効果】
以上説明したように、本発明によれば、パッチの適用時に必要となる、ベンダー提供のパッチ実行形式や適用前提条件、さらにシステム構成などの詳細な情報や顧客システムの構成情報、およびパッチの適用ログを統合管理することにより、パッチの適用可否を自動判別し、該当する顧客システムにパッチを自動的に適用してユーザの負荷を軽減することができる。
【図面の簡単な説明】
【図１】本発明を適用したパッチ適用管理システムの構成図である。
【図２】顧客システムに対して新規に登録されたパッチを適用する場合のイベントダイアグラムを示す図である。
【図３】適用パッチリストの例を示す図である。
【図４】パッチ情報登録機能の処理の流れを示すフローチャート図である。
【図５】パッチ実行形式登録機能の処理の流れを示すフローチャート図である。
【図６】パッチ実行形式情報に含まれるデータの一例を示す図である。
【図７】新規パッチ適用機能の処理の流れを示すフローチャート図である。
【図８】顧客システム情報に含まれるデータの一例を示す図である。
【図９】前後関係検索機能の処理の流れを示すフローチャート図である。
【図１０】パッチ適用履歴情報に含まれるデータの一例を示す図である。
【図１１】パッチ詳細情報に含まれるデータの一例を示す図である。
【図１２】包含関係検索機能の処理の流れを示すフローチャート図である。
【図１３】パッチ情報検索機能の処理の流れを示すフローチャート図である。
【図１４】パッチ情報に含まれるデータの一例を示す図である。
【図１５】パッチ送付機能の処理の流れを示すフローチャート図である。
【図１６】パッチ適用実行機能の処理の流れを示すフローチャート図である。
【図１７】既にサーバに登録されたパッチの適用を、クライアントの依頼により行う場合のイベントダイアグラムを示す図である。
【図１８】既存パッチ適用機能の処理の流れを示すフローチャート図である。
【符号の説明】
１０１…クライアント
１１１…サーバ
１２０…パッチ適用ツール
１２１…新規パッチ適用機能
１２２…パッチ実行形式登録機能
１２３…既存パッチ適用機能
１２４…包含関係検索機能
１２５…前後関係検索機能
１２６…パッチ送付機能
１２７…パッチ適用履歴情報格納部
１２８…パッチ実行形式情報格納部
１２９…顧客システム情報格納部
１３０…パッチ管理ツール
１３１…パッチ情報登録機能
１３２…パッチ情報検索機能
１３３…パッチ詳細情報格納部
１３４…パッチ格納部
１４１…顧客システム
１４２…パッチ適用実行機能
１５１…インターネット
【図１】
2004102379.tif 000003
【図２】
2004102379.tif 000004
【図３】
2004102379.tif 000005
【図４】
2004102379.tif 000006
【図５】
2004102379.tif 000007
【図６】
2004102379.tif 000008
【図７】
2004102379.tif 000009
【図８】
2004102379.tif 000010
【図９】
2004102379.tif 000011
【図１０】
2004102379.tif 000012
【図１１】
2004102379.tif 000013
【図１２】
2004102379.tif 000014
【図１３】
2004102379.tif 000015
【図１４】
2004102379.tif 000016
【図１５】
2004102379.tif 000017
【図１６】
2004102379.tif 000018
【図１７】
2004102379.tif 000019
【図１８】
2004102379.tif 000020