(57)【要約】【課題】本発明は、顧客システムのソフトウェアに対する予防保守サービスにおいて、顧客システムの稼動環境に応じたパッチ情報を提供し、更に適用する時間帯を提供することで、顧客の負担を低減する。【解決手段】予防保守を行うソフトウェアサポートシステム１２０では、パッチ情報ＤＢ１３１、パッチ適用時間見積ＤＢ１３５、顧客運用情報ＤＢ１５１、および顧客別ログＤＢ１５６から、顧客システム１１０の稼動環境に応じた推奨パッチを判断し、パッチ適用に必要な時間を見積した情報を保持する。また、顧客システム１１０の未稼働時間を予測し、パッチ適用に適切な時間帯の提示を行う。更に、前記推奨パッチの修正箇所と類似したパッチ情報を提供することで、顧客側での情報収集・整理の負荷を軽減させることができる。【選択図】図１Ａ
2010128581.tif 000002
【特許請求の範囲】
【請求項１】
ベンダがパッチを提供するベンダサーバおよび前記パッチを適用する複数の顧客システムと通信可能に接続し、前記顧客システムの予防保守を行う予防保守装置において、
前記パッチで修正される不具合の発生条件を含み、前記ベンダサーバから提供されるパッチを定めるベンダ提供パッチ情報と、
前記顧客システムに適用されているパッチを定める顧客適用パッチ情報と、
前記顧客システムの稼働実績および操作実績を定めるログ情報と、を有する記憶部と、
前記ベンダ提供パッチ情報を参照して、前記ベンダサーバから提供されるパッチで修正される不具合によるシステム障害の度合いを定めた重要度を設定する制御と、
前記ベンダ提供パッチ情報および前記ログ情報を参照して、前記顧客システムの操作実績が前記発生条件に該当する度合いを定めた該当度を設定する制御と、
前記ログ情報を参照して、前記稼働実績から前記顧客システムの停止時間帯を予測する制御と、
前記ベンダから公開されたパッチを提示する旨の要求を前記顧客システムから取得すると、前記顧客適用パッチ情報を参照して当該顧客システムに適用する必要のあるパッチとして前記ベンダ提供パッチ情報で定めたパッチのうち、当該顧客システムから指定された前記重要度の範囲および前記設定度の範囲に含まれ、かつ、当該顧客システムから指定された前記停止時間帯において適用することが可能であると見積もられるパッチを選定候補として前記顧客システムに提示する制御と、を実行する制御部とを有する
ことを特徴とする予防保守装置。
【請求項２】
前記制御部は、
ある顧客システムがパッチを適用したときに要した時間を当該顧客システムから取得し、当該パッチの適用に要する適用時間を見積もる制御と、
前記ベンダ提供パッチ情報で定めたパッチのうち、前記適用時間が前記停止時間帯に納まるパッチを、前記ベンダから公開されたパッチを提示する旨の要求をした顧客システムに提示する制御と、を実行する
ことを特徴とする請求項１に記載の予防保守装置。
【請求項３】
前記ベンダ提供パッチ情報には、前記パッチによる不具合の修正箇所が含まれ、
前記制御部は、
前記ベンダ提供パッチ情報で定めたパッチのうち、前記修正箇所が同じである類似パッチを、前記ベンダから公開されたパッチを提示する旨の要求をした顧客システムに提示する制御と、を実行する
ことを特徴とする請求項１に記載の予防保守装置。
【請求項４】
ベンダがパッチを提供するベンダサーバおよび前記パッチを適用する複数の顧客システムと通信可能に接続し、前記顧客システムの予防保守を行う予防保守装置による予防保守方法において、
前記予防保守装置の記憶部は、
前記パッチで修正される不具合の発生条件を含み、前記ベンダサーバから提供されるパッチを定めるベンダ提供パッチ情報と、
前記顧客システムに適用されているパッチを定める顧客適用パッチ情報と、
前記顧客システムの稼働実績および操作実績を定めるログ情報と、を有しており、
前記予防保守装置の制御部は、
前記ベンダ提供パッチ情報を参照して、前記ベンダサーバから提供されるパッチで修正される不具合によるシステム障害の度合いを定めた重要度を設定するステップと、
前記ベンダ提供パッチ情報および前記ログ情報を参照して、前記顧客システムの操作実績が前記発生条件に該当する度合いを定めた該当度を設定するステップと、
前記ログ情報を参照して、前記稼働実績から前記顧客システムの停止時間帯を予測するステップと、
前記ベンダから公開されたパッチを提示する旨の要求を前記顧客システムから取得すると、前記顧客適用パッチ情報を参照して当該顧客システムに適用する必要のあるパッチとして前記ベンダ提供パッチ情報で定めたパッチのうち、当該顧客システムから指定された前記重要度の範囲および前記設定度の範囲に含まれ、かつ、当該顧客システムから指定された前記停止時間帯において適用することが可能であると見積もられるパッチを選定候補として前記顧客システムに提示するステップと、を実行する
ことを特徴とする予防保守方法。
【請求項５】
前記制御部は、
ある顧客システムがパッチを適用したときに要した時間を当該顧客システムから取得し、当該パッチの適用に要する適用時間を見積もるステップと、
前記ベンダ提供パッチ情報で定めたパッチのうち、前記適用時間が前記停止時間帯に納まるパッチを、前記ベンダから公開されたパッチを提示する旨の要求をした顧客システムに提示するステップと、を実行する
ことを特徴とする請求項４に記載の予防保守方法。
【請求項６】
前記ベンダ提供パッチ情報には、前記パッチによる不具合の修正箇所が含まれ、
前記制御部は、
前記ベンダ提供パッチ情報で定めたパッチのうち、前記修正箇所が同じである類似パッチを、前記ベンダから公開されたパッチを提示する旨の要求をした顧客システムに提示するステップと、を実行する
ことを特徴とする請求項４に記載の予防保守方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベンダから提供される修正情報や修正内容をもとにして顧客システムで使用されているソフトウェアプログラムの改良版（パッチ等）を提供することを行う、顧客システムの予防保守の技術に関する。
【背景技術】
【０００２】
顧客に導入されているシステム環境（主に、使用されているＣＰＵ（Central Processing Unit）の種類やＤｉｓｋの種類、で定まる）は、システムの多様化に伴って、複数のソフトウェアがインストールされており、かつ、定期的に個々のソフトウェアの修正パッチが必要となることが多いものであり、パッチの適用にあたり日々システム管理者が多くの時間を割いていたのが現状である。
【０００３】
従来のパッチ管理・適用システムは、顧客システムのパッチ適用履歴（顧客システム情報）とソフトウェアベンダからのパッチ（ベンダ提供パッチ情報）による修正内容などで重要か否かを判断し、抽出して対象パッチを提示していた（特許文献１参照）。
【特許文献１】特開２００５−９９９６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述したパッチ管理および予防保守システムによる従来技術では、各ソフトウェア製品の適用前提条件を含めたベンダ提供パッチ情報を随時収集・保持し、ベンダ提供パッチ情報と顧客システム情報に基づいて現在どのパッチが適用されており、更新する必要があるかなどのチェックを行った後、ベンダ提供パッチ情報により重要度を判定し、推奨するパッチ情報を限定して顧客に対して適宜提供を行っていた。しかし、顧客が実際使用していない操作およびシステム環境で必要ないパッチを適用するなど実際の稼動環境に応じた対応ができておらず、顧客側で情報を整理・把握する時間や工数の増大はもちろん、無駄なパッチを適用することでハードディスク使用の無駄になる。
【０００５】
さらに重大な不具合が対策されたパッチで修正されたソースと同じモジュール上の不具合修正を持つ類似のパッチの存在や、抽出されたパッチを適用する時間に関する情報が提供されていないため、事前にパッチで修正された内容と同じパッチの調査、確認や適用に必要な時間の確認に時間や工数をかけていた。
【０００６】
そこで本発明では、顧客が本当に必要とし、かつ時間的制限に対しても適用可能なパッチを顧客に提供し、顧客のパッチ選定の負荷を軽減することを目的とする。
【課題を解決するための手段】
【０００７】
前記目的を達成するために、パッチの重要度などの分別を含むベンダ提供のパッチの詳細情報や顧客システムの構成情報やパッチ適用履歴情報に加え、個々の顧客システムの稼動ログ情報から対策された不具合の発生条件の該当度を提示し、さらに対策されたソースと同じモジュール上の不具合修正を持つ類似パッチの情報を提示することにより、顧客に対するパッチ情報の提供をアシストする機能を備えることで、顧客が本当に必要なパッチだけを抽出し、提供することができるようにする。
また、パッチ適用時間の見積機能を付加し、今後の停止時間帯を予測する機能を備えることで、顧客が適用したいパッチがあてられる時間帯を提供することができるようにする。
【０００８】
具体的には、まず、ソフトウェアサポートシステムで、各ソフトウェア製品の適用前提条件、不具合の修正箇所、発生条件を含めたベンダ提供パッチ情報を随時収集・保持し、各顧客システムにあるパッチ時間測定ツールから、パッチ適用にかかった時間、システム構成、システム環境の顧客システム情報を随時収集・保持し、さらにパッチ適用履歴、顧客システムの稼動ログ情報により詳細な顧客システム情報を顧客情報管理機能から収集・保持する。また、パッチ見積算出機能により、パッチ適用にかかる時間を予測し、また未稼働時間予測機能により、収集した顧客システム情報から顧客システムの未稼働時間を予測する。
次に、このベンダ提供パッチ情報と顧客システム情報に基づいて、現在どのパッチが適用されており、更新する必要がある否かについて重要度の判定を行い、その後、パッチで修正された不具合の発生条件と収集したシステムの稼動ログ情報により該当度の度合いを判定し、更にベンダ提供パッチ情報に基づいて、不具合の修正箇所が同じである類似パッチを検索してパッチの選定を行う。その後、顧客が指定する重要度や該当度などから推奨するパッチ情報を限定し、顧客にとって本当に必要としているパッチ情報を、パッチが適用可能な停止時間帯の情報とあわせて提供することで、顧客側での情報収集および整理の負荷を軽減させることができる。
【０００９】
これにより、ベンダ提供パッチ情報、顧客システム情報、および稼動ログ情報から顧客システムにとって重要度、該当度の観点から適用すべきパッチを抽出し、また同じ修正箇所をもつ類似パッチ情報を提供することで、ユーザにかかるパッチ選定の負荷を軽減できる。
また、パッチ適用にかかる予想時間と、今後予定されるシステム停止時間にパッチを適用可能か否かの情報を提供することで、パッチ適用に関するスケジュールを簡易化することができる。
なお、詳細は後記する。
【発明の効果】
【００１０】
本発明によれば、顧客が本当に必要とし、かつ時間的制限に対しても適用可能なパッチを顧客に提供し、顧客のパッチ選定の負荷を軽減することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を、図面を用いて詳細に説明する。
図１Ａは、顧客システムの予防保守を実現するシステム全体の構成図である。図１Ａにおいて、ベンダが使用するソフトウェアベンダサーバ（ベンダサーバ）１００、ベンダの顧客（ユーザ）が使用する顧客システム１１０、予防保守を行うサポート担当者が使用するソフトウェアサポートシステム（予防保守装置）１２０、提供されたパッチの中から希望するパッチを選定するユーザが使用するクライアント２１０は、インターネット１を介して接続されている。ソフトウェアベンダサーバ１００、顧客システム１１０、クライアント２１０は、それぞれ複数あってもよい。
【００１２】
顧客システム１１０は、パッチ適用の管理対象となる管理対象システム１１１（以下、単に「システム」と称する場合がある）と、管理対象システム１１１にパッチを適用するのにかかった時間を測定し、その時のシステム構成と環境を収集するパッチ時間測定ツール１１２を備えている。管理対象システム１１１とパッチ時間測定ツール１１２は複数あってもよい。
【００１３】
パッチ時間測定ツール１１２は、管理対象システム１１１にパッチが適用されると、管理対象システム１１１のＣＰＵ名とＤｉｓｋ名を含むハードウェア情報と、あるパッチと同時にインストールした製品名（パッチ）とそのバージョン、少なくとも適用か削除かを示す更新種別、さらに更新日時等を含む情報を後述のパッチ見積算出機能１４０（図１Ｂ参照）へ送付する。
【００１４】
ソフトウェアサポートシステム１２０は、パッチ情報管理システム１３０、顧客情報管理システム１５０、パッチ抽出管理システム１６０、パッチ適用時間帯リクエスト機能１７０、再リクエスト機能１８０、パッチ適用時間帯の抽出機能１９０、パッチ情報提供機能２００を備えている。
【００１５】
図１Ｂは、パッチ情報管理システム１３０の機能構成図である。
パッチ情報管理システム１３０は、ソフトウェアベンダサーバ１００が提供しているパッチ情報を保持するパッチ情報ＤＢ（Data Base）１３１と、パッチ適用に必要な時間を保持するパッチ適用時間見積ＤＢ１３５とを利用し、各ソフトウェアベンダのパッチ情報を収集し、パッチ適用に必要な時間の見積を行うためのパッチ情報登録機能１３９とパッチ見積算出機能１４０を備えている管理システムである。
【００１６】
パッチ情報ＤＢ１３１は、パッチを適用する際にソフトウェアベンダサーバ１００から抽出したパッチ情報を格納するデータベースであり、ソフトウェアベンダが提供している情報を格納したパッチ情報テーブル１３２（ベンダ提供パッチ情報）、不具合の修正箇所の情報を格納した修正箇所テーブル１３３、パッチで解決された不具合の発生条件の情報を格納した発生条件テーブル１３４がある。
【００１７】
パッチ適用時間見積ＤＢ１３５は、顧客システム１１０のパッチ時間測定ツール１１２から抽出したパッチ適用の情報を格納するデータベースであり、個々のパッチを適用する際に必要であった実績値を格納したパッチ適用時間見積テーブル１３６と、適用したパッチおよび適用したときのハードウェア環境の組み合わせ別実績値を格納したパッチ適用パターン別時間見積テーブル１３７と、そのパッチ組み合わせ内容（製品名およびバージョン）を格納した同時インストール製品テーブル１３８とがある。
【００１８】
図１Ｃは、顧客情報管理システム１５０の機能構成図である。
顧客情報管理システム１５０は、各顧客の管理対象システム１１１から収集した適用済みのパッチ情報と運用情報、さらにパッチ適用に関するリクエスト情報を保持する顧客運用情報ＤＢ１５１と、稼動ログを顧客別に保持する顧客別ログＤＢ１５６を利用し、各顧客の管理対象システム１１１のパッチ情報を収集するための顧客情報管理機能１５７と、各顧客の管理対象システム１１１の未稼働時間帯を予測する未稼働時間予測機能１５８と、予測された未稼働時間帯を抽出する未稼働時間帯抽出機能１５９とを備えている管理システムである。
【００１９】
顧客運用情報ＤＢ１５１は、各顧客システム１１０に適用されているパッチ情報と管理対象システム１１１向けに予測された未稼働時間帯の情報、および顧客がパッチ適用において希望した時間帯の情報を格納するデータベースであり、顧客システム１１０に既に適用されている製品（パッチ）を格納した顧客パッチ情報テーブル（顧客適用パッチ情報）１５２、顧客システム１１０の稼動実績から未稼働時間帯の情報を格納した顧客運用情報テーブル１５３、顧客が指定したパッチの検索条件および希望時間帯を格納した顧客リクエスト情報テーブル１５４と希望時間帯テーブル１５５がある。
【００２０】
顧客別ログＤＢ（ログ情報）１５６は、各顧客システム１１０の管理対象システム１１１から収集した稼動実績ログを格納するデータベースであり、管理対象システム１１１の稼動、停止の履歴やデータの追加、変更、削除等の変更履歴情報等が格納されており、後述する顧客情報管理機能１５７により定期的に入手し、登録する。例えば、稼動実績ログにはｓｔａｒｔｕｐコマンドのようなデータベース製品を起動するコマンドや、ｓｈｕｔｄｏｗｎコマンドのようなデータベース製品を停止するコマンドの履歴が日時と共に格納されており、またａｌｔｅｒコマンドやｄｅｌｅｔｅコマンドのようなデータ操作するようなコマンドの履歴が日時と共に格納されているため、稼動実績や操作実績も格納されている。
【００２１】
図１Ｄは、パッチ抽出管理システム１６０の機能構成図である。
パッチ抽出管理システム１６０は、ソフトウェアベンダから新たにアラート情報（新たなパッチが公開されたことを示す情報）が提供され、サポート担当者によってパッチ情報ＤＢ１３１の更新が行われた際に、パッチアドバイス処理機能１６５により、その更新された情報が顧客システム１１０に適用すべきか否かを、重要度情報ＤＢ１６４やパッチ情報ＤＢ１３１から自動的に分別し、また、そのパッチと修正箇所が類似した推奨すべき類似パッチ、および顧客別ログＤＢ１５６から発生条件の該当度の情報を含めて、その更新された情報をリコメンデーションＤＢ１６１に保持するシステムである。また顧客要求がされた際に、パッチ適用時間帯の抽出機能１９０により、顧客が選択したパッチが適用できる推奨時間帯をパッチ適用推奨時間帯テーブル１６３に保持するシステムでもある。
【００２２】
リコメンデーションＤＢ１６１は、パッチアドバイス処理機能１６５により抽出されたパッチ情報、およびパッチ適用時間帯の抽出機能１９０により抽出されたパッチ適用の推奨時間帯を格納しているデータベースであり、その中にはリコメンデーションテーブル１６２とパッチ適用推奨時間帯テーブル１６３がある。
【００２３】
重要度情報ＤＢ１６４は、システムの障害の内容によってランク付けされた情報が格納されているデータベースである。この情報は、具体的には、障害による影響度の大きさによって数値化した重要度と、障害内容のキーワードが記載されている障害内容キーワードとが対応付けられたテーブルとして格納されている。重要度は、ソフトウェアサポートシステム１２０にて、例えばあらかじめ「１」、「２」の２段階に分けられている。重要度１は、「ＯＳパニック」、「データ損失」、「データ破壊」、「システムクラッシュ」、「ハング」、といった深刻な障害を示し、それ以外は重要度２とする。障害内容キーワードには、日本語だけではなく英語でのキーワードも含んでおり、それも検索対象とする。例えば、「OSパニック」と「OS Panic」は同等とする。
【００２４】
パッチ情報登録機能１３９により、パッチ情報ＤＢ１３１のパッチ情報テーブル１３２、修正箇所テーブル１３３、発生条件テーブル１３４で更新が発生したパッチ情報をパッチ適用時間見積ＤＢ１３５のパッチ適用時間見積テーブル１３６、パッチ適用パターン別時間見積テーブル１３７、同時インストール製品テーブル１３８へ登録し、顧客システム１１０のパッチ時間測定ツール１１２で抽出した、実際に行ったパッチ適用時の情報をパッチ見積算出機能１４０で受信し、パッチ適用時間見積ＤＢ１３５のパッチ適用時間見積テーブル１３６、パッチ適用パターン別時間見積テーブル１３７、同時インストール製品テーブル１３８へ今後のパッチ適用時間を見積するために必要な情報を蓄える。
【００２５】
次に、定期的に顧客情報管理機能１５７が起動し、対象の顧客システム１１０にインストールされているパッチ情報を顧客運用情報ＤＢ１５１の顧客パッチ情報テーブル１５２に格納し、稼動実績や操作実績の情報を顧客別ログＤＢ１５６へ格納する。
【００２６】
次に、定期的に未稼働時間予測機能１５８が起動し、顧客別ログＤＢ１５６から未稼働時間帯を解析し、解析結果を顧客運用情報テーブル１５３に格納する。
【００２７】
次に、定期的にパッチアドバイス処理機能１６５が起動し、パッチ情報テーブル１３２と顧客パッチ情報テーブル１５２から、まだ該当する顧客システム１１０にインストールされていない、かつ重要と判断したパッチを抽出し、リコメンデーションテーブル１６２へ格納する。
【００２８】
その後、抽出したパッチにより修正されたモジュールと同じ修正モジュールをもつパッチを修正箇所テーブル１３３から抽出し、抽出したパッチ（類似パッチ）をリコメンデーションテーブル１６２へ格納する。
【００２９】
次に抽出し、リコメンデーションテーブル１６２へ格納されたパッチに対して、修正された不具合の発生条件を発生条件テーブル１３４から抽出し、顧客別ログＤＢ１５６からどの程度該当するかを検索し、その結果をリコメンデーションテーブル１６２に反映する。
【００３０】
ユーザがクライアント２１０からパッチ情報提供機能２００を起動し、顧客名とシステム名を指定すると、未稼働時間帯抽出機能１５９により顧客運用情報テーブル１５３から指定された顧客名とシステム名に該当する未稼働時間帯を抽出し、今後予想される未稼働時間帯をユーザへ表示する。
【００３１】
次にユーザがクライアント２１０から抽出対象のパッチの条件と、希望する未稼働時間帯を指定すると、パッチ適用時間帯リクエスト機能１７０およびパッチ適用時間帯の抽出機能１９０により、指定された条件内容を顧客リクエスト情報テーブル１５４、および希望時間帯テーブル１５５へ格納し、またリコメンデーションテーブル１６２とパッチ適用時間見積ＤＢ１３５から該当パッチを抽出、かつ該当パッチを適用するために必要な時間を算出し、更に該当パッチを適用することが可能な時間帯を検索し、その結果をパッチ適用推奨時間帯テーブル１６３へ格納して、ユーザへ表示する。
【００３２】
また、抽出結果のパッチの中から特定のパッチをユーザが指定すると、再リクエスト機能１８０およびパッチ適用時間帯の抽出機能１９０により、パッチ適用時間見積ＤＢ１３５から該当パッチを適用するために必要な時間を再度算出し、該当パッチを適用ことが可能な時間帯を検索し、その結果をパッチ適用推奨時間帯テーブル１６３へ格納して、ユーザへ表示する。
【００３３】
なお、ソフトウェアベンダサーバ１００、顧客システム１１０、ソフトウェアサポートシステム１２０、クライアント２１０は、それぞれ入力部、表示部、通信部、制御部、記憶部、といったハードウェア構成を備えたコンピュータである。また、前記コンピュータで行われる処理は、それぞれの記憶部に格納されたプログラム（処理部；主に、パッチ情報登録機能１３９等の機能をいう）が記憶領域にロードされ、それぞれの制御部により実行されることにより、前記コンピュータ上に具現化される各処理部による実行とされるものである。また、各プログラムは予め記憶部に格納されても良いし、他の記憶媒体または通信媒体（ネットワークまたはネットワークを伝搬する搬送波）を介して、必要なときに導入されても良い。
【００３４】
次に、パッチ情報システム１３０について詳細に説明する。
パッチ情報テーブル１３２は、図２に示すように、製品名２０１、製品におけるパッチバージョン情報を表すバージョン２０２、パッチ適用に依存関係がない製品（パッチ）のカテゴリを示す製品カテゴリ２０３、ベンダが提供している該当パッチのサポート契約者（つまり、顧客）に対するダウンロード回数を比率として表すダウンロード実績２０４、該当パッチについて前提となるパッチがある場合はそれを示す前提パッチ２０５、事後に適用する必要のあるパッチ情報がある場合はその情報を表す後継パッチ２０６、該当パッチが修正された日付を表す修正日２０７、パッチの概要およびパッチ番号やキーワード等が記載されている修正内容２０８、ソフトウェアベンダがパッチの適用に必要な時間（分）を目安として定義した適用時間２０９、ソフトウェアベンダがパッチの削除に必要な時間（分）を目安として定義したリムーブ時間２１０、パッチで修正されたモジュールの一覧が格納されている修正箇所テーブル１３３の外部キーを表す修正箇所２１１、パッチによって対策された不具合の発生条件が格納されている発生条件テーブル１３４の外部キーを表す発生条件２１２、その発生条件の個数を表す発生条件数２１３が定義されている。ソフトウェアベンダサーバ１００でパッチが新たに公開されたとき、そのパッチの詳細情報を入手したのち、サポート担当者がパッチ情報テーブル１３２に格納すべき情報を登録する。
【００３５】
修正箇所テーブル１３３は、図３に示すように、パッチ情報テーブル１３２の修正箇所２１１からのリンク元を表す修正箇所キー３０１とパッチで修正されたモジュール名（ソース名）を表すモジュール名３０２が定義されており、パッチ情報テーブル１３２にある各パッチの修正されたモジュール名が登録されている。ソフトウェアベンダサーバ１００でパッチが新たに公開されたとき、そのパッチの詳細情報を入手したのち、サポート担当者がパッチ情報テーブル１３２と同じタイミングで修正箇所テーブル１３３に格納すべき情報を登録する。
【００３６】
発生条件テーブル１３４は、図４に示すように、パッチ情報テーブル１３２の発生条件２１２からのリンク元を表す発生条件キー４０１、パッチで対策された不具合の種類を表すカテゴリ４０２、パッチで対策された不具合の発生条件の該当部分（対象のメモリ、ファイル、パラメータなど）を表す該当部分４０３、パッチで対策された不具合の発生条件の再現アクション名（コマンド名）を表すアクション４０４、アクション４０４のアクション名によって変更前の値の範囲の最小値を表す変更前ｍｉｎ４０５、変更前の値が固定値か（「＝」）、あるいは範囲があるか（「＜」）を表す符号Ｂ４０６、変更前の値の範囲の最大値を表す変更前ｍａｘ４０７、アクション４０４のアクション名によって変更後の値の範囲の最小値を表す変更後ｍｉｎ４０８、変更後の値が固定値か（「＝」）、あるいは範囲があるか（「＜」）を表す符号Ａ４０９、変更後の値の範囲の最大値を表す変更後ｍａｘ４１０が定義されており、パッチ情報テーブル１３２にある各パッチで修正された不具合の発生条件の情報が登録されている。
【００３７】
例えば、図２に示すパッチ情報テーブルの製品名２０１の「Ａ１製品」、かつ、バージョン２０２の「０８−０４」について、このパッチによって修正されたモジュール名は、図３の修正箇所キー３０１が修正箇所２１１の「１０００１」と同じ値をもつ列に該当する、モジュール名３０２の「ＡＡＡＡ．ｃ」と「ＢＢＢＢ．ｃ」であることを示している。また、同製品の発生条件は、図４の発生条件キー４０１が発生条件２１２の「Ａ０００１」と同じ値を持つ行に該当し（符号４１１、４１２参照）、「Ｐａｒａｍｅｔｅｒ＿Ａ」を「ａｌｔｅｒ」で「２００」から「３００」の値を「５００」を超える値へ変更し、また、「Ｔａｂｌｅ＿Ａ」を「ｄｅｌｅｔｅ」することで、「ハング」が発生することを示している。ソフトウェアベンダサーバ１００でパッチが新たに公開されたとき、そのパッチの詳細情報を入手したのち、サポート担当者がパッチ情報テーブル１３２と同じタイミングで発生条件テーブル１３４に格納すべき情報を登録する。
【００３８】
パッチ適用時間見積テーブル１３６は、図５に示すように、製品名５０１、製品におけるパッチバージョン情報を表すバージョン５０２、パッチ適用の実績値の平均（分）を表す適用平均時間５０３、パッチ適用の実績値の最大時間（分）を表す適用最大時間５０４、パッチ適用の実績回数を表す適用累計回数５０５、パッチ適用の実績値の累計時間（分）を表す適用累計時間５０６、パッチ削除の実績値の最大時間（分）を表すリムーブ時間５０７が定義されている。これらの値は、後述するパッチ情報登録機能１３９とパッチ見積算出機能１４０により、自動的に過去に適用したパッチの実績値が登録される。
【００３９】
パッチ適用パターン別時間見積テーブル１３７は、図６に示すように、同時にインストールした製品名（パッチ）が格納されている同時インストール製品テーブル１３８の外部キーを表す同時インストール番号６０１、ハードウェア環境別に適用したパッチであるパターン別パッチの適用の実績値の平均（分）を表す適用平均時間６０２、前記パターン別パッチ適用の実績値の最大時間（分）を表す適用最大時間６０３、前記パターン別パッチ適用の実績回数を表す適用累計回数６０４、前記パターン別パッチ適用の実績値の累計時間（分）を表す適用累計時間６０５、前記パターン別パッチ削除の実績値の最大時間（分）を表すリムーブ時間６０６、前記パターン別パッチ適用および削除を行った際のＣＰＵ名を表すＣＰＵ名６０７、前記パターン別パッチ適用および削除を行った際のＤｉｓｋ名を表すＤｉｓｋ名６０８が定義されている。これらの値は、後述するパッチ見積算出機能１４０により情報が自動的に適用したパッチの実績値が同時にインストールした製品と環境の組み合わせ別に登録される。
【００４０】
同時インストール製品テーブル１３８は、図７に示すように、パッチ適用パターン別時間見積テーブル１３７の同時インストール番号６０１からのリンク元を表す同時インストールキー７０１、同時にインストールした製品を表す製品名７０２、製品におけるパッチバージョン情報を表すバージョン７０３が定義されており、あるパッチと同時にインストールされた製品とバージョンが登録されている。
【００４１】
例えば、図６の同時インストール番号６０１が「Ｂ０００１」のパッチ適用の組み合わせ実績値について、同時にインストールした製品およびバージョンは図７の同時インストールキー７０１と同じ値をもつ行に該当し（符号７０４、７０５参照）、「Ｐ１製品」の「０２−０１」と、「Ｑ２製品の「０３−１０」を同時にインストールしたことを示している。これらは、後述するパッチ見積算出機能１４０により情報が自動的にパッチ適用パターン別時間見積テーブル１３７と同じタイミングで登録される。
【００４２】
図８は、パッチ情報登録機能１３９についての処理手順を示すフローチャートである。図８に示すように、この処理は、ソフトウェアベンダから新しいパッチ情報が提供され、サポート担当者によってパッチ情報テーブル１３２への追加・更新の指示が行われたときに開始する。まず、追加・更新されたパッチがパッチ適用時間見積テーブル１３６にパッチの有無や更新されたものであるか否か、つまりすでにパッチ適用時間見積テーブル１３６に登録されているか否かを判定する（ステップＳ８０１）。
【００４３】
パッチが無い場合、および更新があった場合（ステップＳ８０１でＮｏ）、該当パッチ、夫々の前提パッチおよび後継パッチを収集し（ステップＳ８０２）、前提パッチおよび後継パッチを含めた該当パッチの情報を詳細情報としてパッチ適用時間見積テーブル１３６に追加し、また前提パッチおよび後継パッチについては詳細情報をパッチ情報テーブル１３２、修正箇所テーブル１３３、発生条件テーブル１３４へ登録をする（ステップＳ８０３）。
その際、パッチ情報テーブル１３２の適用時間２０９の値をパッチ適用時間見積テーブル１３６の適用平均時間５０３、適用最大時間５０４、適用累計時間５０６へ登録し、適用累計回数５０５は１と登録する。またパッチ情報テーブル１３２のリムーブ時間２１０の値は、適用見積テーブル１３６のリムーブ時間５０７へ登録する。
【００４４】
一方、ステップＳ８０１の判定で、パッチが存在し、更新がない場合は（ステップＳ８０１でＹｅｓ）、本処理を終了する。
【００４５】
図９は、パッチ見積算出機能１４０についての処理手順を示すフローチャートである。図９に示すように、この処理は、パッチ時間測定ツール１１２からの受信したときに開始する。まず、後述するパッチ適用時間見積関数をコールして処理を引き渡す（ステップＳ９０１）。その後、後述するパッチ適用パターン別時間見積関数をコールして処理を引き渡し（ステップＳ９０２）、本処理を終了する。
【００４６】
図１０は、パッチ見積算出機能１４０からコールされるパッチ適用時間見積関数の処理手順を示すフローチャートである。図１０に示すように、パッチ見積算出機能１４０から引き継がれた際、パッチ時間測定ツール１１２から送られた情報がパッチ適用の情報（適用時間の更新）であるか否かを判定する（ステップＳ１００１）。
【００４７】
パッチ適用の情報でない場合は（ステップＳ１００１でＮｏ）、ステップＳ１００７の処理へ移る。ステップＳ１００１で、パッチ適用の情報である場合（ステップＳ１００１でＹｅｓ）、測定結果（パッチ時間測定ツール１１２による処理の結果）がパッチ適用時間見積テーブル１３６の該当パッチの適用最大時間５０４の値と比較して大きいか否かを判定する（ステップＳ１００２）。大きい場合は（ステップＳ１００２でＹｅｓ）、測定結果が適用最大時間５０４の値の２倍以上か否かを判定する（ステップＳ１００３）。測定結果が２倍以上の場合は（ステップＳ１００３でＹｅｓ）、何らかの理由による異常値と判断してパッチ適用時間見積テーブル１３６を更新せずに本処理を終了する（パッチ見積算出機能１４０へ戻る）。
【００４８】
ステップＳ１００２で、パッチ適用時間見積テーブル１３６の該当パッチの適用最大時間５０４の値と比較して大きくない場合は（ステップＳ１００２でＮｏ）、測定結果が適用平均時間５０３の値（平均時間）の半分以下か否かを判定する（ステップＳ１００４）。半分以下の場合は（ステップＳ１００４でＹｅｓ）、何らかの理由による異常値と判断してパッチ適用時間見積テーブル１３６を更新せずに本処理を終了する。一方、ステップＳ１００４で、測定結果が半分以下でない場合は（ステップＳ１００４でＮｏ）、ステップＳ１００６の処理へ移る。
【００４９】
ステップＳ１００３で、測定結果が適用最大時間５０４の２倍以上でない場合（ステップＳ１００３でＮｏ）、パッチ適用時間見積テーブル１３６の適用最大時間５０４をパッチ時間測定ツール１１２から送られた時間（測定結果）に更新する（ステップＳ１００５）。次に、パッチ時間測定ツール１１２から送られた時間を適用累計時間５０６に加算し、かつ、適用累計回数５０５に１を加算し、さらに適用累計時間５０６を適用累計回数５０５で除算した値を、平均時間として適用平均時間５０３へ更新する（ステップＳ１００６）。
【００５０】
次に、パッチ時間測定ツール１１２から送られた情報がパッチ削除の情報（削除時間の更新）であるか否かを判定する（ステップＳ１００７）。パッチ削除の情報でない場合は（ステップＳ１００７でＮｏ）、本処理を終了する。ステップＳ１００７で、パッチ削除の情報である場合（ステップＳ１００７でＹｅｓ）、測定結果がパッチ適用時間見積テーブル１３６の該当パッチのリムーブ時間５０７の値と比較して大きいか否か判定する（ステップＳ１００８）。
【００５１】
ステップＳ１００８で、大きい場合は（ステップＳ１００８でＹｅｓ）、測定結果がリムーブ時間５０７の値の２倍以上であるか否かを判定する（ステップＳ１００９）。ステップＳ１００９で、測定結果が２倍以上でない場合は（ステップＳ１００９でＮｏ）、パッチ適用時間見積テーブル１３６のリムーブ時間５０７をパッチ時間測定ツール１１２から送られた時間（測定結果）に更新し（ステップＳ１０１０）、パッチ見積算出機能１４０へ処理を戻して本処理を終了する。
【００５２】
ステップＳ１００８で、測定結果が大きくない場合（ステップＳ１００８でＮｏ）、および、ステップＳ１００９で、測定結果が２倍以上の場合は（ステップＳ１００９でＹｅｓ）、何らかの理由による異常値として処理を終了する。
図１０のフローにより、他の実績値と比較して異常値だった場合を排除し、パッチの適用や削除にかかった時間の実績値を蓄積する。
【００５３】
図１１（図１１Ａと図１１Ｂの総称）は、パッチ見積算出機能１４０からコールされるパッチ適用パターン別時間見積関数の処理手順を示すフローチャートである。図１１に示すように、パッチ見積算出機能１４０から引き継がれた際、パッチ時間測定ツール１１２から送られた情報がパッチ適用の情報（適用時間の更新）であるか否かを判定する（ステップＳ１１０１）。
【００５４】
パッチ適用の情報であった場合（ステップＳ１１０１でＹｅｓ）、測定した環境（パッチ時間測定ツール１１２による処理の結果：測定結果）がパッチ適用パターン別時間見積テーブル１３７のＣＰＵ名６０７とＤｉｓｋ名６０８、および同時インストール製品テーブル１３８の製品名７０２とバージョン７０３と同じ適用パターンであるか否か、つまり測定した環境と同じ適用パターンがあるか否かを判定（ステップＳ１１０２）。一方、ステップＳ１１０１でパッチ適用の情報でない場合は（ステップＳ１１０１でＮｏ）、ステップＳ１１０９の処理へ移る。
【００５５】
ステップＳ１１０２で、同じ適用パターン（組み合わせ）がない場合は（ステップＳ１１０２でＮｏ）、測定結果（適用時間）および組み合わせをパッチ適用パターン別時間見積テーブル１３７と同時インストール製品テーブル１３８へ追加し（ステップＳ１１０３）、本処理を終了する（パッチ見積算出機能１４０へ戻る）。
【００５６】
一方、ステップＳ１１０２で同じ適用パターン（組み合わせ）がある場合（ステップＳ１１０２でＹｅｓ）、測定結果が適用最大時間６０３の値と比較して大きいか否かを判定する（ステップＳ１１０４）。ステップＳ１１０４で、大きい場合は（ステップＳ１１０４でＹｅｓ）、測定結果が適用最大時間６０３の２倍以上か否かを判定し（ステップＳ１１０５）、大きくない場合は（ステップＳ１１０４でＮｏ）、測定結果が適用平均時間６０２の値（平均時間）の半分以下か否かを判定する（ステップＳ１１０６）。
【００５７】
ステップＳ１１０５で、測定結果が適用最大時間６０３の２倍以上でない場合（ステップＳ１１０５でＮｏ）、パッチ適用パターン別時間見積テーブル１３７の適用最大時間６０３をパッチ時間測定ツール１１２から送られた時間（測定結果）に更新する（ステップＳ１１０７）。ステップＳ１１０５の処理で２倍以上の場合は（ステップＳ１１０５でＹｅｓ）、何らかの理由による異常値と判断してパッチ適用パターン別時間見積テーブル１３７と同時インストール製品テーブル１３８を更新せずに本処理を終了する。
【００５８】
ステップＳ１１０７で、適用最大時間６０３を更新した後、パッチ時間測定ツール１１２から送られた時間を適用累計時間６０５に加算し、かつ、適用累計回数６０４に１を加算し、さらに適用累計時間６０５を適用累計回数６０４で除算した値を、平均時間として適用平均時間６０２へ更新する（ステップＳ１１０８）。
【００５９】
ステップＳ１１０６で、測定結果が平均時間の半分以下の場合は（ステップＳ１１０６でＹｅｓ）、何らかの理由による異常値と判断してパッチ適用パターン別時間見積テーブル１３７と同時インストール製品テーブル１３８を更新せずに本処理を終了する。また、ステップＳ１１０６で、測定結果が平均時間の半分を超えている場合は（ステップＳ１１０６でＮｏ）、ステップＳ１１０８へ移る。
【００６０】
ステップＳ１１０８の後、パッチ時間測定ツール１１２から送られた情報がパッチ削除の情報（削除時間の更新）であるか否かを判定する（ステップＳ１１０９）。パッチ削除の情報でない場合は（ステップＳ１１０９でＮｏ）、本処理を終了する。一方、パッチ削除の情報であった場合は（ステップＳ１１０９でＹｅｓ）、測定した環境がパッチ適用パターン別時間見積テーブル１３７のＣＰＵ名６０７とＤｉｓｋ名６０８、および同時インストール製品テーブル１３８の製品名７０２とバージョン７０３と同じ削除パターンであるか否か、つまり測定した環境と同じ削除パターンがあるか否かを判定する（ステップＳ１１１０）。
【００６１】
ステップＳ１１１０で、同じ削除パターン（組み合わせ）がない場合は（ステップＳ１１１０でＮｏ）、測定結果（削除時間）および組み合わせをパッチ適用パターン別時間見積テーブル１３７と同時インストール製品テーブル１３８へ追加し（ステップＳ１１１１）、本処理を終了する。
【００６２】
一方、ステップＳ１１１０で、同じ削除パターンがある場合は（ステップＳ１１１０でＹｅｓ）、測定結果がリムーブ時間６０６の値より大きいか否かを判定（ステップＳ１１１２）する。
【００６３】
ステップＳ１１１２で、大きい場合は（ステップＳ１１１２でＹｅｓ）、測定結果がリムーブ時間６０６の値の２倍以上であるか否かを判定する（ステップＳ１１１３）。測定結果が２倍以上でない場合は（ステップＳ１１１３でＮｏ）、パッチ適用パターン別時間見積テーブル１３７のリムーブ時間６０６をパッチ時間測定ツール１１２から送られた時間（測定結果）に更新し（ステップＳ１１１４）、パッチ見積算出機能１４０へ処理を戻して本処理を終了する。
【００６４】
ステップＳ１１１２で、測定結果が大きくない場合（ステップＳ１１１２でＮｏ）、および、ステップＳ１１１３で、測定結果が２倍以上である場合は（ステップＳ１１１３でＹｅｓ）、いずれも本処理を終了する。
図１１のフローにより、パッチの適用や削除がされた環境と同時適用のパッチの組み合わせ別に実績値を加味し、他の実績値と比較して異常値だった場合を排除し、適用や削除に必要な時間を予測するデータを蓄積する。
【００６５】
次に、顧客情報管理システム１５０について詳細に説明する。
顧客情報管理システム１５０が備える顧客パッチ情報テーブル１５２は、図１２に示すように、顧客名１２０１、システム名１２０２、適用されている製品（パッチ）名を表す製品名１２０３、製品におけるパッチバージョン情報を表すバージョン１２０４が定義されている。後述する顧客情報管理機能１５７により定期的に対象顧客のパッチ適用状況を入手し、顧客パッチ情報テーブル１５２にそのパッチ適用状況として前記した値を登録する。
【００６６】
顧客運用情報テーブル１５３は、図１３に示すように、顧客毎に、個々の時間帯にユニークに付与した番号を表す項番１３０１、顧客システム１１０のシステム名１３０２、システムの未稼働時間帯の開始日時を表す開始日時１３０３、その終了日時を表す終了日時１３０４、未稼働時間帯の開始日時から終了日時までの時間（分）を表す合計時間１３０５、未稼働として予測した根拠を、番号（根拠Ｆｌｇ）で分類して示す根拠１３０６が定義されている。後述する未稼働時間予測機能１５８により定期的に顧客別ログＤＢ１５６から未稼働時間帯を予測し、顧客運用情報テーブル１５３にその未稼働時間帯を登録する。
【００６７】
根拠１３０６には、根拠種別（根拠Ｆｌｇ）に１から５が格納され、それぞれの値の定義は次の通りである。
１：毎日定期的に未稼働の時間帯がある
２：毎週定期的に未稼働の時間帯がある
３：毎月同日に定期的に未稼働の時間帯がある
４：毎期の第n曜日に定期的に未稼働の時間帯がある
５：毎年、定期的に未稼働の時間帯がある
【００６８】
顧客リクエスト情報テーブル１５４は、図１４に示すように、顧客名１４０１、システム名１４０２、障害による影響度の大きさによって１から２の数値で定義され、顧客が検索条件で選択した重要度の範囲を表す重要度範囲１４０３、パッチによって修正された不具合の発生条件を１から４の数値で定義され、顧客が検索条件で選択した該当度の範囲を表す該当度範囲１４０４、顧客が検索条件で選択したパッチ適用の時間帯を表す後述の希望時間帯テーブル１５５への外部キーを表す時間帯１４０５、顧客が検索条件で指定したＣＰＵ名称を表すＣＰＵ名１４０６、顧客が検索条件で指定したＤｉｓｋ名称を表すＤｉｓｋ名１４０７が定義されている。後述するパッチ適用時間帯リクエスト機能１７０、および再リクエスト機能１８０により顧客リクエスト情報テーブル１５４に前記した値を登録する。
【００６９】
重要度範囲１４０３に格納される数値の定義は次の通りである。
１：ＯＳパニック、データ損失、データ破壊、システムクラッシュ、ハングといった最重要なものに当てはまる
２：１以外のその他エラー
【００７０】
また、該当度範囲１４０４に格納される数値の定義は次の通りである。
１：全ての発生条件に当てはまる
２：全てではないが半分以上の発生条件に当てはまる
３：半分未満〜１つ以上の発生条件に当てはまる
４：発生条件に全て当てはまらない
【００７１】
希望時間帯テーブル１５５は、図１５に示すように、顧客リクエスト情報テーブル１５４の時間帯１４０５からのリンク元を表す時間帯キー１５０１、顧客がパッチ適用として希望した時間帯の順位を表す希望順位１５０２、顧客がパッチ適用として希望した時間帯を表す時間帯１５０３、時間帯１５０３の開始日時を表す開始日時１５０４、時間帯１５０３の終了日時を表す終了日時１５０５、開始日時１５０４から終了日時１５０５までの時間（分）を表す合計時間１５０６が定義されている。
【００７２】
時間帯１５０３には、対象のシステムの未稼働時間帯が格納されている顧客運用情報テーブル１５３の項番１３０１が登録されており、また顧客運用情報テーブル１５３の時間帯以外に顧客が新たに指定した時間帯も登録されている。顧客運用情報テーブル１５３に登録されている時間帯の場合は、開始日時１５０４、終了日時１５０５、および合計時間１５０６は「Ｎ」が格納され、顧客運用情報テーブル１５３に登録されている以外の時間帯を顧客が新たに指定した場合は、該当の開始日時、終了日時、開始日時から終了日時までの時間が、それぞれ開始日時１５０４、終了日時１５０５、合計時間１５０６に登録される。
【００７３】
例えば、図１４の顧客名１４０１の「Ｂ社」、かつシステム名１４０２が「Ｃシステム」の場合、パッチの重要度を「１」、かつパッチで対策された不具合の発生条件の該当度範囲を「１から２」の範囲に当てはまるパッチを希望していることを示している（符号１４０８参照）。また該当のパッチを適用する際、ＣＰＵ名を「Ｄ ＣＰＵ」、かつＤｉｓｋ名を「Ｇ Ｄｉｓｋ」の環境下で、時間帯１４０５の値「Ｃ０００１」が時間帯キー１５０１の値と合致する３つの時間帯（「B0132」、「B0133」、「D0001」）でパッチ適用を希望しており、３つの時間帯のうち２つは顧客運用情報テーブル１５３に格納された時間帯であり（符号１５０７、１５０８参照）、残りの１つは顧客が新たに追加した時間帯であることを示している（符号１５０９参照）。
【００７４】
図１６は、顧客情報管理機能１５７についての処理手順を示すフローチャートである。図１６に示すように、この処理は定期的に行われる。まず、ソフトウェア情報を収集するプログラム(ソフトウェア)を利用し、顧客システム１１０にインストールされている製品および機能の情報を取得するためのユーティリティ、例えば、レジストリの情報、ｓｎａｐコマンドやｐｓコマンドを利用することによって、現在顧客システムにおいて適用されている製品（パッチ）情報を収集する（ステップＳ１６０１）。
【００７５】
次に、システムの稼動状況については、製品から出力されるログ分析ツールを利用し、稼働状況の情報が入ったログデータを収集する（ステップＳ１６０２）。例えば、データベースにデータが格納される際のテーブルの作成や、業務で流れるＳＱＬ文から実際に使用している機能を検知することができるユーティリティを利用することによって、稼働または未稼働の情報や実際に使ったコマンドや変更履歴の情報（稼働状況の情報）を、ログデータとして収集する。
【００７６】
その後、それらの情報は、顧客運用情報ＤＢ１５１に定義された顧客パッチ情報テーブル１５２、および顧客別ログＤＢ１５６に格納され（ステップＳ１６０３）、本処理を終了する。
【００７７】
図１７（図１７Ａと図１７Ｂの総称）は、未稼働時間予測機能１５８についての処理手順を示すフローチャートである。図１７に示すように、この処理は定期的に行われる。まず、顧客情報管理機能１５７により収集した顧客別ログＤＢ１５６から、例えば過去３年分の顧客システム１１０の未稼動時間帯を検索し、抽出する（ステップＳ１７０１）。
【００７８】
次に、ステップＳ１７０１により顧客別ログＤＢ１５６から得られた未稼動時間帯のうち、直近の未稼働時間帯は、その開始時間および終了時間の前後１時間の範囲で、昨日と同じか否かを判定する（ステップＳ１７０２）。同じであれば（ステップＳ１７０２でＹｅｓ）、過去１週間においても、直近の未稼働時間帯の開始時間および終了時間の前後１時間の範囲で毎日同じか否かを判定する（ステップＳ１７０３）。同じであれば（ステップＳ１７０３でＹｅｓ）、根拠Ｆｌｇの値を１とする（ステップＳ１７０４）。
【００７９】
ステップＳ１７０２で異なると判定した場合（ステップＳ１７０２でＮｏ）、あるいはステップＳ１７０３で異なると判定した場合（ステップＳ１７０３でＮｏ）、直近の未稼働時間帯の開始時間および終了時間の前後１時間の範囲で、１週間前の同じ曜日も同じか否かを判定する（ステップＳ１７０５）。同じであれば（ステップＳ１７０５でＹｅｓ）、過去１ヶ月間、同じ曜日においても直近の未稼働時間帯の開始時間および終了時間の前後１時間の範囲で同じか否かを判定する（ステップＳ１７０６）。同じであれば（ステップＳ１７０６でＹｅｓ）根拠Ｆｌｇの値を２とする（ステップＳ１７０７）。
【００８０】
ステップＳ１７０５で異なると判定した場合（ステップＳ１７０５でＮｏ）、あるいはステップＳ１７０６で異なると判定した場合（ステップＳ１７０６でＮｏ）、直近の未稼働時間帯の開始時間および終了時間の前後１時間の範囲で、１ヶ月前の同じ日も同じか否かを判定する（ステップＳ１７０８）。同じであれば（ステップＳ１７０８でＹｅｓ）、過去半年間、同じ日においても直近の未稼働時間帯の開始時間および終了時間の前後１時間の範囲で同じか否かを判定する（ステップＳ１７０９）。同じであれば（ステップＳ１７０９でＹｅｓ）、根拠Ｆｌｇの値を３とする（ステップＳ１７１０）。
【００８１】
ステップＳ１７０８で異なると判定した場合（ステップＳ１７０８でＮｏ）、あるいはステップＳ１７０９で異なると判定した場合（ステップＳ１７０９でＮｏ）、直近の未稼働時間帯がその月の第Ｎ曜日（Ｎ＝１〜４）であることを確認し、１ヶ月前の同じ第Ｎ曜日も直近の未稼働時間帯の開始時間および終了時間の前後１時間の範囲で、同じか否かを判定する（ステップＳ１７１１）。同じであれば（ステップＳ１７１１でＹｅｓ）、過去半年間、第Ｎ曜日においても直近の未稼働時間帯の開始時間および終了時間の前後１時間の範囲で、同じか否かを判定する（ステップＳ１７１２）。同じであれば（ステップＳ１７１２でＹｅｓ）、根拠Ｆｌｇの値を４とする（ステップＳ１７１３）。なお、ステップＳ１７１１とステップＳ１７１２では曜日がその月での最終曜日だった場合は最終曜日同士を比較判定する。
【００８２】
ステップＳ１７１１で異なると判定した場合（ステップＳ１７１１でＮｏ）、あるいはステップＳ１７１２で異なると判定した場合（ステップＳ１７１２でＮｏ）、直近の未稼働時間帯が１年前の同じ日も直近の未稼働時間帯の開始時間および終了時間の前後１日の範囲で、去年と同じか否かを判定する（ステップＳ１７１４）。同じであれば（ステップＳ１７１４でＹｅｓ）、過去２年間、同じ日においても直近の未稼働時間帯の開始時間および終了時間の前後１時間の範囲で、同じか否かを判定（ステップＳ１７１５）。同じであれば（ステップＳ１７１５でＹｅｓ）、根拠Ｆｌｇの値を５とする（ステップＳ１７１６）。
【００８３】
ステップＳ１７０４、あるいはステップＳ１７０７、あるいはステップＳ１７１０、あるいはステップＳ１７１３、あるいはステップＳ１７１６の処理後、比較対照となった時間帯および比較した時間帯全てに共通して未稼働となっている時間帯の前後１時間（開始時間は共通時間の１時間前を採用し、終了時間は共通時間の１時間後を採用）の時間帯を顧客運用情報テーブル１５３に格納する（ステップＳ１７１７）。その際、根拠Ｆｌｇの値は根拠１３０６へ格納する。
【００８４】
全ての判定処理終了後、ステップＳ１７０１で収集した未稼動時間帯のうち、今回更新された範囲内で、判定していない時間帯が存在すれば（ステップＳ１７１８でＹｅｓ）、ステップＳ１７０２へ戻り、存在しなければ（ステップＳ１７１８でＮｏ）、本処理を終了する（ステップＳ１７１８）。
図１７のフローにより顧客システムの過去の未稼動時間帯を分析することで、今後の未稼働時間帯を予測する。ここでは開始時間および終了時間の前後１時間の範囲で判定を行い、未稼働時間帯として判断しているが、１時間という値は事前にユーザがパラメータで自由に指定することができる。
【００８５】
図１８は、未稼働時間抽出機能１５９についての処理手順を示すフローチャートである。図１８に示すように、この処理は、パッチ情報提出機能２００からコールされたときに開始する。
【００８６】
まず、顧客（ユーザ）が画面上で指定した顧客名とシステム名を特定し（ステップＳ１８０１）、指定された顧客名とシステム名から該当システムが停止する時間帯を顧客運用情報テーブル１５３から検索し、該当する時間帯があるか否かを判定する（ステップＳ１８０２）。該当する時間帯があれば（ステップＳ１８０２でＹｅｓ）、登録されている開始日時、終了日時の日付部分を根拠１３０６に従って将来の直近の日付に変換して該当時間帯をコール元へ返し（ステップＳ１８０３）、本処理を終了する。該当する時間帯が無ければ（ステップＳ１８０２でＮｏ）今後予想される（停止）時間帯がない旨を返し（ステップＳ１８０４）、本処理を終了する。
【００８７】
次に、パッチ抽出管理システム１６０について詳細に説明する。
リコメンデーションテーブル１６２は、図１９に示すように、顧客毎、そしてシステム毎に、製品名１９０１、顧客システム１１０に最適なパッチのバージョン情報を示す推奨バージョン１９０２、現在顧客システム１１０に適用されているパッチのバージョン情報を示す適用バージョン１９０３、重要度情報ＤＢ１６４によって分別された結果を表す重要度１９０４、ベンダが提供している該当パッチのサポート契約者に対するダウンロード回数を比率として表すダウンロード実績１９０５、該当パッチがセキュリティパッチ（ソフトウェア内でセキュリティホールの原因となっているファイルを、問題のないファイルに置き換えるパッチ）である（「１」）か否か（「０」）を示すセキュリティパッチ１９０６、パッチが修正された日付を表す修正日１９０７、顧客が該当製品にアクセスした日付を表すアクセス日時１９０８、顧客によってその製品にパッチを適用したことで該当ファイルの更新が行われた日付を表す製品更新の日時１９０９、パッチ適用に依存関係がない製品（パッチ）のカテゴリを示すカテゴリ１９１０、パッチアドバイス処理機能１６５により、パッチで修正された不具合の発生条件の該当結果を表す該当度１９１１、パッチアドバイス処理機能１６５により、類似パッチとして判定された場合の類似元パッチ(製品)の製品名を表す類似対象製品１９１２、類似元製品のバージョンを表す類似対象バージョン１９１３、パッチ適用の実績値の平均（分）を表す適用平均時間１９１４、パッチ適用の実績値で最大の時間（分）を表す適用最大時間１９１５、パッチ削除の実績値で最大の時間（分）を表すリムーブ時間１９１６、顧客が適用を選択したか否かを表す選択１９１７が定義されている。
【００８８】
なお、カテゴリ１９１０は、パッチ情報テーブル１３２の製品カテゴリ２０３の名称が格納される。該当度１９１１は、後述のパッチアドバイス処理機能１６５で判定し、顧客別ログＤＢ１５６の中から発生条件テーブル１３４の条件を検索し、「１」、「２」、「３」、「４」の値が格納される。
【００８９】
類似対象製品１９１２は、後述のパッチアドバイス処理機能１６５で判定し、類似パッチとして当てはまるパッチには類似元パッチの製品名が格納され、類似対象バージョン１９１３は、類似元パッチの製品のバージョンが格納され、類似パッチでない場合は類似対象製品１９１２、類似対象バージョン１９１３ともに「Ｎ」を格納される。
【００９０】
適用平均時間１９１４、適用最大時間１９１５、リムーブ時間１９１６はそれぞれパッチ適用時間見積テーブル１３６の適用平均時間５０３、適用最大時間５０４、リムーブ時間５０７の値が格納される。
【００９１】
選択１９１７は、顧客がパッチ適用を選択するか否かの判定を意味し、デフォルトでパッチ適用を選択したとする。よって、後述のパッチアドバイス処理機能１６５により推奨パッチと判定された場合全て「１」を格納し、後述の再リクエスト機能１８０により選択解除と顧客が指定した場合は「０」が格納される。
【００９２】
パッチ適用推奨時間帯テーブル１６３は、図２０に示すように、顧客毎、そしてシステム毎に、パッチ適用の推奨時間帯の推奨順位を表す優先順位２００１、パッチ適用の推奨時間帯としてリンクされている顧客運用情報テーブル１５３の項番１３０１の値、および希望時間帯テーブル１５５の時間帯１５０３の値を表す時間帯２００２、パッチ適用時間見積時間の最大値より長い時間帯か否かを表す適用最大ｆｌｇ２００３、パッチ適用時間見積時間の平均時間より長い時間帯か否かを表す適用平均ｆｌｇ２００４、パッチ適用時間の見積にあたり、パッチ適用パターン別時間見積テーブル１３７で見積したか否かを表す適用パターンｆｌｇ２００５、パッチ適用の実績値の平均（分）を表す適用平均時間２００６、パッチ適用の実績値で最大の時間（分）を表す適用最大時間２００７、パッチ削除の実績値で最大の時間（分）を表すリムーブ時間２００８が定義されている。
【００９３】
なお、時間帯２００２の値は頭文字の違いにより、パッチ適用の推奨時間帯としてリンクされている顧客運用情報テーブル１５３の項番１３０１の値か、希望時間帯テーブル１５５の時間帯１５０３の値かが区別できる。
【００９４】
また、適用最大ｆｌｇ２００３は、時間帯２００２の該当時間帯が適用最大時間２００７の値より長い場合は「１」が、それ以外は「０」が格納される。また、適用平均ｆｌｇ２００４は、時間帯２００２の該当時間帯が適用平均時間２００６の値より長い場合は「１」が、それ以外は「０」が格納される。また、適用パターンｆｌｇ２００５は、適用平均時間２００６と適用最大時間２００７とリムーブ時間２００８の値が、パッチ適用パターン別時間見積テーブル１３７で見積した場合は「１」が、パッチ適用時間見積テーブル１３６で見積した場合は「０」が格納される。
【００９５】
図２１は、パッチアドバイス処理機能１６５についての処理手順を示すフローチャートである。図２１に示すように、この処理は定期的に行われる（ステップＳ２１０１）。まず、パッチ抽出処理を実行し、パッチを抽出する。ここで、パッチ抽出処理とは、ソフトウェアベンダサーバ１００のソフトウェアベンダから新しいアラート情報が提供され、ソフトウェアサポートシステム１２０のサポート担当者によってパッチ情報テーブル１３２の更新が行われた際に、パッチ情報テーブル１３２にて更新されたパッチ情報を、顧客システム１１０に適用すべきか否かを判定するために抽出する処理である。抽出されたパッチ情報は暫定的にリコメンデーションテーブル１６２に更新される。顧客システム１１０に適用すべきか否かという判定は、例えば、重要度、セキュリティ、ダウンロード実績等に基づいてなされる。適用すべきでなければ、そのパッチ情報はリコメンデーションテーブル１６２から除外される。この処理の詳細は、例えば特許文献１に記載されている。
【００９６】
次に、後述するパッチ類似検索関数をコールして処理を引き渡す（ステップＳ２１０２）。その後、後述するパッチ自動判定関数をコールして処理を引き渡す（ステップＳ２１０３）。
【００９７】
その後、リコメンデーションテーブル１６２を更新する（ステップＳ２１０４）。具体的には、リコメンデーションテーブル１６２に格納されている全てのパッチ情報に対し、カテゴリ１９１０はパッチ情報テーブル１３２から入手して格納し、また、適用平均時間１９１４、適用最大時間１９１５、リムーブ時間１９１６はパッチ適用時間見積テーブル１３６から入手して格納し、類似対象製品１９１２、および類似対象バージョン１９１３に対しては類似パッチとして格納したパッチ以外全てに「Ｎ」を格納し、選択１９１７に全て「１」を格納する。この更新の処理を終えて本処理を終了する。
【００９８】
図２２は、パッチアドバイス処理機能１６５からコールされるパッチ類似検索関数についての処理手順を示すフローチャートである。図２２に示すように、リコメンデーションテーブル１６２に更新されたパッチ情報があるか否かを判定する（ステップＳ２２０１）。
【００９９】
更新されたパッチ情報がある場合は（ステップＳ２２０１でＹｅｓ）、更新されたパッチで修正されたモジュールと同じ修正をしたモジュール（修正モジュール）をもつパッチを修正箇所テーブル１３３から検索し、そのようなパッチがあるか否かを判定する（ステップＳ２２０２）。一方、ステップＳ２２０１の処理において、更新されたパッチ情報が無いと判定した場合は（ステップＳ２２０１でＮｏ）、処理を終了する（パッチアドバイス処理機能１６５へ処理を返す）。
【０１００】
ステップＳ２２０２で、前記修正モジュールが同じであるパッチがあると判定した場合（ステップＳ２２０２でＹｅｓ）、同じと判定されたそのパッチ情報を対象にして前記パッチ抽出処理を行い、抽出された該当パッチを類似パッチとしてリコメンデーションテーブル１６２に追加する（ステップＳ２２０３）。一方、前記修正モジュールが同じであるパッチがないと判定した場合（ステップＳ２２０２でＮｏ）、ステップＳ２２０５に進む。
【０１０１】
次に、リコメンデーションテーブル１６２において類似対象製品１９１２に類似元パッチの製品を格納し、類似対象バージョン１９１３に類似パッチのバージョンを格納して更新する（ステップＳ２２０４）。
【０１０２】
次に、更新されたパッチ情報のうち、ステップＳ２２０２の判定をしていないパッチがあるか否かを判定し（ステップＳ２２０５）、ある場合は（ステップＳ２２０５でＹｅｓ）、ステップＳ２２０２に戻り、ない場合（ステップＳ２２０５でＮｏ）、パッチアドバイス処理機能１６５へ処理を返し、本処理を終了する。
図２２のフローにより、修正モジュールが同じである類似パッチも推奨パッチとして採り上げる。
【０１０３】
図２３は、パッチアドバイス処理機能１６５からコールされるパッチ自動判定関数についての処理手順を示すフローチャートである。図２３に示すように、リコメンデーションテーブル１６２に更新されたパッチ情報があるか否かを判定し（ステップＳ２３０１）、ない場合は（ステップＳ２３０１でＮｏ）、本処理を終了する（パッチアドバイス処理機能１６５へ処理を返す）。
【０１０４】
ステップＳ２３０１で、更新されたパッチ情報があると判定した場合（ステップＳ２３０１でＹｅｓ）、更新されたパッチによって修正された不具合を再現する条件を発生条件テーブル１３４から検索し、発生条件に当てはまる条件が顧客別ログＤＢ１５６にあるか否か、つまり顧客別ログＤＢ１５６に格納された稼動実績や操作実績のログが発生条件を満たしているか否かを判定する（ステップＳ２３０２）。当てはまる条件がない場合（ステップＳ２３０２でＮｏ）、該当パッチの該当度１９１１に「４」を格納してリコメンデーションテーブル１６２を更新し（ステップＳ２３０３）、ステップＳ２３０９の処理へ移る。
【０１０５】
ステップＳ２３０２で、当てはまる条件がある場合（ステップＳ２３０２でＹｅｓ）、更新されたパッチによって修正された不具合を再現する条件が、半分以上当てはまるか否かを判定する（ステップＳ２３０４）。条件が半分以上当てはまらない場合（ステップＳ２３０２でＮｏ）、該当パッチの該当度１９１１に「３」を格納してリコメンデーションテーブル１６２を更新し（ステップＳ２３０５）、ステップＳ２３０９の処理へ移る。
【０１０６】
ステップＳ２３０４で、条件が半分以上当てはまる場合（ステップＳ２３０４でＹｅｓ）、更新されたパッチによって修正された不具合を再現する条件が、全て当てはまるか否かを判定する（ステップＳ２３０６）。条件が、全て当てはまらない場合（ステップＳ２３０６でＮｏ）、該当パッチの該当度１９１１に「２」を格納してリコメンデーションテーブル１６２を更新し（ステップＳ２３０７）、ステップＳ２３０９の処理へ移る。
【０１０７】
ステップＳ２３０６で、条件が全て当てはまる場合（ステップＳ２３０６でＹｅｓ）、該当パッチの該当度１９１１に「１」を格納してリコメンデーションテーブル１６２を更新し（ステップＳ２３０８）ステップＳ２３０９の処理へ移る。
【０１０８】
次に、更新されたパッチ情報のうち、ステップＳ２３０２の判定をしていないパッチがあるか否かを判定する（ステップＳ２３０９）。判定をしていないパッチがない場合は（ステップＳ２３０９でＮｏ）、パッチアドバイス処理機能１６５へ処理を返し、本処理を終了する。一方、判定をしていないパッチがある場合は（ステップＳ２３０９でＹｅｓ）、ステップＳ２３０２に戻る。
図２３のフローにより、リコメンデーションテーブル１６２に更新されるパッチの該当度が定まる。
【０１０９】
図２４は、パッチ適用時間帯リクエスト機能１７０についての処理手順を示すフローチャートである。図２４に示すように、この処理はパッチ情報提供機能２００からコールされることで開始する。
【０１１０】
まず、顧客が画面上で指定した、パッチ検索条件（重要度と該当度）、パッチ適用の希望時間帯、および対象システムのＣＰＵ名、Ｄｉｓｋ名、といった情報（顧客入力部分）を特定する（ステップＳ２４０１）。次に、顧客リクエスト情報テーブル１５４にステップＳ２４０１で特定した情報を格納する（ステップＳ２４０２）。
【０１１１】
次に、ステップＳ２４０１で特定した情報のうち、顧客が指定したパッチ検索条件（重要度と該当度）を満たすパッチについては、リコメンデーションテーブル１６２の選択１９１７を「１」に更新し、パッチ検索条件にあわないパッチについては、リコメンデーションテーブル１６２の選択１９１７を「０」に更新する（ステップＳ２４０３）。
【０１１２】
次に、顧客が新たに追加した時間帯（希望時間帯）があるか否かを判定する（ステップＳ２４０４）。時間帯がある場合は（ステップＳ２４０４でＹｅｓ）、追加された時間帯を顧客リクエスト情報テーブル１５４および希望時間帯テーブル１５５に格納し（ステップＳ２４０５）、ステップＳ２４０６へ移る。一方、時間帯が無い場合は（ステップＳ２４０４でＮｏ）、そのままステップＳ２４０６へ移る。
【０１１３】
次に、後述のパッチ適用時間帯の抽出機能１９０をコールして処理を引き継ぎ（ステップＳ２４０６）、該当するパッチ、およびパッチ適用に適した時間帯があるか否かを判定する（ステップＳ２４０７）。そのパッチおよび時間帯があれば（ステップＳ２４０７でＹｅｓ）、顧客向けにパッチ情報（指定されたパッチ情報）と該当時間帯（パッチ適用の推奨時間帯）を返し（ステップＳ２４０８）、本処理を終了する。一方、該当するパッチおよびパッチ適用に適した時間帯が無ければ（ステップＳ２４０７でＮｏ）、該当パッチがない、およびパッチ適用に適した時間帯、つまり条件に見合う情報がない旨をコール元へ返し（ステップＳ２４０９）、本処理を終了する。
図２４のフローにより、顧客が希望するパッチおよび推奨時間帯が定まる。
【０１１４】
図２５は、再リクエスト機能１８０についての処理手順を示すフローチャートである。図２５に示すように、この処理はパッチ情報提供機能２００からコールされることで開始する。
【０１１５】
まず、図２４のフローのステップＳ２４０１で既に指定しているパッチ適用の希望時間帯、および対象システムのＣＰＵ名、Ｄｉｓｋ名、といった情報（顧客入力部分）を再度特定する（ステップＳ２５０１）。次に、顧客が画面上で指定したパッチを特定し（ステップＳ２５０２）、指定されたパッチについては、リコメンデーションテーブル１６２の選択１９１７を「１」に更新し、指定されたパッチ以外については、リコメンデーションテーブル１６２の選択１９１７を「０」に更新する（ステップＳ２５０３）。
【０１１６】
次に後述のパッチ適用時間帯の抽出機能１９０をコールして処理を引き継ぎ（ステップＳ２５０４）、該当するパッチ、およびパッチ適用に適した時間帯があるか否かを判定する（ステップＳ２５０５）。そのパッチおよび時間帯があれば（ステップＳ２５０５でＹｅｓ）、顧客向けにパッチ情報（指定されたパッチ情報）と該当時間帯（パッチ適用の推奨時間帯）を返し（ステップＳ２５０６）、本処理を終了する。一方、該当するパッチおよびパッチ適用に適した時間帯が無ければ（ステップＳ２５０５でＮｏ）、該当パッチがない、およびパッチ適用に適した時間帯、つまり条件に見合う情報がない旨を返し（ステップＳ２５０７）、本処理を終了する。
図２５のフローにより、顧客が再度希望したパッチおよび推奨時間帯が定まる。
【０１１７】
図２６（図２６Ａと図２６Ｂの総称）は、パッチ適用時間帯リクエスト機能１７０または再リクエスト機能１８０からコールされるパッチ適用時間帯の抽出機能１９０についての処理手順を示すフローチャートである。図２６に示すように、リコメンデーションテーブル１６２の選択１９１７が「１」の値であるパッチの種別（製品名１９０１と推奨バージョン１９０２）、およびパッチ適用時間帯リクエスト機能１７０や再リクエスト機能１８０で指定したＣＰＵ名とＤｉｓｋ名の組合せと同じ組合せが、パッチ適用パターン別時間見積テーブル１３７と同時インストール製品テーブル１３８に存在するか否かを判定する（ステップＳ２６０１）。
【０１１８】
同じ組合せが存在する場合（ステップＳ２６０１でＹｅｓ）、パッチ適用パターン別時間見積テーブル１３７の該当パッチの適用平均時間６０２、適用最大時間６０３、リムーブ時間６０６の値（平均値、最大値、リムーブ値）が全て存在する（該当パターン）か否かを判定する（ステップＳ２６０２）。全て値がある場合は（ステップＳ２６０２でＹｅｓ）、該当パターンの平均値、最大値、リムーブ値を選択して、今後の判定で使用することにし、組合せの該当パターンによる判定を意味するＰ＝１とし（ステップＳ２６０３）、ステップＳ２６０８に移る。
【０１１９】
ステップＳ２６０１の判定で、同じ組合せがない場合（ステップＳ２６０１でＮｏ）、または、ステップＳ２６０２の判定で、該当パッチの適用平均時間６０２、適用最大時間６０３、リムーブ時間６０６の値が全て存在するわけではない場合（ステップＳ２６０２でＮｏ）、リコメンデーションテーブル１６２の選択１９１７が「１」の値である、指定されたパッチの種別が複数あるか否かを判定し（ステップＳ２６０４）、複数ある場合（ステップＳ２６０４でＹｅｓ）、適用パッチのカテゴリ１９１０が全て同じであるか否かを判定する（ステップＳ２６０５）。
【０１２０】
ステップＳ２６０５の判定でカテゴリが全て同じでない場合（ステップＳ２６０５でＮｏ）、パッチ適用時間見積テーブル１３６の該当パッチの適用平均時間５０３、適用最大時間５０４、リムーブ時間５０７についてカテゴリ毎にそれらの合計値をそれぞれ算出して平均値、最大値、リムーブ値とし、最大時間（最大値）が一番大きいカテゴリの値を選択して、今後の判定で使用することにし、対象パッチの適用時間の合計値であることを意味するＰ＝０とし（ステップＳ２６０６）、ステップＳ２６０８に移る。
【０１２１】
ステップＳ２６０４による判定でパッチが単数個である場合（ステップＳ２６０４でＮｏ）、あるいは、ステップＳ２６０５による判定で適用対象のパッチのカテゴリがすべて同じである場合は（ステップＳ２６０５でＹｅｓ）、パッチ適用時間見積テーブル１３６の該当パッチの適用平均時間５０３、適用最大時間５０４、リムーブ時間５０７について値（パッチが複数の場合は合計値）をそれぞれ算出して平均値、最大値、リムーブ値とし、その値を選択して、今後の判定で使用することにし、対象パッチの適用時間の（合計）値であることを意味するＰ＝０とし（ステップＳ２６０７）、ステップＳ２６０８に移る。
【０１２２】
次に、パッチ適用推奨時間帯テーブル１６３のデータを初期化し（全て削除）、顧客希望順位を表すＮの値と、結果推奨の順位（優先順位）を表すＭの値を「１」とし（ステップＳ２６０８）、該当顧客の顧客希望順位Ｎの未稼働時間帯の時間が、前記最大値に納まる（つまり、最大値未満）か否かを判定する（ステップＳ２６０９）。
【０１２３】
前記最大値に納まる場合（ステップＳ２６０９でＹｅｓ）、パッチ適用推奨時間帯テーブル１６３に優先順位２００１にＭの値を格納し、時間帯２００２に希望時間帯テーブル１５５の時間帯１５０３の値を格納し、適用最大ｆｌｇ２００３と適用平均ｆｌｇ２００４ともに「１」を格納し、適用パターンｆｌｇ２００５に「Ｐ」の値を格納し、またステップＳ２６０３、或いはステップＳ２６０６、或いはステップＳ２６０７で指定した最大値、平均値、およびリムーブ値をそれぞれ適用最大時間２００７、適用平均時間２００６、リムーブ時間２００８として格納し、最大時間を適用するようにパッチ適用推奨時間帯テーブル１６３を更新する（ステップＳ２６１０）。
【０１２４】
一方、ステップＳ２６０９により、顧客希望順位Ｎの未稼働時間帯の時間が、前記最大値に納まらないと判定された場合（ステップＳ２６０９でＮｏ）、前記平均値に納まる（つまり、平均値未満）か否かを判定する（ステップＳ２６１１）。前記平均値に納まる場合（ステップＳ２６１１でＹｅｓ）、パッチ適用推奨時間帯テーブル１６３に優先順位２００１をＭとして格納し、時間帯２００２に希望時間帯テーブル１５５の時間帯１５０３の値を格納し、適用最大ｆｌｇ２００３に「０」を格納し、適用平均ｆｌｇ２００４に「１」を格納し、適用パターンｆｌｇ２００５に「Ｐ」の値を格納し、前記最大値、前記平均値、前記リムーブ値をそれぞれ適用最大時間２００７、適用平均時間２００６、リムーブ時間２００８として格納し、平均時間を適用するようにパッチ適用推奨時間帯テーブル１６３を更新する（ステップＳ２６１２）。一方、前記平均値に納まらないと判定された場合（ステップＳ２６１１でＮｏ）、ステップＳ２６１４に移る。
【０１２５】
ステップＳ２６１０、およびステップＳ２６１２の後は「Ｍ＝Ｍ＋１」の処理（Ｍをインクリメント）を行う（ステップＳ２６１３）。
【０１２６】
次に、顧客希望順位がＮ＋１となる時間帯があるか否かを判定し（ステップＳ２６１４）、ある場合は（ステップＳ２６１４でＹｅｓ）、「Ｎ＝Ｎ＋１」の処理（Ｎをインクリメント）を行い（ステップＳ２６１５）、ステップＳ２６０９へ戻る。
【０１２７】
ステップＳ２６１４で顧客希望順位がＮ＋１となる時間帯がない場合は（ステップＳ２６１４でＮｏ）、パッチ適用推奨時間帯テーブル１６３にデータがあるか否かを判定する（ステップＳ２６１６）。データがない場合は（ステップＳ２６１６でＮｏ）、顧客運用情報テーブル１５３の中で該当顧客およびシステムに相当する時間帯で、合計時間（つまり、未稼働時間帯の時間）が一番長い（最大の）時間帯を選択する（ステップＳ２６１７）。
【０１２８】
次に、パッチ適用推奨時間帯テーブル１６３に優先順位をＭ（＝１）として、時間帯２００２にステップＳ２６１７で選択した時間帯（顧客運用情報テーブル１５３の項番１３０１の値）を格納し、適用最大ｆｌｇ２００３と適用平均ｆｌｇ２００４ともに「０」を格納し、適用パターンｆｌｇ２００５に「Ｐ」に値を格納し、また前記最大値、前記平均値、前記リムーブ値をそれぞれ適用最大時間２００７、適用平均時間２００６、リムーブ時間２００８として格納し、条件に見合う時間帯がないものとするようにパッチ適用推奨時間帯テーブル１６３を更新する（ステップＳ２６１８）。更新した後、コールされたパッチ適用時間帯リクエスト機能１７０および再リクエスト機能１８０へ処理を戻し、本処理を終了する。
【０１２９】
一方、パッチ適用推奨時間帯テーブル１６３にデータがある場合には（ステップＳ２６１６でＹｅｓ）、そのままコールされたパッチ適用時間帯リクエスト機能１７０および再リクエスト機能１８０へ処理を戻し、本処理を終了する。
図２６のフローにより、希望に沿ったパッチ適用時間帯が存在すれば抽出される。
【０１３０】
パッチ情報提供機能２００は、クライアント２１０に対して、パッチ情報をＨＴＭＬ形式にて提供する機能であり、図２８、図２９、図３０（図３０Ａおよび図３０Ｂの総称）は、その画面を示す図である。
図２７（図２７Ａと図２７Ｂの総称）は、パッチ情報提供機能２００についての処理手順を示すフローチャートである。図２７に示すように、この処理は顧客操作による顧客指示により起動する。
【０１３１】
まず、未稼働時間帯抽出の要求画面（図２８参照）を出力し（ステップＳ２７０１）、次に、ユーザが指定項目に対して記入漏れがなく、確定ボタンが押下されたか否かを判定する（ステップＳ２７０２）。記入漏れなく押下された場合（ステップＳ２７０２でＹｅｓ）、未稼働時間帯抽出機能１５９をコールし（ステップＳ２７０３）、そうでない場合（ステップＳ２７０２でＮｏ）、記入漏れがなく、確定ボタンが押下されるまで待機する。
【０１３２】
次に、未稼働時間帯抽出機能１５９をコールしたときの結果が戻ってきたらパッチ適用時間帯抽出の要求画面（図２９参照）を出力し（ステップＳ２７０４）、ユーザが指定項目に対して記入漏れがなく、確定ボタンが押下されたか否かを判定する（ステップＳ２７０５）。記入漏れなく確定ボタンを押下した場合（ステップＳ２７０５でＹｅｓ）、パッチ適用時間帯リクエスト機能１７０をコールし（ステップＳ２７０６）、そうでない場合（ステップＳ２７０５でＮｏ）、記入漏れがなく、確定ボタンが押下されるまで待機する。
【０１３３】
次に、パッチ適用時間帯リクエスト機能１７０をコールしたときの結果が戻ってきたら、パッチ適用時間帯の情報提供画面および再リクエスト画面（図３０参照）を出力する（ステップＳ２７０７）。ここでは、リコメンデーションテーブル１６２の選択１９１７の値が「１」であるパッチを対象に、製品名（パッチ名）やそれぞれの平均適用時間、最大適用時間、リムーブ時間などをリコメンデーションテーブル１６２に格納された情報を表示する。また適用時間帯（日時）については、顧客運用情報テーブル１５３に登録されたデータが指定されている場合は、根拠１３０６に従って将来の直近の日付に変換して表示する。パッチ適用中に何かしらの理由で削除する必要になった場合に、削除を開始しなければならない日時を表したリムーブデットラインは、パッチ適用推奨時間帯テーブル１６３のリムーブ時間２００８を加味し、算出する。
【０１３４】
次に、ユーザが指定項目に対して記入漏れなくボタンが押下されたかを判定する（ステップＳ２７０８）。ボタンが押下されていない場合は（ステップＳ２７０８でＮｏ）、ボタンが押下されるまで待機し、ボタンが押下された場合は（ステップＳ２７０８でＹｅｓ）、押下されたボタンが戻るボタンであるか否かを判定する（ステップＳ２７０９）。戻るボタンであれば（ステップＳ２７０９でＹｅｓ）、ステップＳ２７０４へ戻り、そうでなければ（ステップＳ２７０９でＮｏ）、ステップＳ２７１０に進む。
【０１３５】
次に、押下されたボタンが再提示ボタンであるか否かを判定し（ステップＳ２７１０）、再提示ボタンであれば（ステップＳ２７１０でＹｅｓ）、再リクエスト機能１８０をコールし（ステップＳ２７１１）、その結果をパッチ適用時間帯の情報画面および再リクエスト画面に出力する（ステップＳ２７０７）。一方、再提示ボタンでなければ（ステップＳ２７１０でＮｏ）、ステップＳ２７１２に進む。
【０１３６】
次に、押下されたボタンがダウンロードボタンであるか否かを判定し（ステップＳ２７１２）、記入漏れなくダウンロードボタンが押下された場合は（ステップＳ２７１２でＹｅｓ）、選択されたパッチのダウンロードを開始し（ステップＳ２７１３）、そうでない場合は（ステップＳ２７１２でＮｏ）、例えば終了ボタンが押下されたということを意味するので、本処理を終了する。
【０１３７】
図２８は、会社名２８０１とシステム名２８０２を顧客が選択する画面であり、選択後、確定ボタン２８０３を押下することで、未稼働時間帯抽出機能１５９へ処理を引き継ぐ（ステップＳ２７０３参照）。
【０１３８】
図２９は、図２８の画面で確定ボタン２８０３を押下後、表示される画面であり、パッチの検索条件選択２９０１、および会社名２８０１とシステム名２８０２に該当する、予測された未稼働推測時間２９０２（未稼働時間帯と同じ意）が表示される。未稼働推測時間２９０２には、顧客がパッチ適用として採用したい時間帯を個々に選択できる選択２９０３、および希望順位を記入できる希望順位２９０４が表示される。また、予測された時間帯以外に、顧客が新たに時間帯を追加することも可能とする追加ボタン２９０５がある。
【０１３９】
更にパッチ適用でのＣＰＵ機種名を選択するＣＰＵ機種２９０６およびＤｉｓｋ機種名を選択するＤｉｓｋ機種２９０７があり、両方を選択した後、確定ボタン２９０８を押下することで、パッチ適用時間帯リクエスト機能１７０へ処理を引き継ぐ（ステップＳ２７０６参照）。
なお、この画面には、重要度の説明（符号２９０９）および該当度の説明（符号２９１０）を表示し、顧客に対しパッチ選択の判断基準を提供している。
【０１４０】
図３０は、図２９の画面で確定ボタン２９０８を押下後、表示される画面であり、図２９の条件を満たした推奨パッチ情報一覧３００１、およぶパッチ適用推奨日時３００２に情報が表示される。
【０１４１】
推奨パッチ情報一覧３００１では、再検索する際、ユーザがパッチを個々に選択できる選択３００３、パッチのカテゴリを現すカテゴリ３００４、パッチの製品名を表す製品名３００５、類似パッチとして推奨する製品を表す類似不良対策製品３００６、パッチの重要度を表す重要度３００７、パッチで対策された不具合の発生条件に該当する割合を表す該当度３００８、予測されたパッチ適用にかかる平均時間を表す平均適用時間３００９、予測されたパッチ適用にかかる最大時間を表す最大適用時間３０１０、予測されたパッチ削除にかかる時間を表すリムーブ時間３０１１が一覧になって表示される。さらに詳細情報３０１２については、リンクを張り、その中で原因、発生条件などを記載することとする。
【０１４２】
パッチ適用推奨日時３００２では、推奨パッチ情報一覧３００１で表示されたパッチを適用する際に適した時間帯が表示され、予測された予想適用時間および削除（リムーブ）に必要な時間が表示される（符号３０１３）。その下に具体的な時間帯が表示され、推奨順位３０１４、具体的な時間帯を表す日時３０１５、過去のパッチと環境において、同じ組合せで適用した実績があるか否かを表す過去の実績３０１６、パッチ適用に依存しない、異なる製品（パッチ）種別の数を示すカテゴリ数３０１７、万が一パッチ適用時に予想に反し時間を要し、予定どおり終わらない可能性がでてきた場合、適用を止め、削除に切り替える必要があると予測された日時を表すリムーブデットライン３０１８がある。
【０１４３】
リムーブデットライン３０１８は時間帯３０１５からパッチ適用推奨時間帯テーブル１６３のリムーブ時間２００８を加味し、算出した時間である。図３０の画面では、パッチの選択欄３００３で選択し、再提示ボタン３０１９を押下することで、再リクエスト機能１８０へ引き継ぎ、推奨時間帯を検索し、図３０と同じ形式の画面を再表示し、情報を提示することができる。またパッチの選択３００３で選択し、ダウンロードボタン３０２０を押下することで、パッチをダウンロードできる。戻るボタン３０２１を押下すると、図２９の画面に戻り、終了ボタン３０２２を押下すると画面が閉じ、終了する。
なお、この画面には、重要度の説明（符号３０２３）、該当度の説明（符号３０２４）およびカテゴリ数の説明（符号３０２５）を表示し、顧客に対しパッチ選択の判断基準を提供している。
【０１４４】
≪まとめ≫
本実施形態によれば、適用すべきパッチを顧客環境に応じて再抽出し、また、顧客システムへの適用の時間帯を提供することで、顧客側で煩雑な作業を行うことがなく、かつ、適切な情報を入手、閲覧することができる。
【０１４５】
≪その他≫
以上本発明の実施形態についての一例を示したが、本発明は、これに限定されず、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【０１４６】
例えば、ハードウェア、ソフトウェア、各フローチャートなどの具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【図面の簡単な説明】
【０１４７】
【図１Ａ】顧客システムの予防保守を実現するシステム全体の構成図である。
【図１Ｂ】パッチ情報管理システム１３０の機能構成図である。
【図１Ｃ】顧客情報管理システム１５０の機能構成図である。
【図１Ｄ】パッチ抽出管理システム１６０の機能構成図である。
【図２】パッチ情報テーブルのデータ構造を示した図である。
【図３】修正箇所テーブルのデータ構造を示した図である。
【図４】発生条件テーブルのデータ構造を示した図である。
【図５】パッチ適用時間見積テーブルのデータ構造を示した図である。
【図６】パッチ適用パターン別時間見積テーブルのデータ構造を示した図である。
【図７】同時インストール製品テーブルのデータ構造を示した図である。
【図８】パッチ情報登録機能についての処理手順を示すフローチャートである。
【図９】パッチ見積算出機能についての処理手順を示すフローチャートである。
【図１０】パッチ適用時間見積関数についての処理手順を示すフローチャートである。
【図１１Ａ】パッチ適用パターン別時間見積関数についての処理手順を示すフローチャートである。
【図１１Ｂ】パッチ適用パターン別時間見積関数についての処理手順を示すフローチャートである。
【図１２】顧客パッチ情報テーブルのデータ構造を示した図である。
【図１３】顧客運用情報テーブルのデータ構造を示した図である。
【図１４】顧客リクエスト情報テーブルのデータ構造を示した図である。
【図１５】希望時間帯テーブルのデータ構造を示した図である。
【図１６】顧客情報管理機能についての処理手順を示すフローチャートである。
【図１７Ａ】未稼動時間予測機能についての処理手順を示すフローチャートである。
【図１７Ｂ】未稼動時間予測機能についての処理手順を示すフローチャートである。
【図１８】未稼働時間帯抽出機能についての処理手順を示すフローチャートである。
【図１９】リコメンデーションテーブルのデータ構造を示した図である。
【図２０】パッチ適用推奨時間帯テーブルのデータ構造を示した図である。
【図２１】パッチアドバイス処理機能についての処理手順を示すフローチャートである。
【図２２】パッチ類似検索関数についての処理手順を示すフローチャートである。
【図２３】パッチ自動判定関数についての処理手順を示すフローチャートである。
【図２４】パッチ適用時間帯リクエスト機能についての処理手順を示すフローチャートである。
【図２５】再リクエスト機能についての処理手順を示すフローチャートである。
【図２６Ａ】パッチ適用時間帯の抽出機能についての処理手順を示すフローチャートである。
【図２６Ｂ】パッチ適用時間帯の抽出機能についての処理手順を示すフローチャートである。
【図２７Ａ】パッチ情報提供機能についての処理手順を示すフローチャートである。
【図２７Ｂ】パッチ情報提供機能についての処理手順を示すフローチャートである。
【図２８】未稼働時間帯抽出の要求画面の詳細図である。
【図２９】パッチ適用時間帯抽出の要求画面の詳細図である。
【図３０Ａ】パッチ適用時間帯の情報提供画面および再リクエスト画面の詳細図である。
【図３０Ｂ】パッチ適用時間帯の情報提供画面および再リクエスト画面の詳細図である。
【符号の説明】
【０１４８】
１    ：インターネット
１００：ソフトウェアベンダサーバ（ベンダサーバ）
１１０：顧客システム
１１１：管理対象システム
１１２：パッチ時間測定ツール
１２０：ソフトウェアサポートシステム（予防保守装置）
１３０：パッチ情報管理システム
１３１：パッチ情報ＤＢ
１３２：パッチ情報テーブル（ベンダ提供パッチ情報）
１３３：修正箇所テーブル
１３４：発生条件テーブル
１３５：パッチ適用時間見積ＤＢ
１３６：パッチ適用時間見積テーブル
１３７：パッチ適用パターン別時間見積テーブル
１３８：同時インストール製品テーブル
１３９：パッチ情報登録機能
１４０：パッチ見積算出機能
１５０：顧客情報管理システム
１５１：顧客運用情報ＤＢ
１５２：顧客パッチ情報テーブル（顧客適用パッチ情報）
１５３：顧客運用情報テーブル
１５４：顧客リクエスト情報テーブル
１５５：希望時間帯テーブル
１５６：顧客別ログＤＢ（ログ情報）
１５７：顧客情報管理機能
１５８：未稼働時間予測機能
１５９：未稼働時間帯抽出機能
１６０：パッチ抽出管理システム
１６１：リコメンデーションＤＢ
１６２：リコメンデーションテーブル
１６３：パッチ適用推奨時間帯テーブル
１６４：重要度情報ＤＢ
１６５：パッチアドバイス処理機能
１７０：パッチ適用時間帯リクエスト機能
１８０：再リクエスト機能
１９０：パッチ適用時間帯の抽出機能
２００：パッチ情報提供機能
２１０：クライアント
【図１Ａ】
2010128581.tif 000003
【図１Ｂ】
2010128581.tif 000004
【図１Ｃ】
2010128581.tif 000005
【図１Ｄ】
2010128581.tif 000006
【図２】
2010128581.tif 000007
【図３】
2010128581.tif 000008
【図４】
2010128581.tif 000009
【図５】
2010128581.tif 000010
【図６】
2010128581.tif 000011
【図７】
2010128581.tif 000012
【図８】
2010128581.tif 000013
【図９】
2010128581.tif 000014
【図１０】
2010128581.tif 000015
【図１１Ａ】
2010128581.tif 000016
【図１１Ｂ】
2010128581.tif 000017
【図１２】
2010128581.tif 000018
【図１３】
2010128581.tif 000019
【図１４】
2010128581.tif 000020
【図１５】
2010128581.tif 000021
【図１６】
2010128581.tif 000022
【図１７Ａ】
2010128581.tif 000023
【図１７Ｂ】
2010128581.tif 000024
【図１８】
2010128581.tif 000025
【図１９】
2010128581.tif 000026
【図２０】
2010128581.tif 000027
【図２１】
2010128581.tif 000028
【図２２】
2010128581.tif 000029
【図２３】
2010128581.tif 000030
【図２４】
2010128581.tif 000031
【図２５】
2010128581.tif 000032
【図２６Ａ】
2010128581.tif 000033
【図２６Ｂ】
2010128581.tif 000034
【図２７Ａ】
2010128581.tif 000035
【図２７Ｂ】
2010128581.tif 000036
【図２８】
2010128581.tif 000037
【図２９】
2010128581.tif 000038
【図３０Ａ】
2010128581.tif 000039
【図３０Ｂ】
2010128581.tif 000040