XPDL与WS-BPEL的比较之四:工作流模式

二者对工作流模式的支持都比较全面(主要是指常说的Control-flow部分)。

具体可参照列表:http://www.workflowpatterns.com/evaluations/standard/index.php  

 

今天看到的几点,以后可以再补充:

BPEL的一个优势:通过scope元素的isolated属性支持Interleaved Parallel Routing模式:http://www.workflowpatterns.com/patterns/control/state/wcp17.php
这是其他规范所不具备的。

BPEL的块状编程结构使其在以下两个方面略受限,而XPDL则比较擅长:

  1. 任意循环Arbitrary Cycles,http://www.workflowpatterns.com/patterns/control/structural/wcp10.php
    这类似于编程里的goto,在实际业务流程场景中的“退回”需求;
  2. 多重实例的部分模式。

第一条是比较要命的,国内很多都是这种流程;
Albpm的一个实现样例:

而一些产品则需要采用Structured Loop模式变通实现。


第二条BPEL本身不支持多重实例的部分场景,如(Multiple Instances with a priori Run-Time Knowledge,即某个节点定义的创建实例数目是在运行时决定的)
但一些遵循BPEL的产品会有扩展实现,如Oracle BPEL的flowN元素。
Albpm对多重实例也有比较完善的支持,拆分N节点示例:

你可能感兴趣的:(oracle,编程,PHP,工作)