次の方法で共有


Order Handler オブジェクトを使用してバックエンド システムと通信する

ビジネス プロセス管理ソリューションが、最終的な注文を受け取るケーブル プロビジョニング システムである従来のバックエンド注文システムと通信する方法は多数あります。 このソリューションでは、Microsoft .NET Framework にある .NET リモート処理機能を使用して、プロビジョニング システムと通信します。

このソリューションでは、インターフェイスを使用してバックエンド システムへのアクセス オブジェクトを定義する一般的な手法を使用します。 インターフェイスを別のアセンブリに配置することで、クライアント アセンブリは、コンパイル済みアセンブリにアクセスしなくてもリモート オブジェクトにアクセスできます。

IOrderHandler インターフェイスは、バックエンド注文システムと通信するメソッドを定義します。 インターフェイスには、注文を分析、アクティブ化、キャンセル、完了するためのメソッドが含まれています。 また、サービスの種類を識別するためのメソッドも提供します。これは、注文がキャンセルされたときに必要なメソッドです。

CableOrder1CableOrder2、サテライト オーケストレーションでは、IOrderHandler を実装する OrderHandlerWrapper オブジェクトを使用します。 次に、OrderHandlerWrapper オブジェクトは、CableProvisioningSystemServer 実行可能ファイルによって提供される OrderHandler オブジェクトのリモート インスタンスを呼び出します。 ラッパー オブジェクトを使用すると、.NET リモート処理を使用してバックエンド 注文システムと通信し、同時に例外処理コンポーネントの再試行機能を使用できるようにするというビジネス要件が満たされます。

オーケストレーションで参照されるすべてのオブジェクトをシリアル化できる必要があるため、 OrderHandlerWrapper をシリアル化することもできます。 OrderHandlerWrapper を使用すると、シリアル化コードがオーケストレーションから分離されます。

コードを見ると、 OrderHandlerWrapper オブジェクトによって ISerializable インターフェイスが明示的に実装されます。 オブジェクトは既定以外のコンストラクターを使用するため、独自のシリアル化を処理する必要があります。

.NET リモート処理を使用してバックエンド システムと通信する方が、メッセージングを使用するよりも効率的です。 一方、純粋なメッセージング ソリューションよりも、オーケストレーションをより緊密にバックエンド システムにバインドします。 また、.NET リモート処理を使用すると、要求を再試行するための組み込みの BizTalk Server 機能をソリューションが利用できなくなります。

こちらもご覧ください

ビジネス プロセス管理ソリューションの実装のハイライト
プロセス マネージャー ロジック