技术开发 频道

SOA“阳光”背后的异样味道

【IT168 技术评论】    “随需应变”、“灵动商务”这些溢美之词不断加诸于SOA上,在所有华美的包装之下,人们往往会忽视SOA在充满“阳光”的背后也有一丝异样的味道。
    SOA是近几年非常火热的一个技术话题。只要是从事IT行业,或者和IT行业沾一点边的人,不知道SOA的可能性是非常之小。从前几年的概念普及,到现在与SOA相关的产品出炉,SOA正在向我们走来。有人说,SOA的市场成熟了,一个属于SOA的新IT时代马上就要来临了。

平民眼里的SOA

    一方面,SOA的种种好处让人们对它艳羡不已,一方面人们对SOA又难免有一些认识上的误区。
    本刊前不久进行了一次关于SOA的调查,超过80%的IT主管都听说过SOA。再看对SOA的了解程度,超过半数的IT主管认为自己只是一般了解,仅有不到10%的IT主管认为自己比较了解SOA,而在189名参与调查者中,认为自己非常了解SOA的居然是零。
    面对SOA的日益火爆,不仅供应商们纷纷标榜自己的产品符合SOA架构,CIO们也怕自己跟不上潮流。懂了的要显示出自己比别人更为了解,不懂的也要努力装出懂了的样子。
    曾经有一家出版社将自己的一部分应用改为使用基于Web Services,采用 XML来描述系统接口。由此这位信息中心主任认为自己企业的系统已经可以称之为SOA架构了。殊不知企业门户和SOA还是有本质区别的,建立了企业门户并不等于系统就SOA化了。
    虽然企业门户也是基于Web Service,但SOA和Web Service不是同一个概念,SOA是组织IT资源更好地满足业务不断变化需求的一种方法!Web Service是基于标准的、协议化的软件功能和数据的接口。
    还有一位CIO提到SOA很不以为然,原因是他认为SOA与BPM(业务流程管理)就是一回事。SOA就是BPM,BPM就是SOA,没什么新鲜的。
    一方面,人们对SOA有这样那样的误解。一方面,对于SOA的作用,即便已经实施应用的用户也很难说得清楚。
    高贺是中国工商银行鹤岗市分行信息科技部信息应用主管。工商银行有一些系统是符合SOA架构的,但谈起对SOA的感受,高贺的感受和普通的银行顾客差不多,只是感到电子银行自从改用SOA技术后,各个系统间的访问流畅了许多,电子银行的业务范围也有所扩大。

SOA来了

    灵动商务、随需应变的口号令人们对SOA充满了渴望,一首在网上流传的打油诗就能反应出人们的心态:
    应用软件千千万,
    整合起来真麻烦;
    SOA一出现,
    实现起来变简单。

    不用说,灵活的系统是CEO和CIO都期望看到的。把公司转型为“随需应变”的企业,满足各种不同需求,听起来多么具有诱惑力啊!
    于是,SOA的概念为人们所热衷,也为供应商所追捧。一时之间,SOA成了一种IT时尚。用户不了解SOA仿佛就跟不上时代的发展,供应商没有SOA产品,仿佛就在激烈的市场竞争中失了先机。谁也不愿意落伍,于是不管懂与不懂,CIO们都对SOA表示出浓厚的兴趣,供应商们也都纷纷标榜自己的产品是符合潮流的SOA架构。
    但SOA远远不是为了整合而生,SOA是一种松散的体系架构。
    其中,S指的是Service-服务,A指的是Archirecture-架构。
    SOA本身就是一种面向企业级服务的系统架构,简单来说,就是一种进行系统开发的新体系架构,在基于SOA架构的系统中,具体应用程序的功能是由一些松耦合并且具有统一接口定义方式的组件(也就是Service)组合构建起来的。
    跟管道的、分层的、黑板式的体系结构相比,SOA要更松散。它的模块(组件)只是一些服务,然后可以任意地组合拼接以获得新功能来满足新需求。这些特性为SOA赢来了非常灵活,可以冠以“随需应变”的美名。
    传统的分层架构有助于将大系统分解成子任务,每个子任务限制在一个特定的层次上,层间从上到下依赖,从下到上是松耦合。在分层模型中,一般都非常强调接口,因为可以让上层只依赖于下层的接口。
    黑板系统主要由三部分组成,知识源、黑板数据结构和控制。
    知识源中包含独立的、与应用程序相关的知识,知识源之间不直接进行通讯,它们之间的交互只通过黑板来完成。黑板数据是按照与应用程序相关的层次来组织的解决问题的数据,知识源通过不断地改变黑板数据来解决问题。控制完全由黑板的状态驱动,黑板状态的改变决定使用的特定知识。
    换一种说法,过去的技术好比是结合,而SOA是松散耦合。以前好比男孩和女孩想一起出去玩,需要结婚,万一感情不合不想再在一起还需要离婚。而SOA的架构则像朋友交往,可以任意组合。
    还有这样一个比喻能帮助你简单的了解SOA,SOA就是邮购。当你从报纸上看到一个邮购广告,然后你剪下来,添上你的需求、型号、递送时间和你的地址,把钱放到信封里然后寄出去。不久你收到了你需要的商品。整个过程首先是异步的,其次不需要了解对方对你的订单的传递和处理过程,整个过程还包括了交易和结果的递送。而报纸上的广告可以看作软件服务对外暴露的接口。

