(57)【特許請求の範囲】
【請求項１】
コンピュータに，
作業対象のシステムに対して行う操作の順序を示す第１の作業手順を取得し，
ハードウェアまたはソフトウェアの要素から構成されるシステムにおける要素間の関連と作業手順との対応が定義された情報に従って，前記作業対象システムにおける要素間の関連を示す情報から，前記第１の作業手順と同じ目的の第２の作業手順を自動生成し，
前記第１の作業手順と前記第２の作業手順との間の差分となる作業手順を抽出し，
前記対応を定義された情報を用いて，前記差分となる作業手順を生じさせる，前記作業対象のシステムにおける要素間の関連を特定する
処理を実行させるための関連推定プログラム。
【請求項２】
前記コンピュータに，さらに，
前記差分となる作業手順が前記第１の作業手順に含まれる作業手順である場合に，前記特定された要素間の関連を，前記要素間の関連を示す情報に追加し，
前記差分となる作業手順が前記第２の作業手順に含まれる作業手順である場合に，前記差分となる作業手順を生じさせた原因となる作業対象の要素が，前記差分となる作業手順で先に作業を行う対象の要素であれば，前記特定された要素間の関連を，前記要素間の関連を示す情報から削除する
処理を実行させるための請求項１に記載の関連推定プログラム。
【請求項３】
前記第１の作業手順を取得する処理は，作業手順が記載された文書のファイルから該作業手順を自動で抽出することで，前記第１の作業手順を取得する
ことを特徴とする請求項１または請求項２に記載の関連推定プログラム。
【請求項４】
作業対象のシステムに対して行う操作の順序を示す第１の作業手順を取得する手順取得部と，
ハードウェアまたはソフトウェアの要素から構成されるシステムにおける要素間の関連と作業手順との対応が定義された情報に従って，前記作業対象システムにおける要素間の関連を示す情報から，前記第１の作業手順と同じ目的の第２の作業手順を自動生成する手順生成部と，
前記第１の作業手順と前記第２の作業手順との間の差分となる作業手順を抽出する差分抽出部と，
前記対応が定義された情報を用いて，前記差分となる作業手順を生じさせる，前記作業対象のシステムにおける要素間の関連を特定する特定部とを備える
ことを特徴とする関連推定装置。
【請求項５】
コンピュータが，
作業対象のシステムに対して行う操作の順序を示す第１の作業手順を取得し，
ハードウェアまたはソフトウェアの要素から構成されるシステムにおける要素間の関連と作業手順との対応が定義された情報に従って，前記作業対象システムにおける要素間の関連を示す情報から，前記第１の作業手順と同じ目的の第２の作業手順を自動生成し，
前記第１の作業手順と前記第２の作業手順との間の差分となる作業手順を抽出し，
前記対応が定義された情報を用いて，前記差分となる作業手順を生じさせる，前記作業対象のシステムにおける要素間の関連を特定する過程を実行する
ことを特徴とする関連推定方法。
【請求項６】
前記コンピュータに，
前記第２の作業手順を自動生成する際に，
前記作業対象のシステムに対して行う作業として，作業要素および作業対象を含む作業の組を示す情報を取得し，
前記システムにおける要素間の関連を示す情報に基づいて，取得した前記作業の組から，該組の作業対象に関連する他の要素を作業対象とする作業の組を生成し，作業要素を階層的に分類し下位階層に操作を示す分類を含む情報に基づいて，取得した前記作業の組および生成した前記作業の組を前記操作を示す分類の作業要素に展開し，展開した操作を示す分類の作業要素および作業対象の組の列から前記第２の作業手順を生成する
処理を実行させるための請求項１に記載の関連推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ＩＴ（Information Technology）システムを構成する要素間の関連を推定する関連推定プログラム，関連推定装置および関連推定方法に関するものである。
【背景技術】
【０００２】
ＩＴシステムにおける運用作業の１つに，変更リリース作業がある。変更リリース作業は，運用中のシステムの部分的な変更を行う作業である。変更リリース作業としては，例えば，障害回復や機能追加等で機器やアプリケーションを変更する作業がある。
【０００３】
変更リリース作業では，リリース対象の機器やアプリケーションによって，作業手順が異なる。そのため，異なるリリース対象ごとに，停止・起動対象となる機器やアプリケーションと，その停止・起動順序を決める必要がある。
【０００４】
従来から，変更リリース作業における作業手順の見直しは，手作業で行われている。停止・起動対象となる機器やアプリケーションとその停止・起動順序は，システムの接続関係や依存関係などを考慮して，人手で作成され，確認が行われる。
【０００５】
なお，入力した２要素間のシステムスキーマ上でのつながりを探索して，ネットワークシステムの構成間の依存関係を取得する技術が知られている。システムスキーマは，システム構成要素と，各システム構成要素間の関係とを記述した情報モデルである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４１７５２８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のように，人手で作業手順の作成を行うと，その手順作成に時間がかかるという問題がある。また，人手による作業確認には，ミスが起きやすいという問題がある。このような問題から，作業手順をコンピュータで自動生成することが望まれている。
【０００８】
停止・起動対象となる機器やアプリケーションとその停止・起動順序は，作業対象システムにおける接続関係や依存関係などによって決まる。そのため，作業手順をコンピュータで自動生成する場合には，作業対象システムのシステム構成情報が必要となる。システム構成情報には，機器やアプリケーションなどのシステムを構成する各要素の情報と，接続関係，依存関係などの各要素間の関連情報とが含まれる。作業手順の自動生成では，作業対象システムのシステム構成情報から，作業手順を生成することになる。
【０００９】
これから新規に開発するシステムに作業手順の自動生成を適用する場合には，そのシステムの新規開発時に，作業手順の自動生成に必要な情報を持つシステム構成情報を作成すればよい。
【００１０】
すでに運用されている既存のシステムに作業手順の自動生成を導入する場合には，設計書やＣＭＤＢ（Configuration Management Database ）などから，システムを構成する各要素の情報については，容易に取得可能である。しかし，各要素間の関連情報については，情報がドキュメントに明確に記載されていなかったり，情報が複数のドキュメントや設定ファイルに分散されていたりするため，取得が困難である。すでに運用されている既存のシステムに作業手順の自動生成を導入するためには，作業対象システムにおける各要素間の関連情報を取得することが課題となる。
【００１１】
一側面では，本発明は，ＩＴシステムにおける構成要素間の関連を推定する技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
１態様では，開示するプログラムは，コンピュータを次のように機能させる。すなわち，前記プログラムは，前記プログラムがインストールされて実行されるコンピュータに，作業対象のシステムに対して行う操作の順序を示す第１の作業手順を取得し，ハードウェアまたはソフトウェアの要素から構成されるシステムにおける要素間の関連と作業手順との対応が定義された情報に従って，作業対象システムにおける要素間の関連を示す情報から，第１の作業手順と同じ目的の第２の作業手順を自動生成し，第１の作業手順と第２の作業手順との間の差分となる作業手順を抽出し，前記対応を定義された情報を用いて，差分となる作業手順を生じさせる，作業対象のシステムにおける要素間の関連を特定する処理を実行させる。
【発明の効果】
【００１３】
１態様では，ＩＴシステムにおける構成要素間の関連を推定することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】作業手順を生成する対象のＩＴシステムの例を説明する図である。
【図２】コンピュータで作業手順を自動生成する際に用いる運用手順生成ルールの例を示す図である。
【図３】作業手順の自動生成の例を説明する図である。
【図４】自動生成された作業手順の例を示す図である。
【図５】本実施の形態による手順生成処理フローチャートである。
【図６】本実施の形態による関連推定装置の構成例を示す図である。
【図７】本実施の形態による関連推定装置を実現するコンピュータのハードウェア構成例を示す図である。
【図８】本実施例による作業対象システムの構成例（１）を示す図である。
【図９】本実施例による既存手順書の例（１）を示す図である。
【図１０】本実施例による作業内容管理テーブルの例を示す図である。
【図１１】本実施例による既存手順データの例（１）を示す図である。
【図１２】本実施例による自動生成手順データの例（１）を示す図である。
【図１３】本実施例による既存手順と自動生成手順のフローをグラフで表した例（１）を示す図である。
【図１４】本実施例による差分抽出用中間データの例を示す図である。
【図１５】本実施例による結果テーブルの例（１）を示す図である。
【図１６】本実施例による差分となる作業手順の例（１）を示す図である。
【図１７】本実施例による結果テーブルの例（２）を示す図である。
【図１８】本実施例による結果テーブルの例（３）を示す図である。
【図１９】本実施例による作業対象システムの構成例（２）を示す図である。
【図２０】本実施例による既存手順書の例（２）を示す図である。
【図２１】本実施例による既存手順データの例（２）を示す図である。
【図２２】本実施例による自動生成手順データの例（２）を示す図である。
【図２３】本実施例による既存手順と自動生成手順のフローをグラフで表した例（２）を示す図である。
【図２４】本実施例による差分となる作業手順の例（２）を示す図である。
【図２５】本実施例による結果テーブルの例（４）を示す図である。
【図２６】本実施例による作業対象システムの構成例（３）を示す図である。
【図２７】本実施の形態の関連推定装置による関連推定処理フローチャートである。
【図２８】本実施の形態の特定部による関連特定処理フローチャートである。
【図２９】本実施の形態の更新部による結果判定処理フローチャートである。
【図３０】本実施の形態による関連推定装置の構成例を示す図である。
【図３１】作業手順の生成処理の一例における運用される作業の内容に関する階層構造を有する定義例を示す図である。
【図３２】作業手順の生成処理の一例における要素情報の例を示す図である。
【図３３】作業手順の生成処理の一例における関連情報の例を示す図である。
【図３４】作業手順の生成処理の一例における作業展開ルールの例を示す図である。
【図３５】作業手順の生成処理の一例における手順展開ルールの例を示す図である。
【図３６】作業手順の生成処理の一例における手順書き換えルールの例を示す図である。
【図３７】手順書き換えルールの“LayerUp”を説明するための図である。
【図３８】作業手順の生成処理の一具体例における作業対象システムの構成例および情報の例を示す図である。
【図３９】生成処理中に生成される木構造の例（１）を示す図である。
【図４０】生成処理中に生成される木構造の例（２）を示す図である。
【図４１】生成処理中に生成される木構造の例（３）を示す図である。
【図４２】生成処理中に生成される木構造の例（４）を示す図である。
【図４３】生成処理中に生成される木構造の例（５）を示す図である。
【図４４】生成処理中に生成される木構造の例（６）を示す図である。
【図４５】生成処理中に生成される木構造の例（７）を示す図である。
【図４６】作業手順の生成処理の一具体例において生成される作業手順の例を示す図である。
【図４７】作業手順の生成処理の一具体例における処理フローの例を示す図である。
【発明を実施するための形態】
【００１５】
以下，本実施の形態について，図を用いて説明する。
【００１６】
まず，ＩＴシステムに対する変更リリース作業などの運用作業における作業手順を，コンピュータで自動生成する技術として，提案する技術の一例を説明する。なお，作業手順は，目的とする作業内容を実現するために，作業対象のシステムに対して行う操作の順序を示す。作業内容は，例えば“ＡＰサーバの停止”，“ＷＥＢサーバの起動”など，実施する作業の内容を示す。
【００１７】
図１は，作業手順を生成する対象のＩＴシステムの例を説明する図である。
【００１８】
図１（Ａ）に示す作業対象システムは，作業手順を生成する対象のＩＴシステムの一例を示す。作業対象システムは，サーバなどのハードウェアの要素と，アプリケーションなどのソフトウェアの要素から構成される。図１（Ａ）に示す作業対象システムにおいて，四角はハードウェアの要素を表し，角丸四角はソフトウェアの要素を表す。なお，以下では，ＩＴシステムを，単にシステムとも呼ぶ。
【００１９】
図１（Ａ）に示す作業対象システムにおいて，“WEB Server”，“AP Server ”は，サーバである。図１（Ａ）に示すように，“WEB Server”と“AP Server ”とは，互いに接続されている。また，“WEB Server”は，外部の“Internet”に接続されている。
【００２０】
図１（Ａ）に示す作業対象システムにおいて，“AplA”，“AplB”，“AplC”は，アプリケーションである。図１（Ａ）に示すように，“AplA”，“AplC”は，“WEB Server”上で動作している。また，“AplB”は，“AP Server ”上で動作している。図１（Ａ）において，太線の矢印は，アプリケーション間のデータアクセス関係を示す。図１（Ａ）に示す作業対象システムでは，“AplC”から“AplA”へのデータアクセスがあり，“AplA”から“AplB”へのデータアクセスがある。
【００２１】
図１（Ｂ），（Ｃ）は，図１（Ａ）に示す作業対象システムのシステム構成情報の一例を示す。システム構成情報は，システムを構成する各要素の情報と，各要素間の関連を示す情報とを有する。図１（Ｂ）に示す要素情報１２０は，システム構成情報におけるシステムを構成する各要素の情報の一例を示す。図１（Ｃ）に示す関連情報１２１は，各要素間の関連を示す情報の一例を示す。
【００２２】
図１（Ｂ）に示す要素情報１２０は，要素，種別，名称，表記の情報を持つ。要素は，該当レコードの要素がハードウェアの要素であるかソフトウェアの要素であるかを示す。種別は，サーバ，ロードバランサ（LB：Load Balancer ），アプリケーションなど，要素の種類を分類する情報である。名称は，該当レコードの要素に与えられた名称を示す。表記は，該当レコードの要素のデータ上での表記を示す。本実施の形態のデータでは，システムを構成する各要素が，タグを用いたマークアップ形式で表記される。図１（Ｂ）に示す要素情報１２０において，<Server></>タグはサーバの要素を表し，<Application> </> タグはアプリケーションの要素を表す。
【００２３】
図１（Ｃ）に示す関連情報１２１は，種別，関連元，関連先の情報を持つ。種別は，要素間の関連の種類を分類する情報である。関連元，関連先は，関連する要素を示す。図１（Ｃ）に示す関連情報１２１において，例えば，関連の種別が“データアクセス”である場合，関連元はデータアクセスを行うアプリケーションを示し，関連先は関連元のアプリケーションからのデータアクセスを受けるアプリケーションを示す。また，例えば，関連の種別が“サーバ・アプリ関連”である場合，関連元のサーバ上で関連先のアプリケーションが動作することを示す。また，例えば，関連の種別が“サーバ関連”である場合，関連元のサーバと関連先のサーバとの接続関係を示す。
【００２４】
図２は，コンピュータで作業手順を自動生成する際に用いる運用手順生成ルールの例を示す図である。
【００２５】
コンピュータで作業手順を自動生成する際には，作業対象システムのシステム構成情報から作業手順を導き出すためのルールが必要となる。図２に示す運用手順生成ルール１５０は，システムにおける要素間の関連と作業手順との対応が定義されたルール情報の一例を示す。
【００２６】
図２に示す運用手順生成ルール１５０は，ルールＩＤ，作業内容，要素間の関連情報，作業すべき操作の情報を持つ。ルールＩＤは，定義されたルールを識別する識別情報である。図２に示す運用手順生成ルール１５０では，１つのレコードが１つのルールを示しており，レコードごとにルールＩＤが割り当てられている。
【００２７】
作業内容は，該当レコードのルールにおいて，例えば“ＡＰサーバの停止”，“ＷＥＢサーバの起動”など，目的とする作業の内容を示す情報である。作業内容は，さらに作業対象，作業項目の情報を持つ。作業対象は，実施する作業の対象となる要素を示す。作業項目は，例えば“起動”，“停止”など，実施する作業を示す。
【００２８】
要素間の関連情報は，該当レコードのルールにおいて，要素間の関連についての条件を示す情報である。要素間の関連情報は，さらに種別，関連の情報を持つ。種別は，図１（Ｃ）に示す関連情報１２１における種別と同様に，要素間の関連の種類を分類する情報である。関連は，要素間の関連を示す。図２に示す運用手順生成ルール１５０において，例えばルールＩＤ“Ｒ１”における関連“<Application>Aplα→Apl β</> ”は，アプリケーション“Apl α”が関連元であり，アプリケーション“Apl β”が関連先であることを示している。
【００２９】
作業すべき操作は，該当レコードのルールにおいて，作業すべき要素を操作する順序を示す情報である。作業すべき操作は，さらに先，後の情報を持つ。先，後の情報は，先に示された要素に対する作業を行ってから，後に示された要素に対する作業を行うことを示す。
【００３０】
例えば，図２に示す運用手順生成ルール１５０において，ルールＩＤ“Ｒ１”のルールでは，
・作業内容が“Apl β”の“停止”である場合に，
・“Apl α”から“Apl β”へのデータアクセスがあれば，
・“Apl α”を停止してから“Apl β”を停止する
ことが定義されている。
【００３１】
また，例えば，図２に示す運用手順生成ルール１５０において，ルールＩＤ“Ｒ２”のルールでは，
・作業内容が“Serverα”の“停止”である場合に，
・“Serverα”上で“Aplβ”が動作していれば，
・“Apl β”を停止してから“Serverα”を停止する
ことが定義されている。
【００３２】
また，例えば，図２に示す運用手順生成ルール１５０において，ルールＩＤ“Ｒ３”のルールでは，
・作業内容が“Serverα”上の“Aplβ”の“停止”である場合に，
・“LB”から“Serverα”に対するサーバ負荷分散サービスがあれば，
・“ Server α”上で動作する“Apl β”へのサーバ負荷分散サービスを閉塞して
から“Apl β”を停止する
ことが定義されている。
【００３３】
なお，<LB> </>タグはロードバランサの要素を表す。また，<SLBService></> タグは，サーバ負荷分散サービスを表し，</><SLBService>Aplβ<Server> Server α</></>は，“ Server α”上で動作する“Apl β”へのサーバ負荷分散サービスを表す。また，<Application> Apl β<Server> Server α</></>は，“ Server α”上で動作する“Apl β”を表す。
【００３４】
図３は，作業手順の自動生成の例を説明する図である。
【００３５】
ここでは，コンピュータ上で動作する自動生成ツールが，図２に示す運用手順生成ルール１５０を用いて，図１（Ａ）に示す作業対象システムにおけるアプリケーション“AplB”を停止する作業を目的とした作業手順を自動生成する例を説明する。図３に示す手順生成データ１４０は，作業手順の自動生成に用いられるワークデータである。手順生成データ１４０において，チェックフラグは，該当レコードの作業について，処理済みか未処理かを示すフラグである。“１”が処理済みを示し，“０”が未処理であることを示す。
【００３６】
図３（Ａ）に示すように，手順生成データ１４０には，まず目的とする作業内容として，作業対象にアプリケーション“AplB”が，作業項目に“停止”が記録される。チェックフラグは，未処理を示す“０”である。
【００３７】
作業対象“AplB”のレコードのチェックフラグが“０”であるので，自動生成ツールは，作業対象“AplB”に対する処理を行う。図１（Ｃ）に示す関連情報１２１から，関連元のアプリケーション“AplA”から関連先のアプリケーション“AplB”へのデータアクセスの関連が得られる。得られた関連は，図２に示す運用手順生成ルール１５０のルールＩＤ“Ｒ１”のルールにおける要素間の関連情報のパターンにマッチする。ルールＩＤ“Ｒ１”のルールの作業すべき操作から，アプリケーション“AplB”の“停止”より先に，アプリケーション“AplA”の“停止”を行う必要があることが分かる。
【００３８】
図３（Ｂ）に示すように，手順生成データ１４０に，作業対象“AplA”，作業項目“停止”が記録されたレコードが追加される。このレコードのチェックフラグは，未処理を示す“０”である。なお，処理が終わった作業対象“AplB”のレコードのチェックフラグは，処理済を示す“１”に更新される。
【００３９】
作業対象“AplA”のレコードのチェックフラグが“０”であるので，自動生成ツールは，作業対象“AplA”に対する処理を行う。図１（Ｃ）に示す関連情報１２１から，関連元のアプリケーション“AplC”から関連先のアプリケーション“AplA”へのデータアクセスの関連が得られる。得られた関連は，図２に示す運用手順生成ルール１５０のルールＩＤ“Ｒ１”のルールにおける要素間の関連情報のパターンにマッチする。ルールＩＤ“Ｒ１”のルールの作業すべき操作から，アプリケーション“AplA”の“停止”より先に，アプリケーション“AplC”の“停止”を行う必要があることが分かる。
【００４０】
図３（Ｃ）に示すように，手順生成データ１４０に，作業対象“AplC”，作業項目“停止”が記録されたレコードが追加される。このレコードのチェックフラグは，未処理を示す“０”である。なお，処理が終わった作業対象“AplA”のレコードのチェックフラグは，処理済を示す“１”に更新される。
【００４１】
作業対象“AplC”のレコードのチェックフラグが“０”であるので，自動生成ツールは，作業対象“AplC”に対する処理を行う。しかし，図１（Ｃ）に示す関連情報１２１から得られる作業対象“AplC”を含む関連で，図２に示す運用手順生成ルール１５０のルールにマッチするものはない。図３（Ｄ）に示すように，手順生成データ１４０において，作業対象“AplC”のレコードのチェックフラグが，処理済を示す“１”に更新される。図３（Ｄ）に示す手順生成データ１４０のレコードを，下から順番に並べたものが，アプリケーション“AplB”を停止する作業を行う際の，一連の作業手順となる。
【００４２】
図４は，自動生成された作業手順の例を示す図である。
【００４３】
図４（Ａ）は，図３（Ｄ）に示す手順生成データ１４０の最終結果から得られる，自動生成された一連の作業手順のフローを，ノードとアークとを用いたグラフで表した例を示す。ノードは，要素に対する作業を表し，アークは作業を行う順序を表す。図４（Ａ）に示すように，図１（Ａ）に示す作業対象システムにおいて“AplB”の停止を目的として作業を行う場合の作業手順は，
“AplC”の停止  →  “AplA”の停止  →  “AplB”の停止
となる。
【００４４】
図４（Ｂ）は，図３（Ｄ）に示す手順生成データ１４０の最終結果から得られる，自動生成された一連の作業手順が記載された手順書の一例を示す。自動生成ツールは，例えば図３（Ｄ）に示す手順生成データ１４０の最終結果から，図４（Ｂ）に示す手順書を生成する。自動生成ツールは，生成した手順書１４１を，例えばドキュメントファイルとして保存する。ユーザは，自動生成された手順書１４１を，ディスプレイなどの表示装置に表示したり，紙にプリントアウトしたりして見ることができる。
【００４５】
図５は，本実施の形態による手順生成処理フローチャートである。
【００４６】
自動生成ツールは，目的とする作業を示す作業内容を取得する（ステップＳ１００）。自動生成ツールは，手順生成データ１４０の最初のレコードに取得した作業内容を記録する（ステップＳ１０１）。このとき，チェックフラグは，“０”に設定される。
【００４７】
自動生成ツールは，手順生成データ１４０において，チェックフラグが“０”のレコードの作業対象を取得する（ステップＳ１０２）。自動生成ツールは，取得した作業対象を含む関連のデータが，作業対象システムのシステム構成情報における関連情報１２１にあるかを判定する（ステップ１０３）。
【００４８】
取得した作業対象を含む関連のデータがあれば（ステップＳ１０３のＹＥＳ），自動生成ツールは，運用手順生成ルール１５０に，取得した作業対象を含む関連のデータに対応するルールがあるかを判定する（ステップＳ１０４）。
【００４９】
取得した作業対象を含む関連のデータに対応するルールがあれば（ステップＳ１０４のＹＥＳ），自動生成ツールは，対応するルールの作業すべき操作で先に操作する要素を作業対象とするレコードを，手順生成データ１４０に追加する（ステップＳ１０５）。このとき，追加したレコードのチェックフラグは，“０”に設定される。なお，取得した作業対象を含む関連のデータがなければ（ステップＳ１０３のＮＯ），または取得した作業対象を含む関連のデータに対応するルールがなければ（ステップＳ１０４のＮＯ），自動生成ツールは，手順生成データ１４０へのレコードの追加を行わない。
【００５０】
自動生成ツールは，手順生成データ１４０における該当作業対象のレコードのチェックフラグを“１”に更新する（ステップＳ１０６）。自動生成ツールは，手順生成データ１４０に，チェックフラグが“０”のレコードがあるかを判定する（ステップＳ１０７）。チェックフラグが“０”のレコードがあれば（ステップＳ１０７のＹＥＳ），自動生成ツールは，ステップＳ１０２の処理に戻って次の作業対象の処理に移る。チェックフラグが“０”のレコードがなければ（ステップＳ１０７のＮＯ），自動生成ツールは，処理を終了する。最終的な手順生成データ１４０が，目的とする作業を実行するための作業手順のデータとなる。
【００５１】
ここまで説明したように，システムを構成する要素間の関連と該要素間の作業手順との対応を定義する運用手順生成ルール１５０を用いて，作業対象システムを構成する要素間の関連を示す情報から，目的とする作業についての作業手順をコンピュータで自動生成することが可能となる。
【００５２】
すでに運用されている既存システムの場合，作業対象システムを構成する各要素の情報については，例えば，ＣＭＤＢやシステムの設計書などから，容易に取得可能である。しかし，各要素間の関連を示す情報については，情報が明確に記載されたドキュメントがなかったり，情報が複数のドキュメントや設定ファイルに分散されていたりするため，取得が困難である。
【００５３】
特に，アプリケーションについては，サーバ等の機器と比べて仕様変更などの更新の頻度が高く，機器のように要素間の関連を統合して管理することは少ない。そのため，作業対象システムについてのシステム構成情報を収集しても，そのシステム構成情報から，アプリケーション間の依存関係や，アプリケーション間のデータフロー関係，アプリケーション間のデータアクセス関係などの関連情報が欠けてしまうケースも多くなる。なお，アプリケーション間の依存関係は，あるアプリケーションが他のアプリケーションの動作に応じて動作する関連を示す。また，アプリケーション間のデータフロー関係は，あるアプリケーションのデータが他のアプリケーションの入力となるような関連を示す。また，アプリケーション間のデータアクセス関係は，あるアプリケーションが他の動作中のアプリケーションのデータにアクセスする関連を示す。
【００５４】
このような状況を鑑みて，以下では，作業対象システムを構成する要素間の関連をコンピュータを用いて推定する技術について，主にアプリケーション間の関連を推定する例を用いて説明する。
【００５５】
図６は，本実施の形態による関連推定装置の構成例を示す図である。
【００５６】
図６に示す関連推定装置１０は，作業対象システムを構成する要素間の関連の推定を行う。関連推定装置１０は，構成情報取得部１１，構成情報記憶部１２，手順取得部１３，手順生成部１４，ルール記憶部１５，差分抽出部１６，特定部１７，更新部１８，出力部１９を備える。
【００５７】
構成情報取得部１１は，作業対象システムのシステム構成情報を取得する。図５に示す例では，構成情報取得部１１は，ＣＭＤＢ２０からシステム構成情報を取得している。構成情報取得部１１は，取得したシステム構成情報を，構成情報記憶部１２に記憶する。
【００５８】
構成情報記憶部１２は，作業対象システムについてのシステム構成情報を記憶する記憶部である。構成情報記憶部１２に記憶されるシステム構成情報には，例えば図１（Ｂ）に示すような要素情報１２０や，図１（Ｃ）に示すような関連情報１２１が含まれる。
【００５９】
ＣＭＤＢ２０は，システムを構成する要素の情報を統合して管理するデータベースである。ここでは，ＣＭＤＢ２０から取得されるシステム構成情報には，関連情報１２１について，すなわち作業対象システムを構成する要素間の関連を示す情報について，一部情報が欠けているものとする。構成情報取得部１１がＣＭＤＢ２０から取得した段階のシステム構成情報は，作業対象システムに対する作業手順の自動生成に十分なシステム構成情報ではない。なお，構成情報取得部１１は，例えば作業対象システムの設計書のファイルなど，ＣＭＤＢ２０以外からシステム構成情報を取得してもよい。
【００６０】
手順取得部１３は，第１の作業手順を取得する。本実施の形態において，第１の作業手順は，例えば，目的とする作業内容について，人が作業対象システムの構成などを考慮して作成した作業手順である。本実施の形態の例では，手順取得部１３は，手順情報記憶部３０から，過去に人手で作成されて，運用実績がある作業手順が記載された文書のファイルを取得し，その文書に記載された作業手順を自動抽出することで，第１の作業手順を取得するものとする。
【００６１】
なお，第１の作業手順が，必ずしも過去に作成された作業手順である必要はない。例えば，作業対象システムの構成を考慮しながらユーザがその場で関連推定装置１０に入力した作業手順を取得するなど，第１の作業手順の取得方法については，任意の設計が可能である。
【００６２】
手順生成部１４は，ハードウェアまたはソフトウェアの要素から構成されるシステムにおける要素間の関連と作業手順との対応が定義された情報に従って，作業対象システムにおける要素間の関連を示す情報から，第１の作業手順と同じ目的の第２の作業手順を自動生成する。
【００６３】
本実施の形態の例において，手順生成部１４は，上述の自動生成ツールによって実現される手段である。また，ハードウェアまたはソフトウェアの要素から構成されるシステムにおける要素間の関連と作業手順との対応が定義された情報は，図２に示すような，運用手順生成ルール１５０である。ルール記憶部１５は，運用手順生成ルール１５０を記憶する記憶部である。また，作業対象システムにおける要素間の関連を示す情報は，図１（Ｃ）に示すような，作業対象システムのシステム構成情報に含まれる関連情報１２１である。すなわち，手順生成部１４は，ルール記憶部１５に記憶された運用手順生成ルール１５０に従って，作業対象システムのシステム構成情報に含まれる関連情報１２１から，第２の作業手順を自動生成する。
【００６４】
差分抽出部１６は，手順取得部１３により取得された第１の作業手順と，手順生成部１４により生成された第２の作業手順との間の差分となる作業手順を抽出する。
【００６５】
特定部１７は，手順生成部１４が第２の作業手順を自動生成する際に使用した運用手順生成ルール１５０を用いて，差分抽出部１６で抽出された差分となる作業手順を生じさせる，作業対象のシステムにおける要素間の関連を特定する。上述したように，作業手順の自動生成では，運用手順生成ルール１５０を用いて，要素間の関連から，該要素間における作業手順を導き出している。これに対して，特定部１７では，作業手順の自動生成の場合と逆方向に運用手順生成ルール１５０を用いて，要素間における作業手順から，該要素間の関連を導き出す。
【００６６】
更新部１８は，特定部１７による要素間の関連を特定した結果に基づいて，作業対象システムにおける要素間の関連を示す情報を更新する。例えば，更新部１８は，差分の作業手順が第１の作業手順に含まれる作業手順である場合に，その差分の作業手順から特定された要素間の関連を，構成情報記憶部１２に記憶されたシステム構成情報における関連情報１２１に追加する。
【００６７】
出力部１９は，構成情報記憶部１２に記憶された，推定された要素間の関連を示す情報が追加されたシステム構成情報を出力する。
【００６８】
ＣＭＤＢ２０から取得された当初の，構成情報記憶部１２に記憶されたシステム構成情報では，要素間の関連を示す情報が一部欠けている。この状態で，第１の作業手順と第２の作業手順との間の差分を取ると，得られる差分となる作業手順は，第１の作業手順に含まれ，第２の作業手順にない作業手順となる。このとき，第１の作業手順が正確な作業手順であると考えると，差分となる作業手順から特定される要素間の関連は，作業対象システムに存在しながら，構成情報記憶部１２のシステム構成情報では情報が欠けている要素間の関連となる。このように，運用手順生成ルール１５０を用いて，第１の作業手順と第２の作業手順との間の差分となる作業手順が生じる要素間の関連を特定することで，システム構成情報には記録がないが，実際の作業対象システムには存在する要素間の関連を推定することができる。
【００６９】
また，特定された要素間の関連を，構成情報記憶部１２に記憶されたシステム構成情報における要素間の関連を示す情報に追加することで，より正確なシステム構成情報を容易に得ることができる。なお，作業対象システムの規模にもよるが，１つの目的とする作業内容の作業に対する１回の関連推定処理では，システム構成情報に不足する要素間の関連をすべて推定することは難しい。目的とする作業内容が異なる複数の作業に対する関連推定処理を繰り返し行うことで，さらに正確なシステム構成情報を得ることができる。これにより，すでに運用されている既存のシステムにおいて，作業手順の自動生成が容易に実施可能となる。
【００７０】
ここまでは，第１の作業手順が正確な作業手順であることを原則としている。しかし，人手で作成された作業手順には，不足や誤りがない作業手順であっても，冗長な手順や曖昧な手順が含まれている可能性がある。過去に運用実績がある作業手順に冗長な作業手順が含まれていても，不足や誤りがない作業手順であれば問題が起こらないため，冗長な作業手順がそのまま実行されているケースもある。また，作業手順の文書に曖昧な記述や冗長な記述があっても，作業を行うユーザ間での暗黙の了解で，曖昧性や冗長性をなくした作業が行われるケースもある。
【００７１】
このような状況下で取得される第１の作業手順を用いて，本実施の形態による要素間の関連の推定を行うと，実際には作業対象システムに存在しない要素間の関連を，システム構成情報に追加してしまう可能性がある。このような問題を解消するために，本実施の形態では，目的とする作業内容が異なる複数の作業に対する関連推定処理を繰り返し行う過程で，冗長な作業手順から推定されて追加されたと判断される要素間の関連を，システム構成情報から削除する。
【００７２】
更新部１８は，差分となる作業手順が，第１の作業手順と第２の作業手順とのどちらに含まれる作業手順であるかに応じて，特定部１７で特定された要素間の関連を，システム構成情報に追加するか，システム構成情報から削除するかを判断する。
【００７３】
例えば，差分の作業手順が第１の作業手順に含まれる作業手順である場合，その差分の作業手順から特定される要素間の関連は，作業対象システムに存在する要素間の関連であるのに，構成情報記憶部１２のシステム構成情報で欠けてしまっている可能性がある。このとき，更新部１８は，差分の作業手順から特定される要素間の関連を，構成情報記憶部１２に記憶されたシステム構成情報に追加する。
【００７４】
また，例えば，差分の作業手順が第２の作業手順に含まれる作業手順である場合，その差分の作業手順から特定される要素間の関連は，構成情報記憶部１２のシステム構成情報には記録があるが，実際の作業対象システムに存在しない要素間の関連である可能性がある。このとき，更新部１８は，差分の作業手順を生じさせた原因となる作業対象の要素が，その差分の作業手順において先に作業を行う対象の要素であれば，その差分の作業手順から特定される要素間の関連を，構成情報記憶部１２に記憶されたシステム構成情報から削除する。
【００７５】
この場合，差分の作業手順を生じさせた原因となる作業対象の要素は，第２の作業手順で作業対象とされており，第１の作業手順で作業対象とされていない要素である。第１の作業手順が正しい作業手順であるとすると，第１の作業手順には，目的とする要素への作業を実行するまでの過程で必要となる要素への作業が必ず含まれているはずである。このとき，第１の作業手順に含まれない要素を先に作業を行う作業対象とした作業手順が，第２の作業手順にあれば，その作業手順が生じるもととなった要素間の関連は，実際の作業対象システムに存在しない要素間の関連となる。
【００７６】
これにより，冗長な第１の作業手順によって作業対象システムのシステム構成情報に追加された，誤った要素間の関連を，適切に削除することができる。
【００７７】
図７は，本実施の形態による関連推定装置を実現するコンピュータのハードウェア構成例を示す図である。
【００７８】
図６に示す本実施の形態の関連推定装置１０を実現するコンピュータ１は，例えば，ＣＰＵ（Central Processing Unit ）２，主記憶となるメモリ３，記憶装置４，通信装置５，媒体読取・書込装置６，入力装置７，出力装置８等を備える。記憶装置４は，例えばＨＤＤ（Hard Disk Drive ）等の外部記憶装置や，補助記憶装置などである。媒体読取・書込装置６は，例えばＣＤ−Ｒ（Compact Disc Recordable ）ドライブやＤＶＤ−Ｒ（Digital Versatile Disc Recordable ）ドライブなどである。入力装置７は，例えばキーボード・マウスなどである。出力装置８は，例えばディスプレイ等の表示装置などである。
【００７９】
図６に示す関連推定装置１０および関連推定装置１０が備える各機能部は，コンピュータ１が備えるＣＰＵ２，メモリ３等のハードウェアと，ソフトウェアプログラムとによって実現することが可能である。コンピュータ１が実行可能なプログラムは，記憶装置４に記憶され，その実行時にメモリ３に読み出され，ＣＰＵ２により実行される。
【００８０】
コンピュータ１は，可搬型記録媒体から直接プログラムを読み取り，そのプログラムに従った処理を実行することもできる。また，コンピュータ１は，サーバコンピュータからプログラムが転送されるごとに，逐次，受け取ったプログラムに従った処理を実行することもできる。さらに，このプログラムは，コンピュータ１で読み取り可能な記録媒体に記録しておくことができる。
【００８１】
以下，本実施の形態による作業対象システムを構成する要素間の関連の推定について，より具体的な実施例を用いて，説明を行う。
【００８２】
構成情報取得部１１は，作業対象システムのシステム構成情報をＣＭＤＢ２０から取得する。取得されたシステム構成情報は，構成情報記憶部１２に記憶される。
【００８３】
図８は，本実施例による作業対象システムの構成例（１）を示す図である。
【００８４】
図８に示す作業対象システムの構成例は，構成情報取得部１１が取得したシステム構成情報に基づいた作業対象システムの構成を示す。図８に示す作業対象システムの構成例では，システム構成情報に記録がある要素間の関連のみが記載されており，実際の作業対象システムに存在してもシステム構成情報に記録がない要素間の関連については，記載されていない。
【００８５】
図８に示すように，本実施例の作業対象システムは，ハードウェア要素としてサーバ“WEB Server”，“AP Server1”，“AP Server2”と，ロードバランサ“LB”とを備える。また，本実施例の作業対象システムは，ソフトウェア要素として，アプリケーション“AplX”，“AplY”，“AplZ”を備える。
【００８６】
図８に示す作業対象システムにおいて，矢印は，ハードウェア要素間の関連を示している。図８に示すように，作業対象システムでは，“WEB Server”から発行される要求が“LB”のサーバ負荷分散サービスによって，“AP Server1”と“AP Server2”とに負荷分散されるという要素間の関連がある。また，作業対象システムでは，サーバ“WEB Server”上ではアプリケーション“AplY”と“AplZ”とが動作し，サーバ“AP Server1”とサーバ“AP Server2”上では，それぞれアプリケーション“AplX”が動作するという関連がある。このような作業対象システムを構成する要素間の関連は，構成情報記憶部１２に記憶された作業対象システムのシステム構成情報に記録されている。
【００８７】
図８に示す作業対象システムの構成例では，アプリケーションの要素間の関連については記載されていない。すなわち，構成情報記憶部１２に記憶された，図８に示す作業対象システムのシステム構成情報には，アプリケーションの要素間の関連についての情報の記録が欠けている。以下では，本実施の形態による関連推定装置１０によって，システム構成情報で欠けているアプリケーションの要素間の関連を推定する例を説明する。
【００８８】
手順情報記憶部３０に記憶されている複数の文書ファイルには，それぞれ目的とする作業内容が異なる，過去に運用実績がある作業手順が記載されている。以下では，過去に人手で作成され，運用実績がある作業手順が記載された文書を，既存手順書と呼ぶものとする。関連推定装置１０は，指定された順に既存手順書のファイルを１つずつ読み出し，本実施の形態による要素間の関連推定処理を行うものとする。
【００８９】
図９は，本実施例による既存手順書の例（１）を示す図である。
【００９０】
関連推定装置１０において，手順取得部１３は，最初に，手順情報記憶部３０から図９に示す既存手順書１３０ａのファイルを読み出す。手順取得部１３は，取得した既存手順書１３０ａに，手順書ＩＤ“００１”を付与する。手順書ＩＤは，既存手順書を一意に識別する識別情報である。本実施例では，既存手順書ごとに要素間の関連推定処理を行うので，既存手順書ごとに手順書ＩＤを発行して，要素間の関連推定処理を管理する。
【００９１】
図９に示す既存手順書１３０ａでは，ヘッダ部分に目的とする作業内容が記載されている。また，図９に示す既存手順書１３０ａでは，作業手順が，順序を示す番号とその順序で行う作業とが列挙される形で記載されている。
【００９２】
手順取得部１３は，既存手順書１３０ａから，目的とする作業内容と，その作業手順とを取得する。本実施例では，手順取得部１３は，既存手順書のテキストを解析して，目的とする作業内容や作業手順を抽出する。既存手順書のテキストの解析では，周知のテキスト処理技術を用いるものとする。例えば，手順取得部１３は，周知の構文解析の技術によって，「○○を××する」というテキストから，“○○”という作業対象と，“××”という作業項目とを取得することができる。
【００９３】
また，既存手順書では，例えば同じ内容の作業項目が，様々な言葉で表現されるケースもある。例えば，同じ“停止”の意味を表す言葉でも，“シャットダウン”，“停める”，“止める”など様々な言葉の表現がある。手順取得部１３は，例えば，
“シャットダウン”  →  “停止”
“停める”          →  “停止”
“止める”          →  “停止”
“立ち上げる”      →  “起動”
“ブートする”      →  “起動”
・・・・・
というように，言葉の表記の対応が記録された辞書を用いて，同じ内容の作業項目の表記を統一する。
【００９４】
まず，手順取得部１３は，既存手順書１３０ａのヘッダ部分から，目的とする作業内容における作業対象と作業項目とを取得する。ここでは，既存手順書１３０ａから，目的とする作業内容として，作業対象“AP Server1”と作業項目“停止”とが取得される。手順取得部１３は，取得された目的とする作業内容を，作業内容管理テーブルに記録する。
【００９５】
図１０は，本実施例による作業内容管理テーブルの例を示す図である。
【００９６】
図１０に示す作業内容管理テーブル１３１は，目的とする作業内容を管理する情報の一例である。図１０に示す作業内容管理テーブル１３１には，既存手順書１３０ａから取得された目的とする作業内容が記録されている。
【００９７】
図１０に示す作業内容管理テーブル１３１は，手順書ＩＤ，作業対象，作業項目の情報を持つ。手順書ＩＤは，既存手順書に付与された手順書ＩＤを示す。作業対象は，既存手順書から取得された，目的とする作業内容の作業対象を示す。作業項目は，既存手順書から取得された，目的とする作業内容の作業項目を示す。
【００９８】
次に，手順取得部１３は，既存手順書１３０ａから作業手順を取得する。例えば，既存手順書１３０ａに示された番号順にその作業手順の記述に対する構文解析を行い，既存手順書１３０ａからの作業手順の抽出を行う。ここで取得される作業手順が，第１の作業手順となる。本実施例において，第１の作業手順は，要素間の関連を考慮して人手で作成された，過去に運用実績がある作業手順である。以下では，本実施例における第１の作業手順を，既存手順と呼ぶものとする。
【００９９】
図１１は，本実施例による既存手順データの例（１）を示す図である。
【０１００】
図１１に示す既存手順データ１３２ａは，図９に示す手順書ＩＤ“００１”の既存手順書１３０ａから取得された既存手順が記録されたデータの一例である。既存手順データ１３２ａは，操作順序，作業対象，作業項目の情報を持つ。操作順序は，当該レコードが示す作業を行う順番を示す。作業対象は，当該レコードが示す作業の作業対象を示す。作業項目は，当該レコードが示す作業の作業項目を示す。
【０１０１】
手順生成部１４は，処理対象の既存手順書１３０ａが目的とする作業内容を取得する。ここでは，手順生成部１４は，図１０に示す作業内容管理テーブル１３１から，手順書ＩＤ“００１”の目的とする作業内容を得る。
【０１０２】
手順生成部１４は，ルール記憶部１５に記憶された運用手順生成ルール１５０に従って，構成情報記憶部１２に記憶された図８に示す作業対象システムのシステム構成情報から，目的とする作業内容の作業を行うための作業手順を生成する。ルール記憶部１５には，例えば図２に示す運用手順生成ルール１５０が記憶されている。手順生成部１４は，図１〜図５を用いて説明した手順生成処理の流れに従って，作業手順を自動生成する。ここで生成される作業手順が，第２の作業手順となる。以下では，本実施例における第２の作業手順を，自動生成手順と呼ぶものとする。
【０１０３】
図１２は，本実施例による自動生成手順データの例（１）を示す図である。
【０１０４】
図１２に示す自動生成手順データ１４２ａは，図８に示す作業対象システムのシステム構成情報から生成された自動生成手順が記録されたデータの一例である。図１２に示す自動生成手順データ１４２ａの自動生成手順の目的とする作業内容は，図９に示す手順書ＩＤ“００１”の既存手順書１３０ａの目的とする作業内容である。自動生成手順データ１４２ａは，操作順序，作業対象，作業項目の情報を持つ。操作順序は，当該レコードが示す作業を行う順番を示す。作業対象は，当該レコードが示す作業の作業対象を示す。作業項目は，当該レコードが示す作業の作業項目を示す。
【０１０５】
図１１に示す既存手順データ１３２ａの既存手順と，図１２に示す自動生成手順データ１４２ａの自動生成手順とは，目的とする作業内容が同じ作業手順である。差分抽出部１６は，これらの作業手順の間で差分となる作業手順を抽出する。
【０１０６】
図１３は，本実施例による既存手順と自動生成手順のフローをグラフで表した例（１）を示す図である。
【０１０７】
図１３（Ａ）は，既存手順のフローをグラフで表したものである。図１３（Ｂ）は，自動生成手順のフローをグラフで表したものである。図１３に示すグラフにおいて，ノードは，既存手順データ１３２ａまたは自動生成手順データ１４２ａの各操作順序における作業を表す。アークは，各操作順序の作業間で，作業を行う順序を表す。アークは，操作順序が先の作業のノードから，操作順序が後のノードに引かれる。
【０１０８】
ノードにおいて，“APS1”，“APS2”の記載は，それぞれ“AP Server1”，“AP Server2”を表している。“APS1（LBサービス）”，“APS2（LBサービス）”は，それぞれ“AP Server1”，“AP Server2”に対する“LB”によるサーバ負荷分散サービスを表している。“AplX（APS1）”，“AplX（APS2）”は，それぞれ“AP Server1”上の“AplX”，“AP Server2”上の“AplX”を表している。
【０１０９】
既存手順書では，作業手順における作業対象が曖昧に記載されるケースがある。例えば，図９に示す既存手順書１３０ａにおいて，２．と３．に示す作業手順では，作業対象が“AP Server ”上の“AplX”と記載されている。この記載では，作業対象が“AP Server1”上の“AplX”であるのか，“AP Server2”上の“AplX”であるのか，それら両方であるのかが明確には分からない。
【０１１０】
そのため，差分抽出部１６は，構成情報記憶部１２に記憶されたシステム構成情報を参照し，作業対象となり得るすべての作業を展開して，既存手順と自動生成手順との間で差分となる作業手順を抽出する。例えば，図１３（Ａ）のグラフに示すように，図１１に示す既存手順データ１３２ａにおける操作順序“３”の作業が，“AP Server1”上の“AplX”に対するサーバ負荷分散サービスの閉塞と，“AP Server2”上の“AplX”に対するサーバ負荷分散サービスの閉塞とに分けられる。また，図１３（Ａ）のグラフに示すように，図１１に示す既存手順データ１３２ａにおける操作順序“４”の作業が，“AP Server1”上の“AplX”の停止と，“AP Server2”上の“AplX”の停止とに分けられる。
【０１１１】
また，要素間の関連から導かれる作業手順が，必ずしも操作順序が連続する作業手順となっているとは限らない。例えば，“Apl α”→“Apl β”，“Apl γ”→“Apl β”のデータアクセス関係がある場合に，“Apl β”を停止するための作業手順が，
“Apl α”の停止  →  “Apl γ”の停止  →  “Apl β”の停止
となる場合がある。この場合，“Apl α”の停止と“Apl β”の停止とは操作順序が連続する作業手順ではないが，“Apl α”と“Apl β”との間には要素間の関連がある。
【０１１２】
そのため，差分抽出部１６は，操作順序が先→後となるすべての作業の組合せを，既存手順と自動生成手順との間で差分となる作業手順を抽出する対象とする。例えば，図１３（Ｂ）のグラフに示すように，図１２に示す自動生成手順データ１４２ａにおける操作順序“１”の作業から操作順序“３”の作業への作業手順も，差分となる作業手順を抽出する対象となる。
【０１１３】
このような状況を踏まえて，差分抽出部１６は，既存手順と自動生成手順との間の作業手順の差分抽出にあたって，既存手順と自動生成手順とのそれぞれについて，操作順序が先→後となる作業を組み合わせた作業手順をすべて抽出する。
【０１１４】
図１４は，本実施例による差分抽出用中間データの例を示す図である。
【０１１５】
図１４（Ａ）は，図１１に示す既存手順データ１３２ａから生成された，既存手順における操作順序が先→後となる作業を組み合わせた作業手順をすべて抽出して記録した差分抽出用中間データ１６０の一例を示す。図１４（Ａ）に示す差分抽出用中間データ１６０の各レコードは，図１３（Ａ）に示す既存手順のグラフにおいて，各アークで示される作業手順のレコードである。差分抽出用中間データ１６０において，始点の作業対象は，アークの始点となるノードの作業対象を示し，終点の作業対象は，アークの終点となるノードの作業対象を示す。
【０１１６】
図１４（Ｂ）は，図１２に示す自動生成手順データ１４２ａから生成された，自動生成手順における操作順序が先→後となる作業を組み合わせた作業手順をすべて抽出して記録した差分抽出用中間データ１６１の一例を示す。図１４（Ｂ）に示す差分抽出用中間データ１６１の各レコードは，図１３（Ｂ）に示す自動生成手順のグラフにおいて，各アークで示される作業手順のレコードである。差分抽出用中間データ１６１において，始点の作業対象は，アークの始点となるノードの作業対象を示し，終点の作業対象は，アークの終点となるノードの作業対象を示す。
【０１１７】
差分抽出部１６は，図１４（Ａ）に示す既存手順の差分抽出用中間データ１６０と，図１４（Ｂ）に示す自動生成手順の差分抽出用中間データ１６１との間の差分を取ることで，既存手順と自動生成手順との間で差分となる作業手順を抽出する。
【０１１８】
図１３（Ａ）に示す既存手順のグラフにおいて，太線矢印のアークが，図１３（Ｂ）に示す自動生成手順との間の差分となる作業手順を示している。図１３（Ａ）に示す既存手順のグラフにおいて，太線枠のノードが，太線矢印のアークが示す差分となる作業手順を生じさせた原因となる作業対象を示す。すなわち，既存手順と自動生成手順との間で差分となる作業対象の存在によって，既存手順と自動生成手順との間で差分となる作業手順が生じている。
【０１１９】
差分抽出部１６は，抽出されたすべての差分となる作業手順の情報を，結果テーブルに出力する。このとき，差分抽出部１６は，差分となる作業手順が，既存手順と自動生成手順のどちらに含まれる作業手順であるかの情報も，結果テーブルに記録する。また，差分となる作業手順が生じさせた原因となる作業対象の情報も，結果テーブルに記録する。
【０１２０】
図１５は，本実施例による結果テーブルの例（１）を示す図である。
【０１２１】
図１５に示す結果テーブル１６２ａは，差分となる作業手順の抽出結果などの情報を記録するデータの一例を示す。図１５に示す結果テーブル１６２ａには，手順書ＩＤ“００１”の既存手順書１３０ａに対する一連の処理において，既存手順と自動生成手順との間で差分となる作業手順の情報が記録されている。
【０１２２】
図１５に示す結果テーブル１６２ａは，出現手順，差分作業対象，始点の作業対象，終点の作業対象，推定した関連情報，判定結果の情報を持つ。出現手順は，該当レコードの差分となる作業手順が，既存手順と自動生成手順のどちらに含まれているかを示す。差分作業対象は，該当レコードの差分となる作業手順を生じさせた原因となる作業対象を示す。始点の作業対象は，該当レコードの差分となる作業手順において，先に行う作業の作業対象を示す。終点の作業対象は，該当レコードの差分となる作業手順において，後に行う作業の作業対象を示す。推定した関連情報と判定結果とについては，後述する。
【０１２３】
特定部１７は，ルール記憶部１５に記憶された運用手順生成ルール１５０を用いて，差分抽出部１６により抽出された差分となる作業手順ごとに，該差分となる作業手順を生じさせる要素間の関連を特定する。
【０１２４】
例えば，ルール記憶部１５に，図２に示す運用手順生成ルール１５０が記憶されているものとする。特定部１７は，結果テーブル１６２ａのレコードごとに，該当レコードが示す差分となる作業手順を導き出すルールを，図２に示す運用手順生成ルール１５０から抽出する。
【０１２５】
差分となる作業手順を導き出すルールは，その差分となる作業手順における始点の作業対象と終点の作業対象との関係が，作業すべき操作の先と後との関係に一致するルールである。特定部１７は，差分となる作業手順における始点の作業対象と終点の作業対象との関係と一致する作業すべき操作の先と後との関係を持つルールを，運用手順生成ルール１５０から抽出する。特定部１７は，抽出されたルールから，要素間の関連情報を取得する。特定部１７は，取得された要素間の関連情報に示される要素間の関連を，差分となる作業手順を生じさせる要素間の関連と特定する。
【０１２６】
図１６は，本実施例による差分となる作業手順の例（１）を示す図である。
【０１２７】
図１６には，手順書ＩＤ“００１”の既存手順書１３０ａに対する一連の処理において，抽出されたすべての差分となる作業手順のグラフが示されている。
【０１２８】
図１６（Ａ）に示す差分となる作業手順において，始点の作業対象と終点の作業対象との関係は，図２に示す運用手順生成ルール１５０のルールＩＤ“Ｒ１”のルールにおける作業すべき操作の先と後との関係に対応する。特定部１７は，ルールＩＤ“Ｒ１”のルールにおける要素間の関連情報から，図１６（Ａ）に示す差分となる作業手順を生じさせる要素間の関連が，アプリケーション“AplY”からアプリケーション“AplZ”へのデータアクセスであると特定する。
【０１２９】
図１６（Ｂ）に示す各差分となる作業手順において，始点の作業対象と終点の作業対象との関係は，図２に示す運用手順生成ルール１５０のルールＩＤ“Ｒ１”のルールにおける作業すべき操作の先と後との関係に対応する。特定部１７は，ルールＩＤ“Ｒ１”のルールにおける要素間の関連情報から，図１６（Ｂ）に示す各差分となる作業手順を生じさせる要素間の関連が，アプリケーション“AplY”からアプリケーション“AplX”へのデータアクセスであると特定する。
【０１３０】
図１６（Ｃ）に示す各差分となる作業手順において，始点の作業対象と終点の作業対象との関係は，図２に示す運用手順生成ルール１５０のルールＩＤ“Ｒ１”のルールにおける作業すべき操作の先と後との関係に対応する。特定部１７は，ルールＩＤ“Ｒ１”のルールにおける要素間の関連情報から，図１６（Ｃ）に示す各差分となる作業手順を生じさせる要素間の関連が，アプリケーション“AplZ”からアプリケーション“AplX”へのデータアクセスであると特定する。
【０１３１】
図１６（Ｄ）に示す差分となる作業手順において，始点の作業対象と終点の作業対象との関係は，図２に示す運用手順生成ルール１５０のルールＩＤ“Ｒ３”のルールにおける作業すべき操作の先と後との関係に対応する。特定部１７は，ルールＩＤ“Ｒ３”のルールにおける要素間の関連情報から，図１６（Ｄ）に示す差分となる作業手順を生じさせる要素間の関連が，ロードバランサ“LB”からサーバ“AP Server2”への負荷分散であると特定する。
【０１３２】
図１６（Ｅ）に示す各差分となる作業手順については，始点の作業対象と終点の作業対象との関係と対応する，作業すべき操作の先と後との関係が，図２に示す運用手順生成ルール１５０になかったものとする。図１６（Ｅ）に示す各差分となる作業手順については，その作業手順を直接導出するルールが図２に示す運用手順生成ルール１５０にないので，特定部１７は，図１６（Ｅ）に示す各差分となる作業手順からは要素間の関連が得られないと判断する。
【０１３３】
特定部１７は，要素間の関連が特定された差分となる作業手順について，特定された要素間の関連を，結果テーブル１６２ａに出力する。
【０１３４】
図１７は，本実施例による結果テーブルの例（２）を示す図である。
【０１３５】
図１７に示す結果テーブル１６２ａは，図１５に示す結果テーブル１６２ａにさらに推定した関連情報のデータを追加した例を示す。結果テーブル１６２ａにおいて，推定した関連情報には，各レコードの差分となる作業手順において，運用手順生成ルール１５０を用いて特定された要素間の関連が記録される。なお，図１７に示す結果テーブル１６２ａでは，要素間の関連が得られなかった差分となる作業手順のレコードが，削除されている。
【０１３６】
更新部１８は，特定された要素間の関連について，その要素間の関連が得られたもとの差分となる作業手順が，既存手順と自動生成手順のどちらに含まれる作業手順であるかに応じて，構成情報記憶部１２に記憶されたシステム構成情報の更新を判定する。要素間の関連が得られたもとの差分となる作業手順が既存手順に含まれる作業手順である場合，更新部１８は，その要素間の関連を示す情報を，そのとき構成情報記憶部１２に記憶されているシステム構成情報に追加すると判定する。要素間の関連が得られたもとの差分となる作業手順が自動生成手順に含まれる作業手順である場合については，後述する。
【０１３７】
図１８は，本実施例による結果テーブルの例（３）を示す図である。
【０１３８】
図１８に示す結果テーブル１６２ａは，図１７に示す結果テーブル１６２ａにさらにシステム構成情報更新の判定結果を追加した例を示す。結果テーブル１６２ａにおいて，判定結果には，各レコードの差分となる作業手順から特定された要素間の関連を用いたシステム構成情報更新についての判定結果が記録される。図１８に示す結果テーブル１６２ａでは，出現手順がすべて既存手順であるので，判定結果はすべて追加となる。
【０１３９】
更新部１８は，システム構成情報更新の判定結果に基づいて，構成情報記憶部１２に記憶されているシステム構成情報を更新する。
【０１４０】
図１８に示す結果テーブル１６２ａでは，すべてのレコードの判定結果が“追加”となっている。更新部１８は，図１８に示す結果テーブル１６２ａの各レコードの推定した関連情報に示される要素間の関連を，構成情報記憶部１２に記憶された，図８に示す作業対象システムのシステム構成情報に追加する。なお，ロードバランサ“LB”からサーバ“AP Server2”への負荷分散については，図８に示すように，その関連を示す情報が当初のシステム関連情報に含まれているので，特に更新は行われない。
【０１４１】
図１９は，本実施例による作業対象システムの構成例（２）を示す図である。
【０１４２】
図１９に示す作業対象システムの構成例は，図８に示す作業対象システムのシステム構成情報に，手順書ＩＤ“００１”の既存手順書１３０ａに対する一連の処理で得られた要素間の関係が追加されたシステム構成情報に基づいた，作業対象システムの構成を示す。図１９に示す作業対象システムの構成例において，太線矢印は，追加された要素間の関連を示す。
【０１４３】
構成情報記憶部１２に，図１９に示す作業対象システムのシステム構成情報が記憶されている状態で，関連推定装置１０は，次の既存手順書に対する処理に移る。
【０１４４】
図２０は，本実施例による既存手順書の例（２）を示す図である。
【０１４５】
手順取得部１３は，手順情報記憶部３０から図２０に示す既存手順書１３０ｂのファイルを読み出す。手順取得部１３は，取得した既存手順書１３０ｂに，手順書ＩＤ“００２”を付与する。
【０１４６】
手順取得部１３は，既存手順書１３０ｂのヘッダ部分から，目的とする作業内容における作業対象と作業項目とを取得する。ここでは，既存手順書１３０ｂから，目的とする作業内容として，作業対象“AP Server ”と作業項目“停止”とが取得される。手順取得部１３は，取得された目的とする作業内容を，作業内容管理テーブル１３１に記録する。手順取得部１３は，既存手順書１３０ｂから既存手順を取得する。
【０１４７】
図２１は，本実施例による既存手順データの例（２）を示す図である。
【０１４８】
図２１に示す既存手順データ１３２ｂは，図２０に示す手順書ＩＤ“００２”の既存手順書１３０ｂから取得された既存手順が記録されたデータの一例である。
【０１４９】
手順生成部１４は，作業内容管理テーブル１３１から，手順書ＩＤ“００２”の既存手順書１３０ｂが目的とする作業内容を取得する。手順生成部１４は，ルール記憶部１５に記憶された運用手順生成ルール１５０に従って，構成情報記憶部１２に記憶された図１９に示す作業対象システムのシステム構成情報から，目的とする作業内容の作業を行うための作業手順を生成する。
【０１５０】
図２２は，本実施例による自動生成手順データの例（２）を示す図である。
【０１５１】
図２２に示す自動生成手順データ１４２ｂは，図１９に示す作業対象システムのシステム構成情報から生成された自動生成手順が記録されたデータの一例である。図２２に示す自動生成手順データ１４２ｂの自動生成手順の目的とする作業内容は，図２０に示す手順書ＩＤ“００２”の既存手順書１３０ｂの目的とする作業内容である。
【０１５２】
図２１に示す既存手順データ１３２ｂの既存手順と，図２２に示す自動生成手順データ１４２ｂの自動生成手順とは，目的とする作業内容が同じ作業手順である。差分抽出部１６は，これらの作業手順の間で差分となる作業手順を抽出する。
【０１５３】
図２３は，本実施例による既存手順と自動生成手順のフローをグラフで表した例（２）を示す図である。
【０１５４】
図２３（Ａ）は，図２１に示す既存手順データ１３２ｂの既存手順のフローをグラフで表したものである。図２３（Ｂ）は，図２２に示す自動生成手順データ１４２ｂの自動生成手順のフローをグラフで表したものである。図２３（Ｂ）に示す自動生成手順のグラフにおいて，太点線矢印のアークが，図２３（Ａ）に示す既存手順との間の差分となる作業手順を示している。図２３（Ｂ）に示す自動生成手順のグラフにおいて，太点線枠のノードが，太点線矢印のアークが示す差分となる作業手順を生じさせた原因となる作業対象を示す。
【０１５５】
差分抽出部１６は，抽出されたすべての差分となる作業手順の情報を，結果テーブルに出力する。このとき，差分抽出部１６は，差分となる作業手順が，既存手順と自動生成手順のどちらに含まれる作業手順であるかの情報も，結果テーブルに記録する。また，差分となる作業手順が生じさせた原因となる作業対象の情報も，結果テーブルに記録する。
【０１５６】
特定部１７は，ルール記憶部１５に記憶された運用手順生成ルール１５０を用いて，差分抽出部１６により抽出された差分となる作業手順ごとに，該差分となる作業手順を生じさせる要素間の関連を特定する。
【０１５７】
図２４は，本実施例による差分となる作業手順の例（２）を示す図である。
【０１５８】
図２４には，手順書ＩＤ“００２”の既存手順書１３０ｂに対する一連の処理において，抽出されたすべての差分となる作業手順のグラフが示されている。
【０１５９】
図２４（Ａ）に示す差分となる作業手順において，始点の作業対象と終点の作業対象との関係は，図２に示す運用手順生成ルール１５０のルールＩＤ“Ｒ１”のルールにおける作業すべき操作の先と後との関係に対応する。特定部１７は，ルールＩＤ“Ｒ１”のルールにおける要素間の関連情報から，図２４（Ａ）に示す差分となる作業手順を生じさせる要素間の関連が，アプリケーション“AplY”からアプリケーション“AplZ”へのデータアクセスであると特定する。
【０１６０】
図２４（Ｂ）に示す各差分となる作業手順において，始点の作業対象と終点の作業対象との関係は，図２に示す運用手順生成ルール１５０のルールＩＤ“Ｒ１”のルールにおける作業すべき操作の先と後との関係に対応する。特定部１７は，ルールＩＤ“Ｒ１”のルールにおける要素間の関連情報から，図２４（Ｂ）に示す各差分となる作業手順を生じさせる要素間の関連が，アプリケーション“AplZ”からアプリケーション“AplX”へのデータアクセスであると特定する。
【０１６１】
図２４（Ｃ）に示す各差分となる作業手順については，始点の作業対象と終点の作業対象との関係と対応する，作業すべき操作の先と後との関係が，図２に示す運用手順生成ルール１５０になかったものとする。図２４（Ｃ）に示す各差分となる作業手順については，その作業手順を直接導出するルールが図２に示す運用手順生成ルール１５０にないので，特定部１７は，図２４（Ｃ）に示す各差分となる作業手順からは要素間の関連が得られないと判断する。
【０１６２】
特定部１７は，要素間の関連が特定された差分となる作業手順について，特定された要素間の関連を，結果テーブルに出力する。
【０１６３】
更新部１８は，特定された要素間の関連について，構成情報記憶部１２に記憶されたシステム構成情報の更新を判定する。要素間の関連が得られたもとの差分となる作業手順が自動生成手順に含まれる作業手順である場合に，更新部１８は，その差分となる作業手順を生じさせた原因となる作業対象が，該差分となる作業手順において先に作業を行う対象であるかを確認する。差分となる作業手順を生じさせた原因となる作業対象が，該差分となる作業手順において先に作業を行う対象であれば，更新部１８は，該当する要素間の関連を示す情報を，そのとき構成情報記憶部１２に記憶されているシステム構成情報から削除すると判定する。差分となる作業手順を生じさせた原因となる作業対象が，該差分となる作業手順において先に作業を行う対象でなければ，更新部１８は，該当する要素間の関連について，構成情報記憶部１２に記憶されているシステム構成情報に対する処理を行わないと判定する。
【０１６４】
図２５は，本実施例による結果テーブルの例（４）を示す図である。
【０１６５】
図２５に示す結果テーブル１６２ｂは，手順書ＩＤ“００２”の既存手順書１３０ｂに対する一連の処理において，既存手順と自動生成手順との間で差分となる作業手順の情報が記録された結果テーブルの一例を示す。図２５に示す結果テーブル１６２ｂにおいて，差分作業対象は，該当レコードに示す差分となる作業手順を生じさせた原因となる作業対象である。なお，図２５に示す結果テーブル１６２ｂの各レコードが示す差分となる作業手順は，すべて自動生成手順に含まれる作業手順である。
【０１６６】
図２５に示す結果テーブル１６２ｂにおいて，２番目と３番目のレコードは，それぞれ図２４（Ｂ）のグラフに示す２つの差分となる作業手順に対応するレコードである。これらのレコードが示す差分となる作業手順からは，アプリケーション“AplZ”からアプリケーション“AplX”へのデータアクセスの関連が特定されている。このような要素間の関連が実際の作業対象システムに存在すれば，図２０に示す既存手順書１３０ｂが目的とする作業内容の作業を実行する過程で，アプリケーション“AplZ”を始点の作業対象とする作業手順が必要となる。
【０１６７】
しかし，過去に運用実績がある図２０に示す既存手順書１３０ｂには，アプリケーション“AplZ”に対する作業の記載がない。目的とする作業内容の作業を実行する過程で，アプリケーション“AplZ”に対する作業を実行する必要があれば，過去に運用実績がある図２０に示す既存手順書１３０ｂに，アプリケーション“AplZ”に対する作業が記載されているはずである。図２０ｂに示す既存手順書１３０ｂに，アプリケーション“AplZ”に対する作業の記載がないということは，目的とする作業内容の作業を実行する過程で，アプリケーション“AplZ”に対する作業を行う必要がないということである。
【０１６８】
このことから，図２５に示す結果テーブル１６２ｂの２番目と３番目のレコードに示す，アプリケーション“AplZ”を始点の作業対象とする差分の作業手順から特定される要素間の関連は，実際の作業対象システムに存在しないと推定される。更新部１８は，図２５の結果テーブル１６２ｂにおいて，差分作業対象のアプリケーション“AplZ”を始点の作業対象とする２番目と３番目のレコードにおける要素間の関連を，構成情報記憶部１２のシステム構成情報から削除すると判定する。図２５に示す結果テーブル１６２ｂにおける２番目と３番目のレコードでは，判定結果が“削除”となっている。
【０１６９】
図２５に示す結果テーブル１６２ｂにおいて，１番目のレコードは，図２４（Ａ）のグラフに示す差分となる作業手順に対応するレコードである。このレコードが示す差分となる作業手順からは，アプリケーション“AplY”からアプリケーション“AplZ”へのデータアクセスの関連が特定されている。
【０１７０】
上述のように，図２０に示す既存手順書１３０ｂが目的とする作業内容の作業を実行する過程で，差分作業対象であるアプリケーション“AplZ”に対する作業を実行する必要はない。アプリケーション“AplZ”に対する作業が行われない場合には，差分作業対象であるアプリケーション“AplZ”を終点の作業対象とする図２４（Ａ）に示す作業手順は発生しない。そのため，アプリケーション“AplY”からアプリケーション“AplZ”へのデータアクセスの関連が実際の作業対象システムに存在していても，図２４（Ａ）に示す作業手順が既存手順に反映されていないことに，問題はない。
【０１７１】
更新部１８は，図２５の結果テーブル１６２ｂにおいて，差分作業対象のアプリケーション“AplZ”を終点の作業対象とする１番目のレコードにおける要素間の関連については，構成情報記憶部１２のシステム構成情報に対する処理を行わないと判定する。図２５に示す結果テーブル１６２ｂにおける１番目のレコードでは，判定結果が“処理なし”となっている。
【０１７２】
更新部１８は，システム構成情報更新の判定結果に基づいて，構成情報記憶部１２に記憶されているシステム構成情報を更新する。
【０１７３】
図２５に示す結果テーブル１６２ｂでは，２番目と３番目のレコードの判定結果が“削除”となっている。更新部１８は，図２５に示す結果テーブル１６２ｂにおける２番目と３番目のレコードの推定した関連情報に示される要素間の関連を，構成情報記憶部１２に記憶された，図１９に示す作業対象システムのシステム構成情報から削除する。図２５に示す結果テーブル１６２ｂにおける１番目のレコードの推定した関連情報に示される要素間の関連については，システム構成情報を更新する処理は行われない。
【０１７４】
なお，例えば，構成情報記憶部１２に記憶されたシステム構成情報から削除された要素間の関連について記録しておくなど，一度削除された要素間の関連が既存手順に含まれる作業手順から特定されてもシステム構成情報に追加しない仕組みを設けてもよい。
【０１７５】
図２６は，本実施例による作業対象システムの構成例（３）を示す図である。
【０１７６】
図２６に示す作業対象システムの構成例は，図１９に示す作業対象システムのシステム構成情報から，手順書ＩＤ“００２”の既存手順書１３０ｂに対する一連の処理で得られた要素間の関係が削除されたシステム構成情報に基づいた，作業対象システムの構成を示す。図２６に示す作業対象システムの構成例では，図１９に示す作業対象システムの構成例にはあった，アプリケーション“AplZ”からアプリケーション“AplX”へのアクセスを示す太線矢印がなくなっている。
【０１７７】
出力部１９は，指定されたすべての既存手順書に対する処理の終了後，構成情報記憶部１２に記憶された，推定された要素間の関連を示す情報を含むシステム構成情報を，本実施の形態の関連推定装置１０による処理の結果として出力する。
【０１７８】
以下，図２７〜図２９に示すフローチャートを用いて，本実施の形態の関連推定装置による処理の流れを説明する。
【０１７９】
図２７は，本実施の形態の関連推定装置による関連推定処理フローチャートである。
【０１８０】
関連推定装置１０において，構成情報取得部１１は，ＣＭＤＢ２０から作業対象システムのシステム構成情報を取得する（ステップＳ１０）。取得されたシステム構成情報は，構成情報記憶部１２に記憶される。
【０１８１】
手順取得部１３は，作業対象システムに対する過去の運用実績がある既存手順書を，１つ選択する（ステップＳ１１）。ここでは，手順取得部１３は，手順情報記憶部３０から選択した既存手順書のファイルを読み出す。
【０１８２】
手順取得部１３は，既存手順書から，該既存手順書が目的とする作業内容を抽出する（ステップＳ１２）。また，手順取得部１３は，既存手順書から既存手順を取得する（ステップＳ１３）。ここでは，手順取得部１３は，既存手順書に対するテキスト解析で，情報の自動抽出を行う。
【０１８３】
手順生成部１４は，手順生成処理を実行する（ステップＳ１４）。手順生成処理では，ルール記憶部１５に記憶された運用手順生成ルールに従って，構成情報記憶部１２に記憶されたシステム構成情報から，既存手順書から抽出された目的とする作業内容についての作業手順が自動生成される。手順生成処理で生成された作業手順が，自動生成手順である。手順生成処理は，例えば，図５のフローチャートに示す処理となる。
【０１８４】
差分抽出部１６は，既存手順と自動生成手順との間で差分となる作業手順を抽出する（ステップＳ１５）。抽出された差分となる作業手順は，例えば，図１５に示すような結果テーブルに記録される。特定部１７は，関連特定処理を実行する（ステップＳ１６）。関連特定処理は，差分抽出部１６による抽出された差分となる作業手順を生じさせる要素間の関連を特定する処理である。関連特定処理の詳細については，後述する。
【０１８５】
更新部１８は，結果判定処理を実行する（ステップＳ１７）。結果判定処理は，特定部１７によって特定された要素間の関連について，構成情報記憶部１２に記憶されたシステム構成情報の更新を判定する処理である。結果判定処理の詳細については，後述する。更新部１８は，結果判定処理による判定結果に応じて，構成情報記憶部１２に記憶されたシステム構成情報を更新する（ステップＳ１８）。
【０１８６】
出力部１９は，指定されたすべての既存手順書について，処理が終了したかを判定する（ステップＳ１９）。まだすべての既存手順書について処理が終了していなければ（ステップＳ１９のＮＯ），関連推定装置１０は，ステップＳ１１の処理に戻って，次の既存手順書の処理に移る。すべての既存手順書について処理が終了していれば（ステップＳ１９のＹＥＳ），出力部１９は，システム構成情報を出力して（ステップＳ２０），処理を終了する。
【０１８７】
図２８は，本実施の形態の特定部による関連特定処理フローチャートである。
【０１８８】
特定部１７は，例えば図１５に示すような結果テーブルのレコードを１つ選択する（ステップＳ１１０）。特定部１７は，選択されたレコードから，始点の作業対象と終点の作業対象とを取得する（ステップＳ１１１）。特定部１７は，ルール記憶部１５の運用手順生成ルール１５０を参照し，取得された始点の作業対象と終点の作業対象との関係と一致する，作業すべき操作の先と後との関係を持つルールを抽出する（ステップＳ１１２）。特定部１７は，運用手順生成ルール１５０に，取得された始点の作業対象と終点の作業対象との関係と作業すべき操作の先と後との関係とが一致するルールがあるかを判定する（ステップＳ１１３）。
【０１８９】
一致するルールがなければ（ステップＳ１１３のＮＯ），特定部１７は，選択されたレコードを削除する（ステップＳ１１４）。
【０１９０】
一致するルールがあれば（ステップＳ１１３のＹＥＳ），特定部１７は，運用手順生成ルール１５０から，抽出されたルールにおける要素間の関連情報を取得する（ステップＳ１１５）。特定部１７は，取得された要素間の関連情報の作業対象に始点の作業対象と終点の作業対象とを割り当てて得られる要素間の関連を示す情報を，結果テーブルの推定した関連情報に記録する（ステップＳ１１６）。
【０１９１】
特定部１７は，結果テーブルのすべてのレコードについて，処理が終了したかを判定する（ステップＳ１１７）。まだすべてのレコードについて処理が終了していなければ（ステップＳ１１７のＮＯ），特定部１７は，ステップＳ１１０の処理に戻って，次のレコードの処理に移る。すべてのレコードについて処理が終了していれば（ステップＳ１１７のＹＥＳ），特定部１７は，処理を終了する。
【０１９２】
図２９は，本実施の形態の更新部による結果判定処理フローチャートである。
【０１９３】
更新部１８は，例えば図１７に示すような結果テーブルのレコードを１つ選択する（ステップＳ１２０）。更新部１８は，選択されたレコードの出現手順が既存手順であるかを判定する（ステップＳ１２１）。出現手順が既存手順であれば（ステップＳ１２１のＹＥＳ），更新部１８は，選択されたレコードの判定結果に“追加”を記録する（ステップＳ１２２）。更新部１８は，結果テーブルのすべてのレコードについて，処理が終了したかを判定する（ステップＳ１２３）。まだすべてのレコードについて処理が終了していなければ（ステップＳ１２３のＮＯ），更新部１８は，ステップＳ１２０の処理に戻って，次のレコードの処理に移る。
【０１９４】
すべてのレコードについて処理が終了していれば（ステップＳ１２３のＹＥＳ），更新部１８は，結果テーブルにおいてまだ判定結果がないレコードを１つ選択する（ステップＳ１２４）。更新部１８は，選択されたレコードの差分作業対象と始点の作業対象とが一致するかを判定する（ステップＳ１２５）。差分作業対象と始点の作業対象とが一致すれば（ステップＳ１２５のＹＥＳ），更新部１８は，選択されたレコードの判定結果に“削除”を記録する（ステップＳ１２６）。更新部１８は，結果テーブルのすべてのレコードについて，処理が終了したかを判定する（ステップＳ１２７）。まだすべてのレコードについて処理が終了していなければ（ステップＳ１２７のＮＯ），更新部１８は，ステップＳ１２４の処理に戻って，次のレコードの処理に移る。
【０１９５】
すべてのレコードについて処理が終了していれば（ステップＳ１２７のＹＥＳ），更新部１８は，結果テーブルにおいてまだ判定結果がないレコードを１つ選択する（ステップＳ１２８）。更新部１８は，選択されたレコードの判定結果に“処理なし”を記録する（ステップＳ１２９）。更新部１８は，結果テーブルのすべてのレコードについて，処理が終了したかを判定する（ステップＳ１３０）。まだすべてのレコードについて処理が終了していなければ（ステップＳ１３０のＮＯ），更新部１８は，ステップＳ１２８の処理に戻って，次のレコードの処理に移る。すべてのレコードについて処理が終了していれば（ステップＳ１３０のＹＥＳ），更新部１８は，処理を終了する。
【０１９６】
次に，作業手順の自動生成処理をより詳細に説明する。
【０１９７】
図３０は，本実施の形態による関連推定装置１０の構成例を示す図である。
【０１９８】
図３０に示す関連推定装置１０は作業入力部４０を備え，ルール記憶部１５は作業手順ルール２１０および手順書き換えルール２２０を記憶する。図３０に示す関連推定装置１０の構成例は，図６に示す構成例をより詳細に示すものであり，同一の処理部には同一番号を付与している。
【０１９９】
作業入力部４０は，作業手順を生成する作業対象システムで運用される作業を入力する。入力される作業は，（作業要素，作業対象）の組で示される。
【０２００】
作業手順ルール２１０は，作業を構成する階層化された要素間において親要素（上位の要素）を子要素（下位の要素）へ展開するルールであり，作業入力部４０で入力された作業要素を，最下位の要素である“操作”に展開するルールである。
【０２０１】
手順書き換えルール２２０は，作業手順ルール２１０で定義されている作業要素や作業対象の属性に基づいて，与えられた作業を書き換えるルールである。
【０２０２】
手順生成部１４および作業入力部４０は既に説明した自動生成ルールに，作業手順ルールおよび手順書き換えルール２２０は運用手順生成ルール１５０に，それぞれ相当する。
【０２０３】
手順生成部１４が生成する作業手順は，図４（Ｂ）の手順書に示すように，作業対象システムで運用される作業の手順を示す複数の操作（Instruction）の列である。運用される作業の内容は，階層化された分類（クラス）を用いて定義することができる。
【０２０４】
図３１は，運用される作業の内容に関する階層構造を有する定義例を示す図である。
【０２０５】
運用される作業を，例えば，上位からタスク（Task），ワーク（Work），プロシージャ（Procedure），操作（Instruction）の階層化されたクラスで定義することができる。
【０２０６】
タスク（Task）は業務上の分類によるクラスである。１つのタスクは，１または複数のワーク（Work）と呼ぶ分類を有する。ワークは，基本的単位となるクラスである。１つのワークは，１または複数のプロシージャ（Procedure）と呼ぶ分類を有する。プロシージャは，ワークを実現する作業上のステップである。プロシージャは，１または複数の操作（Instruction）の分類を有する。１つの運用される作業について，タスク，ワーク，プロシージャ，操作の各階層的分類で定義された全体をアクション（Action）と呼ぶ。なお，以下の説明では，作業対象システムを構成するアプリケーション，デバイス等の構成要素を作業対象またはターゲット（target）と呼ぶことがある。
【０２０７】
図３１に示すアクションに基づいて，手順生成部１４は，作業入力部４０で入力されたワークレベルの組（作業要素，ターゲット）を書き換えて，操作レベルの組（操作，ターゲット）を生成することであるといえる。
【０２０８】
図３２は，作業手順の生成処理の一例における作業対象システムのシステム構成情報のうち要素情報１２０の例を示す図である。
【０２０９】
図３２の要素情報１２０は，図１（Ｂ）に示す要素情報１２０に属性を追加した情報である。属性は，構成要素の種別毎について，より詳細な種別を定義している。例えば，“Redundancy-Active”“StandBy”等である。“Redundancy-Active”はその構成要素が冗長化システムの運用中であることを示し，“StandBy”は待機中であることを示している。
【０２１０】
図３３は，関連情報１２１の例を示す図である。
【０２１１】
図３３の関連情報１２１は，図１（Ｃ）に示す関連情報１２１の定義をより詳細に示した情報である。種別の「サーバ・アプリ関連」に書き換え時の動作“上位化（LayerUp）”が，「サーバ関連」に書き換え時の動作“依存（Depend）”がそれぞれ対応することを示している。
【０２１２】
作業手順ルール２１０は，図３０に示す階層でワークをプロシージャへ展開する作業展開ルール２１１，プロシージャを操作へ展開する手順展開ルール２１２を有する。
【０２１３】
図３４は，作業展開ルール２１１の例を示す図である。
【０２１４】
作業展開ルール２１１は，以下のように，上位要素であるワークを左辺に下位要素であるプロシージャを右辺に表し，左辺を右辺に展開するという記述で示される。
（WorkName，WorkAttribute，TargetClass，Condition）  →  （ProcedureName）列
図３４では，作業展開ルール２１１をデータテーブル形式で表している。
【０２１５】
RuleIDはルールの識別番号である。WorkNameはワークの名称であり，“起動”，“停止”，“パッチ適用”等が定義されている。WorkAttributeはワークの属性であり，“stop”，“start”，“normal”等が定義されている。“stop”は，そのワークが停止作業に属することを，“start”は起動作業に属することを，“normal”は通常時作業に属することを示している。
【０２１６】
TargetClassは作業対象の分類（クラス）であり，“サーバ（server）”，“アプリケーション（application）”等の分類が定義されている。Conditionは，ルールを適用する条件であり，サーバの種別，ＯＳの種別等が設定されている。
【０２１７】
ProcedureNameは，展開されるプロシージャであり，単一のプロシージャの他，プロシージャの列，ワーク等を設定することもできる。例えば，ルールの識別番号RuleIDが“W7”のルールでは，“パッチ適用”というワークが，ワーククラス（<work>と表す）の“停止”，プロシージャクラスの“パッチ適用”，ワーククラスの“起動”に展開されることを意味している。
【０２１８】
図３５は，手順展開ルール２１２の例を示す図である。
【０２１９】
手順展開ルール２１２も，作業展開ルール２１１と同様に，上位要素であるプロシージャを左辺に下位要素である操作を右辺に表し，左辺を右辺に展開するという記述で示され，図３５は，手順展開ルール２１２をデータテーブル形式で表す例である。
【０２２０】
ProcedureNameは，プロシージャの名称であり，“サーバ停止／起動”，“ジョブネット停止／起動”，“デーモン停止／起動”，“パッチ適用”等が定義されている。ProcedureAttributeは，プロシージャの属性であり，ワークと同様に，“stop”，“start”，“normal”等のが定義されている。
【０２２１】
InstructionNameは，展開される操作であり，１または複数の操作が設定される。操作は，“サーバノード停止／起動”，“サーバノード停止／起動確認”，“ジョブネット停止／起動”，“ジョブネット停止／起動確認”，“デーモン停止／起動”，“デーモン停止／起動確認”，“パッチモジュール準備”，“パッチ適用”，“パッチ適用確認”等である。
【０２２２】
図３６は，手順書き換えルール２２０の例を示す図である。
【０２２３】
手順書き換えルール２２０は，作業を展開する際に，作業要素または作業対象の属性に基づいて，与えられた作業を，新たな作業要素や作業手順に書き換えるルールである。図３６に示す手順書き換えルール２２０は，左辺（手順Ｘ）→右辺（手順Ｙ１，Ｙ２，…）に書き換えるというルールを，ＸＭＬ形式の記述で表している。
【０２２４】
<Rule>は，ルールの識別情報であり，<Node>は，書き換え対象の要素である。<Left>は，左辺の情報を，<Right>は，右辺の情報を表す。
【０２２５】
<actionClass>は，書き換え対象の要素のアクション内でのクラスを示し，ワーク，プロシージャ，操作のいずれかが設定される。<actionAttribute>は，書き換え対象の要素の属性である。
【０２２６】
<objectFunction>は，書き換え対象とする作業要素の設定（展開時の動作）を表し，例えば，“LayerUp”，“Depend”等が設定される。“LayerUp”は，書き換え対象の構成要素を１階層上の構成要素に上位化する動作である。“Depend”は，対象の構成要素の関連性をもとに関連元を特定する動作である。
【０２２７】
図３７は，“LayerUp”を説明するための図である。図３２に示す作業対象システムの構成が，図３７に示す階層構造を有している場合に，“LayerUp”は，対象の構成要素の直上の階層の構成要素を特定することを意味する。例えば，作業対象が“ＯＳ”である場合には直上の階層の“ミドルウェア”が対象に，作業対象が“アプリケーション”である場合には直上の階層の“ＳＬＢサービス”が対象となる。
【０２２８】
<actionFunction>は，書き換える際の動作を表す。例えば“Expand”等が設定される。“Expand”は，書き換えの対象の作業（作業要素，作業対象）を，作業要素を下位の作業階層に展開する動作である。
【０２２９】
図３６（Ａ）は，RuleIDが“R8”で，<actionAttribute>がstopで<actionClass>がWorkの場合の書き換えルールの例を示し，書換えの対象である構成要素の依存元のすべてを対象とする作業要素と，<actionFuntion>がExpandの書き換え動作結果の作業要素に書き換えるルールである。図３６（Ｂ）は，RuleIDが“R5”で，<actionAttribute>がstopで<actionClass>がProcedureの場合の書換えルールを示し，書換えの対象である構成要素の“LyerUp”にあたる構成要素を対象とする作業要素と，<actionFunction>がExpandの書換え動作結果の作業要素に書き換えるルールである。
【０２３０】
次に，作業手順の自動生成をより具体的に説明する。
【０２３１】
図３８は，処理の一具体例における作業対象システムの構成例および情報の例を示す図である。図３８（Ａ）は，想定した作業対象システムの構成のイメージ図，図３８（Ｂ）は，作業対象システムの構成情報１２０を示す図，図３８（Ｃ）は，関連情報１２１を示す図である。
【０２３２】
想定した作業対象システムは，インターネット（Internet）に接続する論理サーバである“Webサーバ（Web Server）”と，“Web Server”からデータを取得する論理サーバである“Apl1サーバ（Apl1 Server）”とが連係している。“Web Server”上でアプリケーションのデーモン“apache”が，“Apl1 Server”上でアプリケーションのジョブネット“jobnet”がそれぞれ実行される。
【０２３３】
手順生成部１４は，以下の処理を行う。図３９〜図４５は，処理中に生成される木構造の例を示す図である。
【０２３４】
（１）  作業入力部４０が，タスクを構成するワークレベルの作業（作業要素，作業対象）の１つである（停止，Apl1 Server）の組であるとする。
【０２３５】
図３９に示すように，手順生成部１４は，木構造を準備し，入力された（停止，Apl1 Server）の組をルート（Root）の子ノードとして木構造に追加する。木構造において各処理対象である組をノードと呼ぶ。
【０２３６】
（２）手順生成部１４は，要素情報１２０および関連情報１２１を参照して，入力された作業要素の<actionClass>と<actionAttribute>を特定し，該当する手順書き換えルール２２０があるか調べる。“停止”の<actionClass>がWork，かつ<actionAttribute>は作業展開ルール２１１よりstopであるため，手順書き換えルール２２０のルール“R8”の<Left>の条件に一致するため，“R8”のルールを適用する。
【０２３７】
手順生成部１４は，書換えルール“R8”の<Right>の最初のノードの条件である<objectFuntion>Dependより，ターゲットの“Apl1 Server”の関連元の構成要素“Web Server”を特定して（停止，Web Server）の組を生成する。そして，同一階層（ワークレベル）かつノードの先後関係が“関連元”→“関連先”となるように，図４０に示すように，木構造に生成した組を兄ノードとして追加する。
【０２３８】
（３）さらに，“R8”の<Right>の次のノード条件である<actionFunction>Expandにより，手順生成部１４は，（停止，Apl1 Server）の組について，作業展開ルール２１１からワークが“停止”であるルール“W1”を適用して１つ下位のプロシージャレベルの（サーバ停止，Apl1 Server）の組に書き換え，図４１に示すように，木構造に書き換えた組を（停止，Apl1 Server）の子ノードとして追加する。
【０２３９】
（４）手順生成部１４は，プロシージャレベルの（物理サーバ停止，Apl1 Server）の組について，該当する手順書き換えルール２２０があるかを調べる。“サーバ停止”の<actionClass>がProcedure，<actionAttribute>が作業展開ルール２１２よりstopであるため，手順書き換えルール２２０のルール“R5”の<Left>条件に一致するため，“R5”のルールを適用する。
【０２４０】
手順生成部１４は，書換えルール“R5”の<Right>の最初のノードの条件である<objectFuntion>LayerUpより，要素情報１２０から，ターゲットの“Apl1 Server”の直上階層の構成要素“jobnet”を特定し，（ジョブネット停止，jobnet）を生成する。そして，同一階層（ワークレベル）かつノードの先後関係が“上位の構成要素”→“下位の構成要素”となるように，図４２に示すように，木構造に生成した組を兄ノードとして追加する。
【０２４１】
（５）さらに，“R5”の<Right>の次のノード条件である<actionFunction>Expandにより，手順生成部１４は，手順展開ルール２１２から，サーバが“停止”であるルール“P1”を適用して，プロシージャレベルの（サーバ停止，Apl1 Server）を下位の操作レベルの（サーバノード停止，Apl1 Server），（サーバノード停止確認，Apl1 Server）の組に書き換え，図４３に示すように，木構造に子ノードとして追加する。
【０２４２】
なお，作業（ジョブネット停止，jobnet）についても，同様に，（ジョブネット停止，jobnet），（ジョブネット停止確認，jobnet）の組に書き換え，図４４に示すように，木構造に子ノードとして追加する。
【０２４３】
（６）全ての組が（操作，ターゲット）に展開するまで上記の（２）〜（５）に示す書き換え処理を実行する。上記（２）で生成した作業（停止，Webサーバ）についても，元の作業と同様に（３）〜（５）の処理を行う。
【０２４４】
（７）図４５に示すように，全ての組が操作レベルの組（操作，ターゲット）に展開された時点で，操作レベルの組をノードの先後関係に基づいて先頭のノードから順に取り出し，取り出した（操作，ターゲット）の組を並べて作業手順とする。
【０２４５】
図４６は，取り出した操作レベルの組（操作，ターゲット）の列による作業手順の例を示す図である。
【０２４６】
図４７は，作業手順の生成処理の処理フローの例を示す図である。
【０２４７】
手順生成部１４は，作業入力部４０によって入力された対象となる（ワークレベルの作業要素，ターゲット）の組を木構造のルートの子ノードに設定する（ステップＳ１５０）。
【０２４８】
手順生成部１４は，操作レベル以外のノードがあるかを判断し（ステップＳ１５１），操作レベル以外のノードがあれば（ステップＳ１５１のＹ），操作レベル以外のノードを処理対象に設定する（ステップＳ１５２）。
【０２４９】
手順生成部１４は，処理対象のノードに適合する作業手順ルール２１０または手順書き換えルール２２０（ルールの左辺の条件が作業要素と一致するルール）を選択し（ステップＳ１５３），選択したルールの右辺で書き換えたノードを生成する（ステップＳ１５４）。
【０２５０】
手順生成部１４は，新規に生成したノードのアクションにおける階層（図３１参照）が処理対象のノードと同じであるかを判断し（ステップＳ１５５），階層が同じであれば（ステップＳ１５５のＹ），新規に生成したノードを処理対象ノードと同一レベルかつ先行するノード（兄ノード）として木構造に追加する（ステップＳ１５６）。階層が同じでなければ（ステップＳ１５５のＮ），手順生成部１４は，新規に生成したノードを処理対象ノードの１つ下のレベルのノード（子ノード）として木構造に追加する（ステップＳ１５７）。
【０２５１】
ステップＳ１５１の処理で，操作レベル以外のノードがなければ（ステップＳ１５１のＮ），手順生成部１４は，生成された木構造の末端ノード（操作レベルのノード）を順に出力する（ステップＳ１５８）。
【０２５２】
以上説明した本実施の形態の関連推定装置１０によって，作業対象システムのシステム構成情報で不足する，作業対象システムを構成する要素間の関連情報を推定することが可能となる。これにより，すでに運用されているシステムに対しても，作業手順を自動生成する技術の導入が，容易に可能となる。実際に，人手で複数のドキュメントや設定情報から関連情報を洗い出して取得するには，何日にも及ぶ作業が必要となるが，本実施の形態による関連推定装置１０を用いれば，機械的に処理することが可能となるため，短時間での関連情報の取得が可能となる。
【０２５３】
なお，本実施の形態の関連推定装置１０による，システムを構成する要素間の関連を推定する技術は，作業手順の自動生成以外の目的にも利用可能である。例えば，本実施の形態の関連推定装置１０によって，アプリケーション間の関連を推定できるので，その結果を解析することで，システムにおけるアプリケーションの運用状態が分かる。このような情報に基づいて，よりシンプルなシステムの運用が可能となるように，アプリケーションの改修を行うことが可能となる。
【０２５４】
また，関連推定装置１０によって，上位概念で示される作業内容から，作業対象に設定されたシステムの構成要素と構成上および動作上で関連する構成要素に作業を拡張しつつ，作業内容を操作レベルの作業に展開して操作レベルの作業手順を自動的に生成することができる。これにより，作業手順自体を作成する作業負荷を軽減することができる。
【０２５５】
以上，本実施の形態について説明したが，本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【符号の説明】
【０２５６】
１０  関連推定装置
１１  構成情報取得部
１２  構成情報記憶部
１３  手順取得部
１４  手順生成部
１５  ルール記憶部
１６  差分抽出部
１７  特定部
１８  更新部
１９  出力部
２０  ＣＭＤＢ
３０  手順情報記憶部
【図１】
0005974875.tif 000002
【図２】
0005974875.tif 000003
【図３】
0005974875.tif 000004
【図４】
0005974875.tif 000005
【図５】
0005974875.tif 000006
【図６】
0005974875.tif 000007
【図７】
0005974875.tif 000008
【図８】
0005974875.tif 000009
【図９】
0005974875.tif 000010
【図１０】
0005974875.tif 000011
【図１１】
0005974875.tif 000012
【図１２】
0005974875.tif 000013
【図１３】
0005974875.tif 000014
【図１４】
0005974875.tif 000015
【図１５】
0005974875.tif 000016
【図１６】
0005974875.tif 000017
【図１７】
0005974875.tif 000018
【図１８】
0005974875.tif 000019
【図１９】
0005974875.tif 000020
【図２０】
0005974875.tif 000021
【図２１】
0005974875.tif 000022
【図２２】
0005974875.tif 000023
【図２３】
0005974875.tif 000024
【図２４】
0005974875.tif 000025
【図２５】
0005974875.tif 000026
【図２６】
0005974875.tif 000027
【図２７】
0005974875.tif 000028
【図２８】
0005974875.tif 000029
【図２９】
0005974875.tif 000030
【図３０】
0005974875.tif 000031
【図３１】
0005974875.tif 000032
【図３２】
0005974875.tif 000033
【図３３】
0005974875.tif 000034
【図３４】
0005974875.tif 000035
【図３５】
0005974875.tif 000036
【図３６】
0005974875.tif 000037
【図３７】
0005974875.tif 000038
【図３８】
0005974875.tif 000039
【図３９】
0005974875.tif 000040
【図４０】
0005974875.tif 000041
【図４１】
0005974875.tif 000042
【図４２】
0005974875.tif 000043
【図４３】
0005974875.tif 000044
【図４４】
0005974875.tif 000045
【図４５】
0005974875.tif 000046
【図４６】
0005974875.tif 000047
【図４７】
0005974875.tif 000048