Kony FabricのOrchestration Serviceの紹介

#目次
1.Orchestration Serviceの概要
2.Orchestration ServiceのOperation
3.新しくOrchestrationを作成する
4.既存のサービスを利用して新しいOrchestration Serviceを作成する
5.Orchestration Serviceを接続テスト
6.Orchestration Serviceのサービスバージョン

#1.Orchestration Serviceの概要とユースケース
__概要__
Orchestration Serviceは、
複数のIntegration Service、Object Service、Orchestration Serviceを
単一のサービスに結合する概念を活用して、サービス呼び出しの数を減らし、クライアントアプリのビジネスロジックを簡素化するものである。

#2.Orchestration ServiceのOperation
Orchestration ServiceのOperationには、4つの主要な実行タイプがある。
####__1.Composite__
Compositeタイプを使用すると、複数の操作を組み合わせて、
Orchestration Serviceに追加された操作を実行できる。 
__1-1.Composite Concurrent__
このタイプは、サービスに追加された操作が同時に実行され、操作の実行の順序はない。
![図58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/226b4718-51e0-60b8-c7bb-552e41e807b2.png)
__1-2.Composite Sequential__
このタイプは、指定された順序でサービスに追加された操作を実行します。
また、あるサービスの出力応答を次のサービスのために入力要求として使用することもできる。
![図59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/6f0b706f-3fa6-5292-ba94-56b92fd59ee1.png)
####__2.Looping__
ループイングタイプを使用する場合、orchestration serviceに追加できる操作は1つだけです。
入力の限定したセットを使用するループ内でまたは指定された条件が満たされるまで、操作を繰り返し実行できる。 
__2-1.Looping Concurrent__
このタイプは、ループカウント値に基づいて、操作が同時に「n」回実行される。
Orchestration Serviceの出力値は、各ループの応答のリストになる。
![図60.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/5002e879-9390-15b4-daa2-9338784d823e.png)
__2-2.Looping Sequential__
このタイプは、ブレークループパラメーターまたはループカウントが満たされるまで、ループ内で操作が順番に実行される。
Orchestration Serviceの出力値は、各ループの応答のリストになる。 
![図61.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/7ae040e2-dd10-d384-9f08-f4cf907238aa.png)
#3.新しくOrchestrationServiceを作成する
__OrchestrationServiceを作成する__
新しいサービス定義を作成するには、OrchestrationページでConfigure Newをクリックするか、左ペインで[+]アイコンをクリックしてAdd New Serviceを選択する。
![図62.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/1301cedb-7759-3606-f9f9-196450f4d9c3.png)
Kony FabricにService Definition画面が表示される。
Service Definition画面で次のことができる：
Nameボックスに、新しいOrchestration Serviceの一意の名前を入力する。
※サービス名は、既存のサービス名と一致してはならない。
![図63.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/9a853687-3934-570f-ce66-cb817afc1de9.png)

__（補足）Advancedの説明__
__CustomCode__
新しいサービスに関連付ける.jarファイルを選択できる。
jarファイルを選択できるように以下を実行する:
・アカウントに必要な.jarファイルがない場合は、Upload Newをクリックして、ローカルマシンから必要な.jarファイルを選択する。
・アカウントで必要な.jarファイルを使用できる場合は、Select existing JARをクリックして、必要なファイルを選択する。
![図64.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/dd803b45-59a1-2e71-5ccd-52f019fc8ad5.png)

__Throttling__
1分間にAPIを呼び出す回数を提供できる。
APIがスロットル制限を超えた場合、サービスの応答は返されない。
スロットル制限を提供できるように以下を実行する:
・Total Rate Limitボックスに、必要な値を入力する。この値は、APIによって処理されるリクエストの総数を制限する。
・Rate Limit perIPボックスに、必要な値を入力する。この値は、IPアドレスから行われるリクエストの数を制限する。デバイスが設定された制限を超えると、APIは適切なエラーメッセージを返す。
<font color = "red">注意:両方の値が指定されている場合、最初に満たされたスロットル制限が優先される。</font>
![図66.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/f323db4e-786f-a35e-f84d-6a3ca6a3c3bf.png)

####__オペレーションを作成する__
OperationsListタブを選択してAdd Operationをクリックするか、左ペインで[+]アイコンをクリックしてAdd New Operationを選択する。
NewOperationタブが表示されると思います。以下画像参照。
![図67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/657a13bf-c2d4-3da0-80e7-10bd21992857.png)

以下を行うことでサービスにoperationを追加できます。
__1. Nameボックスに、新しいoperationの一意の名前を入力する。__
operation名は、既存のサービス名と一致してはならない。
__2. Operation Execution Typeリストから、必要な実行タイプを選択__
実行タイプについては上記説明済みなので省略します。
![図68.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/85697a2a-7688-62e4-43ca-1fe64cb95f3e.png)
（補足）ループoperationを選択すると、次の欄が表示される

