Cosminexus サービスプラットフォーム システム構築・運用ガイド

[目次][用語][索引][前へ][次へ]

5.5.1 ビジネスプロセスの仕組み

<この項の構成>
(1) ビジネスプロセスの処理の流れ
(2) ビジネスプロセスの通信モデル
(3) プロセスインスタンス
(4) アクティビティ
(5) 変数の種類と役割
(6) 相関セットの役割

(1) ビジネスプロセスの処理の流れ

サービスリクエスタからビジネスプロセスを呼び出すと,呼び出されたビジネスプロセスで定義された要素やアクティビティを一つ一つ実行することで,プロセスを実行します。ビジネスプロセスの定義は,開発環境で定義します。ビジネスプロセスの処理の流れを次の図に示します。

図5-41 ビジネスプロセスの処理の流れ

[図データ]

(2) ビジネスプロセスの通信モデル

ビジネスプロセスは,同期と非同期の2種類の通信モデルがあります。

通信モデルが同期の場合,ビジネスプロセスを呼び出したサービスリクエスタに対して,応答電文が返ります(応答電文は応答アクティビティに定義した電文フォーマットです)。

通信モデルが非同期の場合,ビジネスプロセスを呼び出したサービスリクエスタに応答電文が返りません(処理だけがリターンします)。

通信モデルは,開発環境でビジネスプロセス定義するときに,受付アクティビティのダイアログで定義します。ビジネスプロセスでの通信モデルの違いを次の図に示します。

図5-42 ビジネスプロセスでの通信モデルの違い

[図データ]

受付アクティビティダイアログの詳細については,マニュアル「Cosminexus サービスプラットフォーム 開発ガイド」を参照してください。

(3) プロセスインスタンス

ビジネスプロセスが最初に要求を受け付けるときには,プロセスインスタンスを生成します。プロセスインスタンスを生成するには,開発環境でビジネスプロセスを定義するとき,最初に要求を受け付ける受付アクティビティを定義する受付アクティビティダイアログでインスタンス生成を「yes」に設定します。

プロセスインスタンスを生成するビジネスプロセスの場合,ビジネスプロセスが要求を受け付けるたびにプロセスインスタンスを生成します。そのため,複数の要求が同時に実行された場合でも,個々に独立してプロセスを実行します。ビジネスプロセスでのプロセスインスタンスの仕組みについて次の図に示します。

図5-43  ビジネスプロセスでのプロセスインスタンスの仕組み

[図データ]

受付アクティビティダイアログの詳細については,マニュアル「Cosminexus サービスプラットフォーム 開発ガイド」を参照してください。

プロセスインスタンスの属性情報を次の表に示します。

表5-26  プロセスインスタンスの属性情報

属性 説明
識別子 個々のプロセスインスタンスを特定するための識別子です。同一のビジネスプロセス定義(バージョンは異なる場合もある)内で一意な識別子です。
ビジネスプロセス定義名 対象のプロセスインスタンスが所属するビジネスプロセスの定義名称です。サービスリクエスタから呼び出すときのサービス名に相当します。
ビジネスプロセス定義バージョン 対象のプロセスインスタンスが所属するビジネスプロセス定義バージョンです。
状態 対象のプロセスインスタンスの状態です。
開始時刻 対象のプロセスインスタンスの開始時刻(GMT)です。

注 ACTIVE状態に遷移した時刻
終了時刻 対象のプロセスインスタンスの終了時刻(GMT)です。

注 COMPLETED状態に遷移した時刻

プロセスインスタンスの状態遷移を次の図に示します。

図5-44 プロセスインスタンスの状態遷移

[図データ]

  1. プロセスインスタンスを実行しようとしたとき。
  2. プロセスインスタンスに所属するアクティビティを実行しようとしたとき。
  3. プロセスインスタンスに所属するグローバルスコープが完了し,プロセスインスタンスが正常に終了したとき。
  4. プロセス実行中にフォルトが発生し,グローバルスコープでもキャッチできないでプロセスインスタンスがフォルト終了したとき。

図5-44で示すプロセスインスタンスの状態を次の表に示します。

表5-27 プロセスインスタンスの状態

状態 説明
ACTIVE状態 実行中状態(Executing) プロセスインスタンスが実行中の状態です。
COMPLETED状態 完了状態(Completed) プロセスのグローバルスコープが完了して,プロセスインスタンスが完了した状態です。
フォルト終了状態(Faulted) フォルトが発生し,グローバルスコープでもキャッチできないでプロセスインスタンスがフォルト終了した状態です。

(4) アクティビティ

アクティビティは,ビジネスプロセスの構成要素となる部品で,処理の構造を表現したものです。複数のアクティビティを連結して,ビジネスプロセスの処理フローを定義します。

開発環境のビジネスプロセス定義画面でアクティビティを配置,連結して定義します。各アクティビティの属性情報を次の表に示します。

表5-28 アクティビティの属性情報

