理解SOA以及MB和MQ在SOA中的地位

 
SOA(Service-oriented architecture,面向服务架构)。1996年,Gartner最早提出SOA。2002年12月,Gartner提出SOA是"现代应用开发领域最重要的课题",还预计到2008年,SOA将成为占有绝对优势的软件工程实践方法,主流企业现在就应该在理解和应用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)是流经企业框架的空气,它赋予业务模型里的组件以生命,并更加清晰地定义了它们之间的关系。流程定义了同业务模型进行交互操作的专门方法。例如,会计可能是企业服务系统的一个组件--但是将发票寄给客户却是一个业务流程。服务被定义用来支持业务流程,因而贯穿整个流程始终的是:各种服务组件在流程和逻辑实现过程中的装配操作。理解业务流程是定制服务的关键所在。 

有利于企业业务的集成 
传统的应用集成方法(点对点集成、企业消息总线或中间件的集成(EAI)、基于业务流程的集成)都很复杂、昂贵,并且不灵活。这些集成方法难于快速适应基于企业现代业务变化不断产生的需求。基于面向服务架构 (SOA) 的应用开发和集成可以很好的解决其中的许多问题。 

SOA 描述了一套完善的开发模式来帮助客户端应用连接到服务上。这些模式定制了系列机制用于描述服务、通知及发现服务、与服务进行通信。 

不同于传统的应用集成方法,在 SOA 中,围绕服务的所有模式都是以基于标准的技术实现的。大部分的通信中间件系统,如 RPC、CORBA、DCOM、EJB 和 RMI,也同样如此。可是它们的实现都不是很完美的,在权衡交互性以及标准定制的可接受性方面总是存在问题。SOA 试图排除这些缺陷。因为几乎所有的通信中间件系统都有固定的处理模式,如RPC 的功能、CORBA 的对象等等。然而,服务既可以定义为功能,又可同时对外定义为对象、应用等等。这使得 SOA 可适应于任何现有系统,并使得系统在集成时不必刻意遵循任何特殊定制。 

SOA 帮助企业信息系统迁移到"leave-and-layer"架构之上,这意味着在不用对现有的企业系统做修改的前提下,系统可对外提供 Web 服务接口,这是因为它们已经被可以提供 Web 服务接口的应用层做了一层封装,所以在不用修改现有系统架构的情况下,SOA 可以将系统和应用迅速转换为服务。SOA 不仅覆盖来自于打包应用、定制应用和遗留系统中的信息,而且还覆盖来自于如安全、内容管理、搜索等 IT 架构中的功能和数据。因为基于 SOA 的应用能很容易地从这些基础服务架构中添加功能,所以基于SOA的应用能更快地应对市场变化,为使企业业务部门设计开发出新的功能应用。
 
SOA面向服务架构的理念已经在国内唱了好多年了,实际落地的SOA架构项目也不少,随着各大企业信息化建设水平的提高和发展,包括各类已建的、在建的、以及未来规划中的应用信息系统和办公自动化系统日渐增多,伴随重复建设、缺乏统筹规划下的数据标准不统一,致使各部门各领域之间的数据不能共享,“信息孤岛”、“信息烟囱”现象日益严重,信息资源的整合与共享已成为信息化建设过程中一个亟需解决的问题,企业信息化建设面临大瓶颈和严峻挑战,在千呼万唤中,ESB平台以其强大的连接性、消息路由、格式转换映射功能博得各大企业的青睐,随着各种集成中间件产品功能的发展强大和集成技术的日渐规范成熟,已经完成局部或者部分信息化集成的企业已经初尝甜头,信息化集成面临大好的发展时机,预示着各大企业即将进入大集成信息化建设的时代。
  就目前来说,国内用得比较多的基于SOA架构的ESB商业产品,一款是IBM公司的WebSphere Message 
Broker(以下简称MB),以及消息传输极其稳定、完全和高效的WebsPhere Queue(以下简称MQ),另一款是Oracle公司的Oracle 
Service Bus(以下简称OSB),OSB是Oracle公司并购BEA之后的产品了,算得上是原来BEA公司BEA AquaLogic Service 
Bus产品的升级版,早期Oracle公司的Oracle SOA 
Suite产品国内项目应用的也比较多,但是自从OSB出来之后已经不是Oracle公司主推的ESB产品了,目前也有比较多的不错开源产品如Mule、Apache 
ServiceMix、WSO2、Open ESB等。
  下面说一下MB和MQ在SOA面向服务架构的项目中的地位和主要作用:在许多企业早期的EAI平台建设中就已经选择了使用MQ作为消息传输中间件,主要工作就是负责各应用系统之间的消息传递, 
MQ看上去非常简单,就是使用消息队列进行消息存储和转发,队列类型包括:本地队列、远程队列、模板队列、动态队列、别名队列等,并提供特有的异步传输机制,能够基于消息传输和异步事务处理实现应用整合与数据交换,使用通道作为队列管理器之间传递消息,MQ的通讯模式包括:点对点通讯、多点广播、发布/订阅(Publish/Subscribe)模式、群集(Cluster),MQ对各种语言、硬件、操作系统的支持度非常高,各应用系统可以处于不同语言编写、不同硬件、不同操作系统,几乎上MQ都有专门的API支持,只需要简单的调用几个MQ的API,就可以互相通讯,你不必考虑底层系统和网络的复杂性。
  但MQ的功能仅限于消息队列,至于各应用系统之间的消息格式是否一致、能不能被解析却无能为力,MQ只管将消息安全有效的传输到目的地,MQ能够应付足够多的异常情况(例如网络阻塞、临时中断等等),如果与MQ接入的应用系统多了,网络拓扑就成了“蜘蛛网”,不太易于维护和管理。
  由于MQ的局限性,需要一款功能更加强大的中间件产品来弥补这方面的缺陷,IBM公司在MQ的内核上开发的MB产品就应运而生了,作为ESB产品处于系统中心,作为企业服务总线,所有的应用系统都连接到MB上面,而不是应用系统之间的互连,这样就解决了网络拓扑、消息路由、格式转换和消息映射的问题,同时WMB作为总线支持更多的通讯协议与消息接入方式,包括:HTTP、WebService、MQ、JMS、FTP、File、Email等,支持标准的XML报文格式,以及其他格式的报文,自身有功能强大的ESQL语言,支持Java语言和C语言在MB上开发,提供图形界面进行可视化配置开发,提供了各种接入方式的已封装节点和适配器节点让技术人员能够快速开发消息流,有专门连接数据库的节点进行CRUD操作,支持ODBC和JDBC连接方式,支持各种传人消息的解析器,按需设置功能强大的消息集,MB的底层核心依然是MQ,所以可以最好的与MQ进行兼容,利用MQ强大的消息传输功能,MB还能与IBM公司WebSphere系列的其他产品很好的兼容,例如WAS和WPS以及Portal门户等,在企业整个大架构中起到不可替代的作用。
  MB与MQ的组合是SOA面向服务体系中的比较完美的结合,高效的消息传输、消息路由、格式转换和数据映射,解决传统点对点连接带来的“蜘蛛网”问题,将各种硬件、操作系统、开发语言、通讯协议、数据库通过集成平台进行业务和数据集成,让服务愈加成为一个独立的实体,与其他服务的耦合性进一步降低,从而达到SOA的境界。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值