BPMN和BPEL

BPMN这点事-那段悲催的历史

https://blog.csdn.net/ronghao100/article/details/6617257

BPEL的流行还在于Web正成为分布式系统架构的平台以及SOA的雄起,SOA强调服务的分解和解耦,而BPEL则对这些WEB服务进行编制,两者密不可分。但BPMN到BPEL的转换存在着先天上的缺陷,原因是BPMN是基于图的,而BPEL是基于块的,BPEL是一个结构化(块[Block])和非结构化(控制链和事件)的混合体。这个缺陷导致有些BPMN建模的流程无法映射到BPEL,两者的双向工程更是存在问题。这个缺陷成为人们反复诟病的对象。许多支持BPEL的产品为了解决这一问题,不得不在用户建模时做出种种限制,让用户绘制不出无法转换的模型。

编制与编排的区别

https://blog.csdn.net/ronghao100/article/details/6685140

在上文中,我们提到了服务的编制(Orchestration),这里,我们又提到了编排(Choreography),这两者是有很大区别的。

WS-BPEL将SOA中的服务按照一定的顺序灵活组装在一起的流程就是编制(Orchestration)。编制后的WS-BPEL流,通常代表了某个特定的业务中的服务的执行流。而编排(Choreography)则是描述参与者之间交互关系的流程。与编制不同的是,编排并不需要一个执行引擎,它只是描述关系。编制代表的是一个可执行流程,它必须通过执行引擎来执行。而编排实质上是代表一种描述,即参与者之间如何互相协调来完成一个目标。

John Reynolds在其博客中是这样描述编制和编排的区别[1]:
编制 == 可执行过程
Web服务编制与执行特定的业务流程相关。WS-BPEL是一种用来定义可以在一个编制引擎中执行的流程语言。
编排 == 多方合作
因此编制必须对应一个执行引擎,而编排由于涉及到多方合作,所以它是不能被直接部署的。

猜你喜欢

转载自blog.csdn.net/eternalwish/article/details/80382033