JP6256115B2 - 操作探索プログラム、操作探索方法、および操作探索装置 - Google Patents

操作探索プログラム、操作探索方法、および操作探索装置 Download PDF

Info

Publication number
JP6256115B2
JP6256115B2 JP2014046631A JP2014046631A JP6256115B2 JP 6256115 B2 JP6256115 B2 JP 6256115B2 JP 2014046631 A JP2014046631 A JP 2014046631A JP 2014046631 A JP2014046631 A JP 2014046631A JP 6256115 B2 JP6256115 B2 JP 6256115B2
Authority
JP
Japan
Prior art keywords
condition
operations
procedure
graph
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014046631A
Other languages
English (en)
Other versions
JP2015170283A (ja
Inventor
敦二 関口
敦二 関口
智弘 清水
智弘 清水
武 安家
武 安家
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014046631A priority Critical patent/JP6256115B2/ja
Priority to US14/617,254 priority patent/US9851944B2/en
Publication of JP2015170283A publication Critical patent/JP2015170283A/ja
Application granted granted Critical
Publication of JP6256115B2 publication Critical patent/JP6256115B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/36Combined merging and sorting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、操作探索プログラム、操作探索方法、および操作探索装置に関する。
ICT(Information and Communication Technology)システムなどのシステムの運用管理では、OS(Operating System)やミドルウェアのインストール、バージョンアップなどにより、システムの構成を変更することがある。
システムの構成を変更する場合に有用な技術として、例えば、新たに導入するソフトウェアの信頼性を確保するために、モジュール単体試験を効率的に行うことができるモジュール試験支援装置が考えられている。また、バッチファイルの実行環境正当性、整合性、及び連続実行性を効率的に検証する技術も考えられている。
また、システムの構成を変更する場合、構成変更作業を効率化することも重要である。システムの構成を変更する場合、例えばシステムの起動・停止、システムの設定値変更、ソフトウェア更新などの作業が行われる。このとき、作業が発生するたびに、作業手順を管理者が一から考えていたのでは、作業効率が悪く、間違いも起こりやすい。
そこで、既にある操作手順を流用して、操作対象のシステムに合わせた操作手順を作成することが考えられている。例えば、システムの構成変更内容に応じた構成変更の操作手順が示された手順情報の集合に基づいて、変更対象のシステムに合わせた固有情報が設定された手順情報を出力する技術がある。これにより、システムの構成変更作業の効率化を促進させることができる。
特開平06−250884号公報 特開2006−146503号公報 国際公開第2012/124018号
しかし、従来の技術は、過去に実際に実行された一連の操作手順をひとまとまりとして再利用するものであり、操作対象のシステムがその一連の操作手順全体を実行できる環境になければ再利用できず、再利用の条件が厳しい。例えば一連の操作手順のうちの、一部の操作でも操作対象のシステムが対応できなければ、その一連の操作手順を再利用して、操作対象システムに対する操作手順を作成することはできない。そのため、過去に実行された作業の操作手順を再利用して作成できる操作手順のパターンに限りがあり、目的に合った操作手順を生成ができないことがある。
1つの側面では、本件は、操作対象のシステムを所望の状態にするための操作手順を自動生成できる可能性を高めることを目的とする。
1態様では、コンピュータに以下の処理を実行させる操作探索プログラムが提供される。コンピュータは、過去に実施されたシステムの変更作業で行われた複数の操作と、複数の操作に応じて実行された処理とを記録した作業ログに基づいて、事前条件と事後条件とを判断する。事前条件は、操作に応じた処理を実行するシステムに期待される状態を示す。事後条件は、操作に応じた処理を実行したシステムに期待される状態を示す。次にコンピュータは、複数の操作それぞれを、当該操作の事後条件を事前条件とする操作に関連付ける。さらにコンピュータは、操作対象システムが満たしている初期条件を事前条件とする操作から、関連付けられた操作を辿り、作業後の操作対象システムの目標とする状態を示す目標条件を事後条件とする操作に到達する経路を探索する。そしてコンピュータは、探索された経路上の操作を並べた操作手順を生成する。
1態様によれば、操作対象のシステムに合わせた操作手順を自動生成できる可能性が高まる。
第1の実施の形態に係る操作探索装置の機能構成例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 第2の実施の形態に用いる管理サーバのハードウェアの一構成例を示す図である。 第2の実施の形態に係るICTシステムおよび管理サーバの機能を示すブロック図である。 ログDBに格納される作業ログの一例を示す図である。 CMDBの一例を示す図である。 条件判定辞書の一例を示す図である。 グラフDBの一例を示す図である。 操作手順の自動生成の処理手順を示すフローチャートである。 グラフ作成処理の手順の一例を示すフローチャートである。 操作の属性の取得方法の一例を示す図である。 事前/事後条件の判断例を示す図である。 条件の属性の取得方法の一例を示す図である。 マージ処理の一例を示す図である。 手順探索の処理手順の一例を示すフローチャートである。 手順探索の一例を示す図である。 第3の実施の形態に係るICTシステムの構成例を示す図である。 第3の実施の形態における操作手順の自動生成処理の一例を示すフローチャートである。 手順探索・実行処理の手順の一例を示すフローチャートである。 第3の実施の形態の手順探索の一例を示す第1の図である。 第3の実施の形態の手順探索の一例を示す第2の図である。 第3の実施の形態の手順探索の一例を示す第3の図である。 第3の実施の形態の手順探索の一例を示す第4の図である。 第3の実施の形態の手順探索の一例を示す第5の図である。 第3の実施の形態の手順探索の一例を示す第6の図である。 第3の実施の形態の手順探索の一例を示す第7の図である。 第3の実施の形態の手順探索の一例を示す第8の図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。
図1は、第1の実施の形態に係る操作探索装置の機能構成例を示す図である。操作探索装置10は、操作対象システム1を所望の状態にするための操作手順を自動生成するものである。そのために操作探索装置10は、判断手段11、関連付け手段12、記憶手段13、探索手段14、生成手段15、および操作手段16を有する。
判断手段11は、過去に実施されたシステムの変更作業で行われた複数の操作と、複数の操作に応じて実行された処理とを記録した作業ログ2,3を取得する。作業ログ2,3には、システムの変更作業時に、そのシステムに対して実施された操作内容と、その操作に応じてシステムで実行された処理とが記録されている。操作内容は、例えばシステムに入力されたコマンドである。操作に応じて実行された処理とは、例えばコマンドに応じたファイルの読み込み処理、ファイルの書き込み処理などである。
そして判断手段11は、取得した作業ログ2,3に基づいて、複数の操作それぞれについて、操作に応じた処理を実行するシステムに期待される状態を示す事前条件と、操作に応じた処理を実行したシステムに期待される状態を示す事後条件とを判断する。以下、単に「条件」といった場合、事前条件と事後条件とを包含するものとする。
事前条件は、例えば操作に応じて実行される処理ごとに存在する。事前条件としては、例えば「操作に応じた処理の実行時に読み込むファイルをシステムが有している。」という条件がある。この場合、操作に応じた処理の実行時に読み込むファイルのリストが事前条件内に定義される。
事後条件は、例えば操作に応じた処理ごとに存在する。事後条件としては、例えば「操作に応じた処理の実行により生成されたファイルをシステムが有している。」という条件がある。この場合、操作に応じた処理の実行により生成されたファイルのリストが事後条件内に定義される。
操作ごとの事前条件と事後条件とを判断した判断手段11は、例えば各操作に事前条件と事後条件とを関連付けた条件定義情報4を生成し、関連付け手段12に送信する。
関連付け手段12は、複数の操作それぞれを、その操作の事後条件を事前条件とする操作に関連付ける。例えば関連付け手段12は、条件定義情報4に基づいてグラフ5を作成する。グラフ5は、複数の操作それぞれを遷移元とし、遷移元の操作の事後条件を事前条件とする操作を遷移先とし、遷移元の操作から遷移先の操作への遷移を定義したものである。ある操作から別の操作への遷移は、グラフ5上では、例えば事前条件または事後条件を示す条件を経由した遷移として定義される。関連付け手段12は、作成したグラフ5を記憶手段13に格納する。
記憶手段13は、グラフ5を記憶する。例えば記憶手段13として、不揮発性の記憶媒体を用いることができる。なおグラフ5を作成後、すぐにグラフ5を用いた経路探索が実行される場合、記憶手段13として主記憶装置としてのメモリを用いてもよい。
探索手段14は、操作対象システム1が満たしている初期条件を事前条件とする操作から、関連付けられた操作を辿り、作業後の操作対象システム1の目標とする状態を示す目標条件を事後条件とする操作に到達する経路を探索する。例えば探索手段14は、探索条件6に基づいて、グラフ5内の経路を探索する。探索条件6には、操作対象システム1が満たしている初期条件と、作業によって操作対象システム1が満たすこととなる目標条件とが含まれている。例えば探索手段14は、初期条件を事前条件とする操作から、既に辿った操作の事後条件または初期条件を事前条件とする操作への遷移を辿って、目標条件を事後条件とする操作に到達する、グラフ5上での経路を探索する。探索手段14は、探索結果7を生成手段15に送信する。
生成手段15は、探索結果7に基づいて、探索された経路上の操作を並べた操作手順8を生成する。そして生成手段15は、生成した操作手順8を操作手段16に送信する。
操作手段16は、操作手順8にしたがって、操作対象システム1に対する操作を行う。
このような操作探索装置10によれば、作業ログ2,3が入力されると、判断手段11により、取得した作業ログ2,3に基づいて、複数の操作それぞれについて事前条件と事後条件とが判断される。図1の例では、作業ログ2には「操作1」と「操作2」とが含まれており、作業ログ3には「操作3」と「操作4」とが含まれている。そこで4つの操作それぞれについて、事前条件と事後条件とが判断される。そして判断手段11は、各操作の事前条件と事後条件とを示す条件定義情報4を生成する。
条件定義情報4は、例えば事前条件または事後条件を示すノード、操作それぞれをノードとしてグラフで表すことができる。この場合、事前条件のノードと操作のノードとがエッジで接続され、操作と事後条件とがエッジで接続される。
次に関連付け手段12により、操作ごとの事前条件と事後条件とが定義された条件定義情報4に基づいて、グラフ5が作成される。図1の例では、「操作1」の事後条件に「条件2」があり、「操作2」の事前条件に「条件2」がある。そこで関連付け手段12は、条件定義情報4において個別に存在する「操作1」と「操作2」とのグラフを統合する。例えば「操作1」のノードにエッジで接続された「条件2」のノードに、「操作2」のノードをエッジで接続する。同様に、条件の同一性に基づいて、条件定義情報4内の操作ごとのグラフが統合され、最終的なグラフ5となる。作成されたグラフ5は、記憶手段13に格納される。
その後、探索条件6が入力されると、探索手段14によって、グラフ5から、探索条件6に応じた経路が探索される。図1の例では、初期条件を「条件1」、目標条件を「条件6」とする探索条件6が入力されている。グラフ5では、初期条件である「条件1」を事前条件とするのは「操作1」である。「操作1」の事後条件として「条件3」が存在し、その「条件3」は「操作4」の事前条件でもある。すなわち「操作1」から「操作4」へ、「条件3」を介した遷移が存在する。「操作4」の事後条件としては、目標条件である「条件6」が存在する。その結果、グラフ5上で「操作1」と「操作4」とを通る遷移経路が、探索結果7として出力される。
探索結果7に基づいて、生成手段15により操作手順8が生成される。図1の例では、「操作1」、「操作4」の順で操作することを示す操作手順8が生成されている。そして操作手順8にしたがって、操作手段16により操作対象システム1に対する操作が行われる。その結果、操作対象システム1では操作に応じた処理が実行され、操作対象システム1において目標条件が満たされるようになる。
このように第1の実施の形態に示す操作探索装置10によれば、過去に実施された作業を個々の操作単位で再利用した操作手順8を作成することができ、その結果、操作対象のシステムに合わせた操作手順を自動生成できる可能性が高まる。
例えば図1の例では、作業ログ2,3のいずれも、初期条件「条件1」を満たすシステムが、目標条件「条件6」を満たすように変更する作業ではない。そのため、過去に実施された操作手順を表す作業ログ2,3に基づいて、過去に実施された操作手順の一部を再利用しようとしても、探索条件6を満たす操作手順は作成できない。第1の実施の形態では、過去に実施された作業の操作手順を操作ごとに分解し、条件の共通性によって作業を組み合わせて、探索条件6に合致する操作手順8を作成することができる。換言すると、過去に実行された作業の操作手順を、細かい粒度で再利用することができる。その結果、生成可能な操作手順の種類の豊富化が図られ、操作対象システム1が目標条件を満たすようにするための操作手順を、高い確率で自動生成できるようになる。
ところで、生成した操作手順8に沿って操作対象システム1を操作したときに、目的通りの処理が実行されない場合があり得る。例えば処理を実行するプログラムの版数の違いにより、処理結果が異なる場合がある。そこで操作探索装置10において、操作手順8に応じた処理が実行できるかどうかを、予め判断するようにしてもよい。
例えば、各操作に応じた処理を実行可能なシステムの状態を求め、操作対象システム1の状態で動作可能な操作により操作手順8を作成するようにしてもよい。その場合、例えば判断手段11が、作業ログ2,3に基づいて、複数の操作それぞれに応じた処理を実行可能な、システムの状態を求める。そして関連付け手段12は、操作対象システム1の状態において動作可能な操作への遷移を辿ることで経路を探索する。これにより、生成された操作手順8が操作対象システムに適用できることに関する信頼性を向上させることができる。
また操作に応じた処理で使用する情報について、操作対象システム1で使用可能であることを確認済みの操作手順8を作成するようにしてもよい。その場合、判断手段11は、事前情報または事後条件において、システム内に存在すると定義された情報について、作業ログ2,3に基づいて、その情報を使用可能なシステムの状態を求める。そして関連付け手段12は、グラフ5に含まれる操作のうち、事前条件と事後条件とのそれぞれで使用する情報が操作対象システム1で使用可能である操作への遷移を辿ることで、経路を探索する。これにより、生成された操作手順が操作対象システムに適用できることに関する信頼性を向上させることができる。
上記説明では、過去に実行された作業ログ2,3の内容のみをグラフ5に反映させているが、操作対象システム1への操作結果に応じて、逐次グラフ5を更新することもできる。この場合、操作探索装置10は、例えば、操作手順8を作成後に、以下の処理を繰り返し実行する。
[手順1]操作手段16が、操作手順が生成されるごとに、その操作手順に示された最初の操作を、操作対象システム1に対して実行する。
[手順2]関連付け手段12が、操作が実行されるごとに、その操作の実行によって操作対象システム1が満たした条件を、その操作の事後条件に加えてグラフ5を更新する。
[手順3]探索手段14が、操作が実行されるごとに、操作の実行によって操作対象システム1に生じた条件を初期条件に加え、初期条件を事前条件とする未実行の操作から、既に辿った操作の事後条件または初期条件を事前条件とする操作への遷移を辿って、目標条件を事後条件とする操作に到達する、グラフ5上での経路を探索する。
[手順4]生成手段15が、経路が探索されるごとに、探索された経路上の操作を並べた操作手順を生成する。
以上の[手順1]〜[手順4]の処理が、目標条件を事後条件とする操作が実行されるまで繰り返される。これにより、過去に行われた作業の作業ログ2,3だけでは構築できない操作手順を生成することができ、操作対象システム1が目標条件を満たすようにするための操作手順を、高い確率で自動生成できるようになる。
なお、図1に示す判断手段11、関連付け手段12、探索手段14、生成手段15、および操作手段16は、例えば操作探索装置10が有するプロセッサにより実現することができる。また、記憶手段13は、例えば操作探索装置10が有するメモリにより実現することができる。また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、多数のICTシステムから作業ログを収集して、特定のICTシステムに対する操作手順を自動生成できるようにしたものである。
図2は、第2の実施の形態のシステム構成例を示す図である。第2の実施の形態では、図1に示した第1の実施の形態の操作探索装置10の一例として、管理サーバ100が設けられている。管理サーバ100には、ネットワーク20を介して複数のICTシステム41〜44が接続されている。複数のICTシステム41〜44は、それぞれサーバ、ストレージ装置、ネットワークスイッチなどを含んでいる。
またネットワーク20には、複数のユーザ51〜54それぞれが使用する端末装置31〜34が接続されている。ICTシステム41〜44は、それぞれ別個のユーザが管理している。またICTシステム41〜44は、それぞれ1以上のサーバで構成されている。
図2の例では、ユーザ51は、端末装置31を使用してICTシステム41を管理する。またユーザ52は、端末装置32を使用してICTシステム42を管理する。またユーザ53は、端末装置33を使用してICTシステム43を管理する。またユーザ54は、端末装置34を使用してICTシステム44を管理する。
管理サーバ100は、ユーザ51〜54によるICTシステム41〜44の運用管理を支援するコンピュータである。管理サーバ100は、ユーザ51〜54による端末装置31〜34を介したICTシステム41〜44に対する操作内容をICTシステム41〜44から取得し、作業ログとして保持する。また管理サーバ100は、保持している作業ログに基づいて、作業内容に応じた操作手順を示すグラフを生成する。さらに管理サーバ100は、ユーザ51〜54による端末装置31〜34からの手順要求に応じて、手順要求を操作するユーザが使用するICTシステムに適合する操作手順を生成し、手順要求を出力した端末装置に応答する。
管理サーバ100は、多様な操作手順を生成可能とするため、沢山の作業者の手順の作業ログを操作単位に細切れにし、各操作の動作条件を明らかにしておき、操作をつなぎあわせて操作手順を生成する。
図3は、第2の実施の形態に用いる管理サーバのハードウェアの一構成例を示す図である。管理サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、管理サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、管理サーバ100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、管理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した操作探索装置10も、図3に示した管理サーバ100と同様のハードウェアにより実現することができる。
管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また管理サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
図4は、第2の実施の形態に係るICTシステムおよび管理サーバの機能を示すブロック図である。ICTシステム41〜44は、それぞれ情報提供部41a,42a,43a,44aを有している。情報提供部41a,42a,43a,44aは、ICTシステム41〜44に対して実施された操作のログを取得し、管理サーバ100に送信する。また情報提供部41a,42a,43a,44aは、ICTシステム41〜44の構成情報を管理サーバ100に送信する。ICTシステム41〜44の構成情報には、ハードウェアの状態を示す情報とソフトウェアの状態を示す情報とが含まれる。ハードウェアの状態には、ハードウェア構成と、各ハードウェアの現在の動作状態が含まれる。ソフトウェアの状態には、ソフトウェア構成と、各ソフトウェアの動作状態とが含まれる。
管理サーバ100は、ユーザインタフェース(UI)110、情報収集部120、ログDB130、CMDB140、条件判定辞書記憶部150、グラフ作成部160、グラフDB170、手順探索部180、およびスクリプト実行部190を有する。
UI110は、端末装置31〜34からの入力を受け付ける。そして、UI110は、端末装置31〜34からの入力内容を、情報収集部120、グラフ作成部160、手順探索部180、またはスクリプト実行部190に送信する。また、UI110は、情報収集部120、グラフ作成部160、手順探索部180、またはスクリプト実行部190から受信した出力内容を、端末装置31〜34に送信する。
情報収集部120は、ICTシステム41〜44から作業ログや構成情報を収集する。情報収集部120は、収集した作業ログを、ログDB130に格納する。また情報収集部120は、収集した構成情報を、構成管理データベース(CMDB:Configuration Management Database)140に格納する。
ログDB130は、作業ログを記憶する。例えばメモリ102またはHDD103の記憶領域の一部が、ログDB130として使用される。
CMDB140は、ICTシステム41〜44の構成情報を記憶する。例えばメモリ102またはHDD103の記憶領域の一部が、CMDB140として使用される。
条件判定辞書記憶部150は、作業ログから、操作の事前条件または事後条件を判定するための定義である、条件判定辞書を記憶する。例えばメモリ102またはHDD103の記憶領域の一部が、条件判定辞書記憶部150として使用される。
グラフ作成部160は、ログDB130と条件判定辞書記憶部150とを参照し、過去の作業で行われた操作間の関係を示すグラフを生成する。例えばグラフ作成部160は、作業ログを1操作ごとに分解し、それぞれのログを調査する。グラフ作成部160は、操作を、その操作により変化したシステム構成と結びつけ、「事前条件→操作→事後条件」という関係を集めた操作ごとのグラフを作成する。
「変化したシステム構成」には、ファイルの状態の変化、プロセスの状態の変化、通信状態の変化、資源の状態の変化などがある。ファイルの状態の変化には、ファイルの有無の変化、ファイルの内容の変更などがある。プロセスの状態の変化には、実行中プロセスの有無の変化、そのプロセスの内容の変化などがある。通信の状態の変化には、TCP(Transmission Control Protocol)/UDP(User Datagram Protocol)ポートの状態変化などがある。資源の状態の変化には、CPU/メモリ/HDD利用量の変化などがある。
またグラフ作成部160は、操作に関するログから、操作の条件(事前条件または事後条件)の属性を抽出し、グラフの条件のノードに付与する。条件の属性は、例えばファイルに関するファイルパス/所有者/アクセス権/バージョン/サイズ/ハッシュ値/日付など、プロセスに関する名前や引数などである。条件の属性により、その条件に示される情報を利用できるICTシステムの状態(動作環境)が分かる。例えばファイルのアクセス権により、そのファイルに対するアクセス権を有するユーザのプロセスでなければ、その条件を事前条件とする操作を実行できないことが分かる。
さらにグラフ作成部160は、操作に関するログから、操作の属性を抽出し、グラフの操作のノードに付与する。操作の属性には、実行時の権限(例:管理者)、実行システム構成の情報(OS種別、操作内のコマンドのファイルパス/バージョン/サイズ/ハッシュ値など)がある。操作の属性により、その操作に応じた処理を実行できるICTシステムの状態が分かる。例えば実行時の権限により、その操作を実行するための権限を有するユーザアカウントでなければ、ICTシステムの操作を実行できないことが分かる。
グラフ作成部160は、作成したグラフを、グラフDB170に格納する。またグラフ作成部160は、ログDB130を解析し、操作を実行するためのシステム環境や、事前条件または事後条件に示されるファイルを使用するためのシステム環境を判断することもできる。このようなシステム環境を判断した場合、グラフ作成部160は、操作、事前条件、事後条件に応じたシステム環境に関する情報を、属性としてグラフDB170に格納する。
グラフDB170は、作成されたグラフを記憶する。例えばメモリ102またはHDD103の記憶領域の一部が、グラフDB170として使用される。
手順探索部180は、初期条件(操作対象のシステムの現在の状態)と目標条件(操作対象のシステム上に作りたい状態)に基づいてグラフDB170に格納されたグラフから、操作対象となるICTシステムが目標条件を満たすようにするための操作を探索する。例えば手順探索部180は、グラフDB170に格納されたグラフから、初期条件と目標条件とをつなぐサブグラフを探索する。その際、手順探索部180は、例えばCMDB140を参照し、操作対象のICTシステムで実行できる操作のみを探索対象とすることができる。例えば手順探索部180は、操作対象のシステム構成と、条件や操作の属性を比べ、操作対象のシステムにおいて適合している条件または操作のみを、探索対象とする。手順探索部180は、探索により得られた操作の配列から、操作手順を作成する。
スクリプト実行部190は、受け取った操作手順に基づいて、その操作を実行するためのスクリプトを作成する。例えばスクリプト実行部190は、探索処理により得られたサブグラフに含まれる操作を、トポロジカルソートなどで操作を順序に配慮しながら取り出して並べ、スクリプトとする。トポロジカルソートでは、ある操作Aの事後条件を事前条件とする操作Bがあるとき、操作Aが操作Bよりも前にあるという位置関係を保ったまま、探索によって見つけられた操作が一列に並べられる。そしてスクリプト実行部190は、作成したスクリプトに基づいて、操作対象のICTシステムに対して遠隔操作を実行する。
なお図4に示したグラフ作成部160は、図1に示した第1の実施の形態の判断手段11と関連付け手段12とを包含する機能の一例である。図4に示したログDB130は、図1に示した第1の実施の形態の記憶手段13の一例である。図4に示した手順探索部180は、図1に示した第1の実施の形態の探索手段14と生成手段15とを包含する機能の一例である。図4に示したスクリプト実行部190は、図1に示した第1の実施の形態の操作手段16の一例である。
また、図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。さらに、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に、ログDB130に格納される情報について詳細に説明する。
図5は、ログDBに格納される作業ログの一例を示す図である。ログDB130には、ICTシステム41〜44から収集した複数の作業ログ131,132,・・・が格納されている。作業ログ131,132,・・・には、システム構成変更作業においてICTシステムに対して行われた操作と、その操作によりICTシステムで実行された処理とが記述されている。
図5に示した作業ログ131は、Linux(登録商標)ディストリビューションの1つであるCentOS(Community ENTerprise Operating System)上で“yum install mysql”などの操作を実行した時のログ(straceログ)の抜粋である。作業ログ131の例では、操作を実行するときに、execveシステムコールが実行されている。この場合、作業ログ131において「execve」の記述から次の「execve」の記述まで、または「execve」の記述から作業ログ131の終端まで(図5中の破線の枠内)が、個々の操作に関するログとなる。
操作に関するログには、その操作に応じて実行された処理が記述されている。操作に応じた実行された処理は、例えば操作がICTシステムにもたらした作用である。操作による作用には、ファイルの読み出し、ファイルの書き込みなどのファイル操作などが含まれる。図5の例では、「open」で始まる行が、操作がICTシステムにもたらした作用を示している。
次にCMDB140のデータ構造について説明する。
図6は、CMDBの一例を示す図である。CMDB140には、ICTシステムごとの構成情報141,142,・・・が格納されている。
CMDB140の構成情報141は、複数の構成アイテム(CI:Configuration Item)141−1,141−2,・・・を有する。ここで、1つのCIは1つのアイテム(item)に対応する。アイテムは複数のレコード(record)を持つ。レコードの下に、サーバやネットワークなどの構成情報を任意の形式で持つ。
例えばCI141−1は、アイテムのIDやタイプが設定された要素141aの下に、レコードを示す要素141b,141e,・・・が設定されている。レコードを示す要素141bの下には、階層構造で複数の要素141c,141dが設定されている。各要素141c,141d内の先頭の1行は、要素名である。例えば要素141cの要素名は、「Server」である。また各要素内の要素名の下の各行の文字列が属性を表している。例えば要素141c内の「ipaddress=“192.168.1.10”」が1つの属性であり、このうち“192.168.1.10”がその属性の値である。
次に条件判定辞書記憶部150に格納されている条件判定辞書について具体的に説明する。
図7は、条件判定辞書の一例を示す図である。条件判定辞書記憶部150に格納された条件判定辞書151には、文字列のパターンに対応付けて、事前条件または事後条件に関する判定内容が定義されている。図7の例では、「O_RDONLY」の記述がある行は、事前条件が示されているものと判定される。「O_WRONLY」の記述がある行は、事後条件が示されているものと判定される。「O_RDWR」の記述がある行は、事前条件かつ事後条件が示されているものと判定される。
次に、グラフDB170のデータ構造について具体的に説明する。
図8は、グラフDBの一例を示す図である。グラフDB170には、操作テーブル171と条件テーブル172とが格納されている。
操作テーブル171は、操作に関する情報を管理するデータテーブルである。操作テーブル171には、操作ID、事前条件、事後条件、および属性の欄が設けられている。操作IDの欄には、操作の識別情報(操作ID)が設定される。事前条件の欄には、対応する操作における事前条件の識別情報(条件ID)が設定される。事後条件の欄には、対応する操作における事後条件の識別情報(条件ID)が設定される。属性の欄には、操作を実行するためのシステム環境を示す属性が設定される。操作に関する属性は、属性名と属性値とを含んでいる。操作ID「操作i」(iは1以上の整数)の属性についての属性名と属性値は、「属性1=属性i1」,・・・,「属性m=属性im」(左辺が属性名、右辺が属性値、mは1以上の整数)と表される。
図8に示す操作テーブル171には、以下のような操作および条件が登録されている。
・発見した操作は4つ:操作ID「操作1」、「操作2」、「操作3」、「操作4」
・操作ID「操作1」の操作の事前条件の条件IDは「条件11」と「条件12」、事後条件の条件IDは「条件13」と「条件14」
・操作ID「操作2」の操作の事前条件の条件IDは「条件12」と「条件21」、事後条件の条件IDは「条件14」と「条件22」
・操作ID「操作3」の操作の事前条件の条件IDは「条件13」、事後条件の条件IDは「条件31」
・操作ID「操作4」の操作の事前条件の条件IDは「条件22」、事後条件の条件IDは「条件31」
条件テーブル172は、事前条件または事後条件として用いられる条件に関する情報を管理するデータテーブルである。条件テーブル172には、条件IDと属性との欄が設けられている。条件IDの欄には、条件の識別情報(条件ID)が設定される。属性の欄には、システムに期待される状態を示す属性が設定される。条件に関する属性は、属性名と属性値とを含んでいる。条件ID「条件ij」の属性についての属性名と属性値は、「属性1=属性ij1」,・・・,「属性n=属性ijn」(左辺が属性名、右辺が属性値、nは1以上の整数)と表される。
以上のような構成の管理サーバ100により、ICTシステム41〜44に対する過去のシステム構築作業の内容に基づいて、任意のICTシステムに対して実施しようとするシステム構築作業における操作手順が自動生成される。
図9は、操作手順の自動生成の処理手順を示すフローチャートである。
[ステップS101]情報収集部120は、ICTシステム41〜44それぞれから、作業ログと構成情報とを収集する。例えば情報収集部120は、ユーザからの情報収集指示に応じて情報収集を行う。情報収集の際には、例えば情報収集部120は、ICTシステム41〜44に対して、情報提供要求を送信する。ICTシステム41〜44の情報提供部41a,42a,43a,44aは、情報提供要求に応じて、予め蓄積してある作業ログと構成情報とを管理サーバ100に送信する。情報収集部120は、収集した作業ログをログDB130に格納する。また情報収集部120は、収集した構成情報をCMDB140に格納する。
[ステップS102]グラフ作成部160は、ログDB130に格納された作業ログ131,132,・・・に基づいて、操作間の事前条件または事後条件の共通性によりグラフを作成する。例えばグラフ作成部160は、ユーザからのグラフ作成指示に応じてグラフを作成する。またグラフ作成部160は、情報収集部120による情報収集が完了したときに、グラフを作成してもよい。なおグラフ作成の際には、条件判定辞書記憶部150内の条件判定辞書151が参照される。グラフ作成部160は、作成したグラフをグラフDB170に格納する。この処理の詳細は後述する(図10参照)。
[ステップS103]手順探索部180は、グラフDB170に格納されたグラフから、操作対象のICTシステムに対する操作手順を探索する。例えば手順探索部180は、ユーザからの操作手順作成指示に応じて、操作手順の探索を行う。手順探索部180は、探索して得られた操作手順を、スクリプト実行部190に送信する。なお手順探索処理の詳細は後述する(図15参照)。
[ステップS104]スクリプト実行部190は、取得した操作手順をスクリプト化し、スクリプトを実行することで、操作対象のICTシステムの遠隔操作を行う。
このようにして、操作手順を生成し、その操作手順にしたがってICTシステムを操作することができる。次に、グラフ作成処理について詳細に説明する。
図10は、グラフ作成処理の手順の一例を示すフローチャートである。
[ステップS111]グラフ作成部160は、ログDB130から作業ログを読み出し、読み出した作業ログを操作ごとに分割する。例えば図5に示したような作業ログ131,132,・・・であれば、execveシステムコールの記述の直前を境界として、作業ログを分割する。
[ステップS112]グラフ作成部160は、操作単位に分割したログごとに、以下のステップS113〜S117の処理を行うことで、操作の動作条件を抽出する。
[ステップS113]グラフ作成部160は、操作に関するログを解析し、操作と操作の属性とを抽出する。例えばグラフ作成部160は、操作のログから、execveで実行されるコマンドのファイルパスと引数を抽出する。抽出した文字列がICTシステムに対して行われた操作であり、この文字列を操作の名前を示す属性とする。操作のログから抽出される操作の属性としては、名前以外に、例えば、操作の実行者、OS種別、コマンドのファイルパス、コマンドのバージョン、コマンドのサイズ、コマンドのハッシュ値などがある。
図11は、操作の属性の取得方法の一例を示す図である。属性名「名前」の属性値は、例えばコマンドのファイルパスと引数とを結合することで取得できる。例えば図5に示した作業ログ131の最初の操作であれば、“/usr/bin/yum [yum, install, mysql]”が操作の名前を示す属性値となる。
属性名「実行者」の属性値は、例えば“whoami”などのコマンドを実行することで取得できる。例えばICTシステム41〜44の情報提供部41a,42a,43a,44aが操作に応じた処理の実行時に、“whoami”などのコマンドにより、その操作を行っているプロセスのユーザ名などの情報を取得する。そして情報提供部41a,42a,43a,44aは、取得したユーザ名などの情報を、属性名「実行者」の属性値として作業ログに含める。例えば“root”という属性値が取得される。
属性名「OS種別」の属性値は、例えば“uname -srvi”などのコマンドを実行することで取得できる。例えばICTシステム41〜44の情報提供部41a,42a,43a,44aが操作に応じた処理の実行時に、“uname -srvi”などのコマンドにより、操作に応じた処理を制御しているOSの種別を取得する。そして情報提供部41a,42a,43a,44aは、取得したOSの種別を、「OS種別」属性の属性値として、作業ログに含める。例えば“Linux 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64”という属性値が取得される。
属性名「コマンドのファイルパス」の属性値は、例えば、execveシステムコールに示されているコマンドの引数から取得することができる。例えば“/usr/bin/yum”という属性値が取得される。
属性名「コマンドのバージョン」の属性値は、実行するコマンドのバージョンである。例えば、ソフトウェアパッケージのバージョンをコマンドのバージョンとする。属性名「コマンドのバージョン」の属性値は、例えば“rpm -qa | grep コマンド名”などのコマンドを実行することで取得できる。例えばICTシステム41〜44の情報提供部41a,42a,43a,44aが操作に応じた処理の実行時に、“rpm -qa | grep コマンド名”などのコマンドにより、コマンドのバージョンを取得する。そして情報提供部41a,42a,43a,44aは、取得したコマンドのバージョンを、属性名「コマンドのバージョン」の属性値として作業ログに含める。例えば、“yum-3.2.29-40.el6.centos.noarch”という属性値が取得される。
属性名「コマンドのサイズ」の属性値は、例えば、“ls -l コマンドのファイルパス”などのコマンドを実行することで取得できる。例えばICTシステム41〜44の情報提供部41a,42a,43a,44aが操作に応じた処理の実行時に、“ls -l コマンドのファイルパス”などのコマンドにより、コマンドのサイズを取得する。そして情報提供部41a,42a,43a,44aは、取得したコマンドのサイズを、属性名「コマンドのサイズ」の属性値として作業ログに含める。例えば、“801 Bytes”という属性値が取得される。
属性名「コマンドのハッシュ値」の属性値は、例えば“md5sum コマンドのファイルパス”などのコマンドを実行することで取得できる。例えばICTシステム41〜44の情報提供部41a,42a,43a,44aが操作に応じた処理の実行時に、“md5sum コマンドのファイルパス”などのコマンドにより、コマンドのハッシュ値を取得する。そして情報提供部41a,42a,43a,44aは、取得したコマンドのハッシュ値を、属性名「コマンドのハッシュ値」の属性値として作業ログに含める。例えば、“af3eaddb82d77ebb8eaa42e27f61b2ed”という属性値が取得される。
以下、図10の説明に戻る。
[ステップS114]グラフ作成部160は、操作に関するログを解析し、操作の事前条件と属性、および事後条件と属性を抽出する。例えばグラフ作成部160は、openシステムコールのログから、事前/事後条件を抽出する。すなわち、ファイルはopen(“ファイルパス”,オプション)といった形で操作される。そこでグラフ作成部160は、openシステムコールのオプションの合致するパターンを条件判定辞書151(図7参照)から検索する。そしてグラフ作成部160は、openシステムコールの記載内容が、オプションに合致したパターンに対応する条件を定義しているものと判断する。
図12は、事前/事後条件の判断例を示す図である。openシステムコールのオプションが読み込みのみ(O_RDONLY)のとき、読み込み対象のファイルが、この操作で利用するファイルであるとわかる。そこで、操作前に該当ファイルが存在することが、事前条件と判定される。
openシステムコールのオプションが書き込みのみ(O_WRONLY)のとき、書き込み対象のファイルが、この操作後に生成されるファイルであるとわかる。そこで、操作後に該当ファイルが存在することが、事後条件と判定される。
openシステムコールのオプションが読み書き(O_RDWR)の場合は、読み書きのどちらにもなりうる。この場合、読み込み対象のファイルが存在することが、事前条件と判定され、そのファイルの更新後の状態が操作後に存在することが、事後条件と判定される。
このようにして抽出された条件について、属性の抽出が行われる。
図13は、条件の属性の取得方法の一例を示す図である。図13には、ファイルに関する条件が定義されている場合における、ファイルについての属性の取得方法を示している。
属性名「名前」の属性値は、openシステムコールで読み込みまたは書き込み対象となっているファイルのパス(ファイルパス)である。例えば“/lib64/libc-2.12.so”という属性値が取得される。
属性名「所有者」の属性値は、例えば“ls -l ファイルパス”の結果などから取得できる。例えばICTシステム41〜44の情報提供部41a,42a,43a,44aが操作に応じた処理の実行時に、“ls -l コマンドのファイルパス”などのコマンドにより、ファイルの所有者名を取得する。そして情報提供部41a,42a,43a,44aは、取得した所有者名を、属性名「所有者」の属性値として作業ログに含める。例えば、“root”という属性値が取得される。
属性名「グループ」の属性値は、例えば“ls -l ファイルパス”の結果などから取得できる。例えばICTシステム41〜44の情報提供部41a,42a,43a,44aが操作に応じた処理の実行時に、“ls -l コマンドのファイルパス”などのコマンドにより、グループ名を取得する。そして情報提供部41a,42a,43a,44aは、取得したグループ名を、属性名「グループ」の属性値として作業ログに含める。例えば、“root”という属性値が取得される。
属性名「アクセス権」の属性値は、例えば“ls -l ファイルパス”の結果などから取得できる。例えばICTシステム41〜44の情報提供部41a,42a,43a,44aが操作に応じた処理の実行時に、“ls -l コマンドのファイルパス”などのコマンドにより、ファイルへのアクセス権を取得する。そして情報提供部41a,42a,43a,44aは、取得したアクセス権を、属性名「アクセス権」の属性値として作業ログに含める。例えば、“0644”という属性値が取得される。
属性名「サイズ」の属性値は、例えば“ls -l ファイルパス”の結果などから取得できる。例えばICTシステム41〜44の情報提供部41a,42a,43a,44aが操作に応じた処理の実行時に、“ls -l コマンドのファイルパス”などのコマンドにより、ファイルのサイズを取得する。そして情報提供部41a,42a,43a,44aは、取得したサイズを、属性名「サイズ」の属性値として作業ログに含める。例えば、“1916568 Bytes”という属性値が取得される。
属性名「ハッシュ値」の属性値は、例えば“md5sum コマンドのファイルパス”の結果などから取得できる。例えばICTシステム41〜44の情報提供部41a,42a,43a,44aが操作に応じた処理の実行時に、“md5sum コマンドのファイルパス”などのコマンドにより、ファイルのハッシュ値を取得する。そして情報提供部41a,42a,43a,44aは、取得したハッシュ値を、属性名「ハッシュ値」の属性値として作業ログに含める。例えば、“f0dac9e070314da374ca1ca29a1a4fdb”という属性値が取得される。
以下、図10の説明に戻る。
[ステップS115]グラフ作成部160は、既にグラフDB170に格納されている操作から、ステップS113で抽出した操作と同じ操作を検索する。同じ操作とは、例えば各属性の属性値がすべて同じ操作である。またグラフ作成部160は、既にグラフDB170に格納されている条件から、ステップS114で抽出した条件と同じ条件を検索する。同じ条件とは、例えば属性の属性値がすべて同じ操作である。
[ステップS116]グラフ作成部160は、同じ操作、同じ条件をマージする。ここで、「マージする」とは、条件の場合、既存のグラフDB170に登録されている条件のうち、すべての属性の属性値が一致する複数の条件を、同じ条件とみなすことである。すべての属性の属性値が一致するとは、複数の条件のうちのいずれか1つが有する属性については、他の条件も同じ属性名の属性を有しており、各条件の属性名が同じ属性については、属性値が一致していることである。操作の場合も同様で、グラフ作成部160は、すべての属性の属性値が一致する操作を、同じ操作と判断し、操作IDを共通化する。
図8に示した例では、操作ID「操作1」の条件ID「条件12」と、操作ID「操作2」の条件ID「条件12」が同じ条件である。例えばグラフ作成部160は、操作ID「操作2」の条件を抽出した後(抽出時の条件IDを「条件X」とする)、グラフDB170上を検索し、「すべての属性の属性値が一致する条件」があればその条件IDで「条件X」を置き換える。これにより、同じ条件に同じ条件IDを付与し、それらの条件を統合することができる。
[ステップS117]グラフ作成部160は、マージ後の操作および条件を、グラフDB170に登録する。
[ステップS118]グラフ作成部160は、すべての操作のログについて、ステップS113〜S117の処理が終了したら、グラフ作成処理を終了する。
このようにして、グラフDB170に、操作と条件とを関係を表すグラフが格納される。グラフのデータ構造は図8に示した通りである。図8に示した構造のデータにより、グラフが定義されている。グラフDB170で定義されるグラフは、個々の操作に関するグラフを、操作や条件のマージにより統合したものとなる。
図14は、マージ処理の一例を示す図である。グラフDB170の操作テーブル171(図8参照)に示すように4つの操作がある場合、操作ごとのグラフ61〜64を作成することができる。グラフ61〜64は、ノードとエッジとの組み合わせで表される。ノードは、操作または条件を示す要素である。エッジは、ノード間を結ぶ矢印であり、ノード間の関係を示す。
図14の例では、操作を矩形のノードで示し、条件を楕円のノードで示している。操作を示すノードの中には、その操作の操作IDが示されている。条件を示すノードの中には、その条件の条件IDが示されている。操作のノードの左側には、事前条件のノードが配置されており、操作のノードの右側には事後条件のノードが配置されている。操作のノードに対し、その操作の事前条件と事後条件とのノードとが、エッジで接続されている。事前条件のノードと操作のノードとを接続するエッジは、矢印が操作のノードを指している。事後条件のノードと操作のノードとを接続するエッジは、矢印が事後条件のノードを指している。
操作ごとのグラフ61〜64のうち、同じ操作または同じ条件があれば、その操作または条件が1つのノードにまとめられる。同じ操作または条件をまとめることで、操作ごとのグラフ61〜64は、1つのグラフ65に統合される。グラフ65では、操作ID「操作1」の操作と操作ID「操作2」の操作との事前条件である条件ID「条件12」のノードが、1つのノードにまとめられている。また操作ID「操作1」の操作の事後条件である条件ID「条件13」のノードと、操作ID「操作3」の操作の事前条件である条件ID「条件13」のノードとが、1つのノードにまとめられている。また操作ID「操作2」の操作の事後条件である条件ID「条件22」のノードと、操作ID「操作4」の操作の事前条件である条件ID「条件22」のノードとが、1つのノードにまとめられている。
このように統合されたグラフ65を用いて、手順探索を行うことができる。
次に手順探索処理について詳細に説明する。手順探索処理は、例えば、ユーザから、初期条件と目標条件とを指定した手順探索指示の入力があったときに実行される。初期条件には、操作対象のICTシステムの現在の構成が示されている。初期条件はシステム構成に関する条件の集合であり、操作対象のICTシステムは、初期条件に含まれる条件のすべてを満たしている。例えば初期条件としてファイルが定義されていれば、操作対象のICTシステムには、初期条件の属性値を満たしたファイルが存在する。目標条件は、操作対象のICTシステム上に構築するシステム構成である。目標条件はシステム構成に関する条件の集合であり、目標条件に含まれるすべての条件を満たすように、操作対象のICTシステムの手順探索が行われる。
なお初期条件は、例えば操作対象のICTシステムから収集した構成情報に基づいて、手順探索部180が自動生成することができる。また目標条件は、目標に近い構成のICTシステムの指定を受け、手順探索部180が、そのICTシステムから収集した構成情報に基づいて、自動生成してもよい。
図15は、手順探索の処理手順の一例を示すフローチャートである。
[ステップS121]手順探索部180は、グラフDB170に格納されているグラフから、目標条件に対応する条件があるかどうかを検索する。例えば手順探索部180は、目標条件を包含する条件を、グラフ内の条件から検索する。該当する条件があれば、処理がステップS122に進められる。該当する条件がなければ、処理がステップS124に進められる。
[ステップS122]手順探索部180は、目標条件に対応する条件が見つかった場合、目標条件に対応する条件からグラフのエッジを辿り、初期条件に対応する条件まで遡れるかどうかを判断する。この際、手順探索部180は、例えば、操作対象のICTシステムの構成と属性が合致する条件・操作のみを探索の対象とする。すなわち、手順探索部180は、グラフのエッジを辿る際に、エッジで接続されたノードに対応する条件または操作の属性を参照し、操作対象のICTシステムの状態が操作の属性に適合している場合にのみ、該当エッジを辿る。またグラフ中の操作のノードについては、その操作のすべての事前条件が、初期条件であるか、または初期条件に対応する条件に繋がる経路上の操作の事後条件である場合に、その操作のノードに接続されたエッジを辿ることができる。初期条件に対応する条件まで遡れる場合、処理がステップS123に進められる。初期条件に対応する条件まで遡れない場合、処理がステップS124に進められる。
[ステップS123]手順探索部180は、初期条件まで遡れた場合、目標条件に対応する条件から初期条件に対応する条件までの、グラフの経路上のノードおよびエッジを、サブグラフとして抽出する。抽出されたサブグラフが、操作手順を表している。その後、手順探索処理が終了する。
[ステップS124]手順探索部180は、目標条件に対応する条件が見つからないか、該当する条件があっても、その条件から初期条件に対応する条件まで遡れない場合、手順なしと判断し、処理を終了する。
このようにして、初期条件と目標条件をつなぐサブグラフが探索される。
なお図15の例では、目標条件から初期条件に遡って探索を行っているが、初期条件から目標条件に向かって探索を行ってもよい。例えば手順探索部180は、事前条件がすべて初期条件に含まれる操作のノードを起点とし、その操作の事後条件を事前条件とする操作について、実行可能かどうかを判断する。実行可能な操作とは、事前条件が、初期条件または既に辿った経路上の操作の事後条件に含まれており、その操作の属性および操作の事前条件の属性それぞれで示される状態が、操作対象のICTシステムで満たされているような操作である。手順探索部180は、実行可能な操作が見つかれば、その操作から目条件の方向に向かって、順次操作を探索する。これにより、初期条件から目標条件に向かって探索することができる。
図16は、手順探索の一例を示す図である。図16の例では、図14に示したようなグラフ65から手順探索を行うものとする。そして、初期条件として条件ID「条件11」、「条件12」の条件が与えられ、目標条件として条件ID「条件31」の条件が与えられたものとする。また、操作対象のICTシステムの条件として、「実行者:root」といった操作の属性と属性値が与えられているものとする。ここで、操作ID「操作1」〜「操作4」のすべての操作の属性が、操作対象のICTシステムで満たされているものとする。
探索条件が入力されると、グラフ65から目標条件が探索される。グラフ65には、目標条件67に対応する条件(条件ID「条件31」)が存在する。
次に目標条件67に対応する条件から、グラフ65上を初期条件まで遡れるかどうかが探索される。グラフ65では、初期条件66に対応する条件(条件ID「条件11」、「条件12」)が存在する。そして初期条件66に対応する条件のノードと、目標条件67に対応する条件のノードとの間は、操作ID「操作1」、条件ID「条件13」、操作ID「操作3」の各ノードを介して接続されており、経路上の各操作・条件は、操作対象のICTシステムで満たされている。そこで、探索によって抽出された経路上のノードとエッジとが抽出され、サブグラフ68が生成される。
なおサブグラフ68中の操作の事前条件は、初期条件もしくはその操作より前に実行可能な操作の事後条件になっていなければならない。例えばグラフ65上を、条件ID「条件31」のノードから遡るとき、操作ID「操作4」、条件ID「条件22」、操作ID「操作2」、条件ID「条件12」の各ノードを辿る経路もある。しかし、この経路の上の操作ID「操作2」の操作の事前条件である条件ID「条件21」が、初期条件として満たされておらず、実行可能な操作の事後条件でもない。そのため条件ID「条件21」のノードは選択することができず、このノードを経由する経路は、探索の対象から除外される。
なお図16の例では、簡単のために目標条件を1つとしたが、目標条件が複数ある場合、手順探索部180は、目標条件ごとに手順探索を行う。そして手順探索部180は、目標条件ごとのサブグラフを、同じ操作または条件をまとめることで統合する。
成されたサブグラフ68が、操作対象のICTシステムに対する操作手順69を表している。スクリプト実行部190は、サブグラフ68に基づいて、スクリプトを生成する。例えばスクリプト実行部190は、抽出したサブグラフ68に含まれる操作を、初期条件に近い操作ほど前に実行されるように並べる。すなわち、スクリプト実行部190は、ある操作Aにおいて、その事前条件Bを事後条件とするような操作Cがある場合は、その操作Cを先に実行するように、操作を並べる。このような操作の配置方法として、例えばトポロジカルソートなどの方法がある。
このようにして操作を並べたスクリプトが生成される。図16の例では、操作ID「操作1」の操作の次に、操作ID「操作3」の操作を実行する手順を記述したスクリプトが生成される。
このように、第2の実施の形態によれば、過去に行った作業における操作手順を、操作ごとに分割して再利用した操作手順を生成できる。すなわち、細かな手順(操作)の粒度で再利用できる。これにより、過去の作業全体のような大きな纏まりの手順から探索条件に合致する事例が見つけ出せない場合であっても、個別の操作の組み合わせにより、探索条件に合致する操作手順を生成することができる。その結果、操作手順を生成できる場面が増え、過去の手順の再利用率が向上する。そして、作業の工数が削減される。
また第2の実施の形態では、操作手順を探索する際に、操作対象のシステムで動作する操作・条件のみを対象として探索が行われる。これにより、作成した操作手順にしたがって操作を行えば、操作対象のシステムの構成を、目的通りに変更できることが保証できる。その結果、開発者による操作手順の検証作業を行わずにすみ、作業の工数が削減される。
〔第3の実施の形態〕
次に、第3の実施の形態について説明する。第3の実施の形態は、操作対象のICTシステムから、想定通りの操作結果が得られない場合であっても、操作対象のICTシステムの構成を、目条件に適合する構成に変更できるようにするものである。
コンピュータシステムに対するソフトウェアの導入や更新作業においては、想定していない結果が生じることがある。例えば管理しきれていないソフトウェアの版数の違いなどにより、同じ操作を行っても異なる結果となることがある。これは、過去の作業ログに示されている操作を再利用して同じ操作を行っても、操作対象のICTシステムが、その操作に定義された事後条件を満たさない場合があり得ることを意味する。そのため、第2の実施の形態に示したようなスクリプトを操作対象のICTシステムに対して実行しても、そのICTシステムが目標条件を満たさない可能性がある。
そこで第3の実施の形態では、手順探索で得られた操作手順の最初の操作を実行するごとに、操作対象のICTシステムの最新の状態に応じてグラフを更新し、再度手順探索を行う。これにより、操作の結果が想定外であっても、目条件に適合するように、操作対象のICTシステムの構成を変更可能となる。
図17は、第3の実施の形態に係るICTシステムの構成例を示す図である。図17に示す要素のうち、図4に示した第2の実施の形態の要素と同じ要素には同じ符号を付し説明を省略する。
第3の実施の形態の管理サーバ100aは、UI110、情報収集部121、ログDB130、CMDB140、条件判定辞書記憶部150、グラフ作成部161、グラフDB170、手順探索部181、および操作実行部191を有する。操作実行部191は、手順探索部181により操作手順が探索されると、操作対象のICTシステムに対して、その操作手順の最初の操作を実行する。
情報収集部121、グラフ作成部161、グラフDB170、および手順探索部181は、第2の実施の形態の同名の要素が有している機能に加え、以下の機能を有している。情報収集部121は、操作実行部191によって、操作対象のICTシステムに対する1つの操作が実行されるごとに、操作によって生じたICTシステムの構成の変更内容を取得し、ログDB130とCMDB140の内容を更新する。グラフ作成部161は、ログDB130とCMDB140の内容が更新されるごとに、グラフを再作成し、グラフDB170に格納しているグラフを更新する。手順探索部181は、グラフが更新されるごとに、更新されたグラフから操作手順を探索する。
なお、図17に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図17に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
図18は、第3の実施の形態における操作手順の自動生成処理の一例を示すフローチャートである。図18に示した処理のうち、ステップS201,S202の処理は、図9に示した第2の実施の形態におけるステップS101,S102の処理と同様である。
[ステップS203]第2の実施の形態と同様にグラフが作成されると、情報収集部121、グラフ作成部161、グラフDB170、手順探索部181、および操作実行部191が連携して、手順探索・実行処理を行う。手順探索・実行処理では、探索により見つけ出された操作手順の最初の操作を実行するごとに、グラフの作成や手順探索が繰り返される。
図19は、手順探索・実行処理の手順の一例を示すフローチャートである。
[ステップS211]手順探索部181は、グラフDB170に格納されているグラフに基づいて、操作対象のICTシステムの最新の構成を、目条件を満たす構成に変更するための操作手順を探索する。手順探索処理の詳細手順は、図15に示した処理と同様である。なお手順探索部181は、手順探索時の初期条件については、CMDB140に格納されている操作対象のICTシステムの最新の構成に基づいて生成する。
[ステップS212]手順探索部181は、探索により操作手順が検出できたかどうかを判断する。例えばグラフにおいて目標条件に対応する条件が、操作対象のICTシステムの最新の状態で満たされている場合、操作手順は検出されない。操作手順が検出できた場合、その操作手順が操作実行部191に送信され、処理がステップS213に進められる。操作手順が検出できなかった場合、処理が終了する。
[ステップS213]操作実行部191は、操作対象のICTシステムに対して、探索によって検出された操作手順のうちの最初の操作を行う。そして操作実行部191は、操作を実行したことを、情報収集部121と手順探索部181とに通知する。
[ステップS214]手順探索部181は、操作実行部191によって実行された操作を、実行操作列に追加する。実行操作列は、操作対象のICTシステムに対して実行した操作を実行順にならべたリストである。実行操作列は、例えば手順探索部181が管理するメモリ102内の記憶領域に格納される。
[ステップS215]情報収集部121は、操作対象のICTシステムから、操作実行部191による操作後の操作対象のICTシステムの構成情報と、作業ログとを取得する。情報収集部121は、取得した作業ログに基づいて、ログDB130内の操作対象のICTシステムに関する作業ログを更新する。また情報収集部121は、取得した構成情報に基づいて、CMDB140内の操作対象のICTシステムに関する構成情報を更新する。情報収集部121は、情報の更新が完了すると、更新が完了したことをグラフ作成部161に通知する。
[ステップS216]グラフ作成部161は、更新された作業ログに基づいて、グラフを更新する。例えばグラフ作成部161は、操作対象のICTシステムに対して新たに実行された操作の事後条件が、操作前に作成したグラフに含まれていない場合、その事後条件に対するノードをグラフに追加する。グラフ作成部161は、更新後のグラフをグラフDB170に格納する。グラフの更新が完了すると、グラフ作成部161は、グラフの更新が完了したことを手順探索部181に通知する。その後、処理がステップS211に進められる。
このような手順により、操作対象のICTシステムに対して操作を実行したときの結果が、想定した結果と異なっていた場合であっても、ICTシステムの構成が目標条件を満たすように、ICTシステムに対して操作を行うことができる。
以下、図20〜図27を参照し、手順探索の具体例について説明する。
図20は、第3の実施の形態の手順探索の一例を示す第1の図である。条件ID「条件1」、「条件5」の条件を初期条件72とし、条件ID「条件4」の条件を目標条件73としたとき、図20に示すようなグラフ71が生成されたものとする。このグラフ71から操作手順の探索を行うと、2つのサブグラフ74,75が得られる。すなわち、操作対象のICTシステムの構成が目標条件を満たすように変更する操作手順が2通り存在する。このとき、手順探索部181はいずれか一方のサブグラフに基づいて操作手順を作成する。図20の例では、サブグラフ74に基づく操作手順76が生成されている。操作手順76には、操作ID「操作1」、「操作2」、「操作3」に対応する操作を順に行うことが示されている。
図21は、第3の実施の形態の手順探索の一例を示す第2の図である。操作手順76が作成されると、操作実行部191により、操作手順76における最初の操作(操作ID「操作1」)が、操作対象のICTシステムに対して実行される。グラフ71に基づけば、この操作により、操作対象のICTシステムの構成が、条件ID「条件2」の条件を満たすことが期待される。しかし、操作の結果が期待通りとはならない場合もある。図21の例では、操作ID「操作1」の操作を実行した結果、操作対象のICTシステムは、条件ID「条件2」の条件は満たさずに、別の条件(条件ID「条件8」)を満たすような構成になったものとする。
操作後に操作対象のICTシステムから情報収集を行うと、作業ログによって、操作ID「操作1」の操作の事後条件として、条件ID「条件8」の条件が生じたことが分かる。そこでグラフ作成部161により、グラフ71に条件ID「条件8」の条件に対応するノードが追加される。また操作対象のICTシステムから収集した最新の構成情報に基づいて、ICTシステムが条件ID「条件8」の条件を満たしたことが判明する。そこで手順探索部181は、条件ID「条件8」の条件を初期条件に含める。さらに手順探索部181は、操作実行部191が実行した操作の操作ID「操作1」を、実行操作列に登録する。
図22は、第3の実施の形態の手順探索の一例を示す第3の図である。更新後のグラフ71に基づく操作手順の探索が行われる。この際、既に実行された操作は探索対象から除外される。その結果、サブグラフ77が得られる。そして、サブグラフ77に基づいて操作手順78が作成される。操作手順78には、操作ID「操作4」、「操作5」、「操作3」に対応する操作を順に行うことが示されている。
図23は、第3の実施の形態の手順探索の一例を示す第4の図である。操作手順78が作成されると、操作実行部191により、操作手順78における最初の操作(操作ID「操作4」)が、操作対象のICTシステムに対して実行される。グラフ71に基づけば、この操作により、操作対象のICTシステムの構成が、条件ID「条件6」の条件を満たすことが期待される。図23の例では、操作ID「操作4」の操作を実行した結果、操作対象のICTシステムは、期待通り、条件ID「条件6」の条件を満たすような構成になったものとする。
操作後に操作対象のICTシステムから情報収集を行うと、作業ログによって、操作ID「操作4」の操作の事後条件として、条件ID「条件6」の条件が生じたことが分かる。この条件は既にグラフ71に含まれているため、グラフ71は更新されない。また操作対象のICTシステムから収集した最新の構成情報に基づいて、ICTシステムが条件ID「条件6」の条件を満たしたことが判明する。そこで手順探索部181は、条件ID「条件6」の条件を初期条件に含める。さらに手順探索部181は、操作実行部191が実行した操作の操作ID「操作4」を、実行操作列に登録する。
図24は、第3の実施の形態の手順探索の一例を示す第5の図である。2度目の更新後のグラフ71に基づく操作手順の探索が行われる。この際、既に実行された操作は探索対象から除外される。その結果、サブグラフ79が得られる。そして、サブグラフ79に基づいて操作手順80が作成される。操作手順80には、操作ID「操作5」、「操作3」に対応する操作を順に行うことが示されている。
図25は、第3の実施の形態の手順探索の一例を示す第6の図である。操作手順80が作成されると、操作実行部191により、操作手順80における最初の操作(操作ID「操作5」)が、操作対象のICTシステムに対して実行される。グラフ71に基づけば、この操作により、操作対象のICTシステムの構成が、条件ID「条件3」の条件を満たすことが期待される。しかし、図25の例では、操作ID「操作」の操作を実行した結果、操作対象のICTシステムは、条件ID「条件3」の条件は満たさずに、別の条件(条件ID「条件7」)を満たすような構成になったものとする。
操作後に操作対象のICTシステムから情報収集を行うと、作業ログによって、操作ID「操作5」の操作の事後条件として、条件ID「条件7」の条件が生じたことが分かる。そこでグラフ作成部161により、グラフ71の操作ID「操作5」のノードから条件ID「条件7」へのエッジが追加される。また操作対象のICTシステムから収集した最新の構成情報に基づいて、ICTシステムが条件ID「条件7」の条件を満たしたことが判明する。そこで手順探索部181は、条件ID「条件7」の条件を初期条件に含める。さらに手順探索部181は、操作実行部191が実行した操作の操作ID「操作5」を、実行操作列に登録する。
図26は、第3の実施の形態の手順探索の一例を示す第7の図である。3度目の更新後のグラフ71に基づく操作手順の探索が行われる。この際、既に実行された操作は探索対象から除外される。その結果、サブグラフ81が得られる。そして、サブグラフ81に基づいて操作手順82が作成される。操作手順82には、操作ID「操作6」に対応する操作を行うことが示されている。
図27は、第3の実施の形態の手順探索の一例を示す第8の図である。操作手順82が作成されると、操作実行部191により、操作手順82に示された操作(操作ID「操作6」)が、操作対象のICTシステムに対して実行される。グラフ71に基づけば、この操作により、操作対象のICTシステムの構成が、条件ID「条件4」の条件を満たすことが期待される。図27の例では、操作ID「操作6」の操作を実行した結果、操作対象のICTシステムは、期待通り、条件ID「条件4」の条件を満たすような構成になったものとする。
操作後に操作対象のICTシステムから情報収集を行うと、作業ログによって、操作ID「操作6」の操作の事後条件として、条件ID「条件4」の条件が生じたことが分かる。この条件は既にグラフ71に含まれているため、グラフ71は更新されない。また操作対象のICTシステムから収集した最新の構成情報に基づいて、ICTシステムが条件ID「条件4」の条件を満たしたことが判明する。そこで手順探索部181は、条件ID「条件4」の条件を初期条件に含める。さらに手順探索部181は、操作実行部191が実行した操作の操作ID「操作6」を、実行操作列に登録する。
次に操作探索を行うと、目標条件が初期条件となっていることから、実行する操作がもはや存在しないことがわかる。そこで、処理が終了する。
このように、第3の実施の形態によれば、操作対象のICTシステムに対して操作した結果が期待通りにならない場合であっても、目標条件に適合するように、そのICTシステムの構成を変更することができる。その結果、操作対象のICTシステムの構成を所望の構成に変更する操作を自動で実施できる可能性が高くなり、システム管理者の作業工数を削減できる。
〔その他の実施の形態〕
複数の作業ログにおいて同じ操作が異なる事前/事後条件を持つことがある。そこでグラフ作成部160,161がグラフを作成するとき、グラフの条件・操作を結ぶエッジに「そのエッジのログからの抽出数」、「手順抽出で実行された回数」といったカウンタを持たせる。そして手順探索部180,181は、探索時に、同一の操作からの異なるエッジを通る複数のサブグラフを生成したとき、例えばカウンタの値の大きいエッジを通るサブグラフを「信頼度の高いサブグラフ」とみなし、そのサブグラフから操作手順を作成する。これにより、信頼性の高い操作手順を生成することができる。
上記の実施の形態では操作手順に基づいてスクリプトを生成しているが、人間が見て実行するための手順書を作成することもできる。手順書は、管理者に分かりやすいように、例えば手順の番号を付与したコマンドが、操作順に沿って記述される。また管理者が作業しやすいように、手順書内に、操作時の注意事項や、期待される操作結果に関する説明を追加してもよい。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 操作対象システム
2,3 作業ログ
4 条件定義情報
5 グラフ
6 探索条件
7 探索結果
8 操作手順
10 操作探索装置
11 判断手段
12 関連付け手段
13 記憶手段
14 探索手段
15 生成手段
16 操作手段

Claims (7)

  1. コンピュータに、
    過去に実施されたシステムの変更作業で行われた複数の操作と、前記複数の操作に応じて実行された処理とを記録した作業ログに基づいて、前記複数の操作それぞれについて、操作に応じた処理を実行するシステムに期待される状態を示す事前条件と、操作に応じた処理を実行したシステムに期待される状態を示す事後条件とを判断し、
    前記作業ログに基づいて、前記複数の操作それぞれについて、操作に応じた処理を実行するプログラムの版数を示す情報を取得し、
    前記複数の操作それぞれを、当該操作の事後条件を事前条件とする操作に関連付け、
    操作対象システムが満たしている初期条件を事前条件とする操作から、関連付けられた操作のうち、前記作業ログに示された版数のプログラムにより前記操作対象システムが実行可能な操作への遷移を辿り、作業後の前記操作対象システムの目標とする状態を示す目標条件を事後条件とする操作に到達する経路を探索し、
    探索された当該経路上の操作を並べた操作手順を生成する、
    処理を実行させる操作探索プログラム。
  2. 操作間の関連付けでは、前記複数の操作それぞれを遷移元とし、遷移元の操作の事後条件を事前条件とする操作を遷移先とし、遷移元の操作から遷移先の操作への遷移を定義したグラフを作成し、
    経路の探索では、前記操作対象システムが満たしている前記初期条件と、作業によって前記操作対象システムが満たすこととなる前記目標条件とに基づき、前記初期条件を事前条件とする操作から、既に辿った操作の事後条件または前記初期条件を事前条件とする操作への遷移を辿って、前記目標条件を事後条件とする操作に到達する、前記グラフ上での経路を探索する、
    ことを特徴とする請求項1記載の操作探索プログラム。
  3. 前記コンピュータに、さらに、事前条件または事後条件において、システム内に存在すると定義された情報について、前記作業ログに基づいて、当該情報を使用可能なシステムの状態を求める処理を実行させ、
    経路の探索では、前記グラフに含まれる操作のうち、事前条件と事後条件とのそれぞれで使用する情報が前記操作対象システムで使用可能である操作への遷移を辿ることを特徴とする請求項記載の操作探索プログラム。
  4. 前記コンピュータに、さらに、生成された操作手順にしたがって、前記操作対象システムを操作する処理を実行させることを特徴とする請求項1乃至のいずれかに記載の操作探索プログラム。
  5. コンピュータに、
    過去に実施されたシステムの変更作業で行われた複数の操作と、前記複数の操作に応じて実行された処理とを記録した作業ログに基づいて、前記複数の操作それぞれについて、操作に応じた処理を実行するシステムに期待される状態を示す事前条件と、操作に応じた処理を実行したシステムに期待される状態を示す事後条件とを判断し、
    前記複数の操作それぞれを遷移元とし、遷移元の操作の事後条件を事前条件とする操作を遷移先とし、遷移元の操作から遷移先の操作への遷移を定義したグラフを作成し、
    操作対象システムが満たしている初期条件を事前条件とする操作から、既に辿った操作の事後条件または前記初期条件を事前条件とする操作への遷移を辿って、作業後の前記操作対象システムの目標とする状態を示す目標条件を事後条件とする操作に到達する、前記グラフ上での経路を探索し
    探索された当該経路上の操作を並べた操作手順を生成
    操作手順が生成されるごとに、当該操作手順に示された最初の操作を、前記操作対象システムに対して実行し、
    操作が実行されるごとに、当該操作の実行によって前記操作対象システムが満たした条件を、当該操作の事後条件に加えて前記グラフを更新し、
    前記グラフが更新されるごとに、当該操作の実行によって前記操作対象システムが満たした条件を前記初期条件に加え、前記初期条件を事前条件とする未実行の操作から、既に辿った操作の事後条件または前記初期条件を事前条件とする操作への遷移を辿って、前記目標条件を事後条件とする操作に到達する、前記グラフ上での経路を探索し、
    経路が探索されるごとに、探索された当該経路上の操作を並べた操作手順を生成する、
    処理を実行させる操作探索プログラム。
  6. コンピュータが、
    過去に実施されたシステムの変更作業で行われた複数の操作と、前記複数の操作に応じて実行された処理とを記録した作業ログに基づいて、前記複数の操作それぞれについて、操作に応じた処理を実行するシステムに期待される状態を示す事前条件と、操作に応じた処理を実行したシステムに期待される状態を示す事後条件とを判断し、
    前記作業ログに基づいて、前記複数の操作それぞれについて、操作に応じた処理を実行するプログラムの版数を示す情報を取得し、
    前記複数の操作それぞれを、当該操作の事後条件を事前条件とする操作に関連付け、
    操作対象システムが満たしている初期条件を事前条件とする操作から、関連付けられた操作のうち、前記作業ログに示された版数のプログラムにより前記操作対象システムが実行可能な操作への遷移を辿り、作業後の前記操作対象システムの目標とする状態を示す目標条件を事後条件とする操作に到達する経路を探索し、
    探索された当該経路上の操作を並べた操作手順を生成する、
    操作探索方法。
  7. 過去に実施されたシステムの変更作業で行われた複数の操作と、前記複数の操作に応じて実行された処理とを記録した作業ログに基づいて、前記複数の操作それぞれについて、操作に応じた処理を実行するシステムに期待される状態を示す事前条件と、操作に応じた処理を実行したシステムに期待される状態を示す事後条件とを判断する判断手段と、
    前記作業ログに基づいて、前記複数の操作それぞれについて、操作に応じた処理を実行するプログラムの版数を示す情報を取得する取得手段と、
    前記複数の操作それぞれを、当該操作の事後条件を事前条件とする操作に関連付ける関連付け手段と、
    操作対象システムが満たしている初期条件を事前条件とする操作から、関連付けられた操作のうち、前記作業ログに示された版数のプログラムにより前記操作対象システムが実行可能な操作への遷移を辿り、作業後の前記操作対象システムの目標とする状態を示す目標条件を事後条件とする操作に到達する経路を探索する探索手段と、
    探索された当該経路上の操作を並べた操作手順を生成する生成手段と、
    を有する操作探索装置。
JP2014046631A 2014-03-10 2014-03-10 操作探索プログラム、操作探索方法、および操作探索装置 Expired - Fee Related JP6256115B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014046631A JP6256115B2 (ja) 2014-03-10 2014-03-10 操作探索プログラム、操作探索方法、および操作探索装置
US14/617,254 US9851944B2 (en) 2014-03-10 2015-02-09 Operation search method and operation search apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014046631A JP6256115B2 (ja) 2014-03-10 2014-03-10 操作探索プログラム、操作探索方法、および操作探索装置

Publications (2)

Publication Number Publication Date
JP2015170283A JP2015170283A (ja) 2015-09-28
JP6256115B2 true JP6256115B2 (ja) 2018-01-10

Family

ID=54017562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014046631A Expired - Fee Related JP6256115B2 (ja) 2014-03-10 2014-03-10 操作探索プログラム、操作探索方法、および操作探索装置

Country Status (2)

Country Link
US (1) US9851944B2 (ja)
JP (1) JP6256115B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9841955B2 (en) * 2016-01-26 2017-12-12 Enterpriseweb Llc Unified operating system for distributed computing
WO2018174223A1 (ja) * 2017-03-23 2018-09-27 日本電気株式会社 運用管理サーバ、開発運用支援システム、それらの方法及びプログラムを格納した非一時的なコンピュータ可読媒体
US11880699B2 (en) * 2018-01-09 2024-01-23 Cleartrail Technologies Private Limited Platform to control one or more systems and explore data across one or more systems
JP7108039B2 (ja) * 2018-01-09 2022-07-27 クリアトレイル テクノロジーズ プライベート リミテッド システム全体の制御とデータ探索の自動化を可能にするための視覚的および実行テンプレートの推奨
EP3812923B1 (en) * 2018-08-01 2023-01-18 National Institute for Materials Science Search system and search method
US11392585B2 (en) 2019-09-26 2022-07-19 Palantir Technologies Inc. Functions for path traversals from seed input to output
US12340196B2 (en) 2021-05-04 2025-06-24 Enterpriseweb Llc Systems and methods for declarative design and execution of intent-based services
EP4494003A1 (en) * 2022-03-18 2025-01-22 C3.ai, Inc. Intelligent data processing system with metadata generation from iterative data analysis
CN115469940A (zh) * 2022-07-29 2022-12-13 天翼云科技有限公司 软件服务的处理方法、电子设备及存储介质
CN119781856B (zh) * 2024-12-16 2025-10-28 中国建设银行股份有限公司江苏省分行 数据处理方法及装置、存储介质、电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3119400B2 (ja) 1993-03-01 2000-12-18 日本電信電話株式会社 モジュール試験支援装置
US7801894B1 (en) * 2004-10-28 2010-09-21 Stored IQ Method and apparatus for harvesting file system metadata
JP4483543B2 (ja) 2004-11-18 2010-06-16 日本電気株式会社 バッチ処理検証装置、バッチ処理検証プログラム、及びバッチ処理検証方法
WO2010140240A1 (ja) * 2009-06-04 2010-12-09 富士通株式会社 プロセス設計プログラム、プロセス設計装置およびプロセス設計方法
JP5716822B2 (ja) 2011-03-11 2015-05-13 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム

Also Published As

Publication number Publication date
US9851944B2 (en) 2017-12-26
JP2015170283A (ja) 2015-09-28
US20150254309A1 (en) 2015-09-10

Similar Documents

Publication Publication Date Title
JP6256115B2 (ja) 操作探索プログラム、操作探索方法、および操作探索装置
US11675575B2 (en) Checking source code validity at time of code update
US9727407B2 (en) Log analytics for problem diagnosis
US8429645B2 (en) Method for optimizing migration of software applications to address needs
US10185650B1 (en) Testing service with control testing
US8627337B2 (en) Programmatic modification of a message flow during runtime
US20160124795A1 (en) Evaluation method and apparatus
CN103109293B (zh) 一种用户行为处理系统及方法
US10063409B2 (en) Management of computing machines with dynamic update of applicability rules
CN113051262A (zh) 一种数据质检方法、装置、设备及存储介质
JP5900212B2 (ja) テストデータ生成装置、該プログラム、及び該方法
KR20230119535A (ko) 멀티 프라이빗 클라우드의 로그 관리 시스템 및 방법
JP2016018227A (ja) 作業ログ編集方法、情報処理装置、およびプログラム
JP5994693B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
US12093686B2 (en) Code maintenance system
CN118227255A (zh) 服务集群测试方法、装置、存储介质及程序产品
JP2018018415A (ja) 情報処理装置、情報処理システム、プログラム及び情報処理方法
JP6576873B2 (ja) ジョブネット検証装置及びジョブネット検証方法
JP6818568B2 (ja) 通信装置、通信仕様差分抽出方法及び通信仕様差分抽出プログラム
US20240385846A1 (en) Data center orchestrators
JP6369333B2 (ja) ソフトウェア導入判定プログラム、ソフトウェア導入判定方法、およびソフトウェア導入判定装置
WO2024239010A1 (en) Data center orchestrators
KR20230166289A (ko) 어플리케이션의 테스트 시나리오를 생성하는 방법, 컴퓨터 장치, 및 컴퓨터 프로그램
JP2012203726A (ja) コンピュータプログラムの分析方法及び分析装置
CN106407125A (zh) 大型主机环境检测方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171018

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171120

R150 Certificate of patent or registration of utility model

Ref document number: 6256115

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees