ワークフロー エンジンは外部イベントをどのように受信するのでしょうか?

StackOverflow https://stackoverflow.com/questions/3675331

質問

WorkflowRuntime workflowRuntime = new WorkflowRuntime();

 ExternalDataExchangeService dataExchangeService;
 dataExchangeService = new ExternalDataExchangeService();
 workflowRuntime.AddService(dataExchangeService);

 PaymentProcessingService paymentProcessing;
 paymentProcessing = new PaymentProcessingService();
 dataExchangeService.AddService(paymentProcessing);

上記のコードを使用すると、アプリケーションはpaymentProcessing.RaiseXXXXEventを使用してワークフロー インスタンスと対話できます。私の質問は次のとおりです。そのようなメカニズムを実装する原理は何ですか。これは一種だと思います イベント駆動型パターン, しかし、このメカニズムを実装するにはどうすればよいですか?またその理由は何ですか?方向性を教えてください。または参考になれば幸いです。

ところで、jBPMにはそのような仕組みがあるのでしょうか?jBPM には、ウィンドウ ワークフロー基盤のようなシーケンス ワークフローとステート マシン ワークフローが含まれていますか?

ありがとう !

役に立ちましたか?

解決

WF は、スレッド スケジューリング、ワークフローを処理する一連のコア ワークフロー サービスを定義します 永続化、トランザクション、およびワークフローの追跡。WF のデザイナは、 これらのサービスをランタイムエンジン自体に実装しますが、賢明にも外部化することを選択しました それら、それらの実装を プラグ可能なサービス。これにより、あなたがコントロールできるようになります. 。決めるのはあなたです 使用するサービス (一部はオプション) と、各サービスに使用する実装。

WF は、ローカル サービス (データ 交換サービス)。お客様ご自身で設計・実装していただくサービスです。ローカルサービスは、 目的はほぼすべてですが、一般的な用途の 1 つは、ワークフロー インスタンス間の通信を容易にすることです とホスト アプリケーション。これとは対照的に、コア ワークフロー サービスにはそれぞれ目的があります (たとえば、 永続化、追跡) は、Microsoft によって定義されています。代替実装を開発できます ただし、定義された目的は変わりません。

ワークフロー インスタンスでローカル サービスを利用できるようにします。これを行うにはいくつかの方法があります。最も簡単な方法は、CallExternalMethodActivity を使用して構成することです。

また、サービスにはインターフェイスがあり、[ExternalDataExchange] で装飾されている必要があります。

コア サービスの独自の実装を作成することを検討している場合は、これを提供する方法について説明したリンクを参照してください。 独自のコアワークフローサービス.

http://msdn.microsoft.com/en-us/library/ms734705(v=VS.90).aspx

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top