ビジネス プロセス管理ソリューションのパターン カタログ
ビジネス プロセス管理ソリューションのパターンとしては、前のセクションのエンタープライズ統合パターンや BizTalk Server をプログラミングする一般的なパターンがあります。 このセクションの一覧は、両方のパターンを含みます。
パターンの種類
次のエントリでは、パターンについて簡潔に説明し、ソリューションでパターンが使用される方法を説明する他のトピックを記載しています。 フィルタなどの一般的なパターンの場合、エントリは、さらに一般的なトピックを示します。
アプリケーション参照パターン
BizTalk Server、アプリケーションは、他のアプリケーションへの参照を追加することで、同じグループ内の別のアプリケーション内の成果物を使用できます。 ビジネス プロセス管理ソリューションは、テスト ソリューションの設計メイン ソリューションでアプリケーション参照を使用します。 ソリューション内のアプリケーション参照の詳細については、「 ビジネス プロセス管理ソリューションの一部の設計原則」を参照してください。
非同期応答パターン
注文マネージャ ステージと注文処理ステージ間の通信は、非同期です。 つまり、応答を受信するまで、マネージャが処理を続行します。 これらのステージでは、マネージャに応答を送信する自己関連付けを行う動的ポートを使用します。 自己関連付けを行うポートを使用すると、関連付けセットを管理する注文マネージャが不要になります。 ポートが動的なので、注文マネージャは、応答用のポートのアドレスを注文ステージに送信できます。 ソリューション内のポートの詳細については、「 プロセス マネージャーを使用した注文フロー」を参照してください。
正規メッセージ パターン
ソリューション処理を簡単にするには、多くの場合、外部メッセージを内部形式に変換します。 この形式には、正規メッセージがあります。 注文ブローカのオーケストレーションは、すべての注文メッセージを 1 つ以上の正規型の注文メッセージに変換します。 注文マネージャのオーケストレーションおよび処理ステージで、この一般的な注文形式が使用されます。 詳細については、「 OrderBroker オーケストレーションでの処理」を参照してください。
コードの再試行および例外処理パターン
このソリューションは、例外処理の大部分を ExceptionHandler オーケストレーションで一元化します。 このソリューションは、切断されたネットワーク接続で再試行すると処理が成功する可能性がある場合にこのオーケストレーションを使用します。 オーケストレーションでは 、Recaller オブジェクトを使用して、失敗したコードを再実行します。 オーケストレーションの詳細については、「 ビジネス プロセス管理ソリューションでの例外処理」を参照してください。 ExceptionHandler オーケストレーションに関するページも参照してください。 Recaller オブジェクトの使用方法の詳細については、「Recaller オブジェクト」を参照してください。
コンボイ パターン
注文マネージャのオーケストレーション OrderManager では、コンボイ パターンを使用して、処理する注文に対して後で変更を行います。 注文マネージャーのコンボイ パターンの詳細については、「プロセス マネージャーを 介した注文フロー」の「Order Update」を参照してください。
配信通知を使用した調整
OrderBroker オーケストレーションでは、配信通知を使用して、履歴が 2 番目の注文処理ステージ (CableOrder2) によって更新される前に、履歴データベースにエントリが作成されるようにします。 詳細については、「 プロセス マネージャーを使用した注文フロー」の「ステージとの調整」を参照してください。 配信通知に関する一般的な情報については、「 受信確認の使用」を参照してください。
カスタム例外パターン
再試行できない例外に対して、このソリューションは、カスタム例外処理と通常の BizTalk Server 例外処理を行います。 カスタム例外処理では、より詳細な例外処理を行います。 また、操作のすべての部分がロールバックされるようにするために、入れ子になったスコープ間のフラグとしても使用されます。 ソリューションによるカスタム例外の使用の詳細については、「 カスタム例外」を参照してください。 スコープの詳細については、「スコープ 図形を構成する方法」を参照してください。
分離したオーケストレーションのパターン
ビジネス プロセス管理ソリューションの設計では、オーケストレーションを可能な限り分離します。 オーケストレーションを分離すると、ソリューションの部分のバージョン管理や他のサーバーまたはグループへの移動が簡単になります。 注文ブローカーと注文マネージャーの関係の詳細については、「Process Manager を使用 した OrderBroker オーケストレーション と 注文フローでの処理」を参照してください。
エラー ルーティング パターン
このソリューションは、BizTalk Server の新しいエラー報告機能を使用します。 この機能は、報告用または処理用のサブスクライブの対象となるポートに失敗したメッセージをルーティングします。 エラー報告の一般的な情報については、「 失敗したメッセージ ルーティングの使用」を参照してください。
フィルタ パターン
フィルタ パターンは、処理に使用する特定の基準を満たすメッセージを選択します。 ほとんどの場合、BizTalk のフィルタ パターンは、ポートのフィルタ式になります。 ポートのフィルターの詳細については、「 メッセージの受信図形でフィルターを使用する」を参照してください。
割り込み可能なオーケストレーション パターン
このソリューションは、最初に現在の注文を中断して、注文の更新や取り消しを行います。 このソリューションのオーケストレーションは、Interrupt オーケストレーションを使用して、割り込みを処理します。 詳細については、「 ビジネス プロセス管理ソリューションでの割り込み処理」を参照してください。
逆のパートナーの直接バインド パターン
このソリューションは、直接バインドを逆に行い、注文マネージャの注文処理ステージを分離します。 逆ダイレクト バインディングの詳細については、「 逆ダイレクト パートナー バインド」を参照してください。
メッセージ ブローカー パターン
メッセージ ブローカ パターンを使用すると、送信者が送信先を認識しなくても済むように、このソリューションでメッセージの送信先を決めることができます。 ビジネス プロセス管理ソリューションは、 OrderBroker オーケストレーションを使用してメッセージ ブローカーを実装します。 OrderBroker オーケストレーションは注文を受け取り、注文するサービスの種類を決定し、注文を正しい注文マネージャーにルーティングします。 OrderBroker でのメッセージ ブローカーの詳細については、「OrderBroker オーケストレーションでの処理」を参照してください。
入れ子になったスコープのパターン
OrderBroker オーケストレーションは、永続化ポイントを最小限に抑えるために入れ子になったスコープを使用するため、効率を向上させます。 詳細については、「 OrderBroker オーケストレーションでの処理」の「入れ子になったスコープを使用したパフォーマンスの向上」を参照してください。
インスタンスごとのパイプライン構成
このソリューションは既定のパイプラインを使用しますが、メッセージのエンベロープを指定するため、新しいインスタンスごとのパイプラインの構成を広範に使用します。 詳細については、「How to Deploy Pipelines and Components of the Business Process Management Solution」を参照してください。
プロセス マネージャ パターン
このソリューションは、比較的一般的な注文マネージャを使用して、注文処理ステージのフローを制御します。 このため、注文処理の管理からビジネス ロジックを分離できます。 OrderManager オーケストレーションがプロセス マネージャーとして機能する方法の詳細については、「 プロセス マネージャー ロジック」を参照してください。
オーケストレーションの終了時の終了図形
いくつかのオーケストレーションでは、オーケストレーションが正常終了する場合でも、エラーに対する終了図形を使用します。 終了図形を使用すると、失敗したインスタンスおよびエラーを追跡できます。 詳細については、「 カスタム例外」を参照してください。
変換者パターン
トランスレーターのエンタープライズ パターン (つまり、あるフォームから別のフォームへのメッセージの変換) は、ほとんどの場合、BizTalk マップに変換されます。 BizTalk マップの一般的な情報については、「 BizTalk マッパーを使用したマップの作成」を参照してください。
バージョン管理パターン
ビジネス プロセス管理ソリューションでは、オーケストレーションを分離してスキーマの名前空間のバージョン番号付け機能を使用することにより、ソリューション コンポーネントのバージョン管理を簡単に行えるようにしています。 詳細については、「 ビジネス プロセス管理ソリューションのバージョン管理」を参照してください。