当前位置:首页 >> 信息与通信 >>

面向服务架构(SOA)和企业服务总线(ESB)


面向服务架构(SOA)和企业服务总线(ESB)

SOA 是在计算环境下设计、开发、应用、管理分散的逻辑(服务)单元的一种规范。这个定义决定了 SOA 的广泛性。SOA 要求开发者从服务集成的角度来设计应用软件,即使这么做的利益不会马上显现。 ESB[产品]是一根聪明的管子,用来连接各个愚笨的节点。
学习和研究在企业中实施面向服务架构(SOA),简单

回顾 SOA 和 ESB,重点关注微软在 SOA 领域的相关指 导和.NET 社区的相关开源的解决方案,和大家一起来探讨如何在企业里实现 SOA,期望有实施 SOA 经验 的同学发表意见。 一、SOA 的历史

1996 年,Gartner 最早提出 SOA。2002 年 12 月,Gartner 提出 SOA 是"现代应用开发领域最重要 的课题",SOA 并不是一个新事 物,IT 组织已经成功建立并实施 SOA 应用软件很多年了,BEA、IBM、等 厂商看到了它的价值,纷纷跟进。SOA 的目标在于让 IT 变得更有弹性,以更快 地响应业务单位的需求, 实现实时企业(Real-Time Enterprise,这是 Gartner 为 SOA 描述的愿景目标)。而 BEA 的 CIO Rhonda 早在 2001 年 6 月就提出要将 BEA 的 IT 基础架构转变为 SOA,并且从对整个企业架构的控制能
力、提升开发效率、加快开发速度、降低在客户 化和人员技能的投入等方面取得了不错的成绩。   SOA 是在计算环境下设计、开发、应用、管理分散的逻辑(服务)单元的一种规范。这个定义决定了

SOA 的广泛性。SOA 要求开发者从服务集成的 角度来设计应用软件,即使这么做的利益不会马上显现。 SOA 要求开发者超越应用软件来思考,并考虑复用现有的服务,或者检查如何让服务被重复利用。SOA 鼓励使用可替代的技术和方法(例如消息机制),通过把服务联系在一起而非编写新代码来构架应用。经

过适当构架后,这种消息机制的应用允许公司仅通过调整原 有服务模式而非被迫进行大规模新的应用代 码的开发,使得在商业环境许可的时间内对变化的市场条件做出快速的响应。   SOA 也不仅仅是一种开发的方法论--它还包含管理。例如,应用 SOA 后,管理者可以方便的管理这 些搭建在服务平台上的企业应用,而不是管理单 一的应用模块。其原理是,通过分析服务之间的相互调 用,SOA 使得公司管理人员方便的拿到什么时候、什么原因、哪些商业逻辑被执行的数据信息,这样就 帮助 了企业管理人员或应用架构师迭代地优化他们的企业业务流程、应用系统。   SOA 的一个中心思想就是使得企业应用摆脱面向技术的解决方案的束缚,轻松应对企业商业服务变 化、发展的需要。企业环境中单个应用程序是无法包 容业务用户的(各种)需求的,即使是一个大型的

ERP 解决方案,仍然不能满足这个需求在不断膨胀、变化的缺口,对市场快速做出反应,商业用户只能

通过不断 开发新应用、扩展现有应用程序来艰难的支撑其现有的业务需求。通过将注意力放在服务上, 应用程序能够集中起来提供更加丰富、目的性更强的商业流程。其结果 就是,基于 SOA 的企业应用系统 通常会更加真实地反映出与业务模型的结合。服务是从业务流程的角度来看待技术的--这是从上向下看 的。这种角度同一般的从 可用技术所驱动的商业视角是相反的。服务的优势很清楚:它们会同业务流程 结合在一起,因此能够更加精确地表示业务模型、更好地支持业务流程。相反我们可以 看到以应用程序 为中心的企业应用模型迫使业务用户将其能力局限为应用程序的能力。   企业流程(enterprise process)是流经企业框架的空气,它赋予业务模型里的组件以生命,并更 加清晰地定义了它们之间的关系。流程定义了同业务模型进行交互操作的专门方 法。例如,会计可能是 企业服务系统的一个组件--但是将发票寄给客户却是一个业务流程。服务被定义用来支持业务流程,因 而贯穿整个流程始终的是:各种服务 组件在流程和逻辑实现过程中的装配操作。理解业务流程是定制服 务的关键所在。 二、SOA 的描述所适用的原则

? 利用显式的与实现无关的接口来定义服务。 ? 利用强调位置透明性和可互操作性的通信协议。 ? 封装可重用业务功能的服务的定义。

图 1 说明了这些原则。注意,虽然 Web 服务技术非常符合这些原则,但它并不是唯一符合这些原则的技 术。 图 1: SOA 的原则

