XPDL与WS-BPEL的比较之二:二者内容的大致概述

从严格意义上讲,BPEL与XPDL不是一个层次的规范 。如BPEL的主要是用来支持基于Web service的自动化业务流程,没有任何有关人工活动的内容。

WfMC制定的XPDL标准表现为一种流程定义的格式,它是一个围绕BPM建模、仿真、运行和管理整个生命周期所建立的模型。它可以表述流程定义的绘制。 XPDL的节点元素具有X/Y坐标和大小,XPDL具有连接弧的概念,可对连接弧的转移给予具体的条件设置。节点和连线指定了执行方面的具体信息,比如角 色、活动描述、实现、Web Service调用等。XPDL2.0包含对使用BPMN进行描述的扩展。XPDL可保证流程定义在两个设计工具之间进行交换,并保证流程执行语义的一致 性。

WS-BPEL是一种“执行语言”。WS-BPEL的目标是提供Web Service编排的定义,如顺次交互,从一个点到另一个点的数据流。它具有语法结构,包含变量和操作。操作可以发送和接受SOAP消息,对XML和 XML转换有强大的支持。可以方便的同时调用多个Web Service,并同步结果。它不具有任何支持图形表示的元素,例如活动没有大小和位置,也没有可以表述“指向”的元素。以下是BPEL的主要内容:

  1. 编排Web Service的各种交互,如invoke、receive、reply等。
  2. 顺序、分支和各种流程控制方式。
  3. 异常处理,包括错误条件,事务和补偿。
  4. 数据流和数据操作。
  5. 超时处理。

XPDL相比WS-BPEL缺乏的部分
由于二者面向目标的差异,XPDL相比WS-BPEL缺乏的部分主要有:
1.WS-BPEL使用sequence、if/else、repeatUntil、pick、links、forEach等结构化xml元素 (Structured Activities)表述对Web Service的调用顺序关系,类似于一种使用XML对Web Service进行编程的语言。而XPDL没有这些元素,XPDL使用连接弧的转移表达节点的先后执行顺序。XPDL的节点类型主要为为自动节点、人工节 点、嵌套子流程、块活动、路由活动等。
2.WS-BPEL使用assign、query、from/to等xml元素执行流程属性数据的赋值运算等;XPDL没有这些元素。

WS-BPEL相比XPDL缺乏的部分

同样,由于二者面向目标的差异,WS-BPEL相比XPDL缺乏的部分主要有:
1.WS-BPEL本身没有任务分配方式的概念。
2.WS-BPEL缺乏子流程SubFlow的语义,IBM有一份在bpel4ws之上扩展 SubFlow 的规范。
3.WS-BPEL没有“应用程序application”定义的概念,对于WS-BPEL的invoke、receive、reply等类型节点与外部 的调用均是对Webservice的调用。而XPDL通过“应用程序application”定义各种各样的应用程序,表示人工参与到流程中需要执行的各 种程序。这些应用程序可以是Java方法、C/S客户端、电子表单、自动的Web Service调用等各种内容。
4.XPDL定义了流程仿真、流程版本等元素,WS-BPEL没有这些概念。

你可能感兴趣的:(XP)