次の方法で共有


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

最終的な注文を受信する既存のバックエンド システムである Cable Provisioning System とビジネス プロセス管理ソリューションが通信する方法は多数存在します。 このソリューションでは、Microsoft .NET Framework で提供されている .NET リモート処理機能を使用して Provisioning System と通信します。

このソリューションでは、インターフェイスを使用してバックエンド システムに対するアクセス オブジェクトを定義する一般的な方法を使用します。 独立したアセンブリにインターフェイスを配置することにより、クライアント アセンブリは、コンパイルされたアセンブリにアクセスする必要なく、リモート オブジェクトにアクセスできます。

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

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

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

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

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

参照

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