其他BPM技术
XPDL
XPDL是工作流管理联盟(WfMC)自1993年以来将BPM建模者统一到一个标准下的结果。这个标准关注于用来存储和交换过程模型的XML格式。XPDL过程是基于图形的,这意味着它比BPEL树形结构更适合业务分析师。一个XPDL过程还可以在一个过程图中包含图形信息,如活动在过程图中的坐标。当过程建模者和模拟工具之间交换过程模型的时候,这个功能非常方便。XPDL还有任务管理功能,包括泳道。这种过程语言不会象BPEL那样为不同活动定义明确的执行语义。
John Pyke和Keith Swenson不断地强调XPDL并不是要与BPEL竞争。相反,他们认为XPDL是一种文件交换格式。假如这就是目标,那它们很可能会被即将到来的BPDM取代——如果后者曾见光的话。
与基于WSDL的BPEL不同,XPDL是技术中立的。这意味着XPDL有一个单独的间接层来为所谓的‘应用’服务。XPDL 2.0明确地为适应BPMN而设计。XPDL本质上是基于图形的,所以它更适合BPMN。在XPDL 2.0中,规范明确指出所有的BPMN属性都可以匹配到XPDL。XPDL绝对比BPEL更适合BPMN。但XPDL/BPMN组合和BPEL的很大程度的区别在于后者有精确的执行语义。
BPDM
尽管BPDM不是新东西,但它依旧还处于内部讨论阶段,没有正式发布。通常,BPDM应该包括表示业务过程的模型和一个文件格式。因为BPMN和BPDM都在OMG,未来它可能取代XPDL成为一种交换文件格式。关于这个项目还没有多少正式的信息。Fred Cummins如此描述BPDM的宏观目标:
规范提供了BPMN图形的底层模型表示。这意味着BPMN过程模型会有一个标准表示,以便在基于XMI(模型交换XML)的建模工具间的交换模型。规范为编制过程(那些按规定执行的过程)和编排(描述多个独立过程间进行交换的规范,这种交换仿佛发生在一个Web服务交换中)提供了正式的表示。
Keith Swenson保守地声称BPDM可能将取代最近15年在XPDL上的努力工作。Sandy Kemsley对Fred的介绍进行了汇报总结。
jPDL
jPDL实际上不是一个标准,而是我们作为JBoss jBPM项目一部分创建的一种可执行语言。注意,jBPM以前只支持jPDL语言,但jBPM现在是一个过程语言平台,jPDL只是所支持的语言之一。这种语言的目的是成为一种可以清晰地把图和技术细节解偶的可执行语言。技术细节集中在Java平台。
正如我们以上所见,BPMN适合分析员,但它是不可执行的。BPEL是可以执行的,但不适合BPM。因此,我认为BPMN/BPEL组合依旧是BPM蹩脚的解决方案,因为它们不能很好的匹配。
从另一个方面来讲,jPDL是一门关注自由建模的可执行语言。首先,它是基于图的。第二,具有大量支持更好解耦过程图和技术细节的特性。例如,使用jPDL,可以在图中加入隐藏的代码。它们被称为动作。这种风格的另一特性是可以引用节点运行时行为的客户化Java代码。这样,开发者就可以自由地开发出分析员在某个过程节点中想要的特殊行为。
另外,这种语言并不试图统一分析模型和可执行过程模型,但上述特性使它能够更容易地支持分析和执行小节所讲的软件开发过程。jPDL已在Java社区里得到了广泛采纳。
编排
ebXML & WS-CDL 是编排的标准化成果。John Reynolds这样描述编制和编排的区别:
编制 == 可执行过程
Web服务编制与执行特定的业务过程相关。WS-BPEL是一种用来定义可以在一个编制引擎中执行的过程语言。
编排 == 多方合作
Web服务编排与描述Web服务间外部可见的交互相关,WS-CDL是一种描述多方契约的语言,有些类似WSDL扩展;WSDL描述Web服务接口,WS-CDL描述Web服务间的合作。
编制是一种可执行过程,而编排是用来指定多方合作的协议。所以BPEL是一种编制语言。这意味着BPEL过程可以在一个系统上执行。因为一个编排过程定义了多方合作的方式,一个编排过程本身并不能被直接部署。相反,必须为一个参与者采用一个投影,而那个投影可以是一个执行过程。
在这个余下文章中,我将描绘可执行过程语言市场现状。编制语言没有坚实的构建基础。在我看来,这是这种语言仍处于边缘化最重要的原因。