"システムの構成変更内容に応じた構成変更の操作手順が示され、該操作手順内で設定する該システムの固有情報が変数名に置き換えられた手順情報の集合から、変更対象のシステムに施す構成変更内容に応じた操作手順を示す手順情報を抽出する抽出部と、前記変更対象のシステムの構成が定義された構成情報から、抽出された手順情報に含まれる変数名に対応する前記変更対象のシステムの固有情報を取得し、抽出された手順情報内の該変数名を、該固有情報に置換する置換部と、を有する情報処理装置。前記置換部は、手順情報の集合に含まれる変数名と、該変数名に対応する固有情報の構成情報内での位置を示す位置情報との対応関係を記憶する記憶装置を参照し、抽出された手順情報に含まれる変数名に対応する固有情報の、前記変更対象のシステムの構成が定義された構成情報内での位置を判断し、該位置から該固有情報を取得することを特徴とする請求の範囲第1項記載の情報処理装置。管理対象のシステムに対して入力された構成変更の一連の操作内容を示す手順ログを取得し、該手順ログ内の固有情報を変数名に置き換えて手順情報の集合に含める正規化部をさらに有することを特徴とする請求の範囲第1項または第2項のいずれかに記載の情報処理装置。前記正規化部は、手順ログ内の予め定義された文字列のパターンに適合する文字列を検出し、該文字列を属性として設定された値を固有情報と判定することを特徴とする請求の範囲第3項記載の情報処理装置。前記正規化部は、管理対象のシステムの構成を示す構成情報から、手順ログ内の変数名に置き換えられた固有情報が設定された属性を検出し、該構成情報内での該属性の出現場所を定義した位置情報を生成する、ことを特徴とする請求の範囲第3項または第4項のいずれかに記載の情報処理装置。前記正規化部は、生成する位置情報に、構成情報内の構成変更に応じて変更される情報までの相対位置を含める、ことを特徴とする請求の範囲第5項記載の情報処理装置。前記正規化部は、複数の手順ログそれぞれから、手順ログに示される一連の操作で変更される構成の変更前の情報と変更後の情報との間を、該手順ログ内の操作に対応するノードを介してエッジで接続した有向グラフを生成し、同じ操作を1つにまとめることで複数の有向グラフを合成した手順グラフによって、手順情報の集合を表現する、ことを特徴とする請求の範囲第3項乃至第6項のいずれかに記載の情報処理装置。前記抽出部は、前記変更対象のシステムに施す構成変更内容に応じた構成変更操作を行った場合の変更前の構成と変更後の構成とを特定し、前記手順グラフをエッジの向きにそって辿ることで該変更前の構成から該変更後の構成となる経路を抽出し、抽出した経路上のノードに対応する一連の操作を、手順内で設定する該システムの固有情報が変数名に置き換えられた手順情報の集合から、変更対象のシステムに施す構成変更内容に応じた手順情報として抽出することを特徴とする請求の範囲第7項記載の情報処理装置。前記抽出部により複数の手順情報が抽出されると、所定の条件に従って、抽出された手順情報を整列させる整列部をさらに有する、ことを特徴とする請求の範囲第1項乃至第8項のいずれかに記載の情報処理装置。前記整列部は、不特定のユーザから利用された回数が多い操作を含む手順情報ほど上位に整列させる、ことを特徴とする請求の範囲第9項記載の情報処理装置。前記整列部は、前記変更対象のシステムを管理するユーザから利用された回数が多い操作を含む手順情報ほど上位に整列させる、ことを特徴とする請求の範囲第9項記載の情報処理装置。前記整列部は、含まれる操作の数が少ない手順情報ほど上位に整列させる、ことを特徴とする請求の範囲第9項記載の情報処理装置。前記整列部は、含まれる操作に応じた処理の所要時間が短い手順情報ほど上位に整列させる、ことを特徴とする請求の範囲第9項記載の情報処理装置。前記整列部は、含まれる操作に占める、前記変更対象のシステムで実行可能な操作の割合が多い手順情報ほど上位に整列させる、ことを特徴とする請求の範囲第9項記載の情報処理装置。システムの構成変更内容に応じた構成変更の操作手順が示され、該操作手順内で設定する該システムの固有情報が変数名に置き換えられた手順情報の集合から、変更対象のシステムに施す構成変更内容に応じた操作手順を示す手順情報を抽出し、前記変更対象のシステムの構成が定義された構成情報から、抽出された手順情報に含まれる変数名に対応する前記変更対象のシステムの固有情報を取得し、抽出された手順情報内の該変数名を、該固有情報に置換する、ことを特徴とする情報処理方法。コンピュータに、システムの構成変更内容に応じた構成変更の操作手順が示され、該操作手順内で設定する該システムの固有情報が変数名に置き換えられた手順情報の集合から、変更対象のシステムに施す構成変更内容に応じた操作手順を示す手順情報を抽出し、前記変更対象のシステムの構成が定義された構成情報から、抽出された手順情報に含まれる変数名に対応する前記変更対象のシステムの固有情報を取得し、抽出された手順情報内の該変数名を、該固有情報に置換する、処理を実行させることを特徴とする情報処理プログラム。しかし、システムの構成変更のために行われる作業内容にはシステムの構成に依存する部分が含まれており、過去の操作履歴やテンプレートをそのまま別構成のシステムに利用することはできない。そのため、過去の操作履歴の手順やテンプレートに対して、管理対象のシステムの構成に合わせた変更を加えるために、変更部分の特定や、適切な変更内容の検討作業が行われており、システムの構成変更作業の効率化が十分ではなかった。1つの側面では、本発明は、システムの構成変更作業の効率化を促進させることができる情報処理装置を提供することを目的とする。1つの案では、抽出部と置換部とを有する情報処理装置が提供される。抽出部は、システムの構成変更内容に応じた構成変更の操作手順が示され、該操作手順内で設定する該システムの固有情報が変数名に置き換えられた手順情報の集合から、変更対象のシステムに施す構成変更内容に応じた操作手順を示す手順情報を抽出する。置換部は、変更対象のシステムの構成が定義された構成情報から、抽出された手順情報に含まれる変数名に対応する変更対象のシステムの固有情報を取得し、抽出された手順情報内の該変数名を、該固有情報に置換する。別の案では、上記情報処理装置と同様の処理をコンピュータで実行する情報処理方法が提供される。さらに別の案では、上記情報処理装置と同様の処理をコンピュータに実行させる情報処理プログラムが提供される。システムの構成変更作業の効率化を促進させることができる。本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。第1の実施の形態図1は、第1の実施の形態に係る装置の機能構成例を示す図である。情報処理装置1は、手順情報記憶部1a、抽出部1b、構成情報記憶部1c、位置情報記憶部1d、および置換部1eを有している。手順情報記憶部1aは、システムの構成変更内容に応じた構成変更の操作手順が示された手順情報の集合を記憶する。なお手順情報は、操作手順内で設定するシステムの固有情報が変数名に置き換えられている。また手順情報は、例えば有向グラフで表現することができる。また、共通する操作を含む複数の手順情報を合成しておくこともできる。抽出部1bは、手順情報の集合から、変更対象のシステムに施す構成変更内容に応じた操作手順を示す手順情報を抽出する。例えば抽出部1bは、端末装置2から、変更対象システムに施す構成変更内容を示す手順要求が入力された場合に、手順要求に応じた手順情報を抽出する。構成情報記憶部1cは、システムの構成が定義された構成情報4a,4b,を記憶する。位置情報記憶部1dは、手順情報の集合に含まれる変数名と、該変数名に対応する固有情報の構成情報内での出現場所を示す位置情報5a,5b,を記憶する。置換部1eは、変更対象のシステムの構成が定義された構成情報から、抽出部1bで抽出された手順情報に含まれる変数名に対応する変更対象のシステムの固有情報を取得する。例えば置換部1eは、位置情報5a,5b,を参照し、構成情報内の固有情報の位置を判断し、該当する位置に設定されている文字列を固有情報として取得する。そして置換部1eは、抽出部1bで抽出された手順情報内の変数名を、構成情報から取得した固有情報に置換する。置換部1eは、例えば、変数名を固有情報に置換後の手順情報を端末装置2に送信する。なお、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。このような情報処理装置1により、以下のような手順で処理が実行される。図2は、第1の実施の形態の処理手順の一例を示すフローチャートである。以下、図2に示す処理をステップ番号に沿って説明する。[ステップS1]抽出部1bは、変更対象のシステムに施す構成変更内容を取得する。例えば抽出部1bは、端末装置2から受信した手順要求から構成変更内容を取得する。[ステップS2]抽出部1bは、手順情報記憶部1aから、構成変更内容に応じた手順情報を抽出する。例えば抽出部1bは、構成変更内容に応じて、変更対象のシステムの構成を変更した場合の変更前の構成と変更後の構成とを特定する。次に抽出部1bは、変更前の構成と変更後の構成との組に対応する手順情報を手順情報記憶部1aから抽出する。[ステップS3]置換部1eは、変更対象のシステムの構成が定義された構成情報から、抽出された手順情報に含まれる変数名に対応する変更対象のシステムの固有情報を取得し、手順情報内の該変数名を、取得した固有情報に置換する。例えば置換部1eは、位置情報記憶部1dを参照し、抽出された手順情報に含まれる変数名に対応する位置情報を取得する。次に置換部1eは、構成情報記憶部1c内の変更対象のシステムの構成情報における取得した位置情報に対応する位置から固有情報を取得する。そして置換部1eは、抽出部1bで抽出された手順情報内の変数を、構成情報記憶部1cから取得した位置情報に置換する。[ステップS4]置換部1eは、変数を位置情報に置換後の手順情報を出力する。例えば置換部1eは、手順要求を出力した端末装置2に、手順情報を出力する。このようにして、変更対象のシステムの固有情報を反映させた手順情報を得ることができる。以下、具体的な動作例を説明する。図3は、第1の実施の形態における手順情報生成例を示す図である。図3には、識別情報がシステム1のシステムのWebサーバソフトウェアを、版数2215から2216に更新する場合の例が示されている。図3の例では、手順要求6が入力されている。手順要求6には、変更対象のシステムの識別情報と、構成の変更内容とが示されている。手順要求6が入力されると、抽出部1bが、システムの構成の変更内容に応じた手順情報を、手順情報記憶部1aから抽出する。図3の例では、Webサーバソフトウェアの版数を2215から2216に更新する手順情報3aが抽出されている。抽出された手順情報3aは、抽出部1bから置換部1eに渡される。置換部1eは、抽出された手順情報3aに含まれる変数名を取得する。図3の例では、変数名var1が取得される。次に、置換部1eは、取得した変数名var1に対応する位置情報を、位置情報記憶部1dから取得する。図3の例では、Serveripaddressという位置情報5aが取得される。この位置情報5aは、Serverという要素の下のipaddressという属性の値が、固有情報であることを示している。そこで置換部1eは、構成情報記憶部1cの変更対象のシステムの構成情報4aを参照し、構成情報4a内の位置情報5aで示される位置の値5678を取得する。次に置換部1eは、抽出された手順情報3a内の変数名var1を固有情報5678に置換した手順情報7を生成する。そして置換部1eは、生成した手順情報7を出力する。例えば、手順要求6が端末装置2から出されたのであれば、手順情報7は端末装置2に送信される。すると端末装置2で手順情報7の内容が表示される。手順情報は、変更対象のシステムに合わせた固有情報が設定されているため、端末装置2を使用するユーザは、手順情報7に示された操作をそのまま端末装置2に入力することで、変更対象のシステムの所望の構成変更を行うことができる。端末装置2を使用するユーザが未実施の手順であっても、迷わず実施することができ、作業効率が向上する。なお、抽出部1bと置換部1eは、情報処理装置1が有するCPUCentralProcessingUnitが備える機能により実現することができる。また、手順情報記憶部1a、構成情報記憶部1c、および位置情報記憶部1dは、情報処理装置1が有するRAMRandomAccessMemoryやハードディスクドライブHDDHardDiskDriveなどにより実現することができる。第2の実施の形態次に第2の実施の形態について説明する。第2の実施の形態は、複数のユーザそれぞれが使用するサーバを統括管理する管理サーバで、ユーザに操作手順を提示し、ユーザのサーバ運用にかかる管理負荷の低減を図るものである。図4は、第2の実施の形態のシステム構成例を示す図である。管理サーバ100には、ネットワーク10を介して複数のICTシステム41~44が接続されている。またネットワーク10には、複数のユーザ21~24それぞれが使用する端末装置31~34が接続されている。ICTシステム41~44は、それぞれ別個のユーザが管理している。またICTシステム41~44は、それぞれ1以上のサーバで構成されている。図4の例では、ユーザ21は、端末装置31を使用してICTシステム41を管理する。またユーザ22は、端末装置32を使用してICTシステム42を管理する。またユーザ23は、端末装置33を使用してICTシステム43を管理する。またユーザ24は、端末装置34を使用してICTシステム44を管理する。管理サーバ100は、ユーザ21~24による端末装置31~34を介したICTシステム41~44に対する操作内容をICTシステム41~44から取得し、操作履歴として保持する。また管理サーバ100は、保持している操作履歴に基づいて、作業内容に応じた操作手順を示す手順グラフを生成する。さらに管理サーバ100は、ユーザ21~24による端末装置31~34からの手順要求に応じて、手順要求を操作するユーザが使用するサーバの構成に適合する操作手順を生成し、手順要求を出力した端末装置に応答する。ここでユーザ21の識別情報ユーザIDはユーザ1、ユーザ22の識別情報ユーザIDはユーザ2、ユーザ23の識別情報ユーザIDはユーザ3、ユーザ24の識別情報ユーザIDはユーザ4であるものとする。またユーザ21~24それぞれが管理するICTシステム41~44は、そのICTシステムを管理しているユーザのユーザIDによって管理サーバ100内で識別するものとする。すなわち第2の実施の形態では、ICTシステムを管理しているユーザのユーザIDが、そのICTシステムの識別情報として用いられる。図5は、管理サーバのハードウェアの一構成例を示す図である。管理サーバ100は、CPU101によって装置全体が制御されている。CPU101には、バス108を介してRAM102と複数の周辺機器が接続されている。RAM102は、管理サーバ100の主記憶装置として使用される。RAM102には、CPU101に実行させるOSOperatingSystemのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に利用される各種データが格納される。バス108に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107がある。HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、管理サーバ100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRTCathodeRayTubeを用いた表示装置や液晶表示装置などがある。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVDDigitalVersatileDisc、DVD-RAM、CD-ROMCompactDiscReadOnlyMemory、CD-RRecordable/RWReWritableなどがある。通信インタフェース107は、ネットワーク10に接続されている。通信インタフェース107は、ネットワーク10を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお図5には管理サーバ100のハードウェア構成を示したが、端末装置31~34およびICTシステム41~44を構成するサーバも、管理サーバ100と同様のハードウェアで実現することができる。また第1の実施の形態に示した情報処理装置1も、図5に示した管理サーバ100と同様のハードウェアにより実現することができる。図6は、管理サーバの機能の一例を示すブロック図である。管理サーバ100は、情報の記憶機能として、手順ログDBDatabase110、構成管理データベースCMDB:ConfigurationManagementDatabase120、変更ログDB130、固有情報パターン記憶部140、変数情報記憶部150、手順グラフDB160、実行可能コマンド記憶部170、および実績記憶部180を有する。手順ログDB110は、複数のICTシステム41~44それぞれに対して行われた操作履歴のうち、サーバの構成を変更させる操作の履歴を示す手順ログを記憶する。例えばRAM102またはHDD103の記憶領域の一部が、手順ログDB110として使用される。なお手順ログは、第1の実施の形態に示す手順情報の一例である。CMDB120は、ICTシステム41~44それぞれの構成情報を記憶する。例えばRAM102またはHDD103の記憶領域の一部が、CMDB120として使用される。変更ログDB130は、ユーザによる一連の操作によってICTシステムの構成が変更された場合の変更内容を記憶する。例えばRAM102またはHDD103の記憶領域の一部が、変更ログDB130として使用される。固有情報パターン記憶部140は、手順ログに含まれる操作内容のうち、ICTシステムまたはICTシステムに含まれるサーバに固有の情報の検出基準を示す固有情報パターンを記憶する。例えばRAM102またはHDD103の記憶領域の一部が、固有情報パターン記憶部140として使用される。変数情報記憶部150は、固有情報の種別を示す変数と、ICTシステムの構成情報内にその変数に対応する固有情報が出現する位置を示すマッチパターンとの対応関係を記憶する。例えばRAM102またはHDD103の記憶領域の一部が、変数情報記憶部150として使用される。手順グラフDB160は、ユーザによって行われた一連の操作をグラフで表した手順グラフを記憶する。例えばRAM102またはHDD103の記憶領域の一部が、手順グラフDB160として使用される。なお手順グラフは、手順ログに示された情報を含んでおり、第1の実施の形態に示した手順情報の一例である。実行可能コマンド記憶部170は、ICTシステム41~44それぞれにおいて実行可能なコマンドのリストを記憶する。例えばRAM102またはHDD103の記憶領域の一部が、実行可能コマンド記憶部170として使用される。実績記憶部180は、各コマンドの実行実績が記憶される。コマンドの実行実績としては、例えばそのコマンドが構成変更の操作に用いられた回数や、コマンドの実行に要した時間である。例えばRAM102またはHDD103の記憶領域の一部が、実績記憶部180として使用される。管理サーバ100には、管理機能として、情報取得部191、正規化部192、グラフ生成部193、候補生成部194、整列部195、および手順実行部196を有する。情報取得部191は、ICTシステム41~44の構成を管理する。例えば情報取得部191は、ICTシステム41~44それぞれから構成情報を取得し、CMDB120に格納する。また情報取得部191は、ICTシステム41~44それぞれの構成の変更操作および変更操作に応じた処理実行状況を示す情報を取得する。例えばICTシステム41~44は、端末装置31~34から入力されたコマンドの情報、およびコマンドの実行に要した時間所要時間を、管理サーバ100に送信する。情報取得部191は、ICTシステム41~44から送信されたコマンドの情報に基づいて、手順ログを生成し、手順ログDB110に格納する。また情報取得部191は、ICTシステム41~44から送信されたコマンドの情報と、コマンドの所要時間とに基づいて、実績記憶部180内の実績情報を更新する。また情報取得部191は、一連の操作に関する手順ログDB110や、その操作による構成の変更内容に基づいて変更ログを生成し、変更ログDB130に格納する。正規化部192は、生成した変更ログの正規化を行う。変更ログの正規化とは、変更ログ内に含まれる、各ICTシステムの固有情報を、その固有情報の種別に応じた変数に置き換える処理である。手順ログや変更ログ内に含まれるIPアドレスなどの固有情報は、ユーザごとに様々である。そこで、正規化部192は、再利用可能な表現に変換する。固有情報を再利用可能な表現に直すため、正規化部192は、固有情報を抽出するステップと、再利用可能な表現に変換するステップとの2ステップの処理を実行する。そして正規化部192は、正規化された変更ログをグラフ生成部193に渡す。また正規化部192は、正規化された固有情報に対応する変数に関し、変数とマッチパターンとの対応関係を変数情報記憶部150に格納する。グラフ生成部193は、正規化された変更ログに基づいて手順グラフを作成する。グラフ生成部193は、作成した手順グラフを手順グラフDB160に格納する。候補生成部194は、端末装置31~34のいずれかから送信された手順要求に応じて、手順グラフDB160から手順候補を抽出する。候補生成部194は、抽出した手順候補を、整列部195に送信する。なお候補生成部194は、第1の実施の形態に示した抽出部1bと置換部1eとの機能を有している。整列部195は、抽出された手順候補を、所定の基準で並べ替える。整列部195は、手順要求を並べ替える際には、例えば実行可能コマンド記憶部170、実績記憶部180などを参照する。整列部195は、整列させた手順候補を、手順要求を送信した端末装置に対して送信する。手順実行部196は、端末装置31~34のいずれかから、実行する操作手順が入力されると、入力された操作手順に従って、操作手順を入力した端末装置を使用するユーザに対応するサーバに対して、操作手順通りのコマンドを実行する。手順実行部196は、操作手順の実行結果に基づいて、実績記憶部180の情報を更新する。なお、図6に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。次に、管理サーバ100で記憶されている各種情報のデータ構造について説明する。まず手順ログDB110のデータ構造について説明する。図7は、手順ログDBのデータ構造の一例を示す図である。手順ログDB110には、ユーザごとの手順ログ111~113が格納されている。手順ログ111~113には、例えばユーザの識別情報ユーザIDに対応付けて、そのユーザが端末装置を用いてサーバに対して入力した一連のコマンドが格納されている。図7の例では、各手順ログ111~113には、Webサーバソフトウェアのアップデートを行う際に入力された一連の操作情報が示されている。操作情報には、例えば操作手順内で入力されたコマンドと、そのコマンド入力時の引数パラメータが含まれる。手順ログ111~113は、入力された操作情報の少なくとも一部が異なる。例えばユーザIDユーザ1のユーザ21の手順ログ111には、telnet192168110、apache2ctlstop、yumupdateapache2、apache2ctlstartというコマンドが順に入力されたことが示されている。一方、ユーザIDユーザ2のユーザ22の手順ログ112には、手順ログ111と同様のコマンドの後に、ロードバランサの設定を行い、使用しなくなったWebサーバの機能を停止する操作手順が示されている。またユーザIDユーザ3のユーザ23の手順ログ113には、手順ログ111のtelnetコマンドに代えて、sshコマンドによってサーバにリモートログインし、Webサーバソフトウェアのアップデートを行った操作手順が示されている。次にCMDB120のデータ構造について説明する。図8は、CMDBのデータ構造の一例を示す図である。CMDB120には、ICTシステムごとの構成情報121,122,が格納されている。CMDB120の構成情報121は、複数の構成アイテムCI:ConfigurationItem121-1,121-2,を有する。ここで、1つのCIは1つのアイテムitemに対応する。アイテムは複数のレコードrecordを持つ。レコードの下に、サーバやネットワークなどの構成情報を任意の形式で持つ。例えばCI121-1は、アイテムのIDやタイプが設定された要素121aの下に、レコードを示す要素121b,121e,が設定されている。レコードを示す要素121bの下には、階層構造で複数の要素121c,121dが設定されている。各要素121c,121d内の先頭の1行は、要素名である。例えば要素121cの要素名は、Serverである。また各要素内の要素名の下の各行の文字列が属性を表している。例えば要素121c内のipaddress192168110が1つの属性であり、このうち192168110がその属性の値である。なお、CMDB120内の構成情報が更新された場合、例えば更新時に行われた操作の操作手順に応じた手順グラフを作成するまでは、更新前の情報もCMDB120内またはRAM102内に保持される。図8の構成情報121は、ユーザ1のユーザ21が管理するICTシステム41の構成情報の例である。CMDB120内のデータの位置は、例えばXPathXMLPathLanguageで指定できる。ここでXPathは、W3CWorldWideWebConsortiumで策定された、XMLExtensibleMarkupLanguageに準拠した文書の特定の部分を指定する言語構文である。次に変更ログDB130のデータ構造について説明する。図9は、変更ログDBのデータ構造の一例を示す図である。変更ログDB130には、変更ログ131~133が格納されている。変更ログ131~133には、ユーザIDに対応付けて、CMDBの変更箇所と変更内容を示す情報が設定されている。図9の例では、変更箇所がXPathによって示されている。また変更内容が、変更前の情報から変更後の情報へ矢印で指し示すことで表されている。例えば変更ログ131では、構成情報121におけるServerServeripaddress192168110and...SoftwarenameApacheand...version2215で示される位置の2215が、2216に変更されたことが示されている。このような変更ログを保持しておくことで、CMDB内の構成情報が変更された場合の変更部分の変更前情報と変更後情報とを、変更ログに基づいて再現することができる。次に固有情報パターン記憶部140のデータ構造について説明する。図10は、固有情報パターン記憶部のデータ構造の一例を示す図である。固有情報パターン記憶部140には、固有情報表141が格納されている。固有情報表141には、固有情報とパターンとの欄が設けられている。固有情報の欄には、固有情報の種別名が設定される。パターンの欄には、固有情報の欄に示される種別の情報が変更ログ内で記述されるときのパターンが設定される。このように固有情報の抽出用に、予め、固有情報とみなすデータのパターンが固有情報表141に登録される。固有情報としては、IPアドレス、ユーザ情報、マシン名、などがある。図10の例では、IPアドレスを固有情報とし、CMDB内のデータにマッチするXPathがパターンとして登録されている。例えば種別がIPアドレスである固有情報のパターンとして、ipaddressが設定されている。これは、変更ログ内のipaddressに合致する部分変数ipaddressに設定されている値が、固有情報IPアドレスであることを示している。次に変数情報記憶部150のデータ構造について説明する。図11は、変数情報記憶部のデータ構造の一例を示す図である。変数情報記憶部150には、変数対応表151が格納されている。変数対応表151には、変数名とマッチパターンとの欄が設けられている。変数名の欄には、正規化処理によって生成された変数名が設定される。マッチパターンの欄には、変数名で示される変数に対応する固有情報が出現する位置を示すマッチパターンが設定される。例えば変数名var1に対応する固有情報が、ServerobservedServerSoftwareversion2215ipaddressで示される位置のパラメータの値として設定されることが示されている。なお変数名var2に対応付けられたマッチパターンは、そのマッチパターン内に別の変数名var3を含んでいる。これは、マッチパターン内に固有情報が含まれていたため、マッチパターン生成時に、固有情報から変数名への置換が行われたことを表す。次に、手順グラフDB160のデータ構造について説明する。図12は、手順グラフDBのデータ構造の一例を示す第1の図である。手順グラフDB160には、手順グラフ161が格納されている。図12に示す手順グラフ161は、3つの入力情報161a,161b,161cのいずれかから、3つの出力情報161d,161e,161fのいずれかに構成を遷移させる操作手順が、有向グラフによって示されている。操作手順は、複数のノード161g,161h,161i,161j,161k,161l,161m,161n,161o,161pをエッジで接続することによって表現されている。各ノードは、操作手順内の行われた各操作を示す操作情報に対応する。ノードを接続するエッジは、操作が行われた順番を矢印で示している。エッジは、ある操作に対応するノードから、その操作の次に行われた操作に対応するノードを指している。次に実行可能コマンド記憶部170のデータ構造について説明する。図13は、実行可能コマンド記憶部のデータ構造の一例を示す図である。実行可能コマンド記憶部170には、ICTシステムごとのコマンドリスト171,172,が格納されている。コマンドリスト171,172,には、ICTシステムを管理するユーザのユーザIDに対応付けて、管理対象のICTシステムで実行可能なコマンドのリストが登録されている。ICTシステムで実行可能なコマンドは、例えばICTシステムに対してインストールされたプログラムを呼び出すコマンドである。次に実績記憶部180のデータ構造について説明する。図14は、実績記憶部のデータ構造の一例を示す図である。実績記憶部180には、ユーザごとの操作実績表181,182,と所要時間実績表180aとが格納されている。操作実績表181,182,それぞれには、ユーザIDが設定されている。また操作実績表181,182,には、操作と実績との欄が設けられている。操作の欄には、ユーザIDで示されるユーザが管理するICTシステムにおいて実行されたコマンドが設定される。実績の欄には、対応するコマンドが実行された回数が設定される。所要時間実績表180aには、操作と所要時間との欄が設けられている。操作の欄には、いずれかのICTシステムにおいて実行されたコマンドが設定される。所要時間の欄には、対応するコマンドを実行した際の実行の所要時間の平均値が、秒単位で設定される。なお、各コマンドの所要時間は、例えばICTシステムでコマンドが実行されるごとに更新される。また各コマンドの所要時間は、例えば、予め計測した値を固定的に設定しておいてもよい。以上のような構成の管理サーバ100において、手順グラフの作成処理および、作成された手順グラフに基づく手順候補提供処理が行われる。<<手順グラフ作成処理>>まず手順グラフ作成処理について詳細に説明する。図15は、手順グラフ作成処理の手順の一例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。[ステップS11]情報取得部191は、ICTシステムによる操作の実行状況を取得し、手順ログDB110、CMDB120、および実績記憶部180内の情報を更新する。また情報取得部191は、CMDB120に格納された構成情報の変更に伴い、変更ログを生成し、変更ログDB130に格納する。[ステップS12]正規化部192は、変更ログDB130に格納された変更ログに基づいて、ICTシステムまたはICTシステムに含まれるサーバの固有情報の抽出処理を実行する。この処理の詳細は後述する図17、図18参照。[ステップS13]正規化部192は、固有情報の種別ごとに、その種別の固有情報が出現する位置を示すマッチパターンを生成する。この処理の詳細は後述する図20参照。[ステップS14]正規化部192は、マッチパターンに適合する位置の固有情報の正規化を行う。正規化処理では、例えば正規化部192は、固有情報を、その固有情報の種別に対応する変数に置き換える。この処理の詳細は後述する図25参照。[ステップS15]グラフ生成部193は、入出力情報を抽出する。例えばグラフ生成部193は、手順ログで示される操作手順によりICTシステムで処理が実行されたことで構成情報が変更されたときの変更部分の変更前情報を入力情報とし、変更部分の変更後情報を出力情報とする。[ステップS16]グラフ生成部193は、入力情報から出力情報へ構成情報を遷移させる有向グラフを作成する。この処理の詳細は後述する図31参照。[ステップS17]グラフ生成部193は、有向グラフを合成し、手順グラフ161を生成する。グラフ生成部193は、生成した手順グラフ161を手順グラフDB160に格納する。この処理の詳細は後述する図35~39参照。このような手順で、手順グラフ161が作成される。以下、図15に示す各処理を詳細に説明する。<操作の実行状況に応じた情報の更新処理>まず操作の実行状況に応じた情報の更新処理図15のステップS11について説明する。例えば情報取得部191は、ICTシステムから、ユーザが使用する端末装置から入力された一連の操作を取得する。一連の操作は、例えばICTシステムに入力されたコマンドとそのコマンドの引数とで表される。また情報取得部191は、例えば所定の期間内に入力された複数の操作を、一連の操作と認識する。情報取得部191は、取得した一連の操作を含む手順ログを生成する。そして情報取得部191は、生成した手順ログを、操作されたICTシステムを管理するユーザのユーザIDに対応付けて、手順ログDB110に格納する。なお情報取得部191は、例えばICTシステムの識別情報と、そのICTシステムを管理しているユーザのユーザIDとの対応関係を、予めメモリなどの記憶装置に記憶させている。そして情報取得部191は、一連の操作の取得元のICTシステムに対応するユーザIDを、その一連の操作に基づいて生成した手順ログに付与する。また情報取得部191は、取得した一連の操作に応じて、実績記憶部180内の実績情報を更新する。例えば情報取得部191は、一連の操作を行ったユーザのユーザIDに対応する操作実績表に対して、一連の操作に含まれる各コマンドの実績の値を、操作により実行されたコマンドの数だけカウントアップする。また情報取得部191は、一連の操作に含まれるコマンドの所要時間を、ICTシステムから取得する。そして情報取得部191は、実行されたコマンドの所要時間に基づいて、所要時間実績表180aにおけるそのコマンドの所要時間を更新する。また情報取得部191は、ICTシステムに一連の操作が行われたことにより、ICTシステムの構成が変更された場合、変更後の構成情報をICTシステムから取得し、CMDB120に格納する。ここで、ICTシステムに対して構成変更を伴う一連の操作が行われ、そのICTシステムの構成が変更されると、CMDB120内の構成情報も変更される。構成情報の内容が変更されると、情報取得部191により変更内容を示す変更ログが生成される。図16は、変更ログの生成例を示す図である。図16には、ユーザIDユーザ1のユーザ21により、手順ログ111で示された操作が行われた場合の変更ログ131の例が示されている。手順ログ111で示された操作が行われた場合、ICTシステム41では、Webサーバソフトウェアのアップデート処理が行われる。例えば、Webサーバソフトウェアのバージョンが、2.2.15から2.2.16に更新されたものとする。この場合、情報取得部191は、CMDB120内のユーザ21に対応する更新前の構成情報121から、Webサーバソフトウェアのバージョンを示す位置のXPathとバージョン番号とを含む変更前情報51を生成する。また情報取得部191は、CMDB120内のユーザ21に対応する構成情報121を更新し、更新後の構成情報121から、Webサーバソフトウェアのバージョンを示す位置のXPathとバージョン番号とを含む変更後情報52を生成する。そして、情報取得部191は、変更前情報51に対する変更後情報52の変更内容を示す変更ログ131を生成する。変更ログ131では、変更前情報51における変更された部分について、変更前の値→変更後の値という記載に置き換えることで、変更内容が表されている。例えば図16の例では、変更ログ131では、バージョン番号が記載された部分が2215→2216とされている。これにより、バーションが、2.2.15から2.2.16に更新されたことが示されている。このようにして生成された変更ログ131は、情報取得部191により変更ログDB130に格納される。<固有情報の抽出処理>次に固有情報の抽出処理図15のステップS12について説明する。図17は、固有情報抽出処理の手順の一例を示すフローチャートの前半である。固有情報抽出処理の前半では、変更ログから固有情報が抽出される。以下、図17に示す処理をステップ番号に沿って説明する。[ステップS21]正規化部192は、変更ログDB130内に未処理の変更ログがあるか否かを判断する。未処理の変更があれば、正規化部192は処理をステップS22に進める。すべての変更ログに対してステップS22~S24の処理が完了していれば、正規化部192は、処理をステップS31図18参照に進める。[ステップS22]正規化部192は、変更ログDB130内の未処理の変更ログを1つ選択する。[ステップS23]正規化部192は、選択した変更ログが、固有情報パターン記憶部140内の固有情報表141に設定されているパターンに適合する情報が含まれるか否かを判断する。例えば正規化部192は、変更ログ内のデータの位置が、固有情報表141にあるパターンに合致すれば、そのデータを固有情報とみなし、変換の対象とする。図9に示した変更ログ131の場合、ServerServeripaddress192168110and...SoftwarenameApacheand...version2215→2216というXPathがある。正規化部192は、この変更ログ131のうち、固有情報表141のパターンipaddressが合致する部分の値192168110を、固有情報と判断する。適合する情報があれば、正規化部192は処理をステップS24に進める。適合する情報がなければ、正規化部192は処理をステップS21に進める。[ステップS24]正規化部192は、選択した変更ログ内の適合する場所の文字列を抽出し、置換対象表に追加する。例えば正規化部192は、文字列の抽出元の変更ログに対応するユーザIDと文字列との組を、置換対象表に追加する。その後、正規化部192は処理をステップS21に進める。このようにして、変更ログから固有情報が抽出される。例えば図9に示した変更ログ131~133には、各ICTシステムに含まれるサーバのIPアドレスが、固有情報として含まれている。そこで、変更ログ131~133から固有情報としてIPアドレスが抽出される。図18は、固有情報抽出処理の手順の一例を示すフローチャートの後半である。固有情報抽出処理の後半では、手順ログから固有情報が抽出される。以下、図18に示す処理をステップ番号に沿って説明する。[ステップS31]正規化部192は、手順ログDB110内の手順ログのうち、ステップS32~S41の処理が未処理の手順ログがあるか否かを判断する。未処理の手順ログがあれば、正規化部192は処理をステップS32に進める。未処理の手順ログがなければ、正規化部192は固有情報抽出処理を終了する。[ステップS32]正規化部192は、未処理の手順ログのうちの1つを選択する。[ステップS33]正規化部192は、ステップS32で選択した手順ログ内に、ステップS34~S41の処理が未処理の操作情報があるか否かを判断する。正規化部192は、未処理の操作情報があれば処理をステップS34に進める。正規化部192は、未処理の操作情報がなければ、処理をステップS31に進める。[ステップS34]正規化部192は、ステップS32で選択した手順ログから、未処理の操作情報を1つ選択する。[ステップS35]正規化部192は、選択した操作情報から文字列群を抽出する。例えば正規化部192は、スペースを区切りとして、操作情報を複数の文字列に分割する。そして正規化部192は、分割して得られた文字列を抽出する。[ステップS36]正規化部192は、ステップS35で抽出した文字列のうち、ステップS37~S41の処理が未処理の文字列があるか否かを判断する。正規化部192は、未処理の文字列があれば処理をステップS37に進める。また正規化部192は、未処理の文字列がなければ処理をステップS33に進める。[ステップS37]正規化部192は、ステップS35で抽出した文字列のうち、未処理の文字列を1つ選択し、変数Xに設定する。[ステップS38]正規化部192は、選択した変更ログに対応するユーザと同じユーザのCMDB120内の構成情報を参照し、その構成情報に変数Xに設定された文字列があるか否かを判断する。正規化部192は、変数Xに設定された文字列があれば、処理をステップS39に進める。また正規化部192は、変数Xに設定された文字列がなければ、処理をステップS36に進める。[ステップS39]正規化部192は、構成情報における、変数Xの文字列と一致する文字列が出現した場所と、固有情報表141のパターンとを比較する。[ステップS40]正規化部192は、比較の結果、変数Xの文字列の構成情報内での出現場所が、固有情報表のパターンに適合するか否かを判断する。正規化部192は、パターンに適合する場合、処理をステップS41に進める。また正規化部192は、パターンに適合しない場合、処理をステップS36に進める。[ステップS41]正規化部192は、変数Xに設定した文字列を、置換対象表に追加する。例えば正規化部192は、文字列の抽出元の手順ログに対応するユーザIDと文字列との組を、置換対象表に追加する。その後、正規化部192は処理をステップS36に進める。このように、手順ログ内の操作情報ごとに、スペース区切りなどで文字列が抽出され、CMDB内の構成情報が探索される。そして構成情報内の一致した文字列の場所が固有情報表のパターンに示されるXPathに適合するか判断される。パターンにも一致した場合、その文字列が固有情報と判断される。例えば、図7に示した手順ログ111を見ると、最初の操作情報内に192168110という文字列がある。ユーザIDユーザ1のユーザ21に対応するCMDB120内の構成情報121を調べると、Serveripaddress192168110というCIに合致する。このCIのipaddressは、固有情報表141のXPathipaddressに合致する。そこで、192168110が固有情報であると判断される。このようにして、手順ログや変更ログから抽出された固有情報の文字列が、置換対象表に登録される。以下、置換対象表に登録された文字列を、元文字列と呼ぶ。図19は、置換対象表のデータ構造の一例を示す図である。図19には、図7に示す手順ログ111~113のそれぞれに対応する操作手順が行われた場合に生成される置換対象表53a,53b,53cが示されている。置換対象表53a,53b,53cには、ユーザと文字列との欄が設けられている。ユーザの欄には、固有情報の抽出元の手順ログまたは変更ログに対応するユーザのユーザIDが設定される。文字列の欄には、固有情報として抽出された文字列が設定される。このような置換対象表53a,53b,53cは、例えば正規化部192が管理するRAM102内の記憶領域に格納される。<マッチパターン生成処理>次にマッチパターン生成処理図15のステップS13について説明する。固有情報が抽出されると、CMDB120内の各構成情報から抽出された固有情報が再利用可能な表現に変換される。固有情報を再利用可能な表現に変換する際、同種の構成を同様に表現できるパターンに変換する。ここでは、CMDB120を用いる例で説明する。CMDBでは、構成情報を共通のデータ記述形式スキーマで表現できるため、同種の構成を同様に表現できる。例えば、図7に示した手順ログ111には、固有情報としてIPアドレス192168110がある。このIPアドレスは、ユーザIDユーザ1のユーザ21の構成情報121図8参照に存在するサーバtypeServerの要素のIPアドレスipaddressの要素の値192168110に対応する。このIPアドレスの位置は、CMDB120を用いればServeripaddressのようにXPathで表現できる。これは、異なるユーザの構成情報に対しても用いることのできる表現である。このような固有情報の値が出現するCMDB上の位置を表すXPathが、マッチパターンの一例である。マッチパターンは、構成要素の種別名例ServerSoftware、アプリケーション名例Apacheなど、操作手順を抽象化し再利用することのできるパターンであれば、CMDB上で表すXPath以外の形式で表現してもよい。以下の説明では一例として、CMDB120上で表すXPathを用いたマッチパターンで置換対象を表現するものとする。図20は、マッチパターン生成処理の手順の一例を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。[ステップS51]正規化部192は、置換対象表に、ステップS52~S58の処理が未処理の置換対象があるか否かを判断する。正規化部192は、未処理の置換対象があれば処理をステップ52に進める。また正規化部192は、未処理の置換対象がなければマッチパターン生成処理を終了する。[ステップS52]正規化部192は、置換対象表から未処理の置換対象を1つ選択し、変数Xに設定する。[ステップS53]正規化部192は、選択した置換対象に対応するユーザIDに対応する構成情報のCIのうち、置換対象の元文字列を含むCIを取得する。[ステップS54]正規化部192は、取得したCIのitemのtypeの文字列を変数Aに設定する。[ステップS55]正規化部192は、取得したCIのrecordのtypeの文字列を変数Bに設定する。[ステップS56]正規化部192は、recordの下の要素を変数Eに設定する。また変数Cと変数Dとの内容を空にする。[ステップS57]正規化部192は、変数Eで示される子要素に関して、子要素解析処理を行う。この処理の詳細は後述する図21参照。[ステップS58]正規化部192は、変数Mに、A/BC/Dという値を設定する。ここでで囲まれた文字は、その文字が変数Mに設定される。A,B,C,Dの位置には、それぞれの変数の値が設定される。その後、正規化部192は、処理をステップS51に進める。図21は、子要素解析処理の手順の一例を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。[ステップS61]正規化部192は、変数Cに設定されている値に対して、文字/と変数Eの値とを後方に追加する。この処理は、式C=/Eの要素名で表される。この式の=は複合代入演算子であり、この式は、現在の変数Cの値の後に、右辺に示された値を追加し、新たに変数Cの値とすることを示している。[ステップS62]正規化部192は、変数Eで示される要素内の属性のうち、ステップS63の処理が未処理の属性があるか否かを判断する。正規化部192は、未処理の属性があれば処理をステップS63に進める。また正規化部192は、未処理の属性がなければ、処理をステップS67に進める。[ステップS63]正規化部192は、変数Eで示される要素内の未処理の属性を1つ取得し、変数Yに設定する。[ステップS64]正規化部192は、変数Yに設定した属性の値が、置換対象の元文字列を示す変数Xの値と等しいか否かを判断する。正規化部192は、等しい場合、処理をステップS65に進める。正規化部192は、等しくない場合、処理をステップS62に進める。[ステップS65]正規化部192は、変数Cに設定されている値に対して、相対位置/Y=Yの属性値を後方に追加する。この処理は、式C=相対位置/Y=Yの属性値で表される。この式の=は複合代入演算子である。ここで相対位置とは、置換対象の元文字列と等しい値の属性の位置から、置換対象の抽出元となった操作手順に対応する変更ログの変更前情報変更された位置を示すXPathで示される位置までの相対的な位置を示すXPathである。[ステップS66]正規化部192は、変数Yの値を変数Dに設定する。その後、子要素解析処理を終了する。[ステップS67]現在の変数Eで示される要素内に変数Xと同じ属性値の属性がない場合ステップS62でNO、正規化部192は、変数Dの値が空であり、かつ変数Eで示される要素の子要素があるか否かを判断する。変数Dが空であり、かつ子要素があれば、正規化部192は、処理をステップS68に進める。また変数Dが空でないか、もしくは子要素がない場合、正規化部192は、子要素解析処理を終了する。[ステップS68]正規化部192は、現在の変数Eで示される要素の子要素のうち、未選択の子要素を1つ取得し、新たに変数Eに設定する。[ステップS69]正規化部192は、再帰的に子要素解析処理を行う。正規化部192は、再帰呼び出しにより実行した子要素解析処理が終了すると、処理をステップS67に進める。このようにして、抽出された置換対象ごとに、置換対象の元文字列を有するCIに基づいてマッチパターンが生成される。特に、変更についての相対位置を示すXPathをマッチパターンに含めることで、より変更内容と連携したマッチパターンとなる。以下、具体的なマッチパターンの生成例を説明する。図22は、マッチパターン生成の一例を示す図である。図22では、ユーザ21ユーザIDユーザ1の操作に基づく手順ログから抽出されたIPアドレス192168110が置換対象54である場合のマッチパターン56の生成例である。置換対象54は、ユーザIDユーザ1に対応付けられている。そのため、ユーザ1に対応する構成情報121内のCIのうち、置換対象54の元文字列を有するCI121-1が取得される。CI121-1の情報から、要素121a内のitemのtypeの文字列Serverが取得され、変数Aに設定される。また要素121b内のrecordのtypeの文字列observedが取得され、変数Bに設定される。さらに変数Cと変数Dとの値を空C=D=にして、要素121bの下の要素121cの属性群について以下の処理が行われる。まず、変数Cに要素121cの要素名Serverが設定されるC要素名。その後、属性ごとに、値が置換対象54の元文字列192168110に等しいか調べられる。そして置換対象54の元文字列と等しい値を有する属性ipaddressが、変数Dに設定される。さらに、変数Dに設定された属性から、変更ログの変更前情報51における変更対象の属性の位置までの相対位置Software、その変更対象の変数version、変更対象の属性の値2215が相対位置属性値として、変数Cに追加される。もしDかつ、子要素があれば、再帰的に子の要素が処理される。そして、変数A,B,C,DをA/BC/Dという形式で組み合わせたXPathが、マッチパターン56となる。このようにして、置換対象の元文字列に対するマッチパターンが生成される。<固有情報置換処理>次に固有情報置換処理図15のステップS14について説明する。マッチパターンが生成されたとき、変数対応表151図11参照に該当するマッチパターンが既に存在すれば、それに対応する変数名が用いられる。存在しなければ、新たな変数名が一意に作成され、マッチパターンと共に変数対応表151に追加される。例えば正規化部192は、マッチパターンに対する変数名を、元文字列を置換する変数名とし、変換表に登録する。図23は、変数名の設定例を示す図である。図23の例では、元文字列192168110に対して変数名var1が対応付けられており、元文字列と変数名との組が変換表58aに登録されている。また、登録された元文字列192168110に基づいて生成されたマッチパターンに、その元文字列と同じ変数名var1が対応付けられており、変数名とマッチパターンとの組が変数対応表151に登録されている。変換表は、手順ログが取得されるごとに生成される。図24は、変換表の一例を示す図である。変換表58aは、ユーザIDユーザ1に対応する変更ログ131および手順ログ111に基づいて生成されたものである。変換表58bは、ユーザIDユーザ2に対応する変更ログ132および手順ログ112に基づいて生成されたものである。変換表58cは、ユーザIDユーザ3に対応する変更ログ133および手順ログ113に基づいて生成されたものである。正規化部192は、変換表58aに基づいて、手順ログ内の固有情報を、変数名で変換する。ここで、マッチパターン内に固有情報が含まれている場合もある。そこで正規化部192は、マッチパターン内に固有情報が含まれているか否かを、固有情報の抽出時に確認する。もし含まれていれば、正規化部192は、上記のフローで変数対応表や変換表への登録と置換を行う。図25は、固有情報置換処理の手順の一例を示すフローチャートである。以下、図25に示す処理をステップ番号に沿って説明する。なお図25に示す処理は、マッチパターンが生成されるごとに行われる。[ステップS71]正規化部192は、生成されたマッチパターンを変数Mに設定し、と、そのマッチパターンの生成元となった元文字列を変数Oに設定する。[ステップS72]正規化部192は、変数対応表151に、変数Mに設定されたマッチパターンと同じマッチパターンが存在するか否かを判断する。同じマッチパターンが存在すれば、正規化部192は、処理をステップS73に進める。同じマッチパターンが存在しなければ、処理をステップS74に進める。[ステップS73]正規化部192は、変数Mのマッチパターンに対して変数対応表151で対応付けられている変数名を、変数Vに設定する。正規化部192は、その後、処理をステップS76に進める。このとき、正規化部192は、変数Oに設定された元文字列と、変数Vに設定された変数名との組を変換表に追加登録する。[ステップS74]正規化部192は、新たな変数名を作成し、変数Vに設定する。新たに作成する変数名は、変数対応表151に既に設定されている変数名と異なる名称である。このとき、正規化部192は、変数Oに設定された元文字列と、変数Vに設定された変数名との組を変換表に追加登録する。[ステップS75]正規化部192は、変数Vに設定された変数名と、変数Mに設定されたマッチパターンとの組を、変数対応表151に追加登録する。[ステップS76]正規化部192は、マッチパターンの生成元となった手順ログおよび変更ログ内の、変数Oに設定された元文字列と同じ文字列を、変数Vに設定された変数名に置換する。このようにして、固有情報が置換される。図26は、変更ログの正規化の例を示す図である。図26の例では、変更ログ131内の192168110という文字列が、置換対象の元文字列である。正規化部192は、変更前情報51やCMDB120を参照し、変換表58aや変数対応表151を用いて、元文字列をvar1という変数名に置換している。そして、元文字列が置換された正規化変更ログ131aが生成される。変更ログ内の固有情報を変数名に置換したのと同様に、対応する手順ログの固有情報が変数名に置換される。図27は、手順ログの正規化の例を示す図である。図27の例では、手順ログ111内の192168110という文字列が、置換対象の元文字列である。正規化部192は、変更前情報51やCMDB120を参照し、変換表58aや変数対応表151を用いて、元文字列をvar1という変数名に置換している。そして、元文字列が置換された正規化手順ログ111aが生成される。なお、手順ログの正規化に先立って変更ログの正規化が行われている場合、変更ログの置換処理によって変数対応表や変換表に既に登録されている情報を流用することができる。例えば、手順ログ111の場合、192168110が固有情報として抽出される。これにマッチするマッチパターンの変数名は、既に変数対応表にvar1として登録されている。また、変換表にも既にvar1として登録されている。よって、特にこれらの表に変更はなく、手順ログ111内の元文字列が、変数名に置換される。図28は、正規化後の手順ログDBの例を示す図である。図28に示すように、正規化手順ログ111a,112a,113aでは、各ICTシステムに固有のIPアドレスが、すべて変数名に変更されている。図29は、正規化後の変更ログDBの例を示す図である。図29に示すように、正規化変更ログ131a,132a,133aでは、各ICTシステムに固有のIPアドレスが、すべて変数名に変更されている。また、図28、図29に示した手順ログと変更ログの正規化に伴って、図11に示したような変数対応表151が生成される。<入出力情報の抽出>次に、入出力情報の抽出処理図15のステップS15について説明する。グラフ生成部193は、手順ログに示される一連の操作に応じた処理をICTシステムが実行した場合における、構成情報の変更部分の変更前情報を入力情報とし、変更部分の変更後情報を出力情報として抽出する。図30は、入出力情報の抽出例を示す図である。図30の例は、手順ログ111に示された一連の操作が実行された場合の入力情報と出力情報との抽出例である。この例では、構成情報におけるWebサーバのバーション番号が変更されているため、変更前のバージョン番号と、そのバージョン番号の位置を示す変更前情報51が入力情報として抽出される。また変更後のバージョン番号と、そのバージョン番号の位置を示す変更後情報52が出力情報として抽出される。このような入出力情報の抽出処理が、すべての手順ログに応じて行われる。<有向グラフの作成>次に有向グラフの作成処理図15のステップS16について説明する。有向グラフの作成処理では、グラフ生成部193は、手順ログ内の操作それぞれを示す操作情報をノードとして分解し、エッジで接続する。そしてグラフ生成部193は、最初の操作情報を入力情報とエッジで接続し、最後の操作を出力情報とエッジで接続する。図31は、有向グラフ作成処理の手順の一例を示すフローチャートである。以下、図31に示す処理をステップ番号に沿って説明する。なお、以下の処理は、手順ログの正規化が行われるごとに、正規化手順ログに対して実行される。[ステップS81]グラフ生成部193は、正規化手順ログから、最初の操作を示す操作情報を抽出し、変数oに代入する。またグラフ生成部193は、変数oに設定された操作情報を、変数osに代入する。このときグラフ生成部193は、変数oに設定された操作情報に対応するノードを生成する。[ステップS82]グラフ生成部193は、正規化手順ログ内に、ステップS83~S85の処理が未処理の操作情報があるか否かを判断する。未処理の操作情報があれば、グラフ生成部193は、処理をステップS83に進める。また未処理の操作情報がなければ、グラフ生成部193は、処理をステップS86に進める。[ステップS83]グラフ生成部193は、次の操作情報を抽出し、変数onに代入する。[ステップS84]グラフ生成部193は、変数onに設定された操作情報に対応するノードを生成し、変数oのノードから変数onのノードに向けてエッジを接続する。[ステップS85]グラフ生成部193は、変数onに設定されている操作情報を、変数oに代入する。その後、グラフ生成部193は、処理をステップS82に進める。[ステップS86]グラフ生成部193は、すべての操作情報に対するステップS83~S85の処理が終了すると、変数onの操作情報を、変数oeに代入する。[ステップS87]グラフ生成部193は、入力情報から変数osに設定された操作情報に対応するノードに向け、エッジを接続する。[ステップS88]グラフ生成部193は、変数oeに設定された操作情報に対応するノードから出力情報に向け、エッジを接続する。このような処理が各正規化手順ログについて実行されることで、正規化手順ログごとの有向グラフが生成される。図32は、有向グラフの第1の例を示す図である。図32には、図28に示した正規化手順ログ111aに対応する有向グラフ61が示されている。有向グラフ61は、入力情報61a、出力情報61b、および複数のノード61c,61d,61e,61fを有している。各ノード61c,61d,61e,61fには、それぞれ正規化手順ログ111aに含まれる操作情報が対応付けられている。各ノード61c,61d,61e,61fは、対応する操作情報で示される操作が行われた順に、エッジで接続されている。また入力情報61aから最初の操作情報に対応するノード61cに向けて、エッジが接続されている。さらに最後の操作情報に対応するノード61fから出力情報61bに向けて、エッジが接続されている。図33は、有向グラフの第2の例を示す図である。図33には、図28に示した正規化手順ログ112aに対応する有向グラフ62が示されている。有向グラフ62は、3つの入力情報62a,62b,62c、3つの出力情報62d,62e,62f、および複数のノード62g,62h,62i,62j,62k,62l,62m,62nを有している。正規化手順ログ112aに対応する操作手順で操作が行われたとき、CMDB120内の構成情報において3箇所の変更があったため、有向グラフ62は、入力情報と出力情報とが3つずつとなっている。図34は、有向グラフの第3の例を示す図である。図34には、図28に示した正規化手順ログ113aに対応する有向グラフ63が示されている。有向グラフ63は、入力情報63a、出力情報63b、および複数のノード63c,63d,63e,63fを有している。図32~図34に示した有向グラフ61~63は、例えばグラフ生成部193が管理するRAM102内の記憶領域に一時的に格納される。<有向グラフの合成>次に有向グラフの合成処理について説明する。グラフ生成部193は、生成した有向グラフ61~63を、1つの有向グラフに合成する。合成処理によって得られた有向グラフが、図12に示した手順グラフ161となる。図35は、有向グラフ合成処理の手順の一例を示すフローチャートである。以下、図35に示す処理をステップ番号に沿って説明する。[ステップS91]グラフ生成部193は、手順グラフEの初期状態を定義する。初期状態の手順グラフEは、空の状態である。すなわち入力情報、出力情報、およびノードを有していない手順グラフEが定義される。[ステップS92]グラフ生成部193は、入力情報合成処理を行う。この処理の詳細は後述する図36参照。[ステップS93]グラフ生成部193は、出力情報合成処理を行う。この処理の詳細は後述する図37参照。[ステップS94]グラフ生成部193は、ノード合成処理を行う。この処理の詳細は後述する図38参照。[ステップS95]グラフ生成部193は、エッジ合成処理を行う。この処理の詳細は後述する図39参照。以下、図35に示した各ステップの詳細について説明する。図36は、入力情報合成処理の手順の一例を示すフローチャートである。以下、図36に示す処理をステップ番号に沿って説明する。[ステップS101]グラフ生成部193は、処理対象の複数の有向グラフのうち、ステップS102~S106の処理が未処理の有向グラフがあるか否かを判断する。グラフ生成部193は、未処理の有向グラフがあれば処理をステップS102に進める。またグラフ生成部193は、未処理の有向グラフがなければ、入力情報合成処理を終了する。[ステップS102]グラフ生成部193は、未処理の有向グラフのうちの1つを選択し、対象グラフGとする。[ステップS103]グラフ生成部193は、対象グラフGに、ステップS104~S106の処理が未処理の入力情報があるか否かを判断する。グラフ生成部193は、未処理の入力情報があれば処理をステップS104に進める。またグラフ生成部193は、未処理の入力情報がなければ、処理をステップS101に進める。[ステップS104]グラフ生成部193は、対象グラフGから、未処理の入力情報を1つ抽出し、変数inに設定する。[ステップS105]グラフ生成部193は、手順グラフEに変数inに設定された入力情報と同じ入力情報が存在するか否かを判断する。グラフ生成部193は、該当する入力情報が存在する場合、処理をステップS103に進める。またグラフ生成部193は、該当する入力情報が存在しない場合、処理をステップS106に進める。[ステップS106]グラフ生成部193は、手順グラフEに変数inに設定されている入力情報を追加する。その後、グラフ生成部193は処理をステップS103に進める。図37は、出力情報合成処理の手順の一例を示すフローチャートである。以下、図37に示す処理をステップ番号に沿って説明する。[ステップS111]グラフ生成部193は、処理対象の複数の有向グラフのうち、ステップS112~S116の処理が未処理の有向グラフがあるか否かを判断する。グラフ生成部193は、未処理の有向グラフがあれば処理をステップS112に進める。またグラフ生成部193は、未処理の有向グラフがなければ、出力情報合成処理を終了する。[ステップS112]グラフ生成部193は、未処理の有向グラフのうちの1つを選択し、対象グラフGとする。[ステップS113]グラフ生成部193は、対象グラフGに、ステップS114~S116の処理が未処理の出力情報があるか否かを判断する。グラフ生成部193は、未処理の出力情報があれば処理をステップS114に進める。またグラフ生成部193は、未処理の出力情報がなければ、処理をステップS111に進める。[ステップS114]グラフ生成部193は、対象グラフGから、未処理の出力情報を1つ抽出し、変数outに設定する。[ステップS115]グラフ生成部193は、手順グラフEに変数outに設定された出力情報と同じ出力情報が存在するか否かを判断する。グラフ生成部193は、該当する出力情報が存在する場合、処理をステップS113に進める。またグラフ生成部193は、該当する出力情報が存在しない場合、処理をステップS116に進める。[ステップS116]グラフ生成部193は、手順グラフEに変数outに設定されている出力情報を追加する。その後、グラフ生成部193は処理をステップS113に進める。図38は、ノード合成処理の手順の一例を示すフローチャートである。以下、図38に示す処理をステップ番号に沿って説明する。[ステップS121]グラフ生成部193は、処理対象の複数の有向グラフのうち、ステップS122~S126の処理が未処理の有向グラフがあるか否かを判断する。グラフ生成部193は、未処理の有向グラフがあれば処理をステップS122に進める。またグラフ生成部193は、未処理の有向グラフがなければ、ノード合成処理を終了する。[ステップS122]グラフ生成部193は、未処理の有向グラフのうちの1つを選択し、対象グラフGとする。[ステップS123]グラフ生成部193は、対象グラフGに、ステップS124~S126の処理が未処理のノードがあるか否かを判断する。グラフ生成部193は、未処理のノードがあれば処理をステップS124に進める。またグラフ生成部193は、未処理のノードがなければ、処理をステップS121に進める。[ステップS124]グラフ生成部193は、対象グラフから、未処理のノードを1つ抽出し、変数nに設定する。[ステップS125]グラフ生成部193は、手順グラフEに変数nに設定されたノードと同じノードが存在するか否かを判断する。グラフ生成部193は、該当するノードが存在する場合、処理をステップS123に進める。またグラフ生成部193は、該当するノードが存在しない場合、処理をステップS126に進める。[ステップS126]グラフ生成部193は、手順グラフEに変数nに設定されているノードを追加する。その後、グラフ生成部193は処理をステップS123に進める。図39は、エッジ合成処理の手順の一例を示すフローチャートである。以下、図39に示す処理をステップ番号に沿って説明する。[ステップS131]グラフ生成部193は、処理対象の複数の有向グラフのうち、ステップS132~S136の処理が未処理の有向グラフがあるか否かを判断する。グラフ生成部193は、未処理の有向グラフがあれば処理をステップS132に進める。またグラフ生成部193は、未処理の有向グラフがなければ、エッジ合成処理を終了する。[ステップS132]グラフ生成部193は、未処理の有向グラフのうちの1つを選択し、対象グラフGとする。[ステップS133]グラフ生成部193は、対象グラフGに、ステップS134~S136の処理が未処理のエッジがあるか否かを判断する。グラフ生成部193は、未処理のエッジがあれば処理をステップS134に進める。またグラフ生成部193は、未処理のエッジがなければ、処理をステップS131に進める。[ステップS134]グラフ生成部193は、対象グラフから、未処理のエッジを1つ抽出し、変数eに設定する。[ステップS135]グラフ生成部193は、手順グラフEに変数eに設定されたエッジと同じエッジが存在するか否かを判断する。ここで同じエッジとは、接続する要素入力情報、出力情報またはノードが同じであり、向きも同じエッジである。グラフ生成部193は、該当するエッジが存在する場合、処理をステップS133に進める。またグラフ生成部193は、該当するエッジが存在しない場合、処理をステップS136に進める。[ステップS136]グラフ生成部193は、手順グラフEに変数eに設定されているエッジを追加する。エッジを追加する場合、元のエッジと同じ要素間を、同じ向きで接続する。その後、グラフ生成部193は処理をステップS133に進める。以上のようにして有向グラフを合成することができる。例えば、図32~図34に示した有向グラフ61~63を合成することで、図12に示した手順グラフ161が生成される。生成された手順グラフ161は、手順グラフDB160に格納される。<<手順候補提供処理>>次に手順候補提供処理について説明する。手順候補提供処理は、入力情報と出力情報とを指定したユーザからの手順要求に応じて実行される。図40は、手順候補提供処理の手順の一例を示すフローチャートである。以下、図40に示す処理をステップ番号に沿って説明する。[ステップS201]候補生成部194は、ユーザが使用する端末装置から手順要求を取得する。手順要求には、例えばICTシステムの更新対象のソフトウェア資源の名称が含まれる。[ステップS202]候補生成部194は、手順グラフ161から手順候補を抽出する手順候補抽出処理を行う。この処理の詳細は後述する図42参照。[ステップS203]候補生成部194は、抽出した手順候補を、手順要求を入力したユーザに応じた内容に具体化する、手順候補具体化処理を行う。この処理の詳細は後述する図46参照。[ステップS204]整列部195は、所定の基準に沿って手順候補を並べ替える手順候補整列処理を行う。この処理の詳細は後述する図48~図52参照。[ステップS205]整列部195は、整列された手順候補の上位の手順候補を端末装置に送信する手順候補提示処理を行う。この処理の詳細は後述する図57参照。このようにして、ユーザに対して手順候補が提供される。以下、図40に示す各ステップの処理を詳細に説明する。<手順要求取得処理>まず手順要求取得処理図40のステップS201について説明する。なお以下の説明では、ユーザ24が端末装置34を用いて手順要求を管理サーバ100に送信するものとする。例えばユーザ24は端末装置34の構成管理ソフトウェアが、ICTシステム44内のソフトウェア資源の最新版を見知すると、システム構成管理画面に表示し、ソフトウェア資源の更新を促す。図41は、システム構成管理画面の一例を示す図である。システム構成管理画面300には、ICTシステム44に含まれるサーバのサーバ名301~303が表示されている。いずれかのサーバ名をユーザ24が選択すると、サーバ名に対応するソフトウェア資源の構成が表示される。図41の例では、サーバ1の構成が表示されている。サーバの構成としては、そのサーバのIPアドレス304、ステータス305、バージョン番号306などが表示される。また、そのサーバに対応するソフトウェア資源のバージョンが最新版でない場合、最新版のバージョン307が表示される。最新版のバージョン307が表示される場合、最新版への更新の意思を確認するOKボタン308とキャンセルボタン309とが表示される。ユーザ24によりOKボタン308が選択されると、端末装置34は、管理サーバ100に対して、該当するソフトウェア資源の最新版への更新をした場合の手順要求を送信する。図41の例では、Webサーバソフトウェアのバージョンを2215から2216に更新する場合の手順要求が送信される。このようにして、送信された手順情報を管理サーバ100が受信し、候補生成部194が、手順要求に応じた更新処理を行う場合の手順候補を抽出する。<手順候補抽出処理>次に手順候補抽出処理図40のステップS202について説明する。図42は、手順候補抽出処理の手順の一例を示すフローチャートである。以下、図42に示す処理をステップ番号に沿って説明する。[ステップS211]候補生成部194は、変更後情報に対応する出力情報があるか否かを判断する。例えば候補生成部194は、手順要求で示された更新処理を行った場合のICTシステムの構成情報の変更部分を判断し、その変更が行われた場合の変更後情報を生成する。変更後情報は、変更部分の変更後の値と、CMDB120内の構成情報における変更部分の位置とをXPathで表したものである。候補生成部194は、生成した変更後情報のうち、変数対応表151に登録されているマッチパターンに合致する文字列を、そのマッチパターンに対応する変数名に置換する。そして候補生成部194は、このような正規化後の変更後情報と同じ出力情報が、手順グラフ161に含まれているか否かを判断する。該当する出力情報がある場合、候補生成部194は、変更後情報に対応する出力情報があると判断する。候補生成部194は、変更後情報に対応する出力情報がある場合、処理をステップS212に進める。また候補生成部194は、変更後情報に対応する出力情報がない場合、処理をステップS213に進める。[ステップS212]候補生成部194は、変更前情報に対応する入力情報があるか否かを判断する。例えば候補生成部194は、手順要求で示された更新処理を行った場合のICTシステムの構成情報の変更部分を判断し、その変更が行われた場合の変更前情報を生成する。変更前情報は、変更部分の変更前の値と、CMDB120内の構成情報における変更部分の位置とをXPathで表したものである。候補生成部194は、生成した変更前情報のうち、変数対応表151に登録されているマッチパターンに合致する文字列を、そのマッチパターンに対応する変数名に置換する。そして候補生成部194は、このような正規化後の変更前情報と同じ入力情報が、手順グラフ161に含まれているか否かを判断する。該当する入力情報がある場合、候補生成部194は、変更前情報に対応する入力情報があると判断する。候補生成部194は、変更前情報に対応する入力情報がある場合、処理をステップS214に進める。また候補生成部194は、変更前情報に対応する入力情報がない場合、処理をステップS213に進める。[ステップS213]候補生成部194は、変更後情報に対応する出力情報と、変更前情報に対応する入力情報との少なくともいずれか一方がない場合、手順候補なしと判定し、手順候補抽出処理を終了する。なお手順候補がない場合、図40に示した手順候補提供処理も終了する。[ステップS214]候補生成部194は、変更後情報に対応する出力情報と変更前情報に対応する入力情報との両方が見つかった場合、手順グラフ161において、出力情報から手順グラフ161を遡り、入力情報に到達する経路を1つ選択する。[ステップS215]候補生成部194は、選択した経路中のノードの名前に含まれる変数名に対応するデータが、処理対象のICTシステムの構成情報内にあるか否かを判断する。候補生成部194は、対応するデータがある場合、処理をステップS216に進める。また候補生成部194は、対応するデータがない場合、処理をステップS217に進める。[ステップS216]候補生成部194は、選択した経路上のノードにより手順候補を生成し、手順候補群を示す集合Hに追加する。[ステップS217]候補生成部194は、出力情報から入力情報への未選択の経路があるか否かを判断する。候補生成部194は、未選択の経路があれば処理をステップS214に進める。また候補生成部194は、未選択の経路がなければ、手順候補抽出処理を終了する。このようにして、手順候補が抽出される。以下、手順候補の抽出処理を、具体例を用いて説明する。図43は、手順要求に応じた変更前情報と変更後情報との抽出および正規化例を示す図である。例えば端末装置34から、Webサーバソフトウェアのバージョンを2215から2216に更新することを示す手順要求70が入力されたものとする。例えば手順要求70には、手順要求を送信した端末装置34を使用するユーザ24のユーザIDと、そのユーザ24が管理するICTシステム44へ施す構成変更内容とが含まれる。この場合、CMDB120内の端末装置34を使用しているユーザ24が管理するICTシステム44の構成情報に基づいて、指定されたWebサーバソフトウェアに関する変更前情報71と変更後情報72とが生成される。生成された変更前情報71と変更後情報72とには、ICTシステム内のサーバのIPアドレス5678が含まれている。このIPアドレスは、固有情報であり、変数対応表151のマッチパターンに適合する。そこで、固有情報であるIPアドレスは、適合するマッチパターンに対応する変数名var1に置換される。置換処理に応じ、元文字列5678と変数名var1との組からなる変数データ表75が生成される。変数データ表75は、例えば候補生成部194が管理するRAM102内の記憶領域に格納される。このようにして正規化された変換前情報73と変換後情報74との組と、手順グラフ161とが比較され、手順候補が抽出される。図44は、手順候補の抽出状況を示す図である。図43に示す正規化された変換前情報73と変換後情報74との組と手順グラフ161とを比較すると、変換前情報73と入力情報161aとが一致する。また変更後情報74と出力情報161dとが一致する。そこで出力情報161dから入力情報161aまでの経路81~85について、問題なく到達可能かどうかが検証される。すなわち、各経路81~85上のノードの名称に設定されている操作情報に含まれる変数名に対応するデータが、ICTシステム44の構成情報に含まれるか否かが検証される。すなわち、経路上のノードに示される変数名に対応するデータが構成情報に含まれていない場合、操作対象の資源ハードウェア資源またはソフトウェア資源がICTシステム44に含まれていないこととなる。この場合、そのノードに対応する操作情報に示される操作は、今の構成のままではICTシステム44に対して実行することができない。図44の例では、経路81~84については、経路上の各ノードの名前に設定された制御情報内の変数名に対応するデータが、ICTシステム44の構成情報に存在している。しかし経路85上のノード161oの名前telnetvar3に含まれる変数名var3に対応するデータが存在しない。変数名var3に対応するデータとは、変数名var3に対応するマッチパターンに適合するデータである。従って、図44の例では、経路81~84のそれぞれから、手順候補が生成される。生成される手順候補は、入力情報から経路を通り出力情報に到達するまでのノードをエッジで接続した有向グラフである。図45は、手順候補群の例を示す図である。図45の例では、4つの手順候補91~94を有する手順候補群が生成されている。手順候補91は、図44に示した経路81に基づいて生成されている。手順候補92は、図44に示した経路82に基づいて生成されている。手順候補93は、図44に示した経路83に基づいて生成されている。手順候補94は、図44に示した経路84に基づいて生成されている。各手順候補91~94には、手順候補番号が付与されている。手順候補91の手順候補番号は1である。手順候補92の手順候補番号は2である。手順候補93の手順候補番号は3である。手順候補94の手順候補番号は4である。生成された手順候補群は、例えばRAM102、HDD103などの記憶装置に格納される。<手順候補具体化処理>次に手順候補具体化処理図40のステップS203について説明する。図46は、手順候補具体化処理の手順の一例を示すフローチャートである。以下、図46に示す処理をステップ番号に沿って説明する。[ステップS221]候補生成部194は、手順候補群を示す集合Hが空か否かを判断する。手順候補群を示す集合Hが空の場合、候補生成部194は手順候補具体化処理を終了する。手順候補群を示す集合Hが空でない場合は、候補生成部194は処理をステップS222に進める。[ステップS222]候補生成部194は、手順候補群を示す集合Hから手順候補を1つ取り出し、変数Zとする。[ステップS223]候補生成部194は、変数Lに0を設定する。[ステップS224]候補生成部194は、変数Lの値が、変数データ表75図43参照の行数より小さいか否かを判断する。変数Lの方が小さい場合、候補生成部194は処理をステップS225に進める。変数Lが変数データ表75の行数以上の場合、候補生成部194は処理をステップS221に進める。[ステップS225]候補生成部194は、変数データ表75からL行目のレコードを取得する。そして候補生成部194は、取得したレコードの変数名を変数Vに代入し、データを変数Dに代入する。[ステップS226]候補生成部194は、変数Zに設定された手順候補内の各ノードの名前の文字列に対し、変数Vに設定された変数名から、変数Dに設定されたデータへの置換処理を行う。[ステップS227]候補生成部194は、変数Lの値を1だけカウントアップする。その後、候補生成部194は処理をステップS224に進める。このようにして、手順候補に含まれていた変数名が、特定のICTシステムの固有情報に置換される。図47は、具体化後の手順候補の例を示す図である。図45に示した各手順候補91~94には、var1という変数名が含まれている。図43に示す変数データ表75を参照すると、変数名var1には、データ5678が対応する。そこで、手順候補91~94のvar1の文字列が5678に置換されている。具体化された手順候補群は、例えばRAM102、HDD103などの記憶装置に格納される。このような具体化処理を施した手順候補であれば、その手順候補に示される操作を、そのまま実行することで、ICTシステムの所望の構成変更を行うことが可能である。<手順候補整列処理>次に手順候補整列処理図40のステップS204について説明する。手順候補の整列処理としては、例えば以下のような基準で整列させることができる。1.様々なユーザ不特定のユーザからより多く利用されている手順候補を上位にする。2.手順要求を行ったユーザによる利用実績がより多い手順候補を上位にする。3.より少ない操作数の手順候補を上位にする。4.より所要時間が短い手順候補を上位にする。5.よりユーザの操作環境に合致する手順候補を上位にする。なお、整列部195は、これらの整列基準のうち、例えば予め設定された整列基準に基づいて手順候補を整列させる。また整列部195は、例えば、手順要求を行ったユーザから任意の基準の指定があった場合、指定された基準に従った手順候補を整列させる。これらの基準それぞれにおける手順候補整列処理を以下に示す。まず、様々なユーザからより多く利用されている手順候補を上位にする場合の整列処理について説明する。図48は、手順候補整列処理の第1の例を示すフローチャートである。手順候補整列処理の第1の例は、様々なユーザからより多く利用されている手順候補を上位にする場合の整列処理手順である。以下、図48に示す処理をステップ番号に沿って説明する。[ステップS231]整列部195は、具体化された手順候補群を集合Hに設定する。[ステップS232]整列部195は、手順候補群を含む集合Hが空か否かを判断する。手順候補群を含む集合Hが空の場合、整列部195は処理をステップS238に進める。手順候補群が空でない場合は、整列部195は処理をステップS233に進める。[ステップS233]整列部195は、手順候補群を含む集合Hから手順候補を1つ取り出し、取り出した手順候補の手順候補番号を変数Zに設定する。このとき整列部195は、合計を示す変数sの値に0を設定する。[ステップS234]整列部195は、変数Zに設定された手順候補番号で示される手順候補の先頭のノードから調査し、未処理の次の操作を示すノードがあるか否かを判断する。整列部195は、次の操作を示すノードがある場合、そのノードの名前に設定されている操作の操作情報を変数pに設定し、処理をステップS235に進める。また整列部195は、次の操作を示すノードがない場合、処理をステップS237に進める。[ステップS235]整列部195は、変数pに設定された操作の実績回数を実績記憶部180内の操作実績表図14参照から取得する。このとき、整列部195は、ユーザ毎の操作実績表181,182,内の変数pに設定された操作に対応する実績回数の値を合計し、変数qに設定する。[ステップS236]整列部195は、変数sの値に変数pの値を加算し、加算結果を新たに変数sの値とする。その後、整列部195は処理をステップS234に進める。[ステップS237]整列部195は、手順候補リストに、変数sの値をキーとし、変数Zに設定された手順候補番号を値としたレコードを追加する。その後、整列部195は処理をステップS232に進める。[ステップS238]整列部195は、手順候補リストのレコードを、キーの大きい順に整列させる。[ステップS239]整列部195は、手順候補リストのレコードの値の集合を、手順候補リスト内でのレコードの順を崩さずに、整列結果を示す集合Rに設定する。このようにして、様々なユーザからより多く利用された手順候補が上位になるように、手順候補を整列させることができる。次に、手順要求を行ったユーザによる利用実績がより多い手順候補が上位になるように、手順候補を整列させる処理について説明する。図49は、手順候補整列処理の第2の例を示すフローチャートである。手順候補整列処理の第2の例は、手順要求を行ったユーザによる利用実績がより多い手順候補を上位にする場合の整列処理手順である。図49に示した各ステップS241~S249の処理のうち、ステップS241~S244,S246~S249の処理は、それぞれ図48に示したフローチャートのステップS231~S234,S236~S239の処理と同じである。ステップS245の処理は、以下の通りである。[ステップS245]整列部195は、手順要求を行ったユーザの操作実績表のみから、変数pに設定された操作の実績回数を取得する。そして整列部195は、手順要求を行ったユーザの操作の実績回数を、変数qに設定する。このようにして、手順要求を行ったユーザによる利用実績がより多い手順候補が上位になるように、手順候補を整列させることができる。次に、より少ない操作数の手順候補が上位になるように、手順候補を整列させる処理について説明する。図50は、手順候補整列処理の第3の例を示すフローチャートである。手順候補整列処理の第3の例は、より少ない操作数の手順候補を上位にする場合の整列処理手順である。以下、図50に示す処理をステップ番号に沿って説明する。[ステップS251]整列部195は、具体化された手順候補群を集合Hに設定する。[ステップS252]整列部195は、手順候補群を含む集合Hが空か否かを判断する。手順候補群を含む集合Hが空の場合、整列部195は処理をステップS256に進める。手順候補群が空でない場合は、整列部195は処理をステップS253に進める。[ステップS253]整列部195は、手順候補群を含む集合Hから手順候補を1つ取り出し、取り出した手順候補の手順候補番号を変数Zに設定する。[ステップS254]整列部195は、変数Zに設定された手順候補番号で示される手順候補の操作の数手順候補のノードの数をカウントし、カウント結果を変数rに設定する。[ステップS255]整列部195は、手順候補リストに、変数rの値をキーとし、変数Zに設定された手順候補番号を値としたレコードを追加する。その後、整列部195は処理をステップS252に進める。[ステップS256]整列部195は、手順候補リストのレコードを、キーの小さい順に整列させる。[ステップS257]整列部195は、手順候補リストのレコードの値の集合を、手順候補リスト内でのレコードの順を崩さずに、整列結果を示す集合Rに設定する。このようにして、より少ない操作数の手順候補が上位になるように、手順候補を整列させることができる。次に、より所要時間が短い手順候補が上位になるように、手順候補を整列させる処理について説明する。図51は、手順候補整列処理の第4の例を示すフローチャートである。手順候補整列処理の第4の例は、より所要時間が短い手順候補を上位にする場合の整列処理手順である。図51に示した各ステップS261~S269の処理のうち、ステップS261~S264,S267,S269の処理は、それぞれ図48に示したフローチャートのステップS231~S234,S237,S239の処理と同じである。ステップS265、ステップS266、ステップS268の処理は、以下の通りである。[ステップS265]整列部195は、変数pに設定された操作の所要時間を所要時間実績表180a図14参照から取得する。そして整列部195は、取得した所要時間を、変数etに設定する。[ステップS266]整列部195は、変数sの値に変数etの値を加算し、換算結果を新たに変数sの値とする。その後、整列部195は処理をステップS264に進める。[ステップS268]整列部195は、手順候補リストのレコードを、キーの小さい順に整列させる。このようにして、所要時間が短い手順候補が上位になるように、手順候補を整列させることができる。次に、よりユーザの操作環境に合致する手順候補が上位になるように、手順候補を整列させる処理について説明する。なおユーザの操作環境に合致する手順候補とは、手順候補内の操作で入力されたコマンドの、ICTシステムでのカバー率が高い手順候補である。図52は、手順候補整列処理の第5の例を示すフローチャートである。手順候補整列処理の第5の例は、よりユーザの操作環境に合致する手順候補を上位にする場合の整列処理手順である。以下、図52に示す処理をステップ番号に沿って説明する。[ステップS271]整列部195は、具体化された手順候補群を集合Hに設定する。[ステップS272]整列部195は、手順候補群を含む集合Hが空か否かを判断する。手順候補群を含む集合Hが空の場合、整列部195は処理をステップS280に進める。手順候補群が空でない場合は、整列部195は処理をステップS273に進める。[ステップS273]整列部195は、手順候補群を含む集合Hから手順候補を1つ取り出し、取り出した手順候補の手順候補番号を変数Zに設定する。このとき整列部195は、合計を示す変数sと操作数を示す変数tとの値を共に0に設定する。[ステップS274]整列部195は、変数Zに設定された手順候補番号で示される手順候補の先頭のノードから調査し、未処理の次の操作を示すノードがあるか否かを判断する。整列部195は、次の操作を示すノードがある場合、そのノードの名前に設定されている操作を変数pに設定し、処理をステップS275に進める。また整列部195は、次の操作を示すノードがない場合、処理をステップS278に進める。[ステップS275]整列部195は、変数tの値を1だけカウントアップする。[ステップS276]整列部195は、変数pに設定された操作で入力されたコマンドが、実行可能コマンド記憶部170内の手順要求を行ったユーザに対応するコマンドリスト図13参照にあるか否かを判断する。コマンドがコマンドリストにある場合、整列部195は処理をステップS277に進める。コマンドがコマンドリストにない場合、整列部195は処理をステップS274に進める。[ステップS277]整列部195は、変数sの値を1だけカウントアップする。その後、整列部195は処理をステップS274に進める。[ステップS278]整列部195は、変数sの値を変数tの値で除算し、カバー率を示す変数uに設定する。[ステップS279]整列部195は、手順候補リストに、変数uの値をキーとし、変数Zに設定された手順候補番号を値としたレコードを追加する。その後、整列部195は処理をステップS272に進める。[ステップS280]整列部195は、手順候補リストのレコードを、キーの大きい順に整列させる。[ステップS281]整列部195は、手順候補リストのレコードの値の集合を、手順候補リスト内でのレコードの順を崩さずに、整列結果を示す集合Rに設定する。このようにして、ユーザの操作環境に合致する手順候補が上位になるように、手順候補を整列させることができる。次に、第2の例と第5の例とに示した手順候補整列処理による整列例を具体的に説明する。なお以下の例では、ユーザIDユーザ4のユーザ24が手順要求を行ったものとする。まず第2の例で示した、手順要求を行ったユーザによる利用実績がより多い手順候補が上位になるように手順候補を整列させた場合について説明する。図53は、各手順候補に含まれる操作の操作数の例を示す図である。図53に示した操作数は、図14に示した操作実績表181に基づいている。操作実績表181では、ユーザ21による操作実績は、sshが20回、yumupdateが15回、apache2ctlstartが10回、apache2ctlstopが10回である。telnetとaptgetinstallapache2とについては、操作実績表181に登録されておらず、操作実績が0回であるものとする。このような操作実績に基づいて、各手順候補91~94の操作実績の合計が計算される。その結果、手順候補91の操作実績の合計が55回、手順候補92の操作実績の合計が40回、手順候補93の操作実績の合計が35回、手順候補94の操作実績の合計が20回となる。そこで、操作実績の合計値が大きい順に、手順候補リスト内の手順候補が並べられる。図54は、整列された手順候補リストの一例を示す図である。手順候補リスト95には、手順候補番号と合計値との欄が設けられている。手順候補番号の欄には、手順候補の手順候補番号が設定される。合計値の欄には、手順候補の操作実績の合計値が設定される。図54に示すように、手順候補リスト95は、操作実績の合計値が大きいほど上位に設定されている。これにより、手順要求を行ったユーザによる利用実績がより多い手順候補が上位になる。次に第5の例で示した、よりユーザの操作環境に合致する手順候補が上位になるように手順候補を整列させた場合について説明する。図55は、各手順候補に含まれる操作に対応するコマンドの有無の例を示す図である。図55に示したコマンドの有無は、図13に示したコマンドリスト171に基づいている。コマンドリスト171には、ssh、yum、apache2ctl、telnetのコマンドが登録されている。しかしコマンドリスト171には、aptgetのコマンドは登録されていないものとする。この場合、手順候補91,93については、すべての操作に対応するコマンドが存在するが、手順候補92,94についてはそれぞれ1つずつの操作について、対応するコマンドが存在しない。このようなコマンドの有無の調査結果に基づいて、各手順候補のコマンドのカバー率が計算され、手順候補リストに登録される。そして、コマンドのカバー率が多い順に手順候補が並べられる。なお、コマンドカバー率は、手順候補に含まれる操作のうち、操作で入力されたコマンドがICTシステム実行可能な操作の数を、手順候補に含まれる全操作数で除算した値である。図56は、コマンドカバーで整理された手順候補リストの一例を示す図である。図56に示す手順候補リスト96は、手順候補番号とコマンドカバー率との欄が設けられている。手順候補番号の欄には、手順候補の手順候補番号が設定される。コマンドカバー率の欄には、手順候補のコマンドカバー率が設定される。そして手順候補リスト96は、コマンドカバー率が高いほど上位に設定されている。図56の例では、手順候補番号1と3の各手順候補91,93は、コマンドカバー率が1であり、上位に並べられている。手順候補番号2と4の各手順候補92,94は、コマンドカバー率が0.75であり、下位に並べられている。<手順候補提示処理>次に手順候補提示処理図40のステップS205について説明する。図57は、手順候補提示処理の手順の一例を示すフローチャートである。以下、図57に示す処理をステップ番号に沿って説明する。[ステップS291]整列部195は、手順要求を送信した端末装置へ、手順候補リストの内容を送信する。[ステップS292]手順実行部196は、端末装置からの手順候補選択入力を受け付ける。[ステップS293]手順実行部196は、手順候補選択入力を行った端末装置に対応するICTシステムに対して、選択された手順候補に示される操作手順で、操作情報に示される一連の操作をICTシステムに対して実行する。[ステップS294]情報取得部191は、実行された一連の操作に基づいて、手順候補を選択したユーザに対応する操作実績を更新する。例えば情報取得部191は、手順候補を選択したユーザの操作実績表に対して、実行された一連の操作に含まれる操作情報に対応する実績の値をカウントアップする。[ステップS295]情報取得部191は、実行された一連の操作の各操作に応じた処理の所要時間に基づいて、所要時間実績を更新する。例えば情報取得部191は、操作情報の内容がICTシステムに入力された、その入力に対する応答が帰ってくる時間を計測し、その操作の所要時間とする。そして情報取得部191は、計測した所要時間により、既に所要時間実績表180aに登録されている該当操作の所要時間を更新する。このようにして、手順要求に応じて手順候補のリストをユーザに提示することができると共に、選択された手順候補に示された一連の操作をICTシステムに対して実行させることができる。なお、図57の例では、管理サーバ100が一連の操作を実行しているが、ユーザが端末装置を用いて提示された手順候補を参照しながら、ICTシステムに対して手順候補に示される操作を順に入力することもできる。図58は、端末装置に表示される手順候補リストの第1の例を示す図である。図58には、手順要求を行ったユーザによる利用実績がより多い手順候補が上位になるように手順候補を整列させた場合に、端末装置に表示される手順候補表示画面310が画示されている。手順候補表示画面310には、手順候補リスト311が表示されている。手順候補リストの各手順候補の横には、選択ボタン312が設けられている。ユーザは、複数の選択ボタン312の1つを選択することで、手順候補の内容を参照することができる。選択された手順候補の内容は、手順候補表示部313に表示される。また手順候補表示画面310には、OKボタン314とキャンセルボタン315とが設けられている。OKボタン314は、選択した手順候補に示される手順で操作を行う場合に選択するボタンである。OKボタン314が押下されると、端末装置から管理サーバ100へ、OKボタンが押下されたときに選択されていた手順候補の手順候補番号と、その手順候補が選択された旨の情報とが送信される。キャンセルボタン315が押下されると、管理サーバ100への手順候補選択の送信を行わずに、手順候補表示画面310が閉じる。図59は、端末装置に表示される手順候補リストの第2の例を示す図である。図59には、よりユーザの操作環境に合致する手順候補が上位になるように手順候補を整列させた場合に、端末装置に表示される手順候補表示画面320が画示されている。手順候補表示画面320には、図58の手順候補表示画面310と同様に、手順候補リスト321、選択ボタン322、手順候補表示部323、OKボタン324、およびキャンセルボタン325が設けられている。このように手順候補リストと手順候補の内容が端末装置に表示されることで、ユーザは、適切な操作手順を容易に判断することができると共に、表示された操作手順に従って容易にICTシステムへの操作を行うことができる。その結果、ユーザによるICTシステムの管理に関する作業効率が向上する。しかも、ユーザが端末装置からICTシステムにアクセスし、ICTシステムに対する操作を行う場合であっても、手順候補表示画面に表示された手順通りの操作を行えばよいため、操作ミスの発生が抑止される。しかも、第2の実施の形態では、管理サーバ100は、あるユーザが実行した操作手順を手順ログとして保存し、その手順ログを正規化した上で手順グラフを作成している。これにより、各ユーザ21~24がICTシステム41~44に対して行った操作手順を再利用することができる。すなわち、管理サーバ100の管理者が、テンプレートの形で手順グラフを作成せずにすむ。そのため管理サーバ100の管理負担が軽減される。さらに第2の実施の形態では、管理サーバ100や、操作手順を保存するときに、ユーザの複数の手順ログを、構成情報を利用し正規化して重ねあわせた有向グラフを、手順グラフとする。この際、管理サーバ100は、操作手順内の各操作のうち、異なるICTシステムに対する操作であっても、同じ要素物理的なハードウェア資源または仮想マシンのOSやアプリケーションなどのソフトウェア資源に対する同じ操作は、同じ操作とみなす。そして管理サーバ100は、その手順グラフから、手順要求を行ったユーザの入出力情報を元に操作手順を抽出し、そのユーザの構成情報を埋め込む。これにより、手順ログに示された操作手順のみではなく、複数の手順ログに示された操作を組み合わせた手順候補を生成することが可能である。その結果、手順要求を行ったユーザに対して、より適切な手順候補を提示することが可能となる。さらに、管理サーバ100は、一連の操作が実行された対象の要素物理的なハードウェア資源または仮想マシンのOSやアプリケーションなどのソフトウェア資源を、ICTシステムの構成情報から取得し、変更対象を表すマッチパターンを生成している。このマッチパターンを用いることで、手順グラフに含まれる変数を、手順要求を行ったユーザが管理するICTシステムの固有情報に変換することが可能となる。しかも手順ログを正規化する際にマッチパターンが自動生成されるため、管理サーバがマッチパターンを登録する手間が省け、管理負担が軽減される。さらに、第2の実施の形態では、手順要求に応じて抽出された操作手順を手順候補とし、所定の基準に基づいて手順候補を整列させた後、ユーザに提示する。これにより、ユーザは、ユーザの求めるICTシステムの構成変更を実現可能な複数の手順の中から、適切な手順を容易に判断することができる。なお手順候補を整列させる基準は、手順要求を行ったユーザが、任意に選択することができる。これにより、ユーザの目的に沿った手順候補を優先的にユーザに提示することが可能となる。以上のように、第2の実施の形態によれば、管理サーバ100の管理者の管理負担を増加させずに、利用者の操作手順の作成工数と運用工数の多大な削減効果を得ることができる。その他の実施の形態上記の第2の実施の形態は、ICTシステムの構成の変更に係る手順候補を提示する例であるが、ICTシステムに限らず、第2の実施の形態に示す管理サーバ100は、様々なシステムに対する操作手順の手順候補を生成可能である。例えば、内蔵されたコンピュータによって動作制御される装置に対する設定内容の変更に係る操作手順を、管理サーバと同様の機能を有する装置で取得し、取得した手順ログに基づいて手順候補を提示することも可能である。また上記の各実施の形態に示した処理機能は、コンピュータによって実現することができる。その場合、情報処理装置1や管理サーバ100が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置HDD、フレキシブルディスクFD、磁気テープなどがある。光ディスクには、DVD、DVD-RAM、CD-ROM/RWなどがある。光磁気記録媒体には、MOMagnetoOpticaldiscなどがある。プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD-ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、DSPDigitalSignalProcessor、ASICApplicationSpecificIntegratedCircuit、PLDProgrammableLogicDeviceなどの電子回路で実現することもできる。上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。"