2012-04-11 48 views
6

我们可以放心地说,如果ESB提供编排功能,那么它有资格成为BPM的实施吗?BPM vs ESB - Orchestration?

我知道BPM有一个不同的目的,就是对一些业务流程进行建模,并且可以通过任何简单的Java/J2EE应用程序,复杂的SOA应用程序或某个应用程序来完成这些业务流程的实现,并说我提供BPM 。是对的吗?

回答

10

第一个问题:

你的声明是有效的一些经营流程,其仅仅是模型请求 - 响应交互。

但是,当谈到复杂的业务流程时,我们需要考虑除编排功能以外的其他一些功能。在这里,我列出了几个这样的场景。

  1. 让我们开始一个需要长时间保持其状态的业务流程。我们通常称它们为国营或长期运营的业务流程。为了支持这些类型的业务流程,应该有一个状态持久性机制。此功能与编排功能无关。
  2. 考虑一个业务流程,这需要一些补偿功能。在这种情况下,一些业务流程建模标准(如WS-BPEL)已经定义了它的compensation mechanisms。因此,除了编排功能外,还有一些其他功能需要考虑。

第二个问题:

是。但是与您提到的实现机制相比,BPM引擎中有几个优点。

一个优点是,无法从Java应用程序实现由BPM引擎提供的建模抽象级别。比方说,我们使用JAVA应用程序来实现业务流程逻辑,并将业务流程投入生产。假设我们需要更改其合作伙伴服务的端点网址。在这种情况下,现在业务流程实施需要修改,重新编译并部署回生产系统。如果我们使用像WS-BPEL这样的业务流程语言标准来实现业务流程,那么我们可以非常轻松地更改业务流程配置并将其推回到生产中。这提高了效率并降低了业务维护成本。 还有其他原因,如适应性和灵活性。

+1

完美答案!感谢您的解释。 (http://stackoverflow.com/questions/345749/is-orchestration-an-esb-responsibility)这个问题也非常相似,并已被精美地回答。 – 2012-04-13 10:09:54

+1

很好的解释! – 2013-06-03 20:56:23

7

我创建这些幻灯片前段时间正好说明了如何使用这两个和它们之间的关系: http://www.slideshare.net/salaboy/jbpm5-community-training-module-25-bpm-for-developers

你需要了解的东西就像BPEL/ESB /业务流程之间的不同观点BPMN(面向业务)他们有非常不同的范围。

干杯

+0

这似乎是一个很棒的演示。我想给+20的演示文稿,不知道这是可能的。 – 2012-04-13 10:56:26

+0

我对演示文稿有几个问题,例如我认为我们可以放心地说“一个工作流可以被表示为/是一个过程”。从演示文稿看来,这似乎是不正确的。需要理由/差异。我可以在类似的问题上进行讨论/聊天/邮件交流吗? – 2012-04-13 10:57:46

+0

业务流程可以被认为是更高层次的业务相关表示。如果你是一个技术人员,你需要尽量不要搞错,你可以使用一个非常技术性的目的,这是不相关的商务人士一个状态机。如果您想要,可以写下我的博客的问题:http://salaboy.com – salaboy 2012-04-19 09:19:01

3

通常ESB被分配给中间层 - 策划低层次服务为更大的服务单位,将被暴露在业务使用过程 - 在顶层的BPM。

因此,业务流程编排层将使用BPM,ESB将通过在业务服务和服务支持中工作来启用和促进这一点。

换句话说,首先您需要将所有的系统和应用程序公开为服务;这是ESB进场的地方。

你可以看到这个链接:http://blogs.mulesoft.org/why-bpm-and-esb-need-to-work-together/

-2

让我做BPM,业务流程和ESB之间的区别更加明确,通过设计模式和规范。

一般来说,“Orchestration”已被定义为采用过程抽象,过程集中和State Repository设计模式的复合模式。由于实施了State Repository模式,与之前的文章相反,Orchestration支持长时间运行的同步业务流程,就像BPM一样。

2的主要实际区别在于协调中间件(例如WebSphere Process Server,BizTalk,Oracle BPEL Manager和Windows Workflow Foundation)支持大多数WS *规范。这包括Ws BPEL,Ws安全性,Ws原子事务处理,Ws业务活动,Ws可靠消息传递等,而大多数BPM工具不。

因此,可以随意在企业级使用业务流程,但在该范围内使用BPM时要非常小心。

实际上,BPM和业务流程工具都支持业务流程的图形表示。的区别在于,业务流程可通过厂商中立 BPEL(商务处理执行语言)来表示,而BPM经由供应商特定 BPMN(业务流程建模符号)表示。这是在SOA /企业级避免BPM工具的另一个原因。

在BPM工具实现Ws *规范的情况下,它是一种适用于所有实际目的的编排引擎。 BPM工具依赖于特定于供应商的BPMN和编排工具依赖于供应商中性BPEL。

在两个BPM和业务流程需要共存,限制BPM应用程序架构(如MVC风格),并让业务流程促进企业资产的共享情况。

ESB是一种完全不同的动物。应该用于异步,而不是同步过程和依赖于一组不同的设计模式(即服务代理,异步排队,中间路由,和内容富集图案)