[转]SOA的国际标准进展:SCA/SDO已完成关键部分
编者按:
2007年3月20日清晨,大洋彼岸连线中国,共同发布了一个重大消息:
SOA中关键的SCA/SDO规范主体部分起草完成。
这一规范的完成,是否意味着SOA可以部分标准化了,SOA即将迎来一个前所未有的飞跃?
既有的市场格局是否会被打破,应用者和开发者是从头再来,还是边走边做?
SOA将会变得理性可行,还是更加扑朔迷离?
“在我们力图改善文明这个整体的种种努力中,我们还必须始终在这个给定的整体中进行工作,旨在点滴建设,而不是全盘的建构,并在发展的每一个阶段中都运用既有的历史材料,一步一步地改进细节,而不是力图重新建设这个整体。”
——著名政治思想家弗里德里希·冯·哈耶克
易观国际高级IT分析师
梁新刚
2007年3月20日清晨7点,笔者在北京通过电话和WebEx在线会议系统远程接入了OSOA针对亚太区分析师的发布会。会上宣布:SCA/SDO规范的主体部分已经起草完成,将正式提交给OASIS(The Organization for the Advancement of Structured Information Standards,结构化信息标准促进组织),使该规范逐步成为正式国际标准。SOA的国际标准制定由此进入了一个新的历史阶段。
SCA/SDO告别蛰伏
SOA的概念最初由Gartner公司于1996年提出,但当时并未引起人们的广泛关注。2000年前后,人们提出了Web Service的概念,SOA开始走向实际应用。
从2005年开始,SOA推广和普及工作开始加速。各大厂商也逐渐放弃成见,通过建立厂商间的协作组织共同努力制定中立的SOA标准。OSOA就是18家致力于SOA企业的联盟。联盟开始起草SCA/SDO规范。
如果把SOA的思想比为以插接乐高积木的方式来构建灵活的、可复用的企业IT系统,则SCA相当于做了那个带插孔的底板,它定义了架构,便于各个积木块插在上面,搭建成一个企业级IT系统。
而SDO定义了多种格式数据的统一访问,相当于规范了积木块的凹槽和凸起,使彼此能够插接。
此次SCA/SDO规范移交给OASIS的重大意义则在于,一旦成为国际标准,不同厂商的“积木块”彼此之间都能够方便地插接。仍以积木类比,当前没有国际标准,则任意两个积木之间是无法插接的,因为它们之间的插槽不遵循统一标准。
在以往的企业IT整合过程中,如果这些IT系统来自不同的应用供应商,整合就将是非常困难的事。虽然各家厂商都倡导SOA,但是各自的积木块未必能插接在一起,因为其凹槽和凸起各不相同。如果SCA/SDO规范在OASIS的进一步推动下成为国际标准,SOA思想就有可能在不同IT厂商的产品之间获得广泛实现。
影响三方力量 打破既有均衡
虽然业务引领IT,但技术的演进对业务也产生互动影响。SCA/SDO规范在技术上解决了IT应用整合的标准化,让IT系统更为灵活。而企业要享有这一好处,其业务势必要做出相应的改进。
对于用户来说,首要的就是业务流程的梳理。企业级优化不仅需要新技术的支持,还需要从新角度考虑商业模式设计问题,实质是实现企业内部更细的分工和专业化的过程。随着内部专业化日趋成熟,业务活动的整合将公司转变成由一个个业务模块组成的网络,每个模块中都包含一系列彼此关联的活动,由适当企业资源提供支持,如人员、流程和技术等。每个业务模块都在组织中发挥独特作用,同时又可以作为单独实体运行。这种“模块联盟”设计从思想方法上是与SOA同构的,这些内部的变化不仅将加速企业的创新能力,还能提供更多更好的服务。
SCA/SDO规范也要求IT Vendor做出积极的应对。首先,SOA标准化将成就一个统一的SOA应用市场。IT厂商营销口径的一致,将打消用户的疑虑,加快SOA应用的进程。其次,SOA标准的轮廓已经清晰,IT厂商以SOA改造各自的产品是当务之急。事实上,从“复用”的角度来说,IT厂商是应当最先实践SOA理念的。但是此前有很多IT厂商采取了渐进策略,以SOA之名,行EAI整合之实,即所谓“新瓶装旧酒”。现在,有了SCA/SDO规范作为“试金石”,深谙技术之道的CIO们自会以此检验厂商的解决方案是否真的符合SOA。第三,标准化意味着同质化竞争。IT厂商必然争先推出符合SOA架构的方案,抢占市场份额。
考察IT市场格局,曾参与OSOA的厂商无疑占有先机,而其中拥有丰富的中间件软件的厂商将先拔头筹,充分享受到SOA整合带来的巨大商机。今后,SOA市场的竞争,焦点在于平台。形象的比喻是:如果多国的铁轨要连通,那么,采用了哪国的轨距,就为其节省了巨大的改造成本,赢得了市场的先机。
SOA面临分水岭
SCA/SDO踏上国际标准征途既是一个里程碑事件,也是SOA发展面临的一个分水岭:是以建构的思想来规范构件,还是以演进的思想兼容并包异构。
让我们回到SOA的核心思想,一言以蔽之:复用。
一个服务组件就是一个“粗颗粒度”的、会被重复使用的业务功能模块。因为可复用,所以企业的IT系统能随机应变、快速调整。例如, “开发票”就是一个服务组件的例子,它比一个API“大”,但又比一个业务流程“小”。一家采用了SOA的企业,其应用系统就是由许许多多这样的服务构件装配而成。
现在SOA面临的问题是,SCA/SDO只是完成了积木的底板和凹槽的规范,接下来要决定:服务构件到底应该赋予多大的尺度,才能实现“足够的”灵活应变,以及在复用中降低IT成本?这个问题是SCA/SDO没有界定的、却是不可回避的问题。
之所以构成一个难题,是因为构件的颗粒度与制作构件的成本之间需要权衡。对于企业来说,构件的颗粒度越小,搭建起来的系统灵活度越高。但是,相应地,企业在初期为编写细颗粒度的服务构件需投入的成本也更高,业务流程也需要为此做出更为细分和专业化的调整。
为何SCA/SDO规范没有解决构件编写的规范?因为,IBM作为OSOA的盟主,其根本思想方法是“组装”。这是由其主要服务的欧美企业的需求决定的。
经过数十年的IT系统建设,欧美大型企业已经拥有了丰富的应用系统。所以实现SOA架构的第一步是将存在于异构应用系统之中的业务流程切割、封装成为标准的服务构件(SCA);第二步是将散在不同系统中的数据整合包装成为数据服务(SDO);第三步是根据业务需要,通过BPEL将分散的服务联结成新的业务系统。
在参与OSOA开放组织的18家厂商中,普元软件无疑是独特的。其独特性不仅因其是亚洲唯一的成员,更因其根本的思想方法与欧美厂商不同。2006年5月,28届世界软件工程大会上,普元软件的黄柳青已经阐明了这一点:“SCA的概念和普元EOS的一些概念是大同小异,异曲同工。SCA中提出的一些新概念在EOS中都有对应的类似概念。但是,EOS和SCA还是有一些区别。例如,SCA粒度比较大。而EOS更广泛,粒度要小一些。而且,两者在定位上也有所不同:美国企业应用背景是那些大量存在的僵化而又挥之不去的遗产系统,是要把企业中那些大量的遗产系统、现有系统,以及新的基于浏览器的前端用‘服务’绑定起来。它在本质上是要实现‘整合’。而国内的应用系统,除了整合,还需要大量新的开发,表现出不同的市场特征。正是面对国内的市场需求,才有了EOS的出现。” 普元董事长刘亚东也有类似的说法:通向SOA有两条路径:美国式和中国式。
在SCA/SDO规范的这一段路程,以上两条路径还可求同存异;再往下走,其思想方法上的分歧就不可避免地凸显出来。
暴露致命的自负
如果说IBM发起OSOA的初衷是对企业遗留系统的“破”—分割然后组装;则普元从2001年成立以来始终追求的则是“立”—从普元的英文名不难窥见刘亚东这位马里兰大学物理学博士的方法论:以构件类比物理世界的原子,构建企业级IT系统。
这“破”与“立”看似都通向SOA,其根本的方法论实则大相径庭。SCA的“破”,是对传统EAI整合的升华,对遗留系统和新系统兼容并包;而面向构件的“立“,则要求企业勇于接受一个全新建构的IT世界。
赢得一个新世界固然好,但前期投入相对较高,除了平台提供商已经提炼出来的通用服务组件,企业需要梳理业务流程,编制大量的服务组件。今天的成本和未来的应变能力,孰轻孰重,是摆在企业面前的难题。
SOA面临的这一难题暴露了IT技术致命的自负。从方法论意义来说,IT技术的根本是理性建构主义的。软件工程思想从面向过程、面向对象,发展到当前的面向服务,都是期望能通过IT架构更细的分工和专业化,来应对将来业务的变化。换言之,就是“设计未来”。但是,未来真的可以设计吗?
构件的颗粒度及其规范问题,也许能够与经典物理学在20世纪初面临的海森堡“测不准原理”相类比,结论不言而喻:企业的IT架构更像是一部只有大致情节的剧本,不可能以预先编制的构件解决全盘问题,未来还有很多可创造的空间。
这一反思,对于即将采用SOA的企业的重要意义在于:需要审慎地评估投资ROI,在系统建设初期如果投入大成本编制服务构件,今后真被有效复用的会有多少?会不会为了管理未来变化而在今天过度投资?实际上,在早期实施SOA的企业,这个问题已经暴露出来。
什么是SCA/SDO?
首先,我们要知道什么是SOA。
形象地说,SOA就是将现有的一些功能模块打包成独立的程序包,命名为“服务”模块。这些服务模块(组件)在整个软件系统的角色相当于在乐高玩具中所用到的小砖块。对于这些服务模块,需要对其接口进行良好定义,使得其他的应用系统可以使用“拿来主义”,方便地使用这些服务模块。这好像我们在乐高游戏中,使用同样的小砖块,只需要对砖块进行重新排列,我们既可以搭建出城堡,又可以搭建成鳄鱼或飞机。
如果把SOA的思想类比为以插接乐高积木的方式来构建灵活的、可复用的企业IT系统,则SCA相当于做了那个带插孔的底板。
SCA提供了一种统一的面向服务组件的调用方式,从而使得客户可以把不同的软件模块通过服务组件的标准化而统一地封装起来和被调用访问。而SDO则作为一种数据编程架构和API,它统一了不同数据源类型的数据编程,让开发人员可以从不同的数据源以统一的方式访问和操纵数据。可以说,SCA以面向构件的方法,简化了客户的业务逻辑编程,提高了应用的灵活性。而SDO则更进一步从数据对象上大大简化了开发。
SCA/SDO的历程
2005 年 11 月, IBM、BEA、IONA、Oracle、SAP AG、Sybase、Xcalia 和 Zend 就合作建立新的业内规范来简化 SOA 应用发展达成了一致,共同发布了两项针对SOA的重要构件模型规范——SCA 0.9和SDO。此后,该团体陆续吸引了 Cape Clear、Interface21、普元、Progress Software(前 Sonic Software)、Red Hat、Rogue Wave Software、Software AG、Sun Microsystems 和 TIBCO Software 、Siemens AG等多家公司的加盟,目前成员数量跃至 18家,形成了OSOA联盟。
2007年3月,这18家厂商宣布了SCA和SDO规范中关键部分的完成,并将正式提交给OASIS(The Organization for the Advancement of Structured Information Standards,结构化信息标准促进组织),通过其开放式标准过程进行推动。