简体   繁体   English

何时使用BPEL和ESB?

[英]When to use BPEL and ESB?

Being a beginner, how should I go about deciding if a particular process has to implemented as ESB or as BPEL ? 作为初学者,我应该如何决定某个特定流程是作为ESB还是BPEL实现的?

What are the various parameters that one should use for deciding if either should be used for implementation? 应该使用哪些参数来决定是否应该使用它们来实现?

First of all ESB is just a concept while BPEL is an OASIS standard based on XML and Web Services. 首先,ESB只是一个概念,而BPEL是基于XML和Web服务的OASIS标准。 A BPEL file is actually XML. BPEL文件实际上是XML。

You use an ESB when you need to connect 2 or more applications together, to avoid direct point-to-point integration. 当您需要将两个或更多应用程序连接在一起时,可以使用ESB,以避免直接的点对点集成。 This offers various benefits, such as translating messages from one format to another, or introducing other message exchange patterns. 这提供了各种好处,例如将消息从一种格式转换为另一种格式,或引入其他消息交换模式。 An ESB's communication is typically stateless, ie a message goes through, gets routed to its destination(s), and it ends there. ESB的通信通常是无状态的,即消息通过,路由到其目的地,并在那里结束。 An ESB is a very broad term, interpreted and misinterpreted by vendors to market their products. ESB是一个非常广泛的术语,由供应商解释和误解以推销其产品。

A Business Process Management system implementing BPEL and similar technologies on the other hand are concerned with keeping track of the progress of various activities and their relationship. 另一方面,实施BPEL和类似技术的业务流程管理系统关注跟踪各种活动的进展及其关系。 A BPEL process is very similar to a flow chart. BPEL流程与流程图非常相似。 A BPEL process preserves state, keeps track of its progress and flow, and is typically used (although not necessarily) in long-winded transactions which could also involve manual human tasks. BPEL流程保留状态,跟踪其进度和流量,并且通常在冗长的事务中使用(尽管不一定),这也可能涉及手动人工任务。

A textbook example of a BPEL process is a loan processing application. BPEL流程的教科书示例是贷款处理应用程序。 A request for a customer loan comes in, and the process first performs some automated checks using web service calls on some systems and if the credit rating is too low, the system informs a manager to evaluate the form manually (via some workflow system). 客户贷款请求进入,并且该流程首先在某些系统上使用Web服务调用执行一些自动检查,如果信用评级过低,系统会通知管理员手动评估表单(通过某个工作流程系统)。 The process then waits for a callback from the human workflow system, uses some correlation method (some ID) to match it with the right BPEL process instance (so that the right customer is serviced), and resumes the process accordingly. 然后,该过程等待来自人工工作流系统的回调,使用一些相关方法(某些ID)将其与正确的BPEL流程实例匹配(以便为正确的客户提供服务),并相应地恢复该流程。

ESB from my experience are always for processes that do not include a wait state. 根据我的经验,ESB始终用于不包含等待状态的进程。 When you are just going through a list of services and will get to point a to point b without any pause states, I would use an ESB. 当您只是浏览一个服务列表并且将指向a指向b而没有任何暂停状态时,我会使用ESB。 ESBs also can handle higher quantities of message requests. ESB还可以处理更多数量的消息请求。

Any time human interaction is involved(Entering values, Review submission), I lean towards implementing this in a BPM. 无论何时涉及人工交互(输入值,审核提交),我都倾向于在BPM中实现这一点。 These tend to have more robust handling of long periods of waiting. 这些往往更长时间的等待处理。

There are several questions you need to ask yourself when making the choice between ESB and BPEL. 在ESB和BPEL之间做出选择时,您需要问几个问题。 Among the most important: 其中最重要的是:
- am I dealing with a stateless process (then I choose ESB) or a stateful one (so I choose BPEL) - 我正在处理无状态进程(然后我选择ESB)或有状态进程(所以我选择BPEL)
- do I need to handle a large volume of short messages - in this case I choose ESB - 我需要处理大量的短消息 - 在这种情况下,我选择ESB
- do I need orchestration of business processes - then I use BPEL - 我是否需要业务流程的编排 - 然后我使用BPEL

Here you have a good resource for your question: http://www.ibm.com/developerworks/websphere/library/techarticles/0803_fasbinder2/0803_fasbinder2.html 在这里,您有一个很好的资源来解决您的问题: http//www.ibm.com/developerworks/websphere/library/techarticles/0803_fasbinder2/0803_fasbinder2.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM