オーケストレーションにデザイン パターンを実装する
ここでは、BizTalk Server の一般的なプログラミング パターンとエンタープライズ統合パターンについて説明します。 単一のパターン、または複数のパターンの組み合わせを利用してビジネス プロセスをデザインし、そのデザインを BizTalk オーケストレーション デザイナーの図形によって実装することができます。
設計パターン
次のエントリでは、各パターンについて簡潔に説明し、BizTalk オーケストレーション デザイナーを使用したパターンの実装方法を説明した他のトピックやサンプルについても記載しています。
アグリゲーター
アグリゲーターは、複数のソースから情報を取得して単一のメッセージに統合するパターンです。 このパターンの例については、「Aggregateor の Aggregate.odx (BizTalk Server サンプル)」を参照してください。
オーケストレーションからのパイプラインの呼び出し
使用しているオーケストレーションから送信パイプラインおよび受信パイプラインを呼び出すことができます。 これによって、パイプラインの再利用が可能になり、パイプライン ステージからオーケストレーションを分離できます。 このパターンの例については、「Aggregateor の Aggregate.odx (BizTalk Server サンプル)」を参照してください。 もう 1 つの例は、構成済みメッセージ プロセッサ (BizTalk Server サンプル) の CMP.odx です。 「 式を使用してパイプラインを実行する方法」も参照してください。
構成済みメッセージ プロセッサ
構成済みメッセージ プロセッサは、集計またはバッチ化されたインターチェンジ メッセージの個別の項目を処理するパターンです。 このパターンの例については、「構成済みメッセージ プロセッサ (BizTalk Server サンプル)」の「CMP.odx」を参照してください。
コンテンツ ベースのルーター
コンテンツ ベースのルーターは、メッセージのコンテンツの一部に基づいてメッセージの受信者を決定するパターンです。 このパターンの例については、「CBRSample (BizTalk Server サンプル)」を参照してください。
動的ルーター
動的ルーターは、メッセージ処理の結果に基づいて送信先アドレスとトランスポート プロトコルを決定するパターンです。 動的送信ポートまたは ロール リンク 図形を使用して、このパターンを実装できます。 このパターンの例については、「 SendMail の ReceiveSend.odx」を参照してください。 もう 1 つの例は、PartyResolution (BizTalk Server Sample) の SupplierProcess.odx です。
エラー処理
BizTalk Server を使用すると、失敗したメッセージを保留キューに配置する既定の処理の代わりに、失敗したメッセージの自動処理を指定できます。 報告用または処理用のサブスクライブの対象となるポートに失敗したメッセージをルーティングすることができます。 このパターンの例については、「エラー処理 (BizTalk Server Samples フォルダー)」の「ResubmitLogic.odx」を参照してください。
例外処理と補正
例外処理には、例外ハンドラーと 例外のスロー 図形または 式 図形を使用できます。 たとえば、 式 図形に次のコードを配置して例外をスローできます。
excp = new System.Exception();
throw(excp);
補正ブロックと 補正 図形を使用して、コミットされたトランザクションに対して補正を実行できます。 このパターンの例については、「補正 (BizTalk Server サンプル)」の「UpdateContact.odx」を参照してください。 もう 1 つの例は、 カスタム例外です。
メッセージ ブローカー
メッセージ ブローカーは、メッセージ フローの制御を維持しながらメッセージの宛先を決定するパターンです。 詳細については、「 OrderBroker オーケストレーションでの処理」を参照してください。
メッセージ フィルター
メッセージ フィルターは、処理の特定の基準を満たすメッセージを選択するパターンです。 このパターンを実装するには、アクティブ化された Receive 図形にフィルター式を追加します。 詳細については、「 受信メッセージ図形でのフィルターの使用」を参照してください。
メッセージ トランスレーター
メッセージ トランスレーターは、メッセージの形式を別の形式に変換するパターンです。 このパターンを実装する場合は、BizTalk マップと Transform 図形をオーケストレーションで使用します。 このパターンの例については、「HelloWorld の HelloOrchestration.odx (BizTalk Server サンプル)」を参照してください。
並列コンボイ
パラレルなコンボイは、複数の単一項目を結合し、個々の項目が単独では実現できない処理を可能にするパターンです。 関連する一連の項目は任意の順序で受信されることがありますが、BizTalk Server は、プロセスの開始前にそのメッセージのすべてを受信する必要があります。
スキャッター/ギャザー
スキャッター/ギャザーは、複数の受信者にメッセージを送信し、各受信者から返されるメッセージを受信できるようにするパターンです。 このパターンは、分割パターンおよびアグリゲーター パターンを使用して実装できます。 アグリゲーター パターンを使用して、スプリッター パターンを使用して結果をアセンブルし、 Parallel Actions 図形の下に配置します。
シーケンシャルなコンボイ
シーケンシャルなコンボイは、複数の単一項目を結合し、個々の項目が単独では実現できない処理を可能にするパターンです。 シーケンシャルなコンボイは、事前定義された順序を持つ一連の関連する項目です。 項目は完全に同一である必要はありませんが、BizTalk Server は各項目を順番に受け取る必要があります。
スプリッター
分割は、1 つのメッセージを複数のメッセージに分割するパターンです。
中断後再試行
中断後再試行は、オーケストレーションがエラー発生時にメッセージを中断できるようにするパターンです。 中断はループ内で発生するので、オーケストレーションでは中断してオペレーターの介入を求め、一定の回数だけ操作を再試行します。