ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 深入浅出SOA(一)

深入浅出SOA(一)

原创 Linux操作系统 作者:rheet1978 时间:2008-12-09 22:16:09 0 删除 编辑

关键字:SOA  体系结构 SOA参考体系架构 SOA解决方案堆栈 SCA 服务

 

内容提要: 面向服务的架构(Service-Oriented Architecture,SOA)是一种IT术语,不是一种商业术语,这使得很多人难以理解SOA的概念。本文通过日常生活中小卖部到百货商店再到超市的变化详细的阐述IT系统由一个个竖井到集成系统再到SOA系统的变化,主要内容包括通过超市的例子解释什么是SOA、小企业是否需要SOA、SOA的体系结构、SOA参考体系架构、SOA解决方案堆栈以及如何构建一个企业级SOA系统。本文将通过具体的例子并尝试结合日常生活中的例子来形象的阐述什么是SOA,使大家对SOA有一个全面的认识,从而在整个企业级(而不是企业中的一个或多个部门)构建灵活、可重用的系统。

 

简介       最早在1996年, Gartner就提出了SOA的概念,为SOA描述的远景目标是:在于让IT变得更有弹性,以更快地响应业务单位的需求,实现实时企业(Real-Time Enterprise)。后来在IBM、BEA等IT巨头的推动下,各种技术逐渐完备。截止到目前为止,业界还没有一个统一的SOA定义。SOA是一种软件系统架构,其通过松耦合的方式,将各个组件的不同功能单元——服务(Service)——连接起来。SOA的核心是服务(Service),与服务相关的实体还有服务提供者、服务消费者、服务注册表、服务条款、服务代理和服务契约等。

 

W3C将服务定义为:“服务提供者完成一组工作,为服务使用者交付所需的最终结果。最终结果通常会使使用者的状态发生变化,但也可能使提供者的状态改变,或者双方都产生变化”。

 

服务代理者(Services Broker)是一个服务存储库,它允许服务提供者发布服务到该服务存储库上并使服务请求者能够找到这些服务。服务发布者(Services Provider)提供符合契约(Contract)的服务,并将这些服务发布到服务代理者(Services Broker)。服务请求者(Services Consumer),也被称为服务消费者,通过查找服务代理者(Services Broker)中的服务,找到想要的服务。

 

服务本身是无状态(Stateless)的,可以有一到多个组件(Component)组成。服务的表现形式可以是多种多样的,既可以嵌入到页面响应服务请求,也可以作为一个服务接口用来被调用。服务的实现没有技术限制,可以是用各种语言来实现。具体如图01-01所示:

 

 

 

图01-01 . W3C服务定义

 

IBM在其developerWorks上这么定义SOA:“面向服务的体系结构(Service-Oriented Architecture,SOA)是一种 IT 体系结构风格,支持将您的业务转换为一组相互链接的服务或可重复业务任务,可在需要时通过网络访问这些服务和任务。这个网络可以是本地网络、 Internet,也可以分散于各地且采用不同的技术,通过对来自纽约、伦敦和中国香港的服务进行组合,可让最终用户感觉似乎这些服务就安装在本地桌面上一样。可以对这些服务进行结合,以完成特定的业务任务,从而让您的业务快速适应不断变化的客观条件和需求” 。

 

面向服务的架构(Service-OrientedArchitecture,SOA)是一种IT术语,不是一种商业术语,这使得很多人难以理解SOA的概念。本文尝试结合日常生活中的例子来形象的阐述什么是SOA,使大家对SOA有一个全面的认识,从而在整个企业级(而不是企业中的一个或多个部门)构建灵活、可重用的系统。

 

通过超市的例子解释什么是SOA 我们在小的时候家门口有很多的小卖部,大一点的小卖部会有柜台,营业员站在柜台里面,我们需要买东西的时候来到柜台外面,柜台里面有什么商品透过玻璃一目了然,找到想要的东西后直接向营业员要就好。小一点的小卖部更是只有一个窗口,我们通过窗口就可以看到里面大多数的商品,直接找老板要某一样东西就好。这样,每个小区或家属院门口都会有一到几个小卖部,满足了我们多数的日常需要。

 

