快捷搜索:  xxx  as  1111

SOA:新衣裳还是美丽的谎言?

用这样的题目有点哗众取宠的意味,不过相对付SOA(Service-Oriented Architecture)这个所谓“下一代软件架构”,任何的修饰都显得暗淡无光。早在1996年,Gartner Group就已经提出了SOA的预言,不过那个时刻仅仅是一个“预言”,当时的软件成长水温和信息化程度还不够以支撑这样的观点走进实质性利用阶段。

2002年12月,Gartner又提出了SOA是“今世利用开拓领域最紧张的课题”,并且预言到2008年, 75%的新的企业利用将应用SOA 的元素,从2003年的20%孕育发生急剧的增长;到2006年,在举世贩卖出的所有商业利用产品中,面向办事的将跨越 80%;到2005年,试图建立实时企业能力的企业中,80%将会严重的低估收集的需求,他们将不得不做出着末的增添、进级或者改动,从而能够开展实时企业利用和能力。2008年,SOA将成为占领绝对上风的软件工程实践措施,主流企业现在就应该在理解和利用SOA开拓技能方面进行投资,更好地支持商业流程。

于是此刻,这个“老调重弹”的观点一夜之前成为各大年夜厂商的新宠,商业利益追逐也好,跟风也罢,他们不约而合地选择了在2004年将SOA作为他们观点炒作的重点,籍盼望能够刺激当前依旧疲软的IT采购市场,那么究竟什么是SOA,是一个如何的软件措施论能够让厂商趋附者众,究竟是什么来由让他们在推进观点的同时自主山头?

纵不雅软件成长史,我们经历了面向历程->面向工具->面向组件->面向集成的几个期间:

面向历程:高度耦合、高效率,平日是针对一个详细的利用实现,是以无法适应快速营业变更,不得当做大年夜型面向客户利用的开拓。

面向工具:OOP供给了封装、承袭、多态和重载等等一系列的特点使利用软件的架构可以被重用,开拓职员可以不用关心其详细实现,而是专注于工具能够供给如何的功能,是以前进了软件重用性,从而使得全部IT的根基架构能够适应需求的快速变更。说话的单一性和源代码级的共享抉择了在跨利用系统重用的历程中必定会有各类各样的艰苦。

面向组件:二进制级其余组件共享进一步加速了面向利用实现的方式,承袭了OO的显明的优点,使得IT根基架构能够加倍快速适应营业变更,然则平台单一性依然阻碍了其复用程度。

面向集成:这是一个完周全向营业的期间,所有的利用都因此营业利用为主题去组织的,然则集成高昂的资源让许多企业望而生畏。

SOA恰是在这样的大年夜背景之下应运而生的,在OOP相对成熟之后,软件学术界呈现了诸多的措施学用来解释开拓历程碰到的各种问题,比如AOP(面向方面编程)、MDA模型驱动架构),左券式设计及其极限编程(XP)等等,于是有人提出了“后OO期间已经到来”的论调,SOA恰是这个新期间最紧张的软件措施论。简单地说,SOA是“抽象、疏松耦合和粗粒度”的软件架构,它可以根据需求经由过程收集对疏松耦合的粗粒度利用组件进行散播式支配、组合和应用。办事层是SOA的根基,可以直接被利用调用,从而有效节制系统中与软件代理交互的工资依附性。

那么我们再来看看各大年夜厂商是如何鼓吹和宣传他们对付SOA的支持?

IBM: 传播鼓吹是第一个为构建、支配基于SOA的IT系统供给一系列周全的对象、培训和办事线路的大年夜型厂商,它涵盖了SOA生命周期的所有方面,全部观点覆盖了他们供给的五大年夜产品线Websphere、Workplace、Tivoli、DB2及其Rational。

BEA:传播鼓吹其旗舰产品WebLogic Platform 8.1是业界内最佳的SOA实现平台,从WebLogic Server到WebLogic Portal再到WebLogic Integration,BEA的全线产品都是采纳SOA的理念去设计的,而Workshop 8.1则是第一个完备的ISE(Integrated Services Environment,面向办事集成情况),它覆盖了从设计、开拓、测试再到支配的各个环节,并且传播鼓吹经由过程其能够快速为企业建立基于办事的利用。

Oracle: 传播鼓吹其JDeveloper 10g是一种基于Java与Web办工作况的开拓对象,具有收集激活功能,并能够支持SOA(面向办事的体系布局),并且提出在SOA对象方面,领先于IBM和Sun这样的公司,经由过程其数据库产品Oracle 10g和OAS(Oracle Application Server)的支持,同时加上APF(Application Platform Foundation)的支持,是以在SOA的支持方面,Oracle将领先于其他厂商。

Microsoft: 虽然SOA的观点不是源自这家厂商,不过在后期推广中却盘踞了异常紧张的位置,Biztalk Server 2004的推出,也终于让这个软件巨人理直气壮的开始关于SOA的鼓吹,相对付其他厂商而言,加倍“明智”的选择了从开拓职员入手,向导开拓职员进入SOA,从MBF(Microsoft Business Framework)来看,便是供给给开拓职员的参考架构。

