SCA ノード・サンプルについて

SCA ノード・サンプルは、2 つのメッセージ・フローで構成されています。

拡張されたサンプルでは、以下のことを実行する追加のメッセージ・フローが使用されています。

以下の総括ダイアグラムは、WebSphere Message Broker 上のメッセージ・フローと、WebSphere Process Server 上のビジネス・プロセスの間の関係を示しています。

WebSphere Message Broker と WebSphere Process Server の間の関係を示すダイアグラム

  1. Web ブラウザーが WebSphere Message Broker 上の BankTransferRequestInitiator メッセージ・フローに要求を送信することにより、処理が開始します。
  2. BankTransferRequestInitiator メッセージ・フローから HTML 入力フォームが送られます。
  3. フォームのデータを、WebSphere Message Broker 上の 2 番目のメッセージ・フローである、BankTransferRequest に送信します。
  4. こちらが送信したデータを、BankTransferRequest メッセージ・フローは、WebSphere Process Server 上の SavingsAccount ビジネス・プロセスへの要求として送信するために準備します。
  5. SavingsAccount ビジネス・プロセスは普通預金の勘定残高を更新し、BankTransferRequest メッセージ・フローに応答を返します。
  6. BankTransferRequest メッセージ・フローはこの応答を Web ブラウザーに返します。
  7. 拡張されたサンプルでは、普通預金口座に加えて、リンクされた当座預金口座を導入します。SavingsAccount ビジネス・プロセスは、WebSphere Message Broker 上の CurrentAccount メッセージ・フローへの要求として送信するデータを準備します。
  8. CurrentAccount メッセージ・フローは当座預金の勘定残高を更新し、SavingsAccount ビジネス・プロセスに応答を返します。

銀行振替要求イニシエーター

この簡単なメッセージ・フローは、以下のノードから構成されています。

振替要求イニシエーターのメッセージ・フロー

ブローカーは、HTTP トランスポートを使用して、ブラウザー・クライアントから URI の形式で要求を受け取ります。

JavaCompute ノードは以下のことを行います。

  1. ファイル・システムから該当する残高を読み取ります。
  2. 勘定残高を HTML 入力フォームとともに表示するメッセージ本体を作成します。このフォームには、WebSphere Process Server に振替要求を送信するのに必要なすべてのフィールドが設けられています。
  3. このメッセージのコンテンツ・タイプをテキストまたは HTML に変更します。次いで、これは要求への応答として送信されます。

銀行振替要求

ブラウザー・クライアントから振替要求のタイプを選択し、振替金額を入力して、「送信」をクリックします。

フォームを送信すると、HTTP を使って、これらのプロパティー値が、HTTP ポート上で listen している別のメッセージ・フローに送られます。

このメッセージ・フローは、以下のノードから構成されています。

銀行振替要求のメッセージ・フロー

メッセージ・フローはプロパティー値を MIME メッセージ・パーツとして受け取ります。

JavaCompute ノードは、金額から XML 要求メッセージを作成し、Local Environment SCA 操作を振替要求タイプでオーバーライドすることにより、これらのプロパティー値を処理します。

応答メッセージが SCA Asynchronous Response ノードに到着するときに要求 ID が失われることのないよう、この ID はユーザー・コンテキストにコピーされます。 発信元のクライアントに応答を返すには、この ID が必要です。

振替をこの段階で妥当性検査することも可能です。無効の、またはブランクの金額が指定されると、MbUserException が生成されます。妥当性検査が失敗すると、ユーザー例外は Failure ターミナルを介して伝搬されます。 発信元のクライアントへの応答メッセージには、例外メッセージが組み込まれます。 正しい金額を指定できるよう、銀行振替フォームへ戻るよう経路指定するには、「OK」をクリックします。

妥当性検査が成功すると、XML 振替要求メッセージが SCAAsyncRequest ノードに伝搬されます。 このノードは、WebSphere Process Server によってホスティングされる、指定された SCA サービスへメッセージを送信します。 この SCA サービスには、普通預金口座の処理に関連したビジネス・ロジックが入っています。

要求が処理された後、XML 振替応答メッセージは WebSphere Message Broker に送り返され、そこで対応する SCAAsyncResponse ノードによって処理されます。銀行振替要求が正常に処理されると、新しい預金残高が応答メッセージに組み込まれます。銀行振替要求が失敗すると、前の預金残高が使用されます。

応答メッセージを発信元のクライアントに送り返せるよう、要求 ID もローカル環境から取り出されて、Destination フォルダーにコピーされます。

普通預金口座

普通預金口座は WebSphere Process Server 上でホスティングされます。 これは以下のものから構成されます。

これらのコンポーネントはアセンブリー・ダイアグラムの中で接続されています。

普通預金口座のアセンブリー・ダイアグラム

ビジネス・プロセスの実装は、それぞれ 2 つの操作要求に対応する、以下の 2 つの部分に分けられます。

普通預金口座のビジネス・プロセス・ダイアグラム

着信 XML メッセージ要求が普通預金口座への振替であった場合、ビジネス・プロセス変数はこのメッセージにより初期化されます。 Java インターフェースを使用して預金残高がファイルから読み取られ、要求された金額が貸方に記入されます。 この新残高は、Java インターフェースを使用してファイルに書き戻されます。メッセージ応答が作成されて (関係する値はビジネス・プロセス変数によって書き込まれる)、呼び出し元に送り返されます。

着信 XML メッセージ要求が当座預金口座への振替であった場合、ビジネス・プロセス変数はこのメッセージにより初期化されます。 Java インターフェースを使用して預金残高がファイルから読み取られ、要求された金額が借方に記入されます。 新残高がゼロ以上の場合、新残高は、Java インターフェースを使用してファイルに書き戻されます。 新残高がゼロより小さい場合、旧残高がファイルに残されます。 メッセージ応答が作成されて (関係する値はビジネス・プロセス変数によって書き込まれる)、呼び出し元に送り返されます。

サンプルのホームに戻る