(57)【要約】【課題】  ポリシーに基づく運用管理システムにおけるポリシーを容易に作成する。  【解決手段】  一連の操作であるコマンド列を操作の履歴より抽出し、コマンド列に対応する運用データを抽出するデータ抽出手段と、運用データより、ポリシー記述の条件部を生成する条件抽出手段と、コマンド列より、ポリシー記述のアクション部を生成するアクション抽出手段と、ポリシー記述の条件部とポリシー記述のアクション部より、ポリシー記述を生成するｉｆ−ｔｈｅｎルール編集手段とを備える。【選択図】      図１
2013171401.tif 000002
【特許請求の範囲】
【請求項１】
一連の操作であるコマンド列を操作の履歴より抽出し、前記コマンド列に対応する運用データを抽出するデータ抽出手段と、
前記運用データより、ポリシー記述の条件部を生成する条件抽出手段と、
前記コマンド列より、ポリシー記述のアクション部を生成するアクション抽出手段と、
前記ポリシー記述の条件部と前記ポリシー記述のアクション部より、ポリシー記述を生成するｉｆ−ｔｈｅｎルール編集手段とを備えるポリシー作成装置。
【請求項２】
前記ポリシー記述を、前記運用データに対して仮想的に実行することにより検証するｉｆ−ｔｈｅｎルールシミュレーション手段をさらに備える請求項１に記載のポリシー作成装置。
【請求項３】
前記アクション抽出手段が、前記コマンド列より、あらかじめ登録されたコマンドと、前記あらかじめ登録されたコマンドと入出力関係を有するコマンドを抽出することにより、前記ポリシー記述のアクション部を生成する請求項１または２に記載のポリシー作成装置。
【請求項４】
前記運用データは計算機システムの運用管理における監視項目を含み、
前記条件抽出手段が、前記コマンド列が投入された時間帯と前記監視項目の値に基づいて、前記ポリシー記述の条件部を生成する請求項１乃至３のいずれかに記載のポリシー作成装置。
【請求項５】
一連の操作であるコマンド列を操作の履歴より抽出し、
前記コマンド列に対応する運用データを抽出し、
前記運用データより、ポリシー記述の条件部を生成し、
前記コマンド列より、ポリシー記述のアクション部を生成し、
前記ポリシー記述の条件部と前記ポリシー記述のアクション部より、ポリシー記述を生成するポリシー作成方法。
【請求項６】
前記ポリシー記述を、前記運用データに対して仮想的に実行することにより検証する請求項５に記載のポリシー作成方法。
【請求項７】
前記コマンド列より、あらかじめ登録されたコマンドと、前記あらかじめ登録されたコマンドと入出力関係を有するコマンドを抽出することにより、前記ポリシー記述のアクション部を生成する請求項５または６に記載のポリシー作成方法。
【請求項８】
前記運用データは計算機システムの運用管理における監視項目を含み、
前記コマンド列が投入された時間帯と前記監視項目の値に基づいて、前記ポリシー記述の条件部を生成する請求項５乃至７のいずれかに記載のポリシー作成方法。
【請求項９】
コンピュータに、
一連の操作であるコマンド列を操作の履歴より抽出し、
前記コマンド列に対応する運用データを抽出し、
前記運用データより、ポリシー記述の条件部を生成し、
前記コマンド列より、ポリシー記述のアクション部を生成し、
前記ポリシー記述の条件部と前記ポリシー記述のアクション部より、ポリシー記述を生成する処理を実行させるプログラム。
【請求項１０】
請求項１乃至４のいずれかに記載のポリシー作成装置と、
運用管理コンソールとを備えた運用管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ポリシー作成装置、ポリシー作成方法、プログラムおよび運用管理システムに関し、特にポリシーに基づく運用管理システムにおけるポリシーを作成する技術に関する。
【背景技術】
【０００２】
複数のコンピュータ・外部記憶装置・ネットワークなどからなる計算機システムの運用管理には多くの手間がかかる。計算機システムの運用管理を効率よく行うことは今日において大きな課題となっている。
【０００３】
計算機システムの運用管理を効率よく行うための手法として検討されてきたものが、「ポリシーに基づく運用管理システム」である。
【０００４】
ポリシーとは、運用管理上で発生した問題などに対して、対応処理を行うための条件（条件部、あるいは、ｉｆ節）とその対処内容（アクション部、あるいは、ｔｈｅｎ節）を組にした「ｉｆ−ｔｈｅｎルール」のことである。「ポリシーに基づく運用管理システム」は、問題発生時のポリシー適用条件とポリシーでの対処を組にした、自動化のルールであるポリシーを事前に定義しておくことで、システムの運用管理上の対処の自動化や、迅速な対応などを可能にする。
【０００５】
ポリシーに基づく運用管理システムの一例が特許文献１に記載されている。特許文献１の分散アプリケーション試験・運用管理システムは、性能指標やリソース指標の閾値超過などを含む検出イベントと、イベントに対する対処操作の組からなる試験・運用管理情報ポリシー情報を管理する。このことにより、分散アプリケーション試験・運用管理システムは、ポリシーに従ってイベントに応じた対処操作を自動で実行することを可能にする。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−０８２９２６
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した特許文献１のような、ポリシーに基づく運用管理システムにおいては、システムの使用に先立ってポリシーを作成する必要がある。しかしながら、ポリシー作成に必要な、運用管理上の問題への対応処理を行う条件の定義と、その対処内容の定義は、習熟したシステム保守運用員が、多大な工数を費やして行う必要があるという問題点がある。
【０００８】
本発明の目的は、上述した課題を解決するポリシー作成装置、ポリシー作成方法、プログラムおよび運用管理システムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明に係るポリシー作成装置は、
一連の操作であるコマンド列を操作の履歴より抽出し、コマンド列に対応する運用データを抽出するデータ抽出手段と、
運用データより、ポリシー記述の条件部を生成する条件抽出手段と、
コマンド列より、ポリシー記述のアクション部を生成するアクション抽出手段と、
ポリシー記述の条件部とポリシー記述のアクション部より、ポリシー記述を生成するｉｆ−ｔｈｅｎルール編集手段とを備える。
【００１０】
本発明に係るポリシー作成方法は、
一連の操作であるコマンド列を操作の履歴より抽出し、
コマンド列に対応する運用データを抽出し、
運用データより、ポリシー記述の条件部を生成し、
コマンド列より、ポリシー記述のアクション部を生成し、
ポリシー記述の条件部とポリシー記述のアクション部より、ポリシー記述を生成する。
【００１１】
本発明に係るプログラムは、
コンピュータに、
一連の操作であるコマンド列を操作の履歴より抽出し、
コマンド列に対応する運用データを抽出し、
運用データより、ポリシー記述の条件部を生成し、
コマンド列より、ポリシー記述のアクション部を生成し、
ポリシー記述の条件部とポリシー記述のアクション部より、ポリシー記述を生成する処理を実行させる。
【００１２】
本発明に係る運用管理システムは、
上記のポリシー作成装置と、
運用管理コンソールとを備える。
【発明の効果】
【００１３】
本発明に係るポリシー作成装置、ポリシー作成方法、プログラムおよび運用管理システムは、ポリシーに基づく運用管理システムにおけるポリシーを容易に作成することを可能にする。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態に係る運用管理システムの構成を説明する図である。
【図２】第１の実施形態に係るポリシー作成装置１００の動作を表すフローチャート（その１）である。
【図３】第１の実施形態に係るポリシー作成装置１００の動作を表すフローチャート（その２）である。
【図４】第１の実施形態に係るポリシー作成装置１００の動作を表すフローチャート（その３）である。
【図５】第１の実施形態における運用コマンドリスト１０４の内容を示す図である。
【図６】第１の実施形態における入出力関係テーブル１０５の内容を示す図である。
【図７】第１の実施形態におけるデータ抽出部１０１の処理を説明する図である。
【図８】第１の実施形態における監視項目の値の例を示す説明図である。
【図９】第１の実施形態におけるポリシー記述のアクション部の雛形を抽出する処理におけるデータの入出力および処理を説明する図である。
【図１０】第１の実施形態に係るポリシー作成装置１００の表示画面の一例である。
【図１１】本発明の第２の実施形態に係るポリシー作成装置の構成を説明する図である。
【図１２】コンピュータを構成する要素の例を表すブロック構成図である。
【発明を実施するための形態】
【００１５】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る運用管理システムの構成を説明する図である。本発明の第１の実施形態に係る運用管理システムＳは、運用管理コンソール１１０と、運用ログ１１１と、操作ログ１１２と、入出力部１１３と、ポリシー作成装置１００とを備える。
【００１７】
運用管理コンソール１１０は、単一あるいは複数のコンピュータ，外部記憶装置およびネットワークなどからなる計算機システムにおける運用管理を行うコンソールである。運用管理コンソール１１０は、ポリシー作成装置１００が生成したポリシーの実行などを含む運用管理の操作を行う。運用ログ１１１は、運用管理されている計算機システム全体の運用データを記録保存している。運用データは、性能指標やリソース指標である、ロードアベレージ、ターンアラウンドタイム、ＣＰＵ(Central Processing Unit)使用率などの監視項目の時刻毎の値を含む。操作ログ１１２は、運用管理者が行った操作（コマンドの投入など）の履歴である操作データを記録している。操作データには、運用管理において投入されたコマンドとその実行時刻が含まれる。また、少なくとも１つの投入コマンドを含む操作データの１行をコマンド行と呼ぶ。入出力部１１３は、ディスプレイ装置などの表示手段と、キーボードやマウス、タッチパネルなどの入力手段とを含む。
【００１８】
ポリシー作成装置１００は、データ抽出部１０１と、条件抽出部１０２と、アクション抽出部１０３と、運用関係コマンドリスト１０４と、入出力関係テーブル１０５と、ｉｆ−ｔｈｅｎルール編集部１０６と、ｉｆ−ｔｈｅｎルールシミュレーション部１０７とを備える。ポリシー作成装置１００は、ポリシーを定義する具体的な記述であるポリシー記述を生成する。ポリシー記述は、ポリシーを適用する条件を示す条件部と、条件が満たされた場合に実行される内容を示すアクション部を含む。条件部は、例えば条件式からなる。アクション部は、例えば投入されるコマンドからなる。
【００１９】
データ抽出部１０１は、操作ログ１１２から操作データを読み込み、閾値に基づいて、一連の操作となるコマンド列を抽出する。コマンド列とは、操作データ中の各コマンド行を、出現順序を保存して抜き出した部分集合となるような、コマンド行の列のことである。次に、データ抽出部１０１は、一連の操作の操作開始時刻と操作終了時刻、さらに平常時時刻を求める。そして、データ抽出部１０１は、これらの時刻が表す時間範囲の、あるいは利用者が指定した時間範囲の、運用ログ１１１と操作ログ１１２の部分データを抽出する。
【００２０】
条件抽出部１０２は、データ抽出部１０１によって抽出された一定の時間区間での運用データから、異常な値として、平常時時刻と操作開始時刻で値が大きく異なる監視項目を抽出する。そして、条件抽出部１０２は、抽出した監視項目と、操作開始時刻での監視項目の値から、ポリシー記述の条件部（ｉｆ−ｔｈｅｎルールのｉｆ節）の雛形である条件式を生成する。
【００２１】
アクション抽出部１０３は、運用関係コマンドリスト１０４を参照することにより、データ抽出部１０１によって抽出された一定の時間区間での操作データから、運用管理に直接関連するコマンドを起点として特定する。次に、アクション抽出部１０３は、入出力関係テーブル１０５を参照しながら、入出力関係を有する操作データのコマンド行を、特定した起点から時系列の逆方向へとたどりながら抽出する。このようにして、アクション抽出部１０３は、運用管理に直接関連するコマンドとそれに影響を与えるコマンドだけを抽出する。そして、これら抽出されたコマンドから、ポリシー記述のアクション部（ｉｆ−ｔｈｅｎルールのｔｈｅｎ節）の雛形を生成する。
【００２２】
運用関係コマンドリスト１０４は、利用者がシステムに応じて事前に定義した、運用管理に直接関連するコマンドの一覧である。運用関係コマンドリスト１０４は、単なる文字列のリストとして表現されるものならどのようなものでもよい。例えば、運用関係コマンドリスト１０４は、テキストファイルで実装されてもよいし、データベースで実装されてもよい。
【００２３】
入出力関係テーブル１０５は、運用管理者が運用管理対象とする計算機システムの環境（オペレーティングシステムなど）ごとに、投入する主なコマンドと、当該コマンドがどこから入力を得てどこに出力を行うかの関係の情報を記したものである。入出力関係テーブル１０５は、単なる文字列の表として表現されるものならどのようなものでもよい。例えば、入出力関係テーブル１０５は、テキストファイルで実装されてもよいし、データベースで実装されてもよい。
【００２４】
ｉｆ−ｔｈｅｎルール編集部１０６は、条件抽出部１０２で生成されたポリシー記述の条件部（ｉｆ−ｔｈｅｎルールのｉｆ節）と、アクション抽出部１０３で生成されたポリシー記述のアクション部（ｉｆ−ｔｈｅｎルールのｔｈｅｎ節）をつなげてひとつにすることによりポリシー記述を生成する。そして、ｉｆ−ｔｈｅｎルール編集部１０６は、生成したポリシー記述を、入出力部１１３などを通して、ポリシー記述の雛形として利用者に提示する。さらに、ｉｆ−ｔｈｅｎルール編集部１０６は、利用者からの入力によりポリシー記述の変更などを行う。
【００２５】
ｉｆ−ｔｈｅｎルールシミュレーション部１０７は、ｉｆ−ｔｈｅｎルール編集部１０６で利用者が編集校正した最終的なポリシー記述を、条件抽出部１０２によって抽出された、ポリシー記述の雛形を生成する際に用いられた一定時間内の運用データに対して仮想実行（シミュレーション）する。すなわち、ｉｆ−ｔｈｅｎルールシミュレーション部１０７は、監視項目の値を随時変化させながら、ポリシー記述の条件部がどのタイミングで成立し、アクション部の内容が実行されるかを検証し、利用者に提示する。
【００２６】
データ抽出部１０１，条件抽出部１０２，アクション抽出部１０３，ｉｆ−ｔｈｅｎルール編集部１０６およびｉｆ−ｔｈｅｎルールシミュレーション部１０７は、ソフトウェアで実現されてもよいし、専用のハードウェアで実現されてもよい。
【００２７】
運用ログ１１１、操作ログ１１２、運用関係コマンドリスト１０４、および、入出力関係テーブル１０５は、磁気ディスク装置などのストレージ媒体や、メモリ装置などの記憶装置によって実現されてもよい。
【００２８】
図２、図３、および図４は、第１の実施形態に係るポリシー作成装置１００の動作を表すフローチャートである。以下、図２、図３、および図４を参照して、ポリシー作成装置１００の全体の動作について詳細に説明する。
【００２９】
まず、図２を参照すると、データ抽出部１０１は、操作ログ１１２から一連の対応操作の操作データを抽出し、操作開始時刻と操作終了時刻と平常時時刻を求める（ステップＳ２０１）。
【００３０】
図７は、第１の実施形態におけるデータ抽出部１０１の処理を説明する図である。ここで、図７を参照して、操作開始時刻と操作終了時刻と平常時時刻の求め方を説明する。最初に、データ抽出部１０１は、操作ログ１１２から操作データを読み込み、操作データ中に記録されたコマンド行の実行時間が閾値による時間（例えば１０分）以上の間隔を空けずに実行された一連の操作であるコマンド列（図７の７０７）を抽出する。実行時間の間隔の閾値は、利用者によってあらかじめ決定され、ポリシー作成装置１００が備える記憶装置に記憶されていてもよい。次に、データ抽出部１０１は、抽出された一連のコマンド列のうち、最初のコマンドを実行した時刻（図７の７０３）を操作開始時間、最後のコマンドの実行が終了した時刻（図７の７０４）を操作終了時間として出力する。
【００３１】
また、データ抽出部１０１は、一連のコマンド列（図７の７０７）とその前の一連のコマンド列（図７の７０５）の間の、閾値以上の時間コマンド投入が無い時間帯（図７の７０６）における事前に定義された割合（ｘ％とする）の時点（図７の７０２）を平常時時刻として出力する。すなわち、データ抽出部１０１は、コマンド投入が無い時間帯７０６の開始時点から、７０６全体の時間（すなわち、図７の７０１から７０３までの時間）のｘ％の時間が経過した時刻を平常時時刻として出力する。上記の割合（ｘ％）は、利用者によってあらかじめ決定され、ポリシー作成装置１００が備える記憶装置に記憶されていてもよい。あるいは、データ抽出部１０１は、コマンド投入が無い時間帯７０６の先頭の時刻（＝前のコマンド列の操作終了時刻）である図７の７０１の時刻を平常時時刻として出力してもよい。あるいは、利用者が、入出力部１１３を通して、操作開始時刻、操作終了時刻、平常時時刻を入力してもよい。その場合、前述のデータ抽出部１０１が出力する操作開始時刻、操作終了時刻、平常時時刻を、利用者が入力する値の初期値とし、利用者がこれらの値を参照あるいは変更してもよい。
【００３２】
データ抽出部１０１は、加えて、ステップＳ２０１で抽出された一連の対応操作の操作データ（コマンド列）に対応する運用データを運用ログ１１１から抽出する（図２のステップＳ２０２）。具体的には、データ抽出部１０１は、ステップＳ２０１で決定した、平常時時刻と操作終了時刻の間の運用データを運用ログ１１１から抽出する。
【００３３】
次に、条件抽出部１０２は、抽出された運用データから、監視項目毎に、抽出した全時間帯での監視項目の平均値をＡ、平常時時刻での値をＳ、障害時間帯での平均値をＦとして、これらの値を算出あるいは抽出する。なお、障害時間帯とは、操作開始時刻と操作終了時刻の間の時間帯を指す。すなわち、本発明の第１の実施形態においては、操作開始時刻と操作終了時刻の間が、コマンド投入などの対処が必要な障害が発生した時間帯であるとみなしている。そして、条件抽出部１０２は、条件式｜Ｆ−Ａ｜＞｜Ｓ−Ａ｜×αを満たす監視項目を監視対象候補として抽出する。なお、αは事前に定義された定数である。そして、操作開始時刻での当該監視項目の値をＦ０、当該監視項目の現在の値をＸとしたときに、Ｆ＞Ｓの場合にＸ＞Ｆ０、Ｆ＜Ｓの場合にＸ＜Ｆ０を、ポリシー記述の条件部の雛形である条件式として生成する（ステップＳ２０３）。
【００３４】
すなわち、条件抽出部１０２は、障害対処を行った時間帯である障害時時間帯における値の平均が、平常時の時間帯である平常時時刻における値よりも、全体平均との乖離が一定割合以上大きい監視項目を、障害発生と関連する監視項目であると判定する。そして、当該監視項目の値において、障害時（Ｆ）が平常時（Ｓ）よりも値が高い場合は、監視項目の値が閾値を上回った場合（Ｘ＞Ｆ０）が障害時であるとの条件式を生成する。一方で、障害時（Ｆ）が平常時（Ｓ）よりも値が低い場合は、監視項目の値が閾値を下回った場合（Ｘ＜Ｆ０）が障害時であるとの条件式を生成する。そして、条件抽出部１０２は、障害への対処の操作開始時刻の監視項目の値を、障害発生の閾値（Ｆ０）として抽出する。
【００３５】
なお、障害発生と関連するとされる監視項目が複数ある場合には、おのおのの監視項目ごとの条件式をａｎｄ（論理積）で結合したものをポリシー記述の条件部の候補としてもよいし、いずれか１つの項目の条件式を候補としてもよい。
【００３６】
次に、アクション抽出部１０３は、運用関係コマンドリスト１０４と入出力関係テーブル１０５を参照しながら、ポリシー記述のアクション部（ｉｆ−ｔｈｅｎルールのｔｈｅｎ節）の雛形を生成する処理を行う。この処理は、ステップＳ３００以降の処理が呼び出されて実行される（ステップＳ２０４）。ステップＳ３００以降の処理の詳細な動作は以降で詳しく説明する。
【００３７】
次に、ｉｆ−ｔｈｅｎルール編集部１０６が、条件抽出部１０２によって生成されたポリシー記述の条件部（ｉｆ−ｔｈｅｎルールのｉｆ節）の雛形と、アクション抽出部１０３によって生成されたポリシー記述のアクション部（ｉｆ−ｔｈｅｎルールのｔｈｅｎ節）の雛形を合わせて、ひとつのポリシー記述の雛形を生成する。そして、ｉｆ−ｔｈｅｎルール編集部１０６は、生成したポリシー記述の雛形を利用者に対して表示する。利用者は、ポリシー記述の雛形を必要に応じて編集する（ステップＳ２０５）。
【００３８】
なお、先に条件抽出部１０２によって抽出された条件部と、アクション抽出部１０３によって抽出されたアクション部からなるポリシー記述は、推定による候補として提示されたものである。すなわち、上記の方法によっても、いかなる場合にも正しく動作するポリシー記述が生成されるわけではない。そのため、このステップＳ２０５で、生成されたポリシー記述に対して、必要に応じて変更を受け付けることにより、正しいと想定されるポリシー記述になるように利用者に確認あるいは修正させてもよい。
【００３９】
最後に、ｉｆ−ｔｈｅｎルールシミュレーション部１０７が、ステップＳ２０５においてｉｆ−ｔｈｅｎルール編集部１０６によって定義されたポリシー記述を、ステップＳ２０２でデータ抽出部１０１が抽出した運用データに対して、仮想的に実行（シミュレーション）する（ステップＳ２０６）。これにより、利用者は、ステップＳ２０５で生成および修正されたポリシー記述が正しく動作するかどうかを確認することができる。例えば、そのポリシー記述の雛形の生成に用いた運用データの下で、意図通りのタイミング（例えば、操作ログ１１１に記録された操作データに関する推定によって得られた操作開始時刻の近辺）でポリシーの適用が行われるかどうかを確認することができる。ここで仮想実行（シミュレーション）の結果、ポリシーの適用されるタイミングを変更したい場合には、利用者は、ポリシー記述を変更の上、再度仮想実行（シミュレーション）を実行してもよい。ポリシー記述の変更は、ステップＳ２０５のように、ｉｆ−ｔｈｅｎルール編集部１０６を使用して行なわれてもよい。また、利用者は、生成したポリシー記述が想定した動作を行うまで、ステップＳ２０５とステップＳ２０６の、変更と確認の作業を繰り返し行ってもよい。
【００４０】
次に、図３を参照しながら、ステップＳ３００以降の処理におけるアクション抽出部１０３の動作を詳細に説明する。
【００４１】
まず、アクション抽出部１０３は、処理の初期化作業として、ステップＳ２０１で得られた操作データ全体を示す値を「操作データ走査範囲」に設定する。また、「抽出されたコマンド列」を「空（から）」とする（ステップＳ３０１）。「操作データ走査範囲」とは、操作データを走査する範囲を示す情報である。「操作データ走査範囲」は、例えば、走査の開始地点と終了地点を示す値から構成されてもよい。「抽出されたコマンド列」とは、処理の結果として出力されるコマンド列が一時的に保持されたものである。「操作データ走査範囲」および「抽出されたコマンド列」は、ポリシー作成装置１００が備える記憶装置によって実現されてもよい。
【００４２】
次に、アクション抽出部１０３は、「操作データ走査範囲」が示す範囲の操作データの最後の行（最も新しいコマンド行）が、運用関係コマンドリスト１０４に登録されているコマンドを含んでいるかどうかを検出する（ステップＳ３０２）。
【００４３】
もし、運用関係コマンドリスト１０４に登録されているコマンドが検出された場合には（ステップＳ３０３にてＹＥＳ）、そのコマンド行の実行に影響のあるコマンド列を抽出すべく、ステップＳ４００以降の処理が呼び出されて実行される（ステップＳ３０４）。そして、アクション抽出部１０３は、「抽出されたコマンド列」を、ステップＳ３０４で得られた結果と「抽出されたコマンド列」の和集合とする（ステップＳ３０８）。すなわち、アクション抽出部１０３は、ステップＳ４００以降の処理の実行の結果により得られたコマンド列を、「抽出されたコマンド列」に加える。そして、アクション抽出部１０３は、他の運用関係コマンドを探すために、「操作データ走査範囲」を、現状の「操作データ走査範囲」の先頭の行から最後の前の行までを示す値に変更する。すなわち、「操作データ走査範囲」が示す範囲を、現状の「操作データ走査範囲」より最後の行を除外した範囲に変更する（ステップＳ３０６）。そして、アクション抽出部１０３は、ステップＳ３０２以降の処理を繰り返す。
【００４４】
もし、運用関係コマンドリスト１０４に登録されているコマンドが検出されなかった場合には（ステップＳ３０３にてＮＯ）、アクション抽出部１０３は、現在調べたコマンド行が「操作データ走査範囲」が示す範囲の先頭かどうかを判定する（ステップＳ３０５）。もし、操作ログの先頭に至った場合には（ステップＳ３０５にてＹＥＳ）、もはや運用コマンドの実行に影響を与えるコマンド列自体が存在しないから、これまでの「抽出されたコマンド列」を結果として返して処理が終了する（ステップＳ３０７）。もし、操作ログの先頭に至っていない場合には（ステップＳ３０５にてＮＯ）、アクション抽出部１０３は、「操作データ走査範囲」を、現状の「操作データ走査範囲」の先頭の行から最後の前の行までを示す値に変更する。すなわち、「操作データ走査範囲」が示す範囲を、現状の「操作データ走査範囲」より最後の行を除外した範囲に変更する（ステップＳ３０６）。そして、アクション抽出部１０３は、ステップＳ３０２以降の処理を繰り返す。
【００４５】
上述した処理によって、アクション抽出部１０３は、各行コマンド毎に運用関係コマンドが存在しないかを確認しつつ、存在した場合には、ステップＳ４００以降の処理によってその運用関係コマンドに影響を与えるコマンド列のみを抽出することができる。
【００４６】
次に、図４を参照しながら、ステップＳ４００以降の処理におけるアクション抽出部１０３の動作を詳細に説明する。
【００４７】
まず、アクション抽出部１０３は、処理の初期化作業として、ステップＳ４００が呼び出された時点で検出されたコマンド行を示す値を「現在行」に設定する。例えば、ステップＳ３０４より当該処理が呼び出された場合、アクション抽出部１０３は、ステップＳ３０２で検出された運用関係コマンドを含むコマンド行を示す値を「現在行」に設定する。あるいは、ステップＳ４０８より当該処理が呼び出された場合、アクション抽出部１０３は、ステップＳ４０６で検出されたコマンド行を示す値を「現在行」に設定する。また、そのどちらにおいても、アクション抽出部１０３は、「現在行」が示すコマンド行の内容を「結果コマンド列」に代入する（ステップＳ４０１）。「現在行」とは、現時点において処理している操作データの行を示す情報である。「結果コマンド列」とは、処理の結果として出力されるコマンド列が一時的に保持されたものである。「現在行」および「結果コマンド列」は、ポリシー作成装置１００が備える記憶装置によって実現されてもよい。
【００４８】
次に、アクション抽出部１０３は、入出力関係テーブル１０５を参照することにより、「現在行」が示す操作データの行のコマンドへの入力となる入力情報源を特定する（ステップＳ４０２）。
【００４９】
もし、「現在行」の入力情報が「空（から）」でなければ（ステップＳ４０３にてＮＯ）、ステップＳ４０４以降の処理が実行される。「現在行」の入力情報が「空（から）」の場合には（ステップＳ４０３にてＹＥＳ）、ここまでで抽出された「結果コマンド列」が処理の結果として返される（ステップＳ４１０）。
【００５０】
ステップＳ４０３で、「現在行」の入力情報が「空（から）」でなかった場合は、アクション抽出部１０３は、「現在行」の複数の入力情報から、入力情報をひとつずつ取り出す（ステップＳ４０４）。残りの入力情報が存在しない（すべての入力情報を取り出し終わった）場合には（ステップＳ４０５にてＹＥＳ）、ここまでで抽出された「結果コマンド列」が処理の結果として返される（ステップＳ４１０）。まだ、入力情報がある場合には（ステップＳ４０５にてＮＯ）、アクション抽出部１０３は、当該入力情報を含むコマンド行を、操作データを遡って、すなわち新しいデータから古いデータの方向へ検索する（ステップＳ４０６）。
【００５１】
もし、当該入力情報を含むコマンド行が見つからなかった場合（ステップＳ４０７にてＮＯ）、アクション抽出部１０３は、「現在行」の入力に影響を与えるコマンド行はもはや存在しないとみなす。そして、アクション抽出部１０３は、ステップＳ４０４に戻り、「現在行」の他の入力情報についても同様の処理を繰り返す。当該入力情報を含むコマンド行が見つかった場合（ステップＳ４０７にてＹＥＳ）、アクション抽出部１０３は、ステップＳ４００から始まる処理を再帰的に呼び出す（ステップＳ４０８）。このことにより、呼び出した処理の結果として、すべてのコマンド列の入出力の依存関係をたどりながら抽出された、「現在行」に影響を与えるコマンド列が得られる。
【００５２】
アクション抽出部１０３は、このステップＳ４００から始まる処理の結果として得られたコマンド列を「結果コマンド列」に加える（ステップＳ４０９）。なお、得られたコマンド列のうち、既に「結果コマンド列」に存在しているコマンド列については、「結果コマンド列」に加えない。すなわち、得られたコマンド列と「結果コマンド列」との重複を除外した和集合を、新たな「結果コマンド列」とする。そして、別の入力情報についても同様の処理を行うため、ステップＳ４０４に戻り、現在行の他の入力情報についても同様の処理を繰り返す。
【００５３】
次に、具体的なデータの例を用いて、ポリシー作成装置１００の動作を説明する。
【００５４】
図１０は、第１の実施形態に係るポリシー作成装置１００の表示画面の一例である。図１０に示す表示画面Ｄは、入出力部１１３を通して表示あるいは操作されてもよい。
【００５５】
表示画面Ｄの対応操作履歴１００１の欄には、過去の対応操作の履歴の一覧が表示されている。利用者は、過去の複数の対応操作の履歴の中から、一連の対応操作をポリシー記述に変換したいもの（例えば１００５）を選択処理する。対応操作の履歴は、図１０に示すように、「２０１０−０８−２５  １２：３４」などの、対応操作を始めた日時（操作開始時刻）を表示してもよい。これによって、利用者は、対応操作の時刻を手がかりとすることにより、ポリシー記述に変換したい操作の内容を見つけることが容易になる。対応操作履歴１００１の欄に対応操作の履歴の一覧を表示するに先立って、データ抽出部１０１は、表示される対応操作ごとの操作開始時刻と操作終了時刻と平常時時刻を求める（図２のステップＳ２０１）。
【００５６】
利用者が表示画面Ｄ上でいずれかの対応操作の履歴（例えば１００５）を選択すると、データ抽出部１０１は、選択された対応操作の履歴に対応する平常時時刻と操作終了時刻の間の運用データを取得する（ステップＳ２０２）。この選択は、例えば、入出力部１１３に含まれるマウスを利用者が操作することによって表示画面Ｄ上の対応操作の履歴の位置にカーソルを移動し、マウスのボタンをクリックすることにより行われてもよい。そして、表示画面Ｄ上の監視項目１００２の欄には、取得された運用データに関する情報が表示される。ここでは、図１０に示すように、取得された運用データに含まれる監視項目である、ターンアラウンドタイム１００６、スループット１００７、ロードアベレージ１００８が表示されている。これらの表示される情報は、図１０に示すように、時系列における監視項目の値の変化を表すグラフでもよい。あるいは、時系列における監視項目の数値の一覧でもよい。また、投入コマンド１００３の欄には、図１０に示すように、選択された対応操作において投入されたコマンドが表示される。
【００５７】
次に、ポリシー記述の雛形の生成が行われる。まず、条件抽出部１０２は、取得された運用データの監視項目毎に、取得された全時間帯での監視項目の平均値Ａ，平常時時刻での値Ｓ，障害時間帯での平均値Ｆ，および操作開始時刻での値Ｆ０を求める。次に、事前に定義された定数αに基づいて、条件式｜Ｆ−Ａ｜＞｜Ｓ−Ａ｜＊αを満たす監視項目を、ポリシー記述の条件部の候補として抽出する。そして、操作開始時刻での当該監視項目の値をＦ０、当該監視項目の現在の値をＸとしたときに、Ｆ＞Ｓの場合にＸ＞Ｆ０、Ｆ＜Ｓの場合にＸ＜Ｆ０を、ポリシー記述の条件部の雛形である条件式として生成する（ステップＳ２０３）。
【００５８】
図８は、第１の実施形態における監視項目である、ターンアラウンドタイム，スループットおよびロードアベレージの値の例を示す説明図である。上記のステップＳ２０３における計算に関して、図８を参照して説明する。以下の説明において、α＝３．０とする。
【００５９】
図８のグラフ８０１，８０２および８０３は、ターンアラウンドタイム，スループットおよびロードアベレージの値の変化を表す。また、点線８０４，８０５および８０６は、平常時時刻，操作開始時刻および操作終了時刻を表す。
【００６０】
平常時時刻，操作開始時刻および操作終了時刻に基づいて値の算出および抽出を行った結果、ターンアラウンドタイムについては、Ｆ＝５．３、Ｆ０＝５．２，Ｓ＝０．３、Ａ＝１．１であるとする。また、スループットについては、Ｆ＝２０００、Ｆ０＝２０００，Ｓ＝１７００、Ａ＝１８００であるとする。また、ロードアベレージについてはＦ＝２．５、Ｆ０＝２．４，Ｓ＝１．３、Ａ＝１．８であるとする。このとき、条件式｜Ｆ−Ａ｜＞｜Ｓ−Ａ｜＊αが成り立つのはターンアラウンドタイムのみであるから、ポリシー記述の条件部（ｉｆ−ｔｈｅｎルールのｉｆ節）の候補となるのはターンアラウンドタイムである。そして、この場合のポリシー記述の条件部である条件式は、Ｆ（５．３）＞Ｓ（０．３）であるため、Ｘ＞Ｆ０である。すなわち、ターンアラウンドタイムの現在値をＴＡＴとすると、ポリシー記述の条件部である条件式は、“ＴＡＴ＞５．２”となる。
【００６１】
次にポリシー記述のアクション部の抽出が行われる（ステップＳ２０４）。ステップＳ２０４の詳細な処理は以降で説明する。ここでは、ステップＳ２０４の処理の結果として、あるコマンド列が返されたものとする。
【００６２】
次に、ｉｆ−ｔｈｅｎルール編集部１０６は、ステップＳ２０３で得られたターンアラウンドタイムに関する条件式をｉｆ節、ステップＳ２０４で得られたコマンド列をｔｈｅｎ節として、ひとつのｉｆ−ｔｈｅｎルールを生成する。そして、生成したｉｆ−ｔｈｅｎルールをポリシー記述の雛形として、入出力部１１３を通して利用者に提示する。この提示は、例えば、図１０に示すように、表示画面Ｄのポリシー１００４の欄に表示することによって行われてもよい。
【００６３】
上記のポリシー記述の雛形の生成および提示の処理は、例えば、入出力部１１３に含まれるマウスを利用者が操作することによって表示画面Ｄ上の生成１００９のボタンの位置にカーソルを移動し、マウスのボタンをクリックすることを契機として実行されてもよい。
【００６４】
上記の処理で生成されたポリシー記述の雛形は、必ずしも正しいとは限らないので、必要に応じて、利用者による編集を受ける（ステップＳ２０５）。次に、利用者の編集が確定したポリシー記述（ｉｆ−ｔｈｅｎルール）に対し、ｉｆ−ｔｈｅｎルールシミュレーション部１０７が、抽出された運用データを仮想的に実行（シミュレーション）する（ステップＳ２０６）。これは、例えば、当該ポリシー記述の生成において取得された運用データを、当該ポリシー記述の条件部に適用することにより行われてもよい。
【００６５】
具体的には、以下のように仮想実行が行われてもよい。まず、監視項目１００２の欄における各監視項目の表示である、ターンアラウンドタイム１００６、スループット１００７、ロードアベレージ１００８のグラフに沿って、仮想実行における時間遷移の変化がわかるような表示を行う。この表示は、例えば以下のように行われてもよい。まず、現時点を表す縦線をそれぞれのグラフに表示し、仮想実行における時間遷移に応じて縦線を表示する位置を動かす。そして、ポリシー記述の条件部（ｉｆ−ｔｈｅｎルールのｉｆ節）の条件が成立するタイミングで、条件が成立したことがわかるような表示（例えば、条件部に対応する監視項目のグラフの該当位置の色を変更するなど）を行う。この仮想実行により、利用者は、雛形を元に修正したポリシー記述が、当初の手動による対応操作時の運用データに対して同等の（あるいは意図通りの）タイミングで自動処理を行うかどうかを、視覚的に判断することができる。
【００６６】
上記の仮想実行の処理は、例えば、入出力部１１３に含まれるマウスを利用者が操作することによって表示画面Ｄ上のシミュレーション１０１０のボタンの位置にカーソルを移動し、マウスのボタンをクリックすることを契機として実行されてもよい。
【００６７】
ここで、先に「以降で説明する」としたステップＳ２０４の詳細な処理を具体的に説明する。ステップＳ２０４の実体である図３のステップＳ３００以降の処理は、操作ログ１１２から抽出された操作データから、ポリシー記述のアクション部（ｉｆ−ｔｈｅｎルールのｔｈｅｎ節）の雛形を抽出する処理である。また、図９は、第１の実施形態におけるポリシー記述のアクション部の雛形を抽出する処理におけるデータの入出力および処理を説明する図である。以下、図９を参照して、ポリシー記述のアクション部の雛形を抽出する処理を具体的に説明する。
【００６８】
以降の説明において、抽出された操作データのコマンド列を図９の９１０に示す通りとする。なお、以降の説明で使用するコマンドは、ＵＮＩＸ（登録商標）系オペレーティングシステムで使用されるコマンドを想定している。また、図９の９１０において、わかりやすさのため、各コマンド行に付与された実行時刻は記載より除外する。最初に、アクション抽出部１０３は、Ｓ３００以降の処理全体に関する初期化作業を行う。すなわち、「ステップＳ２０１で操作ログ１１２から抽出された操作データの全体」を「操作データ走査範囲」が示す範囲として設定する。また、「抽出されたコマンド列」を「空（から）」とする（図３のステップＳ３０１）。
【００６９】
図９の９２０は、「操作データ走査範囲」である操作データのコマンド列を示す。現時点においては、「操作データ走査範囲」は、９２０のコマンド列９２１からコマンド列９２８までの範囲である。次に、アクション抽出部１０３は、「操作データ走査範囲」が示す範囲（９２０）を、新しいものから旧いものの方向、すなわち９２１から９２８の方向に一行ずつ遡りながら、操作データを走査する。そして、アクション抽出部１０３は、走査した操作データより、運用関係コマンドリスト１０４に登録されているコマンドを含むコマンド行を検出する（図３のステップＳ３０２）。
【００７０】
図５は、第１の実施形態における運用コマンドリスト１０４の内容を示す図である。図５を参照すると、運用関係コマンドリスト１０４にはｋｉｌｌコマンドが登録されている。一方で、「操作データ走査範囲」の最後、つまり、９２０の最後の行９２１はｋｉｌｌコマンドを含むコマンド行である。このため、運用関係コマンドリスト１０４に登録されているコマンドが検出されたと判定される（図３のステップＳ３０３にてＹＥＳ）。このことにより、ステップＳ４００以降の処理が呼び出されて実行される（図３のステップＳ３０４）。ここで、説明のわかりやすさのため、一旦ステップＳ４００以降に説明を移す。
【００７１】
ステップＳ４００以降の処理は、運用関係コマンドを検出したコマンド行を起点として、「操作データ走査範囲」の操作データから起点のコマンド行に影響を与えるコマンド行だけを抜き出す処理を行うものである。図４を参照すると、ステップＳ４００以降の処理においては、まず、初期化作業が実行される。すなわち、アクション抽出部１０３は、検出された運用関係コマンドの行（図９の９２０ではコマンド行９２１）を「現在行」に設定する。そして、アクション抽出部１０３は、「現在行」が示すコマンド行９２１の内容を、ステップＳ４００以降の処理の結果である「結果コマンド列」に代入する（図４のステップＳ４０１）。
【００７２】
次に、アクション抽出部１０３は、入出力関係テーブル１０５を参照しながら、「現在行」に対する入力情報となるものを特定する（図４のステップＳ４０２）。図６は、第１の実施形態における入出力関係テーブル１０５の内容を示す図である。この時点における「現在行」は、図９の９２０のコマンド行９２１の“ｋｉｌｌ  ‘ｃａｔ  ｐｉｄｓ．ｔｘｔ’”であるから、ｋｉｌｌコマンドを含んでいる。図６を参照すると、入出力関係テーブル１０５のうち、ｋｉｌｌコマンドに関連する入出力の関係の情報は最初の行（図６の行６０１）である。行６０１の「入力」欄に“ａｒｇｓ”とあるが、これはｋｉｌｌコマンドに対する引数(arguments)がその入力（ｋｉｌｌコマンドの場合は、停止するプロセスのＩＤ番号）であることを意味する。
【００７３】
さらに、コマンド行９２１のｋｉｌｌコマンドの引数は、“‘ｃｍｄ  ・・・  ’”の形式になっているため、入出力関係テーブル１０５中の下から２行目（図６の行６０５）にマッチする。行６０５は、“‘…’”でくくられた部分の内部のコマンドへの入力が“‘ｃｍｄ  ・・・’”への入力となり、“‘…’”でくくられた部分の内部のコマンドの標準出力(stdout)が“‘ｃｍｄ  ・・・’”の出力になることを意味する。すなわち、これらの入力と出力は、それぞれ“ｃａｔ  ｐｉｄ．ｔｘｔ”への入力と出力に該当する。さらに、入出力関係テーブル１０５の上から２行目（図６の行６０２）を参照すると、ｃａｔコマンドへの入力はｃａｔコマンドの引数もしくは標準入力であり、ｃａｔコマンドの出力は標準出力である。以上のことより、アクション抽出部１０３は、コマンド行９２１の“ｋｉｌｌ  ‘ｃａｔ  ｐｉｄｓ．ｔｘｔ’”への入力は、最終的に、ファイル名“ｐｉｄｓ．ｔｘｔ”であると判定する。
【００７４】
このように、「現在行」に対する入力情報が存在する、すなわち空（から）ではないため（図４のステップＳ４０３にてＹＥＳ）、処理は次のステップＳ４０４に進む。今の例では、ステップＳ４０２で求めた“ｋｉｌｌ  ‘ｃａｔ  ｐｉｄｓ．ｔｘｔ’”の入力情報はファイル名“ｐｉｄｓ．ｔｘｔ”のひとつだけであったため、“ｐｉｄｓ．ｔｘｔ”が処理の対象として取り出される（図４のステップＳ４０４）。そして、次のステップが実行される（図４のステップＳ４０５にてＮＯ）。
【００７５】
アクション抽出部１０３は、入力情報を取り出すと、取り出された入力情報を出力に持つコマンド行を検索する（図４のステップＳ４０６）。まず、「現在行」のひとつ前の行９２２が参照される。行９２２のコマンド“ｃａｔ  ｐｉｄｓ．ｔｘｔ”は、入出力関係テーブル１０５中の行６０２で定義されたｃａｔコマンドであり、その出力情報はｓｔｄｏｕｔ、すなわち標準出力である。このため、行９２２の出力は、「現在行」の入力となるファイル“ｐｉｄｓ．ｔｘｔ”の内容には影響を与えないため、このコマンド行の実行自体が、「現在行」に対して影響を与えないものと判定される。
【００７６】
次に、もうひとつ前の行９２３が参照される。行９２３のコマンド“ｃａｔ  ｔｍｐ．ｔｘｔ｜ｔｏｐ  １０｜…＞ｐｉｄｓ．ｔｘｔ”は、シェルコマンド“＞”を含んでいる。入出力関係テーブル１０５中の行６０３の情報によれば、シェルコマンド“＞”の入力は“＞”の左側のコマンドの出力、すなわち、“ｃａｔ  ｔｍｐ．ｔｘｔ｜ｔｏｐ  １０｜…”の出力である。そして、行９２３のコマンド“ｃａｔ  ｔｍｐ．ｔｘｔ｜ｔｏｐ  １０｜…＞ｐｉｄｓ．ｔｘｔ”の出力は、“＞”の右側のファイル、すなわちファイル“ｐｉｄｓ．ｔｘｔ”である。つまり、行９２３のコマンドは、取り出された「現在行」への入力情報である“ｐｉｄｓ．ｔｘｔ”を出力とするコマンド行であると判定される（図４のステップＳ４０７にてＹＥＳ）。このことにより、その行９２３を「現在行」としてステップＳ４００が再帰的に呼び出される（図４のステップＳ４０８）。
【００７７】
呼び出された先の処理において、最初に、呼び出された先での処理における「現在行」である行９２３のコマンドの入力情報となるものが特定される（ステップＳ４０２）。アクション抽出部１０３は、図６の入出力関係テーブル１０５の行６０２および行６０４を参照し、行９２３のコマンド行“ｃａｔ  ｔｍｐ．ｔｘｔ｜ｔｏｐ  １０｜…＞ｐｉｄｓ．ｔｘｔ”の入力情報はファイル名“ｔｍｐ．ｔｘｔ”であると判定する。次に“ｔｍｐ．ｔｘｔ”を出力情報に持つコマンド行が検索される（ステップＳ４０６）。
【００７８】
このように、ステップＳ４００以降の処理においては、あるコマンド行へのすべての入力情報について、それを出力情報として持つコマンド行を再帰的に検索し、該当するものが操作ログに現れた順番で抜き出され、処理の結果として返される。以下同様に図９の９１０の操作データを入力とする処理を行った場合、さらにもうひとつのコマンド行である行９２７、“ｐｓ  ａｕｘｗｗｗ｜ｓｏｒｔ＞ｔｍｐ．ｔｘｔ”が検出される。従って、ステップＳ４０８の結果は、“ｐｓ  ａｕｘｗｗｗ｜ｓｏｒｔ＞ｔｍｐ．ｔｘｔ”，“ｃａｔ  ｔｍｐ．ｔｘｔ｜ｔｏｐ  １０｜…＞ｐｉｄｓ．ｔｘｔ”という２つの行になる。これら２行が、ステップＳ４０１で「現在行」“ｋｉｌｌ  ‘ｃａｔ  ｐｉｄｓ．ｔｘｔ’”が代入済みである「結果コマンド列」に加えられる（図４のステップＳ４０９）。
【００７９】
以上の処理の例では、コマンド行９２１“ｋｉｌｌ  ‘ｃａｔ  ｐｉｄｓ．ｔｘｔ’”の入力情報はひとつであり、もう他に取り出すべき入力情報はないから（図４のステップＳ４０４，Ｓ４０５にてＹＥＳ）、ここで繰り返し処理が終了する。ここまでで得られた「結果コマンド列」である“ｐｓ  ａｕｘｗｗｗ｜ｓｏｒｔ＞ｔｍｐ．ｔｘｔ”，“ｃａｔ  ｔｍｐ．ｔｘｔ｜ｔｏｐ  １０｜…＞ｐｉｄｓ．ｔｘｔ”，“ｋｉｌｌ  ‘ｃａｔ  ｐｉｄｓ．ｔｘｔ’”の３行（図９の９３０）が結果として返される（図４のステップＳ４１０）。この過程で、コマンド行９２２，９２４，９２５，９２６，９２８はコマンド行９２１に対して直接あるいは間接に入出力上の関係を持たないため、結果に含まれず、スキップされる。このことにより、不要なコマンド行を除外し、ポリシー記述のアクション部（ｔｈｅｎ節）の記述を最小にすることができる。以上で、ステップＳ４００以降の処理が終了し、ステップＳ４００の呼び出し処理（図３のステップＳ３０４）の次の処理が実行される。
【００８０】
すなわち、ステップＳ３０４で呼び出されたＳ４００以降の処理の結果であるコマンド列と「抽出されたコマンド列」の和集合を新たな「抽出されたコマンド列」とする（ステップＳ３０８）。そして、「操作データ走査範囲」の最後の行を除く、それ以前の行に運用関係コマンドがある場合に、当該運用関係コマンドを含むコマンド列と、当該コマンド列に影響を与えるコマンド列を抽出するための処理を行う。具体的には、「操作データ走査範囲」が示す範囲を、現状の「操作データ走査範囲」より最後の１行を除外した範囲に変更する（図３のステップＳ３０６）。そして、ステップＳ３０２以降の処理を繰り返す。
【００８１】
ステップＳ３０２の処理で運用関係コマンドが検出されなかった場合（ステップＳ３０３にてＮＯ）に、もし操作ログの先頭に至っていない場合（図３のステップＳ３０５）には、同様にステップＳ３０６の処理が行われる。すなわち、「操作データ走査範囲」の最後の行を除く、それ以前の行に運用関係コマンドがある場合に、当該運用関係コマンドを含むコマンド列と、当該コマンド列に影響を与えるコマンド列を抽出するための処理を行う。具体的には、「操作データ走査範囲」が示す範囲を、現状の「操作データ走査範囲」より最後の１行を除外した範囲に変更する（図３のステップＳ３０６）そして、以降同様にステップＳ３０２から繰り返し処理が行われる。
【００８２】
逆に、もし操作ログの先頭に至った場合（図３のステップＳ３０５にてＹＥＳ）には、ここまでで得られた「抽出されたコマンド列」である“ｐｓ  ａｕｘｗｗｗ｜ｓｏｒｔ＞ｔｍｐ．ｔｘｔ”，“ｃａｔ  ｔｍｐ．ｔｘｔ｜ｔｏｐ  １０｜…＞ｐｉｄｓ．ｔｘｔ”，“ｋｉｌｌ  ‘ｃａｔ  ｐｉｄｓ．ｔｘｔ’”の３行（図９の９３０）が結果として返される（図３のステップＳ３０７）。
【００８３】
以上の通り、図３と図４で示した処理により、ポリシー記述のアクション部（ｉｆ−ｔｈｅｎルールのｔｈｅｎ節）の雛形が抽出される。
【００８４】
作成されたポリシー記述のアクション部には、コマンドを実行するタイミングを示す情報が含まれていてもよい。また、この情報は、操作データに含まれる、投入されたコマンドの実行時刻に基づいて生成されてもよい。あるいは、この情報を、利用者が設定あるいは変更してもよい。
【００８５】
以上のように、本発明の第１の実施形態に係るポリシー作成装置１００は、操作データと運用データより、ポリシー記述の条件部とアクション部の雛形を生成し、これら条件部とアクション部よりポリシー記述の雛形を作成する。このため、利用者は、運用管理システムにおけるポリシーを作成する際に、ポリシーが適用される条件と、ポリシーの対処内容を、利用者自ら検討作成する必要が無い。このことにより、ポリシー作成装置１００は、利用者がポリシーを容易に作成することを可能にする。
【００８６】
また、第１の実施形態においては、データ抽出部１０１が、操作データから操作開始時刻と操作終了時刻と平常時時刻を求める。次に、条件抽出部１０２が、平常時時刻と操作開始時刻で値が大きく異なる監視項目を異常な値として抽出し、抽出した監視項目よりポリシー記述の条件部の雛形である条件式を生成する。そして、アクション抽出部１０３が、運用管理に直接関連するコマンド行とその処理に影響を与えるコマンド行を抽出することにより、ポリシー記述のアクション部の雛形を生成する。すなわち、運用管理システムにおける実際の運用のデータに基づき、異常な値と判定された監視項目と、それに対応して投入されたコマンドに基づいて、ポリシーの適用の条件と、条件が満たされた場合に実行される内容が生成される。このことにより、ポリシー作成装置１００は、利用者が実際に行った運用操作の手順より、自動実行のためのポリシー記述が生成されることを可能としている。
【００８７】
また、第１の実施形態においては、ｉｆ−ｔｈｅｎルールシミュレーション部１０７が、作成されたポリシー記述を運用データに対して仮想的に実行する。このことにより、利用者は、作成したポリシー記述が正しく動作するかどうかを確認することができる。
【００８８】
［第２の実施形態］
次に、本発明の第２の実施の形態を説明する。
【００８９】
図１１は、本発明の第２の実施形態に係るポリシー作成装置の構成を説明する図である。本発明の第２の実施形態に係るポリシー作成装置１１００は、データ抽出部１１０１と、条件抽出部１１０２と、アクション抽出部１１０３と、ｉｆ−ｔｈｅｎルール編集部１１０６とを備える。
【００９０】
データ抽出部１１０１は、一連の操作であるコマンド列を操作の履歴より抽出し、コマンド列に対応する運用データを抽出する。
【００９１】
条件抽出部１１０２は、運用データより、ポリシー記述の条件部を生成する。
【００９２】
アクション抽出部１１０３は、コマンド列より、ポリシー記述のアクション部を生成する。
【００９３】
ｉｆ−ｔｈｅｎルール編集部１１０６は、ポリシー記述の条件部とポリシー記述のアクション部より、ポリシー記述を生成する。
【００９４】
データ抽出部１１０１，条件抽出部１１０２，アクション抽出部１１０３およびｉｆ−ｔｈｅｎルール編集部１１０６は、ソフトウェアで実現されてもよいし、専用のハードウェアで実現されてもよい。
【００９５】
以上のように、本発明の第２の実施形態に係るポリシー作成装置１１００は、操作の履歴と運用データより、ポリシー記述の雛形を作成する。このため、利用者は、運用管理システムにおけるポリシーを作成する際に、ポリシーが適用される条件と、ポリシーの対処内容を、利用者自ら検討作成する必要が無い。このことにより、ポリシー作成装置１１００は、利用者がポリシーを容易に作成することを可能にする。
【００９６】
図１２は、コンピュータを構成する要素の例を表すブロック構成図である。図１２のコンピュータ１２００は、ＣＰＵ(Central Processing Unit)１２１０と、ＲＡＭ(Random Access Memory)１２２０と、ＲＯＭ(Read Only Memory)１２３０と、ストレージ媒体１２４０と、通信インタフェース１２５０を備えている。前述したポリシー作成装置１００あるいは１１００の構成要素は、プログラムがコンピュータ１２００のＣＰＵ１２１０において実行されることにより実現されてもよい。具体的には、前述した図１あるいは図１１に記載の構成要素である、データ抽出部１０１あるいは１１０１，条件抽出部１０２あるいは１１０２，アクション抽出部１０３あるいは１１０３，ｉｆ−ｔｈｅｎルール編集部１０６あるいは１１０６，およびｉｆ−ｔｈｅｎルールシミュレーション部１０７は、ＣＰＵ１２１０がＲＯＭ１２３０あるいはストレージ媒体１２４０からプログラムを読み込んで実行することにより実現されてもよい。そして、このような場合において、本発明は、係るコンピュータプログラムのコードあるいはそのコンピュータプログラムのコードが格納された記憶媒体（例えばストレージ媒体１２４０や、不図示の着脱可能なメモリカードなど）によって構成される。
【００９７】
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００９８】
（付記１）
一連の操作であるコマンド列を操作の履歴より抽出し、前記コマンド列に対応する運用データを抽出するデータ抽出手段と、
前記運用データより、ポリシー記述の条件部を生成する条件抽出手段と、
前記コマンド列より、ポリシー記述のアクション部を生成するアクション抽出手段と、
前記ポリシー記述の条件部と前記ポリシー記述のアクション部より、ポリシー記述を生成するｉｆ−ｔｈｅｎルール編集手段とを備えるポリシー作成装置。
【００９９】
（付記２）
前記ポリシー記述を、前記運用データに対して仮想的に実行することにより検証するｉｆ−ｔｈｅｎルールシミュレーション手段をさらに備える付記１に記載のポリシー作成装置。
【０１００】
（付記３）
前記アクション抽出手段が、前記コマンド列より、あらかじめ登録されたコマンドと、前記あらかじめ登録されたコマンドと入出力関係を有するコマンドを抽出することにより、前記ポリシー記述のアクション部を生成する付記１または２に記載のポリシー作成装置。
【０１０１】
（付記４）
前記運用データは計算機システムの運用管理における監視項目を含み、
前記条件抽出手段が、前記コマンド列が投入された時間帯と前記監視項目の値に基づいて、前記ポリシー記述の条件部を生成する付記１乃至３のいずれかに記載のポリシー作成装置。
【０１０２】
（付記５）
一連の操作であるコマンド列を操作の履歴より抽出し、
前記コマンド列に対応する運用データを抽出し、
前記運用データより、ポリシー記述の条件部を生成し、
前記コマンド列より、ポリシー記述のアクション部を生成し、
前記ポリシー記述の条件部と前記ポリシー記述のアクション部より、ポリシー記述を生成するポリシー作成方法。
【０１０３】
（付記６）
前記ポリシー記述を、前記運用データに対して仮想的に実行することにより検証する付記５に記載のポリシー作成方法。
【０１０４】
（付記７）
前記コマンド列より、あらかじめ登録されたコマンドと、前記あらかじめ登録されたコマンドと入出力関係を有するコマンドを抽出することにより、前記ポリシー記述のアクション部を生成する付記５または６に記載のポリシー作成方法。
【０１０５】
（付記８）
前記運用データは計算機システムの運用管理における監視項目を含み、
前記コマンド列が投入された時間帯と前記監視項目の値に基づいて、前記ポリシー記述の条件部を生成する付記５乃至７のいずれかに記載のポリシー作成方法。
【０１０６】
（付記９）
コンピュータに、
一連の操作であるコマンド列を操作の履歴より抽出し、
前記コマンド列に対応する運用データを抽出し、
前記運用データより、ポリシー記述の条件部を生成し、
前記コマンド列より、ポリシー記述のアクション部を生成し、
前記ポリシー記述の条件部と前記ポリシー記述のアクション部より、ポリシー記述を生成する処理を実行させるプログラム。
【０１０７】
（付記１０）
コンピュータに、
前記ポリシー記述を、前記運用データに対して仮想的に実行することにより検証する処理をさらに実行させる付記９に記載のプログラム。
【０１０８】
（付記１１）
コンピュータに、
前記コマンド列より、あらかじめ登録されたコマンドと、前記あらかじめ登録されたコマンドと入出力関係を有するコマンドを抽出することにより、前記ポリシー記述のアクション部を生成する処理をさらに実行させる付記９または１０に記載のプログラム。
【０１０９】
（付記１２）
前記運用データは計算機システムの運用管理における監視項目を含み、
コンピュータに、
前記コマンド列が投入された時間帯と前記監視項目の値に基づいて、前記ポリシー記述の条件部を生成する処理をさらに実行させる付記９乃至１１のいずれかに記載のプログラム。
【０１１０】
（付記１３）
付記１乃至４のいずれかに記載のポリシー作成装置と、
運用管理コンソールとを備えた運用管理システム。
【産業上の利用可能性】
【０１１１】
本発明は、計算機システムやネットワークの、ポリシーに基づく運用管理システムにおけるポリシー記述をコンピュータ上に実現するためのシステムに適用できる。
【０１１２】
また、本発明は、例えばプラントの運用管理のように、ｉｆ−ｔｈｅｎ形式で運用手順を記述しその処理を自動化するようなシステムのための手順の記述支援を実現するためのシステムに適用できる。
【符号の説明】
【０１１３】
１００，１１００    ポリシー作成装置
１０１，１１０１    データ抽出部
１０２，１１０２    条件抽出部
１０３，１１０３    アクション抽出部
１０４    運用関係コマンドリスト
１０５    入出力関係テーブル
１０６，１１０６    ｉｆ−ｔｈｅｎルール編集部
１０７    ｉｆ−ｔｈｅｎルールシミュレーション部
１１０    運用管理コンソール
１１１    運用ログ
１１２    操作ログ
１１３    入出力部
１２００    コンピュータ
１２１０    ＣＰＵ
１２２０    ＲＡＭ
１２３０    ＲＯＭ
１２４０    ストレージ媒体
１２５０    通信インタフェース
【図１】
2013171401.tif 000003
【図２】
2013171401.tif 000004
【図３】
2013171401.tif 000005
【図４】
2013171401.tif 000006
【図５】
2013171401.tif 000007
【図６】
2013171401.tif 000008
【図７】
2013171401.tif 000009
【図８】
2013171401.tif 000010
【図９】
2013171401.tif 000011
【図１０】
2013171401.tif 000012
【図１１】
2013171401.tif 000013
【図１２】
2013171401.tif 000014