在设计SOA解决方案时,该使用BPEL,还是应使用ESB? 要解决这个问题,我们需要弄清楚BPEL和ESB的主要功能和优缺点。
结论:如果需求是以数据为中心的,则显然要选择 ESB, 如果需求是以流程为中心的,则显然要选择BPEL。
ESB的主要功能:
- 消息转换:将传入消息从一种格式转换为另一种格式。例如,可以将逗号分隔的消息转换为 SOAP,这样可以将数据传递到 Web 服务。
- 消息路由:将传入消息发送到目的地,该目的地通过硬编码方式连接的逻辑确定或基于内容的动态方式确定。路由是启用服务虚拟化的关键功能。在调用方和服务之间建立中间层可以在调用方不知道更改的情况下移动服务的位置。
- 协议中介:传入消息使用不同的协议从发出位置发送。例如,传入消息可以使用 HTTP,而传出消息可以使用 WebSphere MQ。
- 事件处理:事件的传入消息一般通过发布和订阅模型分发给许多端点。
BPEL的主要功能:
- 业务流程:流程可以是有状态和长时间运行的,或者是事务型微流。长时间运行的流程无法像微流那样回滚,不过,它们可以使用补偿处理程序撤消先前执行的活动。流程可用于实现组合服务。
- 人工任务:业务流程的一个关键部分是能够将人员引入该流程。人工任务管理器启用一些步骤,通过这些步骤可以将人员作为一种服务来调用。工作流模式是使用 BPEL 扩展通过外部(参与)任务或内联任务进行支持的。
ESB 的优点:
ESB 的主要优点之一就是处理消息。消息的传入和传出也许会用到协议或格式中介。当这些需求明显需要处理消息时,使用 ESB 可以提供许多优势,其中包括在转换中处理较复杂事务的能力。当这些需求需要使用 ESB 基本功能(如消息路由、转换或协议中介)之一时,则 ESB 是最佳选择。
ESB 的另一个优点是性能。ESB 在计划上能够处理大量的消息。例如,如果需求是每天处理 200000 条消息,则 ESB 显然是较好的选择。
BPEL 的优点:
BPEL 引擎的主要优点是能够编排业务流程。如果需求是处理具有复杂逻辑的流程,则BPEL是较好的选择。BPEL 支持选择分支循环等。ESB 中的逻辑通常非常简单,而 WS-BPEL 可以处理更复杂的情形。
BPEL 引擎的另一个优点是能够让业务流程长时间运行并维持其状态。当需要状态时,不应使用 ESB,因为维护状态会占用许多自定义代码。如果需求是进行有状态的处理,则在选择时可以排除ESB。
分享到:
相关推荐
火龙果软件工程技术中心 本文内容包括:概述ESB概述BPEL概述决定使用哪一个运行时总结参考资料在设计SOA解决方案时,并不总是清楚应该使用Web服务BPEL流程,还是应使用ESB中介流。本文将介绍帮助您决定使用哪一个的...
Business Process Execution Language(BPEL)是一种用于编排Web服务的业务流程执行语言,它是基于XML的,专为实现企业服务总线(ESB)上的复杂业务流程而设计。BPEL提供了一种标准的方式来描述服务之间的交互,使得...
### WS-BPEL:ESB开发协议详解 #### 一、引言 WS-BPEL(Web Services Business Process Execution Language)是一种用于定义业务流程的标准语言,尤其适用于基于Web服务的应用集成场景。它允许开发者通过组合现有...
### SOA 使用 Open ESB、BPEL 与 NetBeans 的综合应用 #### 综合应用(Composite Applications) 综合应用是一种构建应用程序的方式,它通过组合现有的服务或组件来创建新的功能,这种做法遵循面向服务架构(SOA)...
BPEL是一种用于构建企业服务总线(ESB)中的业务流程的XML规范,它允许开发者以声明式方式描述服务之间的交互。 **BPEL简介:** BPEL是一种面向服务架构(SOA)中的业务流程建模语言,它定义了服务之间的协作行为。...
AAR文件可以被服务容器(如Apache Axis2或JBoss ESB)加载并提供服务,使得其他系统可以通过标准的Web服务调用方式来调用这个BPEL流程。 `FunctionProcess` 文件可能是BPEL流程的定义文件,它以XML格式描述了整个...
4. **部署**:将完成的BPEL流程部署到运行时服务器,如Apache ODE或IBM WebSphere ESB。 现在,我们来看一下压缩包中包含的子文件: 1. **p2.rar**:这个文件可能包含Eclipse的平台更新站点(P2)信息,用于管理...
Oracle ESB 介绍和架构 Oracle ESB(Enterprise Service Bus)是一种基于消息传递和Web服务的集成平台,旨在实现松散耦合的业务组件之间的交互和集成。下面是关于Oracle ESB的详细介绍和架构概述: 什么是 ESB? ...
### BPEL中文教程知识点详解 #### 一、BPEL概述 **BPEL**(Business Process Execution Language),即业务流程执行语言,是一种基于Web服务的技术,用于定义和执行复杂的业务流程。它允许用户通过组合现有的Web服务...
Oracle BPEL(Business Process Execution Language)是一种基于XML的编程语言,用于构建企业服务总线(ESB)上的业务流程和服务编排。它是SOA(Service-Oriented Architecture,面向服务架构)的重要组成部分,允许...
ODE(Orchestrations for the DEployment Environment)是Apache提供的一款开源BPEL引擎,它实现了BPEL规范,提供了部署和执行BPEL流程的环境。在ODE中,相关集合的管理和使用是其核心功能之一,它为开发者提供了...
**BPEL(Business Process Execution Language)** 是一种用于描述业务流程和服务编排的语言,它在Web服务领域中扮演着重要角色。BPEL的主要目标是为了解决企业级服务之间的交互问题,允许开发者将多个Web服务组合成...
### BPEL Primer (BPEL 2.0 Primer_权威) #### 一、BPEL简介 **Business Process Execution Language (BPEL)**是一种用于形式化描述业务流程和业务交互协议的语言。它旨在扩展Web服务交互模型以支持业务交易。BPEL...
### BPEL的一个运行实例 #### 1. 前言 ##### 1.1. 前提条件 本文档假设读者已经具备基本的Java编程基础、了解Web服务的基本概念以及熟悉Eclipse IDE的使用。 ##### 1.2. 目标 本教程旨在通过一个具体的例子来介绍...
### BPEL 2.0规范详解 #### 一、概述 《BPEL 2.0规范(中文版)》定义了一种基于Web服务的业务流程语言——Web服务业务流程执行语言(WS-BPEL),该语言允许设计者描述业务流程,并通过专门的Web服务接口实现流程的...
在IT行业中,BPEL(Business Process Execution Language)是一种用于定义和执行业务流程的XML语言。它主要用于企业服务总线(ESB)和业务流程管理(BPM)系统,以协调不同服务之间的交互。另一方面,SQLServer是...
WSO2 Business Process Server (BPS) 是与WSO2 ESB协同工作的组件,专门用于处理业务流程执行语言(Business Process Execution Language, BPEL)的工作流。BPEL是一种标准,用于定义和执行服务间的业务流程。结合...
BPEL是一种用于构建企业服务总线(ESB)中的业务流程的XML规范,它允许开发者定义和执行复杂的业务流程,使得不同系统间的交互更为顺畅。 首先,Eclipse是一个开放源码的Java集成开发环境(IDE),广泛应用于Java...
Eclipse BPEL 使用详解 Eclipse BPEL 是一种基于 Eclipse 的业务流程执行语言(BPEL),它提供了一个基于标准的业务流程管理解决方案。下面是 Eclipse BPEL 的使用详解。 一、 环境配置 Eclipse BPEL 需要在 ...