(57)【要約】      （修正有）【課題】利用者にとって将来的に重要なパッチを提示する。【解決手段】パッチ提供装置１００は、２人の利用者の機能ごとの稼働頻度を示すヒストグラムから、そのヒストグラムのデータ間の関連性を指標化して、２人の利用者間の類似度を算出し、その類似度をもとに２人の利用者を互いに類似利用者とするか否かを決定し、所定利用者について、その所定利用者に対する類似利用者の人数と、その類似利用者のうちの所定パッチをプログラムへ適用した類似利用者の人数との割合に基づき、その割合が大きいほど所定利用者の所定パッチについての将来稼働可能性を高い値として算出して、所定利用者に通知する。【選択図】図４
2012104074.tif 000002
【特許請求の範囲】
【請求項１】
プログラムへの修正内容を示すパッチを管理するパッチ管理装置によるパッチ管理方法であって、
前記パッチ管理装置は、制御部と、記憶手段とを有しており、
前記パッチ管理装置の制御部は、
前記プログラムを業務装置上で動作させる利用者ごとに、そのプログラムの機能ごとの前記業務装置上での稼働情報を取得して前記記憶手段に格納し、格納された稼働情報から機能ごとの稼働頻度を示すヒストグラムを利用者ごとに作成し、
２人の利用者の前記ヒストグラムから、そのヒストグラムのデータ間の関連性を指標化して、２人の利用者間の類似度を算出し、
算出した前記類似度が所定しきい値以上であるときに、その類似度についての２人の利用者を互いに類似利用者とし、
所定利用者について、その所定利用者に対する類似利用者の人数と、その類似利用者のうちの所定パッチを前記プログラムへ適用した類似利用者の人数との割合に基づき、その割合が大きいほど前記所定利用者の前記所定パッチについての将来稼働可能性を高い値として算出し、
前記将来稼働可能性の高い順に整列されたパッチのリストを、前記所定利用者の前記業務装置に表示させることを特徴とする
パッチ管理方法。
【請求項２】
プログラムへの修正内容を示すパッチを管理するパッチ管理装置によるパッチ管理方法であって、
前記パッチ管理装置は、制御部と、記憶手段とを有しており、
前記パッチ管理装置の制御部は、
前記プログラムを業務装置上で動作させる利用者ごとに、そのプログラムの機能ごとの前記業務装置上での稼働情報を取得して前記記憶手段に格納し、格納された稼働情報から機能ごとの稼働頻度を示すヒストグラムを利用者ごとに作成し、
２人の利用者の前記ヒストグラムから、そのヒストグラムのデータ間の関連性を指標化して、２人の利用者間の類似度を算出し、
算出した前記類似度が所定しきい値以上であるときに、その類似度についての２人の利用者を互いに類似利用者とし、
所定利用者について、その所定利用者に対する類似利用者の人数と、その類似利用者のうちの所定パッチを前記プログラムへ適用した類似利用者の人数との割合に基づき、その割合が大きいほど前記所定利用者の前記所定パッチについての将来稼働可能性を高い値として算出し、
前記記憶手段に格納された稼働情報から前記所定利用者に対する稼働情報を現在稼働頻度として抽出し、前記記憶手段からパッチごとにあらかじめ設定された修正内容重要度を読み取り、パッチごとの前記将来稼働可能性、前記現在稼働頻度、および、前記修正内容重要度を重み付け加算することにより、パッチごとのパッチランクを算出し、
前記パッチランクの高い順に整列されたパッチのリストを、前記所定利用者の前記業務装置に表示させることを特徴とする
パッチ管理方法。
【請求項３】
前記パッチ管理装置の制御部は、前記所定利用者に対する類似利用者の人数が０人であるときには、前記将来稼働可能性を０とすることを特徴とする
請求項２に記載のパッチ管理方法。
【請求項４】
前記パッチ管理装置の制御部は、各利用者が前記業務装置上でパッチを適用する処理を監視し、前記所定利用者に対する類似利用者が前記所定パッチを当てたことを検知することを契機として、前記所定利用者に対する前記所定パッチの前記将来稼働可能性を再計算することを特徴とする
請求項１ないし請求項３のいずれか１項に記載のパッチ管理方法。
【請求項５】
前記パッチ管理装置の制御部は、前記業務装置からポリシ設定操作の入力を受け付けると、前記所定しきい値を指定された値へと変更することを特徴とする
請求項１ないし請求項４のいずれか１項に記載のパッチ管理方法。
【請求項６】
請求項１ないし請求項４のいずれか１項に記載のパッチ管理方法を、コンピュータである前記パッチ管理装置に実行させるためのパッチ管理プログラム。
【請求項７】
プログラムへの修正内容を示すパッチを管理するパッチ管理装置であって、
前記パッチ管理装置は、制御部と、記憶手段とを有しており、
前記パッチ管理装置の制御部は、
前記プログラムを業務装置上で動作させる利用者ごとに、そのプログラムの機能ごとの前記業務装置上での稼働情報を取得して前記記憶手段に格納し、格納された稼働情報から機能ごとの稼働頻度を示すヒストグラムを利用者ごとに作成し、
２人の利用者の前記ヒストグラムから、そのヒストグラムのデータ間の関連性を指標化して、２人の利用者間の類似度を算出し、
算出した前記類似度が所定しきい値以上であるときに、その類似度についての２人の利用者を互いに類似利用者とし、
所定利用者について、その所定利用者に対する類似利用者の人数と、その類似利用者のうちの所定パッチを前記プログラムへ適用した類似利用者の人数との割合に基づき、その割合が大きいほど前記所定利用者の前記所定パッチについての将来稼働可能性を高い値として算出し、
前記将来稼働可能性の高い順に整列されたパッチのリストを、前記所定利用者の前記業務装置に表示させることを特徴とする
パッチ管理装置。
【請求項８】
プログラムへの修正内容を示すパッチを管理するパッチ管理装置であって、
前記パッチ管理装置は、制御部と、記憶手段とを有しており、
前記パッチ管理装置の制御部は、
前記プログラムを業務装置上で動作させる利用者ごとに、そのプログラムの機能ごとの前記業務装置上での稼働情報を取得して前記記憶手段に格納し、格納された稼働情報から機能ごとの稼働頻度を示すヒストグラムを利用者ごとに作成し、
２人の利用者の前記ヒストグラムから、そのヒストグラムのデータ間の関連性を指標化して、２人の利用者間の類似度を算出し、
算出した前記類似度が所定しきい値以上であるときに、その類似度についての２人の利用者を互いに類似利用者とし、
所定利用者について、その所定利用者に対する類似利用者の人数と、その類似利用者のうちの所定パッチを前記プログラムへ適用した類似利用者の人数との割合に基づき、その割合が大きいほど前記所定利用者の前記所定パッチについての将来稼働可能性を高い値として算出し、
前記記憶手段に格納された稼働情報から前記所定利用者に対する稼働情報を現在稼働頻度として抽出し、前記記憶手段からパッチごとにあらかじめ設定された修正内容重要度を読み取り、パッチごとの前記将来稼働可能性、前記現在稼働頻度、および、前記修正内容重要度を重み付け加算することにより、パッチごとのパッチランクを算出し、
前記パッチランクの高い順に整列されたパッチのリストを、前記所定利用者の前記業務装置に表示させることを特徴とする
パッチ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パッチ管理方法、パッチ管理プログラム、および、パッチ管理装置の技術に関する。
【背景技術】
【０００２】
利用者のシステムの稼働装置上で動作するプログラムにおいて、プログラム開発者からパッチが提供された場合に、利用者のシステムに重要なパッチを選定するための技術として、利用者のプログラムの機能ごとの稼働頻度を測定し、稼働頻度の多い機能に対するパッチを重要なパッチとして選定する技術が、特許文献１などに開示されている。このパッチ重要度算出システムにより、利用者に重要なパッチ、重要でないパッチを選定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−９９９６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般にプログラムは、利用者のシステム上で利用される。システムを安定稼働させるために、パッチの適用によるプログラムの修正が行われることが多い。プログラムは複数の機能のプログラムにより構成されているため、パッチは利用者に機能ごとに複数提供され、プログラムの特定の機能を修正する。
【０００５】
一方、パッチの適用にはプログラムの停止などの手間がかかるため、利用者は自身のシステムに重要なパッチ以外は適用したくないと考える。しかし、複数存在するパッチの中から、利用者が自身のシステムに重要なパッチを選定することは困難である。
【０００６】
特許文献１では、利用者の業務装置で動作しているプログラムにおいて、機能ごとの現在の稼働頻度を測定し、機能の稼働頻度から、該当するパッチの重要度を算出する。しかし、利用者の業務装置で動作しているプログラムにおいて、稼働していない機能に該当するパッチについては考慮されておらず、稼働していない機能に該当するパッチの重要度は極端に低く算出され、利用者がそのパッチを適用する可能性は低い。そのため、将来、機能が初めて稼働した場合、パッチが適用されていないため、不具合が発生してしまうこともある。
【０００７】
そこで、本発明は、利用者にとって将来的に重要なパッチを提示することを、主な目的とする。
【課題を解決するための手段】
【０００８】
前記課題を解決するために、本発明は、プログラムへの修正内容を示すパッチを管理するパッチ管理装置によるパッチ管理方法であって、
前記パッチ管理装置が、制御部と、記憶手段とを有しており、
前記パッチ管理装置の制御部が、
前記プログラムを業務装置上で動作させる利用者ごとに、そのプログラムの機能ごとの前記業務装置上での稼働情報を取得して前記記憶手段に格納し、格納された稼働情報から機能ごとの稼働頻度を示すヒストグラムを利用者ごとに作成し、
２人の利用者の前記ヒストグラムから、そのヒストグラムのデータ間の関連性を指標化して、２人の利用者間の類似度を算出し、
算出した前記類似度が所定しきい値以上であるときに、その類似度についての２人の利用者を互いに類似利用者とし、
所定利用者について、その所定利用者に対する類似利用者の人数と、その類似利用者のうちの所定パッチを前記プログラムへ適用した類似利用者の人数との割合に基づき、その割合が大きいほど前記所定利用者の前記所定パッチについての将来稼働可能性を高い値として算出し、
前記将来稼働可能性の高い順に整列されたパッチのリストを、前記所定利用者の前記業務装置に表示させることを特徴とする。
その他の手段は、後記する。
【発明の効果】
【０００９】
本発明によれば、利用者にとって将来的に重要なパッチを提示することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に関するパッチ提示画面の一例を示す説明図である。
【図２】本発明の一実施形態に関する類似利用者のパッチ適用によるランクの変化後のパッチ提示画面の一例を示す説明図である。
【図３】本発明の一実施形態に関するパッチ管理システムの構成を示す説明図である。
【図４】本発明の一実施形態に関するパッチ管理システムの構成を示す説明図である。
【図５】本発明の一実施形態に関するパッチ管理システムの構成を示す説明図である。
【図６】本発明の一実施形態に関するパッチ管理システムの構成を示す説明図である。
【図７】本発明の一実施形態に関する機能稼働パターンの一例を示す説明図である。
【図８】本発明の一実施形態に関する機能稼働パターンの相関比較の一例を示す説明図である。
【図９】本発明の一実施形態に関する機能稼働パターンテーブルの一例を示す説明図である。
【図１０】本発明の一実施形態に関する稼働情報テーブルの一例を示す説明図である。
【図１１】本発明の一実施形態に関するポリシテーブルの一例を示す説明図である。
【図１２】本発明の一実施形態に関する機能稼働パターン類似度テーブルの一例を示す説明図である。
【図１３】本発明の一実施形態に関する類似利用者テーブルの一例を示す説明図である。
【図１４】本発明の一実施形態に関する実行パス情報定義テーブルの一例を示す説明図である。
【図１５】本発明の一実施形態に関するパッチ情報定義テーブルの一例を示す説明図である。
【図１６】本発明の一実施形態に関する機能情報定義テーブルの一例を示す説明図である。
【図１７】本発明の一実施形態に関するパッチランクテーブルの一例を示す説明図である。
【図１８】本発明の一実施形態に関するパッチランク理由テーブルの一例を示す説明図である。
【図１９】本発明の一実施形態に関する修正内容重要度テーブルの一例を示す説明図である。
【図２０】本発明の一実施形態に関する現在稼働頻度評価テーブルの一例を示す説明図である。
【図２１】本発明の一実施形態に関する将来稼働可能性評価テーブルの一例を示す説明図である。
【図２２】本発明の一実施形態に関するパッチ管理システムの処理の概要を示すフローチャートである。
【図２３】本発明の一実施形態に関する類似利用者のパッチ適用によるランクの変化の一例を示す説明図である。
【図２４】本発明の一実施形態に関する稼働情報収集処理の詳細を示すフローチャートである。
【図２５】本発明の一実施形態に関する稼働情報取得処理の詳細を示すフローチャートである。
【図２６】本発明の一実施形態に関する類似利用者判定処理の詳細を示すフローチャートである。
【図２７】本発明の一実施形態に関するパッチランクテーブルの一例を示す説明図であり、重要パッチ予測処理が行われる前の状態を表している。
【図２８】本発明の一実施形態に関する重要パッチ予測処理の詳細を示すフローチャートである。
【図２９】本発明の一実施形態に関する重要パッチ予測処理の詳細を示すフローチャートである。
【図３０】本発明の一実施形態に関する重要パッチ予測処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
【００１２】
まず、本実施形態の概要について、説明する。
パッチ提供装置１００（図３）は、複数の未適用のパッチの中から、業務装置１５０（図３）の利用者に適したパッチを選別して、その利用者に提示することを特徴とする。
【００１３】
パッチランク（適宜ランクと略す）は、利用者ごとに、その利用者にとって適用することが推奨されるパッチの重要度である。パッチ提供装置１００は、例えば、パッチランクが高い順にパッチのリストを提示したり、パッチランクが所定しきい値より高いパッチのリストを提示したりすることにより、利用者にとって重要なパッチを利用者に把握させる。なお、パッチランクは利用者ごとに計算されるので、同じパッチであっても、利用者Ａにとってはパッチランクが高くても、利用者Ｂにとってはパッチランクが低いこともある。
【００１４】
図１，図２の画面図で表示されているランクは、修正内容重要度、現在稼働頻度、および、将来稼働可能性という３つのパラメータのうちの、１つ以上のパラメータを集計することによって、計算される。例えば、ランクは、修正内容重要度、現在稼働頻度、および、将来稼働可能性を重み付け加算してもよいし、現在稼働頻度、および、将来稼働可能性を用いずにランク＝修正内容重要度としてもよい。
なお、本実施形態では、パッチランク、修正内容重要度、現在稼働頻度、および、将来稼働可能性について、高い点から順に、「ＡＡＡ（５点）」、「ＡＡ（４点）」、「Ａ（３点）」、「Ｂ（２点）」、「Ｃ（１点）」、「−（０点）」とする。「ＡＡＡ（５点）」は、最も重要度の高いときの点数、または、最も頻度の多いときの点数である。
パラメータ「修正内容重要度」は、パッチごとに、そのパッチの提供者があらかじめ設定した、パッチの修正内容の重要度を示す。
パラメータ「現在稼働頻度」は、利用者ごとに、その利用者が現在までに稼働した機能ごとの頻度を示す。
パラメータ「将来稼働可能性」は、利用者ごとに、その利用者が将来稼働する機能ごとの可能性（頻度でもよい）を示す。
【００１５】
本実施形態の主要な特徴は、パッチ提供装置１００が、パラメータ「将来稼働可能性」を用いて、パッチランクを計算することである。つまり、ある機能がある利用者にとって現在までに稼働した頻度が少なくても（現在稼働頻度が低くても）、その機能における将来稼働可能性が高いときには、その利用者が実際にその機能を起動する前に高いパッチランクとして利用者に通知し、その機能へのパッチを稼働の事前に適用させる。
これにより、利用者Ａは、自身で稼働している機能に関するパッチだけでなく、将来的に稼働する機能に関するパッチを稼働前に適用することで、パッチ適用対象プログラムの不具合が発生する前に、予防保守を行うことができる。
【００１６】
そして、パッチ提供装置１００が実行するパラメータ「将来稼働可能性」の計算方法として、類似利用者という概念を導入することで、将来稼働可能性の精度を高めることができる。まず、ある利用者Ａと、別の利用者Ｂとの間で、現在までに稼働した機能の履歴が類似しているときには、その２人の利用者を互いに類似利用者とする。つまり、利用者Ａにとって、０人以上の類似利用者がいることになる。
【００１７】
そして、あるパッチについて、利用者Ａは未適用であっても、類似利用者のなかで既に適用済みの利用者の割合（以下、パッチ適用済み類似利用者率とする）が大きいときには、そのパッチの利用者Ａにとっての将来稼働可能性を高いものとして計算する。
利用者ＡにとってのパッチＰの「パッチ適用済み類似利用者率」＝（パッチＰを適用済みの類似利用者の人数）÷（類似利用者の人数）
【００１８】
例えば、あるパッチＰの適用実績を分析した結果、パッチＰが、利用者Ａにとっての多くの類似利用者に適用済みである場合、パッチＰが修正する機能Ｆは多くの類似利用者で稼働している、もしくは将来稼働する可能性が高い。それらの類似利用者と機能稼働パターンが類似している利用者Ａにおいて、機能Ｆは、現在稼働していなくとも、機能Ｆは将来稼働する可能性が高い機能である。よって、利用者Ａにとっての機能ＦのパッチＰは、現在稼働頻度が低くても将来稼働可能性が高いパッチである。
【００１９】
一方、あるパッチＱの適用実績を分析した結果、多くの類似利用者が未適用のパッチである場合、パッチＱが修正する機能Ｇは多くの類似利用者で稼働していない、かつ、将来的にも稼働しない機能である。よって、利用者Ａにとって機能Ｇは将来稼働する可能性が低いため、パッチＱの将来稼働可能性は低い。
【００２０】
図１は、利用者Ａに提示されるパッチ提示画面２４００の一例を示す説明図である。パッチ提示画面２４００は、パッチの識別子であるパッチＩＤごとに、そのパッチが適用されるプログラム名称と、そのパッチの重要度を示すランクと、そのランクの計算に用いられた３つのパラメータ（修正内容重要度、現在稼働頻度、および、将来稼働可能性）と、そのパッチを適用することにより修正される修正機能と、そのパッチの修正内用途とを対応づけて、表形式で表示する。
【００２１】
利用者Ａがパッチ情報取得ボタン２４０１を押下すると、後記するパッチ提供装置１００の各処理によりランクが計算され、そのランクの高い順に利用者に提示される。利用者はランクから、自身に重要なパッチを即座に把握することができる。さらに、利用者は、パッチに関連づけられている「修正機能」や「修正内容」から、パッチの詳細を把握できる。
なお、利用者Ａがパッチ情報取得ボタン２４０１を押下するたびに、ランクなどが再計算されることにより、パッチ提示画面２４００の各情報は最新に更新される。
【００２２】
１行目のパッチＩＤ「patch_1」は、ランクがＡＡＡであり、修正の内容はあまり重要でないが（修正内容重要度＝Ｃ）、現在頻繁に稼働している機能に関するパッチであり（現在稼働頻度＝ＡＡＡ）、将来も頻繁に稼働するパッチである（将来稼働可能性＝ＡＡＡ）ことがわかるため、利用者Ａは、patch_1が適用すべきパッチであると、パッチ提示画面２４００を見て認識できる。
【００２３】
２行目のパッチＩＤ「patch_4」は、修正機能「系切替」に関するパッチであるが、現在稼働頻度がＣであることから、利用者Ａでは系切替機能が稼働していないことがわかる。しかし、将来稼働可能性＝ＡＡＡであるため、利用者Ａにpatch_4のランクを高い「Ａ」として提示できる。
これにより、系切替機能の稼働前に予防保守として、利用者Ａにpatch_4を適用すべきと認識させることができる。
一方、将来稼働可能性をランクに反映させないと、patch_4が重要と判断されることはなく、利用者Ａがpatch_4を適用しにくい。そのため、利用者Ａにて系切替機能が稼働した際に、不具合が発生してしまう。
【００２４】
３行目のパッチＩＤ「patch_2」は、修正内容重要度がＡＡＡと、とても重要であるが、現在稼働頻度＝Ｂ、かつ、将来稼働可能性＝Ｂである。そのため、ランクとしてはＢであり、利用者Ａは、自身にさほど重要なパッチではないことが認識できる。よって、利用者Ａは、不要なpatch_2を適用する手間を省略することができる。
【００２５】
このように、図１のパッチ提示画面２４００は、パッチごとに適用すべきかどうかを利用者Ａに提示することが可能であり、パッチ提示画面２４００を見て、利用者Ａはパッチを適用するべきか否かを判断する。利用者Ａは、パッチの表示順序や、その表示順序を規定するランクから、適用するべきパッチのチェックボックス２４０３，２４０４をチェックし、パッチダウンロードボタン２４０２を押下し、パッチを適用する。
また、ランクの計算に用いられるポリシを変更したいときには、ポリシ設定ボタン２４０５が押下される。
【００２６】
図２は、図１のパッチ提示画面２４００に対して、パッチＩＤ「patch_2」が再計算されたときの説明図である。パッチＩＤ「patch_2」が、図１の３行目から図２の２行目に格上げされたこときにより、利用者Ａにとって、２行目のpatch_2が３行目のpatch_4よりも重要になる。パッチＩＤ「patch_2」のランクが「Ｂ」から「ＡＡ」に格上げされた要因は、パッチＩＤ「patch_2」の将来稼働可能性が「Ｂ」から「ＡＡＡ」格上げされたことによる。
そして、将来稼働可能性が上昇したのは、利用者Ａの類似利用者がパッチ「patch_2」を適用したためである。このように、利用者Ａの類似利用者がパッチを適用すると、そのパッチの将来稼働可能性が上り、それにともない、利用者Ａのパッチランクも変化する。
【００２７】
図３は、パッチ管理システムを示す構成図である。パッチ管理システムは、パッチ管理装置であるパッチ提供装置１００（図４，図５参照）と業務装置１５０，１５１（図６参照）とが、ネットワーク１４０を介して接続される。
各業務装置１５０，１５１は、業務処理を実行し、その業務処理対象であるクライアント１５２〜１５５を収容している。なお、本実施形態では、１人の利用者が１つの業務装置１５０を利用することとして説明する。そのため、１つの業務装置１５０に対して、１つ利用者ＩＤが割り当てられる。
パッチ提供装置１００は、業務装置１５０内のパッチ適用対象プログラム１６２（図６参照）のパッチの情報をもつサーバ装置であり、そのパッチ適用対象プログラム１６２の稼働情報を収集し、パッチの情報と収集した稼働情報を分析することで、業務装置１５０の利用者にパッチの重要性をパッチランクとして提示する。
【００２８】
図４は、パッチ提供装置１００を示す構成図である。パッチ提供装置１００は、主記憶装置１１０、ＣＰＵ１２０、入力装置１２１、出力装置１２２、ネットワークインタフェース１２３、および、各データベースがバス１４１を介して互いに接続される。
ＣＰＵ１２０は、主記憶装置１１０に記憶された各種プログラムを実行することによって各種処理を実行する。
入力装置１２１は、パッチ情報の定義の更新など、パッチ提供装置１００に必要な情報および指示の入力に使用する。
出力装置１２２は、パッチ提供装置１００から出力される情報を表示する。
ネットワークインタフェース１２３は、ネットワーク１４０に接続する。
【００２９】
さらに、パッチ提供装置１００内のデータベースとして、稼働情報ＤＢ１３０（図８参照）、機能稼働パターン類似度ＤＢ１３１、類似利用者ＤＢ１３２、マッピングＤＢ１３３、パッチランクＤＢ１３４がバス１４１を介して接続されている。これらのデータベースの詳細は、図５で説明する。
【００３０】
パッチ提供装置１００の主記憶装置１１０は、情報定義処理部１１１、稼働情報取得処理部１１２（図２５参照）、機能稼働パターン類似度算出処理部１１３、類似利用者判定処理部１１４（図２６参照）、重要パッチ予測処理部１１５（図２８〜図３０参照）、パッチ情報通知処理部１１６、および、オペレーティングシステム１１７を有する。
【００３１】
情報定義処理部１１１は、パッチと、パッチが修正する機能の対応付けを行う。情報定義処理部１１１は、パッチの提供者により、入力装置１２１を介して利用される。
稼働情報取得処理部１１２は、すべての利用者の稼働情報を、パッチ提供装置１００に集める。これにより、パッチ提供装置１００が、すべての利用者の稼働情報を分析できるようになる。
機能稼働パターン類似度算出処理部１１３は、利用者Ａと利用者Ｂの類似度を、機能稼働パターンから算出する。これにより、利用者間のパッチ適用対象プログラム１６２の使い方が似ているか比較することができる。
類似利用者判定処理部１１４は、機能稼働パターン類似度テーブル１３１Ａ（図１２参照）の各レコードに対して、類似度７０１が所定しきい値以上であるか否かを判定し、所定しきい値以上であるレコードを抽出して、類似利用者テーブル１３２Ａ（図１３参照）に書き出す。これにより、利用者ごとに類似利用者を抽出できる。
【００３２】
重要パッチ予測処理部１１５は、利用者ごとに、その利用者にとって重要なパッチを予測する。重要パッチ予測処理部１１５は、現在稼働頻度算出処理部１１５Ａ（図２８参照）と、将来稼働可能性算出処理部１１５Ｂ（図２９参照）と、パッチランク算出処理部１１５Ｃ（図３０参照）によって構成される。
【００３３】
現在稼働頻度算出処理部１１５Ａは、利用者ごとの現在までの実行パス情報の稼働頻度を、現在稼働頻度として算出する。これにより、利用者ごとに、パッチ適用対象プログラム１６２の機能が、現在どの程度稼働しているかを把握できる。
【００３４】
将来稼働可能性算出処理部１１５Ｂは、利用者ごとに、あるパッチによって修正されるある機能が、その利用者にとって将来稼働される可能性を、将来稼働可能性として算出する。例えば、将来稼働可能性算出処理部１１５Ｂは、利用者Ａの類似利用者のパッチ適用の実績を分析して、利用者Ａの将来稼働可能性を算出する。これにより、パッチ適用対象プログラム１６２の将来稼働可能性を把握できる。
【００３５】
パッチランク算出処理部１１５Ｃは、利用者ごとに、その利用者が未適用の各パッチについて、その利用者にとってのパッチランク１２００（図１７参照）を算出する。
【００３６】
パッチ情報通知処理部１１６は、パッチランクのようなパッチに関する情報を、図１，図２で示したようなパッチ提示画面２４００により、業務装置１５０のパッチ情報表示処理部１６６を介して、業務装置１５０の利用者に通知する。
【００３７】
図５は、パッチ提供装置１００内の各データベースを示す構成図である。パッチ提供装置１００は、稼働情報ＤＢ１３０と、機能稼働パターン類似度ＤＢ１３１と、類似利用者ＤＢ１３２と、マッピングＤＢ１３３と、パッチランクＤＢ１３４とを有する。
【００３８】
稼働情報ＤＢ１３０は、すべての利用者のパッチ適用対象プログラム１６２の稼働情報と、ポリシ設定情報を格納するデータベースであり、機能稼働パターンテーブル１３０Ａ（図９参照）と、稼働情報テーブル１３０Ｂ（図１０参照）と、ポリシテーブル１３０Ｃ（図１１参照）を有する。
【００３９】
機能稼働パターン類似度ＤＢ１３１は、利用者間の機能稼働パターンの類似度などを格納するデータベースであり、機能稼働パターン類似度テーブル１３１Ａ（図１２参照）を有する。
類似利用者ＤＢ１３２は、ある利用者の類似利用者の情報を格納するデータベースであり、類似利用者テーブル１３２Ａ（図１３参照）を有する。
【００４０】
マッピングＤＢ１３３は、パッチ提供者が設定する、実行パス情報と機能との対応付け、機能とパッチとの対応付け、機能と機能の名称との対応付けの定義情報を格納するデータベースであり、実行パス情報定義テーブル１３３Ａ（図１４参照）と、パッチ情報定義テーブル１３３Ｂ（図１５参照）と、機能情報定義テーブル１３３Ｃ（図１６参照）を有する。これらのマッピングＤＢ１３３を構成する各テーブルは、情報定義処理部１１１によってそのテーブル内のデータが更新される。
【００４１】
パッチランクＤＢ１３４は、パッチランクの算出に関する情報を格納するデータベースであり、パッチランクテーブル１３４Ａ（図１７参照）と、パッチランク理由テーブル１３４Ｂ（図１８参照）と、修正内容重要度テーブル１３４Ｃ（図１９参照）と、現在稼働頻度評価テーブル１３４Ｄ（図２０参照）と、将来稼働可能性評価テーブル１３４Ｅ（図２１参照）を有する。なお、パッチ本体は、パッチランクＤＢ１３４に格納されている。
【００４２】
図６は、業務装置１５０を示す構成図である。なお、業務装置１５１は、業務装置１５０と同様の構成を有する。業務装置１５０は、業務プログラム１６１が稼働する装置であり、主記憶装置１６０、ＣＰＵ１７０、入力装置１７１、出力装置１７２、ネットワークインタフェース１７３、稼働情報ＤＢ１８０（図７参照）を備える。これらの構成要素は、バス１４２を介して互いに接続される。
ＣＰＵ１７０は、主記憶装置１６０に記憶された各種プログラムを実行することによって各種処理を実行する。
入力装置１７１は、ポリシの設定など、業務装置１５０に必要な情報および指示の入力、図１で後記するパッチ提示画面の操作に使用する。
出力装置１７２は、業務装置１５０から出力される情報を表示する。
ネットワークインタフェース１７３は、パッチ提供装置１００に接続されるネットワーク１４０に接続する。
【００４３】
主記憶装置１６０は、業務プログラム１６１、稼働情報収集処理部１６４（図２４参照）、ポリシ設定処理部１６５、パッチ情報表示処理部１６６、オペレーティングシステム１６７を備える。
業務プログラム１６１は、業務に使用されるプログラムであり、パッチ適用対象プログラム１６２と、パッチ適用対象外プログラム１６３からなる。パッチ適用対象プログラム１６２は、パッチ適用の対象である１つ以上のプログラムである。パッチ適用対象外プログラム１６３は、パッチ適用の対象外である１つ以上のプログラムである。
【００４４】
稼働情報収集処理部１６４は、パッチ適用対象プログラム１６２に対する利用者の稼働情報を収集する。具体的には、パッチ適用対象プログラム１６２を常に監視し、その結果を稼働情報ＤＢ１８０に格納する。
そして、稼働情報ＤＢ１８０の各テーブルの内容は、稼働情報ＤＢ１３０の各テーブルの内容へと書き出される。例えば、機能稼働パターンテーブル１８０Ａから機能稼働パターンテーブル１３０Ａへ、稼働情報テーブル１８０Ｂから稼働情報テーブル１３０Ｂへ、ポリシテーブル１８０Ｃからポリシテーブル１３０Ｃへ、それぞれ内容がコピーされる。
よって、業務装置１５０内の稼働情報ＤＢ１８０は、１人の利用者の稼働情報を格納するが、パッチ提供装置１００内の稼働情報ＤＢ１３０は、すべての利用者の稼働情報を格納する。
【００４５】
ポリシ設定処理部１６５は、ポリシテーブル１８０Ｃの内容を利用者から受け付けると、その内容に従ってポリシテーブル１３０Ｃを更新する。ポリシ設定処理部１６５は、例えば、図１，図２のポリシ設定ボタン２４０５の押下を契機に、ポリシテーブル１８０Ｃを更新する。
パッチ情報表示処理部１６６は、パッチ情報通知処理部１１６から通知されるパッチ情報を、出力装置１７２を介して図１，図２のパッチ提示画面２４００として表示する。
【００４６】
図７は、機能稼働パターンテーブル１８０Ａの一例を示す説明図である。機能稼働パターンテーブル１８０Ａは、性能監視や劣化通知などの機能を特定する実行パス情報２２０ごとのその機能の実行回数である稼働頻度２１０を示す、利用者ごとのヒストグラムである。
ヒストグラムの横軸は、実行パス情報２２０（例えば、パッチ適用対象プログラム１６２のソースコードの行番号）を示し、ヒストグラムの縦軸は、実行パス情報２２０の稼働頻度２１０を正規化した値を示す。なお、稼働頻度２１０は、利用者の稼働情報から計算される。
【００４７】
図７の上のグラフは、パッチ適用対象プログラム１６２として、系切替機能を有するプログラムに関する機能稼働パターンテーブル１８０Ａである。
図７の下のグラフは、パッチ適用対象プログラム１６２として、バックアップ機能を有するプログラムに関する機能稼働パターンテーブル１８０Ａである。
これらの機能稼働パターンテーブル１８０Ａは、パッチ適用対象プログラム１６２ごとに存在し、稼働情報収集処理部１６４により格納される。稼働情報収集処理部１６４は、ソースコード行ごとの実行された回数や、適用済みのパッチや、プログラムの環境設定情報といった、パッチ適用対象プログラムの動作を監視することで、利用者ごとの稼働情報を収集する。
【００４８】
図８は、機能稼働パターン類似度算出処理部１１３の処理概要を示す説明図である。機能稼働パターン類似度算出処理部１１３は、図７の機能稼働パターンテーブル１８０Ａが収集された機能稼働パターンテーブル１３０Ａを入力とし、機能稼働パターン類似度テーブル１３１Ａを出力とする。
【００４９】
機能稼働パターン類似度算出処理部１１３は、利用者ごとの機能稼働パターンのヒストグラムから２人の利用者Ａ，Ｂのヒストグラムを入力とし、その入力されたヒストグラムに対する相関係数（例えば、ピアソンの積率相関係数、スピアマンの順位相関係数、または、ケンドールの順位相関係数など）の計算により、２人の利用者間の機能稼働パターンの相関係数を計算する。そして、機能稼働パターン類似度算出処理部１１３は、計算した相関係数を、機能稼働パターン類似度テーブル１３１Ａに類似度として格納する。つまり、機能稼働パターン類似度算出処理部１１３は、２人の利用者間の機能稼働パターンのデータ間の関連性を指標化して類似度を算出する。
例えば、図８では、上のグラフのほうが下のグラフよりも、２人の利用者Ａ，Ｂのグラフ形状が類似している。よって、図８の上のグラフのほうが下のグラフよりも、高い類似度として計算される。
なお、機能稼働パターン類似度算出処理部１１３による類似度算出処理は、前記したように、利用者の集合から２人の利用者を抽出して、互いに比較する処理だけでなく、利用者の集合に属する各利用者をクラスタ分析するなど、任意の類似度算出処理を用いることができる。
【００５０】
図９は、機能稼働パターンテーブル１３０Ａの一例を示す説明図である。機能稼働パターンテーブル１３０Ａは、全利用者の機能稼働パターンのデータを格納し、管理するテーブルであり、図８で示した利用者間の類似度の算出や、パッチの現在稼働頻度の算出に用いられる。
【００５１】
利用者ＩＤ４００は、利用者を一意に特定する値である。
実行パス情報番号４０１は、図７の実行パス情報２２０に相当する。図９では実行パス情報番号４０１の一例として、パッチ適用対象プログラム１６２のソースコードの行番号をテーブル内に格納しているが、機能に番号を振ったものを格納してもよい。
稼働頻度４０２は、図７の稼働頻度２１０に相当する。
プログラム名称９００は、パッチ適用対象プログラム１６２の名称である。
例えば、行４１０では、ｕｓｅｒ＿Ａにおける系切替プログラムの５０００行目の稼働頻度は０である旨を示す。一方、行４１１では、ｕｓｅｒ＿Ｂにおける系切替プログラムの５００１行目の稼働頻度は２である旨を示す。
【００５２】
機能稼働パターンテーブル１３０Ａの各レコードは、各利用者の稼働情報収集処理部１６４により収集され、機能稼働パターンテーブル１８０Ａに格納され、その後、パッチ提供装置１００の稼働情報取得処理部１１２により、機能稼働パターンテーブル１３０Ａに格納される。
例えば、利用者Ａの利用者ＩＤ４００がｕｓｅｒ＿Ａのとき、利用者ＩＤ４００がｕｓｅｒ＿Ａの行は、利用者Ａの業務装置１５０内の機能稼働パターンテーブル１８０Ａに格納されているデータである。
【００５３】
図１０は、稼働情報テーブル１３０Ｂの一例を示す説明図である。稼働情報テーブル１３０Ｂは、利用者の稼働情報のうちの機能稼働パターンテーブル１３０Ａ内の機能稼働パターン以外の稼働情報を管理するテーブルであり、後記する将来稼働可能性の算出や、パッチランクの算出に用いられる。
【００５４】
利用者ＩＤ４００は、利用者を一意に特定する値であり、適用済パッチＩＤ５００は、利用者が適用済みのパッチＩＤであり、プログラム名称９００は、パッチ適用対象プログラム１６２の名称であり、環境設定情報５０１は、パッチ適用対象プログラム１６２の設定情報である。
例えば、行５１０では、ｕｓｅｒ＿Ａにおける系切替プログラムの稼働情報として、patch_3のパッチが適用済みであり、性能劣化条件であるＣＰＵ利用率が９０％に到達すると、系切替機能が稼働するという設定がなされていることを表す。
【００５５】
行５１０〜行５１３などの各要素は、各利用者の稼働情報収集処理部１６４により収集され、稼働情報テーブル１８０Ｂに格納され、その後、パッチ提供装置１００の稼働情報取得処理部１１２により、稼働情報テーブル１３０Ｂに格納される。つまり、機能稼働パターンテーブル１３０Ａと同様、各利用者の稼働情報テーブル１８０Ｂのデータが、稼働情報テーブル１３０Ｂに集められる。
【００５６】
図１１は、ポリシテーブル１３０Ｃの一例を示す説明図である。ポリシテーブル１３０Ｃは、全利用者分の類似利用者を判定するための閾値や、パッチランク決定時に用いる重み付けの値を格納するテーブルであり、後記する類似利用者の判定や、パッチランクの決定に用いられる。
【００５７】
利用者ＩＤ４００は、利用者を一意に特定する値である。
類似度閾値ポリシ６００は、利用者ＩＤ４００の利用者と、他の利用者が類似利用者となるか否かを判定する閾値であり、０〜１００の値をとる。値が０に近い方が判定が緩く、値が１００に近い方が判定が厳しくなる。つまり、利用者が、多くの類似利用者からパッチの重要性を判定したい場合は、類似度閾値ポリシ６００の値を低く設定し、類似利用者の精度を上げたい場合は、類似度閾値ポリシ６００の値を高く設定する。
【００５８】
ランク重みポリシ６０１は、パッチランク算出処理部１１５Ｃにおいて、パッチランクを算出する際の重み付けの値であり、０〜１の値を設定する。０に近いほど値を軽視し、１に近いほど値を重視する。つまり、パッチの重要性を考慮するにあたり、利用者が、修正内容重要度、現在稼働頻度、将来稼働可能性という三つの要素について、それぞれの重み付けの値を決定する。
【００５９】
オプション使用６０２は、後記の将来稼働可能性算出処理部１１５Ｂにて、将来稼働可能性１２０３を算出する際に用いる情報であり、「使用する」または「使用しない」のいずれかである。オプションを使用することで将来稼働可能性１２０３の精度向上を図ることができる。
プログラム名称９００は、パッチ適用対象プログラム１６２の名称である。
【００６０】
例えば行６１０では、ｕｓｅｒ＿Ａにおける系切替プログラムの機能稼働パターンの類似度として、７０未満の利用者は類似利用者ではなく、７０以上の利用者を類似利用者とする閾値が設定されている。
また、パッチランクを決定する際に、パッチの修正内容の重要度に乗算する係数として０．１５、パッチが修正する機能の現在の稼働頻度に乗算する係数として０．５５、パッチが修正する機能の将来の稼働可能性に乗算する係数として０．４０が設定されている。
【００６１】
行６１０，６１１などの各要素は、各利用者のポリシ設定処理部１６５によりポリシテーブル１８０Ｃに格納され、その後、パッチ提供装置１００の稼働情報取得処理部１１２により、ポリシテーブル１３０Ｃに格納される。つまり、機能稼働パターンテーブル１３０Ａと同様、各利用者のポリシテーブル１８０Ｃのデータが、ポリシテーブル１３０Ｃに集められる。
【００６２】
図１２は、機能稼働パターン類似度テーブル１３１Ａの一例を示す説明図である。機能稼働パターン類似度算出処理部１１３は、機能稼働パターン類似度テーブル１３１Ａに、データを格納する。機能稼働パターン類似度テーブル１３１Ａは、２人の利用者間の機能稼働パターン類似度を格納するテーブルであり、後記する類似利用者の判定に用いられる。
【００６３】
利用者ＩＤ４００は、利用者を一意に特定する値であり、比較対象利用者ＩＤ７００は、利用者ＩＤ４００と類似比較の対象となった利用者ＩＤであり、類似度７０１は、利用者ＩＤ４００と比較対象利用者ＩＤ７００の機能稼働パターンを比較した結果であり、最大で１００、最小で０となる値であり、プログラム名称９００は、パッチ適用対象プログラム１６２の名称である。
例えば行７１０では、系切替プログラムにおいて、ｕｓｅｒ＿Ａとｕｓｅｒ＿Ｂの機能稼働パターンを比較した結果、類似度は７４であるということを表す。
【００６４】
図１３は、類似利用者テーブル１３２Ａの一例を示す説明図である。類似利用者判定処理部１１４は、類似利用者テーブル１３２Ａにデータを格納する。類似利用者テーブル１３２Ａは、類似利用者と判定された２人の利用者のデータを格納するテーブルであり、後記する将来稼働可能性の算出に用いられる。
【００６５】
利用者ＩＤ４００は、利用者を一意に特定する値であり、類似利用者ＩＤ８００は、利用者ＩＤ４００と類似利用者と判定された利用者ＩＤであり、類似度７０１は、利用者ＩＤ４００と類似利用者ＩＤ８００の類似度であり、プログラム名称９００は、パッチ適用対象プログラム１６２の名称である。
例えば行８１０では、系切替プログラムにおいて、ｕｓｅｒ＿Ａとｕｓｅｒ＿Ｂは類似利用者であり、類似度は７４であることを表す。
【００６６】
図１４は、実行パス情報定義テーブル１３３Ａの一例を示す説明図である。実行パス情報定義テーブル１３３Ａは、パッチ適用対象プログラム１６２の実行パス情報２２０と、機能を対応付けるテーブルであり、後記する現在稼働頻度の算出に用いられる。
【００６７】
プログラム名称９００は、パッチ適用対象プログラム１６２の名称であり、実行パス情報番号４０１は、実行パス情報に付与される番号（例えば、ソースコードの行番号）であり、機能ＩＤ９０１は、実行パス情報番号４０１と対応付けられた、パッチ適用対象プログラム１６２の機能を特定するＩＤである。
例えば行９１０では、系切替プログラムにおいて、実行パス情報番号（ソースコードの行番号）が４９９９、５０００、５００１が、ｆｕｎｃ＿ｄの機能を示していることを表す。
【００６８】
図１５は、パッチ情報定義テーブル１３３Ｂの一例を示す説明図である。パッチ情報定義テーブル１３３Ｂは、パッチ適用対象プログラム１６２のパッチと、機能を対応付けるテーブルであり、後記するパッチ情報の表示で用いられる。
【００６９】
プログラム名称９００は、パッチ適用対象プログラム１６２の名称であり、パッチＩＤ１０００は、パッチを一意に特定する値であり、機能ＩＤ９０１は、パッチ適用対象プログラム１６２の機能を特定するＩＤであり、修正内容１００１は、パッチが修正する内容を記載したものである。
例えば行１０１０では、系切替プログラムにおいて、patch_4は、ｆｕｎｃ＿ｄの機能の系切替後に性能が劣化する不具合を修正するということを表す。
【００７０】
図１６は、機能情報定義テーブル１３３Ｃの一例を示す説明図である。機能情報定義テーブル１３３Ｃは、パッチ適用対象プログラム１６２の機能と、機能の名称を対応付けるテーブルであり、後記するパッチ情報の表示で用いられる。
【００７１】
プログラム名称９００は、パッチ適用対象プログラム１６２の名称であり、機能ＩＤ９０１は、パッチ適用対象プログラム１６２の機能を特定するＩＤであり、機能名称１１００は、パッチ適用対象プログラム１６２の機能の名称である。
例えば行１１１０では、系切替プログラムにおいて、機能ＩＤ９０１がｆｕｎｃ＿ｄのとき、その機能は系切替の機能であることを表す。
【００７２】
図１７は、パッチランクテーブル１３４Ａの一例を示す説明図である。パッチランク算出処理部１１５Ｃは、パッチランクテーブル１３４Ａにデータを格納する。パッチランクテーブル１３４Ａは、利用者と、パッチを適用すべき尺度であるランクを対応付けるテーブルであり、後記するパッチランク算出や、パッチ情報の表示で用いられる。
【００７３】
利用者ＩＤ４００は、利用者を一意に特定する値であり、パッチＩＤ１０００は、パッチを一意に特定する値である。ランク１２００、修正内容重要度１２０１、現在稼働頻度１２０２、および、将来稼働可能性１２０３は、図１，図２で表示される内容である。
修正内容重要度１２０１は、パッチ提供者によりあらかじめ設定された値である。
現在稼働頻度１２０２は、図７のヒストグラム（実行パス情報２２０ごとの稼働頻度２１０）から算出される。
将来稼働可能性１２０３は、類似利用者テーブル１３２Ａの類似利用者ＩＤ８００に含まれる全利用者に対して、特定のパッチが稼働情報テーブル１３０Ｂの適用済みパッチＩＤ５００に含まれる割合（パッチ適用済み類似利用者率）から、パッチごとに算出される。
【００７４】
重要パッチ予測処理部１１５は、既にランク１２００が算出済みであったpatch_1、patch_2、patch_4、patch_52、patch_53に関して、ランク１２００、修正内容重要度１２０１、現在稼働頻度１２０２、将来稼働可能性１２０３の値を計算して更新する。
【００７５】
なお、利用者が既に適用済みのパッチＩＤ（稼働情報テーブル１３０Ｂの適用済みパッチＩＤ５００で示されるものであり、例えば、図１７の３行目のpatch_3）のレコードは、表示対象から除外されるため、ランク１２００〜将来稼働可能性１２０３までの値がそれぞれ「−」として設定される。
【００７６】
図１８は、パッチランク理由テーブル１３４Ｂの一例を示す説明図である。パッチランク理由テーブル１３４Ｂの各要素は、パッチ提供者があらかじめ設定し、パッチランク理由テーブル１３４Ｂに格納しておく。
【００７７】
パッチランク理由テーブル１３４Ｂは、ランク１２００の算出に用いた、現在稼働頻度１２０２と将来稼働可能性１２０３の組み合わせと、その組み合わせにより算出されたランク１２００の理由１３００とを対応付けるテーブルであり、利用者が適用すべきパッチを決定する際に参考にするテーブルである。
【００７８】
理由１３００は、図１の「修正内容」列で表示されるデータで、ランク１２００の理由を記載したものであり、現在稼働頻度１２０２と将来稼働可能性１２０３の組み合わせにより決定される。例えば行１３１０では、あるパッチの現在稼働頻度１２０２が「Ｃ」であり、将来稼働可能性１２０３が「Ａ」である場合、そのパッチランクの理由１３００は、現在使用されていないが、将来使用する可能性がある機能のパッチであるため、ということになることを表す。この理由１３００の内容は、例えば、図１，図２のパッチ提示画面２４００の「修正内容」列に表示される。
【００７９】
図１９は、修正内容重要度テーブル１３４Ｃの一例を示す説明図である。修正内容重要度テーブル１３４Ｃの各要素は、パッチ提供者があらかじめ設定し、修正内容重要度テーブル１３４Ｃに格納しておく。修正内容重要度テーブル１３４Ｃは、パッチに対して、パッチ提供者が設定した修正内容重要度を対応付けるテーブルであり、後記するパッチランク算出に用いられる。
パッチＩＤ１０００はパッチを一意に特定するＩＤであり、修正内容重要度１２０１は、パッチＩＤごとの修正内容の重要度を示す値である。例えば行１４１０では、patch_4の修正内容重要度はＡであることを表す。
【００８０】
図２０は、現在稼働頻度評価テーブル１３４Ｄの一例を示す説明図である。現在稼働頻度評価テーブル１３４Ｄの各要素は、パッチ提供者があらかじめ設定し、現在稼働頻度評価テーブル１３４Ｄに格納しておく。現在稼働頻度評価テーブル１３４Ｄは、図７の稼働頻度２１０の値を、現在稼働頻度として五段階のアルファベット評価値に変換するために用いるテーブルであり、後記する現在稼働頻度の算出に用いられる。
稼働頻度範囲１５００は、現在稼働頻度１２０２を判定するための範囲であり、現在稼働頻度１２０２は、パッチが修正する実行パス情報２２０の現在の稼働頻度を示すアルファベット評価値である。例えば行１５１０では、稼働頻度範囲１５００が４＜ｘ≦６のとき、現在稼働頻度１２０２はＡであることを表す。
【００８１】
図２１は、将来稼働可能性評価テーブル１３４Ｅの一例を示す説明図である。将来稼働可能性評価テーブル１３４Ｅの各要素は、パッチ提供者があらかじめ設定し、将来稼働可能性評価テーブル１３４Ｅに格納しておく。
将来稼働可能性評価テーブル１３４Ｅは、機能稼働パターン類似度の値を、将来稼働可能性として五段階のアルファベット評価値に変換するために用いるテーブルであり、後記する将来稼働可能性の算出に用いられる。
類似利用者率範囲１６００は、将来稼働可能性１２０３を判定するための範囲であり、将来稼働可能性１２０３は、パッチが修正する実行パス情報２２０が将来稼働する可能性を示すアルファベット評価値である。
例えば行１６１０では、類似利用者率範囲１６００が４０＜ｘ≦６０のとき、将来稼働可能性１２０３はＡであることを表す。同様に、行１６２０では、類似利用者率範囲１６００が８０＜ｘ≦１００のとき、将来稼働可能性１２０３はＡＡＡであることを表す。
【００８２】
図２２は、パッチ管理システムの処理の概要を示すフローチャートである。以下、例として、パッチ適用対象プログラム１６２を、ＨＡ系切替機能（性能劣化兆候監視機能、性能劣化兆候通知機能、性能劣化兆候監視ログ出力機能、系切替機能、など）を備えたプログラム（系切替プログラム）とし、業務装置１５０を利用者Ａが利用し、業務装置１５１を利用者Ｂが利用しているとする。
【００８３】
利用者Ａおよび利用者Ｂは、すでに系切替プログラムを業務プログラム１６１として導入済みであり、それぞれの機能稼働パターンは図８で示されるものであり、利用者Ａでは系切替機能がほぼ稼働していないとする。系切替機能に関するパッチの重要性を利用者Ａに提示する流れを説明する。
【００８４】
前処理として、パッチ提供者は、入力装置１２１を介して、以下の対応付けをマッピングＤＢ１３３に定義する。
・図１４で示す実行パス情報定義テーブル１３３Ａ内において、図７で示す実行パス情報２２０を、機能ＩＤ９０１に対応付ける。
・図１５で示すパッチ情報定義テーブル１３３Ｂ内において、パッチＩＤ１０００と、機能ＩＤ９０１とを対応付ける。
・図１６で示す機能情報定義テーブル１３３Ｃ内において、機能ＩＤ９０１と、機能名称１１００とを対応付ける。
【００８５】
Ｓ１６４として、利用者Ａの主記憶装置１６０で稼働する稼働情報収集処理部１６４は、稼働情報収集処理（Ｓ１６４，図２４参照）を行う。例えば、稼働情報収集処理部１６４は、利用者Ａの系切替プログラムを監視することにより、利用者Ａの系切替プログラムの稼働情報を収集する。
Ｓ１１２として、パッチ提供装置１００の稼働情報取得処理部１１２は、Ｓ１６４で収集された稼働情報を取得する契機を待ち、その契機があった場合、すべての利用者の稼働情報を業務装置１５０からパッチ提供装置１００へと取得する（図２５参照）。
【００８６】
Ｓ１１３として、機能稼働パターン類似度算出処理部１１３は、機能稼働パターンの類似度を算出する。具体的には、機能稼働パターンテーブル１３０Ａの、実行パス情報番号４０１と、稼働頻度４０２からなる、二次元のデータを機能稼働パターンとし、利用者Ａと利用者Ｂで相関係数を求める。
例えば、相関係数が０．７４と測定されたとき、０．７４を百分率に変換した値７４が利用者Ａと利用者Ｂの機能稼働パターン類似度となる。類似度は１００に近いほど類似していることを示すため、７４はある程度高い類似度ということになる。
算出した機能稼働パターン類似度は、利用者ＢのＩＤとともに、機能稼働パターン類似度テーブル１３１Ａの行７１０のように、類似度７０１と比較対象利用者ＩＤ７００に格納する。
【００８７】
Ｓ１１４として、類似利用者判定処理部１１４は、類似利用者を判定する（図２６参照）。なお、図９〜図２１で説明した各テーブルの値は、類似利用者判定処理（Ｓ１１４）が終了した段階のものである。
Ｓ１１５として、重要パッチ予測処理部１１５は、重要パッチ予測処理を行う（図２８〜図３０参照）。これにより、図２７で示すパッチランクテーブル１３４Ａのランク１２００、修正内容重要度１２０１、現在稼働頻度１２０２、将来稼働可能性１２０３の値を算出し、その計算結果をパッチランクテーブル１３４Ａに格納する。
【００８８】
重要パッチ予測処理１１５部は、現在稼働頻度算出処理１１５Ａと（図２８参照）、将来稼働可能性算出処理１１５Ｂと（図２９参照）、パッチランク算出処理１１５Ｃと（図３０参照）から構成される。
【００８９】
Ｓ１１６として、パッチ情報通知処理部１１６は、以下の情報をパッチ情報として業務装置１５０のパッチ情報表示処理部１６６に通知する。
・パッチ情報定義テーブル１３３Ｂのプログラム名称９００
・パッチランクテーブル１３４ＡのパッチＩＤ１０００、ランク１２００、修正内容重要度１２０１、現在稼働頻度１２０２、将来稼働可能性１２０３
・機能情報定義テーブル１３３Ｃの機能名称１１００
・パッチ情報定義テーブル１３３Ｂの修正内容１００１
・パッチランク理由テーブル１３４Ｂの理由１３００
Ｓ１６６として、業務装置１５０のパッチ情報表示処理部１６６は、Ｓ１１６で受信したパッチ情報を、図１，図２のように画面表示として出力装置１７２に出力する。
【００９０】
図２３は、類似利用者のパッチ適用による、ランクの変化の一例を示す説明図である。図２３の上の２つのテーブル（稼働情報テーブル１３０Ｂ、パッチランクテーブル１３４Ａ）は、利用者Ａ（user_A）にとっての類似利用者（user_B,user_D）のパッチ「patch_2」適用前の状態を示し（図１の表示画面に対応）、図２３の下の２つのテーブルは、類似利用者のパッチ「patch_2」適用後の状態を示す（図２の表示画面に対応）。
【００９１】
各利用者がパッチを適用すると、その情報は稼働情報（適用済みパッチＩＤ５００）であるため、ランクの算出に随時反映される。すなわち、利用者Ａの類似利用者がパッチＰを適用するたびに、利用者Ａに対するパッチＰのランク１２００は動的に変化する。
【００９２】
例えば、パッチ「patch_2」適用前の利用者Ａの「patch_2」の将来稼働可能性１２０３は「Ｂ（３６％）」である。そして、利用者Ｂや利用者Ｄを始めとする、利用者Ａの類似利用者の多くが、patch_2を適用し始めると、利用者Ａの現在稼働頻度１２０２はＢのままであるが、利用者Ａの将来稼働可能性１２０３が「Ｂ（３６％）」から「ＡＡＡ（９０％）」に上昇する。
【００９３】
具体的には、以下の処理が行われる。
稼働情報収集処理部１６４が、適用済みパッチの情報を収集し、稼働情報テーブル１８０Ｂに登録する。その後、稼働情報取得処理部１１２が、行２５１０や行２５１１のように、稼働情報テーブル１３０Ｂの適用済みパッチＩＤ５００にpatch_2を登録する。
【００９４】
次に、機能稼働パターン類似度算出処理部１１３が利用者Ａとその他の利用者との機能稼働パターンの類似度７０１を、機能稼働パターン類似度テーブル１３１Ａに登録し、類似利用者判定処理部１１４が利用者Ｂや利用者Ｄなど、１００人の利用者を利用者Ａの類似利用者として判定したとする。その後、現在稼働頻度算出処理部１１５Ａが、パッチごとに現在稼働頻度１２０２を算出し、パッチランクテーブル１３４Ａに格納する。
【００９５】
その結果、patch_2の現在稼働頻度１２０２は、前記実施例と同様、Ｂとなったとする。次に、将来稼働可能性算出処理部１１５Ｂが、パッチごとに適用済みか否かを、全類似利用者（１００利用者）に対して調べる。その結果、patch_2は、９０人の利用者が適用済みであったとすると、patch_2のパッチ適用済み類似利用者率が９０％に上昇し、将来稼働可能性評価テーブル１３４Ｅの類似利用者率範囲１６００に９０％を当てはめると、行１６２０のように（「８０＜ｘ≦１００」→「ＡＡＡ」）、patch_2の将来稼働可能性１２０３は、ＡＡＡと算出される。算出した将来稼働可能性１２０３は、行２５１２のようにパッチランクテーブル１３４Ａに格納される。
【００９６】
パッチランク算出処理部１１５Ｃは、パッチごとの修正内容重要度１２０１（例えば、patch_2の「ＡＡＡ」）をパッチランクテーブル１３４Ａに格納する。
パッチランク算出処理部１１５Ｃは、パッチごとにランク１２００を算出する。patch_2のランク１２００は、行２５１２のように、修正内容重要度１２０１がＡＡＡ（５）、現在稼働頻度１２０２がＢ（２）、将来稼働可能性１２０３がＡＡＡ（５）として計算され、(0.15×5)+(0.55×2)+(0.40×5)という計算の結果、３．８５と算出される。３．８５の少数第一位を四捨五入すると４となり、ランク１２００はＡＡと算出される。
【００９７】
図２４は、稼働情報収集処理（Ｓ１６４）の詳細を示すフローチャートである。
【００９８】
Ｓ１８００として、パッチ適用対象プログラム１６２に対し、実行パス情報２２０ごとに稼働頻度２１０を監視・計測する。
Ｓ１８０１として、計測した前記稼働頻度２１０を正規化する。
Ｓ１８０２としてパッチ適用対象プログラム１６２における、適用済みパッチＩＤ５００（patch_3）と、環境設定情報５０１（性能劣化条件＝ＣＰＵ利用率９０％）を取得する。
【００９９】
Ｓ１８０３として、利用者ＩＤ４００（ｕｓｅｒ＿Ａ）と、実行パス情報２２０に番号を振った実行パス情報番号４０１（…５…１００…）と、正規化した前記稼働頻度４０２（…１０…４…）とプログラム名称９００（系切替プログラム）を、機能稼働パターンテーブル１８０Ａに、適用済みパッチＩＤ５００（patch_3）と、環境設定情報５０１（性能劣化条件＝ＣＰＵ利用率９０％）を、稼働情報テーブル１８０Ｂに登録する。なお、これらのデータは、パッチ適用対象プログラム１６２が複数存在する場合は、各プログラム名称９００ごとに格納される。
【０１００】
図２５は、稼働情報取得処理（Ｓ１１２）の詳細を示すフローチャートである。
【０１０１】
Ｓ１９００として、稼働情報取得処理部１１２は、Ｓ１６４で収集された稼働情報を取得する契機（パッチ計算契機）を待つ。以下にパッチ計算契機を例示する。これらの契機のうちの少なくとも１つの契機により、Ｓ１９０１に処理を進める。
（契機１）情報定義処理部１１１によって新規のパッチが定義された場合
（契機２）所定時間（例えば一週間）経過した場合
（契機３）利用者Ａが図１のパッチ情報取得ボタン２４０１を押下した場合
（契機４）図２３で示したように、類似利用者がパッチを適用した場合（パッチの将来稼働可能性は動的に変化する）。なお、利用者がパッチを適用したか否かは、稼働情報収集処理部１６４が、利用者の系切替プログラムの稼働情報を常に監視・収集している。
（契機５）類似利用者テーブル１３２Ａにおいて、類似利用者の人数が増減した場合
（契機６）ポリシテーブル１３０Ｃの類似度閾値ポリシ６００が、図１のポリシ設定ボタン２４０５の押下により、編集された場合。なお、ポリシ設定ボタン２４０５の押下は、例えば、利用者Ａが図１の将来稼働可能性として「ハイフン（計算できない）」を確認したときに、利用者Ａにとっての類似利用者がいないことを認識し、類似利用者の判定基準である類似度閾値ポリシ６００を緩和することで類似利用者を増やしたいと考えたときに、実行される。
【０１０２】
Ｓ１９０１として、利用者Ａ内の稼働情報ＤＢ１８０（機能稼働パターンテーブル１８０Ａ、稼働情報テーブル１８０Ｂ、ポリシテーブル１８０Ｃ）のデータを取得する。
Ｓ１９０２として、パッチ提供装置１００内の稼働情報ＤＢ１３０（機能稼働パターンテーブル１３０Ａ、稼働情報テーブル１３０Ｂ、ポリシテーブル１３０Ｃ）に、Ｓ１９０１で取得したデータを格納する。利用者Ｂのように利用者が複数存在する場合は、利用者Ｂの稼働情報も取得し、稼働情報ＤＢ１３０に格納する。
【０１０３】
利用者Ａと利用者Ｂの稼働情報が格納された例として、図９の機能稼働パターンテーブル１３０Ａでは、利用者Ａは行４１０のように、実行パス情報番号４０１が５０００のとき、稼働頻度４０２が０であるのに対し、利用者Ｂは行４１１のように、稼働頻度４０２が２であるように、利用者Ａと利用者Ｂで内容が異なる。
図１０の稼働情報テーブル１３０Ｂでは、利用者Ａは行５１０のように、適用済みパッチＩＤ５００がpatch_3なのに対し、利用者Ｂは行５１１のように、patch_1、patch_3、patch_4と、利用者Ａと利用者Ｂで内容が異なる。
図１１のポリシテーブル１３０Ｃでは、行６１０と行６１１のように、利用者Ａと利用者Ｂで内容が異なる。このように、稼働情報は利用者毎、パッチ適用対象プログラム１６２ごとに違いが表れる。
【０１０４】
図２６は、類似利用者判定処理（Ｓ１１４）の詳細を示すフローチャートである。
【０１０５】
Ｓ２０００として、利用者Ａと利用者Ｂの機能稼働パターンを比較するとき、機能稼働パターン類似度テーブル１３１Ａの行７１０のように、利用者Ａ自身の利用者ＩＤ４００のｕｓｅｒ＿Ａが該当し、比較対象利用者ＩＤ７００のｕｓｅｒ＿Ｂも該当する、類似度７０１の７４を取得する。
【０１０６】
Ｓ２００１として、ポリシテーブル１３０Ｃの行６１０のように、利用者Ａの類似度閾値ポリシ６００の７０を取得し、Ｓ２０００で取得した類似度７０１の７４と比較する。比較した結果、類似度７０１が類似度閾値ポリシ６００以上のため、利用者Ｂは利用者Ａの類似利用者と判定され、Ｓ２００２に進む。もし、比較した結果、類似度７０１が類似度閾値ポリシ６００未満であった場合、Ｓ２００３に進む。
【０１０７】
Ｓ２００２として、図１３の行８１０のように、類似利用者テーブル１３２Ａの類似利用者ＩＤ８００に、利用者ＢのＩＤであるｕｓｅｒ＿Ｂを格納し、類似度７０１に７４を格納する。
Ｓ２００３として、機能稼働パターン類似度テーブル１３１Ａの、利用者Ａに対するすべての比較対象利用者ＩＤ７００について、前記Ｓ２０００、Ｓ２００１、Ｓ２００２の処理が完了しているか否か判定し、完了していない場合はＳ２０００に戻る。
【０１０８】
Ｓ２００４として、利用者Ａに類似利用者がいるか否かを判定し、類似利用者がいない場合はＳ２００５に進む。例えば、利用者Ａの類似利用者は、利用者Ｂを始め、１００人の利用者いると判定されたので、Ｓ２００５には進まずに、終了する。
【０１０９】
Ｓ２００５として、利用者Ｅが系切替プログラムを使用する上で、類似利用者がいなかった場合、図１３の行８１１のように、類似利用者テーブル１３２Ａの類似利用者ＩＤ８００と類似度７０１にハイフンを格納し、類似利用者がいないことを設定する。
【０１１０】
図２７は、重要パッチ予測処理（Ｓ１１５、後記の図２８で詳細説明）が行われる前のパッチランクテーブル１３４Ａの状態を示す説明図である。パッチランクテーブル１３４Ａに格納されているランク１２００、修正内容重要度１２０１、現在稼働頻度１２０２、将来稼働可能性１２０３の値は、利用者Ａの過去の稼働情報から算出した値であり、重要パッチ予測処理（Ｓ１１５）により、現在の稼働情報を基に、各要素の値の更新が行われる。なお、利用者Ａが既に適用済みのパッチに関しては、行２１００のように、各要素の値には「−」が格納されている。
【０１１１】
図２８は、現在稼働頻度算出処理（Ｓ１１５Ａ）の詳細を示すフローチャートである。
【０１１２】
Ｓ２２０１として、実行パス情報定義テーブル１３３Ａにおいて、機能ＩＤ９０１ごとに実行パス情報番号４０１をすべて取得する。行９１０の例では、機能ＩＤ９０１がｆｕｎｃ＿ｄの実行パス情報番号４０１（４９９９と、５０００と、５００１）を取得する。次に、機能稼働パターンテーブル１３０Ａにおいて、取得した実行パス情報番号４０１（４９９９と、５０００と、５００１）に該当する稼働頻度４０２（１、０、０）の中から、最大値（１）を求める。系切替機能の機能ＩＤがｆｕｎｃ＿ｄのとき、この最大値（１）が系切替機能の稼働頻度となる。
【０１１３】
Ｓ２２０２として、求めた最大値（１）を、現在稼働頻度評価テーブル１３４Ｄの稼働頻度範囲１５００に当てはめ、現在稼働頻度１２０２を五段階評価する。例では、最大値（１）は稼働頻度範囲１５００（０≦ｘ≦２）に当てはまるため、系切替機能の現在稼働頻度１２０２はＣになり、現在はほとんど稼働していないことがわかる。
Ｓ２２０３として、算出した現在稼働頻度１２０２（Ｃ）を、パッチランクテーブル１３４Ａの現在稼働頻度１２０２に格納する。
Ｓ２２０４として、系切替機能のみでなく、すべての機能に対して現在稼働頻度１２０２の算出が完了したか否か判定し、完了していない場合はＳ２２０１に戻り、完了している場合は、端子Ａから図２９の将来稼働可能性算出処理（Ｓ１１５Ｂ）に進む。
【０１１４】
図２９は、将来稼働可能性算出処理（Ｓ１１５Ｂ）の詳細を示すフローチャートである。このフローチャートには、パッチの将来稼働可能性の算出処理（Ｓ２２１１〜Ｓ２２１８）と、環境設定情報を用いた将来稼働可能性の更新処理（Ｓ２２１ａ〜Ｓ２２１ｃ）とが含まれている。
【０１１５】
Ｓ２２１１として、類似利用者テーブル１３２Ａから、利用者Ａに類似利用者がいるか否かを判定し、類似利用者がいる場合はＳ２２１２に進み、いない場合はＳ２２１８に進む。
Ｓ２２１２として、類似利用者の適用済みのパッチＩＤを求める。類似利用者テーブル１３２Ａから、行８１０のように、利用者Ａの類似利用者ＩＤ８００（ｕｓｅｒ＿Ｂ）を取得し、稼働情報テーブル１３０Ｂから、行５１１のように、前記類似利用者ＩＤ８００（ｕｓｅｒ＿Ｂ）が該当する利用者ＩＤ４００の適用済みパッチＩＤ５００（patch_1、patch_3、patch_4）を取得する。これらのパッチＩＤが類似利用者である利用者Ｂの適用済みパッチＩＤである。
【０１１６】
Ｓ２２１３として、利用者Ｂのみではなく、利用者Ａのすべての類似利用者（１００利用者）の対して、適用済みパッチＩＤ５００の取得が完了したか否かを判定し、完了していない場合は、Ｓ２２１２に戻る。利用者Ａのすべての類似利用者の適用済みパッチＩＤ５００は、patch_1、patch_2、patch_3、patch_4となったとする。
【０１１７】
Ｓ２２１４として、取得したすべての類似利用者の適用済みパッチＩＤ５００（patch_1、patch_2、patch_3、patch_4）において、パッチごとに出現回数をカウントする。なお、カウントした結果、patch_1は７７、patch_2は６、patch_3は１２、patch_4は８５となったとする。このカウントした値は、利用者Ａの類似利用者が適用した、パッチごとの実績値を示す。すなわち、系切替機能に対するパッチ（patch_4）を適用済みの類似利用者数は、８５人であることを示す。
【０１１８】
Ｓ２２１５として、類似利用者テーブル１３２Ａにおいて、利用者Ａの利用者ＩＤ４００から、利用者Ａのすべての類似利用者数を求める。求めた結果、利用者Ａのすべての類似利用者数は前記のとおり１００となったとする。次に、Ｓ２２１４でカウントした、パッチごとの出現回数を、すべての類似利用者数（１００）で割り、パッチごとに、利用者Ａのすべての類似利用者の何割がそのパッチを適用済みなのかを百分率で算出し、パッチ適用済み類似利用者率とする。算出した結果、patch_1は７７％、patch_2は３６％、patch_3は１２％、patch_4は８５％となり、系切替機能に対するパッチ（patch_4）は、利用者Ａの類似利用者全体の８５％の利用者が適用済みであることがわかる。
【０１１９】
Ｓ２２１６として、Ｓ２２１５で算出したパッチ適用済み類似利用者率を、将来稼働可能性評価テーブル１３４Ｅの類似利用者率範囲１６００に当てはめ、将来稼働可能性１２０３を算出し、Ｓ２２１ａに進む。算出した結果、patch_1はＡＡ、patch_2はＣ、patch_3はＣ、patch_4はＡＡＡと算出され、系切替機能に対するパッチ（patch_4）の将来稼働可能性１２０３はＡＡＡであり、将来稼働する可能性がとても高いことがわかる。
【０１２０】
Ｓ２２１ａとして、ポリシテーブル１３０Ｃのオプション使用６０２の値が「使用する」か否か判定し、「使用する」の場合は処理２２１ｂに進み、「使用しない」の場合はＳ２２１７に進む。
【０１２１】
Ｓ２２１ｂとして、稼働情報テーブル１３０Ｂの環境設定情報５０１を用い、利用者Ａにとってのすべての類似利用者の環境設定情報５０１と、利用者Ａの環境設定情報５０１とを比較し、一致（または類似）する類似利用者が所定割合（例えば、５０％）以上存在するか否かを判定する。
環境設定情報５０１の比較処理は、例えば、行５１０と行５１１では、利用者Ａと利用者Ｂの性能劣化条件（性能劣化条件＝ＣＰＵ利用率９０％）が一致しているため、利用者Ａと利用者Ｂは系切替プログラムの環境設定情報５０１も類似していると判定する。
【０１２２】
Ｓ２２１ｃとして、Ｓ２２１ｂに該当するパッチの将来稼働可能性１２０３を更新する。例えば、利用者Ａと環境設定情報５０１が一致する利用者が、利用者Ｂを始めとして３０人いたとき、その３０人の利用者の内、半数である１５人以上の利用者が適用済みのパッチがpatch_3とpatch_4であるとする。そのパッチpatch_3の将来稼働可能性１２０３（Ｓ２２１６で計算した値）を１段階（例えば、Ｃ→Ｂ）上げる。一方、patch_4の将来稼働可能性１２０３は既に最大のＡＡＡであるため、変化させない。Ｓ２２１ａ〜Ｓ２２１ｃの処理により、将来稼働可能性１２０３の精度向上が可能である。
【０１２３】
なお、Ｓ２２１ａ〜Ｓ２２１ｃの処理を行う代わりに、Ｓ２２１５で計算する「パッチ適用済み類似利用者率」を以下の計算式に置き換えてもよい。
利用者ＡにとってのパッチＰの「パッチ適用済み類似利用者率」＝（パッチＰを適用済みの類似利用者の補正人数）÷（類似利用者の人数）
（パッチＰを適用済みの類似利用者の補正人数）＝（パッチＰを適用済みの類似利用者のうちの環境が一致する類似利用者の人数）×（所定重み値）＋（パッチＰを適用済みの類似利用者のうちの環境が一致しない類似利用者の人数）
なお、（所定重み値）は例えば、１．５であり、「パッチ適用済み類似利用者率」が１００％を超えたときには、１００％とする。
【０１２４】
Ｓ２２１７として、すべての類似利用者の適用済みパッチＩＤ（patch_1、patch_2、patch_3、patch_4）に対してＳ２２１６，Ｓ２２１ｃで算出した将来稼働可能性１２０３を、パッチランクテーブル１３４Ａの将来稼働可能性１２０３に登録する。
Ｓ２２１８として、利用者Ａに類似利用者がいないため、将来稼働可能性を算出せず、パッチランクテーブル１３４Ａの将来稼働可能性１２０３にハイフン（０を示す）を登録する。
Ｓ２２１７およびＳ２２１８からは、端子Ｂを介して図３０のパッチランク算出処理（Ｓ１１５Ｃ）に進む。
【０１２５】
図３０は、パッチランク算出処理（Ｓ１１５Ｃ）の詳細を示すフローチャートである。このフローチャートでは、図１７で示すパッチランクテーブル１３４Ａの修正内容重要度１２０１と、現在稼働頻度１２０２と、将来稼働可能性１２０３に、図１１で示すポリシテーブル１３０Ｃのランク重みポリシ６０１を重み付けて計算することにより、利用者ごとのパッチランクを計算する。
【０１２６】
Ｓ２２２１として、修正内容重要度テーブル１３４Ｃの、すべてのパッチＩＤ１０００の修正内容重要度１２０１を、パッチランクテーブル１３４Ａの修正内容重要度１２０１に格納する。
Ｓ２２２２として、稼働情報テーブル１３０Ｂから、利用者Ａの利用者ＩＤ４００の適用済みパッチＩＤ５００（patch_3）を取得する。patch_3は利用者Ａが適用済みのパッチであるため、ランク１２００を算出する必要がない。そのための情報としてpatch_3を用いる。
【０１２７】
Ｓ２２２３として、Ｓ２２２１で格納しておいた、パッチランクテーブル１３４Ａにおける、すべてのパッチＩＤ４００について、ランク１２００の算出を開始する。
Ｓ２２２４として、パッチＩＤ４００が利用者Ａ自身の適用済みパッチか否か判定し、パッチＩＤ４００が利用者Ａの適用済みパッチＩＤ５００（patch_3）と一致する場合、そのパッチは利用者Ａが適用済みのパッチであるため、そのパッチ（patch_3）のランク１２００は算出せずに、Ｓ２２２３に戻って別のパッチを選択する。
【０１２８】
Ｓ２２２５として、パッチランクテーブル１３４Ａにおける、修正内容重要度１２０１、現在稼働頻度１２０２、将来稼働可能性１２０３の各値について、アルファベットから数値に変換し（Ｃを１、Ｂを２、Ａを３、ＡＡを４、ＡＡＡを５、ハイフンを０とし）、それぞれの変換された値に、利用者自身のポリシテーブル１３０Ｃのランク重みポリシ６０１の値を乗算し、結果を合計する（つまり、重み付け加算処理を行う）。
【０１２９】
patch_1の場合、修正内容重要度１２０１はＣなので１、現在稼働頻度１２０２はＡＡＡなので５、将来稼働可能性１２０３はＡＡなので４となる。利用者Ａのランク重みポリシ６０１の値は行６１０のように、修正内容重要度は０．１５、現在稼働頻度は０．５５、将来稼働可能性は０．４０であるため、合計値は（１×０．１５）＋（５×０．５５）＋（４×０．４０）と計算され、４．５０となる。次に、合計値の少数第一位を四捨五入し、四捨五入した値が、０または１ならＣ、２ならＢ、３ならＡ、４ならＡＡ、５ならＡＡＡとランクを五段階評価で算出する。patch_1の場合、利用者Ａに対するランク１２００は、４．５０の少数第一位を四捨五入し、５となるため、ＡＡＡと算出される。
【０１３０】
系切替機能に対するパッチ（patch_4）の場合、ランク１２００は、Ａと算出される。現在稼働頻度がＣととても低いが、将来稼働可能性がＡＡＡととても高いため、それらの重み付け加算値は、「Ａ」となる。つまり、将来稼働可能性が加味されたランク１２００「Ａ」は、利用者Ａにとって予防保守のために予測された値である。なお、類似利用者がおらず、将来稼働可能性１２０３がハイフンの場合、実質、修正内容重要度１２０１と現在稼働頻度１２０２からパッチランク１２００を算出するため、現状の稼働頻度を重視したランク１２００になる。
【０１３１】
Ｓ２２２６として、算出したランク１２００をパッチランクテーブル１３４Ａに登録する。
Ｓ２２２７として、すべてのパッチについてランク１２００の算出が完了しているか否かを判定し、完了していない場合は、Ｓ２２２６に戻る。
【０１３２】
以上説明した本実施形態では、所定利用者にパッチのランクを提示するときに、その所定利用者にとっての類似利用者の稼働情報をもとにパッチの将来稼働可能性を計算してランクに反映することを特徴とする。これにより、所定利用者が稼働させていない機能のパッチであっても、ランクの高いパッチとして所定利用者に知らせることができるので、所定利用者にとっての業務装置１５０の予防保守性を向上させることができる。
【符号の説明】
【０１３３】
１００  パッチ提供装置（パッチ管理装置）
１１０  主記憶装置
１１１  情報定義処理部
１１２  稼働情報取得処理部
１１３  機能稼働パターン類似度算出処理部
１１４  類似利用者判定処理部
１１５  重要パッチ予測処理部
１１５Ａ  現在稼働頻度算出処理部
１１５Ｂ  将来稼働可能性算出処理部
１１５Ｃ  パッチランク算出処理部
１１６  パッチ情報通知処理部
１１７  オペレーティングシステム
１２０  ＣＰＵ（制御部）
１２１  入力装置
１２２  出力装置
１２３  ネットワークインタフェース
１３０  稼働情報ＤＢ
１３０Ａ  機能稼働パターンテーブル
１３０Ｂ  稼働情報テーブル
１３０Ｃ  ポリシテーブル
１３１  機能稼働パターン類似度ＤＢ
１３１Ａ  機能稼働パターン類似度テーブル
１３２  類似利用者ＤＢ
１３２Ａ  類似利用者テーブル
１３３  マッピングＤＢ
１３３Ａ  実行パス情報定義テーブル
１３３Ｂ  パッチ情報定義テーブル
１３３Ｃ  機能情報定義テーブル
１３４  パッチランクＤＢ
１３４Ａ  パッチランクテーブル
１３４Ｂ  パッチランク理由テーブル
１３４Ｃ  修正内容重要度テーブル
１３４Ｄ  現在稼働頻度評価テーブル
１３４Ｅ  将来稼働可能性評価テーブル
１４０  ネットワーク
１４１  バス
１４２  バス
１５０  業務装置
１５１  業務装置
１５２  クライアント
１５３  クライアント
１５４  クライアント
１５５  クライアント
１６１  業務プログラム
１６２  パッチ適用対象プログラム
１６３  パッチ適用対象外プログラム
１６４  稼働情報収集処理部
１６５  ポリシ設定処理部
１６６  パッチ情報表示処理部
１６７  オペレーティングシステム
１７０  ＣＰＵ（制御部）
１７１  入力装置
１７２  出力装置
１７３  ネットワークインタフェース
１８０  稼働情報ＤＢ
１８０Ａ  機能稼働パターンテーブル
１８０Ｂ  稼働情報テーブル
１８０Ｃ  ポリシテーブル
【図１】
2012104074.tif 000003
【図２】
2012104074.tif 000004
【図３】
2012104074.tif 000005
【図４】
2012104074.tif 000006
【図５】
2012104074.tif 000007
【図６】
2012104074.tif 000008
【図７】
2012104074.tif 000009
【図８】
2012104074.tif 000010
【図９】
2012104074.tif 000011
【図１０】
2012104074.tif 000012
【図１１】
2012104074.tif 000013
【図１２】
2012104074.tif 000014
【図１３】
2012104074.tif 000015
【図１４】
2012104074.tif 000016
【図１５】
2012104074.tif 000017
【図１６】
2012104074.tif 000018
【図１７】
2012104074.tif 000019
【図１８】
2012104074.tif 000020
【図１９】
2012104074.tif 000021
【図２０】
2012104074.tif 000022
【図２１】
2012104074.tif 000023
【図２２】
2012104074.tif 000024
【図２３】
2012104074.tif 000025
【図２４】
2012104074.tif 000026
【図２５】
2012104074.tif 000027
【図２６】
2012104074.tif 000028
【図２７】
2012104074.tif 000029
【図２８】
2012104074.tif 000030
【図２９】
2012104074.tif 000031
【図３０】
2012104074.tif 000032