是谁让我们痛苦

    按照厂商的宣传,SOA的好处主要有两种,一是解决异构问题。二是降低TCO(整体拥有成本)。
    很多CIO最怕两件事,一是公司进行业务整合,二是公司开展新业务。因为对CIO来说,两件事都意味一个结果——持续熬夜加班。大多数的IT管理人员都经历过类似的噩梦,有人更将异构系统环境与需求的不断变化,看作多年来应用软件的两大“癌症”,使得软件从业人员长年累月陷入“修修补补、穷于应付”的工作状态,企业也根本无法做到对市场变化作出快速响应。
    过去,应用软件基本上是按照业务流程逐一对应开发的,每一个应用自成体系、自立门户。因为每个应用自成体系,每开发一个新应用,就需要重开发一遍界面与数据展现,重写一遍业务代码,浪费了大量的时间和人力。
    SOA则可以改变过去纵向开发应用的模式,将软件按照业务需求,定义成大小合适的“组件”,作为企业共享资源,随时调用。
    同时,传统的软件升级对用户就意味着每三年来一次革命,不仅需耗费大量金钱,还会闹得人仰马翻。现有的ERP等企业软件几乎都是铁板一块,当某一点业务变化时,某一点功能需要调整时,必须全部升级,这不但造成升级成本太高,而且牵一发动全身,质量无法保证。而未来SOA构架下的企业软件就像是一个不断进化的生态过程,某些“服务(业务组件)”不断地局部升级,新的“服务”不断地加入,只有这样的系统才能真正做到快速适应业务变化。
    事实果真如此的话,SOA可谓是解决CIO痛苦的大救星。CIO们的痛苦由来已久,每次供应商推出新的产品时,总会找到原有产品的不妥之处,劝说用户购买新的产品。于是,CIO们就在一次一次购买新产品的过程中解决原先的痛苦。当这些痛苦解决的差不多的时候,往往才突然发现自己手中已经多了三四家供应商的新产品。
    SOA是否能改变这一局面,让CIO们从此跳出痛苦的怪圈,同时也不用在供应商一次一次的口号变更中更新自己的系统架构。
    事实果真如此吗?让我们看一看IT的发展历史,也许能看出一些端倪。

与设备无关的电脑

    IT技术的发展,几乎可以称之为一部开放与封闭交替的历史。
    1975年到1985年,可以称之为争夺硬件设备的年代,也可以说是PC的辉煌年代。
    1978年,第一届COMDEX FALL大展上展出了由苹果公司生产的APPLE机,拉开了PC时代的大幕。苹果(APPLE),这家草创于汽车库的公司,继推出第一代的苹果机后,随着又推出了苹果II型、III型电脑,销售额直线上升:1978年1500万美元,1979年7000万美元,1980年1.17亿美元,1981年3.35亿美元,1982年5.83亿美元。短短五年时间,苹果微型计算机公司就进入美国《幸福》杂志评选的500家主要公司行列。
    巨大的利益引起了各方关注。1981年8月12日,IBM正式发布了历史上第一台个人PC,从此人类进入了个人电脑时代。
    1982成为IBM PC展示其巨大魅力的演出年度。IBM原来预计在一年中售出241683台PC,然而用户的需求被大大低估了,实际上一个月的订货量就超出了预计。这一年IBM PC共生产了25万台,以每月2万台的速度迅速接近Apple II的产量。
    采用开放的系统,是PC迅速称雄最关键的一步棋。第一台PC采用了总线技术和零散的部件(即“开放标准”),IBM还公开了PC除BIOS之外的全部技术资料,并通过分销商传递给最终用户。这一系列开放措施极大地促进了个人电脑的发展,同时也给兼容机制造商开辟了巨大的空间。
    IBM在1983年3月8日发布了PC的改进型IBM PC/XT,凭借XT,IBM市场占有率超过76%,一举把Apple挤下微型电脑霸主的宝座,当时占领PC市场的除了IBM公司,还有7家小公司。由于IBM所占市场份额巨大,所以有人称PC市场是IBM和7个“小矮人”, IBM“蓝色巨人”的称号又一次叫响。
    1985年10月,Intel推出16MHz 80386DX微处理器,当时,IBM已经收到大量286机器的订单,不愿立即转向386,同时IBM担心长期受制于Intel芯片,开始暗中开发自己的处理器,所以对是否采用386芯片不置可否。
    有人把这一阶段的PC之争形容为与设备无关的电脑之争,厂家都在硬件设备上下功夫,维护自己在硬件设备领域的专利权成了这阶段厂商的主要目的。
    而这时候的中国IT业界还处于启蒙阶段,值得称道的只有1984年联想公司的成立。

