説明

予防保守装置および予防保守方法

【課題】本発明は、顧客システムのソフトウェアに対する予防保守サービスにおいて、顧客システムの稼動環境に応じたパッチ情報を提供し、更に適用する時間帯を提供することで、顧客の負担を低減する。
【解決手段】予防保守を行うソフトウェアサポートシステム120では、パッチ情報DB131、パッチ適用時間見積DB135、顧客運用情報DB151、および顧客別ログDB156から、顧客システム110の稼動環境に応じた推奨パッチを判断し、パッチ適用に必要な時間を見積した情報を保持する。また、顧客システム110の未稼働時間を予測し、パッチ適用に適切な時間帯の提示を行う。更に、前記推奨パッチの修正箇所と類似したパッチ情報を提供することで、顧客側での情報収集・整理の負荷を軽減させることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ベンダから提供される修正情報や修正内容をもとにして顧客システムで使用されているソフトウェアプログラムの改良版(パッチ等)を提供することを行う、顧客システムの予防保守の技術に関する。
【背景技術】
【0002】
顧客に導入されているシステム環境(主に、使用されているCPU(Central Processing Unit)の種類やDiskの種類、で定まる)は、システムの多様化に伴って、複数のソフトウェアがインストールされており、かつ、定期的に個々のソフトウェアの修正パッチが必要となることが多いものであり、パッチの適用にあたり日々システム管理者が多くの時間を割いていたのが現状である。
【0003】
従来のパッチ管理・適用システムは、顧客システムのパッチ適用履歴(顧客システム情報)とソフトウェアベンダからのパッチ(ベンダ提供パッチ情報)による修正内容などで重要か否かを判断し、抽出して対象パッチを提示していた(特許文献1参照)。
【特許文献1】特開2005−99967号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
前述したパッチ管理および予防保守システムによる従来技術では、各ソフトウェア製品の適用前提条件を含めたベンダ提供パッチ情報を随時収集・保持し、ベンダ提供パッチ情報と顧客システム情報に基づいて現在どのパッチが適用されており、更新する必要があるかなどのチェックを行った後、ベンダ提供パッチ情報により重要度を判定し、推奨するパッチ情報を限定して顧客に対して適宜提供を行っていた。しかし、顧客が実際使用していない操作およびシステム環境で必要ないパッチを適用するなど実際の稼動環境に応じた対応ができておらず、顧客側で情報を整理・把握する時間や工数の増大はもちろん、無駄なパッチを適用することでハードディスク使用の無駄になる。
【0005】
さらに重大な不具合が対策されたパッチで修正されたソースと同じモジュール上の不具合修正を持つ類似のパッチの存在や、抽出されたパッチを適用する時間に関する情報が提供されていないため、事前にパッチで修正された内容と同じパッチの調査、確認や適用に必要な時間の確認に時間や工数をかけていた。
【0006】
そこで本発明では、顧客が本当に必要とし、かつ時間的制限に対しても適用可能なパッチを顧客に提供し、顧客のパッチ選定の負荷を軽減することを目的とする。
【課題を解決するための手段】
【0007】
前記目的を達成するために、パッチの重要度などの分別を含むベンダ提供のパッチの詳細情報や顧客システムの構成情報やパッチ適用履歴情報に加え、個々の顧客システムの稼動ログ情報から対策された不具合の発生条件の該当度を提示し、さらに対策されたソースと同じモジュール上の不具合修正を持つ類似パッチの情報を提示することにより、顧客に対するパッチ情報の提供をアシストする機能を備えることで、顧客が本当に必要なパッチだけを抽出し、提供することができるようにする。
また、パッチ適用時間の見積機能を付加し、今後の停止時間帯を予測する機能を備えることで、顧客が適用したいパッチがあてられる時間帯を提供することができるようにする。
【0008】
具体的には、まず、ソフトウェアサポートシステムで、各ソフトウェア製品の適用前提条件、不具合の修正箇所、発生条件を含めたベンダ提供パッチ情報を随時収集・保持し、各顧客システムにあるパッチ時間測定ツールから、パッチ適用にかかった時間、システム構成、システム環境の顧客システム情報を随時収集・保持し、さらにパッチ適用履歴、顧客システムの稼動ログ情報により詳細な顧客システム情報を顧客情報管理機能から収集・保持する。また、パッチ見積算出機能により、パッチ適用にかかる時間を予測し、また未稼働時間予測機能により、収集した顧客システム情報から顧客システムの未稼働時間を予測する。
次に、このベンダ提供パッチ情報と顧客システム情報に基づいて、現在どのパッチが適用されており、更新する必要がある否かについて重要度の判定を行い、その後、パッチで修正された不具合の発生条件と収集したシステムの稼動ログ情報により該当度の度合いを判定し、更にベンダ提供パッチ情報に基づいて、不具合の修正箇所が同じである類似パッチを検索してパッチの選定を行う。その後、顧客が指定する重要度や該当度などから推奨するパッチ情報を限定し、顧客にとって本当に必要としているパッチ情報を、パッチが適用可能な停止時間帯の情報とあわせて提供することで、顧客側での情報収集および整理の負荷を軽減させることができる。
【0009】
これにより、ベンダ提供パッチ情報、顧客システム情報、および稼動ログ情報から顧客システムにとって重要度、該当度の観点から適用すべきパッチを抽出し、また同じ修正箇所をもつ類似パッチ情報を提供することで、ユーザにかかるパッチ選定の負荷を軽減できる。
また、パッチ適用にかかる予想時間と、今後予定されるシステム停止時間にパッチを適用可能か否かの情報を提供することで、パッチ適用に関するスケジュールを簡易化することができる。
なお、詳細は後記する。
【発明の効果】
【0010】
本発明によれば、顧客が本当に必要とし、かつ時間的制限に対しても適用可能なパッチを顧客に提供し、顧客のパッチ選定の負荷を軽減することができる。
【発明を実施するための最良の形態】
【0011】
以下、本発明の実施の形態を、図面を用いて詳細に説明する。
図1Aは、顧客システムの予防保守を実現するシステム全体の構成図である。図1Aにおいて、ベンダが使用するソフトウェアベンダサーバ(ベンダサーバ)100、ベンダの顧客(ユーザ)が使用する顧客システム110、予防保守を行うサポート担当者が使用するソフトウェアサポートシステム(予防保守装置)120、提供されたパッチの中から希望するパッチを選定するユーザが使用するクライアント210は、インターネット1を介して接続されている。ソフトウェアベンダサーバ100、顧客システム110、クライアント210は、それぞれ複数あってもよい。
【0012】
顧客システム110は、パッチ適用の管理対象となる管理対象システム111(以下、単に「システム」と称する場合がある)と、管理対象システム111にパッチを適用するのにかかった時間を測定し、その時のシステム構成と環境を収集するパッチ時間測定ツール112を備えている。管理対象システム111とパッチ時間測定ツール112は複数あってもよい。
【0013】
パッチ時間測定ツール112は、管理対象システム111にパッチが適用されると、管理対象システム111のCPU名とDisk名を含むハードウェア情報と、あるパッチと同時にインストールした製品名(パッチ)とそのバージョン、少なくとも適用か削除かを示す更新種別、さらに更新日時等を含む情報を後述のパッチ見積算出機能140(図1B参照)へ送付する。
【0014】
ソフトウェアサポートシステム120は、パッチ情報管理システム130、顧客情報管理システム150、パッチ抽出管理システム160、パッチ適用時間帯リクエスト機能170、再リクエスト機能180、パッチ適用時間帯の抽出機能190、パッチ情報提供機能200を備えている。
【0015】
図1Bは、パッチ情報管理システム130の機能構成図である。
パッチ情報管理システム130は、ソフトウェアベンダサーバ100が提供しているパッチ情報を保持するパッチ情報DB(Data Base)131と、パッチ適用に必要な時間を保持するパッチ適用時間見積DB135とを利用し、各ソフトウェアベンダのパッチ情報を収集し、パッチ適用に必要な時間の見積を行うためのパッチ情報登録機能139とパッチ見積算出機能140を備えている管理システムである。
【0016】
パッチ情報DB131は、パッチを適用する際にソフトウェアベンダサーバ100から抽出したパッチ情報を格納するデータベースであり、ソフトウェアベンダが提供している情報を格納したパッチ情報テーブル132(ベンダ提供パッチ情報)、不具合の修正箇所の情報を格納した修正箇所テーブル133、パッチで解決された不具合の発生条件の情報を格納した発生条件テーブル134がある。
【0017】
パッチ適用時間見積DB135は、顧客システム110のパッチ時間測定ツール112から抽出したパッチ適用の情報を格納するデータベースであり、個々のパッチを適用する際に必要であった実績値を格納したパッチ適用時間見積テーブル136と、適用したパッチおよび適用したときのハードウェア環境の組み合わせ別実績値を格納したパッチ適用パターン別時間見積テーブル137と、そのパッチ組み合わせ内容(製品名およびバージョン)を格納した同時インストール製品テーブル138とがある。
【0018】
図1Cは、顧客情報管理システム150の機能構成図である。
顧客情報管理システム150は、各顧客の管理対象システム111から収集した適用済みのパッチ情報と運用情報、さらにパッチ適用に関するリクエスト情報を保持する顧客運用情報DB151と、稼動ログを顧客別に保持する顧客別ログDB156を利用し、各顧客の管理対象システム111のパッチ情報を収集するための顧客情報管理機能157と、各顧客の管理対象システム111の未稼働時間帯を予測する未稼働時間予測機能158と、予測された未稼働時間帯を抽出する未稼働時間帯抽出機能159とを備えている管理システムである。
【0019】
顧客運用情報DB151は、各顧客システム110に適用されているパッチ情報と管理対象システム111向けに予測された未稼働時間帯の情報、および顧客がパッチ適用において希望した時間帯の情報を格納するデータベースであり、顧客システム110に既に適用されている製品(パッチ)を格納した顧客パッチ情報テーブル(顧客適用パッチ情報)152、顧客システム110の稼動実績から未稼働時間帯の情報を格納した顧客運用情報テーブル153、顧客が指定したパッチの検索条件および希望時間帯を格納した顧客リクエスト情報テーブル154と希望時間帯テーブル155がある。
【0020】
顧客別ログDB(ログ情報)156は、各顧客システム110の管理対象システム111から収集した稼動実績ログを格納するデータベースであり、管理対象システム111の稼動、停止の履歴やデータの追加、変更、削除等の変更履歴情報等が格納されており、後述する顧客情報管理機能157により定期的に入手し、登録する。例えば、稼動実績ログにはstartupコマンドのようなデータベース製品を起動するコマンドや、shutdownコマンドのようなデータベース製品を停止するコマンドの履歴が日時と共に格納されており、またalterコマンドやdeleteコマンドのようなデータ操作するようなコマンドの履歴が日時と共に格納されているため、稼動実績や操作実績も格納されている。
【0021】
図1Dは、パッチ抽出管理システム160の機能構成図である。
パッチ抽出管理システム160は、ソフトウェアベンダから新たにアラート情報(新たなパッチが公開されたことを示す情報)が提供され、サポート担当者によってパッチ情報DB131の更新が行われた際に、パッチアドバイス処理機能165により、その更新された情報が顧客システム110に適用すべきか否かを、重要度情報DB164やパッチ情報DB131から自動的に分別し、また、そのパッチと修正箇所が類似した推奨すべき類似パッチ、および顧客別ログDB156から発生条件の該当度の情報を含めて、その更新された情報をリコメンデーションDB161に保持するシステムである。また顧客要求がされた際に、パッチ適用時間帯の抽出機能190により、顧客が選択したパッチが適用できる推奨時間帯をパッチ適用推奨時間帯テーブル163に保持するシステムでもある。
【0022】
リコメンデーションDB161は、パッチアドバイス処理機能165により抽出されたパッチ情報、およびパッチ適用時間帯の抽出機能190により抽出されたパッチ適用の推奨時間帯を格納しているデータベースであり、その中にはリコメンデーションテーブル162とパッチ適用推奨時間帯テーブル163がある。
【0023】
重要度情報DB164は、システムの障害の内容によってランク付けされた情報が格納されているデータベースである。この情報は、具体的には、障害による影響度の大きさによって数値化した重要度と、障害内容のキーワードが記載されている障害内容キーワードとが対応付けられたテーブルとして格納されている。重要度は、ソフトウェアサポートシステム120にて、例えばあらかじめ「1」、「2」の2段階に分けられている。重要度1は、「OSパニック」、「データ損失」、「データ破壊」、「システムクラッシュ」、「ハング」、といった深刻な障害を示し、それ以外は重要度2とする。障害内容キーワードには、日本語だけではなく英語でのキーワードも含んでおり、それも検索対象とする。例えば、「OSパニック」と「OS Panic」は同等とする。
【0024】
パッチ情報登録機能139により、パッチ情報DB131のパッチ情報テーブル132、修正箇所テーブル133、発生条件テーブル134で更新が発生したパッチ情報をパッチ適用時間見積DB135のパッチ適用時間見積テーブル136、パッチ適用パターン別時間見積テーブル137、同時インストール製品テーブル138へ登録し、顧客システム110のパッチ時間測定ツール112で抽出した、実際に行ったパッチ適用時の情報をパッチ見積算出機能140で受信し、パッチ適用時間見積DB135のパッチ適用時間見積テーブル136、パッチ適用パターン別時間見積テーブル137、同時インストール製品テーブル138へ今後のパッチ適用時間を見積するために必要な情報を蓄える。
【0025】
次に、定期的に顧客情報管理機能157が起動し、対象の顧客システム110にインストールされているパッチ情報を顧客運用情報DB151の顧客パッチ情報テーブル152に格納し、稼動実績や操作実績の情報を顧客別ログDB156へ格納する。
【0026】
次に、定期的に未稼働時間予測機能158が起動し、顧客別ログDB156から未稼働時間帯を解析し、解析結果を顧客運用情報テーブル153に格納する。
【0027】
次に、定期的にパッチアドバイス処理機能165が起動し、パッチ情報テーブル132と顧客パッチ情報テーブル152から、まだ該当する顧客システム110にインストールされていない、かつ重要と判断したパッチを抽出し、リコメンデーションテーブル162へ格納する。
【0028】
その後、抽出したパッチにより修正されたモジュールと同じ修正モジュールをもつパッチを修正箇所テーブル133から抽出し、抽出したパッチ(類似パッチ)をリコメンデーションテーブル162へ格納する。
【0029】
次に抽出し、リコメンデーションテーブル162へ格納されたパッチに対して、修正された不具合の発生条件を発生条件テーブル134から抽出し、顧客別ログDB156からどの程度該当するかを検索し、その結果をリコメンデーションテーブル162に反映する。
【0030】
ユーザがクライアント210からパッチ情報提供機能200を起動し、顧客名とシステム名を指定すると、未稼働時間帯抽出機能159により顧客運用情報テーブル153から指定された顧客名とシステム名に該当する未稼働時間帯を抽出し、今後予想される未稼働時間帯をユーザへ表示する。
【0031】
次にユーザがクライアント210から抽出対象のパッチの条件と、希望する未稼働時間帯を指定すると、パッチ適用時間帯リクエスト機能170およびパッチ適用時間帯の抽出機能190により、指定された条件内容を顧客リクエスト情報テーブル154、および希望時間帯テーブル155へ格納し、またリコメンデーションテーブル162とパッチ適用時間見積DB135から該当パッチを抽出、かつ該当パッチを適用するために必要な時間を算出し、更に該当パッチを適用することが可能な時間帯を検索し、その結果をパッチ適用推奨時間帯テーブル163へ格納して、ユーザへ表示する。
【0032】
また、抽出結果のパッチの中から特定のパッチをユーザが指定すると、再リクエスト機能180およびパッチ適用時間帯の抽出機能190により、パッチ適用時間見積DB135から該当パッチを適用するために必要な時間を再度算出し、該当パッチを適用ことが可能な時間帯を検索し、その結果をパッチ適用推奨時間帯テーブル163へ格納して、ユーザへ表示する。
【0033】
なお、ソフトウェアベンダサーバ100、顧客システム110、ソフトウェアサポートシステム120、クライアント210は、それぞれ入力部、表示部、通信部、制御部、記憶部、といったハードウェア構成を備えたコンピュータである。また、前記コンピュータで行われる処理は、それぞれの記憶部に格納されたプログラム(処理部;主に、パッチ情報登録機能139等の機能をいう)が記憶領域にロードされ、それぞれの制御部により実行されることにより、前記コンピュータ上に具現化される各処理部による実行とされるものである。また、各プログラムは予め記憶部に格納されても良いし、他の記憶媒体または通信媒体(ネットワークまたはネットワークを伝搬する搬送波)を介して、必要なときに導入されても良い。
【0034】
次に、パッチ情報システム130について詳細に説明する。
パッチ情報テーブル132は、図2に示すように、製品名201、製品におけるパッチバージョン情報を表すバージョン202、パッチ適用に依存関係がない製品(パッチ)のカテゴリを示す製品カテゴリ203、ベンダが提供している該当パッチのサポート契約者(つまり、顧客)に対するダウンロード回数を比率として表すダウンロード実績204、該当パッチについて前提となるパッチがある場合はそれを示す前提パッチ205、事後に適用する必要のあるパッチ情報がある場合はその情報を表す後継パッチ206、該当パッチが修正された日付を表す修正日207、パッチの概要およびパッチ番号やキーワード等が記載されている修正内容208、ソフトウェアベンダがパッチの適用に必要な時間(分)を目安として定義した適用時間209、ソフトウェアベンダがパッチの削除に必要な時間(分)を目安として定義したリムーブ時間210、パッチで修正されたモジュールの一覧が格納されている修正箇所テーブル133の外部キーを表す修正箇所211、パッチによって対策された不具合の発生条件が格納されている発生条件テーブル134の外部キーを表す発生条件212、その発生条件の個数を表す発生条件数213が定義されている。ソフトウェアベンダサーバ100でパッチが新たに公開されたとき、そのパッチの詳細情報を入手したのち、サポート担当者がパッチ情報テーブル132に格納すべき情報を登録する。
【0035】
修正箇所テーブル133は、図3に示すように、パッチ情報テーブル132の修正箇所211からのリンク元を表す修正箇所キー301とパッチで修正されたモジュール名(ソース名)を表すモジュール名302が定義されており、パッチ情報テーブル132にある各パッチの修正されたモジュール名が登録されている。ソフトウェアベンダサーバ100でパッチが新たに公開されたとき、そのパッチの詳細情報を入手したのち、サポート担当者がパッチ情報テーブル132と同じタイミングで修正箇所テーブル133に格納すべき情報を登録する。
【0036】
発生条件テーブル134は、図4に示すように、パッチ情報テーブル132の発生条件212からのリンク元を表す発生条件キー401、パッチで対策された不具合の種類を表すカテゴリ402、パッチで対策された不具合の発生条件の該当部分(対象のメモリ、ファイル、パラメータなど)を表す該当部分403、パッチで対策された不具合の発生条件の再現アクション名(コマンド名)を表すアクション404、アクション404のアクション名によって変更前の値の範囲の最小値を表す変更前min405、変更前の値が固定値か(「=」)、あるいは範囲があるか(「<」)を表す符号B406、変更前の値の範囲の最大値を表す変更前max407、アクション404のアクション名によって変更後の値の範囲の最小値を表す変更後min408、変更後の値が固定値か(「=」)、あるいは範囲があるか(「<」)を表す符号A409、変更後の値の範囲の最大値を表す変更後max410が定義されており、パッチ情報テーブル132にある各パッチで修正された不具合の発生条件の情報が登録されている。
【0037】
例えば、図2に示すパッチ情報テーブルの製品名201の「A1製品」、かつ、バージョン202の「08−04」について、このパッチによって修正されたモジュール名は、図3の修正箇所キー301が修正箇所211の「10001」と同じ値をもつ列に該当する、モジュール名302の「AAAA.c」と「BBBB.c」であることを示している。また、同製品の発生条件は、図4の発生条件キー401が発生条件212の「A0001」と同じ値を持つ行に該当し(符号411、412参照)、「Parameter_A」を「alter」で「200」から「300」の値を「500」を超える値へ変更し、また、「Table_A」を「delete」することで、「ハング」が発生することを示している。ソフトウェアベンダサーバ100でパッチが新たに公開されたとき、そのパッチの詳細情報を入手したのち、サポート担当者がパッチ情報テーブル132と同じタイミングで発生条件テーブル134に格納すべき情報を登録する。
【0038】
パッチ適用時間見積テーブル136は、図5に示すように、製品名501、製品におけるパッチバージョン情報を表すバージョン502、パッチ適用の実績値の平均(分)を表す適用平均時間503、パッチ適用の実績値の最大時間(分)を表す適用最大時間504、パッチ適用の実績回数を表す適用累計回数505、パッチ適用の実績値の累計時間(分)を表す適用累計時間506、パッチ削除の実績値の最大時間(分)を表すリムーブ時間507が定義されている。これらの値は、後述するパッチ情報登録機能139とパッチ見積算出機能140により、自動的に過去に適用したパッチの実績値が登録される。
【0039】
パッチ適用パターン別時間見積テーブル137は、図6に示すように、同時にインストールした製品名(パッチ)が格納されている同時インストール製品テーブル138の外部キーを表す同時インストール番号601、ハードウェア環境別に適用したパッチであるパターン別パッチの適用の実績値の平均(分)を表す適用平均時間602、前記パターン別パッチ適用の実績値の最大時間(分)を表す適用最大時間603、前記パターン別パッチ適用の実績回数を表す適用累計回数604、前記パターン別パッチ適用の実績値の累計時間(分)を表す適用累計時間605、前記パターン別パッチ削除の実績値の最大時間(分)を表すリムーブ時間606、前記パターン別パッチ適用および削除を行った際のCPU名を表すCPU名607、前記パターン別パッチ適用および削除を行った際のDisk名を表すDisk名608が定義されている。これらの値は、後述するパッチ見積算出機能140により情報が自動的に適用したパッチの実績値が同時にインストールした製品と環境の組み合わせ別に登録される。
【0040】
同時インストール製品テーブル138は、図7に示すように、パッチ適用パターン別時間見積テーブル137の同時インストール番号601からのリンク元を表す同時インストールキー701、同時にインストールした製品を表す製品名702、製品におけるパッチバージョン情報を表すバージョン703が定義されており、あるパッチと同時にインストールされた製品とバージョンが登録されている。
【0041】
例えば、図6の同時インストール番号601が「B0001」のパッチ適用の組み合わせ実績値について、同時にインストールした製品およびバージョンは図7の同時インストールキー701と同じ値をもつ行に該当し(符号704、705参照)、「P1製品」の「02−01」と、「Q2製品の「03−10」を同時にインストールしたことを示している。これらは、後述するパッチ見積算出機能140により情報が自動的にパッチ適用パターン別時間見積テーブル137と同じタイミングで登録される。
【0042】
図8は、パッチ情報登録機能139についての処理手順を示すフローチャートである。図8に示すように、この処理は、ソフトウェアベンダから新しいパッチ情報が提供され、サポート担当者によってパッチ情報テーブル132への追加・更新の指示が行われたときに開始する。まず、追加・更新されたパッチがパッチ適用時間見積テーブル136にパッチの有無や更新されたものであるか否か、つまりすでにパッチ適用時間見積テーブル136に登録されているか否かを判定する(ステップS801)。
【0043】
パッチが無い場合、および更新があった場合(ステップS801でNo)、該当パッチ、夫々の前提パッチおよび後継パッチを収集し(ステップS802)、前提パッチおよび後継パッチを含めた該当パッチの情報を詳細情報としてパッチ適用時間見積テーブル136に追加し、また前提パッチおよび後継パッチについては詳細情報をパッチ情報テーブル132、修正箇所テーブル133、発生条件テーブル134へ登録をする(ステップS803)。
その際、パッチ情報テーブル132の適用時間209の値をパッチ適用時間見積テーブル136の適用平均時間503、適用最大時間504、適用累計時間506へ登録し、適用累計回数505は1と登録する。またパッチ情報テーブル132のリムーブ時間210の値は、適用見積テーブル136のリムーブ時間507へ登録する。
【0044】
一方、ステップS801の判定で、パッチが存在し、更新がない場合は(ステップS801でYes)、本処理を終了する。
【0045】
図9は、パッチ見積算出機能140についての処理手順を示すフローチャートである。図9に示すように、この処理は、パッチ時間測定ツール112からの受信したときに開始する。まず、後述するパッチ適用時間見積関数をコールして処理を引き渡す(ステップS901)。その後、後述するパッチ適用パターン別時間見積関数をコールして処理を引き渡し(ステップS902)、本処理を終了する。
【0046】
図10は、パッチ見積算出機能140からコールされるパッチ適用時間見積関数の処理手順を示すフローチャートである。図10に示すように、パッチ見積算出機能140から引き継がれた際、パッチ時間測定ツール112から送られた情報がパッチ適用の情報(適用時間の更新)であるか否かを判定する(ステップS1001)。
【0047】
パッチ適用の情報でない場合は(ステップS1001でNo)、ステップS1007の処理へ移る。ステップS1001で、パッチ適用の情報である場合(ステップS1001でYes)、測定結果(パッチ時間測定ツール112による処理の結果)がパッチ適用時間見積テーブル136の該当パッチの適用最大時間504の値と比較して大きいか否かを判定する(ステップS1002)。大きい場合は(ステップS1002でYes)、測定結果が適用最大時間504の値の2倍以上か否かを判定する(ステップS1003)。測定結果が2倍以上の場合は(ステップS1003でYes)、何らかの理由による異常値と判断してパッチ適用時間見積テーブル136を更新せずに本処理を終了する(パッチ見積算出機能140へ戻る)。
【0048】
ステップS1002で、パッチ適用時間見積テーブル136の該当パッチの適用最大時間504の値と比較して大きくない場合は(ステップS1002でNo)、測定結果が適用平均時間503の値(平均時間)の半分以下か否かを判定する(ステップS1004)。半分以下の場合は(ステップS1004でYes)、何らかの理由による異常値と判断してパッチ適用時間見積テーブル136を更新せずに本処理を終了する。一方、ステップS1004で、測定結果が半分以下でない場合は(ステップS1004でNo)、ステップS1006の処理へ移る。
【0049】
ステップS1003で、測定結果が適用最大時間504の2倍以上でない場合(ステップS1003でNo)、パッチ適用時間見積テーブル136の適用最大時間504をパッチ時間測定ツール112から送られた時間(測定結果)に更新する(ステップS1005)。次に、パッチ時間測定ツール112から送られた時間を適用累計時間506に加算し、かつ、適用累計回数505に1を加算し、さらに適用累計時間506を適用累計回数505で除算した値を、平均時間として適用平均時間503へ更新する(ステップS1006)。
【0050】
次に、パッチ時間測定ツール112から送られた情報がパッチ削除の情報(削除時間の更新)であるか否かを判定する(ステップS1007)。パッチ削除の情報でない場合は(ステップS1007でNo)、本処理を終了する。ステップS1007で、パッチ削除の情報である場合(ステップS1007でYes)、測定結果がパッチ適用時間見積テーブル136の該当パッチのリムーブ時間507の値と比較して大きいか否か判定する(ステップS1008)。
【0051】
ステップS1008で、大きい場合は(ステップS1008でYes)、測定結果がリムーブ時間507の値の2倍以上であるか否かを判定する(ステップS1009)。ステップS1009で、測定結果が2倍以上でない場合は(ステップS1009でNo)、パッチ適用時間見積テーブル136のリムーブ時間507をパッチ時間測定ツール112から送られた時間(測定結果)に更新し(ステップS1010)、パッチ見積算出機能140へ処理を戻して本処理を終了する。
【0052】
ステップS1008で、測定結果が大きくない場合(ステップS1008でNo)、および、ステップS1009で、測定結果が2倍以上の場合は(ステップS1009でYes)、何らかの理由による異常値として処理を終了する。
図10のフローにより、他の実績値と比較して異常値だった場合を排除し、パッチの適用や削除にかかった時間の実績値を蓄積する。
【0053】
図11(図11Aと図11Bの総称)は、パッチ見積算出機能140からコールされるパッチ適用パターン別時間見積関数の処理手順を示すフローチャートである。図11に示すように、パッチ見積算出機能140から引き継がれた際、パッチ時間測定ツール112から送られた情報がパッチ適用の情報(適用時間の更新)であるか否かを判定する(ステップS1101)。
【0054】
パッチ適用の情報であった場合(ステップS1101でYes)、測定した環境(パッチ時間測定ツール112による処理の結果:測定結果)がパッチ適用パターン別時間見積テーブル137のCPU名607とDisk名608、および同時インストール製品テーブル138の製品名702とバージョン703と同じ適用パターンであるか否か、つまり測定した環境と同じ適用パターンがあるか否かを判定(ステップS1102)。一方、ステップS1101でパッチ適用の情報でない場合は(ステップS1101でNo)、ステップS1109の処理へ移る。
【0055】
ステップS1102で、同じ適用パターン(組み合わせ)がない場合は(ステップS1102でNo)、測定結果(適用時間)および組み合わせをパッチ適用パターン別時間見積テーブル137と同時インストール製品テーブル138へ追加し(ステップS1103)、本処理を終了する(パッチ見積算出機能140へ戻る)。
【0056】
一方、ステップS1102で同じ適用パターン(組み合わせ)がある場合(ステップS1102でYes)、測定結果が適用最大時間603の値と比較して大きいか否かを判定する(ステップS1104)。ステップS1104で、大きい場合は(ステップS1104でYes)、測定結果が適用最大時間603の2倍以上か否かを判定し(ステップS1105)、大きくない場合は(ステップS1104でNo)、測定結果が適用平均時間602の値(平均時間)の半分以下か否かを判定する(ステップS1106)。
【0057】
ステップS1105で、測定結果が適用最大時間603の2倍以上でない場合(ステップS1105でNo)、パッチ適用パターン別時間見積テーブル137の適用最大時間603をパッチ時間測定ツール112から送られた時間(測定結果)に更新する(ステップS1107)。ステップS1105の処理で2倍以上の場合は(ステップS1105でYes)、何らかの理由による異常値と判断してパッチ適用パターン別時間見積テーブル137と同時インストール製品テーブル138を更新せずに本処理を終了する。
【0058】
ステップS1107で、適用最大時間603を更新した後、パッチ時間測定ツール112から送られた時間を適用累計時間605に加算し、かつ、適用累計回数604に1を加算し、さらに適用累計時間605を適用累計回数604で除算した値を、平均時間として適用平均時間602へ更新する(ステップS1108)。
【0059】
ステップS1106で、測定結果が平均時間の半分以下の場合は(ステップS1106でYes)、何らかの理由による異常値と判断してパッチ適用パターン別時間見積テーブル137と同時インストール製品テーブル138を更新せずに本処理を終了する。また、ステップS1106で、測定結果が平均時間の半分を超えている場合は(ステップS1106でNo)、ステップS1108へ移る。
【0060】
ステップS1108の後、パッチ時間測定ツール112から送られた情報がパッチ削除の情報(削除時間の更新)であるか否かを判定する(ステップS1109)。パッチ削除の情報でない場合は(ステップS1109でNo)、本処理を終了する。一方、パッチ削除の情報であった場合は(ステップS1109でYes)、測定した環境がパッチ適用パターン別時間見積テーブル137のCPU名607とDisk名608、および同時インストール製品テーブル138の製品名702とバージョン703と同じ削除パターンであるか否か、つまり測定した環境と同じ削除パターンがあるか否かを判定する(ステップS1110)。
【0061】
ステップS1110で、同じ削除パターン(組み合わせ)がない場合は(ステップS1110でNo)、測定結果(削除時間)および組み合わせをパッチ適用パターン別時間見積テーブル137と同時インストール製品テーブル138へ追加し(ステップS1111)、本処理を終了する。
【0062】
一方、ステップS1110で、同じ削除パターンがある場合は(ステップS1110でYes)、測定結果がリムーブ時間606の値より大きいか否かを判定(ステップS1112)する。
【0063】
ステップS1112で、大きい場合は(ステップS1112でYes)、測定結果がリムーブ時間606の値の2倍以上であるか否かを判定する(ステップS1113)。測定結果が2倍以上でない場合は(ステップS1113でNo)、パッチ適用パターン別時間見積テーブル137のリムーブ時間606をパッチ時間測定ツール112から送られた時間(測定結果)に更新し(ステップS1114)、パッチ見積算出機能140へ処理を戻して本処理を終了する。
【0064】
ステップS1112で、測定結果が大きくない場合(ステップS1112でNo)、および、ステップS1113で、測定結果が2倍以上である場合は(ステップS1113でYes)、いずれも本処理を終了する。
図11のフローにより、パッチの適用や削除がされた環境と同時適用のパッチの組み合わせ別に実績値を加味し、他の実績値と比較して異常値だった場合を排除し、適用や削除に必要な時間を予測するデータを蓄積する。
【0065】
次に、顧客情報管理システム150について詳細に説明する。
顧客情報管理システム150が備える顧客パッチ情報テーブル152は、図12に示すように、顧客名1201、システム名1202、適用されている製品(パッチ)名を表す製品名1203、製品におけるパッチバージョン情報を表すバージョン1204が定義されている。後述する顧客情報管理機能157により定期的に対象顧客のパッチ適用状況を入手し、顧客パッチ情報テーブル152にそのパッチ適用状況として前記した値を登録する。
【0066】
顧客運用情報テーブル153は、図13に示すように、顧客毎に、個々の時間帯にユニークに付与した番号を表す項番1301、顧客システム110のシステム名1302、システムの未稼働時間帯の開始日時を表す開始日時1303、その終了日時を表す終了日時1304、未稼働時間帯の開始日時から終了日時までの時間(分)を表す合計時間1305、未稼働として予測した根拠を、番号(根拠Flg)で分類して示す根拠1306が定義されている。後述する未稼働時間予測機能158により定期的に顧客別ログDB156から未稼働時間帯を予測し、顧客運用情報テーブル153にその未稼働時間帯を登録する。
【0067】
根拠1306には、根拠種別(根拠Flg)に1から5が格納され、それぞれの値の定義は次の通りである。
1:毎日定期的に未稼働の時間帯がある
2:毎週定期的に未稼働の時間帯がある
3:毎月同日に定期的に未稼働の時間帯がある
4:毎期の第n曜日に定期的に未稼働の時間帯がある
5:毎年、定期的に未稼働の時間帯がある
【0068】
顧客リクエスト情報テーブル154は、図14に示すように、顧客名1401、システム名1402、障害による影響度の大きさによって1から2の数値で定義され、顧客が検索条件で選択した重要度の範囲を表す重要度範囲1403、パッチによって修正された不具合の発生条件を1から4の数値で定義され、顧客が検索条件で選択した該当度の範囲を表す該当度範囲1404、顧客が検索条件で選択したパッチ適用の時間帯を表す後述の希望時間帯テーブル155への外部キーを表す時間帯1405、顧客が検索条件で指定したCPU名称を表すCPU名1406、顧客が検索条件で指定したDisk名称を表すDisk名1407が定義されている。後述するパッチ適用時間帯リクエスト機能170、および再リクエスト機能180により顧客リクエスト情報テーブル154に前記した値を登録する。
【0069】
重要度範囲1403に格納される数値の定義は次の通りである。
1:OSパニック、データ損失、データ破壊、システムクラッシュ、ハングといった最重要なものに当てはまる
2:1以外のその他エラー
【0070】
また、該当度範囲1404に格納される数値の定義は次の通りである。
1:全ての発生条件に当てはまる
2:全てではないが半分以上の発生条件に当てはまる
3:半分未満〜1つ以上の発生条件に当てはまる
4:発生条件に全て当てはまらない
【0071】
希望時間帯テーブル155は、図15に示すように、顧客リクエスト情報テーブル154の時間帯1405からのリンク元を表す時間帯キー1501、顧客がパッチ適用として希望した時間帯の順位を表す希望順位1502、顧客がパッチ適用として希望した時間帯を表す時間帯1503、時間帯1503の開始日時を表す開始日時1504、時間帯1503の終了日時を表す終了日時1505、開始日時1504から終了日時1505までの時間(分)を表す合計時間1506が定義されている。
【0072】
時間帯1503には、対象のシステムの未稼働時間帯が格納されている顧客運用情報テーブル153の項番1301が登録されており、また顧客運用情報テーブル153の時間帯以外に顧客が新たに指定した時間帯も登録されている。顧客運用情報テーブル153に登録されている時間帯の場合は、開始日時1504、終了日時1505、および合計時間1506は「N」が格納され、顧客運用情報テーブル153に登録されている以外の時間帯を顧客が新たに指定した場合は、該当の開始日時、終了日時、開始日時から終了日時までの時間が、それぞれ開始日時1504、終了日時1505、合計時間1506に登録される。
【0073】
例えば、図14の顧客名1401の「B社」、かつシステム名1402が「Cシステム」の場合、パッチの重要度を「1」、かつパッチで対策された不具合の発生条件の該当度範囲を「1から2」の範囲に当てはまるパッチを希望していることを示している(符号1408参照)。また該当のパッチを適用する際、CPU名を「D CPU」、かつDisk名を「G Disk」の環境下で、時間帯1405の値「C0001」が時間帯キー1501の値と合致する3つの時間帯(「B0132」、「B0133」、「D0001」)でパッチ適用を希望しており、3つの時間帯のうち2つは顧客運用情報テーブル153に格納された時間帯であり(符号1507、1508参照)、残りの1つは顧客が新たに追加した時間帯であることを示している(符号1509参照)。
【0074】
図16は、顧客情報管理機能157についての処理手順を示すフローチャートである。図16に示すように、この処理は定期的に行われる。まず、ソフトウェア情報を収集するプログラム(ソフトウェア)を利用し、顧客システム110にインストールされている製品および機能の情報を取得するためのユーティリティ、例えば、レジストリの情報、snapコマンドやpsコマンドを利用することによって、現在顧客システムにおいて適用されている製品(パッチ)情報を収集する(ステップS1601)。
【0075】
次に、システムの稼動状況については、製品から出力されるログ分析ツールを利用し、稼働状況の情報が入ったログデータを収集する(ステップS1602)。例えば、データベースにデータが格納される際のテーブルの作成や、業務で流れるSQL文から実際に使用している機能を検知することができるユーティリティを利用することによって、稼働または未稼働の情報や実際に使ったコマンドや変更履歴の情報(稼働状況の情報)を、ログデータとして収集する。
【0076】
その後、それらの情報は、顧客運用情報DB151に定義された顧客パッチ情報テーブル152、および顧客別ログDB156に格納され(ステップS1603)、本処理を終了する。
【0077】
図17(図17Aと図17Bの総称)は、未稼働時間予測機能158についての処理手順を示すフローチャートである。図17に示すように、この処理は定期的に行われる。まず、顧客情報管理機能157により収集した顧客別ログDB156から、例えば過去3年分の顧客システム110の未稼動時間帯を検索し、抽出する(ステップS1701)。
【0078】
次に、ステップS1701により顧客別ログDB156から得られた未稼動時間帯のうち、直近の未稼働時間帯は、その開始時間および終了時間の前後1時間の範囲で、昨日と同じか否かを判定する(ステップS1702)。同じであれば(ステップS1702でYes)、過去1週間においても、直近の未稼働時間帯の開始時間および終了時間の前後1時間の範囲で毎日同じか否かを判定する(ステップS1703)。同じであれば(ステップS1703でYes)、根拠Flgの値を1とする(ステップS1704)。
【0079】
ステップS1702で異なると判定した場合(ステップS1702でNo)、あるいはステップS1703で異なると判定した場合(ステップS1703でNo)、直近の未稼働時間帯の開始時間および終了時間の前後1時間の範囲で、1週間前の同じ曜日も同じか否かを判定する(ステップS1705)。同じであれば(ステップS1705でYes)、過去1ヶ月間、同じ曜日においても直近の未稼働時間帯の開始時間および終了時間の前後1時間の範囲で同じか否かを判定する(ステップS1706)。同じであれば(ステップS1706でYes)根拠Flgの値を2とする(ステップS1707)。
【0080】
ステップS1705で異なると判定した場合(ステップS1705でNo)、あるいはステップS1706で異なると判定した場合(ステップS1706でNo)、直近の未稼働時間帯の開始時間および終了時間の前後1時間の範囲で、1ヶ月前の同じ日も同じか否かを判定する(ステップS1708)。同じであれば(ステップS1708でYes)、過去半年間、同じ日においても直近の未稼働時間帯の開始時間および終了時間の前後1時間の範囲で同じか否かを判定する(ステップS1709)。同じであれば(ステップS1709でYes)、根拠Flgの値を3とする(ステップS1710)。
【0081】
ステップS1708で異なると判定した場合(ステップS1708でNo)、あるいはステップS1709で異なると判定した場合(ステップS1709でNo)、直近の未稼働時間帯がその月の第N曜日(N=1〜4)であることを確認し、1ヶ月前の同じ第N曜日も直近の未稼働時間帯の開始時間および終了時間の前後1時間の範囲で、同じか否かを判定する(ステップS1711)。同じであれば(ステップS1711でYes)、過去半年間、第N曜日においても直近の未稼働時間帯の開始時間および終了時間の前後1時間の範囲で、同じか否かを判定する(ステップS1712)。同じであれば(ステップS1712でYes)、根拠Flgの値を4とする(ステップS1713)。なお、ステップS1711とステップS1712では曜日がその月での最終曜日だった場合は最終曜日同士を比較判定する。
【0082】
ステップS1711で異なると判定した場合(ステップS1711でNo)、あるいはステップS1712で異なると判定した場合(ステップS1712でNo)、直近の未稼働時間帯が1年前の同じ日も直近の未稼働時間帯の開始時間および終了時間の前後1日の範囲で、去年と同じか否かを判定する(ステップS1714)。同じであれば(ステップS1714でYes)、過去2年間、同じ日においても直近の未稼働時間帯の開始時間および終了時間の前後1時間の範囲で、同じか否かを判定(ステップS1715)。同じであれば(ステップS1715でYes)、根拠Flgの値を5とする(ステップS1716)。
【0083】
ステップS1704、あるいはステップS1707、あるいはステップS1710、あるいはステップS1713、あるいはステップS1716の処理後、比較対照となった時間帯および比較した時間帯全てに共通して未稼働となっている時間帯の前後1時間(開始時間は共通時間の1時間前を採用し、終了時間は共通時間の1時間後を採用)の時間帯を顧客運用情報テーブル153に格納する(ステップS1717)。その際、根拠Flgの値は根拠1306へ格納する。
【0084】
全ての判定処理終了後、ステップS1701で収集した未稼動時間帯のうち、今回更新された範囲内で、判定していない時間帯が存在すれば(ステップS1718でYes)、ステップS1702へ戻り、存在しなければ(ステップS1718でNo)、本処理を終了する(ステップS1718)。
図17のフローにより顧客システムの過去の未稼動時間帯を分析することで、今後の未稼働時間帯を予測する。ここでは開始時間および終了時間の前後1時間の範囲で判定を行い、未稼働時間帯として判断しているが、1時間という値は事前にユーザがパラメータで自由に指定することができる。
【0085】
図18は、未稼働時間抽出機能159についての処理手順を示すフローチャートである。図18に示すように、この処理は、パッチ情報提出機能200からコールされたときに開始する。
【0086】
まず、顧客(ユーザ)が画面上で指定した顧客名とシステム名を特定し(ステップS1801)、指定された顧客名とシステム名から該当システムが停止する時間帯を顧客運用情報テーブル153から検索し、該当する時間帯があるか否かを判定する(ステップS1802)。該当する時間帯があれば(ステップS1802でYes)、登録されている開始日時、終了日時の日付部分を根拠1306に従って将来の直近の日付に変換して該当時間帯をコール元へ返し(ステップS1803)、本処理を終了する。該当する時間帯が無ければ(ステップS1802でNo)今後予想される(停止)時間帯がない旨を返し(ステップS1804)、本処理を終了する。
【0087】
次に、パッチ抽出管理システム160について詳細に説明する。
リコメンデーションテーブル162は、図19に示すように、顧客毎、そしてシステム毎に、製品名1901、顧客システム110に最適なパッチのバージョン情報を示す推奨バージョン1902、現在顧客システム110に適用されているパッチのバージョン情報を示す適用バージョン1903、重要度情報DB164によって分別された結果を表す重要度1904、ベンダが提供している該当パッチのサポート契約者に対するダウンロード回数を比率として表すダウンロード実績1905、該当パッチがセキュリティパッチ(ソフトウェア内でセキュリティホールの原因となっているファイルを、問題のないファイルに置き換えるパッチ)である(「1」)か否か(「0」)を示すセキュリティパッチ1906、パッチが修正された日付を表す修正日1907、顧客が該当製品にアクセスした日付を表すアクセス日時1908、顧客によってその製品にパッチを適用したことで該当ファイルの更新が行われた日付を表す製品更新の日時1909、パッチ適用に依存関係がない製品(パッチ)のカテゴリを示すカテゴリ1910、パッチアドバイス処理機能165により、パッチで修正された不具合の発生条件の該当結果を表す該当度1911、パッチアドバイス処理機能165により、類似パッチとして判定された場合の類似元パッチ(製品)の製品名を表す類似対象製品1912、類似元製品のバージョンを表す類似対象バージョン1913、パッチ適用の実績値の平均(分)を表す適用平均時間1914、パッチ適用の実績値で最大の時間(分)を表す適用最大時間1915、パッチ削除の実績値で最大の時間(分)を表すリムーブ時間1916、顧客が適用を選択したか否かを表す選択1917が定義されている。
【0088】
なお、カテゴリ1910は、パッチ情報テーブル132の製品カテゴリ203の名称が格納される。該当度1911は、後述のパッチアドバイス処理機能165で判定し、顧客別ログDB156の中から発生条件テーブル134の条件を検索し、「1」、「2」、「3」、「4」の値が格納される。
【0089】
類似対象製品1912は、後述のパッチアドバイス処理機能165で判定し、類似パッチとして当てはまるパッチには類似元パッチの製品名が格納され、類似対象バージョン1913は、類似元パッチの製品のバージョンが格納され、類似パッチでない場合は類似対象製品1912、類似対象バージョン1913ともに「N」を格納される。
【0090】
適用平均時間1914、適用最大時間1915、リムーブ時間1916はそれぞれパッチ適用時間見積テーブル136の適用平均時間503、適用最大時間504、リムーブ時間507の値が格納される。
【0091】
選択1917は、顧客がパッチ適用を選択するか否かの判定を意味し、デフォルトでパッチ適用を選択したとする。よって、後述のパッチアドバイス処理機能165により推奨パッチと判定された場合全て「1」を格納し、後述の再リクエスト機能180により選択解除と顧客が指定した場合は「0」が格納される。
【0092】
パッチ適用推奨時間帯テーブル163は、図20に示すように、顧客毎、そしてシステム毎に、パッチ適用の推奨時間帯の推奨順位を表す優先順位2001、パッチ適用の推奨時間帯としてリンクされている顧客運用情報テーブル153の項番1301の値、および希望時間帯テーブル155の時間帯1503の値を表す時間帯2002、パッチ適用時間見積時間の最大値より長い時間帯か否かを表す適用最大flg2003、パッチ適用時間見積時間の平均時間より長い時間帯か否かを表す適用平均flg2004、パッチ適用時間の見積にあたり、パッチ適用パターン別時間見積テーブル137で見積したか否かを表す適用パターンflg2005、パッチ適用の実績値の平均(分)を表す適用平均時間2006、パッチ適用の実績値で最大の時間(分)を表す適用最大時間2007、パッチ削除の実績値で最大の時間(分)を表すリムーブ時間2008が定義されている。
【0093】
なお、時間帯2002の値は頭文字の違いにより、パッチ適用の推奨時間帯としてリンクされている顧客運用情報テーブル153の項番1301の値か、希望時間帯テーブル155の時間帯1503の値かが区別できる。
【0094】
また、適用最大flg2003は、時間帯2002の該当時間帯が適用最大時間2007の値より長い場合は「1」が、それ以外は「0」が格納される。また、適用平均flg2004は、時間帯2002の該当時間帯が適用平均時間2006の値より長い場合は「1」が、それ以外は「0」が格納される。また、適用パターンflg2005は、適用平均時間2006と適用最大時間2007とリムーブ時間2008の値が、パッチ適用パターン別時間見積テーブル137で見積した場合は「1」が、パッチ適用時間見積テーブル136で見積した場合は「0」が格納される。
【0095】
図21は、パッチアドバイス処理機能165についての処理手順を示すフローチャートである。図21に示すように、この処理は定期的に行われる(ステップS2101)。まず、パッチ抽出処理を実行し、パッチを抽出する。ここで、パッチ抽出処理とは、ソフトウェアベンダサーバ100のソフトウェアベンダから新しいアラート情報が提供され、ソフトウェアサポートシステム120のサポート担当者によってパッチ情報テーブル132の更新が行われた際に、パッチ情報テーブル132にて更新されたパッチ情報を、顧客システム110に適用すべきか否かを判定するために抽出する処理である。抽出されたパッチ情報は暫定的にリコメンデーションテーブル162に更新される。顧客システム110に適用すべきか否かという判定は、例えば、重要度、セキュリティ、ダウンロード実績等に基づいてなされる。適用すべきでなければ、そのパッチ情報はリコメンデーションテーブル162から除外される。この処理の詳細は、例えば特許文献1に記載されている。
【0096】
次に、後述するパッチ類似検索関数をコールして処理を引き渡す(ステップS2102)。その後、後述するパッチ自動判定関数をコールして処理を引き渡す(ステップS2103)。
【0097】
その後、リコメンデーションテーブル162を更新する(ステップS2104)。具体的には、リコメンデーションテーブル162に格納されている全てのパッチ情報に対し、カテゴリ1910はパッチ情報テーブル132から入手して格納し、また、適用平均時間1914、適用最大時間1915、リムーブ時間1916はパッチ適用時間見積テーブル136から入手して格納し、類似対象製品1912、および類似対象バージョン1913に対しては類似パッチとして格納したパッチ以外全てに「N」を格納し、選択1917に全て「1」を格納する。この更新の処理を終えて本処理を終了する。
【0098】
図22は、パッチアドバイス処理機能165からコールされるパッチ類似検索関数についての処理手順を示すフローチャートである。図22に示すように、リコメンデーションテーブル162に更新されたパッチ情報があるか否かを判定する(ステップS2201)。
【0099】
更新されたパッチ情報がある場合は(ステップS2201でYes)、更新されたパッチで修正されたモジュールと同じ修正をしたモジュール(修正モジュール)をもつパッチを修正箇所テーブル133から検索し、そのようなパッチがあるか否かを判定する(ステップS2202)。一方、ステップS2201の処理において、更新されたパッチ情報が無いと判定した場合は(ステップS2201でNo)、処理を終了する(パッチアドバイス処理機能165へ処理を返す)。
【0100】
ステップS2202で、前記修正モジュールが同じであるパッチがあると判定した場合(ステップS2202でYes)、同じと判定されたそのパッチ情報を対象にして前記パッチ抽出処理を行い、抽出された該当パッチを類似パッチとしてリコメンデーションテーブル162に追加する(ステップS2203)。一方、前記修正モジュールが同じであるパッチがないと判定した場合(ステップS2202でNo)、ステップS2205に進む。
【0101】
次に、リコメンデーションテーブル162において類似対象製品1912に類似元パッチの製品を格納し、類似対象バージョン1913に類似パッチのバージョンを格納して更新する(ステップS2204)。
【0102】
次に、更新されたパッチ情報のうち、ステップS2202の判定をしていないパッチがあるか否かを判定し(ステップS2205)、ある場合は(ステップS2205でYes)、ステップS2202に戻り、ない場合(ステップS2205でNo)、パッチアドバイス処理機能165へ処理を返し、本処理を終了する。
図22のフローにより、修正モジュールが同じである類似パッチも推奨パッチとして採り上げる。
【0103】
図23は、パッチアドバイス処理機能165からコールされるパッチ自動判定関数についての処理手順を示すフローチャートである。図23に示すように、リコメンデーションテーブル162に更新されたパッチ情報があるか否かを判定し(ステップS2301)、ない場合は(ステップS2301でNo)、本処理を終了する(パッチアドバイス処理機能165へ処理を返す)。
【0104】
ステップS2301で、更新されたパッチ情報があると判定した場合(ステップS2301でYes)、更新されたパッチによって修正された不具合を再現する条件を発生条件テーブル134から検索し、発生条件に当てはまる条件が顧客別ログDB156にあるか否か、つまり顧客別ログDB156に格納された稼動実績や操作実績のログが発生条件を満たしているか否かを判定する(ステップS2302)。当てはまる条件がない場合(ステップS2302でNo)、該当パッチの該当度1911に「4」を格納してリコメンデーションテーブル162を更新し(ステップS2303)、ステップS2309の処理へ移る。
【0105】
ステップS2302で、当てはまる条件がある場合(ステップS2302でYes)、更新されたパッチによって修正された不具合を再現する条件が、半分以上当てはまるか否かを判定する(ステップS2304)。条件が半分以上当てはまらない場合(ステップS2302でNo)、該当パッチの該当度1911に「3」を格納してリコメンデーションテーブル162を更新し(ステップS2305)、ステップS2309の処理へ移る。
【0106】
ステップS2304で、条件が半分以上当てはまる場合(ステップS2304でYes)、更新されたパッチによって修正された不具合を再現する条件が、全て当てはまるか否かを判定する(ステップS2306)。条件が、全て当てはまらない場合(ステップS2306でNo)、該当パッチの該当度1911に「2」を格納してリコメンデーションテーブル162を更新し(ステップS2307)、ステップS2309の処理へ移る。
【0107】
ステップS2306で、条件が全て当てはまる場合(ステップS2306でYes)、該当パッチの該当度1911に「1」を格納してリコメンデーションテーブル162を更新し(ステップS2308)ステップS2309の処理へ移る。
【0108】
次に、更新されたパッチ情報のうち、ステップS2302の判定をしていないパッチがあるか否かを判定する(ステップS2309)。判定をしていないパッチがない場合は(ステップS2309でNo)、パッチアドバイス処理機能165へ処理を返し、本処理を終了する。一方、判定をしていないパッチがある場合は(ステップS2309でYes)、ステップS2302に戻る。
図23のフローにより、リコメンデーションテーブル162に更新されるパッチの該当度が定まる。
【0109】
図24は、パッチ適用時間帯リクエスト機能170についての処理手順を示すフローチャートである。図24に示すように、この処理はパッチ情報提供機能200からコールされることで開始する。
【0110】
まず、顧客が画面上で指定した、パッチ検索条件(重要度と該当度)、パッチ適用の希望時間帯、および対象システムのCPU名、Disk名、といった情報(顧客入力部分)を特定する(ステップS2401)。次に、顧客リクエスト情報テーブル154にステップS2401で特定した情報を格納する(ステップS2402)。
【0111】
次に、ステップS2401で特定した情報のうち、顧客が指定したパッチ検索条件(重要度と該当度)を満たすパッチについては、リコメンデーションテーブル162の選択1917を「1」に更新し、パッチ検索条件にあわないパッチについては、リコメンデーションテーブル162の選択1917を「0」に更新する(ステップS2403)。
【0112】
次に、顧客が新たに追加した時間帯(希望時間帯)があるか否かを判定する(ステップS2404)。時間帯がある場合は(ステップS2404でYes)、追加された時間帯を顧客リクエスト情報テーブル154および希望時間帯テーブル155に格納し(ステップS2405)、ステップS2406へ移る。一方、時間帯が無い場合は(ステップS2404でNo)、そのままステップS2406へ移る。
【0113】
次に、後述のパッチ適用時間帯の抽出機能190をコールして処理を引き継ぎ(ステップS2406)、該当するパッチ、およびパッチ適用に適した時間帯があるか否かを判定する(ステップS2407)。そのパッチおよび時間帯があれば(ステップS2407でYes)、顧客向けにパッチ情報(指定されたパッチ情報)と該当時間帯(パッチ適用の推奨時間帯)を返し(ステップS2408)、本処理を終了する。一方、該当するパッチおよびパッチ適用に適した時間帯が無ければ(ステップS2407でNo)、該当パッチがない、およびパッチ適用に適した時間帯、つまり条件に見合う情報がない旨をコール元へ返し(ステップS2409)、本処理を終了する。
図24のフローにより、顧客が希望するパッチおよび推奨時間帯が定まる。
【0114】
図25は、再リクエスト機能180についての処理手順を示すフローチャートである。図25に示すように、この処理はパッチ情報提供機能200からコールされることで開始する。
【0115】
まず、図24のフローのステップS2401で既に指定しているパッチ適用の希望時間帯、および対象システムのCPU名、Disk名、といった情報(顧客入力部分)を再度特定する(ステップS2501)。次に、顧客が画面上で指定したパッチを特定し(ステップS2502)、指定されたパッチについては、リコメンデーションテーブル162の選択1917を「1」に更新し、指定されたパッチ以外については、リコメンデーションテーブル162の選択1917を「0」に更新する(ステップS2503)。
【0116】
次に後述のパッチ適用時間帯の抽出機能190をコールして処理を引き継ぎ(ステップS2504)、該当するパッチ、およびパッチ適用に適した時間帯があるか否かを判定する(ステップS2505)。そのパッチおよび時間帯があれば(ステップS2505でYes)、顧客向けにパッチ情報(指定されたパッチ情報)と該当時間帯(パッチ適用の推奨時間帯)を返し(ステップS2506)、本処理を終了する。一方、該当するパッチおよびパッチ適用に適した時間帯が無ければ(ステップS2505でNo)、該当パッチがない、およびパッチ適用に適した時間帯、つまり条件に見合う情報がない旨を返し(ステップS2507)、本処理を終了する。
図25のフローにより、顧客が再度希望したパッチおよび推奨時間帯が定まる。
【0117】
図26(図26Aと図26Bの総称)は、パッチ適用時間帯リクエスト機能170または再リクエスト機能180からコールされるパッチ適用時間帯の抽出機能190についての処理手順を示すフローチャートである。図26に示すように、リコメンデーションテーブル162の選択1917が「1」の値であるパッチの種別(製品名1901と推奨バージョン1902)、およびパッチ適用時間帯リクエスト機能170や再リクエスト機能180で指定したCPU名とDisk名の組合せと同じ組合せが、パッチ適用パターン別時間見積テーブル137と同時インストール製品テーブル138に存在するか否かを判定する(ステップS2601)。
【0118】
同じ組合せが存在する場合(ステップS2601でYes)、パッチ適用パターン別時間見積テーブル137の該当パッチの適用平均時間602、適用最大時間603、リムーブ時間606の値(平均値、最大値、リムーブ値)が全て存在する(該当パターン)か否かを判定する(ステップS2602)。全て値がある場合は(ステップS2602でYes)、該当パターンの平均値、最大値、リムーブ値を選択して、今後の判定で使用することにし、組合せの該当パターンによる判定を意味するP=1とし(ステップS2603)、ステップS2608に移る。
【0119】
ステップS2601の判定で、同じ組合せがない場合(ステップS2601でNo)、または、ステップS2602の判定で、該当パッチの適用平均時間602、適用最大時間603、リムーブ時間606の値が全て存在するわけではない場合(ステップS2602でNo)、リコメンデーションテーブル162の選択1917が「1」の値である、指定されたパッチの種別が複数あるか否かを判定し(ステップS2604)、複数ある場合(ステップS2604でYes)、適用パッチのカテゴリ1910が全て同じであるか否かを判定する(ステップS2605)。
【0120】
ステップS2605の判定でカテゴリが全て同じでない場合(ステップS2605でNo)、パッチ適用時間見積テーブル136の該当パッチの適用平均時間503、適用最大時間504、リムーブ時間507についてカテゴリ毎にそれらの合計値をそれぞれ算出して平均値、最大値、リムーブ値とし、最大時間(最大値)が一番大きいカテゴリの値を選択して、今後の判定で使用することにし、対象パッチの適用時間の合計値であることを意味するP=0とし(ステップS2606)、ステップS2608に移る。
【0121】
ステップS2604による判定でパッチが単数個である場合(ステップS2604でNo)、あるいは、ステップS2605による判定で適用対象のパッチのカテゴリがすべて同じである場合は(ステップS2605でYes)、パッチ適用時間見積テーブル136の該当パッチの適用平均時間503、適用最大時間504、リムーブ時間507について値(パッチが複数の場合は合計値)をそれぞれ算出して平均値、最大値、リムーブ値とし、その値を選択して、今後の判定で使用することにし、対象パッチの適用時間の(合計)値であることを意味するP=0とし(ステップS2607)、ステップS2608に移る。
【0122】
次に、パッチ適用推奨時間帯テーブル163のデータを初期化し(全て削除)、顧客希望順位を表すNの値と、結果推奨の順位(優先順位)を表すMの値を「1」とし(ステップS2608)、該当顧客の顧客希望順位Nの未稼働時間帯の時間が、前記最大値に納まる(つまり、最大値未満)か否かを判定する(ステップS2609)。
【0123】
前記最大値に納まる場合(ステップS2609でYes)、パッチ適用推奨時間帯テーブル163に優先順位2001にMの値を格納し、時間帯2002に希望時間帯テーブル155の時間帯1503の値を格納し、適用最大flg2003と適用平均flg2004ともに「1」を格納し、適用パターンflg2005に「P」の値を格納し、またステップS2603、或いはステップS2606、或いはステップS2607で指定した最大値、平均値、およびリムーブ値をそれぞれ適用最大時間2007、適用平均時間2006、リムーブ時間2008として格納し、最大時間を適用するようにパッチ適用推奨時間帯テーブル163を更新する(ステップS2610)。
【0124】
一方、ステップS2609により、顧客希望順位Nの未稼働時間帯の時間が、前記最大値に納まらないと判定された場合(ステップS2609でNo)、前記平均値に納まる(つまり、平均値未満)か否かを判定する(ステップS2611)。前記平均値に納まる場合(ステップS2611でYes)、パッチ適用推奨時間帯テーブル163に優先順位2001をMとして格納し、時間帯2002に希望時間帯テーブル155の時間帯1503の値を格納し、適用最大flg2003に「0」を格納し、適用平均flg2004に「1」を格納し、適用パターンflg2005に「P」の値を格納し、前記最大値、前記平均値、前記リムーブ値をそれぞれ適用最大時間2007、適用平均時間2006、リムーブ時間2008として格納し、平均時間を適用するようにパッチ適用推奨時間帯テーブル163を更新する(ステップS2612)。一方、前記平均値に納まらないと判定された場合(ステップS2611でNo)、ステップS2614に移る。
【0125】
ステップS2610、およびステップS2612の後は「M=M+1」の処理(Mをインクリメント)を行う(ステップS2613)。
【0126】
次に、顧客希望順位がN+1となる時間帯があるか否かを判定し(ステップS2614)、ある場合は(ステップS2614でYes)、「N=N+1」の処理(Nをインクリメント)を行い(ステップS2615)、ステップS2609へ戻る。
【0127】
ステップS2614で顧客希望順位がN+1となる時間帯がない場合は(ステップS2614でNo)、パッチ適用推奨時間帯テーブル163にデータがあるか否かを判定する(ステップS2616)。データがない場合は(ステップS2616でNo)、顧客運用情報テーブル153の中で該当顧客およびシステムに相当する時間帯で、合計時間(つまり、未稼働時間帯の時間)が一番長い(最大の)時間帯を選択する(ステップS2617)。
【0128】
次に、パッチ適用推奨時間帯テーブル163に優先順位をM(=1)として、時間帯2002にステップS2617で選択した時間帯(顧客運用情報テーブル153の項番1301の値)を格納し、適用最大flg2003と適用平均flg2004ともに「0」を格納し、適用パターンflg2005に「P」に値を格納し、また前記最大値、前記平均値、前記リムーブ値をそれぞれ適用最大時間2007、適用平均時間2006、リムーブ時間2008として格納し、条件に見合う時間帯がないものとするようにパッチ適用推奨時間帯テーブル163を更新する(ステップS2618)。更新した後、コールされたパッチ適用時間帯リクエスト機能170および再リクエスト機能180へ処理を戻し、本処理を終了する。
【0129】
一方、パッチ適用推奨時間帯テーブル163にデータがある場合には(ステップS2616でYes)、そのままコールされたパッチ適用時間帯リクエスト機能170および再リクエスト機能180へ処理を戻し、本処理を終了する。
図26のフローにより、希望に沿ったパッチ適用時間帯が存在すれば抽出される。
【0130】
パッチ情報提供機能200は、クライアント210に対して、パッチ情報をHTML形式にて提供する機能であり、図28、図29、図30(図30Aおよび図30Bの総称)は、その画面を示す図である。
図27(図27Aと図27Bの総称)は、パッチ情報提供機能200についての処理手順を示すフローチャートである。図27に示すように、この処理は顧客操作による顧客指示により起動する。
【0131】
まず、未稼働時間帯抽出の要求画面(図28参照)を出力し(ステップS2701)、次に、ユーザが指定項目に対して記入漏れがなく、確定ボタンが押下されたか否かを判定する(ステップS2702)。記入漏れなく押下された場合(ステップS2702でYes)、未稼働時間帯抽出機能159をコールし(ステップS2703)、そうでない場合(ステップS2702でNo)、記入漏れがなく、確定ボタンが押下されるまで待機する。
【0132】
次に、未稼働時間帯抽出機能159をコールしたときの結果が戻ってきたらパッチ適用時間帯抽出の要求画面(図29参照)を出力し(ステップS2704)、ユーザが指定項目に対して記入漏れがなく、確定ボタンが押下されたか否かを判定する(ステップS2705)。記入漏れなく確定ボタンを押下した場合(ステップS2705でYes)、パッチ適用時間帯リクエスト機能170をコールし(ステップS2706)、そうでない場合(ステップS2705でNo)、記入漏れがなく、確定ボタンが押下されるまで待機する。
【0133】
次に、パッチ適用時間帯リクエスト機能170をコールしたときの結果が戻ってきたら、パッチ適用時間帯の情報提供画面および再リクエスト画面(図30参照)を出力する(ステップS2707)。ここでは、リコメンデーションテーブル162の選択1917の値が「1」であるパッチを対象に、製品名(パッチ名)やそれぞれの平均適用時間、最大適用時間、リムーブ時間などをリコメンデーションテーブル162に格納された情報を表示する。また適用時間帯(日時)については、顧客運用情報テーブル153に登録されたデータが指定されている場合は、根拠1306に従って将来の直近の日付に変換して表示する。パッチ適用中に何かしらの理由で削除する必要になった場合に、削除を開始しなければならない日時を表したリムーブデットラインは、パッチ適用推奨時間帯テーブル163のリムーブ時間2008を加味し、算出する。
【0134】
次に、ユーザが指定項目に対して記入漏れなくボタンが押下されたかを判定する(ステップS2708)。ボタンが押下されていない場合は(ステップS2708でNo)、ボタンが押下されるまで待機し、ボタンが押下された場合は(ステップS2708でYes)、押下されたボタンが戻るボタンであるか否かを判定する(ステップS2709)。戻るボタンであれば(ステップS2709でYes)、ステップS2704へ戻り、そうでなければ(ステップS2709でNo)、ステップS2710に進む。
【0135】
次に、押下されたボタンが再提示ボタンであるか否かを判定し(ステップS2710)、再提示ボタンであれば(ステップS2710でYes)、再リクエスト機能180をコールし(ステップS2711)、その結果をパッチ適用時間帯の情報画面および再リクエスト画面に出力する(ステップS2707)。一方、再提示ボタンでなければ(ステップS2710でNo)、ステップS2712に進む。
【0136】
次に、押下されたボタンがダウンロードボタンであるか否かを判定し(ステップS2712)、記入漏れなくダウンロードボタンが押下された場合は(ステップS2712でYes)、選択されたパッチのダウンロードを開始し(ステップS2713)、そうでない場合は(ステップS2712でNo)、例えば終了ボタンが押下されたということを意味するので、本処理を終了する。
【0137】
図28は、会社名2801とシステム名2802を顧客が選択する画面であり、選択後、確定ボタン2803を押下することで、未稼働時間帯抽出機能159へ処理を引き継ぐ(ステップS2703参照)。
【0138】
図29は、図28の画面で確定ボタン2803を押下後、表示される画面であり、パッチの検索条件選択2901、および会社名2801とシステム名2802に該当する、予測された未稼働推測時間2902(未稼働時間帯と同じ意)が表示される。未稼働推測時間2902には、顧客がパッチ適用として採用したい時間帯を個々に選択できる選択2903、および希望順位を記入できる希望順位2904が表示される。また、予測された時間帯以外に、顧客が新たに時間帯を追加することも可能とする追加ボタン2905がある。
【0139】
更にパッチ適用でのCPU機種名を選択するCPU機種2906およびDisk機種名を選択するDisk機種2907があり、両方を選択した後、確定ボタン2908を押下することで、パッチ適用時間帯リクエスト機能170へ処理を引き継ぐ(ステップS2706参照)。
なお、この画面には、重要度の説明(符号2909)および該当度の説明(符号2910)を表示し、顧客に対しパッチ選択の判断基準を提供している。
【0140】
図30は、図29の画面で確定ボタン2908を押下後、表示される画面であり、図29の条件を満たした推奨パッチ情報一覧3001、およぶパッチ適用推奨日時3002に情報が表示される。
【0141】
推奨パッチ情報一覧3001では、再検索する際、ユーザがパッチを個々に選択できる選択3003、パッチのカテゴリを現すカテゴリ3004、パッチの製品名を表す製品名3005、類似パッチとして推奨する製品を表す類似不良対策製品3006、パッチの重要度を表す重要度3007、パッチで対策された不具合の発生条件に該当する割合を表す該当度3008、予測されたパッチ適用にかかる平均時間を表す平均適用時間3009、予測されたパッチ適用にかかる最大時間を表す最大適用時間3010、予測されたパッチ削除にかかる時間を表すリムーブ時間3011が一覧になって表示される。さらに詳細情報3012については、リンクを張り、その中で原因、発生条件などを記載することとする。
【0142】
パッチ適用推奨日時3002では、推奨パッチ情報一覧3001で表示されたパッチを適用する際に適した時間帯が表示され、予測された予想適用時間および削除(リムーブ)に必要な時間が表示される(符号3013)。その下に具体的な時間帯が表示され、推奨順位3014、具体的な時間帯を表す日時3015、過去のパッチと環境において、同じ組合せで適用した実績があるか否かを表す過去の実績3016、パッチ適用に依存しない、異なる製品(パッチ)種別の数を示すカテゴリ数3017、万が一パッチ適用時に予想に反し時間を要し、予定どおり終わらない可能性がでてきた場合、適用を止め、削除に切り替える必要があると予測された日時を表すリムーブデットライン3018がある。
【0143】
リムーブデットライン3018は時間帯3015からパッチ適用推奨時間帯テーブル163のリムーブ時間2008を加味し、算出した時間である。図30の画面では、パッチの選択欄3003で選択し、再提示ボタン3019を押下することで、再リクエスト機能180へ引き継ぎ、推奨時間帯を検索し、図30と同じ形式の画面を再表示し、情報を提示することができる。またパッチの選択3003で選択し、ダウンロードボタン3020を押下することで、パッチをダウンロードできる。戻るボタン3021を押下すると、図29の画面に戻り、終了ボタン3022を押下すると画面が閉じ、終了する。
なお、この画面には、重要度の説明(符号3023)、該当度の説明(符号3024)およびカテゴリ数の説明(符号3025)を表示し、顧客に対しパッチ選択の判断基準を提供している。
【0144】
≪まとめ≫
本実施形態によれば、適用すべきパッチを顧客環境に応じて再抽出し、また、顧客システムへの適用の時間帯を提供することで、顧客側で煩雑な作業を行うことがなく、かつ、適切な情報を入手、閲覧することができる。
【0145】
≪その他≫
以上本発明の実施形態についての一例を示したが、本発明は、これに限定されず、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【0146】
例えば、ハードウェア、ソフトウェア、各フローチャートなどの具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【図面の簡単な説明】
【0147】
【図1A】顧客システムの予防保守を実現するシステム全体の構成図である。
【図1B】パッチ情報管理システム130の機能構成図である。
【図1C】顧客情報管理システム150の機能構成図である。
【図1D】パッチ抽出管理システム160の機能構成図である。
【図2】パッチ情報テーブルのデータ構造を示した図である。
【図3】修正箇所テーブルのデータ構造を示した図である。
【図4】発生条件テーブルのデータ構造を示した図である。
【図5】パッチ適用時間見積テーブルのデータ構造を示した図である。
【図6】パッチ適用パターン別時間見積テーブルのデータ構造を示した図である。
【図7】同時インストール製品テーブルのデータ構造を示した図である。
【図8】パッチ情報登録機能についての処理手順を示すフローチャートである。
【図9】パッチ見積算出機能についての処理手順を示すフローチャートである。
【図10】パッチ適用時間見積関数についての処理手順を示すフローチャートである。
【図11A】パッチ適用パターン別時間見積関数についての処理手順を示すフローチャートである。
【図11B】パッチ適用パターン別時間見積関数についての処理手順を示すフローチャートである。
【図12】顧客パッチ情報テーブルのデータ構造を示した図である。
【図13】顧客運用情報テーブルのデータ構造を示した図である。
【図14】顧客リクエスト情報テーブルのデータ構造を示した図である。
【図15】希望時間帯テーブルのデータ構造を示した図である。
【図16】顧客情報管理機能についての処理手順を示すフローチャートである。
【図17A】未稼動時間予測機能についての処理手順を示すフローチャートである。
【図17B】未稼動時間予測機能についての処理手順を示すフローチャートである。
【図18】未稼働時間帯抽出機能についての処理手順を示すフローチャートである。
【図19】リコメンデーションテーブルのデータ構造を示した図である。
【図20】パッチ適用推奨時間帯テーブルのデータ構造を示した図である。
【図21】パッチアドバイス処理機能についての処理手順を示すフローチャートである。
【図22】パッチ類似検索関数についての処理手順を示すフローチャートである。
【図23】パッチ自動判定関数についての処理手順を示すフローチャートである。
【図24】パッチ適用時間帯リクエスト機能についての処理手順を示すフローチャートである。
【図25】再リクエスト機能についての処理手順を示すフローチャートである。
【図26A】パッチ適用時間帯の抽出機能についての処理手順を示すフローチャートである。
【図26B】パッチ適用時間帯の抽出機能についての処理手順を示すフローチャートである。
【図27A】パッチ情報提供機能についての処理手順を示すフローチャートである。
【図27B】パッチ情報提供機能についての処理手順を示すフローチャートである。
【図28】未稼働時間帯抽出の要求画面の詳細図である。
【図29】パッチ適用時間帯抽出の要求画面の詳細図である。
【図30A】パッチ適用時間帯の情報提供画面および再リクエスト画面の詳細図である。
【図30B】パッチ適用時間帯の情報提供画面および再リクエスト画面の詳細図である。
【符号の説明】
【0148】
1 :インターネット
100:ソフトウェアベンダサーバ(ベンダサーバ)
110:顧客システム
111:管理対象システム
112:パッチ時間測定ツール
120:ソフトウェアサポートシステム(予防保守装置)
130:パッチ情報管理システム
131:パッチ情報DB
132:パッチ情報テーブル(ベンダ提供パッチ情報)
133:修正箇所テーブル
134:発生条件テーブル
135:パッチ適用時間見積DB
136:パッチ適用時間見積テーブル
137:パッチ適用パターン別時間見積テーブル
138:同時インストール製品テーブル
139:パッチ情報登録機能
140:パッチ見積算出機能
150:顧客情報管理システム
151:顧客運用情報DB
152:顧客パッチ情報テーブル(顧客適用パッチ情報)
153:顧客運用情報テーブル
154:顧客リクエスト情報テーブル
155:希望時間帯テーブル
156:顧客別ログDB(ログ情報)
157:顧客情報管理機能
158:未稼働時間予測機能
159:未稼働時間帯抽出機能
160:パッチ抽出管理システム
161:リコメンデーションDB
162:リコメンデーションテーブル
163:パッチ適用推奨時間帯テーブル
164:重要度情報DB
165:パッチアドバイス処理機能
170:パッチ適用時間帯リクエスト機能
180:再リクエスト機能
190:パッチ適用時間帯の抽出機能
200:パッチ情報提供機能
210:クライアント