为了实现 SOA,应用程序和基础架构都必须支持 SOA 原则。启用 SOA 应用程序涉及到创建服务接口, 服务接口可以直接也可以间接地通过使用适配器用于现有的或新的功能。从最基本的级别来看,启用该 基础架构涉及到规划功能来将服务请求路由和传递给正确的服务提供者。然而,基础架构支持在不影响 服务的客户端的情况下由另一个服务实现替代原有的服务实现也是至关重要的。这不仅需要根据 SOA 原 则指定服务接口,而且需要基础架构允许客户端代码以独立于所涉及的服务位置和通信协议的方式来调 用服务。 三、ESB 是什么? 根据维基百科的 ESB 定义,ESB 有如下特性:

1. 它是面向服务架构的实现。 2. 它通常是操作系统和编程语言无关的;它应能在 Java 和.Net 应用程序之间工作。 3. 它使用 XML(可扩展标识语言)作为标准通信语言。 4. 它支持 Web 服务标准。 5. 它支持消息传递(同步、异步、点对点、发布-订阅)。 6. 它包含基于标准的适配器(如 J2C/JCA),用于集成传统系统。 7. 它包含对服务编制(orchestration)和编排(choreography)的支持。 8. 它包含智能、基于内容的路由服务(itenerary 路由)。 9. 它包含标准安全模型,用于 ESB 的认证、授权和审计。 10.它包含转换服务(通常是使用 XSLT),在发送应用和接收应用之间转换格式,简化数据格式和
值的转换。

11.它包含基于模式(schema)的验证,用于发送和接收消息。

12.它可以统一应用业务规则,充实其它来源的消息,分拆和组合多个消息,以及处理异常。 13.它可以条件路由,或基于非集中策略的消息转换,即不需要集中规则引擎。 14.它可监视不同 SLA(服务级别合约)的消息响应门限,以及在 SLA 中定义的其它特性。 15.它(常常)简化“服务类别”,向更高或更低优先级用户做出适当的响应。 16.它支持队列,在应用临时不可用时用来保存消息。 17.它由(地理)分布式环境中的选择性部署应用适配器组成
对于其中一些厂商(IBM、微软)来说,ESB 是将一系列能力联结在一起的一种模式,而其他厂商认为

ESB 是一种产品。在 2005 年,微软 Identity Platform 的产品经理 Rich Turner 写道: ESB[产品]是一根聪明的管子,用来连接各个愚笨的节点。[……]Web Service 的途径让
节点本身也变得聪明,减少了对底下聪明管道的需要,并确保了跨越任何平台与设备的开放 的通讯。 四、如何用.NET 技术建立完整的 SOA 环境 微软发布了一个名为“真实世界里的面向服务架构(SOA)” 的电子书。这本书表达了微软对面向服务架 构的观点,并包括了数个展示如何用微软产品和技术实现 SOA 的真实案例。书中解释到,SOA 的功能型 架构本身是松 散的,即每个服务本身可以作为企业的 IT 资产存在、也可以作为生产流程中的处理环节存 在,但总体上他们提供了一个完整的视图,而且与独立应用不同,这个视 图的内容不是分层的、而是平 的,借助这个视图可以提供如下可重用能力:

? ? ? ? ? ?

消息机制服务 工作处理流程服务 数据服务 用户体验服务 主体身份的识别、认证、授权服务 还有通盘的管理能力

所有这些能力用微软的产品描述就是下图:

与强调 SCA、SDO 等公共标准的 Java 平台不同,微软平台相应的封装也不是通过商用服务器平台完成, 而是更多地借助 WCF 实现;其中最为重要的 ESB 角色重则由 BizTalk 担当,轻则由用户通过扩展 WCF

+ WF 完成;至于服务的治理,相对更为统一,与 Windows 平台其他产品无异,向下借助统一的 WMI 体 系,配合 MOM 和 System Center 对 SOA 的基础平台部分进行治理,向上借助 WS_Management 协议对
服务进行集中管理。 实施 SOA 集成在所难免,各企业集成的方式大概主要有 3 种:

? 购买某厂商的 SOA 套件,这样无论是组成上的兼容性还是技术支持都有保证,代价就是花费不菲; ? 集成多种开源的服务器产品和开发框架,显性成本上很划算,但技术实施的成败的风险比较大; ? 更多依赖操作系统自带的产品,根据 IT 范围的大小,选择少量的商业产品或开源服务器产品, 兼容性风险比全部开源产品要小,成本上也比全盘采购商业套件廉价。《SOA in the Real World》里更多倡导的就是这第三条道路。
微软还赞助了一个针对北美 500 家拥有 1000 名员工,或超过这个数字的企业的综合应用平台的研究。其 目的旨在确定哪种软件平台被用于构建关键任务的应用,以及什么是首选供应商的关键组件平台等。 五、开源的.NET ESB 项目介绍

