以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の分類装置の例を説明する図である。
第1の実施の形態の分類装置10は、情報処理システムの運用管理に用いられる運用手順書のライブラリの生成を支援し、運用手順書の作成の負担を軽減する。分類装置10は、情報処理装置やコンピュータと言うこともできる。分類装置10は、ユーザが操作するクライアント装置でもよいしネットワークに接続されたサーバ装置でもよい。
分類装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性の半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
記憶部11は、運用手順書13などの1以上の運用手順書を記憶する。1以上の運用手順書はそれぞれ、運用管理対象である同一の情報処理システムに対して行う複数のオペレーション(操作)の説明文を含んでいる。また、1以上の運用手順書はそれぞれ、それら複数のオペレーションの実行順序を示している。
運用管理対象の情報処理システムは、サーバ装置やディスクドライブなどの各種のハードウェアの構成要素と、オペレーティングシステム(OS:Operating System)やミドルウェアなどの各種のソフトウェアの構成要素とを含む。構成要素の種類は「クラス」と言うことができる。個々の物理的なサーバ装置やディスクドライブなど、構成要素のインスタンスは「オブジェクト」と言うことができる。例えば、サーバ装置というクラスについて、特定のホスト名やアドレスが付与された具体的なオブジェクトが存在する。
1以上の運用手順書はそれぞれ、同一または異なるオブジェクトを対象にして行う複数のオペレーションの具体的な作業内容を記載した説明文を含む。説明文は、自然言語で記載されていてもよく、特定のオブジェクトに対して実行するコマンドを含んでもよい。また、説明文は、対象とするオブジェクトを特定する情報として、当該オブジェクトのアドレスやホスト名やファイルパスなどの情報を含むことがある。運用手順書に記載される一連のオペレーションには、運用管理の目的を達成するための本来のオペレーションに加えて、前処理や後処理など本来のオペレーションに付随して実行することになるオペレーションも含まれることがある。例えば、オペレーションとして、ディレクトリの生成、サーバ装置へのログイン、ログファイルのコピー、ログファイルの転送、サーバアプリケーションの停止と再起動、OSやミドルウェアの設定変更などが挙げられる。
例えば、運用手順書13は、オペレーション13a,13b,13cの説明文を含む。運用手順書13は、日常的な運用管理において、オペレーション13a、オペレーション13b、オペレーション13cの順にオペレーション13a,13b,13cを実行することを示す。オペレーション13aの説明文は、アドレスa1をもつサーバ装置に対する作業内容を記載している。オペレーション13bの説明文は、ホスト名b2をもつサーバ装置に対する作業内容を記載している。オペレーション13cの説明文は、ファイルパスb3に関連するサーバ装置に対する作業内容を記載している。
また、記憶部11は、システム構成情報14を記憶する。システム構成情報14は、運用管理対象の情報処理システムに含まれる複数のオブジェクトを示す。システム構成情報14は、あるクラスに属する異なるオブジェクトそれぞれのアドレス、ホスト名、ファイルパスなどの情報を含んでもよい。例えば、システム構成情報14は、オブジェクト14a,14bについての情報を含む。システム構成情報14は、オブジェクト14aに対して、アドレスa1、ホスト名a2、ファイルパスa3などが対応付けられていることを示している。また、システム構成情報14は、オブジェクト14bに対して、アドレスb1、ホスト名b2、ファイルパスb3などが対応付けられていることを示している。
処理部12は、運用手順書の説明文に含まれる語句とシステム構成情報14に基づいて、情報処理システムの複数のオブジェクトのうち、運用手順書に記載された複数のオペレーションそれぞれが対象とするオブジェクトを判定する。例えば、処理部12は、運用手順書の説明文からアドレスやホスト名やファイルパスなどオブジェクトを特定可能な語句を抽出し、抽出した語句に対応するオブジェクトをシステム構成情報14から検索する。
例えば、処理部12は、運用手順書13に含まれるオペレーション13aの説明文からアドレスa1を抽出し、アドレスa1に対応するオブジェクト14aをオペレーション13aの対象と判定する。また、処理部12は、運用手順書13に含まれるオペレーション13bの説明文からホスト名b2を抽出し、ホスト名b2に対応するオブジェクト14bをオペレーション13bの対象と判定する。また、処理部12は、運用手順書13に含まれるオペレーション13cの説明文からファイルパスb3を抽出し、ファイルパスb3に対応するオブジェクト14bをオペレーション13cの対象と判定する。
処理部12は、運用手順書が示す実行順序上で隣接する2つのオペレーション毎に、当該2つのオペレーションに対して判定された2つのオブジェクトの関係に基づいて、当該2つのオペレーションの間の結合の強さを示す評価値を算出する。2つのオペレーションの間の結合の強さが大きいほど、評価値が大きくなるように算出してもよい。例えば、処理部12は、隣接する2つのオペレーションのオブジェクトが同一である場合、結合の強さが大きくなるように評価値を算出する。また、処理部12は、隣接する2つのオペレーションのオブジェクトが異なる場合、結合の強さが小さくなるように評価値を算出する。
例えば、処理部12は、隣接するオペレーション13aとオペレーション13bの組に対して評価値15aを算出する。オペレーション13aに対応するオブジェクト14aとオペレーション13bに対応するオブジェクト14bとは異なるため、評価値15aは小さく算出される可能性がある。また、処理部12は、隣接するオペレーション13bとオペレーション13cの組について評価値15bを算出する。オペレーション13bに対応するオブジェクト14bとオペレーション13cに対応するオブジェクト14bとは同一であるため、評価値15bは大きく算出される可能性がある。
処理部12は、算出した評価値に基づいて一連のオペレーションの分割位置を決定することで、それら一連のオペレーションの説明文を2以上のグループに分類する。例えば、処理部12は、算出した評価値が閾値以下であるオペレーションの組については、同一のグループに属さないように分割すると決定する。また、処理部12は、算出した評価値が閾値を超えるオペレーションの組については、同一のグループに属するように分割しないと決定する。処理部12は、同一のグループに属する2以上のオペレーションの説明文から1つのライブラリを生成してもよい。ライブラリを再利用することで新たな運用手順書を作成することが可能である。1つのライブラリは、再利用可能性が高いオペレーションの列を示す。例えば、1つのライブラリは、本来のオペレーションとそれに付随して実行される可能性が高いオペレーションとをまとめたものである。
例えば、評価値15aは閾値以下であり、評価値15bは閾値を超えている。すると、処理部12は、オペレーション13aとオペレーション13bの間を分割位置とし、オペレーション13bとオペレーション13cの間を分割位置としない。そして、処理部12は、オペレーション13aの説明文を含むグループ16aを生成し、オペレーション13b,13cの説明文を含むグループ16bを生成する。この場合、オペレーション13aとオペレーション13b,13cとは異なるライブラリに属することになる。
第1の実施の形態の分類装置10によれば、運用手順書13に記載された一連のオペレーションそれぞれに対して、情報処理システムのシステム構成情報14を参照して、対象となるオブジェクトが判定される。そして、判定されたオブジェクトの間の関係に基づいて、隣接するオペレーションの間の結合の強さが評価されて分割位置が決定される。
これにより、既存の運用手順書13から適切な粒度のライブラリが生成され、生成されたライブラリの再利用可能性が向上する。例えば、粒度が大きすぎて必須でないオペレーションが含まれているために、再利用可能な場面が限定されてしまうという可能性を低減できる。また、粒度が小さすぎて必須となる前処理や後処理が含まれていないために、単独で使用することが難しいという可能性を低減できる。その結果、情報処理システムの構成要素の変更などの際に、新たな運用手順書の作成の負担を軽減することができる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
第2の実施の形態の情報処理システムは、オペレータにより日常的に繰り返し行われる運用管理を支援する。第2の実施の形態の情報処理システムは、業務サーバ31、ファイルサーバ32、監視サーバ33などの運用管理対象の電子機器を含む。また、第2の実施の形態の情報処理システムは、オペレータが使用する運用管理装置100を含む。運用管理装置100および運用管理対象の電子機器は、ネットワーク30に接続されている。運用管理装置100は、第1の実施の形態の分類装置10に対応する。
業務サーバ31は、Webサーバなどのサーバアプリケーションを実行するサーバコンピュータである。ファイルサーバ32は、不揮発性ストレージを用いてファイルデータを記憶し、ファイルシステムによってファイルを管理するサーバコンピュータである。ファイルシステムでは、階層構造のディレクトリが生成され、ディレクトリがディレクトリパスによって識別され、ファイルがファイルパスによって識別される。監視サーバ33は、他の電子機器を監視し、他の電子機器の異常を検出するサーバコンピュータである。
運用管理対象の構成要素には、これらのサーバコンピュータが含まれ、通信装置など他の電子機器が含まれてもよい。また、運用管理対象の構成要素には、サーバコンピュータが備えるディスクドライブなどのハードウェア部品が含まれてもよい。また、運用管理対象の構成要素には、これらのサーバコンピュータが実行するOSやミドルウェアやアプリケーションソフトウェアなどのソフトウェアが含まれてもよい。
運用管理装置100は、情報処理システムの運用管理を行うオペレータが使用するクライアントコンピュータである。ただし、運用管理装置100がサーバコンピュータであってもよい。日常的な運用管理には、ログファイルの採取、ログファイルの分析、ハードウェア部品の検査、ソフトウェアのアップデートなどが含まれる。運用管理装置100は、例えば、電子機器にコマンドを送信することで運用管理のオペレーションを実行する。
運用管理装置100は、予め作成された運用手順書に従って、運用管理の特定の目的を達成するための一連のオペレーションを実行する。一連のオペレーションには、本質的なオペレーションに加えて、それに付随して実行される前処理や後処理などのオペレーションも含まれる。運用管理装置100は、運用手順書を表示してオペレータに提示し、オペレータからの入力に応じてオペレーションを実行する。ただし、運用管理装置100は、運用手順書に従って自動的に一連のオペレーションを実行するようにしてもよい。その場合、自動実行可能な形式で運用手順書が作成されている。
また、運用管理装置100は、既存の運用手順書を分析し、複数の運用手順書に共通して出現するオペレーション列を抽出して、運用手順書のライブラリを生成しておく。情報処理システムの構成要素が変更された場合、運用管理装置100は、オペレータからの入力に応じてライブラリを組み合わせて、変更後の情報処理システムに適合した新たな運用手順書を生成する。ただし、運用管理装置100は、変更後の情報処理システムから、ライブラリを用いて自動的に運用手順書案を生成してオペレータに提示してもよい。
図3は、運用管理装置のハードウェア例を示すブロック図である。
運用管理装置100は、バスに接続されたCPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。運用管理装置100は、第1の実施の形態の分類装置10に対応する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、運用管理装置100は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に使用するデータを一時的に記憶する揮発性の半導体メモリである。なお、運用管理装置100は、RAM以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
HDD103は、OSやミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。なお、運用管理装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、運用管理装置100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを使用することができる。
入力信号処理部105は、運用管理装置100に接続された入力デバイス112から入力信号を受信する。入力デバイス112として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用できる。また、運用管理装置100に複数の種類の入力デバイスが接続されてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク30に接続され、ネットワーク30を介して他の情報処理装置と通信を行う。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
図4は、運用管理装置の機能例を示すブロック図である。
運用管理装置100は、運用手順書記憶部121、操作マニュアル記憶部122、構成情報記憶部123、重み情報記憶部124およびライブラリ記憶部125を有する。これらのユニットは、例えば、RAM102またはHDD103の記憶領域を用いて実装される。また、運用管理装置100は、ライブラリ候補生成部126、ライブラリ生成部127、運用手順書生成部128およびオペレーション実行部129を有する。これらのユニットは、例えば、CPU101が実行するプログラムを用いて実装される。
運用手順書記憶部121は、複数の運用手順書を記憶する。1つの運用手順書は、ログファイルの採取やソフトウェアのアップデートなどの1つの目的に対応しており、1つの目的を達成するためのオペレーション列を記載している。運用手順書は、自然言語で記載されており、発行するコマンドや対象とするオブジェクトの識別情報を含むことがある。オブジェクトの識別情報としては、例えば、IP(Internet Protocol)アドレス、ホスト名、ディレクトリパス、ファイルパスなどが挙げられる。
操作マニュアル記憶部122は、複数の操作マニュアルを記憶する。1つの操作マニュアルは、ある種類のOSやある種類のミドルウェアなどの1つの構成要素のクラスに対応しており、1つの構成要素のクラスに対して実行可能なオペレーションを記載している。操作マニュアルは、特定の構成要素のクラスが受け付け可能なコマンドなど、特定の構成要素のクラスがもつインタフェースの説明を含むことがある。操作マニュアルは一般的説明であるため、IPアドレスやホスト名など具体的なオブジェクトの識別情報は含まない。操作マニュアルを参照して運用手順書が作成されることがある。例えば、異なる構成要素のクラスに対応する異なる操作マニュアルからコマンドを抽出し、抽出したコマンドと運用管理対象のオブジェクトの識別情報とを組み合わせて運用手順書が作成される。
構成情報記憶部123は、運用管理対象の情報処理システムに含まれる構成要素のオブジェクトを示すシステム構成情報を記憶する。構成要素のクラスは、ハードウェアの種類やソフトウェアの種類を示す分類概念である。これに対して構成要素のオブジェクトは、個々のデバイスや特定のデバイスにインストールされたソフトウェアや個々のファイルデータなど、何れかのクラスに属する物理的実体である。システム構成情報は、情報処理システムに含まれるオブジェクトと、当該オブジェクトに対応付けられたIPアドレス、ホスト名、ディレクトリパス、ファイルパスなどの識別情報とを対応付けている。
重み情報記憶部124は、既存の運用手順書からライブラリを自動生成する際に参照される重み情報を記憶する。重み情報は予め作成されて重み情報記憶部124に記憶されている。重み情報の詳細については後述する。
ライブラリ記憶部125は、再利用可能な運用手順書の部品であるライブラリを記憶する。ライブラリは、既存の運用手順書に出現する典型的なオペレーション列であって、部品として意味のあるひとまとまりのオペレーション列である。ライブラリ記憶部125に記憶された2以上のライブラリを組み合わせることで、構成要素が変更された情報処理システムに対する新たな運用手順書を作成することができる。ライブラリは適切なオペレーションの組み合わせを示しており運用管理のノウハウを含むため、構成要素や運用管理に関する十分な経験がなくても運用手順書を作成することが可能となり、操作マニュアルのみから運用手順書を作成する場合よりも負担が軽減される。
ライブラリ候補生成部126は、運用手順書記憶部121に記憶された既存の運用手順書を分析し、複数の運用手順書に共通に出現する典型的なオペレーション列を抽出する。また、ライブラリ候補生成部126は、操作マニュアル記憶部122に記憶された操作マニュアルを参照して、各オペレーションが対象とする構成要素のクラスを推定する。ライブラリ候補生成部126は、推定したクラスの異同を考慮して、抽出したオペレーション列の分割位置を判定して当該オペレーション列を細分化することがある。細分化によりオペレーション列の粒度が調整される。ライブラリ候補生成部126は、粒度調整後のオペレーション列をライブラリ候補として出力する。
ライブラリ生成部127は、ライブラリ候補生成部126が生成したライブラリ候補に対して、オペレーション列の結合や細分化により更に粒度調整を行ってライブラリを生成する。ライブラリ生成部127による粒度調整では、構成情報記憶部123に記憶されたシステム構成情報と、重み情報記憶部124に記憶された重み情報が参照される。ライブラリ生成部127は、生成したライブラリをライブラリ記憶部125に格納する。なお、ライブラリでは、既存の運用手順書に記載されている具体的なオブジェクトの識別情報が抽象的なタグに置換されてもよい。例えば、ライブラリでは、具体的なIPアドレスが、対象オブジェクトのIPアドレスを記載すべき旨のタグに置換されてもよい。
運用手順書生成部128は、情報処理システムの構成要素が変更されたとき、ライブラリ記憶部125に記憶されたライブラリを組み合わせて新たな運用手順書を生成する。ライブラリの選択はオペレータからの入力に応じて行われる。また、対象とするオブジェクトの識別情報はオペレータから入力される。ただし、変更後の情報処理システムのシステム構成情報に基づいて、運用手順書生成部128が自動的または半自動的に、変更後の情報処理システムに適合する運用手順書を生成するようにしてもよい。運用手順書生成部128は、生成した運用手順書を運用手順書記憶部121に格納する。
オペレーション実行部129は、オペレータからの入力に応じて、運用手順書記憶部121に記憶された何れかの運用手順書を選択してディスプレイ111に表示する。オペレーション実行部129は、オペレータからの入力に応じて、選択した運用手順書に従った一連のオペレーションを実行する。例えば、オペレーション実行部129は、対象のオブジェクトに対してコマンドを送信する。ただし、運用手順書は自動実行可能な形式で記載されていてもよく、オペレーション実行部129は運用手順書に従った一連のオペレーションを自動実行するようにしてもよい。一連のオペレーションの自動実行は、オペレータからの入力に応じて開始してもよいし、所定のスケジュールに従って開始してもよい。
次に、ライブラリ生成部127による粒度調整を行わず、ライブラリ候補生成部126が生成したライブラリ候補をライブラリとして採用する場合の問題点について説明する。
図5は、運用手順書の第1の例を示す図である。
運用手順書131は、運用手順書記憶部121に記憶される既存の運用手順書の一例である。運用手順書131は、例えば、オペレータが操作マニュアルを参照して作成したものである。運用手順書131は、Webサーバのメンテナンスを目的とする。
運用手順書131は、オペレーション名が「ログイン」、「rootにスイッチ」、「syslog確認」および「webserver起動抑止」である4つのオペレーションを記載している。これら4つのオペレーションが逐次的に実行される。最初に「ログイン」が実行され、その次に「rootにスイッチ」が実行され、その次に「syslog確認」が実行され、その次に「webserver起動抑止」が実行される。
「ログイン」は、あるサーバを経由して対象サーバにログインするオペレーションである。「ログイン」の作業内容には、自然言語による説明に加えて、ログインのコマンドや経由サーバのIPアドレスが記載されている。「rootにスイッチ」は、ユーザ権限をrootユーザに変更するオペレーションである。「rootにスイッチ」の作業内容には、自然言語による説明に加えて、ユーザ権限を変更するコマンドが記載されている。
「syslog確認」は、ログファイルからエラーメッセージを検索するオペレーションである。「syslog確認」の作業内容には、自然言語による説明に加えて、メッセージ検索のコマンドが記載されている。「webserver起動抑止」は、サーバアプリケーションであるWebサーバの自動起動を解除するオペレーションである。「webserver起動抑止」の作業内容には、自然言語による説明に加えて、起動状態を確認するコマンドやWebサーバを無効にするコマンドが記載されている。
図6は、運用手順書の第2の例を示す図である。
運用手順書132は、運用手順書記憶部121に記憶される既存の運用手順書の一例である。運用手順書132は、例えば、オペレータが操作マニュアルを参照して作成したものである。運用手順書132は、ログファイルの収集を目的とする。
運用手順書132は、オペレーション名が「ディレクトリ作成」、「ログ採取」および「ログ転送」である3つのオペレーションを記載している。これら3つのオペレーションが逐次的に実行される。最初に「ディレクトリ作成」が実行され、その次に「ログ採取」が実行され、その次に「ログ転送」が実行される。
「ディレクトリ作成」は、管理サーバにディレクトリを作成するオペレーションである。「ディレクトリ作成」の作業内容には、自然言語による説明に加えて、管理サーバのIPアドレスやディレクトリ作成のコマンドやディレクトリパスが記載されている。
「ログ採取」は、アプリケーションサーバが保持するログファイルをコピーするオペレーションである。「ログ採取」の作業内容には、自然言語による説明に加えて、アプリケーションサーバのIPアドレスやファイルコピーのコマンドが記載されている。「ログ転送」は、コピーしたログファイルを管理サーバに転送するオペレーションである。「ログ転送」の作業内容には、自然言語による説明に加えて、管理サーバのIPアドレスやFTP(File Transfer Protocol)によるファイル転送のコマンドが記載されている。
図7は、操作マニュアルの例を示す図である。
操作マニュアル133は、操作マニュアル記憶部122に記憶される操作マニュアルの一例である。操作マニュアル133は、構成要素のクラスであるオペレーティングシステムOS_Lが受け付け可能なコマンドを説明している。コマンドの説明は、コマンドの記載形式と、オプションの記載形式および意味を含む。操作マニュアル133は、オペレーティングシステムOS_Lが受け付け可能なファイルコピーのコマンドと、ディレクトリ作成のコマンドと、ファイル転送のコマンドの説明を含む。
図8は、ライブラリの第1の生成例を示す図である。
ライブラリ候補生成部126は、運用手順書記憶部121に記憶された複数の運用手順書に共通に出現するオペレーション列を抽出する。抽出するオペレーション列は、運用手順書上で連続している2以上のオペレーションである。例えば、ライブラリ候補生成部126は、所定個以上の運用手順書に出現する典型的なオペレーション列を抽出する。オペレーションの同一性は、オペレーション名や作業内容の同一性によって判断される。類似度が高いオペレーションは実質的に同一のオペレーションとみなされる。ここで抽出されたオペレーション列は第1段階のライブラリ候補となる。
ライブラリ候補生成部126は、操作マニュアル記憶部122に記憶された複数の操作マニュアルを参照して、第1段階のライブラリ候補に含まれるオペレーションそれぞれに対応する構成要素のクラスを判定する。クラスの判定では、ライブラリ候補生成部126は、各オペレーションの作業内容からコマンドを抽出し、抽出したコマンドを受け付け可能な構成要素のクラスを特定する。これにより、例えば、オペレーションで送信されるコマンドを処理するOSの種類やミドルウェアの種類が特定される。
そして、ライブラリ候補生成部126は、同じライブラリ候補の中で、隣接する2つのオペレーションの間で構成要素のクラスを比較する。ライブラリ候補生成部126は、構成要素のクラスが同じオペレーションの組については分割しないと判定し、構成要素のクラスが異なるオペレーションの組については分割すると判定する。ライブラリ候補生成部126は、判定した分割位置でオペレーション列を更に分割することで、上記の第1段階のライブラリ候補を細分化する。これにより、ライブラリ候補の粒度が調整される。
ここでは、ライブラリ候補生成部126が生成した第2段階のライブラリ候補をライブラリとして採用する場合を考える。例えば、前述の運用手順書132から、「ディレクトリ生成」と「ログ採取」と「ログ転送」を含むライブラリ候補141が生成される。「ディレクトリ生成」が対象とする構成要素のクラスは、作業内容に含まれるコマンドと操作マニュアル133からOS_Lと判定される。「ログ採取」が対象とする構成要素のクラスは、作業内容に含まれるコマンドと操作マニュアル133からOS_Lと判定される。「ログ転送」が対象とする構成要素のクラスは、作業内容に含まれるコマンドと操作マニュアル133からOS_Lと判定される。ライブラリ候補141の3つのオペレーションは、対象とする構成要素のクラスが同一であるため分割されない。そこで、「ディレクトリ生成」と「ログ採取」と「ログ転送」を含むライブラリ151が生成される。
しかし、「ディレクトリ生成」と「ログ採取」は、コマンドを受け付け可能なOSの種類は同じであっても、異なるサーバコンピュータにコマンドを送信している。すなわち、対象とする構成要素のクラスは同じであっても、対象とする構成要素のオブジェクトは異なる。また、「ディレクトリ生成」は、ログファイルの転送先のディレクトリが既に用意されている場合は不要なオペレーションであり、「ログ採取」に付随する必須のオペレーションとは言えない。よって、生成されたライブラリ151は粒度が大きすぎることになり、ライブラリ151の再利用可能性が低下してしまう。
図9は、ライブラリの第2の生成例を示す図である。
ここでは、「監視抑止」、「シングルユーザモード」、「アンマウント」、「ドライブチェック」、「マウント」、「マルチユーザモード」および「監視抑止解除」というオペレーションを記載した運用手順書が運用手順書記憶部121に記憶されているとする。
「監視抑止」は、メンテナンス中のアラート発生を抑止するため、監視ソフトウェアによる監視を停止するオペレーションである。「シングルユーザモード」は、メンテナンス中の他の処理の起動を抑止するため、OSの実行モードをマルチユーザモードからシングルユーザモードに変更するオペレーションである。「アンマウント」は、ディスクドライブをOSのファイルシステムから切り離すオペレーションである。「ドライブチェック」は、ディスクドライブの物理的故障の有無を検査するオペレーションである。
「マウント」は、ディスクドライブをOSのファイルシステムから認識可能に接続するオペレーションである。「マルチユーザモード」は、OSの実行モードをシングルユーザモードからマルチユーザモードに戻すオペレーションである。「監視抑止解除」は、監視ソフトウェアによる監視を再開するオペレーションである。この運用手順書の本来のオペレーションは「ドライブチェック」である。「監視抑止」は前処理に相当し、「監視抑止解除」はそれに対応する後処理に相当する。「シングルユーザモード」は前処理に相当し、「マルチユーザモード」はそれに対応する後処理に相当する。「アンマウント」は前処理に相当し、「マウント」はそれに対応する後処理に相当する。
例えば、ライブラリ候補生成部126は、この運用手順書からライブラリ候補142〜146を生成する。ライブラリ候補142〜146は第1段階のライブラリ候補である。ライブラリ候補142は「監視抑止」を含む。ライブラリ候補143は「シングルユーザモード」を含む。ライブラリ候補144は「アンマウント」、「ドライブチェック」および「マウント」を含む。ライブラリ候補145は「マルチユーザモード」を含む。ライブラリ候補146は「監視抑止解除」を含む。
ライブラリ候補生成部126は、操作マニュアル記憶部122に記憶された操作マニュアルを参照して、ライブラリ候補142〜146の各オペレーションが対象とする構成要素のクラスを判定する。「監視抑止」が対象とする構成要素のクラスは監視ソフトウェアと判定される。「シングルユーザモード」が対象とする構成要素のクラスはOS_Lと判定される。「アンマウント」が対象とする構成要素のクラスはOS_L.Diskと判定される。OS_L.Diskは、オペレーティングシステムOS_L上で動作する制御ソフトウェアである。「ドライブチェック」が対象とする構成要素のクラスはOS_Lと判定される。「マウント」が対象とする構成要素のクラスはOS_L.Diskと判定される。「マルチユーザモード」が対象とする構成要素のクラスはOS_Lと判定される。「監視抑制解除」が対象とする構成要素のクラスは監視ソフトウェアと判定される。
ライブラリ候補144に含まれる「アンマウント」と「ドライブチェック」は異なる構成要素のクラスを対象としており、「ドライブチェック」と「マウント」は異なる構成要素のクラスを対象としている。よって、ライブラリ候補144は3つに分割される。その結果、ライブラリ候補生成部126は、ライブラリ152〜158を生成する。ライブラリ152は「監視抑止」を含む。ライブラリ153は「シングルユーザモード」を含む。ライブラリ154は「アンマウント」を含む。ライブラリ155は「ドライブチェック」を含む。ライブラリ156は「マウント」を含む。ライブラリ157は「マルチユーザモード」を含む。ライブラリ158は「監視抑止解除」を含む。
しかし、「シングルユーザモード」と「アンマウント」は、コマンドを受け付けるソフトウェアの種類が異なっていても、同じサーバコンピュータにコマンドを送信している。すなわち、対象とする構成要素のクラスは異なっても、対象とする構成要素のオブジェクトは同一である。「アンマウント」と「ドライブチェック」、「ドライブチェック」と「マウント」、「マウント」と「マルチユーザモード」の関係も同様である。
また、「シングルユーザモード」、「アンマウント」、「マウント」および「マルチユーザモード」は、「ドライブチェック」に付随して実行されるべき必要性の高いオペレーションである。また、「監視抑止」と「監視抑止解除」は組み合わせて実行されるべき前処理と後処理に相当する。同様に、「シングルユーザモード」と「マルチユーザモード」は組み合わせて実行されるべき前処理と後処理に相当し、「アンマウント」と「マウント」は組み合わせて実行されるべき前処理と後処理に相当する。よって、生成されたライブラリ152〜158は粒度が小さすぎることになり、ライブラリ152〜158の再利用可能性が低下してしまう。なお、監視ソフトウェアが出力するアラートを無視すれば監視ソフトウェアを停止せずに「ドライブチェック」を行うことも可能であるため、「監視抑止」と「監視抑止解除」は必須のオペレーションとは言えない。
このように、ライブラリ候補生成部126が生成するライブラリ候補は、オペレーション列の分割位置が妥当でないために粒度が適切でないことがある。そこで、ライブラリ生成部127が分割位置を修正してライブラリの粒度を調整する。以下に説明するように、ライブラリ生成部127は、運用手順書上で隣接する2つのオペレーション毎に結合度を評価する。ライブラリ生成部127は、結合度が閾値以下の位置で分割すると決定し、結合度が閾値を超える位置では分割しないと決定する。
図10は、システム構成情報の例を示す図である。
システム構成情報134は、構成情報記憶部123に記憶される。システム構成情報134は、運用管理対象の情報処理システムの構成要素が変更される毎に修正される。システム構成情報134は、オペレータが手動で更新するようにしてもよいし、情報処理システムから情報を収集して自動的に更新するようにしてもよい。
システム構成情報134には、情報処理システムに含まれる複数のオブジェクトそれぞれについてオブジェクト名と属性が登録される。オブジェクト名は、構成要素の物理的実体であるオブジェクトを特定する名称である。属性は、オブジェクトに付与された識別情報である。属性としては、サーバコンピュータのホスト名、サーバコンピュータのIPアドレス、ファイルシステム上のディレクトリを示すディレクトリパス、ファイルシステム上のファイルを示すファイルパスなどを用いることができる。
例えば、サーバコンピュータというクラスに属するAサーバというオブジェクトについて、特定のホスト名や特定のIPアドレスが付与されている。また、サーバコンピュータというクラスに属するBサーバというオブジェクトについて、Aサーバとは異なるホスト名やAサーバとは異なるIPアドレスが付与されている。
図11は、構成要素間重みテーブルの例を示す図である。
構成要素間重みテーブル135は、重み情報記憶部124に記憶される。構成要素間重みテーブル135は、隣接する2つのオペレーションの間の結合度を、対象とする構成要素のクラスおよびオブジェクトから修正する際に用いられる。構成要素間重みテーブル135は、構成要素1、構成要素2および重みの項目を含む。構成要素1は、隣接する2つのオペレーションのうちの一方のオペレーションが対象とする構成要素が具備すべき条件を示す。構成要素2は、隣接する2つのオペレーションのうちの他方のオペレーションが対象とする構成要素が具備すべき条件を示す。重みは、結合度に加算する値である。
例えば、構成要素間重みテーブル135は、構成要素1が「OS_L(object1)」、構成要素2が「OS_L(object2)」、重みが−0.5というレコードを含む。このレコードは、コマンド送信先のOSの種類が共にOS_Lであるものの、コマンド送信先の物理的実体であるサーバコンピュータが異なる場合には、結合度を0.5だけ低くすることを意味する。構成要素のクラスが同一であっても構成要素のオブジェクトが異なる場合には、オペレーション間の結合度が小さくなることが多い。
また、例えば、構成要素間重みテーブル135は、構成要素1が「OS_L(object1)」、構成要素2が「OS_L(object1)」、重みが+1.0というレコードを含む。このレコードは、コマンド送信先のOSの種類が共にOS_Lであり、コマンド送信先の物理的実体であるサーバコンピュータが同一である場合には、結合度を1.0だけ大きくすることを意味する。構成要素のクラスが同一であり構成要素のオブジェクトも同一である場合には、オペレーション間の結合度が大きくなることが多い。
また、例えば、構成要素間重みテーブル135は、構成要素1が「OS_L(object1)」、構成要素2が「OS_L(object1).Disk」、重みが+0.5というレコードを含む。このレコードは、コマンド送信先のソフトウェアの種類がOS_LとOS_L.Diskであり、かつ、コマンド送信先の物理的実体であるサーバコンピュータが同一である場合には、結合度を0.5だけ大きくすることを意味する。結合度が大きくなるのは、相互に関連性の高いコマンドの送信と言えるからである。
また、例えば、構成要素間重みテーブル135は、構成要素間重みテーブル135は、構成要素1が「class1」、構成要素2が「class2」、重みが−0.5というレコードを含む。このレコードは、それより上側に記載されたレコードの条件に当てはまらない場合に適用される。このレコードは、構成要素のクラスが異なる場合には、結合度を0.5だけ小さくすることを意味する。一般的には、構成要素のクラスが異なる場合には、オペレーション間の結合度が小さくなることが多い。
図12は、オペレーション間重みテーブルの例を示す図である。
オペレーション間重みテーブル136は、重み情報記憶部124に記憶される。オペレーション間重みテーブル136は、隣接する2つのオペレーションの間の結合度を、前処理と後処理の関係から修正する際に用いられる。オペレーション間重みテーブル136は、前処理、後処理および重みの項目を含む。前処理の項目には、前処理として実行されるオペレーションを特定するためのキーワードが登録される。後処理の項目には、前処理に対応する後処理として実行されるオペレーションを特定するためのキーワードが登録される。重みは、結合度に加算する正の値である。オペレーション間重みテーブル136には、複数の前処理と後処理の組み合わせの情報が登録される。
ライブラリ生成部127は、運用手順書に記載されたオペレーション名や作業内容から前処理のキーワードを検索し、前処理に相当するオペレーションを検出する。また、ライブラリ生成部127は、運用手順書に記載されたオペレーション名や作業内容から後処理のキーワードを検索し、後処理に相当するオペレーションを検出する。対応関係にある前処理のオペレーションと後処理のオペレーションが検出されると、ライブラリ生成部127は、前処理から後処理までの区間内の結合度を大きくする。すなわち、ライブラリ生成部127は、前処理と後処理の間に存在する隣接する2つのオペレーションの組について、それぞれ結合度に重みを加えて分割されにくくする。
図13は、ライブラリの第3の生成例を示す図である。
ここでは、図8のライブラリ候補生成部126の処理結果に対して、ライブラリ生成部127が更に粒度調整を行うことを考える。ライブラリ候補161は、図8のライブラリ151に相当する。ライブラリ候補161は、「ディレクトリ生成」、「ログ採取」および「ログ転送」という3つのオペレーションを含む。
ライブラリ生成部127は、構成情報記憶部123に記憶されたシステム構成情報134を参照して、各オペレーションの作業内容からオブジェクトの識別情報を抽出して対象とするオブジェクトを判定する。例えば、ライブラリ生成部127は、「ディレクトリ生成」の作業内容に含まれるIPアドレスから、対象とするオブジェクトがAサーバであると判定する。また、ライブラリ生成部127は、「ログ採取」の作業内容に含まれるIPアドレスから、対象とするオブジェクトがBサーバであると判定する。また、ライブラリ生成部127は、「ログ転送」の作業内容に含まれるIPアドレスから、対象とするオブジェクトがBサーバであると判定する。
また、ライブラリ生成部127は、運用手順書上で隣接する2つのオペレーションの組に対して結合度の初期値を設定する。ライブラリ候補生成部126が同一のライブラリ候補に分類したオペレーションの組に対しては、結合度の初期値が1.0に設定される。ライブラリ候補生成部126が異なるライブラリ候補に分類したオペレーションの組に対しては、結合度の初期値が0に設定される。そこで、ライブラリ生成部127は、「ディレクトリ生成」と「ログ採取」の結合度の初期値を1.0に設定する。また、ライブラリ生成部127は、「ログ採取」と「ログ転送」の結合度の初期値を1.0に設定する。
ライブラリ生成部127は、重み情報記憶部124に記憶された構成要素間重みテーブル135およびオペレーション間重みテーブル136に基づいて、結合度を修正する。ライブラリ候補161は前処理に相当するオペレーションと後処理に相当するオペレーションの組を含まないため、ここでは構成要素間重みテーブル135のみが適用される。
「ディレクトリ生成」と「ログ採取」の組について、前者が対象とする構成要素のクラスはOS_Lであり、前者が対象とする構成要素のオブジェクトはAサーバである。後者が対象とする構成要素のクラスはOS_Lであり、後者が対象とする構成要素のオブジェクトはBサーバである。クラスが共にOS_Lでありオブジェクトが異なるため、「ディレクトリ生成」と「ログ採取」の結合度は0.5だけ減少する。
「ログ採取」と「ログ転送」の組について、前者が対象とする構成要素のクラスはOS_Lであり、前者が対象とする構成要素のオブジェクトはBサーバである。後者が対象とする構成要素のクラスはOS_Lであり、後者が対象とする構成要素のオブジェクトはBサーバである。クラスが共にOS_Lでありオブジェクトが同一であるため、「ログ採取」と「ログ転送」の結合度は1.0だけ増加する。
ライブラリ生成部127は、隣接するオペレーションの組毎に結合度と所定の閾値とを比較し、結合度が閾値以下である場合は分割すると決定し、結合度が閾値を超える場合は分割しない(結合する)と決定する。ここでは、結合度の閾値を0.5とする。すると、「ディレクトリ生成」と「ログ採取」の結合度は0.5であるため、ライブラリ生成部127は、「ディレクトリ生成」と「ログ採取」を分割すると決定する。「ログ採取」と「ログ転送」の結合度は2.0であるため、ライブラリ生成部127は、「ログ採取」と「ログ転送」を分割しない(結合する)と決定する。これにより、ライブラリ候補161の粒度が調整されてライブラリ171,172が生成される。ライブラリ171は「ディレクトリ生成」を含む。ライブラリ172は「ログ採取」および「ログ転送」を含む。
図14は、ライブラリの第4の生成例を示す図である。
ここでは、図9のライブラリ候補生成部126の処理結果に対して、ライブラリ生成部127が更に粒度調整を行うことを考える。ライブラリ候補162〜168は、図9のライブラリ152〜158に相当する。ライブラリ候補162は「監視抑止」を含む。ライブラリ候補163は「シングルユーザモード」を含む。ライブラリ候補164は「アンマウント」を含む。ライブラリ候補165は「ドライブチェック」を含む。ライブラリ候補166は「マウント」を含む。ライブラリ候補167は「マルチユーザモード」を含む。ライブラリ候補168は「監視抑止解除」を含む。
ライブラリ生成部127は、構成情報記憶部123に記憶されたシステム構成情報134を参照して、各オペレーションが対象とするオブジェクトを判定する。「監視抑止」のオブジェクトは、監視ソフトウェアが1つしか存在しないため、自明であるとして省略している。「シングルユーザモード」のオブジェクトはAサーバである。「アンマウント」のオブジェクトはAサーバである。「ドライブチェック」のオブジェクトはAサーバである。「マウント」のオブジェクトはAサーバである。「マルチユーザモード」のオブジェクトはAサーバである。「監視抑止解除」のオブジェクトは、監視ソフトウェアが1つしか存在しないため、自明であるとして省略している。
また、ライブラリ生成部127は、運用手順書上で隣接する2つのオペレーションの組に対して結合度の初期値を設定する。ライブラリ候補162〜168のオペレーションは互いに異なるライブラリ候補に属するため、結合度の初期値は全て0である。
次に、ライブラリ生成部127は、重み情報記憶部124に記憶された構成要素間重みテーブル135に基づいて結合度を修正する。「監視抑止」と「シングルユーザモード」の結合度は、構成要素のクラスが異なるため0.5だけ減少する。「シングルユーザモード」と「アンマウント」の結合度は、構成要素のクラスがOS_LとOS_L.Diskでありオブジェクトが同じため、0.5だけ増加する。「アンマウント」と「ドライブチェック」の結合度、「ドライブチェック」と「マウント」の結合度、「マウント」と「マルチユーザモード」の結合度も、同様に0.5だけ増加する。「マルチユーザモード」と「監視抑止解除」の結合度は、構成要素のクラスが異なるため0.5だけ減少する。
次に、ライブラリ生成部127は、重み情報記憶部124に記憶されたオペレーション間重みテーブル136に基づいて結合度を修正する。「アンマウント」と「マウント」が前処理と後処理の関係にある。このため、「アンマウント」と「ドライブチェック」の結合度、「ドライブチェック」と「マウント」の結合度が0.5だけ増加する。また、「シングルユーザモード」と「マルチユーザモード」が前処理と後処理の関係にある。このため、「シングルユーザモード」と「アンマウント」の結合度、「アンマウント」と「ドライブチェック」の結合度、「ドライブチェック」と「マウント」の結合度、「マウント」と「マルチユーザモード」の結合度が0.5だけ増加する。また、「監視抑止」と「監視抑止解除」が前処理と後処理の関係にある。このため、「監視抑止」から「監視抑止解除」までの区間の各結合度が1.0だけ増加する。
そして、ライブラリ生成部127は、隣接するオペレーションの組毎に結合度と所定の閾値とを比較して、分割する(結合しない)か分割しない(結合する)かを決定する。「監視抑止」と「シングルユーザモード」の結合度は0.5であるため、分割する(結合しない)と決定する。「シングルユーザモード」と「アンマウント」の結合度は2.0であるため、分割しない(結合する)と決定する。「アンマウント」と「ドライブチェック」の結合度は2.5であるため、分割しない(結合する)と決定する。「ドライブチェック」と「マウント」の結合度は2.5であるため、分割しない(結合する)と決定する。「マウント」と「マルチユーザモード」の結合度は2.0であるため、分割しない(結合する)と決定する。「マルチユーザモード」と「監視抑止解除」の結合度は0.5であるため、分割する(結合しない)と決定する。
これにより、ライブラリ候補162〜168の粒度が調整されてライブラリ173〜175が生成される。ライブラリ173は「監視抑止」を含む。ライブラリ174は「シングルユーザモード」、「アンマウント」、「ドライブチェック」、「マウント」および「マルチユーザモード」を含む。ライブラリ175は「監視抑止解除」を含む。
図15は、ライブラリ候補テーブルの例を示す図である。
ライブラリ候補162〜168をライブラリ173〜175に変換するにあたり、結合度の計算のためにライブラリ生成部127によってライブラリ候補テーブル137が生成される。ライブラリ候補テーブル137は、クラス、オブジェクト、オペレーション、結合度および重みの項目を含む。ライブラリ候補テーブル137には、運用手順書に記載された複数のオペレーションが実行順に登録される。
ライブラリ生成部127は、ライブラリ候補テーブル137のオペレーションの項目にオペレーション名を登録する。また、ライブラリ生成部127は、ライブラリ候補テーブル137のクラスの項目に構成要素のクラスの名称(構成要素の種類の名称)を登録する。ライブラリ生成部127は、ライブラリ候補生成部126による分類結果に基づいて、ライブラリ候補テーブル137の結合度の項目に1.0または0の初期値を登録する。図15の例では、あるオペレーションに対応するレコードに含まれる結合度の項目には、当該オペレーションとその次のオペレーションの間の結合度が登録される。
次に、ライブラリ生成部127は、各オペレーションが対象とするオブジェクトを判定すると、ライブラリ候補テーブル137のオブジェクトの項目にオブジェクト名を登録する。ライブラリ生成部127は、隣接する2つのオペレーション毎に、クラスとオブジェクトの組み合わせに基づいて構成要素間重みテーブル135から重みを選択し、選択した重みをライブラリ候補テーブル137の結合度の項目に加算する。
次に、ライブラリ生成部127は、前処理と後処理の組を検出し、検出した前処理と後処理の組に対応する重みをオペレーション間重みテーブル136から選択する。ライブラリ生成部127は、選択した重みをライブラリ候補テーブル137の重みの項目に登録する。このとき、前処理に相当するオペレーションを示すレコードから、後処理に相当するオペレーションを示すレコードの1つ前のレコードまでの各レコードに対して、選択した重みが登録される。前処理と後処理の組が2つ以上検出された場合には、ライブラリ生成部127は、検出された組毎に上記の登録処理を行う。
そして、ライブラリ生成部127は、ライブラリ候補テーブル137の重みの項目に登録された重みを結合度の項目に加算する集計処理を行う。1つのオペレーションに対して2以上の重みが登録されている場合には、それら2以上の重みを全て結合度の項目に加算する。これにより、結合度の項目において最終的な結合度が算出される。
次に、ライブラリ生成の処理手順について説明する。
図16は、ライブラリ生成の手順例を示すフローチャートである。
(S10)ライブラリ候補生成部126は、運用手順書記憶部121に記憶された既存の複数の運用手順書から、2以上の運用手順書に共通して出現する典型的なオペレーション列を抽出する。例えば、ライブラリ候補生成部126は、所定個数以上の運用手順書に出現する共通のオペレーション列を抽出する。
(S11)ライブラリ候補生成部126は、操作マニュアル記憶部122に記憶された構成要素のクラス(構成要素の種類)毎の操作マニュアルを参照して、ステップS10で抽出したオペレーション列に含まれる各オペレーションが対象とする構成要素のクラスを判定する。例えば、ライブラリ候補生成部126は、各オペレーションの作業内容からコマンドを抽出し、当該コマンドを受け付け可能な構成要素のクラスを検索する。
(S12)ライブラリ候補生成部126は、ステップS11で判定した構成要素のクラスに基づいて、ステップS10で抽出したオペレーション列を分割する。例えば、ライブラリ候補生成部126は、隣接する2つのオペレーションの間でクラスを比較し、クラスが同じ位置は分割しないと判定し、クラスが異なる位置は分割すると判定する。
(S13)ライブラリ生成部127は、ステップS10で抽出したオペレーション列において隣接する2つのオペレーション毎に、結合度の初期値を設定する。例えば、ステップS12で分割すると判定されたオペレーションの組に対しては初期値を0に設定し、分割しないと判定されたオペレーションの組に対しては初期値を1.0に設定する。
(S14)ライブラリ生成部127は、構成情報記憶部123に記憶されたシステム構成情報134を参照して、ステップS10で抽出されたオペレーション列に含まれる各オペレーションが対象とする構成要素のオブジェクトを判定する。例えば、ライブラリ生成部127は、各オペレーションの作業内容から、IPアドレスやホスト名やファイルパスなどの識別情報を抽出し、当該識別情報が付与されたオブジェクトを検索する。
(S15)ライブラリ生成部127は、ステップS11で判定された構成要素のクラスとステップS14で判定された構成要素のオブジェクトとに基づいて、重み情報記憶部124に記憶された構成要素間重みテーブル135を検索する。ライブラリ生成部127は、ステップS10で抽出されたオペレーション列上で隣接する2つのオペレーションが具備する構成要素の条件を構成要素間重みテーブル135から探し、重みを選択する。ライブラリ生成部127は、選択した重みを結合度に加算する。
(S16)ライブラリ生成部127は、ステップS10で抽出されたオペレーション列の中から、重み情報記憶部124に記憶されたオペレーション間重みテーブル136に登録されている前処理と後処理の組を検索する。前処理のオペレーションと後処理のオペレーションは、オペレーション名や作業内容とキーワードとをマッチングして検索する。
(S17)ライブラリ生成部127は、ステップS16で検索された前処理のオペレーションから後処理のオペレーションまでの間に存在する隣接するオペレーションの組を特定する。また、ライブラリ生成部127は、オペレーション間重みテーブル136から、該当する前処理と後処理の組に対応する重みを選択する。ライブラリ生成部127は、特定した隣接するオペレーションの組それぞれの結合度に、選択した重みを加算する。
(S18)ライブラリ生成部127は、ステップS10で抽出されたオペレーション列上で隣接する2つのオペレーション毎に、算出された結合度と所定の閾値とを比較し、分割位置を検出する。ライブラリ生成部127は、結合度が閾値以下である位置でオペレーション列を分割する(結合しない)と判定する。また、ライブラリ生成部127は、結合度が閾値を超える位置でオペレーション列を分割しない(結合する)と判定する。
(S19)ライブラリ生成部127は、ステップS18で検出した分割位置でオペレーション列が分割され、それ以外の位置でオペレーション列が分割されないように、ステップS12のオペレーション列を再構成する。ライブラリ生成部127は、再構成後の1つのオペレーション列から1つのライブラリを生成し、生成したライブラリをライブラリ記憶部125に保存する。1つのライブラリには、分割後の1つのオペレーション列に属する各オペレーションのオペレーション名や作業内容が実行順に記載されている。
第2の実施の形態の運用管理装置100によれば、既存の複数の運用手順書から抽出された共通のオペレーション列について、隣接するオペレーション間の結合度が評価され、結合度に基づいてオペレーション列が分割される。結合度は、オペレーションが対象とする構成要素のクラスやオブジェクトの同一性を考慮して算出される。また、結合度は、前処理と後処理の対応関係を考慮して算出される。
これにより、適切な粒度のオペレーション列がライブラリとして自動的に生成され、ライブラリの再利用可能性が向上する。例えば、構成要素のオブジェクトの同一性の観点から、本来のオペレーションとの関連性が小さい他のオペレーションをライブラリから削除することができ、ライブラリの汎用性を向上させることができる。また、本来のオペレーションとの関連性が大きい他のオペレーションを同一のライブラリに含めることができ、ライブラリ間の依存度を低下させることがき、情報処理システムの運用管理に関するノウハウをもたなくてもライブラリの再利用が容易となる。また、前処理と後処理のような対応関係にあるオペレーションが分割されてしまうことを抑制でき、生成されるライブラリを単独で意味のあるオペレーション列とすることができる。その結果、情報処理システムの構成要素の変更などの際に、新たな運用手順書の作成の負担を軽減することができる。