【特許請求の範囲】
【請求項1】
ベンダがパッチを提供するベンダサーバおよび前記パッチを適用する複数の顧客システムと通信可能に接続し、前記顧客システムの予防保守を行う予防保守装置において、
前記パッチで修正される不具合の発生条件を含み、前記ベンダサーバから提供されるパッチを定めるベンダ提供パッチ情報と、
前記顧客システムに適用されているパッチを定める顧客適用パッチ情報と、
前記顧客システムの稼働実績および操作実績を定めるログ情報と、を有する記憶部と、
前記ベンダ提供パッチ情報を参照して、前記ベンダサーバから提供されるパッチで修正される不具合によるシステム障害の度合いを定めた重要度を設定する制御と、
前記ベンダ提供パッチ情報および前記ログ情報を参照して、前記顧客システムの操作実績が前記発生条件に該当する度合いを定めた該当度を設定する制御と、
前記ログ情報を参照して、前記稼働実績から前記顧客システムの停止時間帯を予測する制御と、
前記ベンダから公開されたパッチを提示する旨の要求を前記顧客システムから取得すると、前記顧客適用パッチ情報を参照して当該顧客システムに適用する必要のあるパッチとして前記ベンダ提供パッチ情報で定めたパッチのうち、当該顧客システムから指定された前記重要度の範囲および前記設定度の範囲に含まれ、かつ、当該顧客システムから指定された前記停止時間帯において適用することが可能であると見積もられるパッチを選定候補として前記顧客システムに提示する制御と、を実行する制御部とを有する
ことを特徴とする予防保守装置。
【請求項2】
前記制御部は、
ある顧客システムがパッチを適用したときに要した時間を当該顧客システムから取得し、当該パッチの適用に要する適用時間を見積もる制御と、
前記ベンダ提供パッチ情報で定めたパッチのうち、前記適用時間が前記停止時間帯に納まるパッチを、前記ベンダから公開されたパッチを提示する旨の要求をした顧客システムに提示する制御と、を実行する
ことを特徴とする請求項1に記載の予防保守装置。
【請求項3】
前記ベンダ提供パッチ情報には、前記パッチによる不具合の修正箇所が含まれ、
前記制御部は、
前記ベンダ提供パッチ情報で定めたパッチのうち、前記修正箇所が同じである類似パッチを、前記ベンダから公開されたパッチを提示する旨の要求をした顧客システムに提示する制御と、を実行する
ことを特徴とする請求項1に記載の予防保守装置。
【請求項4】
ベンダがパッチを提供するベンダサーバおよび前記パッチを適用する複数の顧客システムと通信可能に接続し、前記顧客システムの予防保守を行う予防保守装置による予防保守方法において、
前記予防保守装置の記憶部は、
前記パッチで修正される不具合の発生条件を含み、前記ベンダサーバから提供されるパッチを定めるベンダ提供パッチ情報と、
前記顧客システムに適用されているパッチを定める顧客適用パッチ情報と、
前記顧客システムの稼働実績および操作実績を定めるログ情報と、を有しており、
前記予防保守装置の制御部は、
前記ベンダ提供パッチ情報を参照して、前記ベンダサーバから提供されるパッチで修正される不具合によるシステム障害の度合いを定めた重要度を設定するステップと、
前記ベンダ提供パッチ情報および前記ログ情報を参照して、前記顧客システムの操作実績が前記発生条件に該当する度合いを定めた該当度を設定するステップと、
前記ログ情報を参照して、前記稼働実績から前記顧客システムの停止時間帯を予測するステップと、
前記ベンダから公開されたパッチを提示する旨の要求を前記顧客システムから取得すると、前記顧客適用パッチ情報を参照して当該顧客システムに適用する必要のあるパッチとして前記ベンダ提供パッチ情報で定めたパッチのうち、当該顧客システムから指定された前記重要度の範囲および前記設定度の範囲に含まれ、かつ、当該顧客システムから指定された前記停止時間帯において適用することが可能であると見積もられるパッチを選定候補として前記顧客システムに提示するステップと、を実行する
ことを特徴とする予防保守方法。
【請求項5】
前記制御部は、
ある顧客システムがパッチを適用したときに要した時間を当該顧客システムから取得し、当該パッチの適用に要する適用時間を見積もるステップと、
前記ベンダ提供パッチ情報で定めたパッチのうち、前記適用時間が前記停止時間帯に納まるパッチを、前記ベンダから公開されたパッチを提示する旨の要求をした顧客システムに提示するステップと、を実行する
ことを特徴とする請求項4に記載の予防保守方法。
【請求項6】
前記ベンダ提供パッチ情報には、前記パッチによる不具合の修正箇所が含まれ、
前記制御部は、
前記ベンダ提供パッチ情報で定めたパッチのうち、前記修正箇所が同じである類似パッチを、前記ベンダから公開されたパッチを提示する旨の要求をした顧客システムに提示するステップと、を実行する
ことを特徴とする請求項4に記載の予防保守方法。

【図1A】
image rotate

【図1B】
image rotate

【図1C】
image rotate

【図1D】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17A】
image rotate

【図17B】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26A】
image rotate

【図26B】
image rotate

【図27A】
image rotate

【図27B】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30A】
image rotate

【図30B】
image rotate