(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-08
(45)【発行日】2023-08-17
(54)【発明の名称】設定装置、設定方法、及びプログラム
(51)【国際特許分類】
G06F 8/60 20180101AFI20230809BHJP
G06F 8/75 20180101ALI20230809BHJP
【FI】
G06F8/60
G06F8/75
(21)【出願番号】P 2020044321
(22)【出願日】2020-03-13
【審査請求日】2022-08-12
(73)【特許権者】
【識別番号】399035766
【氏名又は名称】エヌ・ティ・ティ・コミュニケーションズ株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】清水 倫人
(72)【発明者】
【氏名】中井 悠人
(72)【発明者】
【氏名】昔農 凜太朗
(72)【発明者】
【氏名】▲高▼橋 春樹
(72)【発明者】
【氏名】牧志 純
【審査官】山本 俊介
(56)【参考文献】
【文献】国際公開第2017/208431(WO,A1)
【文献】特表2013-507690(JP,A)
【文献】特表2010-539599(JP,A)
【文献】特開平5-158675(JP,A)
【文献】特表2008-524716(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/77
(57)【特許請求の範囲】
【請求項1】
対象アプリケーションの構成要素に基づいて作成された1以上の単位情報を用いて、前記対象アプリケーションをアプリケーション実行装置において動作させるために実行が必要な1以上のタスクの実行手順を記述したタスク実行手順情報と、前記対象アプリケーションの構成設定情報を生成する変換部と、
前記タスク実行手順情報に基づいて、前記1以上のタスクを実行する実行部と
を備える設定装置。
【請求項2】
前記1以上の単位情報における各単位情報は、パラメータのブロックと、構成情報のブロックと、1以上のタスクを示すブロックと、を有する
請求項1に記載の設定装置。
【請求項3】
前記構成情報のブロックは、1以上の構成情報を識別するための識別情報を含み、
前記変換部は、前記構成設定情報の生成において、複数の単位情報間で識別情報が同じ構成情報を合成する
請求項2に記載の設定装置。
【請求項4】
前記1以上のタスクを示すブロックは、1以上のタスクを識別するための識別情報を含み、
前記変換部は、前記タスク実行手順情報の生成において、複数の単位情報間で識別情報が同じ1以上のタスクを合成する
請求項2又は3に記載の設定装置。
【請求項5】
前記変換部は、複数の単位情報間で競合が発生した場合に、エラーを出力する
請求項1ないし4のうちいずれか1項に記載の設定装置。
【請求項6】
前記変換部は、前記タスク実行手順情報の中の1つのタスクとして、前記構成設定情報を生成するためのタスクを生成し、前記実行部が当該タスクを実行することにより、前記変換部は、前記構成設定情報を生成する
請求項1ないし5のうちいずれか1項に記載の設定装置。
【請求項7】
設定装置が実行する設定方法であって、
対象アプリケーションの構成要素に基づいて作成された1以上の単位情報を用いて、前記対象アプリケーションをアプリケーション実行装置において動作させるために実行が必要な1以上のタスクの実行手順を記述したタスク実行手順情報と、前記対象アプリケーションの構成設定情報を生成する変換ステップと、
前記タスク実行手順情報に基づいて、前記1以上のタスクを実行する実行ステップと
を備える設定方法。
【請求項8】
コンピュータを、請求項1ないし6のうちいずれか1項に記載の設定装置における各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、開発されたアプリケーションをアプリケーション実行装置において適切に動作させるための技術に関連するものである。
【背景技術】
【0002】
アプリケーションの導入においては、一般に、開発環境でソフトウェア(コード)を作成し、テスト環境でテストを行って、本番環境(商用環境と称してもよい)でソフトウェアのインストールや設定を行うことで、ユーザに対してサービスを提供するアプリケーションが実現される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、様々なクラウドサービスを利用して開発・構築されたアプリケーションであるクラウドネイティブのアプリケーションが普及してきている。
【0005】
このようなクラウドネイティブのアプリケーションでは、開発されたアプリケーションを本番環境で適切に動作させるために、ソフトウェアのインストール等の他、クラウドやコンテナの設定等が必要となる。そのため、開発されたアプリケーションを本番環境で適切に動作させるために作成するワークフロー定義情報(作業手順)及び構成設定情報が複雑になり、その作成に大きな手間がかかるとともに、その管理も煩雑になる。なお、このような課題は、クラウドネイティブのアプリケーションに限らずに発生し得る課題である。
【0006】
本発明は上記の点に鑑みてなされたものであり、アプリケーションをアプリケーション実行装置において動作させるために使用するワークフロー定義情報及び構成設定情報を効率的に作成することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
開示の技術によれば、対象アプリケーションの構成要素に基づいて作成された1以上の単位情報を用いて、前記対象アプリケーションをアプリケーション実行装置において動作させるために実行が必要な1以上のタスクの実行手順を記述したタスク実行手順情報と、前記対象アプリケーションの構成設定情報を生成する変換部と、
前記タスク実行手順情報に基づいて、前記1以上のタスクを実行する実行部と
を備える設定装置が提供される。
【発明の効果】
【0008】
開示の技術によれば、アプリケーションをアプリケーション実行装置において動作させるために使用するワークフロー定義情報及び構成設定情報を効率的に作成することを可能とする技術が提供される。
【図面の簡単な説明】
【0009】
【
図1】本発明の実施の形態におけるシステムの全体構成図である。
【
図4】設定装置の動作を説明するためのフローチャートである。
【
図7】設定装置の動作を説明するためのフローチャートである。
【
図10】ワークフロー定義情報の生成例を説明するための図である。
【
図11】ワークフロー定義情報の生成例を説明するための図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【0011】
以下の説明において、アプリケーションとは、あるサービスを提供するためのソフトウェアの集合であるものとする。ソフトウェアは「プログラム」あるいは「コード」と称してもよい。また、「パラメータ」はパラメータの名前を意味し、その値は「パラメータの値」と記述する。また、「ワークフロー」を「パイプライン」と呼んでもよい。
【0012】
(システム構成)
図1に、本発明の実施の形態におけるシステムの構成例を示す。
図1に示すように、本実施の形態のシステムは、設定装置100とアプリケーション実行装置200がネットワークで接続された構成を有する。
【0013】
アプリケーション実行装置200は、例えば、アプリケーションを動作させるクラウドあるいはコンテナ上の本番環境(商用環境と称してもよい)に相当する。ただし、これは例であり、アプリケーション実行装置200は、物理的なPCやサーバであってもよいし、開発環境やテスト環境であってもよい。
【0014】
設定装置100は、物理的なPCやサーバであってもよいし、クラウド上の仮想マシン等で実現される機能であってもよい。設定装置100の機能がアプリケーション実行装置200に含まれていてもよい。
【0015】
本実施の形態では、アプリケーションを構成する各ソフトウェアは既にできており、各アプリケーションをアプリケーション実行装置200にインストールして、必要な設定を行うことで、アプリケーションが適切に動作する状態にすることを目的としている。
【0016】
本実施の形態では、設定装置100が、予め作成しておいた複数のデザインパターン(1つのデザインパターンでもよい)から、ワークフロー定義情報(パイプライン情報、タスク実行手順情報、作業手順、ワークフロー定義、ワークフロー定義ファイル等と称してもよい)と構成設定情報(構成設定ファイル、構成情報、構成ファイル等と称してもよい)とを自動的に生成する。
【0017】
ワークフロー定義情報は、アプリケーションをアプリケーション実行装置200上で適切に動作させるために実行する1以上のタスクの情報からなる。
【0018】
構成設定情報は、アプリケーションの構成及び設定を示しており、アプリケーション実行装置200において、どのソフトウェアをどのような設定で動作させるか等を示す情報からなる。
【0019】
また、本実施の形態では、設定装置100がワークフロー定義情報を実行する中で、自動的に構成設定情報を生成し、ワークフロー定義情報におけるデプロイのタスクでその構成設定情報を利用して、必要なソフトウェアのインストールや設定を行っている。
【0020】
(デザインパターンの概要)
上記複数のデザインパターンにおける各デザインパターンは、ワークフロー定義情報の一部と構成設定情報の一部とを有する情報である。なお、デザインパターンを「単位情報」と称してもよい。
【0021】
1つのアプリケーションは、複数の構成要素からなる。一例として、データベースにアクセスして、APIでユーザに対して所定機能を提供するアプリケーションを考えると、当該アプリケーションは、例えば、データベースソフトウェアとその設定、所定機能を提供するソフトウェアとその設定、APIを実現するためのソフトウェアとその設定の3つの構成要素に分けることができる。
【0022】
本実施の形態において、上記のように分割してできた構成要素のそれぞれが、1つのデザインパターンに対応するが、これは例であり、アプリケーションをどのように分割して、どのような単位でデザインパターンを構成するかは任意である。
【0023】
ただし、本実施の形態では、デザインパターンを、再利用可能なように作成することとしている。また、1つ1つのデザインパターンは、容易に管理できるようにできるだけ小さなサイズになるようにしている。つまり、アプリケーションに含まれる様々な要素を再利用可能な最小の単位でグルーピングすることでデザインパターンを構成している。デザインパターンを再利用可能にすることで、迅速かつ効率的にワークフロー定義情報と構成設定情報を生成することができる。
【0024】
各デザインパターンは、それに対応するアプリケーションの構成要素についての、パラメータ、構成設定情報(必要なソフトウェア、設定内容等であり)、タスク群(当該構成要素を動作させるための手順等)を有する。なお、タスク群をパイプラインあるいはワークフローと呼んでもよい。「タスク群」は1つのタスクであってもよい。
【0025】
(装置構成)
図2に、設定装置100の機能構成例を示す。
図2に示すように、設定装置100は、入力部110、変換部120、ワークフロー実行部130、データ格納部140を備える。なお、設定装置100は、物理的に(あるいは仮想的に)、1つの装置(サーバ等)からなるものであってもよいし、複数の装置からなるものであってもよい。例えば、変換部120がある装置で実現され、ワークフロー実行部130が別の装置で実現されてもよい。このように装置が分かれている場合、例えば、変換部120となる装置の記憶手段(メモリ等)とワークフロー実行部130となる装置の記憶手段(メモリ等)とでデータ格納部140が構成される。
【0026】
入力部110は、デザインパターン、パラメータの値等を外部から入力し、これらをデータ格納部140に格納する。
【0027】
変換部120は、複数のデザインパターンをデータ格納部140から読み出して、当該複数のデザインパターンからワークフロー定義情報を生成する。また、変換部120は、ワークフロー定義情報の実行時に、複数のデザインパターンとパラメータの値に基づいて、構成設定情報を生成する。なお、変換部120をコンパイラと呼んでもよい。
【0028】
データ格納部140には、外部からの入力情報、変換部120により生成された情報等が格納されている。変換部120、ワークフロー実行部130の動作の詳細については後述する。
【0029】
(ハードウェア構成例)
本実施の形態における設定装置100は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。この「コンピュータ」は、物理マシンであってもよいし、クラウド上の仮想マシンであってもよい。仮想マシンを使用する場合、ここで説明する「ハードウェア」は仮想的なハードウェアである。
【0030】
また、変換部120の処理を実現するプログラムと、ワークフロー実行部130の処理を実現するプログラムが別々に提供されてもよい。この場合、変換部120は、コンピュータに、本実施の形態で説明する変換部120の処理内容を記述したプログラムを実行させることにより単独装置として実現することも可能である。また、ワークフロー実行部130は、コンピュータに、本実施の形態で説明するワークフロー実行部130の処理内容を記述したプログラムを実行させることにより単独装置として実現することも可能である。
【0031】
設定装置100のプログラム、変換部120のプログラム、ワークフロー実行部130のプログラムはいずれも、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【0032】
図3は、上記コンピュータのハードウェア構成例を示す図である。
図3のコンピュータは、それぞれバスBSで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、及び入力装置1007等を有する。
【0033】
当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0034】
メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、当該設定装置100(あるいは、変換部120、ワークフロー実行部130)に係る機能を実現する。インタフェース装置1005は、ネットワークに接続するためのインタフェースとして用いられる。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
【0035】
(設定装置100の動作例)
以下、
図4、
図7のフローチャートの手順に沿って、設定装置100の動作例を説明する。まず、
図4のフローチャートを参照して、ワークフロー定義情報の生成について説明する。
【0036】
<S101>
S101において、複数のデザインパターンが入力部110から入力される。
【0037】
この動作の前提として、アプリケーション実行装置200で動作させようとするアプリケーション(対象アプリケーションと呼ぶ)に対応する複数のデザインパターンを作成しておく。デザインパターンは、過去に作成したもので、当該対象アプリケーションに利用できるものであれば、それを再利用してもよい。
【0038】
図5に、複数のデザインパターンの例としてデザインパターン1、デザインパターン2、デザインパターン3を示す。ここでは、対象アプリケーションが構成要素1~3を有し、デザインパターン1が構成要素1に対応し、デザインパターン2が構成要素2に対応し、デザインパターン3が構成要素3に対応しているとする。
【0039】
各デザインパターンは、
図5に示すようなデータフォーマットを有する。すなわち、デザインパターンは、該当構成要素において必要とするパラメータを記述するブロック、該当構成要素において必要とする構成情報を記述するブロック、及び、該当構成要素において必要とするワークフロー(タスク群)を記述するブロックを有する。
【0040】
例えば、デザインパターン1は、構成要素1に対して、パラメータ1、パラメータ2が必要であり、構成要素1の構成として、パラメータ1を設定したソフトウェアAが必要であり、構成要素1を動作させるためにタスク1とタスク2(パラメータ2を使用)を実行することが必要であることを示している。デザインパターン2、3についても同様である。
【0041】
なお、構成要素1を動作させるためのタスクとは、デプロイであってもよいし、デプロイの前準備の処理であってもよいし、インストールあるいは起動したソフトウェアに対する処理であってもよいし、その他の処理であってもよい。
【0042】
なお、デプロイについては、本実施の形態では必ず実行するタスクであるため、デザインパターンに含めずに、変換部120が自動生成して、ワークフロー定義情報に含めてもよい。
【0043】
図5に示すように、構成情報には、所定の単位で識別情報(名前又はID)が付与される。
図5の例では、デザインパターン1及びデザインパターン2の構成情報において「構成ABC」という名前が付けられ、デザインパターン3の構成情報において「構成DEF」という名前が付けられている。
【0044】
識別情報を付ける単位は、任意であるが、例えば、アプリケーションを構成する主要なソフトウェアの単位で名前が付けられてもよい。また、異なるデザインパターンにおいて、同じ対象に対応する構成情報には、同じ識別情報が付与される。例えば、
図5のデザインパターン2のデータべースは、デザインパターン1のソフトAにより使用されるデータベースであり、対象はソフトAであるため、いずれも「構成ABC」が付与されている。
【0045】
図5の例では、各デザインパターンの構成情報のブロックにおいて、識別情報は1つであるが、これは例であり、構成情報に含まれる内容に応じて、複数の識別情報が付される場合もある。
【0046】
後述するように、変換部120は、この識別情報をキーとして使用することで、複数デザインパターンにおける構成情報を合成する処理を行う。
【0047】
また、
図5に示すように、ワークフローにも、所定の単位で識別情報(名前又はID)が付与される。
図5の例では、デザインパターン1及びデザインパターン2のワークフローにおいて「タスクGHI」という名前が付けられ、デザインパターン3のワークフローにおいて「タスクJKL」という名前が付けられている。
【0048】
識別情報を付ける単位は、任意であるが、例えば、アプリケーションを構成する主要なソフトウェアの単位で名前が付けられてもよい。また、異なるデザインパターンにおいて、同じ対象に対応するワークフローには、同じ識別情報が付与される。例えば、
図5のデザインパターン2のタスク1は、デザインパターン1のソフトAに関連するタスクであり、対象はソフトAであるため、「タスクGHI」が付与されている。
【0049】
後述するように、変換部120は、この識別情報をキーとして使用することで、複数デザインパターンにおけるワークフローを合成する処理を行う。
【0050】
また、デザインパターンにおいて、ワークフローのブロックにタスク間の依存関係が記述されてもよい。例えば、
図5の例で、タスク1はタスク3の後に行わなければならない場合、「タスク1はタスク3の後に行う」旨が、各デザインパターンに記述されてもよい。
【0051】
図5の例では、各デザインパターンのワークフローのブロックにおいて、識別情報は1つであるが、これは例であり、ワークフローに含まれるワークフローの内容に応じて、複数の識別情報が付される場合もある。
【0052】
図9に、より具体的なデザインパターンの例を示す。なお、なお、
図9~
図13では、情報をキーとバリューの形で階層的に表現するyamlと同様の形式が用いられているが、これは一例に過ぎない。デザインパターンはどのような形式で記述してもよい。また、
図9~
図13は、実際に使用されるデザインパターン等のそのものを示しているわけではなく、実際に使用されるものを抽象化している。
【0053】
図9の例においても、上述したとおり、デザインパターンは、パラメータのブロック、構成情報のブロック、ワークフロー(パイプライン)のブロックを有するとともに、構成情報、ワークフローにおいて、識別情報(ID、名前等)が付与されている。
【0054】
<S102、S103>
図4のS102において、変換部120は、データ格納部140から、S101で入力された複数のデザインパターンを読み出し、当該複数のデザインパターンから、対象アプリケーションをアプリケーション実行装置200で動作させるために実行が必要なタスクとその実行順序を示すワークフロー定義情報を生成する。S103において、変換部120は、ワークフロー定義情報を出力する。具体的には、下記の(1)~(4)の処理を行う。
【0055】
(1)変換部120は、複数のデザインパターンの「ワークフロー」のブロックにおける識別情報とその内容を全て走査し、複数デザインパターン間で同じ識別情報のタスク(タスク群)を合成する。異なる識別情報であれば、タスク間の依存関係に応じた実行順序で各識別情報のタスク群を並べる。
【0056】
合成するとは、複数デザインパターン間で同一のタスクがあれば、1つのタスクとし、異なるタスクであれば、タスク間の依存関係に応じた実行順序でタスクを並べることである。
【0057】
また、変換部120は、合成において、処理内容に矛盾が生じていることを検知した場合に、競合エラーを出力して、処理を終了する。
【0058】
例えば、仮に、デザインパターンXにおける「タスクXYZ」で識別されるタスク群におけるタスク1がタスク2の前に実行することとされていて、デザインパターンYにおける「タスクXYZ」で識別されるタスク群におけるタスク1がタスク2の後に実行することとされている場合、矛盾するので、競合エラーとなる。
【0059】
(2)変換部120は、タスクの実行順序を、デザインパターンに記述された依存関係の情報(宣言)に従って決定してもよいし、データ格納部140に依存関係に関する情報(ソフトAの起動はソフトBのインストールの前に行う等)を予め格納しておいて、その情報を参照することにより決定してもよい。
【0060】
(3)変換部120は、複数のデザインパターンにおいて要求されているパラメータを全て取得して、ワークフロー定義情報に記述する。
【0061】
(4)変換部120は、「構成設定情報を生成するタスク」を生成し、当該タスクと上記の処理により得られるタスクの一覧、及び、パラメータの一覧を記述したワークフロー定義情報を出力する。出力したワークフロー定義情報はデータ格納部140に格納される。
【0062】
図5のデザインパターン1~3から生成されたワークフロー定義情報の例を
図6に示す。
図6に示すように、当該ワークフロー定義情報において、デザインパターン1~3から取得されたパラメータ1~4が記述され、各タスクが実行順序に従った順序で記述されている。なお、
図6の例における「デプロイ」は、構成設定情報に従ってソフトウェアのインストールと設定を行うタスクであり、本実施の形態では、変換部120が生成するタスクである。
【0063】
図10に、より具体的な3つのデザインパターンの例を示す。この3つのデザインパターンは、データベースにアクセスして、APIでユーザに対して所定機能を提供するようなアプリケーションに対応する。具体的には、DB patternがデータベースソフトウェアとそれに関する設定についてのデザインパターンであり、Base patternが所定機能を提供するソフトウェアとその設定についてのデザインパターンであり、API patternがAPIを実現するためのソフトウェアとその設定についてのデザインパターンである。
【0064】
Base patternにおける「myapp」は、所定機能を提供するソフトウェアである。DB patternにおいて、Base patternにおける名前「appDeployment」と同じ名前「appDeployment」の構成情報として、myappがデータベースに接続するための構成情報(接続先アドレス、ID等)が記述される。
【0065】
API patternには、Base patternに記述されているベースとなるソフトウェアを公開するためのポートの情報、そのポートが機能しているかどうかの死活監視を行うprobeの情報等が記述される。
【0066】
構成設定情報の生成において、変換部120により、
図9の枠の部分が走査され、前述した手順により、
図11に示すような構成設定情報が生成される。
図11において、「compileConfig」が、
図6における「構成設定情報の生成タスク」に相当する。また、
図11において、枠で囲んだ部分が、3つのデザインパターンから取得された情報であることを示す。
【0067】
次に、
図7のフローチャートを参照して、構成設定情報の生成に関わる処理について説明する。ユーザからの入力等により、データ格納部140には、ワークフロー定義情報に記述されている各パラメータの値が格納されているとする。
【0068】
<S201>
ワークフロー実行部130は、データ格納部140からワークフロー定義情報とパラメータの値を読み出し、ワークフロー定義情報の実行を開始する。ワークフロー定義情報を実行するとは、ワークフロー定義情報に記述された各タスクを、記述された順番(
図6の例では上から)で実行することである。
【0069】
ワークフロー実行部130は、ワークフロー定義情報における「構成設定情報の生成タスク」を実行すると、構成設定情報を生成するよう変換部120(コンパイラ)に指示する。
【0070】
<S202>
S202において、構成設定情報の生成指示を受けた変換部120は、データ格納部140から、対象アプリケーションに対応する複数のデザインパターン、及びパラメータの値を取得する。
【0071】
<S203、S204>
S203において、変換部120は、複数のデザインパターン、及びパラメータの値から、対象アプリケーションをアプリケーション実行装置200で動作させるための構成設定情報を生成する。S204において、変換部120は、構成設定情報を出力する。具体的には、下記の(1)~(2)のとおりである。
【0072】
(1)変換部120は、複数のデザインパターンの「構成情報」のブロックにおける識別情報とその内容を全て走査し、複数デザインパターン間で同じ識別情報の構成情報を合成する。異なる識別情報であれば、各識別情報の構成情報を並べる。
【0073】
合成するとは、複数デザインパターン間で同一の構成情報があれば、1つの構成情報とし、異なる構成情報であれば、それらを並べることである。
【0074】
また、合成において、構成情報の内容に矛盾が生じていることを検知した場合に、競合エラーとして処理を終了する。
【0075】
例えば、仮に、デザインパターンXにおける「構成XYZ」で識別される構成情報におけるソフト1がパラメータ1を必要とし、デザインパターンYにおける「構成XYZ」で識別される構成情報におけるソフト1がパラメータ2を必要とする場合、矛盾するので、競合エラーとなる。
【0076】
(2)変換部120は、構成情報の一覧を有する構成設定情報を出力する。出力された構成設定情報はデータ格納部140に格納される。
【0077】
図5のデザインパターン1~3から生成された構成設定情報の例を
図8に示す。
図8に示すように、各デザインパターンから取得された構成情報が、パラメータの値が埋められた形で記述されている。
【0078】
より具体的な例として、
図10に示した3つのデザインパターンと同じものを
図12に示す。
図12には、構成設定情報の生成において、変換部120が走査する部分(構成情報の部分)を枠で囲んでいる。これらの構成情報から、
図13に示す構成設定情報が生成される。
図13には、パラメータの値も示されている。
図13において、枠で囲んだ部分(本例では全部)が、3つのデザインパターンから取得された情報であることを示す。
図13には、myappというソフトウェアをインストールして、myappがデータベースへ接続するための設定を行い、APIのポート監視のための死活監視の設定を行うこと等が記述されている。
【0079】
<S205>
図7のS205において、ワークフロー実行部130は、変換部120により生成された構成設定情報をデータ格納部140から読み出し、ワークフロー定義情報におけるタスクの1つであるデプロイを実行する際に、当該構成設定情報に従って、アプリケーション実行装置200に命令をすることで、ソフトウェアのインストールや設定、起動等を実行する。ワークフロー定義情報の実行が完了すると、対象アプリケーションはアプリケーション実行装置200において動作している状態となる。
【0080】
なお、上記の例では、ワークフロー定義情報の実行時に構成設定情報を生成することとしているが、これは一例である。ワークフロー定義情報の実行前に、パラメータの値の入力を受けて、ワークフロー定義情報とともに構成設定情報を生成してもよい。
【0081】
(実施の形態の効果等)
以上説明したように、本実施の形態に係る技術により、アプリケーションをアプリケーション実行装置において動作させるために使用するワークフロー定義情報及び構成設定情報を効率的に作成することができる。
【0082】
また、ワークフロー定義情報、構成設定情報を別々に管理するのではなく、ユースケースや運用モデル毎に、単位情報(デザインパターン)を作成・管理することとしたので、一貫した運用モデル/ポリシーのもとで情報を管理することができ、アプリケーションの開発から運用まで効果的なライフサイクル管理が可能となる。
【0083】
また、再利用可能な最小単位でデザインパターンを構成することで、これまでプロジェクトごとに作成・管理していたワークフロー定義情報及び構成設定情報についての単位情報をプロジェクトをまたいで共有することができ、インフラ設計、テスト、運用モデルを共通化して、早く安全にシステム開発が可能となる。
【0084】
複数のデザインパターンを合成してワークフロー定義と構成設定ファイルを自動生成する際、フォーマットにしたがって各デザインパターンの要求条件を検査することで、デザインパターンを安全に拡張することができ、スケーラブルにアプリケーションの運用モデルを管理することが可能となる。
【0085】
特に、クラウドネイティブのアプリケーションにおいては、機能追加・変更を短いサイクル(アジャイル)で行うが、本実施の形態に係る技術により、機能追加・変更の作業を自動化でき、更に、アプリケーションの機能追加に伴って作業・設定内容を柔軟に変更することが可能になるので、短いサイクルでの機能追加・変更を安全かつスケーラブルに実現することが可能となる。
【0086】
(実施の形態のまとめ)
本明細書には、少なくとも下記の各項に記載した設定装置、設定方法、及びプログラムが記載されている。
(第1項)
対象アプリケーションの構成要素に基づいて作成された1以上の単位情報を用いて、前記対象アプリケーションをアプリケーション実行装置において動作させるために実行が必要な1以上のタスクの実行手順を記述したタスク実行手順情報と、前記対象アプリケーションの構成設定情報を生成する変換部と、
前記タスク実行手順情報に基づいて、前記1以上のタスクを実行する実行部と
を備える設定装置。
(第2項)
前記1以上の単位情報における各単位情報は、パラメータのブロックと、構成情報のブロックと、1以上のタスクを示すブロックと、を有する
第1項に記載の設定装置。
(第3項)
前記構成情報のブロックは、1以上の構成情報を識別するための識別情報を含み、
前記変換部は、前記構成設定情報の生成において、複数の単位情報間で識別情報が同じ構成情報を合成する
第2項に記載の設定装置。
(第4項)
前記1以上のタスクを示すブロックは、1以上のタスクを識別するための識別情報を含み、
前記変換部は、前記タスク実行手順情報の生成において、複数の単位情報間で識別情報が同じ1以上のタスクを合成する
第2項又は第3項に記載の設定装置。
(第5項)
前記変換部は、複数の単位情報間で競合が発生した場合に、エラーを出力する
第1項ないし第4項のうちいずれか1項に記載の設定装置。
(第6項)
前記変換部は、前記タスク実行手順情報の中の1つのタスクとして、前記構成設定情報を生成するためのタスクを生成し、前記実行部が当該タスクを実行することにより、前記変換部は、前記構成設定情報を生成する
第1項ないし第5項のうちいずれか1項に記載の設定装置。
(第7項)
設定装置が実行する設定方法であって、
対象アプリケーションの構成要素に基づいて作成された1以上の単位情報を用いて、前記対象アプリケーションをアプリケーション実行装置において動作させるために実行が必要な1以上のタスクの実行手順を記述したタスク実行手順情報と、前記対象アプリケーションの構成設定情報を生成する変換ステップと、
前記タスク実行手順情報に基づいて、前記1以上のタスクを実行する実行ステップと
を備える設定方法。
(第8項)
コンピュータを、第1項ないし第6項のうちいずれか1項に記載の設定装置における各部として機能させるためのプログラム。
【0087】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0088】
100 設定情報
110 入力部
120 変換部
130 ワークフロー実行部
140 データ格納部
200 アプリケーション実行環境
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置