(57)【特許請求の範囲】
【請求項１】
実行順序の依存関係を有する一つ以上の作業手順から成るとともに、作業終了期限が指定され、さらに、前記作業手順のそれぞれは、作業者が手動で行う手動手順に加えて、前記手動手順に続いて前記管理対象リソースによって自動的に実行される自動手順を含む場合がある作業により、
サーバ装置とストレージ装置とネットワーク装置とのなかの少なくとも１台の前記管理対象リソースを有して成る計算機システムを構成し、または、構成済みの計算機システムの構成変更を行う際における当該作業の遅延を、記憶部と処理部とを備える作業管理装置によって監視する作業遅延監視方法であって、
前記記憶部には、前記作業および作業手順についての各種情報として、
前記実行順序の依存関係と、
前記作業終了期限と、
前記手動手順の実行にかかると予定される手動手順予定時間と、
前記自動手順の実行にかかると予定される自動手順予定時間と、
前記作業手順の実行によって前記管理対象リソースにおいて起きる諸動作のなかから、前記手動手順の開始および終了をそれぞれ特定するイベントと
が記憶されており、
前記処理部は、
前記作業手順の実行によって前記管理対象リソースにおいて起きる諸動作のなかから、前記手動手順の開始および終了をそれぞれ特定するイベントが発生したときに、当該手動手順の開始時刻または終了時刻を記録するステップと、
すでに作業が終了した前記手動手順の前記開始時刻および終了時刻と、前記手動手順予定時間とから、その時点までの前記手動手順の遅延率を算出するステップと、
作業が未開始の前記手動手順の実行にかかるであろう推定時間を、当該手動手順の前記手動手順予定時間に前記遅延率を乗じて算出するステップと、
前記実行順序の依存関係と、前記推定時間と、前記自動手順予定時間とに基づいて、前記作業が前記作業終了期限までに終了するか否かを判定するステップと
を含んで作業遅延監視処理を実行することを特徴とする作業遅延監視方法。
【請求項２】
前記記憶部には、さらに、前記作業を担当する作業担当ごとの平均作業速度が記憶されており、
前記作業遅延監視処理には、さらに、
前記作業が前記作業終了期限までに終了しないと判定したときに、前記遅延率と、現在の作業担当および他の作業担当の前記平均作業速度とから、前記作業の残りを他の作業担当に代替させた場合の新たな遅延率を算出するステップと、
前記実行順序の依存関係と、前記推定時間と、前記自動手順予定時間とに基づいて、前記作業の残りを他の作業担当に代替させた場合に前記作業が前記作業終了期限までに終了するか否かを判定するステップと
を含むことを特徴とする請求項１に記載の作業遅延監視方法。
【請求項３】
前記作業遅延監視処理は、さらに、
前記作業終了期限に近づくほど、前記遅延率が大きくなるように、前記遅延率を補正処理するステップ
を含むことを特徴とする請求項１または請求項２に記載の作業遅延監視方法。
【請求項４】
前記遅延率を補正処理するステップでは、
前記作業の開始時刻と、前記作業終了期限と、現在時刻とから算出される遅延比率が、前記遅延率に乗じられることによって、前記遅延率が補正される
ことを特徴とする請求項３に記載の作業遅延監視方法。
【請求項５】
前記作業遅延監視処理は、さらに、
前記手動手順の開始および終了をそれぞれ特定するイベントが発生したときに、前記実行順序の依存関係または前記手動手順の開始と終了の順序関係とに反するイベントを検出して、前記手動手順の実行順序の誤りを通知するステップ
を含むことを特徴とする請求項１から請求項４のいずれか一項に記載の作業遅延監視方法。
【請求項６】
実行順序の依存関係を有する一つ以上の作業手順から成るとともに、作業終了期限が指定され、さらに、前記作業手順のそれぞれは、作業者が手動で行う手動手順に加えて、前記手動手順に続いて前記管理対象リソースによって自動的に実行される自動手順を含む場合がある作業により、
サーバ装置とストレージ装置とネットワーク装置とのなかの少なくとも１台の前記管理対象リソースを有して成る計算機システムを構成し、または、構成済みの計算機システムの構成変更を行う際における当該作業の遅延を監視する、記憶部と処理部とを備える作業管理装置であって、
前記記憶部は、前記作業および作業手順についての各種情報として、
前記実行順序の依存関係と、
前記作業終了期限と、
前記手動手順の実行にかかると予定される手動手順予定時間と、
前記自動手順の実行にかかると予定される自動手順予定時間と、
前記作業手順の実行によって前記管理対象リソースにおいて起きる諸動作のなかから、前記手動手順の開始および終了をそれぞれ特定するイベントと
を記憶し、
前記処理部は、
前記作業手順の実行によって前記管理対象リソースにおいて起きる諸動作のなかから、前記手動手順の開始および終了をそれぞれ特定するイベントが発生したときに、当該手動手順の開始時刻または終了時刻を記録する手動手順作業の検出手段と、
すでに作業が終了した前記手動手順の前記開始時刻および終了時刻から当該手動手順の実行に要した実時間を算出する作業時間特定手段と、
すでに作業が終了した前記手動手順の前記実時間と前記手動手順予定時間とから、その時点までの前記手動手順の遅延率を算出し、作業が未開始の前記手動手順の実行にかかるであろう推定時間を、当該手動手順の前記手動手順予定時間に前記遅延率を乗じて算出し、前記実行順序の依存関係と、前記推定時間と、前記自動手順予定時間とに基づいて、前記作業が前記作業終了期限までに終了するか否かを判定する作業遅延推定手段と
を備えることを特徴とする作業管理装置。
【請求項７】
前記記憶部は、さらに、前記作業を担当する作業担当ごとの平均作業速度を記憶し、
前記処理部は、さらに、
前記作業が前記作業終了期限までに終了しないと判定したときに、前記遅延率と、現在の作業担当および他の作業担当の前記平均作業速度とから、前記作業の残りを他の作業担当に代替させた場合の新たな遅延率を算出し、前記実行順序の依存関係と、前記推定時間と、前記自動手順予定時間とに基づいて、前記作業の残りを他の作業担当に代替させた場合に前記作業が前記作業終了期限までに終了するか否かを判定する代替担当特定手段
を備えることを特徴とする請求項６に記載の作業管理装置。
【請求項８】
前記処理部は、さらに、
前記作業終了期限に近づくほど、前記遅延率が大きくなるように、前記遅延率を補正処理する補正手段
を備えることを特徴とする請求項６または請求項７に記載の作業管理装置。
【請求項９】
前記遅延率を補正処理する補正手段は、
前記作業の開始時刻と、前記作業終了期限と、現在時刻とから算出される遅延比率を、前記遅延率に乗じることによって、前記遅延率を補正する
ことを特徴とする請求項８に記載の作業管理装置。
【請求項１０】
前記処理部は、さらに、
前記手動手順の開始および終了をそれぞれ特定するイベントが発生したときに、前記実行順序の依存関係または前記手動手順の開始と終了の順序関係とに反するイベントを検出して、前記手動手順の実行順序の誤りを通知する作業手順誤り特定手段
を備えることを特徴とする請求項６から請求項９のいずれか一項に記載の作業管理装置。
【請求項１１】
コンピュータを、請求項６から請求項１０のいずれか一項に記載の作業管理装置として機能させるための作業管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムの構成変更作業の遅延を監視する技術に関する。
【背景技術】
【０００２】
サーバ、ネットワーク、ストレージといったＩＴ（Information Technology）リソースを含んで構成される計算機システムを運用するにあたっては、業務環境の変化などに対応してＩＴリソースを増設したり、更新したりする構成変更作業が必要となる。
【０００３】
この構成変更作業は、一つ以上の作業手順から成る。例えば、ＩＴリソースを所定の場所に搬入して設置し、電源ケーブルやネットワークケーブルを結線し、サーバ上に必要なソフトウエアをインストールし、ネットワークおよびストレージの初期設定を行う、といったものが一連の作業手順である。
【０００４】
これらの構成変更作業には、作業者による人手での作業が伴う。人手での作業は、作業者の不慣れや不注意などにより遅延する場合がある。そのため、個々の作業手順の進捗状況を監視し、構成変更作業が予定の期限内に終了するかどうかを把握することが重要となる。
【０００５】
人手での作業の進捗状況を監視するための従来技術として、特許文献１には、作業者が携帯式計算機を使って作業工程の開始および終了の報告を作業支援装置に送信することで、実作業時間を特定する技術が開示されている。また、特許文献２には、保守管理サーバが、テストプログラムを実行させる前後に、保守員が持つ携帯端末から保守区切り情報を受け取ることで、保守作業の開始および終了時刻を特定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−２５６６２４号公報
【特許文献２】特開２００８−２０４４０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、前記従来技術では、作業支援装置や保守管理サーバが人手での作業の開始および終了を把握するために、作業者が携帯式計算機や携帯端末から特別な操作を行わなければならないという課題がある。
【０００８】
一方、ＩＴリソースに対する人手での作業においては、そのＩＴリソースを利用可能とするために、セットアップツールを動作させる、あるいは、インストール済の設定ツールを使って設定変更を行うことが一般的である。これらのセットアップツールや設定ツールは、通常、ダイアログウィンドウやコンソールなどにメッセージを表示することで、例えば、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）メディアの交換や設定データの入力などの作業が必要であることを作業者に通知する。しかし、これらのツールは前記従来技術のように作業の開始時刻や終了時刻を特定する機能は持っていないので、人手での作業の遅延を検出することができないという課題がある。
【０００９】
さらに、高度なセットアップツールなどには、パラメータや手順などの情報を予め設定しておけば、当該セットアップツールを起動するだけで、以降は人手を介することなく複雑な手順を自動的に実行させることができる機能が備えられている。以後、このようなツールが自動で実行する手順を「自動手順」と呼び、それ以外の手順を「手動手順」と呼ぶこととする。自動手順は、手動手順に続いて実行されることが多い。自動手順は、作業者の不慣れや不注意がある手動手順と比べると、遅延が起きにくい。前記従来技術は、このような自動手順と手動手順とを含む作業を監視するようにはなっていないという課題がある。
【００１０】
本発明は、これらの課題を解決することを目的とする。
【課題を解決するための手段】
【００１１】
前記課題を解決するための手段の代表的な一例を示せば以下の通りである。
【００１２】
まず、ＩＴリソースやＯＳ（Operating System）上で動作する、セットアップツールや設定ツールの諸動作から、手動手順の開始および終了を検知するためのチェック手順を予め定義しておく。諸動作としては、画面上に出力されるウィンドウの生成・消滅、ウィンドウ上のボタン操作、ＯＳによるイベントログ出力、アプリケーションプログラムによるイベントログ出力、コンソール等へのメッセージ出力、プロセスの生成・消滅などがある。次に、前記ＩＴリソース上で、前記チェック手順で示された諸動作が発生した場合、それを監視対象イベントとして検出し、検出時刻を記録する。それら検出された監視対象イベントを前記チェック手順と照らし合わせることで、開始または終了された手動手順を特定し、それらの検出時刻からその手動手順にかかった実時間を算出する。最後に、手動手順の予定時間と実時間とから遅延率を推定し、遅延率を加味した手動手順の推定所要時間と自動手順の所要時間とから、未完了の作業手順の終了時刻を推定して、予定した作業が期間内に終わりそうか否かを判定する。
【００１３】
また本発明では、作業に含まれる作業手順の実行順序についての依存関係を予め規定しておくことにより、作業者が作業順序を間違えた場合に、その旨を警告することができる。
【発明の効果】
【００１４】
本発明によれば、手動手順と自動手順とを含む計算機システムの構成変更作業の遅延を検出することができる。
【図面の簡単な説明】
【００１５】
【図１】作業管理システムの一例を示すシステム構成図である。
【図２】管理サーバの構成の一例を示す機能ブロック図である。
【図３】イベント集約装置を階層構造に配備した一例を示す作業管理システムのシステム構成図である。
【図４】管理対象一覧のデータ構造およびデータの一例である。
【図５】監視対象イベント一覧のデータ構造およびデータの一例である。
【図６】検出済イベント一覧のデータ構造およびデータの一例である。
【図７】作業一覧のデータ構造およびデータの一例である。
【図８】作業手順一覧のデータ構造およびデータの一例である。
【図９】手動手順結果一覧のデータ構造およびデータの一例である。
【図１０】イベント検出処理の流れを示すフローチャートである。
【図１１】実作業時間算出処理の流れを示すフローチャートである。
【図１２】作業手順間の実行順序の依存関係を表す有向グラフの一例である。
【図１３】作業手順を時間軸上に配置したグラフの一例である。
【図１４】作業遅延警告処理の流れを示すフローチャートである。
【図１５】作業担当一覧のデータ構造およびデータの一例である。
【図１６】代替担当表示処理の流れを示すフローチャートである。
【図１７】遅延率補正処理の流れを示すフローチャートである。
【図１８】作業手順誤り警告処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１６】
＜第１実施形態＞
以下、本発明を実施するための第１の形態（以下、「第１実施形態」という。）について、図面を参照しながら説明する。図１は、第１実施形態に係る作業管理システムの一例を示すシステム構成図である。図１に示すように、作業管理システム１は、構成変更作業の対象となる計算機システム１００と、管理サーバ１０１と、イベント集約装置１０９とを含んで構成される。
【００１７】
計算機システム１００は、複数のＩＴリソース、例えば、サーバ装置１０３、ストレージ装置１０４、およびネットワーク装置１０５から構成され、ネットワーク装置１０５を介して接続される不図示のクライアント装置に対して所定のＩＴサービスを提供する。
【００１８】
管理サーバ１０１、イベント集約装置１０９、サーバ装置１０３、ストレージ装置１０４、およびネットワーク装置１０５は、通信リンク１０２を介して管理用ネットワーク１０６に接続され相互に通信可能である。サーバ装置１０３およびストレージ装置１０４は、高速通信リンク１０７を介してネットワーク装置１０５に接続され相互に通信可能である。通信リンク１０２および高速通信リンク１０７は、有線または無線の通信手段であり、サブネットワークを含んでいても良い。管理サーバ１０１、サーバ装置１０３、ストレージ装置１０４およびネットワーク装置１０５は、それぞれ異なる方式で、管理用ネットワーク１０６またはネットワーク装置１０５に接続されていても良い。サーバ装置１０３とストレージ装置１０４とは、ネットワーク装置１０５を介さずに、有線または無線の通信手段によって直接接続されていても良い。
【００１９】
図１には、管理サーバ１０１、イベント集約装置１０９、サーバ装置１０３、ストレージ装置１０４、およびネットワーク装置１０５が、それぞれ１台である場合の構成を例示しているが、作業管理システム１がシステムとして成り立つ範囲で、その一部が０台または複数台となっていても良い。また、管理サーバ１０１、イベント集約装置１０９、サーバ装置１０３、ストレージ装置１０４、およびネットワーク装置１０５は、仮想マシンとして構成されていても良い。また、管理サーバ１０１、イベント集約装置１０９、サーバ装置１０３、ストレージ装置１０４、およびネットワーク装置１０５は、そのいずれか２つ以上が、同一の筐体内または同一の仮想マシン内に配備されていても良い。
【００２０】
ネットワーク装置１０５は、さらに他のネットワーク装置１０５と有線または無線の通信手段で接続されていても良い。また、ネットワーク装置１０５により提供されるネットワークは、管理用ネットワーク１０６と同一であっても良い。また、通信リンク１０２と高速通信リンク１０７が同一であっても良い。
【００２１】
管理サーバ１０１は、イベント検出指示部１２０、イベント記録部１２１、作業検出部１２２、作業時間特定部１２３、作業遅延推定部１２４、代替担当特定部１２５、および作業手順誤り特定部１２６を備える。なお、イベント検出指示部１２０、イベント記録部１２１、作業検出部１２２、作業時間特定部１２３、作業遅延推定部１２４、代替担当特定部１２５、および作業手順誤り特定部１２６のうち、少なくとも１つ以上が存在しなくても良い。管理サーバ１０１については後記にて詳しく説明する。
【００２２】
図１のサーバ装置１０３、ストレージ装置１０４、およびネットワーク装置１０５は、それぞれイベントモニタ１０８を持っているが、各装置はイベントモニタ１０８を持っていなくても良い。イベント集約装置１０９は、イベント集約部１１０を持つ。イベント集約部１１０は、管理サーバ１０１上にあっても良い。
【００２３】
図２は、管理サーバの構成の一例を示す機能ブロック図である。図２に示すように、管理サーバ１０１は、処理部１１１、入力装置２０３、出力装置２０４、および記憶部１１２を備える。処理部１１１は、プロセッサ２００、主記憶２０１、外部記憶装置インターフェース２０５、および通信インターフェース２０６を備え、それらはＣＰＵバス２０９を介して相互に通信可能に接続される。プロセッサ２００は、ハードディスク装置などの記憶部１１２に記憶されたプログラム群２０８を、主記憶２０１にロードして実行することにより、イベント検出指示部１２０、イベント記録部１２１、作業検出部１２２、作業時間特定部１２３、作業遅延推定部１２４、代替担当特定部１２５、作業手順誤り特定部１２６などの機能群２０２を具現化する。
【００２４】
プログラム群２０８をプロセッサ２００で実行する代わりに、イベント検出指示部１２０、イベント記録部１２１、作業検出部１２２、作業時間特定部１２３、作業遅延推定部１２４、代替担当特定部１２５、作業手順誤り特定部１２６を、各部の機能を有する集積回路等のハードウェアで実現しても良い。以下、説明を簡単にするため，主記憶２０１上にロードされたプログラム群２０８をプロセッサ２００が実行することで具現化されるそれぞれの機能部を、管理サーバ１０１の動作の主体として説明する。
【００２５】
外部記憶装置インターフェース２０５は記憶部１１２に接続される。記憶部１１２は管理サーバ１０１の外部に備わっていても良く、管理サーバ１０１の内部に備わっていても良い。記憶部１１２は、各種情報２０７として、管理対象一覧２１０、監視対象イベント一覧２２０、検出済イベント一覧２３０、作業一覧２４０、作業手順一覧２５０、手動手順結果一覧２７０、作業担当一覧２８０などを保持する。管理対象一覧２１０、監視対象イベント一覧２２０、検出済イベント一覧２３０、作業一覧２４０、作業手順一覧２５０、手動手順結果一覧２７０、作業担当一覧２８０のうち、少なくとも１つ以上が存在しなくても良い。記憶部１１２が保持する各種情報２０７のうち、１つ以上の情報が主記憶２０１に保持されていても良い。各種情報２０７については、図４から図９を参照して後記にて詳しく説明する。
【００２６】
通信インターフェース２０６は、管理用ネットワーク１０６に接続されている。通信インターフェース２０６と外部記憶装置インターフェース２０５とは、同一のインターフェースとなっていても良い。
【００２７】
図３は、第１実施形態において、各ＩＴリソースが備えるイベントモニタ１０８が検出した監視対象イベントを、管理サーバ１０１が備えるイベント記録部１２１に送付する処理の流れを示した説明図である。サーバ装置１０３、ストレージ装置１０４、ネットワーク装置１０５上のそれぞれのイベントモニタ１０８が検出した監視対象イベントは、イベント集約装置１０９が備えるイベント集約部１１０に送られる。イベント集約装置１０９は階層構造を成しており、下位のイベント集約装置１０９（例えば、図３のイベント集約装置ｂ，ｃ）のイベント集約部１１０に送られてきた監視対象イベントは、上位のイベント集約装置１０９（例えば、図３のイベント集約装置ａ）のイベント集約部１１０に送られ、最上位のイベント集約装置１０９のイベント集約部１１０から管理サーバ１０１のイベント記録部１２１に送られる。
【００２８】
なお、イベント集約装置１０９は、多階層になっていても、１階層だけになっていても良い。また、イベントモニタ１０８が検出した監視対象イベントを、管理サーバ１０１のイベント記録部１２１に直接送付しても良い。また、イベントモニタ１０８から監視対象イベントを送付するのではなく、イベント集約部１１０が、サーバ装置１０３、ストレージ装置１０４、ネットワーク装置１０５のイベントモニタ１０８に対して定期的に問い合わせることで、検出された監視対象イベントを収集するものとしても良い。
【００２９】
図４は、管理対象一覧２１０のデータ構造およびデータの一例である。図４に示すように、管理対象一覧２１０は表形式となっており、一つ以上の行から成る。全ての行は２つの列を含んでいる。ここで２つの列とは、ホスト名２１１、ホスト種別２１２である。管理対象一覧２１０の各行は、これ以外の不図示の列を含んでいても良いし、幾つかの列が存在しなくても良い。
【００３０】
管理対象一覧２１０には、構成変更作業の対象となるサーバ装置１０３、ストレージ装置１０４、およびネットワーク装置１０５について、装置のホスト名とホスト種別とが一行ずつ記憶される。管理対象一覧２１０に記憶される情報は、システム管理者などが手作業で作成しても、あるいは何らかのツールやユーティリティを用いて作成しても良い。
【００３１】
図５は、監視対象イベント一覧２２０のデータ構造およびデータの一例である。図５に示すように、監視対象イベント一覧２２０は表形式となっており、一つ以上の行から成る。全ての行は４つの列を含んでいる。ここで４つの列とは、イベントＩＤ２２１、種別２２２、ホスト種別２２３、およびチェック手順２２４である。チェック手順２２４はさらに、手順名２２５と手順値２２６との組を含む。一つのイベントＩＤについて、手順名２２５と手順値２２６との組が複数存在しても良い。監視対象イベント一覧２２０の各行は、これ以外の不図示の列を含んでいても良いし、幾つかの列が存在しなくても良い。
【００３２】
監視対象イベント一覧２２０には、管理対象一覧２１０（図４）の各行に記憶された個々の装置について、検出すべき監視対象イベントを定義する情報が一行ずつ記憶される。ここで、図５に例示した種別２２２とチェック手順２２４とのデータについて説明する。
【００３３】
種別２２２が「ウィンドウ生成」の場合は、サーバ装置１０３が備えるディスプレイなどの不図示の出力装置上に、チェック手順２２４で定義された条件に該当するウィンドウが表示される動作を監視対象とする。例えば、図５のイベントＩＤ２２１が「１」の行では、ＷｉｎｄｏｗＣｌａｓｓが「ＳｔｏｒａｇｅＤｒｉｖｅｒＩｎｓｔａｌｌｅｒ」で、かつＷｉｎｄｏｗＴｉｔｌｅが「ストレージドライバ＆ツールインストーラ」で、かつＷｉｎｄｏｗＴｅｘｔが「ようこそ」というウィンドウが表示される動作を監視対象イベントとする。ＷｉｎｄｏｗｓＣｌａｓｓ、ＷｉｎｄｏｗＴｉｔｌｅ、ＷｉｎｄｏｗＴｅｘｔのうち、少なくとも一つだけをチェック手順の条件としても良いし、これ以外をチェック手順の条件に含めても良い。
【００３４】
種別２２２が「ウィンドウ消滅」の場合は、サーバ装置１０３の出力装置上から、チェック手順２２４で定義された条件に該当するウィンドウが消える動作を監視対象とする。例えば、図５のイベントＩＤ２２１が「２」の行では、ＷｉｎｄｏｗＣｌａｓｓが「ＳｔｏｒａｇｅＤｒｉｖｅｒＩｎｓｔａｌｌｅｒ」で、かつＷｉｎｄｏｗＴｉｔｌｅが「ストレージドライバ＆ツールインストーラ」で、かつＷｉｎｄｏｗＴｅｘｔが「インストール開始」というウィンドウが消える動作を監視対象イベントとする。
【００３５】
種別２２２が「ウィンドウメッセージ変更」の場合は、サーバ装置１０３の出力装置上に表示されているウィンドウのメッセージが変更されて、チェック手順２２４で定義された条件に該当するウィンドウとなる動作を監視対象とする。例えば、図５のイベントＩＤ２２１が「３」の行では、ＷｉｎｄｏｗＣｌａｓｓが「ＭｅｓｓａｇｅＢｏｘ」で、かつＷｉｎｄｏｗＴｉｔｌｅが「ディスク交換」というウィンドウに対して、当該ウィンドウ内に表示されているメッセージが、ＷｉｎｄｏｗＴｅｘｔで示される「ＣＤ−ＲＯＭ＃２に交換して下さい」に変更される動作を監視対象イベントとする。これ以外にも、例えばウィンドウタイトルが変更される動作を監視対象イベントとしても良い。
【００３６】
種別２２２が「ウィンドウボタン押下」の場合は、サーバ装置１０３の出力装置上に表示されているウィンドウ内の、チェック手順２２４で定義された条件に該当するボタンが押される（マウスなどで選択操作される）動作を監視対象とする。例えば、図５のイベントＩＤ２２１が「４」の行では、ＷｉｎｄｏｗＣｌａｓｓが「ＭｅｓｓａｇｅＢｏｘ」で、かつＷｉｎｄｏｗＴｉｔｌｅが「ディスク交換」で、かつ「ＷｉｎｄｏｗＴｅｘｔ」が「ＣＤ−ＲＯＭ＃２に交換して下さい」というウィンドウ内に含まれる、ＢｕｔｔｏｎＴｅｘｔが「次へ」となっているボタンが押される動作を監視対象イベントとする。ＷｉｎｄｏｗｓＣｌａｓｓ、ＷｉｎｄｏｗＴｉｔｌｅ、ＷｉｎｄｏｗＴｅｘｔ、ＢｕｔｔｏｎＴｅｘｔのうち、少なくとも一つだけをチェック手順の条件としても良いし、これ以外をチェック手順の条件に含めても良い。
【００３７】
種別２２２が「Ｗｉｎｄｏｗｓイベントログ」の場合は、サーバ装置１０３のホスト種別２１２（図４）がＷｉｎｄｏｗｓ（登録商標）であり、チェック手順２２４で定義された条件に該当するイベントログが生成される動作を監視対象とする。例えば、図５のイベントＩＤ２２１が「５」の行では、ｔｙｐｅが「Ｗａｒｎｉｎｇ」で、かつｍｅｓｓａｇｅが「リンクが切断されました」というイベントログが生成される動作を監視対象イベントとする。
【００３８】
種別２２２が「ＳＮＭＰトラップ」の場合は、主にネットワーク装置１０５から、チェック手順２２４で定義された条件に該当するＳＮＭＰ（Simple Network Management Protocol）トラップパケットが送られる動作を監視対象とする。サーバ装置１０３、ストレージ装置１０４からＳＮＭＰトラップパケットが送られる動作も監視対象としても良い。ＳＮＭＰについてはＲＦＣ（Request for Comment）１１５７に詳しい。例えば、図５のイベントＩＤ２２１が「６」の行では、ネットワーク装置１０５からｇｅｎｅｒｉｃ−ｔｒａｐが「２」、つまりＬｉｎｋＤｏｗｎのＳＮＭＰトラップパケットが送られる動作を監視対象イベントとする。
【００３９】
種別２２２が「ログファイル出力」の場合は、主にサーバ装置１０３上で、チェック手順２２４で定義された条件に該当するログ情報がファイルに出力される動作を監視対象とする。ストレージ装置１０４、ネットワーク装置１０５上でログ情報がファイルに出力される動作も監視対象としても良い。例えば、図５のイベントＩＤ２２１が「７」の行では、ｆｉｌｅ（ファイル名）が「／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ」であるログファイルに、「Ａｃｃｅｐｔｅｄ  ｐａｓｓｗｏｒｄ  ｆｏｒ  ｒｏｏｔ」という文字列（ｐａｔｔｅｒｎ）が出力される動作を監視対象イベントとする。
【００４０】
種別２２２が「ＣＩＭ  Ｉｎｄｉｃａｔｉｏｎ」の場合は、主にストレージ装置１０４から、チェック手順２２４で定義された条件に該当するＣＩＭ（Common Information Model）のインディケーションが出力される動作を監視対象とする。サーバ装置１０３、ネットワーク装置１０５上からＣＩＭのインディケーションが出力される動作も監視対象としても良い。ＣＩＭについてはＤＭＴＦ（Distributed Management Task Force）の仕様が詳しい。例えば、図５のイベントＩＤ２２１が「８」の行では、ＣＩＭ＿ＩｎｓｔＣｒｅａｔｉｏｎクラスであって、ＣＩＭ＿ＳｔｏｒａｇｅＶｏｌｕｍｅクラスのインスタンスを内含するインディケーションが出力される動作を監視対象イベントとする。この種類のインディケーションは、主にストレージ装置１０４上で新たにＬＵ（Logical Unit：論理ユニット）が作成されたときに出力される。
【００４１】
種別２２２が「プロセス生成」の場合は、主にサーバ装置１０３上に、チェック手順２２４で定義された条件に該当するプロセスが生成される動作を監視対象とする。例えば、図５のイベントＩＤ２２１が「９」の行では、「ｓｐ２ｉｎｓｔａｌｌ．ｅｘｅ」というプロセス名のプロセスが生成される動作を監視対象イベントとする。プロセス名の代わりにコマンド名としても良いし、コマンドライン文字列を規定しても良い。同様に、プロセスが消滅する動作も監視対象イベントとしても良い。
【００４２】
種別２２２が「コマンド実行」の場合は、主にサーバ装置１０３に、チェック手順２２４で指定されたコマンドを定期的に実行させ、その実行結果を監視対象とする。実行結果としては、リターンコードの値や、標準出力、標準エラー出力に出力される文字列などがある。例えば、図５のイベントＩＤ２２１が「１０」の行では、「ｃｈｅｃｋ．ｅｘｅ」というコマンドを定期的に実行させ、リターンコードが「０」となる動作を監視対象イベントとする。
【００４３】
種別２２２には、上記以外の情報を含んでいても良いし、上記の情報を全く含まなくても良い。監視対象イベント一覧２２０に記憶される情報は、システム管理者などが手作業で作成しても、あるいは何らかのツールやユーティリティを用いて作成しても良い。
【００４４】
図６は、検出済イベント一覧２３０のデータ構造およびデータの一例である。図６に示すように、検出済イベント一覧２３０は表形式となっており、一つ以上の行から成る。全ての行は３つの列を含んでいる。ここで３つの列とは、イベントＩＤ２３１、イベント発生ホスト名２３２、およびイベント検出時刻２３３である。検出済イベント一覧２３０の各行は、これ以外の不図示の列を含んでいても良いし、幾つかの列が存在しなくても良い。
【００４５】
検出済イベント一覧２３０には、監視対象イベント一覧２２０（図５）の各行で定義された監視対象イベントが、サーバ装置１０３、ストレージ装置１０４、ネットワーク装置１０５のいずれかの装置上で、いつ検出されたのかが一行ずつ記録される。
検出済イベント一覧２３０に記憶される情報は、基本的にイベント記録部１２１が記録する。検出済イベント一覧２３０に記憶される情報は、一部または全てをシステム管理者などが手作業で作成しても、あるいは何らかのツールやユーティリティを用いて作成しても良い。
【００４６】
図７は、作業一覧２４０のデータ構造およびデータの一例である。図７に示すように、作業一覧２４０は表形式となっており、一つ以上の行から成る。全ての行は６つの列を含んでいる。ここで６つの列とは、作業ＩＤ２４１、作業担当名２４２、開始予定時刻２４３、終了予定時刻２４４、作業状況２４５、および作業名２４６である。作業一覧２４０の各行は、これ以外の不図示の列を含んでいても良いし、幾つかの列が存在しなくても良い。
【００４７】
作業一覧２４０には、サーバ装置１０３、ストレージ装置１０４、ネットワーク装置１０５に対する一連の構成変更作業についての情報が一行ずつ記憶される。図７では、一連の作業を複数人で分担することを想定して、作業担当名２４２についてはチーム名を例示している。ここには個人名を記憶しても良い。また、特定のスキルレベルを持つ者の誰が作業しても良いように、必要なスキルレベルを記憶するものとしても良い。
作業一覧２４０に記憶される情報は、システム管理者などが手作業で作成しても、あるいは何らかのツールやユーティリティを用いて作成しても良い。
【００４８】
図８は、作業手順一覧２５０のデータ構造およびデータの一例である。図８に示すように、作業手順一覧２５０は表形式となっており、一つ以上の行から成る。全ての行は９つの列を含んでいる。ここで９つの列とは、作業ＩＤ２５１、手順ＩＤ２５２、事前手順ＩＤ２５３、手動手順開始イベントＩＤ２５４、手動手順終了イベントＩＤ２５５、対象ホスト名２５６、手動手順予定時間２５７、自動手順予定時間２５８、および作業内容２５９である。作業手順一覧２５０の各行は、これ以外の不図示の列を含んでいても良いし、幾つかの列が存在しなくても良い。
【００４９】
作業手順一覧２５０には、作業一覧２４０（図７）の各行に記憶された一連の作業に含まれる、個々の作業手順についての情報が一行ずつ記憶される。それぞれの作業手順は、手動手順と自動手順との組から成る。手動手順を行った結果、自動手順が起きる場合があるためである。自動手順が無い場合は、自動手順予定時間２５８は「０：００」（０分０秒）とする。
作業手順一覧２５０に記憶される情報は、システム管理者などが手作業で作成しても、あるいは何らかのツールやユーティリティを用いて作成しても良い。
【００５０】
図９は、手動手順結果一覧２７０のデータ構造およびデータの一例である。図９に示すように、手動手順結果一覧２７０は表形式となっており、一つ以上の行から成る。全ての行は６つの列を含んでいる。ここで６つの列とは、手順ＩＤ２７１、手動手順開始時刻２７２、手動手順終了時刻２７３、手動手順実時間２７４、手動手順遅延時間２７５、および手動手順推定時間２７６である。手動手順結果一覧２７０の各行は、これ以外の不図示の列を含んでいても良いし、幾つかの列が存在しなくても良い。
【００５１】
手動手順結果一覧２７０では、作業手順一覧２５０（図８）の各行に記憶された各手動手順について、実際に作業を開始した時刻と終了した時刻とが、それぞれ手動手順開始時刻２７２と手動手順終了時刻２７３とに記憶される。そして、手動手順の作業にかかった実時間が開始時刻と終了時刻から求められ、手動手順実時間２７４に記憶される。また、作業手順一覧２５０の対応する行から取得される手動手順予定時間２５７と手動手順実時間２７４との差として求められる遅延時間が手動手順遅延時間２７５に記憶される。さらに、未完了の手動手順について、その手動手順にかかるであろう推定時間が手動手順推定時間２７６に記憶される。なお、図９に例示した内容は、図６から図８に示したデータ例に対応する２０１０／４／１  １０：２４：００時点のデータ例である。
【００５２】
作業手順一覧２５０と手動手順結果一覧２７０とは、手順ＩＤ２５２と手順ＩＤ２７１とをキーとして一対一に対応する。手動手順結果一覧２７０に記憶される情報は、基本的に作業検出部１２２と作業時間特定部１２３と作業遅延推定部１２４とが記録する。手動手順結果一覧２７０に記憶される情報は、システム管理者などが手作業で作成しても、あるいは何らかのツールやユーティリティを用いて作成しても良い。
【００５３】
図１０は、イベント検出指示部１２０、イベント記録部１２１、作業検出部１２２、イベントモニタ１０８、イベント集約部１１０によって実行されるイベント検出処理の流れを示すフローチャートである。
【００５４】
イベント検出指示部１２０は、ステップＳ５０１で、管理対象一覧２１０（図４）を参照して、サーバ装置１０３、ストレージ装置１０４、ネットワーク装置１０５の一覧を取得し、ステップＳ５０２で、監視対象イベント一覧２２０（図５）を参照して、監視対象イベントの一覧を取得する。次に、イベント検出指示部１２０は、ステップＳ５０３では、ステップＳ５０１で取得した各サーバ装置１０３、ストレージ装置１０４、ネットワーク装置１０５のイベントモニタ１０８に対して、ステップＳ５０２で取得した監視対象イベントを送付する。このとき、管理対象一覧２１０に含まれるホスト種別２１２と、監視対象イベント一覧２２０に含まれるホスト種別２２３とが一致するものだけに絞り込んで、各装置のイベントモニタ１０８に送付するようにしても良い。また、各イベントモニタ１０８に直接送付するのではなく、イベント集約部１１０を介して送付しても良い。
【００５５】
次に、イベントモニタ１０８は、ステップＳ５０４では、イベント検出指示部１２０から送付されてきた監視対象イベントのいずれかに該当する諸動作が発生するのを待つ。なお、イベントモニタ１０８の代わりに、イベント集約部１１０が、サーバ装置１０３、ストレージ装置１０４、ネットワーク装置１０５を定期的に監視することで、監視対象イベントのいずれかに該当する諸動作が発生するのを待つようにしても良い。
【００５６】
監視対象イベントのいずれかに該当する諸動作が発生したことを検出した場合は、イベントモニタ１０８は、ステップＳ５０５では、検出した諸動作に対応する監視対象イベントのイベントＩＤ（図５のイベントＩＤ２２１に対応）と、自身が動作する装置のホスト名（図４のホスト名２１１に対応）とを、検出イベントとしてイベント集約部１１０に送付する。なお、イベントモニタ１０８の代わりに、イベント集約部１１０が、各装置を監視して検出した監視対象イベントのイベントＩＤと、該当する装置のホスト名とを、上位のイベント集約部１１０に送付するようにしても良い。また、イベント集約部１１０ではなく、イベント記録部１２１に直接送付しても良い。ホスト名については、検出イベントに含めなくても良い。
【００５７】
次に、イベント集約部１１０は、ステップＳ５０６で、イベントモニタ１０８から送付されてきた検出イベントを、イベント記録部１２１に送付する。なお、イベント集約部１１０が図３のように階層構造に配備されている場合は、検出イベントをそれぞれの上位のイベント集約部１１０に送付し、最上位のイベント集約部１１０からイベント記録部１２１に送付するようにしても良い。
【００５８】
次に、イベント記録部１２１は、ステップＳ５０７で、検出済イベント一覧２３０（図５）に、イベントモニタ１０８またはイベント集約部１１０から送付されてきた検出イベントに含まれるイベントＩＤをイベントＩＤ２３１、検出イベントに含まれるホスト名をイベント発生ホスト名２３２、ＯＳなどから取得した現在時刻をイベント検出時刻２３３として、追加して記録する。なお、イベント発生ホスト名２３２には、イベントモニタ１０８から送られてきたパケットの送信元アドレスからホスト名を求め、それを記録しても良い。
【００５９】
以上のステップＳ５０１からステップＳ５０７までの一連の処理により、サーバ装置１０３、ストレージ装置１０４、ネットワーク装置１０５で発生した全ての監視対象イベントについて、どの装置で、どんなイベントが、いつ発生したのかという情報を、検出済イベント一覧２３０（図６）に記録することができる。
【００６０】
図１１は、作業検出部１２２と作業時間特定部１２３とによって実行される実時間算出処理の流れを示すフローチャートである。この処理は、検出済イベント一覧２３０（図６）に新たな検出イベントが追加して記録される度に実行される。
【００６１】
作業検出部１２２は、ステップＳ５２１で、検出済イベント一覧２３０に追加して記録された検出イベントに該当する行を取得する。次に、作業検出部１２２は、ステップＳ５２２で、作業一覧２４０（図７）の中から、作業状況２４５が「作業中」となっている行の作業ＩＤ２４１を取得し、それと一致する作業ＩＤ２５１を持つ全ての行を作業手順一覧２５０（図８）からリストアップする。次に、作業検出部１２２は、ステップＳ５２３では、ステップＳ５２２で取得した作業手順一覧２５０の行のうち、対象ホスト名２５６が、ステップＳ５２１で取得した行のイベント発生ホスト名２３２と一致する行をリストアップする。
【００６２】
次に、作業検出部１２２は、ステップＳ５２４では、ステップＳ５２３で取得した作業手順一覧２５０の行のうち、手動手順開始イベントＩＤ２５４が、ステップＳ５２１で取得した行のイベントＩＤ２３１に一致する行があるか調べる。もしあれば（ステップＳ５２４で「Ｙ」）ステップＳ５２５に処理を進め、そうでないときは（ステップＳ５２４で「Ｎ」）ステップＳ５２６へ処理を進める。
【００６３】
ステップＳ５２５では、作業検出部１２２は、手動手順結果一覧２７０（図９）の手順ＩＤ２７１が、ステップＳ５２４でイベントＩＤが一致した作業手順一覧２５０の行の手順ＩＤ２５２と一致する行の手動手順開始時刻２７２に、ステップＳ５２１で取得した行のイベント検出時刻２３３を記録し、処理を終了する。
【００６４】
ステップＳ５２６では、作業検出部１２２は、ステップＳ５２３で取得した作業手順一覧２５０の行のうち、手動手順終了イベントＩＤ２５５が、ステップＳ５２１で取得した行のイベントＩＤ２３１に一致する行があるか調べる。もしあれば（ステップＳ５２６で「Ｙｅｓ」）ステップＳ５２７に処理を進め、そうでないときは（ステップＳ５２６で「Ｎｏ」）処理を終了する。
【００６５】
ステップＳ５２７では、作業検出部１２２は、手動手順結果一覧２７０（図９）の手順ＩＤ２７１が、ステップＳ５２６で調べたイベントＩＤ２３１と一致した作業手順一覧２５０（図８）の行の手順ＩＤ２５２と一致する行の手動手順終了時刻２７３に、ステップＳ５２１で取得した行のイベント検出時刻２３３を記録する。
【００６６】
次に、ステップＳ５２８では、作業時間特定部１２３は、ステップＳ５２７で手動手順終了時刻２７３を記録した手動手順結果一覧２７０の行について、手動手順終了時刻２７３と手動手順開始時刻２７２との差を求め、求めた値を手動手順実時間２７４に記録する。同時に、作業手順一覧２５０の手順ＩＤ２５２が手順ＩＤ２７１と一致する行の手動手順予定時間２５７を取得し、手動手順実時間２７４と手動手順予定時間２５７との差を求めて、求めた値を手動手順遅延時間２７５に記録する。手動手順実時間２７４が手動手順予定時間２５７よりも小さいときは、負の時間を記録しないように「０：００」を手動手順遅延時間２７５に記録しても良い。手動手順実時間２７４と手動手順予定時間２５７との差を求める代わりに、手動手順実時間２７４を手動手順予定時間２５７で割った値を求め、その値を手動手順遅延率として記録するようにしても良い。手動手順遅延率が１未満となるときは、「１．０」を手動手順遅延率としても良い。
【００６７】
図１２は、ある作業を構成する複数の作業手順間の実行順序の依存関係を表す有向グラフの一例である。図１２に例示するように、作業手順間の実行順序の依存関係は、各作業手順を表すノード３０１とリンク３０２から成る有向グラフとして表現することができる。このような有向グラフは、後記する図１４の処理のステップＳ５５０にて、未完了の作業の遅延時間を推定するために、作業遅延推定部１２４によって、作業手順一覧２５０中の、手順ＩＤ２５２と事前手順ＩＤ２５３とをもとに作成される。
【００６８】
図１２は、図８に例示した作業ＩＤが「１」である６つの作業手順間に実行順序の依存関係が存在するものと仮定したときに作成される有向グラフの作成例である。この例は、作業手順「１０１」、「１０４」、「１０５」は、この順番に実行しなければならず、作業手順「１０６」は、作業手順「１０２」、「１０５」、「１０３」の全てが終了してからでないと実行してはいけないことを表している。
【００６９】
図１３は、ある一連の作業を構成する各作業手順を、その開始時刻を左端とし、終了時刻もしくは推定終了時刻を右端とする帯状のノードとして表現し、それらを時間軸上に配置した一例を示したものである。このようなノードの配置は、作業遅延推定部１２４が、図１４のステップＳ５４４、ステップＳ５４６、およびステップＳ５５０にて実行する。
【００７０】
ノードとして表現される各作業手順は、作業手順一覧２５０（図８）と手動手順結果一覧２７０（図９）から取得される。一つのノードは、手動手順と自動手順との組から成る。左側に手動手順が、右側に自動手順が来る。それぞれの幅は、手順にかかった、あるいはかかると推定される時間を表す。ただし、自動手順にかかる時間が「０：００」のときは、手動手順のみから成る。
【００７１】
図１３の例は、図８および図９に例示した作業ＩＤ２５１が「１」である各作業手順について、現在時刻４２０が２０１０／４／１  １０：２４：００のときのノード配置を示したものである。
【００７２】
現在時刻の時点で作業が終了している手動手順を含む作業手順については、手動手順開始時刻２７２の時刻を左端とし、手動手順終了時刻２７３に自動手順予定時間２５８を加えた時刻を右端としてノードを配置する。手順ＩＤ「１０１」に対応するノード４０１、手順ＩＤ「１０３」に対応するノード４０３がこれに当たる。手順ＩＤ「１０３」の作業手順を例として説明する。手順ＩＤ「１０３」の作業手順は、手動手順開始時刻２７２が「２０１０／４／１  １０：０１：０５」、手動手順終了時刻２７３が「２０１０／４／１  １０：０８：２０」、自動手順予定時間２５８が「２５：００」となっている。そこで、ノード４０３のように、左端が２０１０／４／１  １０：０１：０５、右端が２０１０／４／１  １０：３３：２０としてノードが配置されることになる。
【００７３】
現在時刻の時点で作業中である手動手順を含む作業手順については、現在時刻でその手動手順が終了したものとみなし、手動手順開始時刻２７２の時刻をノードの左端とし、現在時刻に自動手順予定時間２５８を加えた時刻をの右端としてノードを配置する。手順ＩＤ「１０４」に対応するノード４０４がこれに当たる。
【００７４】
現在時刻の時点で作業が未開始である手動手順を含む作業手順については、その時点までの手動手順の実際の遅延量から作業にかかるであろう時間（手動手順推定時間２７６）を推定し、図１２の依存関係に従ってノードを配置する。ノードの左端、つまり、手動手順開始時刻は図１２の依存関係から求める。また、求めた手動手順開始時刻に手動手順推定時間と２７６と自動手順予定時間２５８とを加えた時刻をノードの右端とする。手順ＩＤ「１０２」に対応するノード４０２、手順ＩＤ「１０５」に対応するノード４０５、手順ＩＤ「１０６」に対応するノード４０６がこれに当たる。
【００７５】
図１４は、作業遅延推定部１２４によって実行される作業遅延監視処理の流れを示すフローチャートである。この処理は、例えば１分おきや１０秒おきといったように定期的に実行される。
【００７６】
作業遅延推定部１２４は、ステップＳ５４１で、作業一覧２４０（図７）に含まれる作業のうち、作業状況２４５が「作業中」である作業の全てを、ステップＳ５４２以下で処理したか調べる。全て処理したときは（ステップＳ５４１で「Ｙｅｓ」）処理を終了し、そうでないときは（ステップＳ５４１で「Ｎｏ」）ステップＳ５４２へ処理を進める。
【００７７】
次に、作業遅延推定部１２４は、ステップＳ５４２では、作業一覧２４０（図７）に含まれる作業状況２４５が「作業中」である作業の中から未処理の作業（ステップＳ５４２で今まで取り出していないもの）を一つ取得する。
【００７８】
次に、作業遅延推定部１２４は、ステップＳ５４３では、ステップＳ５４２で取得した作業に対応する作業手順と、それらの作業手順に対応する手動手順結果とを、作業手順一覧２５０（図８）と手動手順結果一覧２７０（図９）とから取得する。
【００７９】
次に、作業遅延推定部１２４は、ステップＳ５４４では、ステップＳ５４３で取得した作業手順のうち、手動手順が終了したものをノードとして時間軸上に配置する。手動手順が終了したことは、手動手順終了時刻２７３が記録されていることで判断する。図９に例示した手動手順結果一覧２７０では、手順ＩＤ２７１が「１０１」、「１０３」の作業手順がこれに当たる。作業ＩＤ２５１が「１」である作業手順について、現在時刻が２０１０／４／１  １０：２４：００のときの例を示すと、本ステップでは、図１２のノード４０１、ノード４０３を配置することになる。
【００８０】
次に、作業遅延推定部１２４は、ステップＳ５４５では、ステップＳ５４３で取得した作業手順のうち、手動手順が作業中であるものについて、現在時刻で作業が終了したものと仮定してその手動手順の推定時間を求め、手動手順推定時間２７６に記録する。手動手順が作業中であることは、手動手順開始時刻２７２が記録されていて、かつ、手動手順終了時刻２７３が記録されていないことで判断する。図９に例示した手動手順結果一覧２７０では、手順ＩＤ２７１が「１０４」、「２０１」の作業手順がこれに当たる。手動手順の推定時間は、現在時刻と手動手順開始時刻２７２の差をとることで求める。
【００８１】
同時に、作業遅延推定部１２４は、作業手順一覧２５０から当該作業手順に対応する行を取得し、手動手順推定時間２７６と手動手順予定時間２５７の差を求めて、手動手順遅延時間２７５に記録する。手動手順推定時間２７６と手動手順予定時間２５７の差が負になるときは、負の時間を記録しないように「０：００」を手動手順遅延時間２７５に記録しても良い。手動手順推定時間２７６と手動手順予定時間２５７の差を求める代わりに、手動手順推定時間２７６を手動手順予定時間２５７で割ったものを求め、手動作業の遅延率を記録するようにしても良い。この遅延率が１未満となるときは、「１」を遅延率として記録しても良い。
【００８２】
次に、作業遅延推定部１２４は、ステップＳ５４６では、ステップＳ５４５で推定時間と遅延時間を求めた作業中の手動手順を含む作業手順を、時間軸上にノードとして配置する。図８、図９に例示した作業ＩＤ２５１が「１」である作業手順について、現在時刻が２０１０／４／１  １０：２４：００のときの例を示すと、本ステップでは、図１２のノード４０４を配置することになる。
【００８３】
次に、作業遅延推定部１２４は、ステップＳ５４７では、ステップＳ５４４とステップＳ５４５とで配置した全てのノード、つまり、終了したまたは作業中の全ての手動手順の遅延時間から遅延率を算出する。図８、図９に例示した作業ＩＤ２５１が「１」である作業手順について、現在時刻が２０１０／４／１  １０：２４：００のときの例を示すと、算出される遅延率は、（５：０５＋２：１５＋２：１３）÷（５:００＋５：００＋５：００）＝９：３３÷１５：００≒０．６３７となる。ここでは、総遅延時間を総予定時間で割って遅延率を算出したが、個別の手動手順の遅延率を求め、それらの相加平均、相乗平均、または調和平均を取るようしても良い。作業中の手動手順については遅延率の算出対象から除外してもよい。
【００８４】
次に、作業遅延推定部１２４は、ステップＳ５４８では、ステップＳ５４３で取得した作業手順のうち、未開始の手動手順を含む作業手順について、手動手順にかかるであろう作業時間を推定する。手動手順が未開始であることは、手動手順開始時刻２７２が記録されていないことで判断する。手動手順にかかるであろう推定作業時間は、手動手順予定時間２５７に、ステップＳ５４７で算出した遅延率を乗じて求められる推定の遅延時間を、元の手動手順予定時間２５７に加えることによって算出する。算出した推定作業時間は、手動手順推定時間２７６に記録する。図９に例示した手順ＩＤ２７１が「１０２」である手動手順について、現在時刻が２０１０／４／１  １０：２４：００のときの例を示すと、算出される推定作業時間は、１０：００＋１０：００×０．６３７＝１６：２２となる。
【００８５】
次に、作業遅延推定部１２４は、ステップＳ５４９では、ステップＳ５４８で作業時間を推定した未開始の手動手順を含む作業手順について、作業手順同士の実行順序の依存関係を取得する。これは、作業手順一覧２５０（図８）の中から、該当する手順ＩＤ２５２と事前手順ＩＤ２５３との組を取得することで行う。
【００８６】
次に、作業遅延推定部１２４は、ステップＳ５５０では、ステップＳ５４９で取得した依存関係と、ステップＳ５４８で記録した手動手順推定時間２７６をもとに、未開始の手動手順を含む作業手順に対するノードを時間軸上に配置する。図８、図９に例示した作業ＩＤ２５１が「１」である作業手順について、現在時刻が２０１０／４／１  １０：２４：００のときの例を示すと、本ステップでは、図１２のノード４０２、ノード４０５、ノード４０６を配置することになる。手順ＩＤ２５２が「１０２」の作業手順（ノード４０２に対応）は、事前手順ＩＤを持たないので、ノード４０２は現在時刻４２０を左端として配置する。手順ＩＤ２５２が「１０５」の作業手順（ノード４０５に対応）は、事前手順ＩＤ２５３が「１０４」であり、手順ＩＤ２５２が「１０４」の作業手順（ノード４０４に対応）に依存するので、ノード４０５はノード４０４のすぐ右に配置する。また、手順ＩＤ２５２が「１０６」の作業手順（ノード４０６に対応）は、手順ＩＤ２５２が「１０２」、「１０３」、「１０５」である３つの作業手順（それぞれノード４０２，４０３，４０５に対応）に依存する。そこで、ノード４０６は、この中で最も遅く終了する（ノードの右端が最も右にある）作業手順に対応するノード４０５のすぐ右に配置する。
【００８７】
次に、作業遅延推定部１２４は、ステップＳ５５１では、ステップＳ５４４、ステップＳ５４６、ステップＳ５５０で時間軸上に配置した各ノードに対応する作業手順の中に、ステップＳ５４２で取得した作業の終了予定時刻２４４を超過するものがあるか調べる。これは、図１３のように配置された各ノードの右端が、終了予定時刻２４４より右側にあるかを調べることになる。超過する作業手順があるときは（ステップＳ５５１で「Ｙｅｓ」）ステップＳ５５２に処理を進め、そうれなければ（ステップＳ５５１で「Ｎｏ」）ステップＳ５４１に処理を戻して前記の処理を繰り返す。
【００８８】
作業遅延推定部１２４は、ステップＳ５５２では、現在までの作業遅延の影響により、当該作業が終了予定時刻までに終わらない可能性が高い旨の警告表示を、管理サーバ１０１の出力装置２０４に出力する。このとき、作業内容２５９や推定される作業終了時刻などを一緒に出力しても良い。
【００８９】
以上説明したように、第１実施形態によれば、計算機システムの構成変更作業が遅延して、終了予定時刻までに終わらない可能性が高いことを予測し、システム管理者などに警告することができる。
【００９０】
＜第２実施形態＞
続いて、前記の第１実施形態を改良した別の実施の形態（以下、「第２実施形態」という。）について説明する。
【００９１】
図１５は、第２実施形態における作業担当一覧２８０のデータ構造およびデータの一例である。一例である。図１５に示すように、作業担当一覧２８０は表形式となっており、一つ以上の行から成る。全ての行は２つの列を含んでいる。ここで２つの列とは、作業担当名２８１と、平均作業速度２８２とである。作業担当一覧２８０の各行は、これ以外の不図示の列を含んでいても良いし、幾つかの列が存在しなくても良い。
【００９２】
図１６は、第２実施形態における代替担当特定部１２５によって実行される代替担当者特定処理の流れを示すフローチャートである。本処理は、図１４のステップＳ５５２とステップＳ５４１との間で実行される。
【００９３】
代替担当特定部１２５は、ステップＳ５６１で、作業担当一覧２８０に含まれる全ての作業担当名２８１について、ステップＳ５６２以下で処理したか調べる。全て処理したときは（ステップＳ５６１で「Ｙｅｓ」）図１４のステップＳ５４１へ処理を進め、そうでないときは（ステップＳ５６１で「Ｎｏ」）ステップＳ５６２に処理を進める。
【００９４】
代替担当特定部１２５は、ステップＳ５６２では、作業担当一覧２８０の中から、今まで取り出していない作業担当名２８１である代替担当候補を一つ取得する。
次に、代替担当特定部１２５は、ステップＳ５６３では、ステップＳ５４７で求めた手動手順の遅延率である現在の遅延率と、現作業担当の平均作業速度２８２と、ステップＳ５６２で取得した代替担当候補の平均作業速度２８２とから、代替担当候補の推定遅延率である新たな遅延率を次の計算式によって算出する。
新たな遅延率＝現在の遅延率×現作業担当の平均作業速度
÷代替担当候補の平均作業速度
【００９５】
次に、代替担当特定部１２５は、ステップＳ５６４では、ステップＳ５６３で求めた新たな遅延率を使って、前記のステップＳ５４８（図１４）と同じ処理をして、手動作業にかかるであろう時間を推定し、手動手順推定時間２７６（図９）に記録する。
【００９６】
次に、代替担当特定部１２５は、ステップＳ５６５およびステップＳ５６６では、それぞれ前記のステップＳ５４９およびステップＳ５５０と同じ処理をして、時間軸上に各ノードを配置する。
【００９７】
次に、代替担当特定部１２５は、ステップＳ５６７では、ステップＳ５４４、ステップＳ５４６、およびステップＳ５５６で時間軸上に配置した各ノードに対応する作業手順の中に、ステップＳ５４２で取得した作業の終了予定時刻２４４を超過するものがあるか調べる。これは、図１３のように配置された各ノードの右端が、終了予定時刻２４４より右側にあるかを調べることになる。超過する作業手順があるときは（ステップＳ５６７で「Ｙｅｓ」）他の代替担当候補を選択するためにステップＳ５６１に処理を戻し、そうれなければ（ステップＳ５６７で「Ｎｏ」）ステップＳ５６８に処理を進める。
【００９８】
代替担当特定部１２５は、ステップＳ５６８では、ステップＳ５６２で取得した代替担当候補の作業担当名２８１を、推奨される代替担当として管理サーバ１０１の出力装置２０４に表示する。
【００９９】
以上説明したように、第２実施形態によれば、計算機システムの構成変更作業が遅延して、終了予定時刻までに終わらない可能性が高いことが予測されるときに、どの作業担当に当該作業を代替させれば遅れを取り戻せる可能性が高いかを、システム管理者などに通知することができる。
【０１００】
＜第３実施形態＞
続いて、前記の第１実施形態または第２実施形態を改良した別の実施の形態（以下、「第３実施形態」という。）について説明する。
【０１０１】
図１７は、第３実施形態における作業遅延推定部１２４によって実行される遅延率補正処理の流れを示すフローチャートである。本処理は、図１４のステップＳ５４７とステップＳ５４８との間、または図１６のステップＳ５６３とステップＳ５６４との間で実行される。
【０１０２】
作業遅延推定部１２４は、ステップＳ５８１で、ステップＳ５４２（図１４）で取得した作業について、終了予定時刻２４４と開始予定時刻２４３との差である予定時間を求め、これをＡとする。また、ステップＳ５８２では、終了予定時刻２４４と現在時刻までの差である残り時間を求め、これをＢとする。
【０１０３】
次に、作業遅延推定部１２４は、ステップＳ５８３では、ＢをＡで割ったものを遅延比率として求める。例えば、図７の作業ＩＤ２４１が「１」の作業について、遅延比率を求めてみると次のようになる。
【０１０４】
現在時刻が２０１０／４／１  １０：１０：００のとき、遅延比率は５０÷４０＝１．２５となる。現在時刻が２０１０／４／１  １０：２０：００のとき、遅延比率は５０÷３０≒１．６７となる。現在時刻が２０１０／４／１  １０：３０：００のとき、遅延比率は５０÷２０＝２．５となる。現在時刻が２０１０／４／１  １０：４０：００のとき、遅延比率は５０÷１０＝５となる。現在時刻が２０１０／４／１  １０：４５：００のとき、遅延比率は５０÷５＝１０となる。
このように、現在時刻が終了予定時刻２４４に近づくにつれ、加速度的に遅延比率が大きくなる。
【０１０５】
次に、作業遅延推定部１２４は、ステップＳ５８４では、図１４のステップＳ５４７または図１６のステップＳ５６３で求めた遅延率を現在の遅延率として、新たな遅延率を次の計算式によって算出する。
新たな遅延率＝現在の遅延率×遅延比率
以後、ここで算出された新たな遅延率を使って、図１４のステップＳ５４８以降の処理または図１６のステップＳ５６４以降の処理を実行する。
【０１０６】
なお、ステップＳ５８２において、現在時刻から開始予定時刻２４３を引いて経過時間Ｃを求め、ステップＳ５８３にて、ＣをＢで割った結果を遅延比率としても良い。例えば、図７の作業ＩＤ２４１が「１」の作業について、この方法で遅延比率を求めてみると次のようになる。
【０１０７】
現在時刻が２０１０／４／１  １０：１０：００のとき、遅延比率は１０÷４０＝０．２５となる。現在時刻が２０１０／４／１  １０：２０：００のとき、遅延比率は２０÷３０≒０．６７となる。現在時刻が２０１０／４／１  １０：３０：００のとき、遅延比率は３０÷２０＝１．５となる。現在時刻が２０１０／４／１  １０：４０：００のとき、遅延比率は４０÷１０＝４となる。現在時刻が２０１０／４／１  １０：４５：００のとき、遅延比率は４５÷５＝９となる。
このように、現在時刻が開始予定時刻２４３と終了予定時刻２４４との中間より前であるときは、遅延時間を小さく見積もり、現在時刻が終了予定時刻２４４に近づくにつれて加速度的に遅延時間を大きく見積もることができる。
【０１０８】
以上説明したように、第３実施形態によれば、手動作業が遅延した場合において、作業開始から間もない場合には遅延比率を小さくして相対的に大きな遅延を許容し、作業終了に近いときには遅延比率を大きくして、より小さな遅延だけを許容することが可能となる。
【０１０９】
＜第４実施形態＞
最後に、前記の３つの実施の形態をさらに改良した別の実施の形態（以下、「第４実施形態」という。）について説明する。
【０１１０】
図１８は、本発明の第４実施形態における作業手順誤り特定部１２６によって実行される作業手順誤り警告処理の流れを示すフローチャートである。本処理は、図１１のステップＳ５２４とステップＳ５２５との間、および、ステップＳ５２６とステップＳ５２７の間で実行される。
【０１１１】
作業手順誤り特定部１２６は、ステップＳ５３０では、ステップＳ５２４で手動手順開始イベントＩＤが一致した作業手順について、その事前手順ＩＤ２５３（図８）で示される作業手順が全て終了済みであるか調べる。これは、事前手順ＩＤ２５３に記憶された手順ＩＤの全てについて、手動手順結果一覧２７０（図９）を調べ、手動手順終了時刻２７３が全て記憶されているか調べることによって行う。全て終了済みであれば（ステップＳ５３０で「Ｙｅｓ」）図１１のステップＳ５２５へ処理を進め、そうでなければ（ステップＳ５３０で「Ｎｏ」）ステップＳ５３１へ処理を進める。
【０１１２】
ステップＳ５３１では、作業手順誤り特定部１２６は、作業手順が誤っている旨を、警告として管理サーバ１０１の出力装置２０４に出力する。このとき、ステップＳ５２４で一致した作業手順の内容を、一部または全部出力しても良い。また、ステップＳ５２４で一致した作業手順と同じ作業ＩＤ２５１を有する作業手順を、作業手順一覧２５０（図８）から取得して、その一部または全部を出力しても良い。
【０１１３】
作業手順誤り特定部１２６は、ステップＳ５３２では、ステップＳ５２６で手動手順終了イベントＩＤが一致した手動手順について、手動手順開始時刻２７２（図９）が記録されているか調べる。記録されていれば（ステップＳ５３２で「Ｙｅｓ」）図１１のステップＳ５２７へ処理を進め、そうでなければ（ステップＳ５２で「Ｎｏ」）ステップＳ５３３へ処理を進める。ステップＳ５３３では、作業手順誤り特定部１２６は、ステップＳ５３１と同じ処理を実行する。
【０１１４】
ここでは、図８および図９に例示した作業ＩＤ２５１が「１」の作業について、現在時刻が２０１０／４／１  １０：２４：００の時点における、作業手順誤りが発生するケースを例示する。現在時刻が２０１０／４／１  １０：２４：００の時点における手動手順の実行結果は図９の通りである。この時点では、手順ＩＤ２７１が「１０４」と「１０５」との２つの作業手順はまだ終了していない。従って、これら２つの作業手順に依存する手順ＩＤ２５２が「１０５」と「１０６」の２つの作業手順は開始されてはならない。よって、この２つの作業手順に対する手動手順開始イベントＩＤ２５４である「３」または「９」のイベントＩＤがｈｏｓｔ１で検出された場合は、作業手順が誤っていると判定し警告を出力する。
【０１１５】
また、手順ＩＤ２７１が「１０２」と「１０５」と「１０６」との３つの作業手順はまだ開始されていない。従って、これら３つの作業手順が終了されることはないはずである。よって、これら３つの作業手順に対する手動手順終了イベントＩＤ２５５である「２２」、「４」または「１９」のイベントＩＤがｈｏｓｔ１で検出された場合は、作業手順が誤っていると判定し警告を出力する。
【０１１６】
以上説明したように、第４実施形態によれば、作業者が作業手順の実行順序を間違えた場合に、実行順序が誤っている旨を、システム管理者などに通知することができる。そのため、この種の誤りが生じたときにより素早く対処できるようになり、結果として作業遅延の拡大を防ぐことができる。
【０１１７】
以上にて、本発明を実施するための形態の説明を終えるが、本発明の実施の態様は、これに限られるものではなく、本発明の趣旨を逸脱しない範囲内で各種の変更が可能である。
【符号の説明】
【０１１８】
１０１  管理サーバ（作業管理装置）
１０３  サーバ装置
１０４  ストレージ装置
１０５  ネットワーク装置
１０８  イベントモニタ
１０９  イベント集約装置
１１０  イベント集約部
１２０  イベント検出指示部
１２１  イベント記録部
１２２  作業検出部（手動手順作業の検出手段）
１２３  作業時間特定部（作業時間特定手段）
１２４  作業遅延推定部（作業遅延推定手段）
１２５  代替担当特定部（代替担当特定手段）
１２６  作業手順誤り特定部（作業手順誤り特定手段）
２１０  管理対象一覧
２２０  監視対象イベント一覧
２３０  検出済イベント一覧
２４０  作業一覧
２５０  作業手順一覧
２７０  手動手順結果一覧
２８０  作業担当一覧
【図１】
0005389726.tif 000002
【図２】
0005389726.tif 000003
【図３】
0005389726.tif 000004
【図４】
0005389726.tif 000005
【図５】
0005389726.tif 000006
【図６】
0005389726.tif 000007
【図７】
0005389726.tif 000008
【図８】
0005389726.tif 000009
【図９】
0005389726.tif 000010
【図１０】
0005389726.tif 000011
【図１１】
0005389726.tif 000012
【図１２】
0005389726.tif 000013
【図１３】
0005389726.tif 000014
【図１４】
0005389726.tif 000015
【図１５】
0005389726.tif 000016
【図１６】
0005389726.tif 000017
【図１７】
0005389726.tif 000018
【図１８】
0005389726.tif 000019