争霸PC市场

    1985年到1995年,可以称之为争夺操作系统的时代。
    1985年11月,在经历了多次延期之后,微软公司终于正式推出了Windows操作系统。
    1986年9月,康柏比IBM更早推出它的基于16MHz Intel 80386的个人电脑Compaq Deskpro PC,兼容机开始领先于IBM PC,康柏的业绩在短短四年间跃入《财富》500强,并在1994年第一次超过IBM登上PC电脑的王座。
    1987年4月,IBM推出基于386的IBM Personal System/2(PS/2)个人电脑系列。因开放标准而受到兼容机困扰的IBM,在Model 50以及更高配置的PS/2产品系列中,引进了不与其他设备兼容的微通道架构(Micro Channel Architecture,MCA)技术。
    1988~1989依靠生产兼容机,康柏创下了最短时间业绩成长最快的纪录。康柏依靠386 PC的成功一炮打响,并坚持使用无需交纳许可使用费的行业标准总线,而不是IBM新推出的微通道总线。此后,PC行业进入了一个全新的发展阶段,IBM也逐渐失去了在PC行业占据的主导权。
    在这一阶段中,因为采用开放的系统,PC市场得以迅速发展,同时也使IBM坐到了PC市场份额第一的宝座之上。也正是因为采用封闭的微通道架构,与开放的市场格格不入,才使IBM在后来的PC发展中落后。
    1991年10月5日,来自芬兰的大学生Linus.Torvalds开发出了一种基于UNIX的操作系统—Linux,并且将源代码全部公开于互联网上,从而引发了席卷全世界的源代码开放运动,Linux本身在经过全世界无数程序员的改进后也逐渐成长为一个成熟的操作系统,并在全世界逐渐的流行开来。
    1994年3月,Linux 1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。至此,Linux的代码开发进入良性循环,越来越多的人开始在自己的PC上尝试Linux操作系统。
    与此同时,中国的计算机应用也进入了单机应用的时代。1993年3月2日,我国接入Internet的第一根专线,中科院高能物理研究所租用ATT公司的国际卫星接入美国斯坦福线性加速器中心的64K专线正式开通。

与操作系统无关的电脑

    1995年有两件事最值得关注。
    1月10日,IBM正式宣布:将以前各自独立的软件解决方案、个人软件产品和网络软件部门合并,组成一个软件集团,进入了软件市场的争霸之中,这一举动让这个以硬件著称的公司在十年后成为全球第二大的软件供应商。
    1995年8月24日,微软公司正式向全世界推出了划时代的Windows95操作系统。这次发布微软采用了全球各地同时发布的办法,并斥资5亿美元作为宣传费用,创下了软件宣传费用的历史之最,而Windows95的发布,也开创了一个全新的Wintel联盟。
    1996年10月28日,Intel和微软共同发布了自己的NC(NetComputer)标准,该标准即简化的PC,仍然使用操作系统和本地硬件系统。
    这一阶段的争夺领域放到了操作系统上,利益和专利技术的维护转向了操作系统。
    就在各个计算机公司都在墨守成规地发展CISC(复杂指令系统计算机)体系结构,都在诚惶诚恐地保护自己的专有技术,都在拼命抢夺PC市场的时候。Sun公司响亮地提出“网络就是计算机”的口号,开发面向网络的、可缩放的RISC(精简指令系统)体系结构和Unix操作系统,公开自己的技术标准。这些划时代的创举为Sun公司的发展奠定了坚实的基础,更为工业界确立了一种新型计算机——工作站的标准,使开放性成为计算机行业发展的强大动力。
    RISC与CISC的争斗远远没有结束。直至现在,在高端服务器领域还有两种声音在进行着搏斗,依然是开放与封闭。在开放的阵营中,Intel、微软、众多Linux厂商们一直对用户高呼:过来吧,只有开放才能解救你们;而IBM、SUN等厂商却始终强调,他们的系统更加安全稳定,这才是关键业务的非常好的选择。
    在群雄逐鹿的IT世界里,开放成就了PC的辉煌。也成就了不少IT公司,而当有些IT公司有了独霸天下的意识后,关于硬件设备和操作系统的明争暗斗就屡见不鲜,见怪不怪了。有了做天下第一的心思以后,才会在自己的产品中加入障碍,降低了产品的兼容性。
    这个时候,SOA高举着兼容的大旗出现了,仿佛是解决所有这些问题的救世主。

