(57)【要約】  所定のタスクの出力が後続の他のタスクで利用されるような複数のタスクに対する動作手順を生成できる手順生成システムを提供する。手順生成システムは、構成定義の入力を受け付け、構成定義に対する動作手順を生成する手順生成システムであって、構成定義は、複数の状態要素の定義を含み、複数の状態要素には、状態要素の定義内のプロパティの値が状態要素が所定の状態である場合に参照可能であるという制約条件を有する状態要素が含まれ、制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移の条件に制約条件を有する状態要素が所定の状態であることを追加する追加部を含む。
2017126480.tif 000002
【特許請求の範囲】
【請求項１】
構成定義の入力を受け付け、前記構成定義に対する動作手順を生成する手順生成システムであって、
前記構成定義は、複数の状態要素の定義を含み、
前記複数の状態要素には、状態要素の定義内のプロパティの値が前記状態要素が所定の状態である場合に参照可能であるという制約条件を有する状態要素が含まれ、
前記制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移の条件に前記制約条件を有する状態要素が前記所定の状態であることを追加する追加手段を含む
手順生成システム。
【請求項２】
動作手順に対して、制約条件を有する状態要素の所定の状態への状態遷移が実行されることによって生成される前記状態要素の定義内のプロパティの値を前記プロパティと関連付けて保持する動作を補完する補完手段を含む
請求項１記載の手順生成システム。
【請求項３】
補完手段は、動作手順に対して、制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移が実行される時に保持された前記プロパティの値を読み出す動作を補完する
請求項２記載の手順生成システム。
【請求項４】
所定の状態要素の状態遷移の条件に制約条件を有する状態要素が所定の状態であることが追加された構成定義に対する動作手順を生成する生成手段を含む
請求項１から請求項３のうちのいずれか１項に記載の手順生成システム。
【請求項５】
構成定義の入力を受け付け、前記構成定義に対する動作手順を生成する手順生成方法であって、
前記構成定義は、複数の状態要素の定義を含み、
前記複数の状態要素には、状態要素の定義内のプロパティの値が前記状態要素が所定の状態である場合に参照可能であるという制約条件を有する状態要素が含まれ、
前記制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移の条件に前記制約条件を有する状態要素が前記所定の状態であることを追加する
手順生成方法。
【請求項６】
動作手順に対して、制約条件を有する状態要素の所定の状態への状態遷移が実行されることによって生成される前記状態要素の定義内のプロパティの値を前記プロパティと関連付けて保持する動作を補完する
請求項５記載の手順生成方法。
【請求項７】
動作手順に対して、制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移が実行される時に保持された前記プロパティの値を読み出す動作を補完する
請求項６記載の手順生成方法。
【請求項８】
構成定義の入力を受け付け、前記構成定義に対する動作手順を生成するコンピュータにおいて実行される手順生成プログラムを格納した記憶媒体であって、
前記構成定義は、複数の状態要素の定義を含み、
前記複数の状態要素には、状態要素の定義内のプロパティの値が前記状態要素が所定の状態である場合に参照可能であるという制約条件を有する状態要素が含まれ、
前記コンピュータに、
前記制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移の条件に前記制約条件を有する状態要素が前記所定の状態であることを追加する追加処理
を実行させるための手順生成プログラムを格納した記憶媒体。
【請求項９】
コンピュータに、
動作手順に対して、制約条件を有する状態要素の所定の状態への状態遷移が実行されることによって生成される前記状態要素の定義内のプロパティの値を前記プロパティと関連付けて保持する動作を補完する第１補完処理を実行させる
請求項８記載の手順生成プログラムを格納した記憶媒体。
【請求項１０】
コンピュータに、
動作手順に対して、制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移が実行される時に保持された前記プロパティの値を読み出す動作を補完する第２補完処理を実行させる
請求項９記載の手順生成プログラムを格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手順生成システム等に関する。
【背景技術】
【０００２】
大規模で複雑なシステムの構築作業や変更作業を容易にするために、構築自動化ツールが利用されている。構築自動化ツールの製品には、例えばPuppet（登録商標）、Chef（登録商標）、Ansible（登録商標）がある。構築自動化ツールの製品による構築自動化の基本的な方法は、いずれも同じである。【０００３】
すなわち、構築自動化ツールは、まずシステムを構成する構成要素の単位で構築タスクを定義する。次いで、構築自動化ツールは、定義された構築タスクを正しい順序で実行することによって、システム全体の構築作業を自動的に実行する。【０００４】
構築自動化ツールの製品に対するタスクの実行順序の指定方法には様々な方法がある。
しかし、いずれのタスクの実行順序の指定方法においても、利用者にはタスクの実行順序を明示的に指定することが求められる。【０００５】
タスクの実行順序は、作業対象のシステムの現在の状況又は作業後に達成されることが要求されるシステムの状況に依存する可能性がある。よって、タスクの実行順序を正しく指定するために、利用者には、作業対象のシステムに関する深い理解や専門知識が求められる。すなわち、タスクの実行順序の指定作業では、タスクの実行順序設計の難度の高さや作業量の多さ、および難度の高さや作業量の多さに起因する作業コストの高さが問題になる。【０００６】
特許文献１、特許文献２および非特許文献１には、タスクの実行順序の指定作業における上記の問題を解決する手順生成システムが記載されている。特許文献１、特許文献２および非特許文献１に記載されている手順生成システムは、手順生成の要件を汎用的な制約条件として規定し、規定された制約条件を基に構築対象のシステムの現在状態又は要求状態に応じた正しいタスク実行順序を導出する。以下、手順生成システムの概要を述べる。【０００７】
手順生成システムにおいて、作業対象のシステムの構成要素の定義（以下、構成定義と呼ぶ。）は、複数の状態要素で表現される。各状態要素は、状態要素のID、取り得る複数の状態、状態間の状態遷移、およびプロパティを有する。【０００８】
状態遷移は、状態要素の状態を変更するタスクに相当する。また、プロパティは、状態要素に定義されている、状態要素に設定可能な項目である。状態遷移では、状態遷移の実行に要するパラメタ値として、状態要素のプロパティが参照される場合がある。【０００９】
図１６は、状態要素型の定義の一例を示す説明図である。図１６に示す例では、IDがE1の状態要素型が定義されている。図１６に示す定義は、状態要素型E1における様々な状態要素を表現できる。【００１０】
状態要素型の定義の図において、左上の矩形内の文字が状態要素型のIDを表す。また、図１６に示すように、状態要素型E1は、取り得る状態として状態s1と状態s2を有する。状態要素型の定義の図において、楕円が状態を表し、楕円内の文字が状態名を表す。【００１１】
また、図１６に示すように、状態s1と状態s2の間には、状態要素型E1が双方向に遷移可能であることに対応する２つの状態遷移が定義されている。状態要素型の定義の図において、楕円を結ぶ矢印が状態遷移を表す。【００１２】
また、図１６に示すように、状態要素型E1は、プロパティとしてkey1を有する。図１６に示す例では、key1の初期値として、初期値１が定義されている。状態要素型の定義の図において、右上の矩形内の文字がプロパティとプロパティ値を表す。【００１３】
また、図１６に示すように、状態s1から状態s2への状態遷移に相当するタスクは、key1を実行パラメタとして参照している。状態要素型の定義の図において、状態遷移を表す矢印からの二重線の矢印は状態遷移に相当するタスクから実行パラメタへの参照を表し、白丸は参照元の状態遷移を表す。【００１４】
なお、図１６に示すような状態要素型の定義は、例えば図１７に示すように、テキスト形式でも記述される。図１７は、JSON形式で記述された状態要素型の定義の一例を示す説明図である。図１７に示す状態要素型は、図１６に示す状態要素型と同様である。【００１５】
上記の通り構成定義は、複数の状態要素で表現される。各状態要素は、図１６または図１７に示すような状態要素型の定義を用いて、後述のように状態要素のインスタンス（実体）として定義される。また、状態要素間には、必要に応じて制約条件が定義される。制約条件は、特定の状態遷移が実行されるために実現を要する他の状態要素の状態を示す。【００１６】
図１８は、構成定義の一例を示す説明図である。図１８に示す例では、E1型の状態要素であるe1と、E2型の状態要素であるe2の２つの状態要素が定義されている。構成定義の図において、左上の矩形内の文字が状態要素型のIDと状態要素のIDを表す。【００１７】
また、図１８に示すように、状態要素e2の各状態遷移から状態要素e1の状態s2に対して制約条件が指定されている。構成定義の図において、点線の矢印は制約条件を表し、白丸は制約条件が適用される状態遷移を表す。図１８に示す制約条件は、状態要素e2の状態遷移が実行されるためには状態要素e1の状態が状態s2であることが求められることを示す。【００１８】
なお、図１８に示すような構成定義は、例えば図１９に示すように、テキスト形式でも記述される。図１９は、JSON形式で記述された構成定義の一例を示す説明図である。図１９に示す構成要素は、図１８に示す構成要素と同様である。【００１９】
構成定義は、所定のシステムの態様を表す。よって、例えば構成定義に各状態要素の現在状態と要求状態が指定されることによって、システムの変更要求が定義される。手順生成システムは、変更要求の定義に基づいて、実行された場合、制約条件を満たしつつ全ての状態要素の状態を現在状態から要求状態に遷移させるような状態遷移の順序を探索することによって、変更要求に対するシステムの変更手順を生成する。【００２０】
図２０は、変更要求定義の一例を示す説明図である。図２０に示す例では、状態要素e1と状態要素e2は、いずれも状態s1が現在状態に指定されている。また、状態要素e2は、状態s2が要求状態に指定されている。変更要求定義の図において、二重線の楕円は現在状態を表し、黒色の楕円は要求状態を表す。【００２１】
なお、図２０に示すような変更要求定義は、例えば図２１に示すように、テキスト形式でも記述される。図２１は、JSON形式で記述された変更要求定義の一例を示す説明図である。図２１に示す変更要求は、図２０に示す変更要求と同様である。【００２２】
図２０および図２１に示す例では、状態要素e2の現在状態は状態s1であり、要求状態の状態s2と異なる。よって、変更要求に応じるためには状態要素e2の状態s1から状態s2への状態遷移の実行が求められる。【００２３】
しかし、図２０および図２１に示すように、状態要素e2の状態s1から状態s2への状態遷移には、状態要素e1の状態s2に対する制約条件が指定されている。よって、手順生成システムは、最初に状態要素e1の状態を状態s1から状態s2へ遷移させ、次いで状態要素e2の状態を状態s1から状態s2へ遷移させる手順を導出する。【００２４】
図２０および図２１に示す変更要求定義に対して手順生成システムが導出する手順の一例を図２２に示す。図２２は、手順生成システムが生成する変更手順の一例を示す説明図である。【００２５】
図２２に示す各矩形は、図２０および図２１に示す変更要求定義に対して手順生成システムが生成した変更手順を構成する各タスクに対応する。また、例えばe1(s1,s2)は、状態要素e1の状態s1から状態s2への状態遷移を示す。【００２６】
すなわち、図２２に示す変更手順は、最初にe1(s1,s2)のタスクを実行し、次にe2(s1,s2)のタスクを実行する手順に対応する。なお、e1(s1,s2)のタスクの右上の矩形内の文字は、タスクが参照する実行パラメタを表す。【００２７】
さらに、状態要素のプロパティには、特定の値が指定されてもよい。図２３は、プロパティに特定の値が指定されている変更要求定義の一例を示す説明図である。図２３に示す構成定義の例は、仮想マシンvm1と、仮想マシンvm1において動作するミドルウェアmw1の関係を示す。図２３に示すように、vm1は、VM(Virtual Machine)型の状態要素である。また、mw1は、MW(Middleware)型の状態要素である。【００２８】
また、図２３に示す例では、状態fは起動している状態を示し、状態tは起動していない状態を示す。また、ミドルウェアmw1に対する操作は仮想マシンvm1が起動していなければ実行されないため、図２３に示すように、ミドルウェアmw1の状態遷移には仮想マシンvm1の状態tに対する制約条件が指定されている。【００２９】
また、図２３に示すように、状態要素vm1の状態を状態fから状態tに変更するタスク（状態遷移）は、状態要素vm1のプロパティipを参照している。図２３に示す例では、プロパティipの値として"10.0.0.1"が指定されている。【００３０】
なお、図２３に示すようなプロパティに特定の値が指定されている変更要求定義は、例えば図２４に示すように、テキスト形式でも記述される。図２４は、JSON形式で記述されたプロパティに特定の値が指定されている変更要求定義の一例を示す説明図である。図２４に示す変更要求は、図２３に示す変更要求と同様である。【００３１】
図２３および図２４に示すプロパティに特定の値が指定されている変更要求定義に対して手順生成システムが生成する手順の一例を図２５に示す。図２５は、手順生成システムが生成する変更手順の他の一例を示す説明図である。【００３２】
図２５に示す変更手順は、最初に実行パラメタipを参照するvm1(f,t)のタスクを実行し、次にmw1(f,t)のタスクを実行する手順に対応する。参照される実行パラメタipの値は、"10.0.0.1"である。
【先行技術文献】
【特許文献】
【００３３】
【特許文献１】特開２０１５−２１５８８５号公報
【特許文献２】特開２０１５−２１５８８６号公報
【非特許文献】
【００３４】
【非特許文献１】T. Kuroda and A. Gokhale, “Model-based it change managementfor large system definitions with state-related dependencies” in Enterprise Distributed Object Computing Conference (EDOC), 2014 IEEE 18th International, Sept 2014, pp. 170-179.
【発明の概要】
【発明が解決しようとする課題】
【００３５】
図２３および図２４に示す例では、仮想マシンvm1のプロパティipの値が明示的に指定されている。しかし、仮想マシンのIPアドレスは、必ずしも事前の指定が求められるわけではない。また、IPアドレスの設定値が手順実行時にしか得られない場合もある。また、手順実行時に得られる任意の値を設定する手順にすることによって、利用者が明示的にIPアドレスの設定値を定義する手間を省きたい場合もある。【００３６】
利用者が手順を明示的に指定する一般的な構築自動化ツールでは、タスクの出力を変数に記録し、後続の他のタスクが変数を参照する動作が定義されることによって、最初の状態ではタスクが参照する値を未定にしたいという利用者の要求が解決される。【００３７】
図２６は、タスクの出力が利用される変更手順の一例を示す説明図である。図２６に示す変更手順は、最初にip1(f,t)のタスクを実行し、次にvm1(f,t)のタスクを実行する手順に対応する。なお、ip1(f,t)のタスクの右下の矩形内の文字は、ip1(f,t)が出力するプロパティを表す。【００３８】
すなわち、図２６は、vm1(f,t)のタスクが、ip1(f,t)のタスクが実行されることによって出力されるプロパティipの値を実行パラメタとして参照することを示す。ip1(f,t)のタスクが実行されるまでプロパティipの値は未定であるため、図２６にはプロパティipの値が記載されていない。【００３９】
従って、最初の状態ではタスクが参照する値を未定にしたいという利用者の要求に対応でき、対応の結果、図２６に示すような変更手順を生成できる手順生成システムが求められている。変更手順の生成において、タスクが関連するタスクの出力する値を参照できるように、正しい実行順序が指定されることが求められる。【００４０】
また、正しい実行順序の導出に要する制約条件も生成されることが求められる。かつ、利用者が指定する定義の内容は可能な限り簡潔であり、冗長な指定は出来る限り排除される仕組みは維持されることが求められる。特許文献１、特許文献２および非特許文献１には、上記の課題に関する取り組みが記載されていない。【００４１】
そこで、本発明は、所定のタスクの出力が後続の他のタスクで利用されるような複数のタスクに対する動作手順を生成できる手順生成システム等を提供することを目的とする。
【課題を解決するための手段】
【００４２】
本発明による手順生成システムは、構成定義の入力を受け付け、構成定義に対する動作手順を生成する手順生成システムであって、構成定義は、複数の状態要素の定義を含み、複数の状態要素には、状態要素の定義内のプロパティの値が状態要素が所定の状態である場合に参照可能であるという制約条件を有する状態要素が含まれ、制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移の条件に制約条件を有する状態要素が所定の状態であることを追加する追加部を含む。【００４３】
本発明による手順生成方法は、構成定義の入力を受け付け、構成定義に対する動作手順を生成する手順生成方法であって、構成定義は、複数の状態要素の定義を含み、複数の状態要素には、状態要素の定義内のプロパティの値が状態要素が所定の状態である場合に参照可能であるという制約条件を有する状態要素が含まれ、制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移の条件に制約条件を有する状態要素が所定の状態であることを追加する。【００４４】
本発明による記憶媒体に格納された手順生成プログラムは、構成定義の入力を受け付け、構成定義に対する動作手順を生成するコンピュータにおいて実行される手順生成プログラムであって、構成定義は、複数の状態要素の定義を含み、複数の状態要素には、状態要素の定義内のプロパティの値が、状態要素が所定の状態である場合に参照可能であるという制約条件を有する状態要素が含まれ、コンピュータに、制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移の条件に制約条件を有する状態要素が所定の状態であることを追加する追加処理を実行させる。
【発明の効果】
【００４５】
本発明によれば、所定のタスクの出力が後続の他のタスクで利用されるような複数のタスクに対する動作手順を生成できる。
【図面の簡単な説明】
【００４６】
【図１】本発明による手順生成システム１００の第１の実施形態の構成例を示すブロック図である。
【図２】状態プロパティを有する状態要素型の定義の一例を示す説明図である。
【図３】JSON形式で記述された状態プロパティを有する状態要素型の定義の一例を示す説明図である。
【図４】他の状態要素の状態プロパティを参照する状態要素を含む構成定義の一例を示す説明図である。
【図５】JSON形式で記述された他の状態要素の状態プロパティを参照する状態要素を含む構成定義の一例を示す説明図である。
【図６】制約条件が補完された他の状態要素の状態プロパティを参照する状態要素を含む構成定義の一例を示す説明図である。
【図７】本実施形態の手順生成システム１００が生成する変更手順の一例を示す説明図である。
【図８】自身の状態要素型の状態プロパティを参照するプロパティを有する状態要素型の定義の一例を示す説明図である。
【図９】JSON形式で記述された自身の状態要素型の状態プロパティを参照するプロパティを有する状態要素型の定義の一例を示す説明図である。
【図１０】制約条件が補完された自身の状態要素の状態プロパティを参照するプロパティを有する状態要素を含む構成定義の一例を示す説明図である。
【図１１】本実施形態の手順生成システム１００が生成する変更手順の他の一例を示す説明図である。
【図１２】制約条件が削除された自身の状態要素の状態プロパティを参照するプロパティを有する状態要素を含む構成定義の一例を示す説明図である。
【図１３】本実施形態の手順生成システム１００が生成する変更手順の他の一例を示す説明図である。
【図１４】本実施形態の手順生成システム１００による生成処理の動作を示すフローチャートである。
【図１５】本発明による手順生成システムの概要を示すブロック図である。
【図１６】状態要素型の定義の一例を示す説明図である。
【図１７】JSON形式で記述された状態要素型の定義の一例を示す説明図である。
【図１８】構成定義の一例を示す説明図である。
【図１９】JSON形式で記述された構成定義の一例を示す説明図である。
【図２０】変更要求定義の一例を示す説明図である。
【図２１】JSON形式で記述された変更要求定義の一例を示す説明図である。
【図２２】手順生成システムが生成する変更手順の一例を示す説明図である。
【図２３】プロパティに特定の値が指定されている変更要求定義の一例を示す説明図である。
【図２４】JSON形式で記述されたプロパティに特定の値が指定されている変更要求定義の一例を示す説明図である。
【図２５】手順生成システムが生成する変更手順の他の一例を示す説明図である。
【図２６】タスクの出力が利用される変更手順の一例を示す説明図である。
【発明を実施するための形態】
【００４７】
実施形態１．
［構成の説明］
以下、本発明の実施形態を、図面を参照して説明する。図１は、本発明による手順生成システム１００の第１の実施形態の構成例を示すブロック図である。図１に示すように、本実施形態の手順生成システム１００は、構成定義補完部１０１と、手順生成部１０２と、手順補完部１０３とを含む。
【００４８】
構成定義補完部１０１は、利用者が指定した構成定義を入力とし、入力された構成定義に求められる制約条件を補完する機能を有する。図１に示すように、構成定義補完部１０１は、手順生成システム１００の外部の構成定義入力部２０１と通信網等を介して通信可能に接続されている。なお、手順生成システム１００は、構成定義入力部２０１を含んでいてもよい。
【００４９】
利用者が指定した構成定義は、構成定義入力部２０１に入力される。構成定義入力部２０１は、入力された構成定義を構成定義補完部１０１に送信する。構成定義補完部１０１は、受信した構成定義に対して制約条件を補完する。次いで、構成定義補完部１０１は、制約条件が補完された構成定義を手順生成部１０２に入力する。
【００５０】
また、構成定義補完部１０１は、制約条件を補完する前に、受信した構成定義に含まれる各状態要素のプロパティの値を解決する。すなわち、構成定義補完部１０１は、各状態要素のプロパティの値の実体を明らかにする。
【００５１】
例えば、構成定義補完部１０１は、各状態要素のプロパティの値がリテラル、状態プロパティ、または参照先の値のいずれであるかを判定する。リテラルは、具体的な値であることを意味する。
【００５２】
状態要素のプロパティの値が参照先の値であると判定された場合、構成定義補完部１０１は、さらに参照先の値の実体を明らかにする。参照先の値がプロパティであれば、構成定義補完部１０１は、さらにプロパティの値を調べる。調べたプロパティの値がさらに参照先の値である場合、構成定義補完部１０１は、参照先の値を順次探索する。
【００５３】
状態要素のプロパティの値、または探索された値がリテラルまたは状態プロパティであると判定された場合、構成定義補完部１０１は、判定された値をプロパティの真の値に設定し、探索を終了する。
【００５４】
手順生成部１０２は、構成定義補完部１０１が出力した制約条件が補完された構成定義を入力とし、入力された構成定義を基に動作手順を生成する機能を有する。手順生成部１０２は、生成された動作手順を手順補完部１０３に入力する。
【００５５】
なお、図１に示すように、手順生成部１０２は、手順生成システム１００の外部の手順出力部２０２と通信網等を介して通信可能に接続されている。なお、手順生成システム１００は、手順出力部２０２を含んでいてもよい。
【００５６】
手順補完部１０３は、手順生成部１０２が出力した動作手順を入力とし、入力された動作手順に値が授受される操作を補完する機能を有する。手順補完部１０３は、操作が補完された動作手順を手順生成部１０２に入力する。
【００５７】
次いで、手順生成部１０２は、手順補完部１０３が出力した操作が補完された動作手順を入力とし、入力された動作手順を手順出力部２０２に送信する。手順出力部２０２は、受信した動作手順を出力する。
【００５８】
本実施形態の状態要素型の定義は、図１６および図１７に示す状態要素型の定義と異なり、状態プロパティを有する。状態プロパティは、特定の状態でのみ値を有するプロパティである。状態プロパティが値を有する状態は、状態プロパティを有する状態要素型の定義内で定義される。
【００５９】
図２は、状態プロパティを有する状態要素型の定義の一例を示す説明図である。また、図３は、JSON形式で記述された状態プロパティを有する状態要素型の定義の一例を示す説明図である。図３に示す状態要素型は、図２に示す状態要素型と同様である。
【００６０】
図２および図３に示す例では、IPの状態要素型が定義されている。図３に示すように、状態要素型IPは、状態プロパティとしてipを有する。図２に示す右下の矩形は、状態要素型IPがipを状態プロパティとして有することに対応する。
【００６１】
また、図３には、状態fから状態tへの状態遷移において、ipAddressという文字列で識別されるタスクの出力値が状態要素型IPの状態プロパティであるipに代入されることが指定されている。よって、ipは、状態tでのみ値を有する状態プロパティであることが認識される。図２に示す右下の矩形から状態tへの二重線の矢印は、状態プロパティipが状態tでのみ値を有することに対応する。
【００６２】
本実施形態の構成定義において、状態要素のプロパティの値は、参照先の他の状態要素のプロパティ、または状態プロパティとして定義されてもよい。以下、他の状態要素の状態プロパティを参照する状態要素を含む構成定義の例を示す。
【００６３】
図４は、他の状態要素の状態プロパティを参照する状態要素を含む構成定義の一例を示す説明図である。また、図５は、JSON形式で記述された他の状態要素の状態プロパティを参照する状態要素を含む構成定義の一例を示す説明図である。図５に示す構成要素は、図４に示す構成要素と同様である。
【００６４】
図４および図５に示す例では、状態要素vm1がプロパティipの値として、状態要素ip1の状態プロパティipを参照している。なお、図５に示す"${ip1.ip}"という文字列は、状態要素ip1のプロパティまたは状態プロパティであるipを表す。
【００６５】
図４および図５に示すように、状態要素ip1の状態プロパティipは、状態要素ip1が状態tである時に値を有する状態プロパティである。よって、値が正しく参照されるように、状態要素ip1の状態プロパティipを参照する状態遷移である状態要素vm1の状態fから状態tへの状態遷移に、状態要素ip1の状態tに対する制約条件が指定されることが求められる。
【００６６】
図６は、制約条件が補完された他の状態要素の状態プロパティを参照する状態要素を含む構成定義の一例を示す説明図である。図６に示すように、図４に示す構成定義と異なり、状態要素vm1の状態fから状態tへの状態遷移に状態要素ip1の状態tに対する制約条件が指定されている。制約条件は、構成定義補完部１０１により指定される。
【００６７】
図７は、本実施形態の手順生成システム１００が生成する変更手順の一例を示す説明図である。図７に示す変更手順は、手順生成システム１００が図６に示す制約条件が補完された構成定義を基に生成した変更手順である。
【００６８】
図７におけるタスク領域に示すように、手順生成部１０２は、ip1(f,t)のタスクを実行した後にvm1(f,t)のタスクを実行する変更手順を生成する。手順生成部１０２によるタスク領域に示す変更手順の生成処理は、一般的な手順生成システムによる生成処理と同様である。
【００６９】
また、図７に示すように、本実施形態の手順生成システム１００は、生成される変更手順にタスク領域だけでなく変数領域も加える。変数領域を加える方法は、タスク間での値の授受を実現する方法の一例である。
【００７０】
具体的には、手順補完部１０３は、タスクが実行されることによって出力された値を、状態要素ごとに確保された変数領域内の対応するプロパティの変数に保存する操作を、生成された変更手順に補完する。また、手順補完部１０３は、プロパティを参照するタスクが実行される時に参照されるプロパティに対応する変数から値を読み出す操作を、生成された変更手順に補完する。
【００７１】
図７に示す例では、ip1(f,t)のタスクが実行されることによって出力された状態プロパティipの値が、状態要素ip1用に確保された変数領域内の対応する状態プロパティipの変数に保存される。図７に示すip1(f,t)のタスクから右に伸びる矢印が、ip1(f,t)のタスクが実行されることによって出力された状態プロパティipの値を状態プロパティipの変数に保存する操作に対応する。
【００７２】
また、図７に示す例では、状態プロパティipを参照するvm1(f,t)のタスクが実行される時に状態要素ip1用に確保された変数領域内の状態プロパティipの変数から値が読み出される。図７に示す状態プロパティipの変数から左に伸びる矢印が、状態プロパティipを参照するvm1(f,t)のタスクが実行される時に状態プロパティipの変数から値を読み出す操作に対応する。
【００７３】
なお、本実施形態の手順生成システム１００は、例えばタスクの参照先のプロパティが状態プロパティではない通常のプロパティである場合であっても、プロパティの値の出所が状態プロパティであれば、手順を生成する際に状態プロパティを参照するタスクとして扱う。
【００７４】
よって、手順生成システム１００は、利用者が値を明示的に指定しなかった場合のみタスク実行時の出力値が利用される変更手順を適切に生成できる。生成された変更手順では、利用者が値を明示的に指定した場合には指定された値が利用される。
【００７５】
すなわち、手順生成システム１００が生成した変更手順の使用中に値が明示的に指定された場合であっても、無駄な制約条件に起因するタスクの待機は発生しない。上記の変更手順の具体的な例を以下に示す。
【００７６】
図８は、自身の状態要素型の状態プロパティを参照するプロパティを有する状態要素型の定義の一例を示す説明図である。また、図９は、JSON形式で記述された自身の状態要素型の状態プロパティを参照するプロパティを有する状態要素型の定義の一例を示す説明図である。図９に示す状態要素型は、図８に示す状態要素型と同様である。
【００７７】
図８および図９に示す例では、VMの状態要素型が定義されている。図８および図９に示す例において、状態要素型VMのプロパティipは、初期値として状態要素型VMの状態プロパティであるgeneratedIpを参照している。状態プロパティgeneratedIpは、状態要素型VMが状態tである時に値を有する状態プロパティである。
【００７８】
図８に示す右上の矩形から右下の矩形への矢印が、状態要素型VMのプロパティipが初期値として状態プロパティgeneratedIpを参照することに対応する。また、図９に示す"${generatedIp}"の文字列が、状態要素型のプロパティによる自身の状態要素型のプロパティまたは自身の状態要素型の状態プロパティの参照を表す。
【００７９】
図１０は、制約条件が補完された自身の状態要素の状態プロパティを参照するプロパティを有する状態要素を含む構成定義の一例を示す説明図である。図１０に示す構成定義の例では、図８に示す状態要素型VMの定義が用いられている。
【００８０】
図１０に示す構成定義には、状態要素型がVMである状態要素vm1および状態要素vm2が含まれている。また、状態要素vm1に対応する仮想マシンにおいて稼働するミドルウェアとして、状態要素型がDB(Database)である状態要素db1が含まれている。また、状態要素vm2に対応する仮想マシンにおいて稼働するサーバとして、状態要素型がAPS(Application Server)である状態要素aps1が含まれている。
【００８１】
図１０に示す例では、状態要素vm1の状態fから状態tへの状態遷移は、状態要素vm1のプロパティipを参照している。また、状態要素vm2の状態fから状態tへの状態遷移は、状態要素vm2のプロパティipを参照している。
【００８２】
また、図１０に示す例では、状態要素db1の状態fから状態tへの状態遷移は、状態要素db1のプロパティipを参照している。また、状態要素db1のプロパティipは、状態要素vm1のプロパティipを参照している。また、状態要素db1は状態要素vm1に対応する仮想マシンにおいて稼働するため、状態要素db1の状態fから状態tへの状態遷移には、状態要素vm1の状態tに対する制約条件が指定されている。
【００８３】
また、図１０に示す例では、状態要素aps1の状態fから状態tへの状態遷移は、状態要素aps1のプロパティDbIpおよびプロパティipを参照している。また、状態要素aps1のプロパティipは、状態要素vm2のプロパティipを参照している。また、状態要素aps1は状態要素vm2に対応する仮想マシンにおいて稼働するため、状態要素aps1の状態fから状態tへの状態遷移には、状態要素vm2の状態tに対する制約条件が指定されている。
【００８４】
また、状態要素aps1は、状態要素db1と連携して稼働するため、稼働の際に状態要素db1が稼働する仮想マシンに対応する状態要素vm1のプロパティipの値を要する。よって、図１０に示すように、状態要素aps1のプロパティDbIpは、状態要素vm1のプロパティipを参照している。
【００８５】
さらに、図１０に示す例では、プロパティDbIpの参照先である状態要素vm1のプロパティipは、状態要素vm1の状態プロパティgeneratedIpを参照している。よって、図１０に示すように、プロパティDbIpを参照する状態要素aps1の状態fから状態tへの状態遷移に、状態要素vm1の状態tに対する制約条件が指定されている。指定された制約条件が、手順生成システム１００の構成定義補完部１０１が補完した制約条件である。
【００８６】
図１１は、本実施形態の手順生成システム１００が生成する変更手順の他の一例を示す説明図である。図１１に示す変更手順は、手順生成システム１００が図１０に示す制約条件が補完された構成定義を基に生成した変更手順である。
【００８７】
図１１におけるタスク領域に示すように、手順生成部１０２は、vm1(f,t)のタスクを実行した後にdb1(f,t)のタスクを実行する手順と、vm2(f,t)のタスクを実行した後にaps1(f,t)のタスクを実行する手順とを含む変更手順を生成する。
【００８８】
次いで、手順生成部１０２は、状態要素vm1の状態プロパティgeneratedIpの値が正しく授受されるように、vm1(f,t)のタスクが実行された後にaps1(f,t)のタスクが実行されるという制約を、生成された変更手順に加える。具体的には、手順生成部１０２は、図１１に示すように、vm1(f,t)のタスクからaps1(f,t)のタスクに向かう矢印を追加する。
【００８９】
次いで、手順補完部１０３は、vm1(f,t)のタスクが実行されることによって出力された状態プロパティgeneratedIpの値を、状態要素vm1用に確保された変数領域内の対応する状態プロパティgeneratedIpの変数に保存する操作を補完する。また、手順補完部１０３は、状態プロパティgeneratedIpを参照するdb1(f,t)のタスクおよびaps1(f,t)のタスクの実行時に状態要素vm1用に確保された変数領域内の状態プロパティgeneratedIpの変数から値を読み出す操作を補完する。
【００９０】
同様に、手順補完部１０３は、vm2(f,t)のタスクが実行されることによって出力された状態プロパティgeneratedIpの値を、状態要素vm2用に確保された変数領域内の対応する状態プロパティgeneratedIpの変数に保存する操作を補完する。また、手順補完部１０３は、状態プロパティgeneratedIpを参照するaps1(f,t)のタスクの実行時に状態要素vm2用に確保された変数領域内の状態プロパティgeneratedIpの変数から値を読み出す操作を補完する。
【００９１】
以上の一連の動作が、本実施形態の手順生成システム１００が図１０に示す制約条件が補完された構成定義を基に変更手順を生成する処理である。
【００９２】
図１２は、制約条件が削除された自身の状態要素の状態プロパティを参照するプロパティを有する状態要素を含む構成定義の一例を示す説明図である。
【００９３】
図１２に示す構成定義の例は、図１０に示す構成定義の例における状態要素vm1のプロパティipが値"10.0.0.1"で上書きされるように利用者が指定した場合の例である。上書きされた状態要素vm1のプロパティipを除く図１２に示す構成定義は、図１０に示す構成定義と同様である。
【００９４】
図１２に示すように、状態要素aps1のプロパティDbIpは、図１０に示す例と同様に状態要素vm1のプロパティipを参照したままである。しかし、本例では、プロパティipが値"10.0.0.1"で上書きされているため、プロパティipの値の出所は、図１０に示す例と異なり、状態プロパティgeneratedIpではない。
【００９５】
よって、図１２に示すように、状態要素vm1のプロパティipは値"10.0.0.1"を有し、状態要素vm1の状態プロパティgeneratedIpを既に参照していない。すなわち、状態要素vm1が状態tでなくてもaps1(f,t)のタスクは実行可能であるため、図１０に示す補完された制約条件は、図１２に示すように状態要素vm1のプロパティipの値の指定と共に削除されている。
【００９６】
図１３は、本実施形態の手順生成システム１００が生成する変更手順の他の一例を示す説明図である。図１３に示す変更手順は、手順生成システム１００が図１２に示す制約条件が削除された構成定義を基に生成した変更手順である。
【００９７】
図１３に示す変更手順において、図１１に示す変更手順に記載されていたdb1(f,t)のタスクおよびaps1(f,t)のタスクの実行時に状態要素vm1用に確保された変数領域内の状態プロパティgeneratedIpの変数から値を読み出す操作は記載されていない。
【００９８】
その理由は、db1(f,t)のタスクが参照するプロパティipの値およびaps1(f,t)のタスクが参照するプロパティDbIpの値が共に"10.0.0.1"に指定されたためである。すなわち、図１３に示す例では、db1(f,t)のタスクおよびaps1(f,t)のタスクと状態要素vm1用に確保された変数領域の間で値が授受されないことが正しく反映されている。
【００９９】
また、図１３に示す変更手順において、図１１に示す変更手順に記載されていたvm1(f,t)のタスクが実行された後にaps1(f,t)のタスクが実行されるように加えられた制約に対応する矢印も削除されている。図１３に示す変更手順では、vm1(f,t)のタスクとaps1(f,t)のタスクの間に順序関係は指定されていない。
【０１００】
すなわち、図１３に示す変更手順に従う場合、利用者は、vm1(f,t)のタスクを実行した後にdb1(f,t)のタスクを実行する手順と、vm2(f,t)のタスクを実行した後にaps1(f,t)のタスクを実行する手順を並列に実行できる。並列に実行する場合、利用者は、図１１に示す変更手順に従う場合に比べて、タスク全体を迅速に完了させることができる。
【０１０１】
以上のように、本実施形態の手順生成システム１００が生成した変更手順を利用する利用者は、プロパティに値が指定された場合等であっても、指定の都度制約条件の定義を調整することなく変更手順を利用できる。
【０１０２】
［動作の説明］
以下、本実施形態の手順生成システム１００の動作を図１４を参照して説明する。図１４は、本実施形態の手順生成システム１００による生成処理の動作を示すフローチャートである。
【０１０３】
手順生成システム１００に、外部から構成定義が入力される（ステップＳ１０１）。具体的には、構成定義補完部１０１が、構成定義入力部２０１から構成定義を受信する。次いで、構成定義補完部１０１は、受信した構成定義に含まれる各状態要素のプロパティの値を解決する。
【０１０４】
次いで、構成定義補完部１０１は、各状態要素の全ての状態遷移を確認する。状態遷移が参照するプロパティの値の出所が状態プロパティである場合、構成定義補完部１０１は、状態プロパティが値を保持する状態要素の状態に対する制約条件を状態遷移に補完する（ステップＳ１０２）。
【０１０５】
次いで、構成定義補完部１０１は、制約条件が補完された構成定義を手順生成部１０２に入力する。手順生成部１０２は、構成定義補完部１０１から入力された構成定義を基に動作手順を生成する（ステップＳ１０３）。動作手順を生成した後、手順生成部１０２は、生成された動作手順を手順補完部１０３に入力する。
【０１０６】
次いで、手順補完部１０３は、手順生成部１０２から入力された動作手順に対して、生成値を授受する処理を補完する（ステップＳ１０４）。
【０１０７】
具体的には、タスクに対応する状態遷移が実行時に状態プロパティの値を出力するように定義されている場合、手順補完部１０３は、定義に基づいてタスクの出力から指定された値を抽出し、状態要素ごとに確保されている変数領域に格納する動作を、生成された動作手順に補完する。
【０１０８】
また、タスクに対応する状態遷移が実行時に状態プロパティを参照する場合、手順補完部１０３は、参照される状態プロパティを有する状態要素の変数領域から対応する値を取得する動作を、生成された動作手順に補完する。
【０１０９】
手順補完部１０３は、生成値を授受する処理が補完された動作手順を手順生成部１０２に入力する。次いで、手順生成部１０２は、手順補完部１０３から入力された動作手順を手順出力部２０２に送信する。すなわち、手順生成システム１００は、生成された動作手順を外部に出力する（ステップＳ１０５）。出力した後、手順生成システム１００は、生成処理を終了する。
【０１１０】
［効果の説明］
本実施形態の手順生成システムは、所定のタスクの出力が後続の他のタスクで利用されるような複数のタスクに対する動作手順を生成できる。その理由は、構成定義補完部が状態遷移によるプロパティの参照の定義に応じて、求められる制約条件を構成定義に補完するためである。
【０１１１】
よって、利用者は、状態要素の集合である構成定義における状態遷移によるプロパティの参照の定義のみを簡潔に指定することによって、所定のタスクの出力が後続の他のタスクで利用されるような複数のタスクに対する動作手順を正しく生成できる。構成定義補完部が求められる制約条件を補完するため、本実施形態の手順生成システムを使用した場合であっても、利用者にとっての構成定義の指定作業の容易さは維持されたままである。
【０１１２】
また、本実施形態の手順補完部は、生成された動作手順に対して生成値を授受する処理を補完できる。よって、手順生成システムは、タスク実行時に生成される値がプロパティとして利用される動作手順を生成できる。
【０１１３】
なお、本実施形態の手順生成システム１００は、例えば、記憶媒体に格納されているプログラムに従って処理を実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によって実現される。すなわち構成定義補完部１０１、手順生成部１０２、および手順補完部１０３は、例えば、プログラム制御に従って処理を実行するＣＰＵによって実現される。
【０１１４】
また、本実施形態の手順生成システム１００における各部は、ハードウェア回路によって実現されてもよい。
【０１１５】
次に、本発明の概要を説明する。図１５は、本発明による手順生成システムの概要を示すブロック図である。本発明による手順生成システム１０は、構成定義の入力を受け付け、構成定義に対する動作手順を生成する手順生成システムであって、構成定義は、複数の状態要素の定義を含み、複数の状態要素には、状態要素の定義内のプロパティの値が状態要素が所定の状態である場合に参照可能であるという制約条件を有する状態要素が含まれ、制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移の条件に制約条件を有する状態要素が所定の状態であることを追加する追加部１１（例えば、構成定義補完部１０１）を含む。
【０１１６】
そのような構成により、手順生成システムは、所定のタスクの出力が後続の他のタスクで利用されるような複数のタスクに対する動作手順を生成できる。
【０１１７】
また、手順生成システム１０は、動作手順に対して、制約条件を有する状態要素の所定の状態への状態遷移が実行されることによって生成される状態要素の定義内のプロパティの値をプロパティと関連付けて保持する動作を補完する補完部（例えば、手順補完部１０３）を含んでもよい。
【０１１８】
そのような構成により、手順生成システムは、状態遷移が実行されることによって出力される状態プロパティの値を、状態要素ごとに確保された変数領域内の対応する状態プロパティの変数に保存する処理を追加できる。
【０１１９】
また、補完部は、動作手順に対して、制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移が実行される時に保持されたプロパティの値を読み出す動作を補完してもよい。
【０１２０】
そのような構成により、手順生成システムは、状態プロパティを参照する状態遷移が実行される前に状態プロパティの変数から値を読み出す処理を追加できる。
【０１２１】
また、手順生成システム１０は、所定の状態要素の状態遷移の条件に制約条件を有する状態要素が所定の状態であることが追加された構成定義に対する動作手順を生成する生成部（例えば、手順生成部１０２）を含んでもよい。
【０１２２】
そのような構成により、手順生成システムは、条件が追加された状態遷移を含む構成定義に対する動作手順を生成できる。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、２０１６年１月１８日に出願された日本出願特願２０１６−００６９０４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１２３】
１０、１００  手順生成システム
１１  追加部
１０１  構成定義補完部
１０２  手順生成部
１０３  手順補完部
２０１  構成定義入力部
２０２  手順出力部
【図１】
2017126480.tif 000003
【図２】
2017126480.tif 000004
【図３】
2017126480.tif 000005
【図４】
2017126480.tif 000006
【図５】
2017126480.tif 000007
【図６】
2017126480.tif 000008
【図７】
2017126480.tif 000009
【図８】
2017126480.tif 000010
【図９】
2017126480.tif 000011
【図１０】
2017126480.tif 000012
【図１１】
2017126480.tif 000013
【図１２】
2017126480.tif 000014
【図１３】
2017126480.tif 000015
【図１４】
2017126480.tif 000016
【図１５】
2017126480.tif 000017
【図１６】
2017126480.tif 000018
【図１７】
2017126480.tif 000019
【図１８】
2017126480.tif 000020
【図１９】
2017126480.tif 000021
【図２０】
2017126480.tif 000022
【図２１】
2017126480.tif 000023
【図２２】
2017126480.tif 000024
【図２３】
2017126480.tif 000025
【図２４】
2017126480.tif 000026
【図２５】
2017126480.tif 000027
【図２６】
2017126480.tif 000028
【手続補正書】
【提出日】平成30年7月4日(2018.7.4)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
なお、図１８に示すような構成定義は、例えば図１９に示すように、テキスト形式でも記述される。図１９は、JSON形式で記述された構成定義の一例を示す説明図である。図１９に示す構成定義は、図１８に示す構成定義と同様である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
本発明による手順生成プログラムは、構成定義の入力を受け付け、構成定義に対する動作手順を生成するコンピュータにおいて実行される手順生成プログラムであって、構成定義は、複数の状態要素の定義を含み、複数の状態要素には、状態要素の定義内のプロパティの値が、状態要素が所定の状態である場合に参照可能であるという制約条件を有する状態要素が含まれ、コンピュータに、制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移の条件に制約条件を有する状態要素が所定の状態であることを追加する追加処理を実行させる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
図４は、他の状態要素の状態プロパティを参照する状態要素を含む構成定義の一例を示す説明図である。また、図５は、JSON形式で記述された他の状態要素の状態プロパティを参照する状態要素を含む構成定義の一例を示す説明図である。図５に示す構成定義は、図４に示す構成定義と同様である。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項８
【補正方法】変更
【補正の内容】
【請求項８】
構成定義の入力を受け付け、前記構成定義に対する動作手順を生成するコンピュータにおいて実行される手順生成プログラムであって、
前記構成定義は、複数の状態要素の定義を含み、
前記複数の状態要素には、状態要素の定義内のプロパティの値が前記状態要素が所定の状態である場合に参照可能であるという制約条件を有する状態要素が含まれ、
前記コンピュータに、
前記制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移の条件に前記制約条件を有する状態要素が前記所定の状態であることを追加する追加処理
を実行させるための手順生成プログラム。
【手続補正６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
コンピュータに、
動作手順に対して、制約条件を有する状態要素の所定の状態への状態遷移が実行されることによって生成される前記状態要素の定義内のプロパティの値を前記プロパティと関連付けて保持する動作を補完する第１補完処理を実行させる
請求項８記載の手順生成プログラム。
【手続補正７】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
コンピュータに、
動作手順に対して、制約条件を有する状態要素の定義内のプロパティが参照される所定の状態要素の状態遷移が実行される時に保持された前記プロパティの値を読み出す動作を補完する第２補完処理を実行させる
請求項９記載の手順生成プログラム。
【国際調査報告】
2017126480.tif 000029
2017126480.tif 000030
2017126480.tif 000031