这就类似我们早期的IT建设,各个部门根据自己的需要,分别构建自己的应用系统,用来实现本部门业务的自动化(从手工方式变成电子方式),业务量和数据量都不大,基本上能满足本部门的需要。

 

随着社会的发展,小卖部越来越不能满足人们日益增长的物质需要,于是,百货商店(百货大楼)就得到了大的发展,大家都习惯去百货商店购买东西。

 

同理,各个部门的业务也在发展,分散在各个部门之间的业务系统也越来越不能满足企业日益增长的业务需要,于是,各种集成系统应运而生,就像从小卖部到百货大楼的转换一样。

 

社会的发展还在继续,随着大卖场(超市)的出现,人们的生活方式有了一次大的转变,以往我们需要跑很多地方才能买到的物品,在超市里就都可以买到,从粮油副食品,到小商品,再到电器等等,真正实现了一站式购物。在超市出现以前,比如同学要过生日,我们需要买蛋糕、鲜花、生日礼物送给同学,同时蛋糕需要用漂亮的包装盒包装,生日礼物需要用包装盒以及丝带包装,那我们需要分别跑不同的地方才能买到我们想要的东西,而随着超市的出现,蛋糕、鲜花、生日礼物都可以在超市买到,同时还会赠送蛋糕需要的包装盒,生日礼物需要的包装盒和丝带。超市带来的另一个变化,就是我们可以自由的挑选我们想要的商品,所有的商品都摆在货架上等待我们挑选,相比于传统的百货商店和小卖部,要方便许多。

 

企业基于全局构建的SOA系统同样给企业应用带来了一次大的转变,通过基于SOA的系统真正实现了对所有企业资产的集成(类似于超市的一站式购物),通过重用(REUSE)企业现有资产,构建更好的面向使用者的操作平台(而不是面向计算机的一个个孤立的应用系统)。基于SOA构建的系统(超市)可以很好的集成企业中已经存在的各种资产,从而使企业的现有资产得到了很好的重用。通过服务调用的方式,使得原有各个系统以及新构建的系统有机的结合成为了一个整体。

 

大型连锁超市背后的重要支撑就是其现代物流,这就类似于SOA中的企业服务总线(ESB)的概念。现代物流中运输的是超市需要的各种商品,同样,ESB上跑的是各个系统需要的服务(Web Service)。超市可以把以前的小卖部以一个个货架(专区)的形式整合起来,而基于SOA的系统同样可以把以前一个个孤立的系统整合起来,这种整合是以松耦合的方式实现的,不再像集成系统那么通过点对点的集成技术来实现(当业务发生变化时,需要硬编码来修改系统以适应业务变化),就像货架上卖的货物可以随时调整一样,基于SOA的系统允许接入的服务也是可以根据需要进行变化的。

 

具体的变化如图01-02所示:

 

 

图01-- 02 . 通过超市的例子解释什么是SOA

 

小企业需要SOA吗小企业需要SOA吗?显然是需要的,就像越来越多的小卖部变成了一个个连锁超市一样,企业如果要发展,使用SOA的方式整合企业现有的资源是最好不过的选择,既可以保护原有的资产,又可以灵活扩展,避免了传统的集成方式带来的种种弊端。就像超市有不同规模一样,既有全球大型连锁超市、家电连锁超市、仓储式超市,也有像7天一样的小型连锁超市,更有家门口的小型非连锁超市,同样,不管大型企业还是小型企业,都会需要构建基于SOA的应用系统,区别在于构建的SOA系统的成熟度和规模不一样。

image002.gif

image004.gif

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9524210/viewspace-509584/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 深入浅出SOA(二)
请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2008-06-09

  • 博文量
    84
  • 访问量
    531335