ESB.NET 企业级服务总线:ESB.NET 是开源的企业级服务总线,采用的协议是 MS-PL。ESB.NET 主要包 含了 MSMQ 消息队列机智,SOAP 消息收发,ROUTER 服务路由,WCF,WSE 消息扩展(消息加解密,压缩),还 有 WF 工作流。
开源的通信框架 NServiceBus :NServiceBus 是一个用于构建企业级 .NET 系统的开源通讯框架。 它在消息发布/订阅支持、工作流集成和高度可扩展性等方面表现优异,因此是很多分布式系统基础平台 的理想选择。,它能够帮助 开发人员在搭建企业.NET 系统时避免很多典型的常见问题。同时,该框架也 提供了一些可伸缩的关键特征,比如对发布/订阅的支持、集成的长时间工作流及深 入的扩展能力等。据 作者说,其本意是为构建分布式应用软件创建一个理想的基础设施。

Mass Transit -- .Net Service Bus:Mass Transit 是一个.NET 平台上的用于构建松耦合应用程 序的服务总线框架,这个服务总线支持 YAGNI 原则(YAGNI 原则,就是通过重构提取公因式 当出现一次时, 不分层,以后业务复杂了,马上抽象出一个层次来,分层是依赖倒置原则和模版方法模式的应用。)。通 过一套严密的关注点,Mass Transit 和应用程序之间的接触最小化和清晰的接口.
相关资料:

[1] ESB 这个词到底是什么意思? [2]在 SOA 中整合企业数据 [3]Dino Chiesa 谈微软的 SOA 策略
自由、创新、研究、探索……

Url: http://shanyou.cnblogs.com website: http://www.openbeta.cn
来自:http://www.cnblogs.com/shanyou/archive/2008/04/19/1161452.html


相关文章:
面向服务架构(SOA)和企业服务总线(ESB)
面向服务架构(SOA)和企业服务总线(ESB)_计算机软件及应用_IT/计算机_专业资料。面向服务架构(SOA)和企业服务总线(ESB)学习和研究在企业中实施面向服务架构(SOA),...
面向服务架构(SOA)和企业服务总线(ESB) 2
1 爱耘网+昕网格---深圳云计算解决专家 面向服务架构(SOA)和企业服务总线(ESB) 2009-03-16 10:54 学习和研究在企业中实施面向服务架构(SOA),简单回顾 SOA ...
几种ESB(企业服务总线)架构介绍
ESB(Enterprise Service Bus,即企业服务总线)是传统中间件技术与 XML、Web 服务...面向服务体系架构(SOA)是能够将应用程序的 不同功能单元通过服务之间定义良好的 ...
理解面向服务的体系结构中企业服务总线场景和解决方案
日 本文确定了一组最低功能,可以满足企业服务总线(Enterprise Service Bus,ESB)与面向服务的体系 结构(service-oriented architecture,SOA)的原则保持一致的基本需要。...
基于SOA的企业服务总线研究与实现
本文提出了基于 SOA(面向服务的体系结构)的电力系统企业信息化集成方案, 采用企业服务总线(ESB)虚拟化服务交互并对其进行管理,是实现 IT 和业务同步的先进可行战略,...
ESB——SOA中企业服务总线的角色
ESB——SOA中企业服务总线的角色_计算机软件及应用_IT/计算机_专业资料。转自 ...面向服务架构(SOA)是一种通过松耦合的”服务“组件创建企业 IT 基础 架构的...
基于SOA的企业服务总线研究与实现
本文提出了基于 SOA(面向服务的体系结构)的电力系统企业信息化集成方案, 采用企业服务总线(ESB)虚拟化服务交互并对其进行管理,是实现 IT 和业务同步的先进可行战略,...
ESB企业服务总线解决方案剖析
? 摘要:本文介绍了面向服务的体系结构(service-oriented architecture,SOA)和企业服务总线 (Enterprise Service Bus,ESB)的基本知识,ESB 的技术沿革,以及 ESB 与 ...
企业服务总线解决方案剖析
介绍了面向服务的体系结构 (service-oriented architecture,SOA)和企业服务总线(Enterprise Service Bus,ESB)的基本知识,ESB 的技术沿革,以及 ESB 与 SOA 之间的关系...
谈及企业服务总线
谈及企业服务总线_计划/解决方案_应用文书。谈及企业服务总线 (ESB) ,在有面向服务架构 (SOA) 实施经验的开发者眼中一定不会陌生。 这些年,人们一直在谈论它...
更多相关标签:
soa esb 架构图 | esb总线架构 | esb总线的核心架构 | 面向服务的soa架构 | soa面向服务架构 | soa架构和面向对象 | soa esb | soa esb 区别 |