`
lsy
  • 浏览: 123019 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

BPEL 或 ESB:应该使用哪一个?

阅读更多
今天在DW上无意看到一篇文章,觉得写的很好,大家不妨也瞅瞅。http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0803_fasbinder2/0803_fasbinder2.html

全文从各个方面阐述当面对一个问题的时候,解决方案的抉择问题。其中心内容就是当发布一个服务以供外围系统使用的时候,这时候你手中的两件利器BPEL和ESB你究竟青睐谁更多一些,其实上也就是当BPEL和ESB在功能上有重叠的问题,给架构者带来了取舍的难题。

在文中归纳的所有观点中,我觉得有一点点中了其中利害关系:
如果需求是以数据为中心的,则显然要选择 ESB
如果需求是以流程为中心的,则显然要选择 WS-BPEL

没错,说的准确到位,在我们的项目中也一直是遵守这个原则的,作者的观点和我们的执行没有冲突。是否是在SOA的实践中同时找到了组建的规则呢?真的这么巧合吗?

我作为一个底层的编码人员,所以只能以有限的认识谈观点。感觉文中不乏忽悠的地方,所以很多地方的理解还不是深刻到位,所以有说的不对的地方,还请大家指教。我感觉这篇文章的教育意义并不是很大,至少在我看来,我不会因为在适用场合中因为选择ESB或者是BPEL的问题上犯愁。举个例子来对比说明一下:
ESB和BPEL在SOA的实现过程中扮演着重用的角色,同样姚明和麦迪也是火箭队不可或缺的关键先生,但是ESB擅长处理数据,尤其是海量数据,能够提供路由转发规则极其复杂的数据服务,但是他对数据的流程操作就显得的相形见拙了;但是BPEL作为一门流程定义语言,他完善的数据操作规范,使得他对数据各类操作游刃有余,但是你要让BPEL传输10K以上的数据,并实现多点传输的话,那真是要了命了,你的Server绝对抱怨你不懂的利用它。所以虽然ESB和BPEL都能够作为Web Service,但是它们的适用场景不用说就是前面提到的两点。这里回过头来说姚明和麦迪,虽然两人都能拿球得分,但是姚明擅长的位置是中锋,习惯得分方式是内线强大,但是麦迪舒服的位置的小前锋,习惯的得分方式是外线干拔跳投,所以说这个时候你还需要去告诉埃德尔曼,姚明应该打中锋,麦迪应该占前锋的位置吗?哈哈,这不是开玩笑么!

再说说文中说到ESB和BPEL重叠的地方,ESB可以通过中介流来调用其他服务,而BPEL可以通过
内部流程调用其他服务,也就是说它们都能够利用或者重新组装其他服务来提供新的服务这项本领,所以功能上重叠了。晕载,晕载,如果这样将功能重复强加于二者身上,不免有些牵强了。没错,ESB可以调用其他服务,但是ESB能控制如何调用?调用多少次?分之调用?能够回退调用吗?能够人工干预吗?反过来,BPEL调用其他服务传递的参数还是局限于SOAP消息,BEPL能接受其他格式,诸如文本文件的数据么?说到数据传递,这是ESB的强项,虽然BPEL也能干一些,但是仅仅局限于利用XSLT,对于复杂的路由规则,消息转换或者协议分发,那就无所作为了。

所以我个人理解,在SOA的实现过程中ESB和BPEL不会出现抉择上的难题。如理解有误,欢迎大家指正,讨论。
分享到:
评论

相关推荐

    BPEL或ESB:应该使用哪一个?

    火龙果软件工程技术中心 本文内容包括:概述ESB概述BPEL概述决定使用哪一个运行时总结参考资料在设计SOA解决方案时,并不总是清楚应该使用Web服务BPEL流程,还是应使用ESB中介流。本文将介绍帮助您决定使用哪一个的...

    ESB比较 adfasdfasf

    - IBM Websphere ESB: 一次性支付 - **年度支持成本**: - BEA AquaLogic: 高 - Mule: 低 - Apache ServiceMix: 高 - IBM Websphere ESB: 低 - **对其他产品组件的依赖**: - BEA AquaLogic: 2分 - Mule: 5...

    SOA using Open ESB, BPEL, and NetBeans

    ### SOA 使用 Open ESB、BPEL 与 NetBeans 的综合应用 #### 综合应用(Composite Applications) 综合应用是一种构建应用程序的方式,它通过组合现有的服务或组件来创建新的功能,这种做法遵循面向服务架构(SOA)...

    Oracle esb ppt

    Oracle ESB 可以作为一个独立的产品,也可以作为 Oracle Fusion Middleware 的一部分。 Oracle ESB 架构 Oracle ESB 的架构主要包括以下几个部分: * Routing:负责消息的路由和分发。 * Adapters:提供了与外部...

    eclipse_BPEL_6

    BPEL是一种用于构建企业服务总线(ESB)中的业务流程的XML规范,它允许开发者以声明式方式描述服务之间的交互。 **BPEL简介:** BPEL是一种面向服务架构(SOA)中的业务流程建模语言,它定义了服务之间的协作行为。...

    bpel完整实例(webservice+bpel)

    - **CompleteAfterProject5**: 可能是项目"CompleteAfter"的第五个迭代,可能在优化或扩展了前一个版本的基础上增加了新的功能或改进了现有流程。 - **CompleteAfterProject3**: 这是"CompleteAfter"项目的第三个...

    BPEL调用SQLServer数据库存储过程Demo

    在BPEL中,我们可以定义一个活动来执行SQLServer存储过程,这通常通过WSDL(Web Services Description Language)接口实现,该接口描述了服务的输入、输出以及操作。 在"SQLServerTest_App"这个压缩包中,可能包含...

    eclipse_BPEL_1

    4. **部署**:将完成的BPEL流程部署到运行时服务器,如Apache ODE或IBM WebSphere ESB。 现在,我们来看一下压缩包中包含的子文件: 1. **p2.rar**:这个文件可能包含Eclipse的平台更新站点(P2)信息,用于管理...

    WS-BPEL

    这些步骤可能涉及不同部门之间的交互,使用WS-BPEL可以将它们整合为一个协调的流程。 #### 四、WS-BPEL的关键概念 - **活动(Activity)**:流程中的最小执行单元,可以是简单的任务调用,也可以是复杂的逻辑处理。 ...

    BPEL流程例子程序

    总结来说,这个"BPEL流程例子程序"展示了如何使用Eclipse BPEL2.0插件来设计和实现一个基于BPEL的业务流程,该流程计算一个数学函数。`FunctionService.aar`和`FunctionProcess`文件分别代表了服务组件和流程定义,...

    oracle bpel

    在Oracle的实现中,Oracle BPEL Process Manager是其SOA Suite的核心组件,提供了一个全面的平台来设计、执行和管理这些业务流程。 SOA是一种设计和构建软件系统的方法论,强调将功能分解为独立的服务,这些服务...

    wso2 esb 服务编排

    2. **创建BPEL工程**:使用WSO2 Developer Studio,这是一个集成开发环境(IDE),支持创建、测试和部署BPEL流程。在Developer Studio中,选择创建Composite Application Project,命名项目如WS_NumberAdderCarbon。...

    BPEL的基本思想 实例讲解

    - **活动(Activity)**:BPEL流程由一系列活动组成,每个活动代表流程中的一个步骤,如调用Web服务、等待响应、处理数据等。 - **流程(Process)**:BPEL流程是业务逻辑的容器,它定义了服务如何协作完成特定业务...

    eclipse_BPEL_4

    **标题:“Eclipse BPEL 4”** ...通过Eclipse BPEL插件,开发者可以方便地创建、测试和调试业务流程,同时借助Eclipse的强大调试工具,可以深入理解流程执行的每一个细节。这使得离线环境下的BPEL开发变得可行且高效。

    bpel环境搭建.zip

    7. **测试环境**:创建一个简单的BPEL流程,通过Apache ODE或ActiveBPEL的管理界面进行部署和测试,确保环境配置正确。 通过以上步骤,你就成功地搭建了一个基础的BPEL运行环境。在这个环境中,你可以创建、测试和...

    Oracle BPEL Process Manager介绍.rar

    Oracle BPEL Process Manager是Oracle Fusion Middleware的一部分,...对于希望深入了解Oracle BPEL Process Manager及其在企业服务总线(ESB)和面向服务架构(SOA)中的应用的读者来说,这份资料会是一个宝贵的资源。

    WebService&SOA&ESB入门介绍

    ESB是一个中间件,负责连接各种服务,提供路由、转换、协议适配等功能,使得服务间的通信更为高效和灵活。 【ESB(Enterprise Service Bus)】 ESB是企业级应用集成的一种解决方案,它提供了一种标准的方式来连接...

    GlassFish Open ESB for SOA Development

    Open ESB 是一个开源项目,它使用 JBI(Java Business Integration)作为基础,实现了企业服务总线(ESB)运行时环境。这使得 Web 服务的集成变得简单,可以创建松耦合的企业级复合应用。Open ESB 还提供了多种开发...

    介绍SOA ESB Mule的企业服务总线PPT

    - **Service**:定义了一个或多个操作的服务,这些操作可以通过不同的端点进行访问。 - **Transports**:定义了Mule如何与外部系统通信的方式,包括HTTP、FTP、JMS等多种传输方式。 - **Message Routing**:实现了...

Global site tag (gtag.js) - Google Analytics