从今朝的市场对峙来看,企业利用开拓可以分化为三大年夜阵营:

以IBM、BEA、Oracle、Sun为首的Java利用紧紧盘踞企业高端利用,除了具备跨平台的特征之外,加倍紧张的是他们在Java标准之上形成了异常成熟的产品线,从开拓对象到利用办事器再到企业利用实现,自始至终都有一套完善的办理规划,在这个天下里面他们成为引导者,他们着眼于中高端市场。

以微软为首的基于Windows平台的利用办理规划供给商,他们完全依附于Windows体系架构所供给的功能,主要的开拓对象早期为Visual Stuido 6.0和Borland的Delphi,现在徐徐迁移到.NET为主,在中低端市场,他们以开拓效率和易用性见长,并且有慢慢走向高端利用的趋势。

以Perl、PHP、Python等等开源为主的利用则着眼于中低端市场,他们则以价格方面的上风见长,并且有对照踏实的社区支持,关键的问题在于没有强势厂商的支持,是以加倍得当做一些相对自力的利用办理规划。

从某种意义上来说,SOA是“自顶向下”而孕育发生的,恰是由于企业利用繁杂度的增强造成了今朝很多利用无法完全是用赓续成长的营业需求,于是“整合(Integration)”就成为企业望而却步却不得不面对的问题,SOA在应对这样的问题时则显得理直气壮,“面向办事、无需整合、标准化、疏松耦合”等等一系列与生俱来的上风让睿智的厂商意识到这个新观点是刺激IT采购的最好入点,于是群拥而上培育了今日SOA的荣光无限。

统统不是如斯完美,假如完美了就没有我本日的翰墨,也没有了那么多的牢骚,信托很多人都在问SOA是否等同于Web Services,从最初的定义到厂商的鼓吹都在传达一个主题:SOA!=Web Services,Web Services只是SOA的一种技巧实现要领,并不够以构成SOA的整个,经由过程JMS、JDBC、.NET Remoting、IIOP甚至CORBA和TCP/IP都可以成为SOA的技巧实现架构,而且也有厂商在私有协议上实现了SOA的模型,比如IBM WebSphere产品线,比如WebLogic Workshop,比如微软的.NET 2.0类库等等。

作为SOA的Java天下的SOA推动者他们觉得SOA不等同于Web Services,由于他们可以理直气壮地传播鼓吹SOA的实现历程中可以应用IIOP、JMS、CORBA等等协议,在Java平台上,这些协议能够事情的比Web Services来的有效率,在Java天下里面实现大年夜统一的软件架构彷佛已经近在咫尺,那么我们也有来由选择SOA。

虽然到今朝为止微软还不够以成为这个观点的绝对引导者,然则有一点可以肯定,轻忽微软的团聚是不敷完美以致是伤心的,虽然可以不在乎,然则轻忽如斯之多的微软开拓职员去叙述新一代的软件架构彷佛照样底气不够。微软选择了圆通的要领去推进SOA,虽然他的产品他的软件架构不是最出色的,然则有一点无可置疑,在易用性方面让其他厂商望尘莫及。微软也知道SOA不是Web Services,然则同样的也知道只有Web Services才能够真正赞助其去实现SOA的贪图,于是就故意的淡化此中的差别,终极的终局便是大年夜部分的微软开拓职员以为SOA便是Web Services,而VS.NET今朝是开拓Web Services的最佳对象,虽然统统不是那么令人知足,不是让微软知足,加倍让Java天下不知足,然则有一点我们不要忘怀了:微软开拓职员盘踞着开拓职员的荆棘铜驼。

从小我的角度而言,我附和SOA是新一代的软件架构,是“后OO期间”最刺眼的软件措施论,然则理论归理论,是不是能够办应当前企业利用存在的各种问题?统统必要我们拭目以待。无意去否定或者进击厂商的做法,终究经由过程观点来刺激IT采购是他们的终纵目的,我们对付我们开拓职员或者企业而言呢,SOA是不是灵丹仙丹呢?

照样必要回到SOA!=Web Services的话题上来,虽然彰显无聊的本色,然则在没有探究出SOA即是什么或者完备包孕什么之前,我们无法不去继承这个百无聊赖的主题,既然SOA强调能够超过异构平台整合营业,那么一定必要特定的技巧手段去实现,就今朝三大年夜阵营的成长来看,Web Services彷佛是独一可以超过异种开拓平台的标准,而就如SOA提倡由于标准化以是卷土重来,那么标准的动身点在于何处?我们谁都明白只有Web Services能够让这个论调自作掩饰。

那么本日的Web Services又若何呢?在超过企业利用方面,切实着实徐徐成为主流的协议,然则在企业内部,在对付相应速率要求对照高的领域,我们都知道今朝的Web Services依然难昔时夜任,终究SOAP的序列化和反序列化在很多实际利用中会成为可骇的机能瓶颈。是以Web Services今朝的利用中照样以集成为主,在实时利用中,还无法成为自己的舞台。

SOA到底是一个如何的器械,它和Web Services是一个如何的关系,是软件学的新衣裳照样厂牌号致的谎话,我们将拭目以待。

您可能还会对下面的文章感兴趣: