Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 解説

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

2.1.2 サービス部品を呼び出す流れ

サービスリクエスタからサービス部品を呼び出す流れは,受付の種類と呼び出すHCSCコンポーネントの組み合わせによって動作が異なります。受付の種類と呼び出すHCSCコンポーネントの組み合わせを次に示します。

それぞれの場合の電文の流れを,次に説明します。エラー時の処理の流れについては,マニュアル「サービスプラットフォーム システム構築・運用ガイド」の「7. 障害対策」を参照してください。

<この項の構成>
(1) 標準受付からサービスアダプタを直接呼び出してサービス部品を実行する場合
(2) 標準受付からビジネスプロセスを呼び出してサービス部品を実行する場合
(3) ユーザ定義受付からビジネスプロセスを呼び出してサービス部品を実行する場合

(1) 標準受付からサービスアダプタを直接呼び出してサービス部品を実行する場合

標準受付からサービスアダプタを直接呼び出してサービス部品を実行する場合,サービスアダプタで定義したサービス名をサービスリクエスタで指定して実行します。実行すると,サービスアダプタで定義したサービス部品を呼び出します。

サービスアダプタを直接呼び出す場合の電文の流れを次の図に示します。

図2-3 サービスアダプタを直接呼び出す場合の電文の流れ

[図データ]

  1. サービスリクエスタから標準受付に送信する要求電文は,開発環境でサービスアダプタを定義したときに設定した(サービス部品の形式に合わせた)電文フォーマットを使用します。そのため,サービスリクエスタ内で,サービスアダプタで定義した電文フォーマットに合わせた要求電文を作成し,作成した電文を標準受付のパラメタ(ユーザ電文のパラメタ)に設定して実行します。
  2. サービスアダプタからサービス部品を呼び出します。呼び出すときは,サービスアダプタで定義した要求電文を使用します。このように,サービスリクエスタから送信する要求電文とサービス部品が受け取る要求電文は同一になります。なお,サービス部品の電文フォーマット以外の電文フォーマットでも,サービスアダプタでデータ変換定義をすれば,サービスリクエスタから要求できます。
  3. サービス部品からサービスアダプタに応答電文を送信します。応答電文は,サービスアダプタで定義した応答電文と同じ電文フォーマットを使用します。
  4. サービスリクエスタへ応答します。応答には,サービスアダプタで定義した応答電文の電文フォーマットを使用します。このように,サービス部品から返す応答電文とサービスリクエスタで受け取る応答電文は同一になります。

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

(2) 標準受付からビジネスプロセスを呼び出してサービス部品を実行する場合

標準受付からビジネスプロセスを呼び出してサービス部品を実行する場合,ビジネスプロセスで定義したサービス名(ビジネスプロセス名)をサービスリクエスタで指定して実行します。そして,ビジネスプロセスに定義したプロセスに従って,処理を実行します。プロセスはアクティビティから構成されています。その中の,サービス呼出アクティビティでは,定義されたサービスアダプタを呼び出して,サービスアダプタに定義されたサービス部品を実行します。ビジネスプロセスを呼び出す場合の電文の流れを次の図に示します。

図2-4 ビジネスプロセスを呼び出す場合の電文の流れ

[図データ]

  1. サービスリクエスタ内で,ビジネスプロセスの受付アクティビティで定義した要求電文の電文フォーマットに合わせた要求電文を作成し,作成した電文を標準受付のパラメタ(ユーザ電文のパラメタ)に設定して実行します。サービスリクエスタで指定する要求電文は,ビジネスプロセスの受付アクティビティに定義した電文フォーマットを使用します。
  2. ビジネスプロセスからサービス部品を呼び出します。呼び出すときは,サービス呼出アクティビティで定義した要求電文を使用します。この要求電文の電文フォーマットは,呼び出すサービス部品のサービスアダプタで定義した要求電文の形式と同じである必要があります。なお,サービス部品の電文フォーマット以外の電文フォーマットでも,サービスアダプタでデータ変換定義をすれば,サービス呼出アクティビティから要求できます。
  3. サービス部品からサービスアダプタに応答電文を送信します。応答電文は,ビジネスプロセスのサービス呼出アクティビティの応答電文と同じ電文フォーマットを定義します。
  4. サービスリクエスタへ応答します。応答には,ビジネスプロセスの応答アクティビティで定義した応答電文の電文フォーマットを使用します。

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

(3) ユーザ定義受付からビジネスプロセスを呼び出してサービス部品を実行する場合

ユーザ定義受付は,ユーザが定義した任意の形式でサービス部品実行要求を受け付け,応答を返すインターフェースです。

開発環境での定義に従ってユーザ定義受付からビジネスプロセスを呼び出し,ビジネスプロセスに定義したプロセスに従って,処理を実行します。サービス呼出アクティビティでは,定義されたサービスアダプタを呼び出し,サービスアダプタに定義されたサービス部品を実行します。ユーザ定義受付を使う場合の電文の流れを次の図に示します。

なお,ここではSOAP通信基盤を使用した場合の例を使用して説明します。

図2-5 ユーザ定義受付を使う場合の電文の流れ(SOAP通信基盤の例)

[図データ]

  1. サービスリクエスタからの要求電文は,ビジネスプロセスの受付アクティビティに定義した電文フォーマットと同一のものになります。そのため,ビジネスプロセスの受付アクティビティに定義した電文フォーマットに合わせた形式のWSDLを開発環境のユーザ定義受付定義で設定する必要があります。サービスリクエスタからSOAP受付を呼び出すときは,開発環境でSOAP受付に定義したWSDLを使用します。SOAP1.1(SOAP通信基盤またはJAX-WSエンジン)に対応したサービスリクエスタを使用する場合は,WSDLからWSDL2Javaコマンドを使用してスタブを生成し,スタブを呼び出すようにサービスリクエスタを実装します。
    SOAP1.2(JAX-WSエンジン)に対応したサービスリクエスタを使用する場合は,WSDLからcjwsimportコマンドを使用してサービスクラスを生成し,サービスクラスを呼び出すようにサービスリクエスタを実装します。
  2. ビジネスプロセスからサービス部品を呼び出すときは,サービス呼出アクティビティで定義した要求電文を使用します。この要求電文の電文フォーマットは,呼び出すサービス部品のサービスアダプタで定義した要求電文の形式と同じである必要があります。
  3. サービス部品からの応答電文もビジネスプロセスのサービス呼出アクティビティの応答電文で同じ電文フォーマットを定義します。なお,サービス部品の電文フォーマット以外の電文フォーマットでも,サービスアダプタでデータ変換定義をすれば,サービス呼出アクティビティから要求できます。
  4. サービスリクエスタへの応答は,ビジネスプロセスの応答アクティビティで定義した応答電文の電文フォーマットを使用します。この電文フォーマットは開発環境のユーザ定義受付定義で設定するWSDLの応答電文と同じ形式である必要があります。

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