2010-12-17 54 views
4

作为一个初学者,我应该如何去决定一个特定的过程是作为ESB还是作为BPEL来实现的?何时使用BPEL和ESB?

人们应该使用哪些参数来决定是否应该使用实现?

+0

坚定起来的问题了一下:HTTP:// WWW .infoq.com/news/2009/01/WhoNeedsBPEL#view_38502 – 2010-12-17 05:46:50

+0

当你说“ESB”时,你的意思是什么?只是说ESB有点宽泛。 – 2010-12-17 06:11:22

回答

11

首先,ESB只是一个概念,而BPEL是基于XML和Web服务的OASIS标准。一个BPEL文件实际上是XML。

当您需要将2个或更多应用程序连接在一起时,您可以使用ESB,以避免直接点对点集成。这提供了各种好处,例如将消息从一种格式转换为另一种格式,或引入其他消息交换模式。一个ESB的通信通常是无状态的,即一条消息经过,被路由到它的目的地,并在那里结束。 ESB是一个非常广泛的术语,由供应商解释和曲解以推销他们的产品。

另一方面,实施BPEL和类似技术的业务流程管理系统关注于跟踪各种活动及其关系的进度。 BPEL流程与流程图非常相似。 BPEL流程保留了状态,记录了它的进度和流程,并且通常用于(尽管不一定)长时间的交易,这也可能涉及人工任务。

BPEL流程的教科书示例是贷款处理应用程序。客户贷款请求进入,并且该流程首先在某些系统上使用Web服务调用执行一些自动检查,如果信用评级过低,系统会通知管理人员手动评估表单(通过某些工作流程系统)。然后该流程等待来自人工工作流系统的回调,使用某种关联方法(某些ID)将其与正确的BPEL流程实例进行匹配(以便正确的客户得到服务),然后相应地恢复流程。

2

根据我的经验,ESB总是针对不包含等待状态的进程。当你刚刚浏览一个服务列表,并且将会指向一个没有任何暂停状态的点b时,我会使用一个ESB。 ESB也可以处理更多的消息请求。

无论何时涉及人际交互(输入值,评审提交),我都倾向于在BPM中实现这一点。这些往往有更强大的处理长时间的等待。

-2

在ESB和BPEL之间做出选择时,您需要问自己几个问题。其中最重要的:
- 我是在处理无状态进程(然后选择ESB)还是有状态进程(因此我选择BPEL)
- 是否需要处理大量的短消息 - 在这种情况下我选择ESB
- 我是否需要业务流程的编排 - 然后我用BPEL

在这里,你有你的问题一个很好的资源: http://www.ibm.com/developerworks/websphere/library/techarticles/0803_fasbinder2/0803_fasbinder2.html

+1

一个潜在解决方案的链接总是受欢迎的,但请[在链接周围添加上下文](http://meta.stackexchange.com/a/8259),以便您的同行用户了解它是什么以及它为什么在那里。如果目标网站无法访问或永久离线,请始终引用重要链接中最相关的部分。考虑到仅仅是一个外部网站的链接可能是一个可能的原因[为什么以及如何删除一些答案?](http://stackoverflow.com/help/deleted-answers)。 – FelixSFD 2017-01-11 18:07:53

+0

该问题通用性足以允许链接;我试图在这里帮忙;无论如何,让我添加一些“背景” – 2017-01-11 18:10:41

+0

好吧,我添加了上下文;现在开心 ? – 2017-01-12 18:59:58