属性 説明
プロセスインスタンス識別子 対象のアクティビティが所属するプロセスインスタンスの識別子です。
アクティビティ番号 アクティビティを識別するための番号です。アクティビティリストのインデクスに対応します。
ビジネスプロセス定義名 対象のアクティビティが所属するビジネスプロセスの定義名称です。サービスリクエスタから呼び出すときのサービス名に相当します。
ビジネスプロセス定義バージョン 対象のアクティビティが所属するビジネスプロセス定義バージョンです。
アクティビティ定義名 対象のアクティビティのアクティビティ定義名称です。
アクティビティ種別 対象のアクティビティのアクティビティ種別です。
状態 対象のアクティビティの状態です。
開始時刻 対象のアクティビティの開始時刻(GMT)です。

注 ACTIVE状態に遷移した時刻
終了時刻 対象のアクティビティの終了時刻(GMT)です。

注 COMPLETED状態に遷移した時刻

アクティビティの状態遷移を次の図に示します。

図5-45 アクティビティの状態遷移

[図データ]

  1. 新たなアクティビティのインスタンスが生成されたとき。
  2. アクティビティインスタンスを実行しようとしたとき。
  3. アクティビティインスタンスの実行が完了したとき。
  4. アクティビティインスタンスを実行したが,実行中にならないで実行が完了したとき。
  5. サービスリクエスタからの要求を受信した受付以外の受付アクティビティインスタンスを実行しようとしたとき。
  6. 待ち受け状態の受付アクティビティインスタンスがサービスリクエスタからの要求を受けたとき。
  7. target linkがfalseで活性化されたとき。
  8. アクティビティインスタンスの実行時にフォルトが発生したとき。
  9. フォルトが発生し,アクティビティの実行がキャンセル処理を依頼されたとき。
  10. フォルトが発生し,フォルトハンドラーでキャッチして対応するアクティビティインスタンスを実行中のとき。
  11. フォルトが発生し,キャッチに対応するアクティビティインスタンスの実行が完了したとき。
  12. 構造化アクティビティが実行省略された際に,内包するアクティビティを実行省略にするとき。
  13. 未省略状態のアクティビティの実行を省略するとき。

図5-45で示すアクティビティの状態を次の表に示します。

表5-29 アクティビティの状態

状態 説明
READY状態 未実行状態(Unexecution) アクティビティインスタンスが未実行で,今後実行される可能性のある状態です。
未省略状態(Unomission) アクティビティインスタンスが未実行で,今後実行省略される状態です。
ACTIVE状態 実行中状態(Executing) アクティビティインスタンスが実行中の状態です。
待ち受け状態(Awaiting) 受付アクティビティのインスタンスが受け付けられる状態です。
フォルト中状態(Faulting) アクティビティインスタンスがfaultHandlerでキャッチしたアクティビティを実行している状態です。
COMPLETED状態 完了状態(Completed) アクティビティインスタンスが正常に実行され終了した状態です。
キャンセル状態(Canceled) フォルトが発生しアクティビティインスタンスの実行がキャンセルされた状態です。
フォルト終了状態(Faulted) アクティビティインスタンスの実行中にフォルトが発生して終了した状態です。
実行省略状態(Omitted) アクティビティインスタンスの実行が省略された状態です。

各アクティビティの詳細については,マニュアル「Cosminexus サービスプラットフォーム 開発ガイド」を参照してください。

(5) 変数の種類役割

ビジネスプロセスでは,メッセージに含まれる値や業務で使用する値を変数で保持できます。変数にはグローバル変数とローカル変数の2種類があり,開発環境のビジネスプロセス定義画面で定義します。変数の役割を次の表に示します。

表5-30 変数の役割

変数 説明
グローバル変数 グローバル変数は,一つのプロセスインスタンス内であれば,どこからでも参照できます。また,プロセスが完了しても変数の値はデータベースに記録されているため,ビジネスプロセス全体の進行状況を分析できます。変数名は,プロセス内で一意にします。
ローカル変数 ローカル変数は,宣言したスコープ内で参照できます。宣言しているスコープが終了すると,変数の値もデータベースから削除されるため,プロセス実行中の条件判定など一時的に値を参照するために利用できます。変数名は,スコープ内で一意にします。スコープが異なれば同じ変数名を宣言できます。ただし,変数を参照する場合に,参照個所で最も内側に近いスコープで宣言された変数を参照します。

変数の定義については,マニュアル「Cosminexus サービスプラットフォーム 開発ガイド」を参照してください。

(6) 相関セットの役割

相関セットはサービスリクエスタが送信するメッセージを一意に識別するための文字列です。

一つのビジネスプロセスに対して,サービスリクエスタからメッセージを受け取れるプロセスインスタンスがHCSCサーバ上に複数ある場合,HCSCサーバはメッセージに含まれる相関セットの値を利用してプロセスインスタンスを特定します。

サービスリクエスタは相関セットを含めた要求電文を作成して,HCSCサーバに対してサービス部品の呼び出し(ビジネスプロセスの呼び出し)を要求します。ビジネスプロセスからの応答にも相関セットが含まれ,どの送信メッセージに対する結果かを識別できます。相関セットは開発環境のビジネスプロセス定義画面で定義します。

なお,相関セットは,ビジネスプロセスがサービス部品を呼び出すとき,およびビジネスプロセスがサービス部品から応答を受けたときにも,新たに相関セットを指定してメッセージを送信できます。

相関セットによるプロセスインスタンスの識別については,マニュアル「Cosminexus サービスプラットフォーム 開発ガイド」を参照してください。