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还支持另一种称为本地服务的服务(有时称为数据交换服务)。这是您设计和实施自己的服务。本地服务几乎可以提供任何目的,但是一种一般用途是促进工作流实例和主机应用程序之间的通信。与此相比,核心工作流服务每个都有一个由Microsoft定义的目的(例如,持久性,跟踪)。您可以为每个核心服务开发替代实现,但这并不能改变其定义目的。

为您的工作流实例提供本地服务。有几种方法可以做到这一点。最简单的是使用CallexternalMethodactivity并进行配置。

此服务还应具有一个接口,并用[externalDataexchange]装饰。

如果您正在考虑编写自己的核心服务实施,以下是描述如何提供您的链接 自己的核心工作流服务.

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top