作为初学者,我该如何决定某个特定流程是作为ESB还是BPEL实现的?
应该使用哪些参数来决定是否应该使用它们来实现?
答案 0 :(得分:13)
首先,ESB只是一个概念,而BPEL是基于XML和Web服务的OASIS标准。 BPEL文件实际上是XML。
当您需要将两个或更多应用程序连接在一起时,可以使用ESB,以避免直接的点对点集成。这提供了各种好处,例如将消息从一种格式转换为另一种格式,或引入其他消息交换模式。 ESB的通信通常是无状态的,即消息通过,被路由到其目的地,并且它在那里结束。 ESB是一个非常广泛的术语,由供应商解释和误解以推销其产品。
另一方面,实施BPEL和类似技术的业务流程管理系统关注的是跟踪各种活动的进展及其关系。 BPEL流程与流程图非常相似。 BPEL流程保留状态,跟踪其进度和流量,并且通常在冗长的事务中使用(尽管不一定),这也可能涉及手动人工任务。
BPEL流程的教科书示例是贷款处理应用程序。客户贷款请求进入,并且该流程首先在某些系统上使用Web服务调用执行一些自动检查,如果信用评级过低,系统会通知管理员手动评估表单(通过某个工作流程系统)。然后,该过程等待来自人工工作流系统的回调,使用一些相关方法(某些ID)将其与正确的BPEL流程实例匹配(以便为正确的客户提供服务),并相应地恢复该流程。
答案 1 :(得分:2)
根据我的经验,ESB始终用于不包含等待状态的进程。当您只是浏览一个服务列表并且将指向a指向b而没有任何暂停状态时,我会使用ESB。 ESB还可以处理更多数量的消息请求。
任何时候都涉及人工互动(输入值,审核提交),我倾向于在BPM中实现这一点。这些往往会有更长时间的等待处理。
答案 2 :(得分:-2)
在ESB和BPEL之间做出选择时,您需要问几个问题。其中最重要的是:
- 我是在处理无状态流程(然后我选择ESB)还是有状态流程(因此我选择BPEL)
- 我需要处理大量的短消息 - 在这种情况下,我选择ESB
- 我是否需要业务流程的编排 - 然后我使用BPEL
在这里,您有一个很好的资源来解决您的问题
http://www.ibm.com/developerworks/websphere/library/techarticles/0803_fasbinder2/0803_fasbinder2.html