bpel:浅析XPDL和BPEL现状

=Title_blue>      【TechTarget中国原创】实战派XPDL 

  XPDL(XML Process Definition Language)缩写是由Workflow Management Coalition(WFMC)所提出个工作流描述规格使用XML文件让区别工作流程软件Software间交换商业流程定义XPDL是个通用框架据WFMC认证列表统计目前全球约有80个厂商支持该标准包括我们熟悉IBM、BEA(Oracle)、Tibco相关流程产品目前XPDL最新版本是2.1(2008年4月23日approve version)

        WFMC为实现区别工作流产品间互交换给定了5类接口规范标准(Interface)其中我们讨论XPDL是其Interface1XPDL给定了流程定义间进行相互转换XML Schema元模型这个XML Schema可理解为和运行控制无关描述结构,为设计流程和运行流程提供了形式上可分离这样无论开发者使用Java、.Net还是轻量级PHP、Python语言采用有限状态机还是Petri网只要外部接口符合XPDL规范标准那么就可以保持相同表示形式和互操作这就为厂商间标准合规性验证提供了个通用描述框架更重要是XPDL对不支持厂商个性场景提供了扩展这个扩展框架约束能够保证流程对外表现形式致性正是这个定位使得XPDL在和十几年中出现众多潜在新兴竞争标准的争中仍然保持旺盛生命力并催生了区别竞争活力工作流产品对于实现XPDL规范标准工作流产品目前个通常方式是采用BPMN进行建模以XPDL为持久格式由厂商实现流程引擎执行该描述 

  XPDL主要元模型包括了过程活动、转移连接弧(可理解为规则)、参和者(过程活动所需资源在XPDL中参和者模型被抽象为个分配对象可能是现实世界人也可以是个系统或服务)、声明(过程活动IT应用或接口服务例如个人工任务交互表单、Web服务)和工作流相关数据(运行期间持久化流程例子控制数据)
WFMC工作流联盟是个活跃了十 5年民间组织官方宣称有超过300个成员在欧洲、美洲及亚太设有指导委员会每隔 3年举办次大规模工作组会议XPDL除了得到大部分国际工作流厂商和Opensource支持外在中国也有不少工作流厂商支持该标准
 
  “老”贵BPEL 

  BPEL(Business Process Execution Language)缩写直意为业务过程执行语言种基于XML用来描写业务过程编程语言被描写业务过程每个单步骤则由Web服务来实现这个描述本身也由Web服务提供即BPEL模型本身也被当做Web服务来使用BPEL在过去很长段时间被视为未来工作流标准“新贵”经过 8年发展目前BPEL规范标准已在Oracle、IBM等厂商SOA产品中提供支持可以说是新贵变”老”贵了
 
  BPEL基于Web ServiceWSDL建立相关标准还包括XML Schema、XPath、WS-Addressing等SOA标准最初BPEL标准被定位于大规模分布式商业应用下服务编程语言不支持人机对话人工流程BPEL所描写过程仅和Web服务通信而这些Web服务却可以提供和用户信息交换但它们不是用户本身BPEL从2002年提出后也是在不断更新在随后加入了些重要扩展规范标准例如BPELJ(允许BPEL XML中加入Java需要澄清是BPEL不仅能够执行Web服务还可以通过厂商扩展调配JCA、JMS等)、BPEL4People和WS-HumanTask(虽然在分布式商业应用中广泛采用了Web服务但是缺乏人员交互是应用于真实世界业务过程大差距这个扩展使BPEL能够兼顾基于角色人工活动编排过程)可以说BPEL在构建符合标准SOA架构中占据重要位置是编排Service杀手锏但目前市面提供BPEL产品在解决企业非流程集成场景方面仍有明显不足我认为BPEL如果不出意外肯定会成为工业界中业务集成方面标准语言如果成为完整工作流工业标准目前还差 

        BPEL是种基于块(Block)结构化编程语言可以在符合BPEL标准引擎上执行作为门简单编程语言包括了基本顺序(Sequence)、选择(Switch)和循环(While)语言控制结构和XPDL工作流例子区别BPEL通过 receive和 pick活动提供进入流程入口点利用个特定于消息 XPath 表达式匹配从 WSDL相关消息集合(Correlation Set)例子中定位例子操作在BPEL中个流程可以其他服务也可以响应来自客户端请求(receive和 pick)也就是说BPEL流程例子既可以作为服务请求者也可以扮演服务提供者
 
  XPDL和BPEL区别关系 

  XPDL和BPEL是完全区别且互补标准BPEL是个“执行语言”旨在提供个Web服务编排定义BPEL定义关注个进程以Web服务和XML数据集成为主可执行而XPDL则是个和开发者相关实现无关流程过程描述规范标准和交换接口在工作流结构完整性方面XPDL较为成熟但XPDL未在基于SOA架构下服务编排方面给定更多标准化交换格式大部分BPM厂商均以XPDL扩展语法提供私有扩展而此部分正是BPEL所努力虽然BPEL已经向其不擅长人工流程和非Web Service服务编排领域拓展规范标准但仍然需要在非集成领域流程规范标准方面向XPDL老大哥学习比如在面向BPM业务分析师视角目前BPEL2.0尚缺失对过程模拟规范标准制定 




        不分伯仲各领风骚

  下表数据来自个人对2010年初各BPM厂商提供软件Software版本中对XPDL/BPEL导入导出试用评估请以BPM厂商介绍说明为准这里仅供参考可以看出无论是“老”贵BPEL还是老资历XPDL在市面上很长段时间将仍然并行在各个工作流产品中面对这两个存在定竞争关系流程标准BPMN至少已成赢家XPDL和BPEL标准的争似乎在学术界已有落音但是在2010年面对市场商业化产品进程上两者将继续不分伯仲各领风骚


Tags:  bpel教程 xpdl bpel是什么 bpel

延伸阅读

最新评论

发表评论