(5)Shark工作流的实现和WMFC&OMG规范的对比

Shark工作流的实现和WMFC&OMG规范的对比
-----第五部分:工作流的实例化


关键字:Shark 工作流 WMFC OMG 规范
学习了这么多的开源框架,准备自己也实现一个。万事开头难,先说说如何用XPDL来描述流程中需要包含的信息和如何实例化一个流程。

在shark中有一个Package-Business_Example 的例子。其中Customer Service - Request for Partial Shipment (客户服务—对分装运输的要求)流程信息的xdpl描述如下:





DurationUnit="D">

13-03-2003















The customer (or customer organization) name











The product name











The number of ordered items











The number of ordered items on stock











If customer aggreed on partial shipment, set the value of this variable to "OK", otherwise to anything else ("NOT_OK" for e.g.)









Enter the customer response ("OK" if customer accepts partial shipment)







Participant_Repository_Par10



【(5)Shark工作流的实现和WMFC&OMG规范的对比】

























Asks customer if it is OK to partialy ship the existing number of wanted items







Participant_Repository_Par10

































































解释如下:

这个流程只有两个活动:

1

询问用户时候需要分装运输

2

告诉客户销售



两个活动的转移:





上面的描述只是一个基本的XPDL的实现,在现实世界里所需要的信息是不充分的。

比如:

1、当用户A登陆后,需要知道和用户A相关的那些活动已经启动,并提示用户A,操作这个活动。这样在实例化的流程中需要包含参与者的信息。

2、上面的描述中只是包含了工作流本身的信息,很显然,工作流任务执行的具体最后要落实在业务过程上,那么在实例化后的工作流中应该包含业务的数据,最少应该包含能够找到这个业务的连接数据。

3、工作流具体的状态业务状态在实例化的流程中应该保存起来。



从上面的对比中可以看出,工作流引擎对如何实例化工作信息和业务信息应该是不同的,因为这并不是WMFC规范中的内容。



待续

田春峰

accesine@163.com







    推荐阅读