(情報処理システム)
図1は,本実施の形態の情報処理システムICTのハードウェア構成の一例を示すブロック図である。なお,以下の説明において,同機能のブロックについては同一の符号で示している。情報処理システムICTは,例えば企業のデータセンターであり,この企業の業務に関連する各種情報処理を実行する。また,情報処理システムICTがサービス企業のデータセンターの場合,情報処理システムICTは,いわゆるクラウドサービスを行う。
情報処理システムICTは,ネットワークNを介して相互に接続された,以下に説明する情報処理装置を有する。情報処理システムICTは,複数のサーバ装置(第1のサーバ装置1_1〜第sのサーバ装置1_s(sは3以上の整数))と,構成管理データベース装置(以下,CMDB(Configuration Management Database)と記す)2と,ストレージ装置3とを有する。さらに,情報処理システムICTは,ネットワーク装置4と,端末装置(以下,ワークフロー作成装置と記す)5と,管理サーバ装置(以下,ワークフロー実行装置と記す)6とを有する。
第1サーバ装置1_1〜第sのサーバ装置1_sは,各種情報処理を実行するサーバ装置である。例えば,第1サーバ装置1_1は,仮想マシンを構築し,この仮想マシンに各種処理を実行させる。
CMDB2は,情報処理システムICTにおいて,運用管理対象となるサーバ装置1_1〜サーバ装置1_s,ストレージ装置3,ネットワーク装置4から構成情報を収集するデータベースサーバである。つまり,CMDB2は,運用管理対象の各装置の構成情報を一元管理する。構成情報は,前記した各装置の名称や,IP(Internet Protocol)アドレスや,URL(Uniform Resource Locator)などの識別情報を有する。他にも,構成情報は,前記した各装置が有するハードウェアの名前,識別記号や,各装置において実行されるソフトウェアの名前,識別記号や,このハードウェア,このソフトウェアの状態などを示す情報を有する。また,CMDB2は,運用管理対象の各装置の構成情報の他にも,各構成情報の関係を示す関係情報(Relationship)を管理する。
CMDB2は,前記各装置に定期的にアクセスすることで構成情報を収集する。他にも,例えば,各装置が,定期的または構成情報が変更された際に,CMDB2に構成情報を送信することで,CMDB2は構成情報を収集する。そして,CMDB2は,収集した構成情報を構成要素(CI:Configuration Item)として記憶する。
ストレージ装置3は,例えば,サーバ装置1_1〜サーバ装置1_sが実行した情報処理の結果を記憶する。ネットワーク装置4は,例えば,スイッチ装置,ルータ装置であり,ネットワークNにおけるデータ通信処理や,外部ネットワークとのデータ通信処理を実行する。
ワークフロー作成装置5は,例えば,パーソナルコンピュータで構成され,ワークフロー作成者の操作により,運用管理の流れを示すワークフローを作成し,作成したワークフローをワークフロー実行装置6に送信する。
ワークフロー実行装置6は,ワークフロー作成装置5から送信されたワークフローを受信し,記憶する。そして,ワークフロー実行装置6は,ワークフロー利用者の操作により,記憶されているワークフローを実行し,情報処理システムICTの各装置を制御,すなわち,運用管理業務を実行する。なお,ワークフロー利用者は,情報処理システムICTの管理者でもあり,運用管理業務の実施者でもある。
(ワークフロー作成装置およびワークフロー実行装置のハードウェア構成)
図2は,図1のワークフロー作成装置5のハードウェア構成の一例を示すブロック図である。
図2において,ワークフロー作成装置5は,バスBを介して相互に接続された,CPU(Central Processing Unit)501と,メモリ502と,表示制御部503と,操作制御部504と,ネットワークNに接続するネットワークインターフェイスカード(以下,NIC(Network Interface Card)と記す)505と,記憶部506とを有する。
CPU501は,ワークフロー作成装置5の全体を制御するコンピュータ(制御部)である。メモリ502は,各種制御情報や,CPU501が実行する各種情報処理において演算されたデータなどを記憶する。
表示制御部503は,表示装置71に各種画像を表示する処理を実行する。ここで各種画像とは,例えば,図4で説明するワークフローの作成画面や,図5で説明するこのワークフローのフォーム作成画面である。表示装置71は,例えば,液晶ディスプレイである。
操作制御部504は,操作装置81から入力される操作指示に対して,操作指示に応じた各種処理を実行する。操作装置81は,例えば,キーボードやマウスである。
NIC505は,ネットワーク通信を行うための専用基板であり,データ通信部として機能する。
記憶部506は,各種記憶装置,例えば,不揮発性メモリや,ハードディスクドライブ(HDD:Hard Disk Drive)などの磁気記憶装置である。記憶部506は,ワークフロー管理テーブルTw,アクティビティ管理テーブルTa,フォーム管理テーブルTfm,パターン管理テーブルTp,データ範囲管理テーブルTdm,データ範囲のテンプレートTdt,運用操作部品管理テーブルTo,フォームのテンプレートTft,画面部品定義テーブルTdpを記憶する。これらのテーブル,テンプレートについての説明は,後記する。
図3は,図1のワークフロー実行装置6のハードウェア構成の一例を示すブロックである。
図3において,ワークフロー実行装置6は,バスBを介して相互に接続された,CPU601と,メモリ602と,表示制御部603と,操作制御部604と,ネットワークNに接続するNIC605と,記憶部606とを有する。
CPU601は,ワークフロー実行装置6の全体を制御するコンピュータである。メモリ602は,各種制御情報や,CPU601が実行する各種情報処理において演算されるデータなどを記憶する。
表示制御部603は,表示装置72に各種画像を表示する処理を実行する。ここで各種画像とは,例えば,図6で説明する,実行対象のワークフローのフォームの画面である。表示装置72は,例えば,液晶ディスプレイである。以下,ワークフローのフォームの画面を,適宜,フォーム画面と記す。
操作制御部604は,操作装置82から入力される操作指示に対して,操作指示に応じた各種処理を実行する。操作装置82は,例えば,キーボードやマウスである。
NIC605は,ネットワーク通信を行うための専用基板であり,データ通信部として機能する。
記憶部606は,各種記憶装置,例えば,不揮発性メモリや,磁気記憶装置である。記憶部606は,実行履歴管理テーブルTgや,ワークフロー作成装置5が作成したワークフローWF1〜ワークフローWFxを記憶する。なお,実行履歴管理テーブルTgについては,図18で説明する。
ワークフロー管理部611は,記憶部606が記憶するワークフローWF1〜ワークフローWFxを管理する。ワークフロー実行部612は,記憶部606が記憶するワークフローWF1〜ワークフローWFxを実行する。
ワークフロー管理部611,ワークフロー実行部612として機能するプログラムは,例えば,記憶部606に記憶されている。そして,CPU601は,起動時に,これらのプログラムを記憶部606から読み出して,メモリ602に展開することにより,これらのプログラムをソフトウェアモジュールとして機能させる。
(ワークフローの説明)
図1〜図3を参照し,図4〜図7に基づきワークフローについて説明する。
図4は,図2の表示装置71に表示されるワークフローの作成画面の一例を示す図である。なお,作成画面は,編集画面とも呼ばれる。
図5は,既に作成された既作成ワークフローがある場合において,図2の表示装置71に表示されるフォームの作成画面の一例を示す図である。このフォームとは,ワークフローにおいてデータの入力や確認作業を行うためのコンソール(Console)であり,ワークフローに対するユーザインターフェイス画面として機能する。
図6は,図2のワークフロー作成装置5が自動作成したフォーム画面の一例を示す図である。
図7は,既作成ワークフローがない場合において,図2の表示装置71に表示されるワークフローの作成画面の一例を示す図である。
ワークフロー作成者(以下,作成者と記す)は,図2の操作装置81を操作して,ワークフロー作成装置5にワークフローの作成画面の表示指示を行う。ワークフロー作成装置5は,この表示指示に応答して,ワークフロー作成装置5の表示装置71にワークフローの作成画面を表示する。
作成者は,この作成画面を利用して,ワークフローの作成を行う。この作成画面の一例を図4の作成画面D1として示す。作成画面D1は,主に,ワークフローの作成を行うための作成領域R1,様々な種類のノードを表示するノード表示領域R2を有する。ここで,ノードとは,ワークフローを構成する要素である。
作成者は,図2の操作装置81を操作して,ノード表示領域R2のノード群C1の中からノードを選択し,選択したノードを作成領域R1に移動,配置して,ワークフローを作成する。このノードとは,例えば,符号C2で示すActivity(アクティビティ)ノードである。Activityノードの説明については後述する。
なお,作成者が,ノード表示領域R2のタブT1を順次切り替えると,ワークフロー作成装置5は,切り替えたタブに対応する様々なノード群を表示する。
図4では,作成者が,サーバ起動用ワークフローを作成する例を示している。このワークフローは,作成者が設定した検索式またはワークフローの利用者(以下,利用者と記す)が入力した検索式に基づくサーバ装置の検索処理を図1のCMDB2に実行させて,この検索式に基づき検索された検索結果を受信する。そして,このワークフローは,この検索結果に対応するサーバ装置の中の何れかを利用者に選択させ,選択されたサーバ装置を起動する。以下,サーバ装置を図面に合わせて,適宜,サーバと記す。なお,このとき,既に,他のワークフローが作成されているとする。
まず,作成者は,図2の操作装置81を操作して,図4の作成領域R1に,StartノードN1,構成要素取得(構成要素を取得)ノードN2,アクティビティノードN3,サーバ起動(サーバを起動)ノードN4,Exit1ノードN5,Exit2ノードN6を配置する。この際に,作成者は,各ノードの接続関係を示す矢印をノード間に配置する。このワークフローは,まずサーバの構成要素を取得し,取得した構成要素の中から,指定されたサーバ装置の起動を実行するものである。
ここでノードの種類について説明する。ノードとしては,ワークフロー上で表現される業務内容を示すノードがある。この業務内容を示すノードは,図1の情報処理システムICTにおいて,管理対象となる装置に対する業務処理を表現した運用操作部品がある。この装置とは,例えば,CMDB2や,サーバ装置1_1などの情報処理装置である。この運用操作部品には,装置に対して操作を行う操作系部品と,装置の情報を取得する取得系部品とがある。換言すれば,操作系部品とは,装置に対して操作を行う運用操作部品の種別(ノード種別)であり,取得系部品とは,装置の情報を取得する運用操作部品の種別(ノード種別)である。
また,この業務内容を示すノードとして,利用者などの人手を介して行う業務を表現したノードであるアクティビティノードがある。他にも,ノードとして,ワークフローの開始,終了などの情報を示す識別用のノードがある。
前記の例では,StartノードN1は,ワークフローの開始を示す識別用のノードであり,Exit1ノードN5,Exit2ノードN6は,ワークフローの終了を示す識別用のノードである。構成要素取得ノードN2は,図1のCMDB2から構成要素を取得する業務処理を示すノードであり,運用操作部品,詳しくは取得系部品である。アクティビティノードN3は,前記したアクティビティノードであり,このアクティビティノードに後述するフォームが付加される。サーバ起動ノードN4は,指定されたサーバを起動する業務処理を示すノードであり,運用操作部品,詳しくは操作系部品である。
作成者は,前記した各ノードの配置が終了すると,図2の操作装置81を操作して,図4に示すように,アクティビティノードN3を選択して,プルダウンメニューである指示内容が表示されるリスト画面P1,P2を順次表示し,ワークフロー作成装置5にフォームの自動作成指示を行う。図4において,作成者は,リスト画面P1の中から”Quick Form”を選択し,さらに,リスト画面の中から”新規作成”を選択することで,この自動作成指示を行う。
図2のワークフロー作成装置5は,この自動作成指示に応答して,既に作成済みのフォーム,または,初回時作成用のテーブルやテンプレートに基づき,作成中のワークフローの内容に適した画面部品を配置したフォーム(画面)を自動作成する。そして,ワークフロー作成装置5は,表示装置71に,図5のフォーム作成画面D11を表示する。なお,自動作成の内容については,図8で詳細に説明する。
作成画面D11は,主に,フォームの作成を行う作成領域R11,フォーム画面に配置するデータの入出力を表現する画面部品を選択するための部品表示領域R12を有する。
図2のワークフロー作成装置5は,前記した自動作成により,作成領域R11に以下の画面部品を表示する。すなわち,図5において,図4の構成要素取得ノードN2に関連する,符号P11に示す”構成要素を取得”ラベル,符号P12に示す”XPATH”ラベル,符号P13に示すテキストボックス,符号P14に示す”Result_list”ラベル,符号P15に示すコンボボックスである。このラベルは,文字列である。そして,テキストボックスとは,文字列などを入力する画面部品である。コンボボックスとは,テキスト表示ボックスと上下スクロールゲージとを組み合わせたボックスであり,上下スクロールゲージを操作するとテキスト表示ボックスの中に表示されている項目をスクロールすることができる画面部品を示す。
テキストボックスP13は,利用者が,XPATH(XML(Extensible Markup Language) Path Language)で記述された検索式を入力するためのテキストボックスである。この入力された検索式は図1のCMDB2に出力される。コンボボックスP15は,テキストボックスP13に入力された検索式に基づきCMDB2が検索した検索結果(Result_list)を表示するためのボックスである。
さらに,図2のワークフロー作成装置5は,前記した自動作成により,作成領域R11に以下の画面部品を表示する。すなわち,図5において,図4のサーバ起動ノードN4に関連する,符号P16に示す”サーバを起動”ラベル,符号P17に示す”Hostname”ラベル,符号P18に示すテキストボックスである。テキストボックスP18は,利用者が,コンボボックスP15の中から選択した,起動対象となるサーバ名を入力するためのテキストボックスである。なお,符号L1,L1-1,L1-2,R1,R1-1については,図16で説明する。
なお,運用操作部品のパラメータ(図11参照),特に入力用パラメータを設定(入力)する方法としては以下の2通りの方法がある。換言すれば,運用操作部品に対してデータを設定するための方法は以下の2通りの方法がある。運用操作部品は,この設定されたデータに対して,このデータに応じた処理を実行する。第1の方法は,利用者が,フォーム画面の画面部品(例えば,テキストボックス)などを利用して設定する方法である。第2の方法は,作成者がワークフロー作成時に予め設定する方法である。ここでは,作成者が,ワークフロー作成時に,検索式を予め設定しているとする。
作成者が,図2のワークフロー作成装置5の操作装置81を操作して,自動作成されたフォームの作成画面における画面部品を,カスタマイズして,終了ボタン(図示しない)を操作すると,ワークフロー作成装置5は,サーバ起動用ワークフローを作成する。ここでカスタマイズとは,例えば,画面部品の配置位置を変更したり,新たに画面部品を追加することを示す。ワークフロー作成装置5は,作成したワークフローを図3のワークフロー実行装置6に送信する。
ワークフロー作成装置5は,以上に説明したフォームの自動作成により,作成中のワークフローの内容に適した,図6に示すフォーム画面D21を作成する。フォーム画面D21は,図5で説明したフォームの作成画面に対応するフォームである。
以上に説明したフォームの自動作成を行わない場合,フォーム作成時には,図5の表示画面D11の作成領域R11において何らの画面部品が表示されていないフォーム作成画面が表示される。この状態で,作成者自らが,図2のワークフロー作成装置5の操作装置81を操作して,部品表示領域R12の画面部品群C11の中から,サーバ起動用ワークフローに適した,ある画面部品,例えば符号C12に示す画面部品であるコンボボックス(ComboBox)を選択し,選択した画面部品を作成領域R11に移動,配置する。しかし,作成者自らがこれらの操作を行い,初めからフォーム画面を作成することは非常に煩雑である。
特に,多数のワークフローを作成しなければならない場合,フォームの作成量が膨大になり,作成者にとって過度な負担になる。しかし,本実施の形態によれば,作成中のワークフローの内容に適した画面部品を配置したフォームを自動作成するので,作成者の作業負担が軽減する。
(ワークフローの実行手順)
図1,図3を参照し,図6に基づき,ワークフローの実行手順について説明する。なお,前記したように,図2のワークフロー作成装置5は,作成したサーバ起動用ワークフローを図3のワークフロー実行装置6に送信している。ワークフロー実行装置6のワークフロー管理部611は,受信したサーバ起動用ワークフローを記憶部606に記憶する。記憶部606に記憶されたサーバ起動用ワークフローをワークフローWF1とする。
利用者は,操作装置82を操作して,ワークフローWF1の実行をワークフロー実行装置6に指示する。ワークフロー実行装置6のワークフロー実行部612は,この実行指示に応答して,ワークフローWF1を実行する。なお,この際,ワークフロー実行部612は,ワークフローWF1の実行状況(進行状況)を表示するため,図4の作成領域R1に示した,各ノードN1〜N6と同内容のものを表示装置72に表示し,矢印などで実行状況を表示するようにしてもよい。
図3のワークフロー実行装置6のワークフロー実行部612は,ワークフローWF1に基づき,図1のCMDB2に対して,予め設定された検索式に対応する検索処理を実行するように指示する検索指示コマンドを送信する。この予め設定された検索式は,作成者がワークフロー作成時に設定した,図1の情報処理システムICT内のサーバ装置のホスト名(Hostname)を検索するようにCMDB2に指示する,XPATH形式の検索式である。
CMDB2は,この検索指示コマンドを受信し,この検索式に対応する検索処理を実行し,検索処理結果を図3のワークフロー実行装置6に返信する。
ワークフローの実行後,アクティビティに処理が進んだ段階で,ワークフロー実行装置6のワークフロー実行部612は,図6のフォーム画面D21を表示装置72に表示する。ここでは,ワークフロー実行部612は,この検索処理結果を受信したタイミングに,図6のフォーム画面D21を表示装置72に表示するとする。
そして,ワークフロー実行部612は,受信した検索処理結果を,図6のフォーム画面D21のコンボボックスP15に表示する。この検索処理結果としては,例えば,”www.sample.com”,”www2.sample.com”,”www3.sample.com”,”www4.sample.com”である。
次いで,利用者が,図3のワークフロー実行装置6の操作装置82を操作して,この検索結果の中から起動したいサーバ装置のホスト名を選択し,図6のフォーム画面D21のテキストボックスP18に入力する。すると,図3のワークフロー実行装置6のワークフロー実行部612は,ワークフローWF1に基づき,入力されたホスト名のサーバ装置に,サーバ装置を起動するように指示する起動コマンドを送信する。例えば,入力されたホスト名のサーバ装置が,図1のサーバ装置1_1とする。この場合,図3のワークフロー実行部612は,図1のサーバ装置1_1に,起動コマンドを送信する。サーバ装置1_1は,この起動コマンドを受信すると,自装置を起動し,動作状態にする。以上説明した処理により,サーバ起動用ワークフローが実行される。
他にも,ワークフロー実行部612は,このワークフローWF1の実行に合わせて図6のフォーム画面D21を表示装置72に表示してもよい。そして,作成者により検索式が設定されていない場合には,利用者は,図1の情報処理システムICT内のサーバ装置のホスト名(Hostname)を検索するようにCMDB2に指示する,XPATH形式の検索式を図6のフォーム画面D21のテキストボックスP13に入力する。図3のワークフロー実行装置6のワークフロー実行部612は,ワークフローWF1に基づき,図1のCMDB2に対して,入力された検索式に対応する検索処理を実行するように指示する検索指示コマンドを送信する。以下の処理の説明は,前記したので省略する。
なお,ワークフローの初回作成時(何らワークフローを作成していない場合)には,フォームの自動実行により,図7のフォーム作成画面D31が表示される。この作成画面D31については,図30で説明する。
(ワークフロー作成装置)
図8に基づき,図2のワークフロー作成装置5について説明する。
図8は,図2のワークフロー作成装置5のソフトウェアモジュールを示すブロック図である。なお,以下の説明において,図2と同じテーブル,フォームについては同一の符号で示している。ワークフロー作成装置5は,情報処理システムICTの運用手順を複数のノードの接続で表現するワークフローを生成する。そして,このワークフローにより,情報処理システムICTの運用業務を自動化する情報処理方法を実行する。
ワークフロー作成エンジン511は,例えば,図4のワークフロー作成画面D1や,図5のフォーム作成画面D11の表示処理や,ワークフロー作成処理全般を実行する。ワークフロー作成エンジン511は,ワークフロー作成処理として,例えば,図1の情報処理システムICTの制御処理を実行する第1のノードと,この制御処理に関連する情報を入力,出力する画面部品を有するフォームが付加される第2のノードとを有するワークフローを作成する。この第1のノードは,運用操作部品のノードであり,第2のノードは,アクティビティノードである。
このワークフローの作成において,ワークフロー作成エンジン511は,例えば,アクティビティノードの前後に,それぞれ接続される運用操作部品のノードを有するワークフローを作成する。なお,作成中のワークフローを適宜,新規ワークフローと記す。
ここで,情報処理システムICTの制御処理とは,具体的には,図1に示す情報処理システムICTの情報処理装置、例えば,サーバ装置1_1や,CMDB2,ストレージ装置3,ネットワーク装置4に対する制御処理である。制御処理の一例として,図6で説明した例では,CMDB2に対して検索指示コマンドを送信することにより,CMDB2に検索処理を実行させ,検索結果を送信させて,検索結果を受信し,表示する処理である。また,制御処理の他の例としては,サーバ装置1_1に起動コマンドを送信し,サーバ装置1_1を起動することである。
パターン検出エンジン512は,ワークフローのパターンを検出する。ワークフローのパターン検出は,作成中のワークフローにおいて,フォームを付加したいアクティビティノードがどのような役割を持っているのか判断するために行う。このパターン検出では,アクティビティノードの前後のノード内容から予め定義したパターンに当てはめることで推測する。
データ範囲決定エンジン513は,作成中のワークフローのフォームの画面に配置するデータ範囲を決定する。ここでデータ範囲とは,作成中のワークフローにおいて,このフォームの付加対象となるアクティビティの前後に存在する運用操作部品の名称やパラメータなどを示す。
フォーム作成エンジン514は,例えば,データ範囲決定エンジン513が決定したデータ範囲に基づき,作成中のワークフローのフォーム画面に配置する画面部品を選択し,フォームを作成する。
本実施の形態によるワークフロー作成装置5は,以下の情報処理方法を実行する。ここでは,パターン検出エンジン512が,ワークフローのパターンを記憶するパターン管理テーブルTpに基づき,新たに作成される新規ワークフローのパターンを検出する。パターン管理テーブルTpは,ワークフローのパターンを記憶する第1の情報の一例である。
次いで,データ範囲決定エンジン513,フォーム作成エンジン514は,検出された新規ワークフローのパターンと新規ワークフローにおける第1のノードの制御処理の内容とに基づき,新規ワークフローのフォームの画面に配置する画面部品と,フォームの画面における画面部品の配置位置を決定する。そして,フォーム作成エンジン514は,決定した画面部品を決定した配置位置に配置する。そのため,作成中のワークフローの内容に適した画面部品を配置したフォームを生成することができる。
ワークフロー作成エンジン511,パターン検出エンジン512,データ範囲決定エンジン513,フォーム作成エンジン514として機能するプログラムは,例えば,図2の記憶部506に記憶されている。そして,CPU501は,起動時に,これらのプログラムを記憶部506から読み出して,メモリ502に展開することにより,これらのプログラムをソフトウェアモジュールとして機能させる。
(自動作成用のテーブル)
図9〜図15に基づき,フォームの自動作成に必要なテーブルを説明する。
(ワークフロー管理テーブル)
図9は,ワークフローを管理するワークフロー管理テーブルTw1の一例を示す図である。ワークフロー管理テーブルTw1は,図2,図8のワークフロー管理テーブルTwとして,図2の記憶部506に記憶されている。
図9のワークフロー管理テーブルTw1において,フローID欄は管理対象のワークフローの識別子(ID)を記憶し,ワークフロー名欄は,ワークフローの名前を記憶し,順序欄は,ワークフローにおける一連のノードの順序を記憶する。このノードと,一連のノードの順序により,情報処置システムICTの運用手順を複数のノードの接続で表現している。
さらにワークフロー管理テーブルTw1において,ノードIDは,ノードの識別子を記憶し,ノード名欄は,ノードの名前を記憶し,ノード種別欄は,ノードの種別を記憶する。ワークフロー管理テーブルTw1は,既作成ワークフローにおける,アクティビティノード(ノード名”アクティビティ”)を基準とする第1のノードの順序情報とこの第1のノードの名前とを記憶する第2の情報の一例である。ワークフロー管理テーブルTw1は,例えば,フローID”001”で示す既作成ワークフローにおける,順序(順序情報)”3”のアクティビティを基準として,一つ前(図面上側)の第1のノードの順序情報”2”と,このノードの名前”構成要素を取得”とを記憶している。さらに,ワークフロー管理テーブルTw1は,アクティビティを基準として,一つ後(図面下側)の第1のノードの順序情報”4”と,このノードの名前”サーバを起動”とを記憶している。
図8のワークフロー作成装置5のワークフロー作成エンジン511は,既に,特定のサーバを停止するワークフロー(以下,サーバ停止用ワークフローと適宜記す)を作成している。このサーバ停止用ワークフローは,作成者が予め設定した検索式に基づくサーバ装置の検索処理を図1のCMDB2に実行させて,この検索式に基づき検索された検索結果を受信し,この検索結果に対応するサーバ装置の中の何れかを利用者に選択させ,選択されたサーバ装置を停止するものである。具体的には,図4のワーフフロー作成画面D11においては,図4のサーバ起動ノードN4が,サーバ停止ノードに置き換わったワークフローである。
この場合,ワークフロー作成エンジン511は,サーバ停止用ワークフローを作成する際に,このワークフローの作成画面の内容に基づき,ワークフロー管理テーブルTw1のフローID欄に”001”を記憶し,ワークフロー名欄に”特定のサーバを停止する”を記憶し,順番欄に,ノード名欄のノードの順序を示す”1”〜”5”を記憶する。ワークフロー作成エンジン511は,このサーバ停止用ワークフローを構成する各ノードの名前を順次ノード名欄に記憶する。ここでは,ワークフロー作成エンジン511は,ノード名欄に”Start”,”構成要素を取得”,”アクティビティ”,”サーバを停止”,”Exit”を記憶し,さらに,ノードID欄に,ノード名欄のノードを識別するノードID”001-01”〜”001-05”を記憶する。なお,ノードIDの”-”の左側の数字は,フローIDである。
図8のワークフロー作成エンジン511は,ノード名”アクティビティ”については,このノード名に対応するノード種別を”アクティビティ”と記憶する。また,ワークフロー作成エンジン511は,図14の運用操作部品管理テーブルToから,ワークフロー管理テーブルTw1におけるノード名”アクティビティ”以外の,ノード名欄に記憶されたノード名に対応する分類を取得し,ノードの種別として,ノード種別欄に記憶する。分類を取得できない場合は,空白とする。
図9のワークフロー管理テーブルTw1の例では,ノード名”アクティビティ”以外のノード名は”Start”,”構成要素を取得”,”サーバを停止”,”Exit”である。この場合,ノード名”Start”,”Exit”については,図14の運用操作部品管理テーブルToにおける部品名(ノード名)欄に記憶されていない。従って,図8のワークフロー作成エンジン511は,分類を取得できないとして,ノード名”Start”,”Exit”に対応するノード種別欄を空白とする。一方,ノード名”構成要素を取得”,”サーバを停止”については,図14の運用操作部品管理テーブルToにおける部品名欄に記憶されており,この部品名に対応して分類欄に”取得系部品”,”操作系部品”が記憶されている。そのため,図8のワークフロー作成エンジン511は,図9のワークフロー管理テーブルTw1において,ノード名”構成要素を取得”に対応するノード種別欄に”取得系部品”を記憶し,ノード名”サーバを停止”に対応するノード種別欄に”操作系部品”を記憶する。なお,フローID”002”の内容については,図20で説明する。
(アクティビティ管理テーブル)
図10は,ワークフローのアクティビティを管理するアクティビティ管理テーブルTa1の一例を示す図である。アクティビティ管理テーブルTa1は,図2,図8のアクティビティ管理テーブルTaとして,図2の記憶部506に記憶されている。
図10のアクティビティ管理テーブルTa1において,ノードID欄は,管理対象のアクティビティのノードIDを記憶する。パターン欄は,ノードID欄に記憶されたノードIDを有するワークフローのパターンを記憶し,フォームID欄は,アクティビティに付加されるフォームを識別するフォームIDを記憶する。
ここで,ワークフロー作成エンジン511は,サーバ停止用ワークフローを作成する際に,このワークフローを識別するフローID”001”(図9参照)のアクティビティのノードID”001-03”をアクティビティ管理テーブルTa1のノードID欄に記憶する。そして,後述する,パターン検出エンジン512が検出したサーバ停止用ワークフローのパターン”対象選択パターン”をパターン欄に記憶し,フォームID欄にフォームID”001-A”を記憶する。なお,ノードID”002-03”の内容については,図21で説明する。
(データ範囲管理テーブル)
図11は,データ範囲を管理するデータ範囲管理テーブルTdm1の一例を示す図である。データ範囲管理テーブルTdm1は,図2,図8のデータ範囲管理テーブルTdmとして,図2の記憶部506に記憶されている。
図11のデータ範囲管理テーブルTdm1において,フォームID欄は,フォームを識別する識別子(ID)を記憶する。ノード順序欄は,ワークフローにおいて,アクティビティを基準にしたノードの順序を記憶する。順序欄においては,アクティビティの前後のノードの順番をそれぞれ”i-n”,”i+n”(nは1以上の整数)で示している。
ノード名欄は,ノード順序欄の順番で示されるノードの名前を記憶する。パラメータ名欄は,このノードに対応するパラメータの名前を記憶する。データ種別欄は,パラメータ名欄に記憶されたパラメータが入力データ用のパラメータか出力データ用のパラメータかを定義するデータ種別(パラメータ種別とも言う)を記憶する。データID欄は,パラメータ名欄に記憶されたパラメータを識別する識別子を記憶する。
図8のデータ範囲決定エンジン513は,サーバ停止用ワークフローを作成する際に,図11のデータ範囲管理テーブルTdm1のフォームID欄に,このワークフローのアクティビティに付加するフォームを識別する識別子”001-A”を記憶する。さらに,データ範囲決定エンジン513は,図9のワークフロー管理テーブルTw1のフローID”001”に対応するノード名”アクティビティ”を基準として,前後するノードの名前(ノード名)を取り出し,図11のデータ範囲管理テーブルTdm1のノード名欄に記憶する。前記の例では,データ範囲決定エンジン513は,図9のワークフロー管理テーブルTw1からノードID”001-03”のアクティビティを基準として,ノードID”001-02”の”構成要素を取得”,ノードID”001-004”の”サーバを停止”を取り出し,図11のデータ範囲管理テーブルTdm1のノード名欄に記憶する。
そして,図8のデータ範囲決定エンジン513は,図11のデータ範囲管理テーブルTdm1のパラメータ名欄に,ノード名欄のノード名”構成要素を取得”に対応するパラメータ”XPath”と”Result_list”とを記憶し,ノード名欄のノード名”サーバを起動”に対応するパラメータ”Hostname”を記憶する。そして,データ範囲決定エンジン513は,データ種別欄に,パラメータ”XPath”,”Result_list”,”Hostname”に対応する”入力”,”出力”,”入力”を記憶し,パラメータ名欄のパラメータを識別するデータID”001A-001”〜 “001A-003”を記憶する。なお,データIDの”-”左側の文字列”001A”は,フォームIDの”001-A”に対応している。
ここで,パラメータ”XPath”とは,図1のCMDB2に対する構成要素の取得処理を実行する際に必要な入力検索式のパラメータを示し,パラメータ”Result_list”とは,CMDB2からの検索結果を表示出力するための出力パラメータを示す。パラメータ”Hostname”とは,停止対象のサーバ装置を指定するための入力パラメータを示す。なお,上記記憶処理の詳細については,図30で説明し,フォームID”002-A”の内容については,図20で説明する。
(フォーム管理テーブル)
図12は,フォームを管理するフォーム管理テーブルTfm1の一例を示す図である。フォーム管理テーブルTfm1は,図2,図8のフォーム管理テーブルTfmとして,図2の記憶部506に記憶されている。
図12 のフォーム管理テーブルTfm1において,フォームID欄は,管理対象のフォームを識別する識別子を記憶し,パラメータ名は,フォーム画面に配置(記載)する画面部品に対応するパラメータを記憶し,画面部品名欄は,このパラメータに対応する画面部品の名前を記憶する。データID欄は,図11のデータID欄に記憶されたデータIDを記憶する。位置欄は,画面部品名欄の画面部品を配置するフォームの位置を示す識別子を記憶する。
フォーム管理テーブルTfm1は,既作成ワークフローのフォーム画面に配置した画面部品の名前,配置位置を記憶する第3の情報の一例である。
図12 において,図8のフォーム作成エンジン514は,フォームID欄に,フォームID”001-A”,パラメータ名欄に”構成要素を取得”,”XPath”,”Result_list”,”サーバを停止”,”Hostname”を記憶する。フォーム作成エンジン514は,画面部品名欄に”ラベル”,”テキスト”,”コンボボックス”,”ラベル”,”テキスト”を記憶し,データID欄に,パラメータ名欄のパラメータ名”XPath”,”Result_list”,”Hostname”を識別するデータID”001A-001”, “001A-002”,”001A-003”を記憶する。そして,位置欄に,画面部品をフォーム上のどの位置に配置するかを特定する際に参照する位置情報として,”L1”,”L1-1”,”L1-2”,”R1”,”R1-1”を記憶する。画面部品名については,図15で説明する。また,位置欄の位置情報については,図16で説明する。なお,フォームID”002-A”の内容については,図20,図21で説明する。
以上に説明した,図9〜図12の管理テーブルは,ワークフローが新規に作成される度に更新されるテーブルである。
(パターン管理テーブルTp)
図13は,図2,図8において,ワークフローのパターンを検出するためのパターン管理テーブルTpの一例を示す図である。パターン管理テーブルTpは,ワークフローのパターンを記憶する第1のテーブルであり,ワークフローのパターンを検出する際に参照される。
パターン管理テーブルTpにおいて,パターン名欄は,”対象選択パターン”,”処理選択パターン”,”結果確認パターン”,これら以外のパターン(”上記以外のパターン”)を記憶する。順序欄は,ワークフローにおいて,アクティビティを基準にしたノードの順序を記憶する。順序欄においては,アクティビティの順序を”i”として,アクティビティの前後のノードの順番をそれぞれ”i-n”,”i+n”(nは1以上の整数)で示している。パターン管理テーブルTpにおいて,ノード種別欄は,各パターンにおける一連のノードの種別を記憶する。
ここで,ワークフローのパターンについて説明する。ワークフローのパターンは,主に,対象選択パターン,処理選択パターン,結果確認パターン,その他のパターンがある。
対象選択パターンは,ワークフローの実行処理において,対象のアクティビティ以前までに実行された処理において取得した情報をもとに,アクティビティ以降に実行される処理において各種操作を行うパターンである。そのため,対象のアクティビティのフォーム画面には,アクティビティ以前に実行された処理の結果を表示し,アクティビティ以降に実行される処理に必要となる入力情報を設定できるようにする。
処理選択パターンは,ワークフローの実行処理において,対象のアクティビティ以前までに実行された処理において取得した情報をもとに,アクティビティ以降に実行される処理を選択するパターンである。そのため,対象のアクティビティのフォーム画面には,アクティビティ以前に実行された処理の結果を表示し,アクティビティ以降に実行される処理を選択する入力情報を設定できるようにする。
結果確認パターンは,ワークフローの実行処理において,対象のアクティビティ以前までに実行された処理において操作した結果を確認(表示)するパターンである。例えば,この結果として,操作が成功に終わったか,または,操作が失敗に終わったかがある。そのため,対象のアクティビティのフォーム画面には,アクティビティ以前に実行された処理の結果を表示する。この結果確認パターンの場合には,アクティビティの前に1つの操作系部品(ノード)が接続されることになる。
その他のパターンとしては,例えば,申請パターン,承認パターンがある。なお,申請パターンは,対象のアクティビティの1つ後ろにあるアクティビティに対して,ワークフロー全体や一部の処理内容や処理結果を通知するパターンである。そのため,対象のアクティビティのフォーム画面には,ワークフロー内に含まれる全てまたは一部の処理に必要となる入力情報を設定したり,処理結果を表示したりする。承認パターンは,対象のアクティビティの1つ前にあるアクティビティが設定した内容を確認し,それ以降の処理を実施するか判定するパターンである。そのため,対象のアクティビティのフォーム画面には,ワークフロー内に含まれる全てまたは一部の処理に必要となる入力情報に設定された値を表示したり,処理結果を表示したりする。
パターン管理テーブルTpにおいて,パターン名”対象選択パターン”に対応して,順序欄に順序”i-1”,”i”,”i+1”が記憶され,各順序に対応して,ノード種別欄に”取得系部品”,”アクティビティ”,”操作系部品”が記憶されている。パターン名”処理選択パターン”に対応して,順序欄に順序”i-1”,”i”,”i+1”,”i+2”が記憶され,各順序に対応して,ノード種別欄に”取得系部品”,”アクティビティ”,”Any” ,”Any”が記憶されている。ノード種別欄における”Any”とは任意のノード種別であることを示している。
パターン名”結果確認パターン”に対応して,順序欄に順序”i-1”,”i”が記憶され,各順序に対応して,ノード種別欄に”操作系部品”,”アクティビティ”が記憶されている。パターン名”上記以外のパターン”に対応して,順序欄に順序”i-n”…,”i”,…”i+1”が記憶され,順序”i”に対応してノード種別欄に”アクティビティ”が記憶され,それ以外の順序欄には”Any”が記憶されている。
(運用操作部品管理テーブルTo)
図14は,図2,図8において,運用操作部品を管理する運用操作部品管理テーブルToの一例を示す図である。
図14の運用操作部品管理テーブルToは,運用操作部品に関する各種情報を記憶するテーブルである。運用操作部品管理テーブルToにおいて,部品名(ノード名)欄には,運用操作部品の部品名を記憶する。この運用操作部品の部品名は,図4で説明したようにノードの名前でもある。分類欄には,運用操作部品が操作系部品か,または,取得系部品かを記憶する。この分類は,ノード種別でもある。
対象カテゴリ欄は,部品名欄の部品名(ノード名)に対応するカテゴリを記憶する。
パラメータ名欄には,部品名欄の部品名に対応するパラメータの名前を記憶する。このパラメータは,第1のノードにおける制御処理の内容に対応するパラメータである。データ種別欄には,パラメータ名欄のパラメータの種別,具体的には,このパラメータが,入力用のパラメータか,または,出力用のパラメータかを示す”入力”,”出力”を記憶する。データ量欄は,各パラメータに入力するデータの量や,各パラメータから出力されるデータの量が,所定のデータ量(例えば,10kbyte)よりも多いか(”多”),または,少ないか(”少”)を記憶する。
運用操作部品管理テーブルToは,第1のノードの名前に対応するカテゴリを記憶する第4の情報の一例であり,この第1のノードにおける制御処理の内容に対応するパラメータの名前とパラメータの種別(データ種別)とパラメータを介して入出力されるデータ量とを対応付けて記憶する第5の情報の一例である。前記した第1のノードの名前に対応するカテゴリは,前記第1のノードの制御処理の対象のカテゴリでもある。
運用操作部品管理テーブルToにおいて,部品名(ノード名)”サーバを起動”に対応して,分類欄に”操作系部品”,対象カテゴリ欄に”サーバ”,パラメータ名欄に”Hostname”,”Result”が記憶されている。ここで,パラメータ名”Hostname”とは,起動対象のサーバ装置を指定するための入力パラメータを示し,パラメータ名”Result”とは,このサーバ装置の起動が成功したか失敗したかを示す起動結果を出力するための出力パラメータを示す。そして,各パラメータに対応して,データ種別欄に”入力”,”出力”,データ量”少”,”少”が記憶されている。
運用操作部品管理テーブルToにおいて,部品名(ノード名)”サービスを起動”に対応して,分類欄に”操作系部品”,対象カテゴリ欄に”サービス”,パラメータ名欄に”Hostname”,”Servicename”,”Result”が記憶されている。ここで,サービスとは,例えばアプリケーションのインストールや,OS(Operating System)の自動設定である。パラメータ名”Hostname”とは,起動対象のサービスが実行される情報処理装置を指定するための入力パラメータを示し,パラメータ名”Servicename”とは,起動対象のサービスの名前を指定するための入力パラメータを示し,パラメータ名”Result”とは,このサービスの起動が成功したか失敗したかを示す起動結果を出力するための出力パラメータを示す。そして,各パラメータに対応して,データ種別欄に”入力”,”入力”,”出力”,データ量”少”,”多”,”多”が記憶されている。
運用操作部品管理テーブルToにおいて,部品名(ノード名)”ファイルを読む”に対応して,分類欄に”取得系部品”,対象カテゴリ欄に”ファイル”,パラメータ名欄に”Hostname”,”Filename”,”Filedata”が記憶されている。パラメータ名”Hostname”とは,読み出すファイルが記憶されたストレージ装置を指定するための入力パラメータを示し,パラメータ名”Filename”とは,読み出すファイルの名前を指定するための入力パラメータを示し,パラメータ名”Filedata”とは,読み出したファイルを出力するための出力パラメータを示す。そして,各パラメータに対応して,データ種別欄に”入力”,”入力”,”出力”,データ量”少”,” 少”,” 少”が記憶されている。
運用操作部品管理テーブルToにおいて,部品名(ノード名)”構成要素を取得”に対応して,分類欄に”取得系部品”,対象カテゴリ欄に”CMDB”,パラメータ名欄に”Hostname”,”XPath”,”Result_list”が記憶されている。パラメータ名”Hostname”とは,構成要素を取得するCMDBを指定するための入力パラメータを示し,パラメータ名”XPath”とは,取得する構成要素の検索式を指定するための入力パラメータを示し,パラメータ名”Result_list”とは,検索結果を出力するための出力パラメータを示す。そして,各パラメータに対応して,データ種別欄に”入力”,”入力”,”出力”,データ量”少”,” 少”,”多”が記憶されている。
運用操作部品管理テーブルToにおいて,部品名(ノード名)”サーバを停止”に対応して,分類欄に”操作系部品”,対象カテゴリ欄に”サーバ”,パラメータ名欄に”Hostname”,”Result”が記憶されている。ここで,パラメータ名”Hostname”とは,停止対象のサーバ装置を指定するための入力パラメータを示し,パラメータ名”Result”とは,このサーバ装置の停止が成功したか失敗したかを示す停止結果を出力するための出力パラメータを示す。そして,各パラメータに対応して,データ種別欄に”入力”,”出力”,データ量”少”,”少”が記憶されている。
(画面部品定義テーブルTdp)
図15は,図2,図8において,フォーム画面に配置する画面部品を定義する画面部品定義テーブルTdpの一例を示す図である。
図15の画面部品定義テーブルTdpは,画面部品に関連する各種情報を記憶するテーブルである。画面部品とは,フォーム画面に配置するデータの表現を定義するための画面構成を定義する部品である。画面部品には,入力用,出力用,入出力用の種類があり,入力,出力可能なデータ量によって,それぞれ異なる画面部品がある。
画面部品定義テーブルTdpにおいて,画面部品名欄は,フォーム画面に配置する画面部品を記憶する。データ種別欄は,画面部品名欄の画面部品名に対応するデータ種別を記憶する。このデータ種別は,画面部品に対応するパラメータの種別でもある。このデータ種別は,画面部品が,テキストボックス,ラジオボタンなどの,利用者がデータを入力するための画面部品(データ種別”入力”)か,ラベルなどの,利用者にデータを出力(表示)するための画面部品(データ種別”出力”)を示す情報である。ここで,データ種別”入出力”と指定されている場合,データ種別が入力または出力か,入力および出力かの両者を示している。データ量欄は,画面部品名欄の画面部品名に対応するデータ量を記憶する。このデータ量は,画面部品に入力されるデータの量が,所定のデータ量(例えば,10kbyte)よりも多いか(”多”),または,少ないか(”少”)を記憶し,また,画面部品から出力されるデータの量が,所定のデータ量よりも多いか(”多”),または,少ないか(”少”)を記憶する。
画面部品定義テーブルTdpは,パラメータの種別とデータ量に対応する画面部品の名前とを対応付けて記憶する第6の情報の一例である。
画面部品名欄は,”ラベル”,”テキスト”,”ラジオボタン”,”リスト”,”コンボボックス”,”テーブル”…を記憶する。データ種別欄は,画面部品欄の各画面部品に対応して,”出力”,”入力”,”入力”,”入力”,”入出力”,”入出力”を記憶する。データ量欄は,画面部品欄の各画面部品に対応して,”少”,少”,少”,多”,多”,少”を記憶する。
なお,”ラベル”とは,フォーム画面に配置する文字列などの情報を示し,”テキスト”とは文字列などを入力するテキストボックスを示し,”ラジオボタン”とは複数のボタンの中から何れか1を選択するボタンを示す。”リスト”とは,項目選択リスト(リストボックスとも言う)を示し,”コンボボックス”とは,テキスト表示ボックスと上下スクロールゲージとを組み合わせたボックスであり,上下スクロールゲージを操作するとテキスト表示ボックスの中に表示されている項目がスクロールする画面部品を示す。”テーブル”とは,コンボボックスと同機能であるが,テキスト表示ボックスに表示されるテキスト情報の量が少なく,テキスト表示ボックスにおいては,表示される項目をスクロール不可能である。
(自動作成用のテンプレート)
図16,図17に基づき,自動作成用のテンプレートについて説明する。
図16は,図2,図8において,画面部品をフォーム画面に配置する際に参照されるフォームのテンプレートTftの一例を示す図である。
図16のフォームのテンプレートTftは,図5,図7で説明した表示領域R11のどの位置に画面部品を配置するかを特定する際に参照される位置情報を記憶するテンプレートを模式的に示している。このテンプレートは,図5,図7で説明した,フォーム作成画面の表示領域R11に対応している。
フォームのテンプレートTftにおいて,符号L1,L1-1,L1-1-1,L1-1-2,L1-2,L1-2-1,L2,L2-1,L2-1-1,R1,R1-1,R1-1-1,R1-1-2,R1-2,R1-2-1,R2,R2-1,R2-1-1で示す長方形枠の4頂点の座標は,例えば,図5のフォーム作成画面D11における作成領域R11の座標に対応している。換言すれば,フォームのテンプレートTftは,このテンプレート内における各長方形枠の4頂点の座標情報を有し,この座標情報は,前記したフォームの作成画面内の座標を示している。
例えば,符号L1,符号L-1,符号L1-2,符号R1,符号R1-1で指定した長方形の領域は,図5のフォーム作成画面D11の符号L1,符号L-1,符号L1-2,符号R1,符号R1-1で示す長方形の領域(点線)に対応している。なお,テンプレートTft,図5のフォーム作成画面D11においては,領域の位置,大きさについて誇張して説明している。
図17は,図2,図8において,初めてワークフローを作成する際や,同一ワークフロー,類似ワークフローが記憶されていない場合に参照されるデータ範囲のテンプレートTdtの一例を示す図である。
図17のデータ範囲のテンプレートTdtは,初めてワークフローを作成する際などに参照されるデータ範囲のテンプレートである。データ範囲のテンプレートTdtにおいて,順序欄は,ワークフローにおいて,アクティビティ(i)を基準にしたノードの順序を記憶する。順序欄においては,アクティビティの前後のノードの順番をそれぞれ”i-n”,”i+n”(nは1以上の整数)で示している。ノード種別欄は,各順序に対応するノードの種別を記憶する。図17では,アクティビティiを基準として上側(i-1…i-n)には取得系部品が記憶されている。一方,アクティビティiを基準として下側(i+1…i+n)には操作系部品が記憶されている。
データ種別欄は,ノード種別欄に記憶された取得系部品,操作系部品が入力データ用か出力データ用かを定義するデータ種別を記憶する。データ種別としては,図17においては,”入力”,”出力”の2通りがあり,取得系部品には出力,操作系部品には入力を記憶する。位置欄には,画面部品を配置するフォーム画面の位置を示す識別子を記憶する。この識別子は,図16のフォームのテンプレートTft内の符号(L1,L1-1など)に対応している。
データ範囲のテンプレートTdtは,アクティビティノードを基準とする第1のノードの順序情報と画面部品の配置位置とを対応付けて記憶する第7の情報の一例である。
(フロー実行装置の実行履歴管理テーブルTg)
図18は,図3において,運用操作部品の実行履歴を管理する実行履歴管理テーブルTgの一例を示す図である。実行履歴管理テーブルTgは,図3のワークフロー実行装置6の記憶部606に記憶されている。
図18の実行履歴管理テーブルTgは,運用操作部品の実行履歴を管理する。実行履歴管理テーブルTgにおいて,部品名(ノード名)欄は,ワークフローの実行時に実行された運用操作部品名(ノード名)を記憶する。実行履歴欄は,運用操作部品欄に記憶された運用操作部品を実行した年月日を記憶する。パラメータ名欄は,運用操作部品名欄に記憶された運用部品名に対応するパラメータを記憶し,データ種別欄,データ量欄は,パラメータ名欄のパラメータに対応するデータ種別と,データ量を記憶する。
この記憶内容について,図3に基づき説明する。図3のワークフロー管理部611は,図18の実行履歴管理テーブルTgに対する各内容の記憶処理を実行する。例えば,図3のワークフロー管理部611が,あるワークフローの”構成要素を取得”(部品名(ノード名))を実行する。この場合,このワークフローのアクティビティに付加されたフォームに,構成要素を取得するCMDBのホスト名を入力するテキストボックスと,検索式を入力するテキストボックスと,検索結果を出力するコンボボックスが配置されているとする。このとき,前記ホスト名を入力するテキストボックスに対応するパラメータは”Hostname”であり,このデータ種別は”入力”である。検索式を入力するテキストボックスに対応するパラメータは”XPath”であり,このデータ種別は”入力”である。検索結果を出力するコンボボックスに対応するパラメータは”Result_list”である。
前記の例では,ワークフロー管理部611は,パラメータ名”Hostname”,パラメータ名”XPath”に対応するテキストボックスに利用者が入力したホスト名のデータ量,検索式のデータ量が,それぞれ所定のデータ量(例えば,10kbyte)よりも多いか(”多”),または,少ないか(”少”)を判定し,判定結果を,パラメータ名”Hostname”,”XPath”に対応するデータ量欄に記憶する。ここでは,ワークフロー管理部611は,パラメータ名”Hostname”,”XPath”に対応するデータ量が,それぞれ所定のデータ量よりも少ないと判定して,判定結果(”少”,”少”)をデータ量欄を記憶する。そして,ワークフロー管理部611は,パラメータ名”Result_list”に対応するコンボボックスに表示された検索結果のデータ量(CMDBから受信したデータの量)が,所定のデータ量よりも多いか(”多”),または,少ないか(”少”)を判定し,判定結果を,パラメータ名”Result_list”に対応するデータ量欄に記憶する。ここでは,ワークフロー管理部611は,検索式のデータ量が,所定のデータ量よりも多いと判定し,判定結果(”多”)を前記データ量欄に記憶する。そして,ワークフロー管理部611は,”構成要素を取得”部品を実行した日時を,実行履歴欄に記憶する。ここでは,”2011/12/09”を記憶する。
以上説明したように,図3のワークフロー管理部611は,ワークフローの運用操作部品の実行に関連するデータ量を,図18の実行履歴管理テーブルTgに記憶する。
また,図3のワークフロー管理部611は,部品名”サーバを起動”に対応して,実行履歴欄に”2011/11/02”,”2011/11/10”を記憶する。ワークフロー管理部611は,部品名”サーバを起動”に対応して,パラメータ名欄に”Hostname”,”Result”を記憶し,パラメータ名”Hostname”に対応してデータ種別欄に”入力”,データ量欄に”少”を記憶し,パラメータ名”Result”に対応してデータ種別欄に”入力”,データ量欄に”少”を記憶する。
他にも,ワークフロー管理部611は,部品名”ファイルを読む”に対応して,実行履歴欄に”2011/11/28”を記憶する。ワークフロー管理部611は,部品名”ファイルを読む”に対応して,パラメータ名欄に”Hostname”,”Filename”,”Filedata”を記憶し,パラメータ名”Hostname”に対応してデータ種別欄に”入力”,データ量欄に”少”を記憶し,パラメータ名”Filename”に対応してデータ種別欄に”入力”,データ量欄に”多”を記憶し,パラメータ名”Filedata”に対応してデータ種別欄に”出力”,データ量欄に”多”を記憶する。
実行履歴管理テーブルTgは,第1のノードの名前(ノード名)とこの第1のノードにおける制御処理の内容に対応するパラメータの名前とこのパラメータの種別と,この第1のノードが実行された際にこの第1のノードのパラメータを介して実際に入出力された履歴のデータの量とを対応付けて記憶する第8の情報の一例である。前記の例では,実行履歴管理テーブルTgは,第1のノードの名前”構成要素を取得”が実行された際に,この第1のノードのパラメータの名前”Hostname”,”XPath”,”Result_list”と,このパラメータの種別”少”,”少”,”多”と,これらのパラメータを介して実際に入出力された履歴のデータの量”少”,”少”,”多”とを対応付けて記憶している。
(ワークフローの作成処理の流れ)
図19は,図8のワークフロー作成装置5で実行するワークフロー作成処理の概略を説明するフロー図である。
ステップS1:作成者は,ワークフロー作成装置5の操作装置81を操作して,ワークフロー作成装置5にワークフローの作成画面の表示指示を行う。ワークフロー作成装置5のワークフロー作成エンジン511は,この表示指示に応答して,表示装置71にワークフローの作成画面を表示する。作成者は,図4で説明したように,この作成画面を利用して,ワークフローの作成を行う。
ステップS2:作成者は,操作装置81を操作して,図4で説明したように,ワークフローの作成画面のアクティビティを選択し,フォーム作成の実行指示をワークフロー作成装置5に行う。ワークフロー作成装置5は,この実行指示に応答して,以下のステップS3〜ステップS6の処理を実行する。
ステップS3:ワークフロー作成装置5のパターン検出エンジン512は,作成中のワークフローのパターンを検出する。このパターン検出処理については,図21で詳細に説明する。
ステップS4: ワークフロー作成装置5のデータ範囲決定エンジン513は,検出されたパターンに基づき,作成中のワークフローに最適なデータ範囲を決定する。このデータ範囲とは,フォーム画面に配置(表示)するデータを示し,実際には,例えば,アクティビティの前後に存在する運用操作部品の名称や,運用操作部品に入力されるデータに対応するパラメータや,運用操作部品から出力されるデータに対応するパラメータである。このデータ範囲決定処理については,図22で詳細に説明する。
ステップS5: ワークフロー作成装置5のフォーム作成エンジン514は,決定されたデータ範囲に応じた画面部品を取得(選択)し,フォーム画面に配置する。そして,ワークフロー作成エンジン511は,図5で説明したように,作成したフォーム画面を表示装置72に表示する。このステップS3〜ステップS5により,フォームの自動作成が終了する。なお,画面部品の取得処理については,図23で詳細に説明する。
ステップS6:作成者は,操作装置81を操作して,表示装置72に表示されているフォームの内容を必要に応じて,カスタマイズする。
(既作成のワークフローがある場合)
図20〜図23に基づき,既作成のワークフローがある場合におけるフォームの自動作成処理の流れについて説明する。
図20は,図8において既作成のワークフローがある場合における,フォーム自動作成処理の概略を説明するフロー図である。図20のフロー図は,図19のステップS3〜ステップS5の処理内容に相当する。
図21は,図20のステップS11の処理を詳細に説明するフロー図である。
図22は,図20のステップS13の処理を詳細に説明するフロー図である。
図23は,図20のステップS14の処理を詳細に説明するフロー図である。
まず,図20に基づき,既作成のワークフローがある場合におけるフォームの自動作成処理の概略を説明する。
ステップS11:図8のパターン検出エンジン512は,作成中のワークフローのパターンを検出する。
ステップS12:ワークフロー作成エンジン511,データ範囲決定エンジン513は,既作成のワークフローの中から,検出されたワークフローのパターンと同じパターンのワークフローを検索する。ここでは,ワークフロー作成エンジン511,データ範囲決定エンジン513は,図9のワークフロー管理テーブルTw1の中からワークフローの検索を実行する。
ステップS13:図8のデータ範囲決定エンジン513は,検索された同じパターンのワークフローに基づき,データ範囲を決定する。ここで,既作成のワークフローと,作成中のワークフローが同じ場合には(同一ワークフロー有り),ステップS15に移る。一方,既作成のワークフローと,作成中のワークフローが異なる場合には(同一ワークフロー無し),ステップS14に移る。
ステップS14:フォーム作成エンジン514は,画面部品を取得する。
ステップS15: フォーム作成エンジン514は,取得した画面部品をフォーム画面に配置する。この処理により,フォームの自動作成処理が終了する。そして,図19のステップS6に移る。
図20〜図23に基づき,既作成のワークフローがある場合におけるフォームの自動作成処理の詳細を説明する。以下の説明において,ワークフロー作成装置5は,既に,特定のサーバを停止するワークフロー(以下,サーバ停止用ワークフローと適宜記す)を作成している。そのため,図9のワークフロー管理テーブルTw1では,フローID”001”の内容が記憶され,図10のアクティビティ管理テーブルTa1では,ノードID”001-03”の内容が記憶され,図11のデータ範囲管理テーブルTdm1では,フォームID”001-A”の内容が記憶され,図12のフォーム管理テーブルTfm1では,フォームID”001-A”の内容が記憶されている。この状態で,作成者は,新たに,図4で説明した,サーバ起動ワークフローを作成する。
ここで,図8のワークフロー作成エンジン511は,サーバ起動ワークフローを作成する際に,このワークフローを管理するために,図9のワークフロー管理テーブルTw1に,新たにフロー行を作成する。換言すれば,ワークフロー作成エンジン511は,ワークフロー管理テーブルTw1に,新たに,フローID欄,ワークフロー名欄,順序欄,ノード名欄,ノードID欄,ノード種別欄にデータを記憶するための行を作成する。
そして,図8のワークフロー作成エンジン511は,図9のワークフロー管理テーブルTw1において新たに作成したフロー行におけるフローID欄に新たなフロー識別子”002”を記憶し,このワークフローの作成画面の内容に基づき,ワークフロー名欄に”特定のサーバを起動する”を記憶し,順番欄に,ノード名欄のノードの順序を示す”1”〜”5”を記憶する。さらに,ワークフロー作成エンジン511は,ノード名欄に”Start”,”構成要素を取得”,”アクティビティ”,”サーバを起動”,”Exit”を記憶し,ノードID欄に,ノード名欄のノードを識別するノードID”002-01”〜”002-05”を記憶する。さらに,ワークフロー作成エンジン511は,ノード種別欄に、ノード名”構成要素を取得”に対応して”取得系部品”を記憶し,ノード名”アクティビティ”に対応して”アクティビティ”を記憶し,ノード名”サーバを起動”に対応して”操作系部品”を記憶する。
また,図8のワークフロー作成エンジン511は,図10のアクティビティ管理テーブルTa1において,アクティビティを管理するために新たにアクティビティ行を作成する。換言すれば,ワークフロー作成エンジン511は,アクティビティ管理テーブルTa1に,新たに,ノードID欄,パターン欄,フォームID欄にデータを記憶するための行を作成する。そして,ワークフロー作成エンジン511は,図9のワークフロー管理テーブルTw1におけるフローID”002”のノード名”アクティビティ”のノードID(002-03)を,新たに作成したアクティビティ行のノードID欄に記憶する。
以上に説明した,図9の更新処理が,図19のステップS1で実行される。
(ワークフローのパターン検出)
図9,図10,図13を参照し,図21に基づき,ワークフローのパターン検出処理について説明する。図21は,ワークフローのパターン検出を説明するフロー図である。なお,図21で説明するワークフローのパターン検出処理は,図20のステップS11,S12に対応している。
ステップS21:図8のパターン検出エンジン512は,図9のワークフロー管理テーブルTw1から,作成中のワークフローの内容を取り出し,メモリ502(図2参照)に展開する。前記の例では,フローID”002”で識別されるワークフローの内容を取り出し,メモリ502に展開する。この取り出したワークフローの内容をワークフローXとする。以下の説明において,取り出された内容や情報は,常にメモリ502に展開されている。
ステップS22:図8のパターン検出エンジン512は,図13のパターン管理テーブルTpから,パターン数jを取り出す。パターン管理テーブルTpの例では,パターン数は4パターンであるから,パターン数jは4である(j=4)。
ここで,ステップS24で”一致”判定がなされるか(ステップS24/一致),または,パターン数j回分,ループ開始LP21とループ終了LP22との間におけるステップS23,ステップS24の処理を繰り返す。
ステップS23:図8のパターン検出エンジン512は,図13のパターン管理テーブルTpから取り出していないパターンを取り出す。この取り出したパターンをパターンYとする。ステップS33の実行が1回目の場合,”対象選択パターン”の内容を取り出す。
ステップS24:パターン検出エンジン512は,ワークフローXのノード種別欄の内容と,パターンYのノード種別欄の内容とを比較し一致するか判定する。
前記の例の場合,ワークフローXのノード種別欄は”取得系部品”,”アクティビティ”,”操作系部品”であり,パターンYのノード種別Yの内容は”取得系部品”,”アクティビティ”,”操作系部品”である。従って,パターン検出エンジン512は,ステップS24において一致すると判定し(ステップS24/一致),ステップS25に移る。
ステップS25:図8のワークフロー作成エンジン511は,図10のアクティビティ管理テーブルTa1におけるパターン欄に,パターンYのパターン名を記憶する。換言すれば,ワークフロー作成エンジン511は,ノード種別が一致するパターン名を記憶する。前記の例では,ワークフロー作成エンジン511は,ワークフローXのノード名”アクティビティ”のノードID”002-03”(図9参照)と同じノードIDに対応する図10のアクティビティ管理テーブルTa1におけるパターン欄に,パターン名”対象選択パターン”を記憶する。
図8のパターン検出エンジン512は,ステップS24において”不一致”と判定した場合(ステップS24/不一致),ステップS23に戻り,図13のパターン管理テーブルTpから取り出していないパターンを取り出す。この処理をパターン管理テーブルTpにおいて,”上記以外のパターン”まで繰り返す。
ここで,パターン数jの数だけ,ステップS23,ステップS24の処理を実行したにもかかわらず一致しない場合,ステップS26に移る。この一致しない場合とは,例えば,作成中のワークフローにアクティビティがない場合である。この場合,作成者は,自分自身でフォームを初めから作成する(フォームの手動作成)。つまり,図19のステップS6に移る。
(データ範囲の決定)
図9〜図12,図14を参照し,図22に基づき,データ範囲の決定処理について説明する。図22は,データ範囲の決定処理を説明するフロー図である。なお,図22で説明するデータ範囲の決定処理は,図20のステップS13に対応している。
ステップS31:図8のデータ範囲決定エンジン513は,図9のワークフロー管理テーブルTw1から,作成中のワークフローの内容を取り出す。前記の例では,データ範囲決定エンジン513は,フローID”002”で識別されるワークフローXの内容を取り出す。このワークフローXの内容とは,フローID”002”に対応するワークフロー名欄,順序欄,ノード名欄,ノードID欄,ノード種別欄に記憶されているデータである。
ステップS32:データ範囲決定エンジン513は,図10のアクティビティ管理テーブルTa1から,ワークフローXと同じパターンのノードIDを取り出す。このとき,ワークフローXのアクティビティノードを識別するノードIDと同じノードIDは取り出さない。ここで,ワークフローXと同じパターンのノードIDが複数個ある場合には,複数個分取り出す。前記の例では,ワークフローXのパターンは”対象選択パターン”なので,データ範囲決定エンジン513は,ノードID”001-03”を取り出す。取り出したノードIDをノードID(W)と適宜記す。このとき,データ範囲決定エンジン513は,ワークフローXのアクティビティノードを識別するノードID”002-3”と同じノードIDについては,取り出さない。
さらに,データ範囲決定エンジン513は,取り出したノードIDの数kをメモリ502(図2参照)に記憶する。前記の場合,kは1である。
ここで,ステップS36,ステップS38で一致判定がなされるか,または,取り出したノードIDの数k回分,ループ開始LP31とループ終了LP32との間における,ステップS33〜ステップS38の処理を実行する。
ステップS33:図8のデータ範囲決定エンジン513は,ノードID(W)の中から選択していない1つのノードIDを選択して,取り出す。この選択して取り出したノードIDをノードID(Wn)と記す。前記の例では,データ範囲決定エンジン513は,1つのノードID(Wn)”001-03”を取り出す。
ステップS34:図8のデータ範囲決定エンジン513は,図9のワークフロー管理テーブルTw1からノードID(Wn)を有するワークフローの内容を取り出す。この取り出したワークフローをワークフローYと記す。前記の例では,データ範囲決定エンジン513は,図9のワークフロー管理テーブルTw1からノードID(Wn) “001-03”を有するワークフローの内容,換言すれば,フローID”001”のワークフローの内容を取り出す。このワークフローYの内容とは,フローID”001”に対応するワークフロー名欄,順序欄,ノード名欄,ノードID欄,ノード種別欄に記憶されているデータである。
ステップS35:図8のデータ範囲決定エンジン513は,ワークフローXのノード名欄の内容と,ワークフローYのノード名欄の内容とを取り出す。取り出した,ワークフローXのノード名欄の内容をノード内容Xn,ワークフローYのノード名欄の内容をノード内容Ynと記す。
前記の例では,ワークフローXのノード内容Xnとは,図9のワークフロー管理テーブルTw1において,フローID”002”におけるノード名欄に記憶された”Start”,”構成要素を取得”,”アクティビティ”,”サーバを起動”,”Exit”である。また,ワークフローYのノード内容Ynとは,図9のワークフロー管理テーブルTw1において,フローID”001”におけるノード名欄に記憶された”Start”,”構成要素を取得”,”アクティビティ”,”サーバを停止”,”Exit”である。
ステップS36:図8のデータ範囲決定エンジン513は,ノード内容Xnとノード内容Ynが一致するか判定する。前記の例では,データ範囲決定エンジン513は,ノード内容Xnの1ノードである”サーバを起動”と,ノード内容Ynの1ノードである”サーバを停止”とが異なるので,不一致と判定し(ステップS36/不一致),ステップS37に移る。
ステップS37:図8のデータ範囲決定エンジン513は,図14の運用操作部品管理テーブルToから,ノード内容Xnのノード名に対応する対象カテゴリXtとノード内容Ynのノードに対応する対象カテゴリYtを取り出す。
前記の例では,ノード内容Xnのノード名は”Start”,”構成要素を取得”,”アクティビティ”,”サーバを起動”,”Exit”である。そして,図14の運用操作部品管理テーブルToにおいて,これらノード名に対応する対象カテゴリは,”構成要素を取得”については”CMDB”, “サーバを起動”については”サーバ”である。よって,データ範囲決定エンジン513は,対象カテゴリXtとして”CMDB”,”サーバ”を取り出す。
一方,ノード内容Ynのノード名は”Start”,”構成要素を取得”,”アクティビティ”,”サーバを停止”,”Exit”である。そして,図14の運用操作部品管理テーブルToにおいて,これらノード名に対応する対象カテゴリは,”構成要素を取得”については”CMDB”,”サーバを停止”については”サーバ”である。よって,データ範囲決定エンジン513は,対象カテゴリXtとして”CMDB”,”サーバ”を取り出す。
ステップS38:図8のデータ範囲決定エンジン513は,対象カテゴリXtと対象カテゴリYtとを比較して,一致するか判定する。前記の例では,データ範囲決定エンジン513は,対象カテゴリXtと対象カテゴリYtとは一致すると判定し(ステップS38/一致),ステップS39に移る。
ここで一致する場合とは,すなわち,作成中のワークフローに類似する既作成のワークフローがある場合である。一致しない場合とは,すなわち,作成中のワークフローに類似する既作成のワークフローがない場合である。
ステップS39:データ範囲決定エンジン513は,図11のデータ範囲管理テーブルTdm1からワークフローYのノード順序の内容,データ種別の内容を複製し,作成中のワークフローのフォームに対応するデータ範囲として記憶する。
ステップS39において,まず,図8のデータ範囲決定エンジン513は,作成中のワークフローのフォームのデータ範囲を管理するために,図11のデータ範囲管理テーブルTdm1に,新たにフォーム行を作成する。換言すれば,データ範囲決定エンジン513は,データ範囲管理テーブルTdm1に,新たに,フォームID欄,ノード順序欄,ノード名欄,パラメータ名欄,データ種別欄,データID欄にデータを記憶するための行を作成する。
そして,データ範囲決定エンジン513は,図11のデータ範囲管理テーブルTdm1において,新たにフォームIDを割り振り,フォームID欄に記憶する。そして,データ範囲決定エンジン513は,ワークフローYのフローIDを有するフォームID(フローIDを含むフォームID)に対応するノード順序の内容,データ種別の内容を新たに作成したノード順序欄,データ種別欄に複製する。前記の例では,データ範囲決定エンジン513は,新たにフォームID”002-A”を割り振り,フォームID欄に記憶する。そして,データ範囲決定エンジン513は,ワークフローYが有するフローID”001”(図9参照)を有するフォームID”001-A” (図11参照)に対応するノード順序”i-1”,”i+1”を,フォームID”002-A”(図11参照)に対応するノード順序欄に複製する。さらに,データ範囲決定エンジン513は,ワークフローYが有するフローID”001”を有するフォームID”001-A”に対応するデータ種別”入力”,”出力”,”入力”を,フォームID”002-A”に対応するデータ種別欄に複製する。
ステップS40:図8のデータ範囲決定エンジン513は,図11のデータ範囲管理テーブルTdm1において,ワークフローXに合致するデータ範囲を割り当てる。前記の例では,データ範囲決定エンジン513は,図9のワークフロー管理テーブルTw1において,作成中のワークフローX(フローID”002”)のノード名”アクティビティ” を基準として前後する,ノード名”構成要素を取得”(ノード種別”取得系部品”),”サーバを起動” (ノード種別”操作系部品”)を取り出し,図11のデータ範囲管理テーブルTdm1におけるフォームID”002-A”のノード名欄に記憶する。
そして,データ範囲決定エンジン513は,この取り出したノード名に対応するパラメータを図14の運用操作部品管理テーブルToから取り出す。前記の例では,取り出したノード名は”構成要素を取得”,”サーバを起動”である。そのため,”構成要素を取得”のノード名に対応するパラメータは,図14の運用操作部品管理テーブルToにおいては,れ”Hostname”,”XPath”,”Result_list”である。また,”サーバを起動”のノード名に対応するパラメータは,運用操作部品管理テーブルToにおいては,”Hostname”,”Result”である。
データ範囲決定エンジン513は,この図14の運用操作部品管理テーブルToから取り出したパラメータと,図11のデータ範囲管理テーブルTdm1におけるワークフローYのフォーム(フォームID”001-A”)のパラメータ名と一致するパラメータを,図11のデータ範囲管理テーブルTdm1におけるフォームID”002-A”のパラメータ名欄に記憶する。前記の例では,データ範囲決定エンジン513は,パラメータ”XPath”,”Result_list”,”Hostname”をフォームID”002-A”のパラメータ名欄に記憶する。このとき,データ範囲決定エンジン513は,ノード名に対応してパラメータを記憶する。データ範囲決定エンジン513は,図11の例では,ノード名”構成要素を取得”に対応して順次”XPath”,”Result_list”を記憶し,ノード名”サーバを起動”に対応して”Hostname”を記憶する。
なお,図11のデータ範囲管理テーブルTdm1におけるワークフローY(フォームID”001-A”)のパラメータ名をそのままフォームID”002-A”のパラメータ名欄に複製してもよい。
そして,データ範囲決定エンジン513は,図11のデータ範囲管理テーブルTdm1において,新たに記憶したパラメータに対応するデータIDを割り振り,データID欄に記憶する。前記の例では,データ範囲決定エンジン513は,データID”002A-001”〜”002A-003”をデータID欄に記憶する。
ステップS41:図8のフォーム作成エンジン514は,図12のフォーム管理テーブルTfm1にフォームを新規作成し,ステップS40で割り当てたデータ範囲を記憶する。
ステップS41において,まず,フォーム作成エンジン514は,作成中のワークフローのフォームを管理するために,図12のフォーム管理テーブルTfm1に,新たにフォーム行を作成する。換言すれば,フォーム作成エンジン514は,フォーム管理テーブルTfm1に,新たに,フォームID欄,パメータ欄,画面部品名欄,データID欄,位置欄にデータを記憶するための行を作成する。
そして,フォーム作成エンジン514は,図12のフォーム管理テーブルTfm1において,ステップS39で割り振られた新たなフォームID(”002-A”)をフォームID欄に記憶する。
フォーム作成エンジン514は,図11のデータ範囲管理テーブルTdm1において,前記割り振られた新たなフォームID(”002-A”)の各ノード順序に対応してそれぞれノード名,このノード名に対応するパラメータ名を読み出す。
前記の例では,フォーム作成エンジン514は,図11のデータ範囲管理テーブルTdm1において,ノード順序”i-1”に対応するノード名”構成要素を取得”,パラメータ名”XPath”,”Result_list”を読み出し, ノード順序”i+1”に対応するノード名”サーバを起動”,パラメータ名”Hostname”を読み出す。そして,フォーム作成エンジン514は,読み出したノード名,パラメータ名を,図12のフォーム管理テーブルTfm1において,前記割り振られた新たなフォームID(”002-A”)に対応するパラメータ名欄に,読み出した順に記憶する。
前記の例では,フォーム作成エンジン514は,フォーム管理テーブルTfm1のパラメータ名欄において,ノード名”構成要素を取得”,パラメータ名”XPath”,”Result_list”, ノード名”サーバを起動”,パラメータ名”Hostname”をこの順で記憶する。
さらに,フォーム作成エンジン514は,フォーム管理テーブルTfm1におけるワークフローYのフォームを識別するフォームID(”001-A”)に対応する位置欄の情報を複製し,ワークフローXのフォームを識別するフォームID(”002-A”)に対応する位置欄に記憶する。
前記の例では,フォーム作成エンジン514は,フォーム管理テーブルTfm1における前記フォームID(”001-A”)に対応する位置欄の情報”L1”,”L1-1”,”L1-2”,”R1”,”R1-1”を複製し,前記フォームID(”002-A”)に対応する位置欄に記憶する。
最後に,ワークフロー作成エンジン511は,前記新たに割り振られたフォームIDを,図10のアクティビティ管理テーブルTa1において,作成中のワークフローのアクティビティのノードIDに対応するフォームID欄に記憶する。
前記の例では,前記新たに割り振られたフォームIDは”002-A”である。そして,前記の例では,図10のアクティビティ管理テーブルTa1において,作成中のワークフローのアクティビティのノードIDは”002-03”である。そのため,ワークフロー作成エンジン511は,図10のアクティビティ管理テーブルTa1において,ノードID”002-03”のフォームID欄に”002-A”を記憶する。
なお,図22のステップS36において,データ範囲決定エンジン513が,ノード内容Xnとノード内容Ynが一致すると判定した場合(ステップS36/一致),ステップS42に移る。この一致する場合とは,作成中のワークフローが過去に作成したワークフローと同じワークフローの場合である。前記の例では,作成中のワークフローがサーバ停止用ワークフローの場合である。
ステップS42:ワークフロー作成エンジン511は,図12のフォーム管理テーブルTfm1に記憶されているワークフローYのフォームの内容を複製し,複製したフォームを識別するフォームIDをアクティビティ管理テーブルTa1に記憶する。
ステップS42では,ワークフロー作成エンジン511は,図12のフォーム管理テーブルTfm1において,ワークフローYのフォーム(フォームID”001-A”)の内容と同一の内容をこのフォームの下に複製し,新たにフォームID,データIDを割り振る。この場合ワークフロー作成エンジン511は,フォームID”002-A”を割り振る。このとき,図12の例では,フォームID”002-A”に対応するパラメータ名欄の”サーバを起動”が”サーバを停止”に置き換えられた状態である。
そして,ワークフロー作成エンジン511は,この新たに割り振られたフォームIDを,図10のアクティビティ管理テーブルTa1において,作成中のワークフローXのアクティビティのノードIDに対応するフォームID欄に記憶する。前記の例では,ワークフロー作成エンジン511は,図10のアクティビティ管理テーブルTa1において,ノードID”002-03”のフォームID欄に”002-A”を記憶する。
以上に説明した,ステップS33〜ステップS41の処理を,ワークフロー作成装置5は,ステップS36,ステップS39で一致判定がなされるか,または,取り出したノードIDの数k回分実行する。
取り出したノードIDの数k回分,ステップS33〜ステップS41の処理が実行されても,ステップS36,ステップS39で一致判定がなされれない場合には,すなわち,類似の既作成ワークフローがない場合,ステップS43に移る。
ステップS43では,作成中のワークフローのフォームを管理するために,図12のフォーム管理テーブルTfm1に新たにフォーム行を作成し,定義済みのデータ範囲を割り当てる。この処理の詳細については,図30で説明する。
(フォーム画面に配置する画面部品の取得処理)
図11,図12,図14,図15,図18を参照し,図23に基づき,フォーム画面に配置する画面部品を選択する処理について説明する。
図23は,フォーム画面に配置する画面部品を選択する処理を説明するフロー図である。なお,図23で説明する画面部品の取得処理は,図20のステップS14に対応している。
ステップS51:図8のフォーム作成エンジン514は,図11のデータ範囲管理テーブルTdm1において,作成中のワークフローのフォーム(以下,作成中のフォームと適宜記す)のノード名を取り出す。取り出したノード名をノード名Pとする。前記の例では,フォーム作成エンジン514は,データ範囲管理テーブルTdm1から作成中のフォーム(フォームID”002-A”)のノード名P”構成要素を取得”,”サーバを起動”を取り出す。
ステップS52:図8のフォーム作成エンジン514は,図18の実行履歴管理テーブルTgから,ノード名Pと一致する部品名(ノード名)に対応する内容を取り出す。この内容とは,実行履歴管理テーブルTgにおいて,前記した一致する部品名(ノード名)に対応するパラメータ名欄,データ種別欄,データ量欄に記憶されているデータである。
なお,予め,図8のフォーム作成エンジン514は,ワークフロー実行装置6から実行履歴管理テーブルTgを取得し,例えば,一時的にメモリ502(図2参照)に記憶している。具体的には,フォーム作成エンジン514は,ワークフロー実行装置6に実行履歴管理テーブルTgの送信依頼を行う。ワークフロー実行装置6のワークフロー管理部611は,この送信依頼に応答して,ワークフロー作成装置5に実行履歴管理テーブルTgを送信する。フォーム作成エンジン514は,実行履歴管理テーブルTgを一時的にメモリ502に記憶する。
ここで,前記取り出した内容を内容Qと記す。前記の例では,フォーム作成エンジン514は,図18の実行履歴管理テーブルTgから,内容Qとして”構成要素を取得”,”サーバを起動”の内容を取り出す。
ステップS53:図8のフォーム作成エンジン514は,内容Qの有無を判定する。内容Qがある場合には(ステップS53/有り),ステップS54に移る。
ステップS54:図8のフォーム作成エンジン514は,内容Qにおける部品名毎のデータ種別,データ量を取り出す。
フォーム作成エンジン514は,このとき,図11のデータ範囲管理テーブルTdm1において,作成中のフォーム(フォームID”002-A”)における,ノード名とこのノード名に対応するパラメータ名と,同じノード名とパラメータ名とに対応するデータ種別,データ量を,内容Qから取り出す。
前記の例では,図12のフォーム管理テーブルTfm1において,作成中のフォーム(フォームID”002-A”)におけるノード名とこのノード名に対応するパラメータ名は,それぞれ”構成要素を取得”と,”XPath”,”Result_list”である。そのため,フォーム作成エンジン514は,内容Qの中から,部品名(ノード名)”構成要素を取得”とパラメータ名”XPath”とに対応する,データ種別”入力”,データ量”少”とを取り出し,さらに,パラメータ名”Result_list”に対応するデータ種別”出力”,データ量”多”を取り出す(図18の運用操作部品管理テーブルTo参照)。さらに,図12のフォーム管理テーブルTfm1において,作成中のフォーム(フォームID”002-A”)におけるノード名とこのノード名に対応するパラメータ名は,それぞれ”サーバを起動”と”Hostname”である。そのため,フォーム作成エンジン514は,内容Qの中から,部品名(ノード名)”サーバを起動”とパラメータ名”Hostname”とに対応する,データ種別””入力”,データ量”少”を取り出す。
なお,図18の運用操作部品管理テーブルToにおいて,”サーバを起動”のように,同じ部品名が複数ある場合,実行履歴が新しい内容を内容Qとして1つ取り出す。
ステップS55:フォーム作成エンジン514は,図15の画面部品定義テーブルTdpから,取り出したデータ種別,データ量に一致する画面部品を取り出す。この取り出した画面部品を画面部品Rとする。前記の例では,フォーム作成エンジン514は,パラメータ名”XPath”に対応するデータ種別”入力”,データ量”少”を有する画面部品”テキスト”を検索し取り出す。なお,この検索については,テーブルの上から順に行う。フォーム作成エンジン514は,パラメータ名”Result_list”,データ種別”出力”,データ量”多について画面部品”コンボボックス”を取り出し,パラメータ名”Hostname”に対応するデータ種別”入力”,データ量”少”について画面部品”テキスト”を取り出す。
ステップS56:フォーム作成エンジン514は,画面部品Rを図12のフォーム管理テーブルTfm1に記憶する。このとき,フォーム作成エンジン514は,パラメータに対応する画面部品Rを,フォーム管理テーブルTfm1の作成中のフォーム(フォームID”002-A”)におけるパラメータに対応する画面部品欄に記憶する。
前記の例では,パラメータ名”XPath”に対応する画面部品は”テキスト”であり,パラメータ名”Result_list”に対応する画面部品は”コンボボックス”であり,パラメータ名”Hostname”に対応する画面部品は”テキスト”であった。そのため,フォーム作成エンジン514は,フォーム管理テーブルTfm1の作成中のフォーム(フォームID”002-A”)におけるパラメータ”XPath”に対応する画面部品名欄に”テキスト”, パラメータ”Result_list”に対応する画面部品名欄に”コンボボックス”, パラメータ”Hostname”に対応する画面部品名欄に”テキスト”を記憶する。
そして,フォーム作成エンジン514は,図11のデータ範囲管理テーブルTdm1を参照し,作成中のフォーム(フォームID”002-A”)におけるパラメータ名に割り振られたデータID(”002A-001”〜”002A-003”)を読み出し,図12のフォーム管理テーブルTfm1の作成中のフォーム(フォームID”002-A”)におけるパラメータ名に対応するデータID欄に記憶する。
前記の例では,フォーム作成エンジン514は,パラメータ”XPath”に対応する画面部品”テキスト”について”データID”002A-001”,パラメータ”Result_list”に対応する画面部品”コンボボックス”について”データID”002A-002”, パラメータ”Hostname”に対応する画面部品”テキスト”について”データID”002A-003”を記憶する。
そして,フォーム作成エンジン514は,前記以外のパラメータに対応する画面部品名欄の画面部品として,画面部品名”ラベル”を記憶する。なお,この記憶処理の後に,ワークフロー作成エンジン511は,フォームID”001−A”の位置欄に記憶された位置情報を複製し,フォームID”002−A”の位置欄に記憶してもよい。
ステップS53において,内容Qがない場合には(ステップS53/無し),ステップS57に移る。
ステップS57:図8のフォーム作成エンジン514は,図14の運用操作部品管理テーブルToから,作成中のワークフローにおけるノード名P(部品名)毎のパラメータのデータ種別,データ量を取り出す。換言すれば,図8のフォーム作成エンジン514は,図14の運用操作部品管理テーブルToから,ノード名Pと一致するノード名(部品名)に対応する内容を取り出す。この内容とは,運用操作部品管理テーブルToにおいて,前記した一致する部品名(ノード名)に対応するパラメータ名欄,データ種別欄,データ量欄に記憶されているデータである。ここで,取り出した内容を内容Q’と記す。前記の例では,フォーム作成エンジン514は,運用操作部品管理テーブルToから,内容Q’として”構成要素を取得”,”サーバを起動”の内容を取り出す。
そして,図8のフォーム作成エンジン514は,内容Q’における部品名毎のデータ種別,データ量を取り出す。フォーム作成エンジン514は,このとき,図11のデータ範囲管理テーブルTdm1において,作成中のフォーム(フォームID”002-A”)における,ノード名とこのノード名に対応するパラメータ名と,同じノード名とパラメータ名とに対応するデータ種別,データ量を,内容Q’から取り出す。なお,前記したデータ種別,データ量の取り出しについては,ステップS57で具体的に説明したので省略する。
そして,ステップS55に移る。ステップS55以下の処理は,前記したので省略する。
以上,図20〜図23の説明により,図20(既作成のワークフローがある場合におけるフォームの自動作成処理の流れ)におけるステップS14までの説明が終了した。
その後,図20のステップS15に移る。
ステップS15では,図8のワークフロー作成エンジン511は,図5で説明したように,フォーム作成画面を表示し,図12のフォーム管理テーブルTfm1に記憶した,作成中のワークフローのフォームIDに対応する各パラメータ名に対応する位置に,図16のフォームのテンプレートTftに基づき,この各パラメータに対応する画面部品を配置する。
図5,図12の例では,作成中のワークフローのフォームIDは”002-A”である。前記の例では,図8のワークフロー作成エンジン511は,フォームID”002-A”の位置欄の位置情報”L1”に対応する,パラメータ名”構成要素を取得”を画面部品名”ラベル”すなわち文字列として,位置情報”L1”に対応する,フォームの作成画面の位置に表示する(図5の符号P11参照)。また,ワークフロー作成エンジン511は,フォームID”002-A”の位置欄の位置情報”L1-1”に対応する,パラメータ名”XPath”を画面部品名”テキスト”(テキストボックス)として,位置情報”L1-1”に対応する,フォームの作成画面の位置に表示する(図5の符号P13参照)。このとき,ワークフロー作成エンジン511は,パラメータ名”XPATH”をテキストボックスの左側に表示する(図5の符号P12参照)。利用者は,この表示により,テキストボックスに表示されるパラメータの種類を認識できる。
ワークフロー作成エンジン511は,フォームID”002-A”の位置欄の位置情報”L1-2”に対応する,パラメータ名”Result_list”を画面部品名”コンボボックス”として,位置情報”L1-2”に対応する,フォームの作成画面の位置に表示する(図5の符号P15参照)。なお,このとき,ワークフロー作成エンジン511は,パラメータ名”Result_list”をコンボボックスの左側に表示する(図5の符号P14参照)。利用者は,この表示により,コンボボックスに表示されるパラメータの種類を認識できる。
さらに,ワークフロー作成エンジン511は,フォームID”002-A”の位置情報”R1”に対応する,パラメータ名”サーバを起動”を画面部品名”ラベル”として,位置情報”R1”に対応する,フォームの作成画面の位置に表示する(図5の符号P16参照)。また,ワークフロー作成エンジン511は,フォームID”002-A”の位置情報”R1-1”に対応する,パラメータ名”Hostname”を画面部品名”テキスト” (テキストボックス)として,位置情報”R1-1”に対応する,フォームの作成画面の位置に表示する(図5の符号P18参照)。なお,このとき,ワークフロー作成エンジン511は,パラメータ名”Hostname”をテキストボックスの左側に表示する(図5の符号P17)。利用者は,この表示により,テキストボックスに入力するパラメータの種類を認識できる。
以上に説明したフォームの自動作成処理を実行する,本実施の形態のフォーム画面作成処理を以下にまとめて説明する。
このフォーム画面作成処理は,データ範囲決定エンジン513,フォーム作成エンジン514により,検出された新規ワークフローのパターンと新規ワークフローにおける第1のノードの制御処理の内容とに基づき,新規ワークフローのフォームの画面に配置する画面部品を決定し,決定した画面部品を新規ワークフローのフォームの画面に配置する(図19のステップS5参照)。さらに,データ範囲決定エンジン513,フォーム作成エンジン514により,検出された新規ワークフローのパターンと新規ワークフローにおける第1のノードの制御処理の内容とに基づき,このフォームの画面における決定した画面部品の配置位置を決定し,この決定した画面部品をこの決定した配置位置に配置する。なお,この第1のノードは,図8で説明したように,運用操作部品のノードである。
ここで,新規ワークフローをサーバ起動用ワークフローとする。この場合,新規ワークフローのパターンは,”対象選択パターン”であり,アクティビティを基準にして前に取得系部品,後に操作系部品が配置されている(図13のパターン管理テーブルTp参照)。
この場合,図9のワークフロー管理テーブルTw1のフローID”002”の内容に示されているように,新規ワークフローにおけるアクティビティよりも前のノード(以下,取得ノードと記す)は,ノード名”構成要素を取得”である。そして,この取得ノードの制御処理の内容は,図6で説明したように,図1のCMDB2に,入力された検索式を出力し,検索結果を取得し表示出力することである。また,新規ワークフローにおけるアクティビティよりも後のノード(以下,操作ノードと記す)は,ノード名”サーバを起動”であり,この取得ノードの制御処理の内容は,図6で説明したように,入力されたホスト名のサーバ装置を起動することである。
データ範囲決定エンジン513は,この取得系部品に対応する画面部品をフォーム画面に配置するため,この取得系部品に対応するパラメータ(”XPath”,”Result_list”)を取得する(図22のステップS40参照)。そして,フォーム作成エンジン514は,この取得したパラメータに対応する画面部品,すなわち,この取得系部品に対応する画面部品(”テキスト”,”コンボボックス”)を決定する(図23のステップS55参照)。なお,操作系部品についても同様に画面部品を決定する。そして,フォーム作成エンジン514は,この決定した画面部品をフォーム画面に順次配置する。フォーム作成エンジン514は,例えば,画面左上から画面右上にかけて,これらの画面部品が重ならないように配置する。
さらに,利用者の利便性を向上させるため,以下のように画面部品の配置位置を決定する。 ここで,図13のパターン管理テーブルTp,図14の運用操作部品管理テーブルTo,図15の画面部品定義テーブルTdpによれば,各パターンのノード種別に対応して画面部品が対応していることが分かる。例えば,対象選択パターンの場合,アクティビティを基準にして前に取得系部品が接続(配置)され,後に操作系部品が接続されている。この操作系部品については,少なくとも操作対象を入力するためのテキストボックス(テキスト)などの入力系の画面部品が対応し,この取得系部品に対しては,少なくとも,取得した情報を出力するためのコンボボックスなどの入出力系の画面部品が対応している。
また,図13のパターン管理テーブルTp,図16のフォームのテンプレートTft,図17のデータ範囲のテンプレートTdtによれば,各パターンのノード種別に対応して取得系部品,操作系部品の画面部品の配置位置が対応していることが分かる。例えば,対象選択パターンの場合,アクティビティを基準にして前に取得系部品が接続され,後に操作系部品が接続されている。そして,図16のフォームのテンプレートTft,図17のデータ範囲のテンプレートTdtによれば,取得系部品の画面部品は,フォーム画面の左側に配置し,操作系部品の画面部品は,フォーム画面の右側に配置されることになる。そこで,フォーム作成エンジン514は,前記決定した取得系部品の画面部品をフォーム画面の左側に配置し,前記決定した操作系部品の画面部品をフォームの右側に配置する。
前記した画面部品の決定,配置処理をより高精度に行うため,本実施の形態のフォーム画面作成処理は,以下の処理を実行する。
データ範囲決定エンジン513は,図9のワークフロー管理テーブルTw1に基づき,新規ワークフローと既作成ワークフローとが同じか判定する(図22のステップS36参照)。
データ範囲決定エンジン513が,新規ワークフローと既作成ワークフローとが同じと判定した場合(図22のステップS36/一致),フォーム作成エンジン514は,以下の処理を実行する。例えば,フォーム作成エンジン514は,図12のフォーム管理テーブルTfm1に基づき,新規ワークフローのフォームの画面に,同じと判定した既作成ワークフローのフォームの画面に配置された画面部品と同じ画面部品を,配置された画面部品の配置位置と同じ位置に配置する(図22のステップS42,図23の各ステップ参照)。前記の例では,フォーム作成エンジン514は,図12のフォーム管理テーブルTfm1における新規ワークフローのフォーム(フォームID”002-A”)の画面部品名を,この画面部品の位置情報に対応するフォーム画面の位置に配置する(図20のステップS15参照)。なお,この場合,図22のステップS42で説明したように,図12の例では,フォームID”002-A”に対応するパラメータ名欄の”サーバを起動”が”サーバを停止”に置き換えられた状態である。
一方,既作成ワークフローと新規ワークフローが同じでない場合(図22のステップS36/不一致),データ範囲決定エンジン513は,図14の運用操作部品管理テーブルToに基づき,既作成ワークフローの第1のノードのカテゴリと,新規ワークフローの第1のノードのカテゴリとが同じか判定する(図22のステップS38)。カテゴリが同じと判定した場合(ステップS38/一致),データ範囲決定エンジン513,フォーム作成エンジン514は,図14の運用操作部品管理テーブルToと,図15の画面部品定義テーブルTdpに基づき,新規ワークフローの第1のノードのパラメータの名前に対応するパラメータの種別とデータ量に合致する画面部品の名前を決定する。
具体的には,データ範囲決定エンジン513は,図14の運用操作部品管理テーブルToに基づき,前記第1のノードのパラメータの名前を決定する(図22のステップS39,S40参照)。そして,フォーム作成エンジン514は,図14の運用操作部品管理テーブルTo,図15の画面部品定義テーブルTdpに基づき,このパラメータの名前に対応する画面部品を決定する(図23のフロー図参照)。
なお,この画面部品の決定時において,フォーム作成エンジン514は,図18の実行履歴管理テーブルTgの中に,新規ワークフローの第1のノードの名前があるか判定する(図23のステップS53参照)。そして,この名前が図18の実行履歴管理テーブルTgがあると判定した場合(図23のステップS53/有り),図15の画面部品定義テーブルTdpと,図18の実行履歴管理テーブルTgに基づき,このパラメータの名前に対応する画面部品を決定する(図23のステップS54参照)。
そして,フォーム作成エンジン514は,図12 のフォーム管理テーブルTfm1に記憶された,前記したカテゴリが同じと判定された既作成ワークフローのフォームの画面に配置された画面部品の配置位置に基づき,前記決定した名前の画面部品を新規ワークフローのフォームの画面に配置する位置を決定する(図23のステップS56参照)。前記の例では,フォーム作成エンジン514は,図12のフォーム管理テーブルTfm1における新規ワークフローのフォーム(フォームID”002-A”)の画面部品名の位置情報が,決定した名前の画面部品の位置情報である。この新規ワークフローのフォーム(フォームID”002-A”)の画面部品名の位置情報は,前記したカテゴリが同じと判定された既作成ワークフローのフォーム(フォーム”001-A”)の画面に配置された画面部品の配置位置の情報である。換言すれば,この新規ワークフローのフォーム(フォームID”002-A”)の画面部品名の位置情報は,前記したカテゴリが同じと判定された既作成ワークフローのフォーム(フォーム”001-A”)に対応して記憶されている画面部品の位置情報である。なお,前記したカテゴリが同じと判定された既作成ワークフローは,新規ワークフローに類似するワークフローである。
最後に,フォーム作成エンジン514は,決定した名前の画面部品を,決定した配置位置に配置する。前記の例では,フォーム作成エンジン514は,図12のフォーム管理テーブルTfm1における新規ワークフローのフォーム(フォームID”002-A”)の画面部品名を,この画面部品の位置情報に対応するフォーム画面の位置に配置する(図20のステップS15参照)。
図22のフロー図で説明したように,図9のワークフロー管理テーブルTw1に記録されている既作成ワークフローの内容の中から,作成中のワークフローと同じパターンのワークフローの内容を取り出している(ステップS32〜S34参照)。そのため,取り出すワークフローの数を少なくすることができ,ワークフロー作成装置5におけるフォーム作成時の処理負荷や取り出したワークフローを一時的に記憶するメモリ領域を削減できる。
また,図9のワークフロー管理テーブルTw1は,既作成ワークフローのノード名を記憶している。そのため,既作成ワークフローのノード名と,作成中のワークフローのノード名を比較するだけで(図22のステップS36参照),既作成ワークフローと作成中のワークフローとが一致するかを容易に判定することができる。その結果,ワークフロー作成装置5におけるフォーム作成時の処理負荷を削減できる。
また,図12のフォーム管理テーブルTfm1は,既作成ワークフローのフォーム画面に配置した画面部品名やその位置を記憶している。そのため,作成中のワークフローが既作成ワークフローと同じ場合(図22のステップS36/一致),この既作成ワークフローのフォーム画面に配置した画面部品名やその配置位置を流用することができる(図22のステップS42,図23のフロー図参照)。このように,既作成ワークフローのフォームを利用するので,利用者にわかりやすいフォームを提供することができる。
また,図14の運用操作部品管理テーブルToは,運用操作部品の名前(ノード名)に対応したカテゴリを記憶している。そのため,たとえ,既作成ワークフローと作成中のワークフローとが一致しなくても,既作成ワークフローのノード名のカテゴリと,作成中のワークフローのノード名のカテゴリを比較するだけで(図22のステップS38参照),既作成ワークフローと作成中のワークフローとが類似するかを容易に判定することができる。そして,類似している場合には,類似している既作成ワークフローのフォーム画面に配置した画面部品名やその配置位置を流用することができる(図22のステップS39〜ステップS41,図23のフロー図参照)。このように,既作成フォームを利用するので,利用者にわかりやすいフォームを提供することができる。
他にも,図14の運用操作部品管理テーブルTo,図18の実行履歴管理テーブルTgは,パラメータに対応してデータ種別とデータ量とを記憶し,図15の画面部品定義テーブルTdpは,このデータ種別とデータ量に対応する画面部品を記憶している。そのため,このデータ種別とデータ量に応じた最適な画面部品を選択することができるので(図23のステップS55参照),ワークフローの内容に適した画面部品をフォーム画面に表示することができる。
特に,図23のステップS54で説明したように,図18の実行履歴管理テーブルTgからパラメータのデータ量を取得することで最適な画面部品を決定することができる。例えば,パラメータ名”Result_list”のデータ量が少ない場合,ステップS55において,画面部品名として,テーブルが選択される。このように,パラメータを介して実際に入力されるデータ量を記憶することで,実際に入出力されるデータ量に対応する最適な画面部品を決定することができる。
以上説明した,フォーム画面作成処理により,既作成のワークフローのフォームの内容に基づき,ワークフローに最適なフォームを自動作成することができる。そのため,ワークフローの作成者の作成業務が容易になるだけでなく,ワークフロー作成業務負荷が軽減し,作成業務に伴い発生するミスの頻度が低下する。その結果,ワークフロー作成業務の品質が向上する。また,ワークフローに最適なフォームを作成することができるので,フォームからワークフローの内容も理解しやすく,ワークフローを利用して運用管理業務を行う利用者の管理業務負荷が軽減し,運用管理業務に伴い発生するミスの頻度が低下する。その結果,運用管理業務の品質が向上する。
(1回目のワークフローの作成)
図14,図16,図17を参照し,図24〜図30に基づき,既作成のワークフローが存在しない場合,すなわち,1回目のワークフローを作成する場合における,フォームの自動作成処理について説明する。
図24は,図30において説明するワークフロー管理テーブルTw2の一例を示す図である。ワークフロー管理テーブルTw2は,図2,図8のワークフロー管理テーブルTwとして,図2の記憶部506に記憶されている。
図25は,図30において説明するアクティビティ管理テーブルTa2の一例を示す図である。アクティビティ管理テーブルTa2は,図2,図8のアクティビティ管理テーブルTaとして,図2の記憶部506に記憶されている。
図26は,図30において説明するデータ範囲管理テーブルTdm2の一例を示す図である。データ範囲管理テーブルTdm2は,図2,図8のデータ範囲管理テーブルTdmとして,図2の記憶部506に記憶されている。
図27は,図30において説明するフォーム管理テーブルTfm2の一例を示す図である。フォーム管理テーブルTfm2は,図2,図8のフォーム管理テーブルTfmとして,図2の記憶部506に記憶されている。
図24〜図27において,最上段の行は,図9のワークフロー管理テーブルTw1,図10のアクティビティ管理テーブルTa1,図11のデータ範囲管理テーブルTdm1,図12のフォーム管理テーブルTfm1と同様である。各欄の内容を記憶する処理については,図30において説明する。
図28は,フォームのカスタマイズにより,図26のデータ範囲管理テーブルTdm2が更新された状態を示す図である。
図29は,フォームのカスタマイズにより,図27のフォーム管理テーブルTfm2が更新された状態を示す図である。
以下の説明において,図4で説明したように,サーバ起動用のワークフローを作成する場合を想定する。このサーバ起動用ワークフローの作成により,既に,図8のワークフロー作成エンジン511は,図9で説明したように,図24のワークフロー管理テーブルTw2を作成する。
そして,図8のワークフロー作成エンジン511が,初めて新規ワークフローを作成するか判定し,初めて新規ワークフローを作成すると判定した場合に,図30のフロー図における各ステップで説明する処理が実行される。図8のワークフロー作成エンジン511は,例えば,ワークフロー管理テーブルTw(図2の記憶部506)の各欄に何らのデータが記憶されない場合に,初めて新規ワークフローを作成すると判定する。他にも,図8のワークフロー作成エンジン511は,アクティビティ管理テーブルTa(図2の記憶部506)のパラメータ名欄に何らのデータも記憶されていない場合に,初めて新規ワークフローを作成すると判定する。
図30は,図8において初めてワークフローを作成する場合における,フォーム自動作成処理を説明するフロー図である。図30のステップS61〜ステップS65の処理は,図19のステップS3〜ステップS5の処理に対応している。
ステップS61:図8のパターン検出エンジン512は,図24のワークフロー管理テーブルTw2から,図21で説明したように,作成中のワークフローのパターンを検出する。なお,このとき,図8のワークフロー作成エンジン511は,図25のアクティビティ管理テーブルTa2に示すように,アクティビティのノードID”001-03”をノードID欄に記憶し,検出したパターンをパターン欄に記憶する。
ステップS62:図8のデータ範囲決定エンジン513は,テーブルに定義済みのデータ範囲を決定する。
図8のデータ範囲決定エンジン513は,図26のデータ範囲管理テーブルTdm2のフォームID欄に,作成中のワークフローのアクティビティに付加するフォームを識別する”識別子001-A”を記憶する。さらに,データ範囲決定エンジン513は,図24のワークフロー管理テーブルTw2のフローID欄”001”(作成中のワークフロー)に対応するノード名”アクティビティ”を基準として前後するノード名を取り出し,図26のデータ範囲管理テーブルTdm2のノード名欄に記憶する。前記の例では,データ範囲決定エンジン513は,図24のワークフロー管理テーブルTw2からノードID”001-03”のアクティビティを基準として,ノードID”001-02”の”構成要素を取得”,ノードID”001-04”の”サーバを起動”を取り出し,図26のデータ範囲管理テーブルTdm2のノード名欄に記憶する。同時に,データ範囲決定エンジン513は,図26のノード順序欄にアクティビティを基準にしたノード名の順序を記憶する。前記の例では,データ範囲決定エンジン513は,ノード名”構成要素を取得”のノード順序としてノード順序”i-1”をノード順序欄に記憶し,ノード名”サーバを起動”のノード順序としてノード順序”i+1”をノード順序欄に記憶する。
次に,図26のデータ範囲管理テーブルTdm2のパラメータ名欄,データ種別欄への記憶処理について説明する。
図8のデータ範囲決定エンジン513は,図17のデータ範囲のテンプレートTdtのアクティビティ(i)を基準として前後するデータ種別を取り出し,図26のデータ範囲管理テーブルTdm2のデータ種別欄に記憶する。前記の例では,データ範囲決定エンジン513は,図17のデータ範囲のテンプレートTdtのアクティビティ(i)を基準として前後するノード順序”i-1”に対応するデータ種別”出力”,ノード順序”i+1”に対応するデータ種別”入力”を取り出し,図26のデータ範囲管理テーブルTdm2のデータ種別欄に,前記したノード順序に対応させて記憶する。
この記憶では,データ範囲決定エンジン513は,データ範囲管理テーブルTdm2のデータ種別欄に,ノード順序”i-1”に対応してデータ種別”出力”を記憶し,ノード順序”i+1”に対応してデータ種別”入力”を記憶する。
図8のデータ範囲決定エンジン513は,図26のデータ範囲管理テーブルTdm2における,ノード名欄のノード名と,このノード名に対応するデータ種別欄のデータ種別と一致するパラメータ名を,図14の運用操作部品管理テーブルToから取り出す。そして,データ範囲決定エンジン513は,取り出したパラメータ名を,データ範囲管理テーブルTdm2において,このノード名に対応するパラメータ名欄に記憶する。
前記の例では,図26のデータ範囲管理テーブルTdm2における,ノード名”構成要素を取得”,このノード名に対応するデータ種別”出力”については,図14の運用操作部品管理テーブルToではパラメータ名”Result_list”である。そのため,図8のデータ範囲決定エンジン513は,パラメータ名”Result_list”を取り出し,データ範囲管理テーブルTdm2において,ノード名”構成要素を取得”に対応するパラメータ名欄に記憶する。また,図26のデータ範囲管理テーブルTdm2における,ノード名”サーバを起動”, このノード名に対応するデータ種別”入力”については,図14の運用操作部品管理テーブルToではパラメータ名”Hostname”である。そのため,データ範囲決定エンジン513は,パラメータ名”Hostname”を取り出し,データ範囲管理テーブルTdm2において,ノード名” サーバを起動”に対応するパラメータ名欄に記憶する。
さらに,図8のデータ範囲決定エンジン513は,前記記憶したパラメータ名に対応するデータIDを割り振り,このパラメータ名に対応させて,データ範囲管理テーブルTdm2におけるデータID欄に記憶する。前記の例は,パラメータ名”Result_list”,”Hostname”に対応するデータID”001A-01”,”001A-02”を割り振り,このパラメータ名に対応させて,データ範囲管理テーブルTdm2におけるデータID欄に記憶する。
ステップS63:図8のフォーム作成エンジン514は,データ範囲のデータ種別,データ量を取得する。
図8のフォーム作成エンジン514は,ステップS62で説明したように,データ範囲決定エンジン513が取得したパラメータ名に対応するデータ種別,データ量を,図14の運用操作部品管理テーブルToから取得する。前記例の場合,フォーム作成エンジン514は,ノード名”構成要素を取得”のパラメータ名”Result_list”に対応するデータ種別”出力”,データ量”多”と,ノード名”サーバを起動”のパラメータ名”Hostname”に対応するデータ種別”入力”,データ量”少”を取得する。
ステップS64: 図8のフォーム作成エンジン514は,取得したデータ種別,データ量に対応する画面部品を取得する。
図8のフォーム作成エンジン514は,図14の運用操作部品管理テーブルToから取得したパラメータ名に対応するデータ種別,データ量に対応する画面部品名を,図15の画面部品定義テーブルTdpから検索し取得する。なお,この検索については,テーブルの上から順に行う。
前記例の場合,フォーム作成エンジン514は,ノード名”構成要素を取得”のパラメータ名”Result_list”に対応するデータ種別”出力”,データ量”多”に対応する画面部品”コンボボックス”を検索し取得する。そして,フォーム作成エンジン514は,ノード名”サーバを起動”のパラメータ名”Hostname”に対応するデータ種別”入力”,データ量”少”に該当する画面部品”テキスト”を検索し取得する。
ステップS65:図8のワークフロー作成エンジン511は,取得された画面部品をフォーム画面に配置する。
ワークフロー作成エンジン511は,図26のデータ範囲管理テーブルTdm2から,作成中のワークフローのフォームIDと,このフォームIDのノード順序に対応するノード名およびパラメータ名と,データIDとを順次読み出す。そして,ワークフロー作成エンジン511は,それぞれを,図27のフォーム管理テーブルTfm2における,フォームID欄,パラメータ名欄,データID欄に記憶する。さらに,図8のワークフロー作成エンジン511は,データ範囲管理テーブルTdm2におけるパラメータ名欄に記憶したパラメータの中で,図8のフォーム作成エンジン514が,図15の画面部品定義テーブルTdpから画面部品を取得したパラメータがある場合には,その画面部品名を,このパラメータに対応する画面部品欄に記憶する。
前記の例では,ワークフロー作成エンジン511は,図26のデータ範囲管理テーブルTdm2から,作成中のワークフローのフォームID”001-A”,このフォームIDのノード順序”i-1”に対応するノード名”構成要素を取得”,パラメータ名”Result_list”,データID”001A-01”を読み出す。そして,ワークフロー作成エンジン511は,図27のフォーム管理テーブルTfm2における,フォームID欄にフォームIDを記憶し,パラメータ名欄にノード名,パラメータ名を順次記憶し,データID欄にデータIDを記憶する。さらに,フォーム作成エンジン514は,パラメータ名”Result_list”の画面部品名として”コンボボックス”を取得したので,パラメータ名”Result_list”に対応する画面部品名欄に”コンボボックス”を記憶する。
更に,ワークフロー作成エンジン511は,図26のデータ範囲管理テーブルTdm2から,作成中のワークフローのフォームID”001-A”,このフォームIDのノード順序”i+1”に対応するノード名”サーバを起動”,パラメータ名”Hostname”,データID”001A-02”を読み出す。そして,ワークフロー作成エンジン511は,図27のフォーム管理テーブルTfm2における,パラメータ名欄にノード名,パラメータ名を順次記憶し,データID欄にデータIDを記憶する。さらに,フォーム作成エンジン514は,パラメータ名”Hostname”の画面部品名として”テキスト”を取得したので,パラメータ名”Hostname”に対応する画面部品名欄に”テキスト”を記憶する。
なお,図8のワークフロー作成エンジン511は,パラメータ名欄に記憶したパラメータの中で,図8のフォーム作成エンジン514が,図15から画面部品を取得したパラメータがない場合には,画面部品欄に,例えば”ラベル”を記憶する。前記の例では,パラメータ名”構成要素を取得”,”サーバを起動”については,図8のフォーム作成エンジン514は,図15から画面部品を取得していない。そのため,図8のワークフロー作成エンジン511は,これらに対応する画面部品名欄には”ラベル”を記憶する。
さらに,ワークフロー作成エンジン511は,図26のデータ範囲管理テーブルTdm2における,作成中のワークフローのフォームIDのノード順序に対応するフォームの位置情報を,図17のデータ範囲のテンプレートTdtから読み出す。そして,ワークフロー作成エンジン511は,図27において,このノード順序に対応するパラメータ名が記憶されているパラメータ名欄に対応する位置欄に,読み出したフォームの位置情報を記憶する。
前記の例では,ワークフロー作成エンジン511は,図26のデータ範囲管理テーブルTdm2における,作成中のワークフローのフォームID”001-A”のノード順序”i-1”に対応するフォームの位置情報”L1-1”を,図17のデータ範囲のテンプレートTdtから読み出す。そして,ワークフロー作成エンジン511は,図27のフォーム管理テーブルTfm2において,このノード順序”i-1”に対応するパラメータ名”Result_list”に対応する位置欄に,読み出したフォームの位置情報”L1-1”を記憶する。
ここで,ワークフロー作成エンジン511は,この位置欄において,位置情報”L1-1”を記憶した上の行には,位置情報”L1-1”の”-”より前の文字列”L1”を記憶する。
さらに,前記の例では,ワークフロー作成エンジン511は,図26のデータ範囲管理テーブルTdm2における,作成中のワークフローのフォームID”001-A”のノード順序”i+1”に対応するフォームの位置情報”R1-1”を,図17のデータ範囲のテンプレートTdtから読み出す。そして,ワークフロー作成エンジン511は,図27のフォーム管理テーブルTfm2において,このノード順序”i+1”に対応するパラメータ名”Hostname”に対応する位置欄に,読み出したフォームの位置情報”R-1”を記憶する。
ここで,ワークフロー作成エンジン511は,この位置欄において,位置情報”R1-1”を記憶した上の行には,位置情報R1-1の”-”より前の文字列”R1”を記憶する。
なお,図27のフォーム管理テーブルTfm2において,各ノード順序に対応して複数のパラメータ名が記憶されている場合,ワークフロー作成エンジン511は,パラメータ名毎の位置情報を図17のデータ範囲のテンプレートTdtから読み出す。
また,ワークフロー作成エンジン511は,図25のアクティビティ管理テーブルTa2のフォームID欄に,作成中のワークフローのフォームを識別するフォームID”001-A”を記憶する。
ステップS65:図8のフォーム作成エンジン514は,フォームの作成画面を,表示装置72に表示し,このフォームの作成画面に,図27のフォーム管理テーブルTfm2に基づき,フォームの画面部品を表示する。この表示処理は,図20のステップS15で説明したので省略する。
図7に,図30で説明した初めて新規ワークフローを作成する場合に実行されるフォーム自動生成により表示されるフォームの作成画面を示す。図7のフォーム作成画面D31においては,図5のフォーム作成画面D11と異なり,図5の符号P12で示す”XPATH”,符号P13で示すテキストボックスが配置されてない。
以上に説明した処理により,図30における初回作成時のワークフローのフォーム自動作成処理が終了し,図19のステップS6に移る。図30で説明したフォーム自動作成処理により,予め定義されているテーブルやテンプレートに基づき,初回作成時のワークフローに最適なフォームを自動作成することができる。その結果,作成者の作業負担が軽減する。
また,図30のフロー図は,図20で説明した既作成のワークフローがある場合の,フォーム作成処理と類似する処理により,フォームを自動作成しているので,図30のフロー図で説明した処理フローを新たに開発する必要がない。その結果,開発時の工程削減を図ることができる。
なお,類似の既作成ワークフローがない場合(図22のステップS38/不一致で,LP32のループ終了)に実行される図22のステップS43の処理については,図30のステップS62〜ステップS64を実行することにより,図11のデータ範囲管理テーブルTdm1,図12 のフォーム管理テーブルTfm1におけるフォームID(002-A)の内容が更新されることになる。
具体的には,図8のデータ範囲決定エンジン513は,図30のステップS62の処理を実行して,図11のデータ範囲管理テーブルTdm1における,作成中のワークフローに対応するフォームID欄にフォームID”002-A”を記憶し,ノード順序欄にノード順序を記憶し,ノード名欄にノード名を記憶し,パラメータ名欄にパラメータ名を記憶し,データ種別欄にデータ種別を記憶し,データID欄にデータIDを記憶する。なお,このとき,図9のワークフロー管理テーブルTw1における作成中のワークフロー(フローID”002”)の内容が参照される。
その結果,図11のデータ範囲管理テーブルTdm1におけるフォームID”002-A”の内容として,図26のデータ範囲管理テーブルTdm2におけるフォームID”001-A”の内容(初回時内容)が記憶される。
次いで,図8のフォーム作成エンジン514は,ステップS63,ステップS64の処理を実行して,図12 のフォーム管理テーブルTfm1における,作成中のワークフローに対応するフォームID欄にフォームID”002-A”を記憶し,パラメータ名欄にパラメータ名を記憶し,画面部品名欄に画面部品を記憶し,データID欄にデータIDを記憶し,位置欄に位置情報を記憶する。なお,このとき,前記した初回時内容のデータ範囲が参照される。
以下に,初めてフォーム画面作成すると判定した場合,または,類似の既作成ワークフローがないと判定した場合,すなわちカテゴリが異なると判定した場合(図22のステップS38/不一致で,LP32のループ終了)のフォーム画面作成処理についてまとめて説明する。
データ範囲決定エンジン513,フォーム作成エンジン514は,図14の運用操作部品管理テーブルToと,図15の画面部品定義テーブルTdpに基づき,新規ワークフローの第1のノード(運用操作部品のノード)のパラメータの名前に対応するパラメータの種別とデータ量に合致する画面部品の名前を決定する。具体的には,データ範囲決定エンジン513は,図14の運用操作部品管理テーブルToに基づき,第1のノードのパラメータの名前を決定する(図30のステップS62参照)。そして,フォーム作成エンジン514は,図14の運用操作部品管理テーブルTo,図15の画面部品定義テーブルTdpに基づき,このパラメータの名前に対応する画面部品を決定する(図30のステップS63,S64参照)。
フォーム作成エンジン514は,図17のデータ範囲のテンプレートTdt,および,新規ワークフローにおける第2のノードを基準とする第1のノードの順序情報に基づき,決定した名前の画面部品を新規ワークフローのフォームの画面に配置する配置位置を決定する。
フォーム作成エンジン514は,例えば,第2のノードを基準として前に接続する第1のノード(ノードの順序情報(順序”i-1”))において前記決定した名前の画面部品については,図17のデータ範囲のテンプレートTdtにおける,取得系部品に対応する位置情報の位置(フォーム画面左側)に配置すると決定する。同じく,フォーム作成エンジン514は,例えば,第2のノードを基準として後に接続する第1のノード(ノードの順序情報(順序”i+1”))について前記決定した名前の画面部品については,図17のデータ範囲のテンプレートTdtにおける,操作系部品に対応する位置情報の位置(フォーム画面右側)に配置すると決定する。この決定処理の具体例については,図30のステップS65で説明したので説明を省略する。
最後に,フォーム作成エンジン514は,決定した名前の画面部品を,決定した配置位置に配置する。前記の例では,フォーム作成エンジン514は,図27のフォーム管理テーブルTfm2における新規ワークフローのフォーム(フォームID”001-A”)の画面部品名を,この画面部品の位置情報に対応するフォーム画面の位置に配置する(図30のステップS65参照)。
(フォーム画面のカスタマイズ)
図5,図7,図14,図15,図28,図29に基づき,図19のステップS6で説明した,フォームのカスタマイズを説明する。
図30で説明した処理により,ワークフローのパターンに対応するフォーム画面を作成した。このとき,作成者は,構成要素の取得に際し,取得対象の構成要素を示す検索式(XPath)を入力するテキスト(ボックス)を新たに,図7の作成画面D31に追加する。このテキストボックスは,図5の符号P13に相当する。
作成者は,図8の操作装置81を操作し,図7において,符号P14に示す”Result_list”ラベル,符号P15に示すリストボックスを下方に移動する。そして,作成者は,符号P11に示す”構成要素を取得”と,前記下方に移動された符号P14で示す”Result_list”および符号P15で示す”コンボボックス”との間に,図5に示すように,符号P12に示す”XPATH”ラベル,符号P13に示すテキストボックスを追加する。
図8のワークフロー作成エンジン511は,この移動,追加を検知し,図26のデータ範囲管理テーブルTdm2,図27のフォーム管理テーブルTfm2の内容を更新する処理を実行する。具体的には,ワークフロー作成エンジン511は,前記追加により,ノード名”構成要素を取得”において,パラメータとしてのXPATH入力用のテキストボックスを新たに追加したことを,データ範囲決定エンジン513に通知する。
データ範囲決定エンジン513は,この通知に応答して,図28のデータ範囲管理テーブルTdm3に示すように,図26のデータ範囲管理テーブルTdm2の内容を更新する。前記の例では,データ範囲決定エンジン513は,作成中のワークフローのフォームを識別するフォームID”001-A”のノード名”構成要素を取得”に対応するパラメータ名欄にパラメータ名”XPath”を追加する。そして,データ範囲決定エンジン513は,図14の運用操作部品管理テーブルToの中から,ノード名”構成要素を取得”に対応するパラメータ名”XPath”に対応するデータ種別”入力”を検索し,図26のデータ範囲管理テーブルTdm2における,パラメータ名”XPath”に対応するデータ種別欄に,この検索した”入力”を記憶する。最後に,データ範囲決定エンジン513は,ノード名”構成要素を取得”に対応するデータID欄のデータIDを上から順に振り直す。データ範囲決定エンジン513は,図26のデータID欄のデータIDを”001A-001”〜“001A-003”とする。
次いで,ワークフロー作成エンジン511は,前記変更,追加により,図29のフォーム管理テーブルTfm3に示すように,図27のフォーム管理テーブルTfm2の内容を更新する。この更新は,図28のデータ範囲管理テーブルTdm3を参照して行うことになる。前記の例では,ワークフロー作成エンジン511は,符号P11に示す”構成要素を取得”と,符号P14で示す”Result_list”および符号P15で示す”コンボボックス”との間に,符号P12に示す”XPATH”ラベル,符号P13に示すテキストボックスを追加した。そこで,ワークフロー作成エンジン511は,図29のフォーム管理テーブルTfm3に示すように,パラメータ名欄の”構成要素を取得”と,”Result_list”との間に,新たに”XPath”を追加記憶する。
ワークフロー作成エンジン511は,図14の運用操作部品管理テーブルToにおけるパラメータ名欄の中から,新たに追加したパラメータ”XPath”に対応するデータ種別”入力”と,データ量”少”を検索する。さらに,ワークフロー作成エンジン511は,図15の画面部品定義テーブルTdpを検索して,データ種別”入力”と,データ量”少”に対応する画面部品名”テキスト”を検索する。このとき,画面部品定義テーブルTdpの先頭(図面上側)から検索する。そして,ワークフロー作成エンジン511は,検索した画面部品名”テキスト”を,図27のフォーム管理テーブルTfm2におけるパラメータ”XPath”に対応する画面部品欄に追加記憶する。そして,ワークフロー作成エンジン511は,図26で説明したように,新たに割り振られたデータIDをデータID欄に”001A-001”〜”001A-003”を追加記憶する。
最後に,ワークフロー作成エンジン511は,前記したカスタマイズにより,画面部品の位置が変更されているので,図16のフォームのテンプレートTftに基づき,変更されたパラメータの位置情報を特定する。
ワークフロー作成エンジン511は,前記の例では,図5の符号P14で示す”Result_list”および符号P15で示す”コンボボックス”は,図16のフォームのテンプレートTftにおいて,符号L1-2に示す位置に移動していると検知する。そして,ワークフロー作成エンジン511は,図29のフォーム管理テーブルTfm3においてパラメータ名”Result_list”,画面部品名”コンボボックス”に対応する位置欄に位置情報”L1-2”を追加記憶する。
さらに,ワークフロー作成エンジン511は,前記の例では,符号P12に示す”XPATH”ラベル,符号P13に示す”テキストボックス”は,図16において,符号L1-1に示す位置に追加していると検知する。そして,ワークフロー作成エンジン511は,図29のフォーム管理テーブルTfm3においてパラメータ名”XPath”,画面部品名”テキスト”に対応する位置欄に位置情報”L1-1”を追加記憶する。
なお,新たに新規ワークフローが作成される度に,図9〜図12,図20で説明したように,ワークフロー管理テーブルTw,アクティビティ管理テーブルTa,データ範囲管理テーブルTdm,フォーム管理テーブルTfmが更新される。
以上に説明した,テーブルの更新処理により,作成者自らが,ワークフローのフォームを変更しても,ワークフロー作成エンジン511は,その変更を検知して,データ範囲管理テーブルTdm2,フォーム管理テーブルTfm2の内容をこの変更に対応して更新する(図28,図29参照)。
この更新された各テーブルは,ワークフローの利用者(システムの管理者)が利用しやすいように,ワークフローの作成者によりカスタマイズされたワークフローのフォームの内容を反映している。
従って,これらフォームの内容を反映しているテーブルに基づき,図20で説明したように,作成中のワークフローのフォームを作成することができる。そのため,システムの管理者は,使いやすいワークフローのフォームを利用して,システムの運用管理を行えるので,システムの運用管理業務の負荷が軽減する。
以上の実施の形態をまとめると,次の付記のとおりである。
(付記1)
情報処理システムの運用手順を複数のノードの接続で表現するワークフローで前記情報処理システムの運用業務を自動化する情報処理方法であって,
前記情報処理システムの制御処理を実行する第1のノードと,前記制御処理に関連する情報を入力,出力する画面部品を有するフォームが付加される第2のノードとを少なくとも有する前記ワークフローを作成し,
ワークフローのパターンを記憶する第1の情報に基づき,前記作成される新規ワークフローのパターンを検出し,
前記検出された新規ワークフローのパターンと前記新規ワークフローにおける第1のノードの制御処理の内容とに基づき,前記新規ワークフローのフォームの画面に配置する画面部品を決定し,
前記決定した画面部品を前記フォームの画面に配置する
ことを特徴とする情報処理方法。
(付記2)
付記1において,
さらに,前記検出された新規ワークフローのパターンと前記新規ワークフローにおける第1のノードの制御処理の内容とに基づき,前記フォームの画面における前記決定した画面部品の配置位置を決定し,
前記決定した画面部品を前記決定した配置位置に配置する
ことを特徴とする情報処理方法。
(付記3)
付記2において,
前記ワークフローの作成は,前記第2のノードの前後に,それぞれ接続される第1のノードを有する新規ワークフローを作成する
ことを特徴とする情報処理方法。
(付記4)
付記2において,
既に作成された既作成ワークフローにおける,前記第2のノードを基準とする前記第1のノードの順序情報と前記第1のノードの名前とを記憶する第2の情報に基づき,前記新規ワークフローと前記既作成ワークフローとが同じか判定し,
同じと判定した場合,前記既作成ワークフローのフォームの画面に配置した画面部品の名前,配置位置を記憶する第3の情報に基づき,前記新規ワークフローのフォームの画面に,前記同じと判定した前記既作成ワークフローのフォームの画面に配置された画面部品と同じ画面部品を,前記配置された前記画面部品の配置位置と同じ位置に配置する
ことを特徴とする情報処理方法。
(付記5)
付記4において,
前記既作成ワークフローと前記新規ワークフローが同じでない場合,前記第1のノードの名前に対応するカテゴリを記憶する第4の情報に基づき,前記既作成ワークフローの第1のノードのカテゴリと,前記新規ワークフローの第1のノードのカテゴリとが同じか判定し,
カテゴリが同じと判定した場合,
前記第1のノードにおける制御処理の内容に対応するパラメータの名前と前記パラメータの種別と前記パラメータを介して入出力されるデータ量とを対応付けて記憶する第5の情報と,前記パラメータの種別と前記データ量と前記画面部品の名前とを対応付けて記憶する第6の情報に基づき,前記新規ワークフローの第1のノードのパラメータの名前に対応する前記パラメータの種別と前記データ量に合致する画面部品の名前を決定し,
前記第3の情報に記憶された,前記カテゴリが同じと判定された前記既作成ワークフローのフォームの画面に配置された画面部品の配置位置に基づき,前記決定した名前の画面部品を前記新規ワークフローのフォームの画面に配置する配置位置を決定し,
前記決定した名前の画面部品を,前記決定した配置位置に配置する
ことを特徴とする情報処理方法。
(付記6)
付記5において,
前記カテゴリが同じと判定しない場合,
前記第5の情報と,前記第6の情報に基づき,前記新規ワークフローの第1のノードのパラメータの名前に対応する前記パラメータの種別と前記データ量に合致する画面部品の名前を決定し,
前記第2のノードを基準とする前記第1のノードの順序情報と画面部品の配置位置とを記憶する第7の情報,および,前記新規ワークフローにおける前記第2のノードを基準とする前記第1のノードの順序情報に基づき,前記決定した名前の画面部品を前記新規ワークフローのフォームの画面に配置する配置位置を決定する
ことを特徴とする情報処理方法。
(付記7)
付記2において,
初めて新規ワークフローを作成するか判定し,初めて新規ワークフローを作成すると判定した場合,
前記第1のノードにおける制御処理の内容に対応するパラメータの名前と前記パラメータの種別と前記パラメータを介して入出力されるデータ量とを対応付けて記憶する第5の情報と,前記パラメータの種別と前記データ量と前記画面部品の名前とを対応付けて記憶する第6の情報に基づき,前記新規ワークフローの第1のノードのパラメータの名前に対応する前記パラメータの種別と前記データ量に合致する画面部品の名前を決定し,
前記第2のノードを基準とする前記第1のノードの順序情報と画面部品の配置位置とを記憶する第7の情報,および,前記新規ワークフローにおける前記第2のノードを基準とする前記第1のノードの順序情報に基づき,前記決定した名前の画面部品を前記新規ワークフローのフォームの画面に配置する配置位置を決定し,
前記決定した名前の画面部品を,前記決定した配置位置に配置する
ことを特徴とする情報処理方法。
(付記8)
付記5において,
前記第1のノードの名前と前記第1のノードにおける制御処理の内容に対応するパラメータの名前と前記パラメータの種別と,前記第1のノードが実行された際に前記第1のノードのパラメータを介して実際に入出力された履歴のデータの量とを対応付けて記憶する第8の情報の中に,前記新規ワークフローの第1のノードの名前があるか判定し,
前記名前が第8の情報があると判定した場合,
前記第6の情報と,前記第8の情報に基づき,前記新規ワークフローの第1のノードのパラメータの名前に対応する前記パラメータの種別と前記データ量に合致する画面部品の名前を決定する
ことを特徴する情報処理方法。
(付記9)
情報処理システムの運用手順を複数のノードの接続で表現するワークフローを作成するプログラムであって,
前記情報処理システムの制御処理を実行する第1のノードと,前記制御処理に関連する情報を入力,出力する画面部品を有するフォームが付加される第2のノードとを少なくとも有する前記ワークフローを作成し,
ワークフローのパターンを記憶する第1の情報に基づき,前記作成される新規ワークフローのパターンを検出し,
前記検出された新規ワークフローのパターンと前記新規ワークフローにおける第1のノードの制御処理の内容とに基づき,前記新規ワークフローのフォームの画面に配置する画面部品を決定し,
前記決定した画面部品を前記フォームの画面に配置する
処理をコンピュータに実行させる
ことを特徴とするプログラム。
(付記10)
付記9において,
さらに,前記検出された新規ワークフローのパターンと前記新規ワークフローにおける第1のノードの制御処理の内容とに基づき,前記フォームの画面における前記決定した画面部品の配置位置を決定し,
前記決定した画面部品を前記決定した配置位置に配置する
処理をコンピュータに実行させる
ことを特徴とするプログラム。
(付記11)
付記10において,
前記ワークフローの作成は,前記第2のノードの前後に,それぞれ接続される第1のノードを有する新規ワークフローを作成する
処理をコンピュータに実行させる
ことを特徴とするプログラム。
(付記12)
付記10において,
既に作成された既作成ワークフローにおける,前記第2のノードを基準とする前記第1のノードの順序情報と前記第1のノードの名前とを記憶する第2の情報に基づき,前記新規ワークフローと前記既作成ワークフローとが同じか判定し,
同じと判定した場合,前記既作成ワークフローのフォームの画面に配置した画面部品の名前,配置位置を記憶する第3の情報に基づき,前記新規ワークフローのフォームの画面に,前記同じと判定した前記既作成ワークフローのフォームの画面に配置された画面部品と同じ画面部品を,前記配置された前記画面部品の配置位置と同じ位置に配置する
処理をコンピュータに実行させる
ことを特徴とするプログラム。
(付記13)
付記12おいて,
前記既作成ワークフローと前記新規ワークフローが同じでない場合,前記第1のノードの名前に対応するカテゴリを記憶する第4の情報に基づき,前記既作成ワークフローの第1のノードのカテゴリと,前記新規ワークフローの第1のノードのカテゴリとが同じか判定し,
カテゴリが同じと判定した場合,
前記第1のノードにおける制御処理の内容に対応するパラメータの名前と前記パラメータの種別と前記パラメータを介して入出力されるデータ量とを対応付けて記憶する第5の情報と,前記パラメータの種別と前記データ量と前記画面部品の名前とを対応付けて記憶する第6の情報に基づき,前記新規ワークフローの第1のノードのパラメータの名前に対応する前記パラメータの種別と前記データ量に合致する画面部品の名前を決定し,
前記第3の情報に記憶された,前記カテゴリが同じと判定された前記既作成ワークフローのフォームの画面に配置された画面部品の配置位置に基づき,前記決定した名前の画面部品を前記新規ワークフローのフォームの画面に配置する配置位置を決定し,
前記決定した名前の画面部品を,前記決定した配置位置に配置する
処理をコンピュータに実行させる
ことを特徴とするプログラム。
(付記14)
付記13において,
前記カテゴリが同じと判定しない場合,
前記第5の情報と,前記第6の情報に基づき,前記新規ワークフローの第1のノードのパラメータの名前に対応する前記パラメータの種別と前記データ量に合致する画面部品の名前を決定し,
前記第2のノードを基準とする前記第1のノードの順序情報と画面部品の配置位置とを記憶する第7の情報,および,前記新規ワークフローにおける前記第2のノードを基準とする前記第1のノードの順序情報に基づき,前記決定した名前の画面部品を前記新規ワークフローのフォームの画面に配置する配置位置を決定する
処理をコンピュータに実行させる
ことを特徴とするプログラム。
(付記15)
付記10において,
初めて新規ワークフローを作成するか判定し,初めて新規ワークフローを作成すると判定した場合,
前記第1のノードにおける制御処理の内容に対応するパラメータの名前と前記パラメータの種別と前記パラメータを介して入出力されるデータ量とを対応付けて記憶する第5の情報と,前記パラメータの種別と前記データ量と前記画面部品の名前とを対応付けて記憶する第6の情報に基づき,前記新規ワークフローの第1のノードのパラメータの名前に対応する前記パラメータの種別と前記データ量に合致する画面部品の名前を決定し,
前記第2のノードを基準とする前記第1のノードの順序情報と画面部品の配置位置とを記憶する第7の情報,および,前記新規ワークフローにおける前記第2のノードを基準とする前記第1のノードの順序情報に基づき,前記決定した名前の画面部品を前記新規ワークフローのフォームの画面に配置する配置位置を決定し,
前記決定した名前の画面部品を,前記決定した配置位置に配置する
処理をコンピュータに実行させる
ことを特徴とするプログラム。
(付記16)
付記13において,
前記第1のノードの名前と前記第1のノードにおける制御処理の内容に対応するパラメータの名前と前記パラメータの種別と,前記第1のノードが実行された際に前記第1のノードのパラメータを介して実際に入出力された履歴のデータの量とを対応付けて記憶する第8の情報の中に,前記新規ワークフローの第1のノードの名前があるか判定し,
前記名前が第8の情報があると判定した場合,
前記第6の情報と,前記第8の情報に基づき,前記新規ワークフローの第1のノードのパラメータの名前に対応する前記パラメータの種別と前記データ量に合致する画面部品の名前を決定する,
処理をコンピュータに実行させる
ことを特徴するプログラム。
(付記17)
情報処理システムの運用手順を複数のノードの接続で表現するワークフローで前記情報処理システムの運用業務を自動化する端末装置を有する情報処理システムであって,
前記端末装置は,
ワークフローのパターンを記憶する第1の情報を有し,
前記情報処理システムの制御処理を実行する第1のノードと,前記制御処理に関連する情報を入力,出力する画面部品を有するフォームが付加される第2のノードとを少なくとも有する前記ワークフローを作成し,
前記第1の情報に基づき,前記作成される新規ワークフローのパターンを検出し,
前記検出された新規ワークフローのパターンと前記新規ワークフローにおける第1のノードの制御処理の内容とに基づき,前記新規ワークフローのフォームの画面に配置する画面部品を決定し,
前記決定した画面部品を前記フォームの画面に配置する
ことを特徴とする情報処理システム。
(付記18)
付記17において,
前記端末装置は,
さらに,前記検出された新規ワークフローのパターンと前記新規ワークフローにおける第1のノードの制御処理の内容とに基づき,前記フォームの画面における前記決定した画面部品の配置位置を決定し,
前記決定した画面部品を前記決定した配置位置に配置する
ことを特徴とする情報処理システム。