|名称| 内容|
|:---:|:---:|
|LoopCount|ループサービスに含まれるサービスを実行する必要がある回数を示す。|
|LoopSeparator|ループ区切り文字：サービスの入力パラメーターを区切る文字を指定する。|
|BreakLoopParameterName|ループサービスの実行用のbreakoutパラメータがあるかどうかを指定する。 Breakoutパラメーターは、ループ内のサービス呼び出しから返される結果の一部です。|
|BreakLoopParameterValue|ループサービスのbreakoutパラメーター用の値を指定する。サービスから返されたBreakoutパラメーターの値が指定された値と一致する場合、operationはループを終了する。|
![図69.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/a1897aef-f63b-b0f0-7839-cfa98e7fe70a.png)
__3. Operationのセキュリティレベル設定__
OperationSecurityLevel一覧から、必要な認証タイプを選択する。
クライアントがこの操作にアクセスするために認証する必要がある方法を定義する。
使用可能なセキュリティレベルは次のとおりです。
![図70.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/981806c6-c8bb-2e13-a6b6-e656eba7a4e3.png)

|セキュリティレベル名| 内容|
|:---:|:---:|
|Authenticated User|アクセスは、Identityサービスの使用によって正常に認証された認証済みユーザーのみに制限される|
|Anonymous App User|アクセスは、必要なアプリキーとアプリシークレットキーを持つユーザーに制限される。そして、Identityサービスへの依存はない。|
|Public|誰も認証要件なしでこの操作にアクセスできる。|
|Private|同じアカウント内の他の操作またはサービスからのみ操作にアクセスできることを示す|

__4. フロントエンドHHTPメソッドの設定__
FrontEndHTTPMethod一覧から、HTTPクライアントからサービス操作を呼び出すために使用する必要なリクエストメソッドを選択する。
利用可能なリクエスト方法は次のとおりです。
GET
POST
PUT
DELETE
![図71.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/f781450a-b38e-bf85-5fa4-8ba46b1b40be.png)

__5. Operation Mappingを行う__
![図72.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/c142a7ac-3554-96aa-8cdd-57f2f3570832.png)
Descriptionボックスには、現在作成しているサービスに必要な定義を入力します。

Available Servicesには、Integration servicesとObject servicesのすべてのサービスのリストがあります。
これらのサービスには、すべての関連するoperationが含まれており、新しいOrchestration Serviceために使用するoperationをマッピングできます。
operationをマッピングするには以下を実行する
必要なサービスを展開し、そのサービスに必要なoperationを選択する。
OperationMappingの右側にドラッグ&ドロップする。

Enablepass-throughでは、必要なパラメータータイプを選択することができます。
パラメータタイプを選択すると、関連するパラメータ変数がクライアントサーバーから表示される。
使用可能なパラメーターのタイプはInput、Header、Putputです。 
<font color = "red">注意:このフィルターはOperationMappingの右側すべてのoperationに適用されます。
</font>

SaveOperationsをクリックすると新しく作成したOperationは、Orchestration ServiceのOperationタブに追加されます。

#4.既存のサービスを利用して新しいOrchestration Serviceを作成する
この機能は、Kony Fabricアカウントで既存のOrchestration Serviceを利用し新しいOrchestration Serviceを構成するのに役立ちます。
既存のサービスをクローンまたは追加し、それに応じてサービスに変更を加えることができます。

・Orchestration serviceタブで、Use Existingをクリックするか、
左ペインで「+」アイコンをクリックしてUse Existingを選択する。 Use Existing画面が表示される。
以下画像の画面となります。
![図74.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/45a2d057-3865-323a-6168-9a1b6980b726.png)
Existing services画面から必要なサービスを選択し、CloneまたはAddをクリックする。
・Clone: 選択したサービスの複製を作成する。複製したサービスに加えられた変更は、元のサービスには影響しない。
・Add: 選択したサービスを新しいKony Fabricアプリに追加する。サービスに加えられた変更は、すべてのサービスを使用するアプリに影響する。
・CloneまたはAddプロセスが完了すると、サービスがOrchestration services一覧に追加される。

#5.Orchestration Serviceを接続テスト
作成したOrchestration Serviceの機能を確認する場合
以下動画を参照ください。
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">OrchestrationService <a href="https://t.co/l5fTZfYWyT">pic.twitter.com/l5fTZfYWyT</a></p>&mdash; Kony (@Kony12763790) <a href="https://twitter.com/Kony12763790/status/1237988148828749824?ref_src=twsrc%5Etfw">March 12, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

#6.Orchestration Serviceのサービスバージョン
サービスに加えられた変更を同じサービスの別のバージョンとして保存する場合、
サービスのバージョン管理を使用できる。
サービスの新しいバージョンを作成すると、サービスに関連付けられているKony Fabricアプリは、サービスの最新バージョンを自動的に使用する。

Service Definitionタブでサービスの新しいバージョンを作成できる。
![図75.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/1a109e18-e371-e4dc-cb26-c600c12e328b.png)
![図76.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599796/28040c38-3861-597b-4278-711ed4a7bdca.png)
1.Version Listで「Save as New Version」を選択
2.Version Boxで、必要なバージョン番号を入力する
<font color = "red">注: バージョン番号の形式はmajor.minorで、majorは1〜999、minorは0〜99。</font>
3. Description Boxで、新しいバージョンに必要なメモを入力する。
4. 「OK」ボタンをクリックする。