SOA不等于开放

    几千年来,孔子的思想、观念、教化可以说是渗进每个华人的骨子里,不管你是出身名门望族也好,出身贫贱也好;是达官贵人也好,一介布衣也好,都被孔子的文化深深地影响和感染。
    天下归一,天下大同是孔子的理想,SOA仿佛从骨子里有一种开放的趋势。也许当SOA代替了现有技术之后,IT世界的天下就可以大同了。
    SOA的概念最初由Gartner公司提出,由于当时的技术水平和市场环境尚不具备真正实施SOA的条件,因此当时SOA并未引起人们的广泛关注,使SOA沉寂了一段时间。伴随着互联网的浪潮,越来越多的企业将业务转移到互联网领域,带动了电子商务的蓬勃发展。为了能够将公司的业务打包成独立的、具有很强伸缩性的基于互联网的服务,人们提出了Web服务的概念,这可以说是SOA的发端。
    Web服务开始流行以后,互联网迅速出现了大量的基于不同平台和语言开发的Web服务组件。为了能够有效地对这些为数众多的组件进行管理,人们迫切需要找到一种新的面向服务的分布式Web计算架构。该架构要能够使这些由不同组织开发的Web服务能够相互学习和交互,保障安全以及兼顾复用性和可管理性。由此,人们重新找回面向服务的架构(Service-Oriented ArchITecture,SOA),并赋予其时代的特征。需求推动技术进步,正是这种强烈的市场需求,使得SOA再次成为人们关注的焦点。
    看看SOA的诞生与发展,与互联网的发展密不可分。而互联网从诞生之日起就注定要与开放同行,没有开放,就没有互联网的蓬勃发展。没有开放,也就没有SOA的今天。
    但是,不能因此这样我们就认为SOA就等于开放。应用了SOA就可以解决用户的所有困扰,SOA也并不意味着IT公司不再有争霸天下的野心,从此各个供应商所有的应用软件、操作系统、总线都可以无缝兼容。
    不要忘了,在技术上设置重重障碍,妨碍兼容的正是如今高喊SOA口号的IT供应商们。每当电视上播放买××商品,就会为希望工程捐献1分钱的广告时。反思一下为什么商家不直接盖几所希望小学,而是通过这种方式搞促销。也许你就会想通,和设备之争、操作系统之争一样,SOA的实际上是另一个领域的又一轮争夺罢了。

享受SOA

    IBM中国开发中心Web 2.0首席架构师毛新生对SOA有一个很有意思的比喻。
    比如说到餐馆去点一道鱼香肉丝,这就是服务。做鱼香肉丝就属于业务处理能力,可是每一家餐馆所做的鱼香肉丝是不一样的,也就是服务质量不同。当顾客不满意这次服务时,如何解决这样的纠纷,需要餐馆经理来处理问题,是重新做一份还是免单,这就是业务策略。
    这样一个简单的例子其实表明了在过去代码的时代所无法表达的内容。一个业务活动要有业务处理能力,有功能,同时有跟这个功能有关系的一些关于质量的要求,还需要有一些处理各种各样突发事件的业务策略。所有的这些东西融合在一起,就是对服务的描述。
    和这个道理一样,服务是一种用户体现。包含在服务后面的人力、物力和一些互动过程用户不需要关心,只享受服务就可以了。而服务的提供者也需要制定一些标准来衡量服务质量,要考虑如何去处理突发问题。
    比如制作鱼香肉丝,原料、厨师、配菜、侍者这些都由服务的提供者来提供,顾客不需要了解。顾客要做的,只要了解和服务的提供者之间的契约是怎么样的,包括价格、味道和当发生意外时,该怎样处理就可以了。服务呈现给用户的是一种可以提供给用户的完整的业务处理能力,由契约来约束服务的质量、服务方式等,这就是服务的内涵。
    不可否认的是SOA是今后技术发展的必然趋势,软件即服务也是今后IT的发展方向。
    业务人员不了解IT和技术,对他们来讲,只享受服务而不用去了解繁冗的IT技术是一种解脱。但是国内IT部门对自己定位偏向技术支持部门而不是服务支持部门也是不争的事实。SOA是面向服务的架构,从这个角度来说,也许SOA还有一段很长的路要走。但不管是你欢迎还是抵触,SOA终究是来了。
    如一位CIO所说,目前看来SOA是未来的发展方向。但是也许在几年之内,会有一种新的技术或理念会代替SOA。
    我们要做的,不管结果如何,享受这个过程。

0
相关文章