标准难以统一
众所周知,很多软件公司都在SOA上做文章,并力图做出一些特色。但从根本上讲,SOA不是个新东西,有两大支柱促成了SOA的快速发展,一个是面向服务的技术,另一个是互联网技术,这两大技术的成熟推动了SOA。随着SOA的逐步应用,标准问题浮出水面。
得平台者得天下,这是SOA厂商们公认的一句话,在这种情况下,各个厂商都在推自己的SOA平台。
从IBM的Websphere到BEA的Weblogic,再到SAP的NetWeaver,每家厂商都竭尽全力地推广自己的平台。从技术上来讲,各有各的优势,我们无法评价其高低优劣。但技术和理论上的成熟,不代表实际应用的成熟。实际上,SOA面临的很现实的一个问题就是标准化,另一个是如何划分业务和流程的模块。这些是真正决定SOA能否成功的关键。
标准化是定义一个业界共同遵守的准则,它针对的是整个SOA产业,不只是软件服务,还体现在应用平台、业务模式等各方面。
用友软件SOA创新中心主任饶元表示:“在SOA10年推进过程中,标准化也在不断完善和发展。现在来看,在整个发展过程中所遇到的问题,虽然有风险,但已有足够的技术能力和勇气来解决它。”
面对SOA标准一直没有统一的局面,刘小兵也明确指出:“标准的规划迫在眉睫,举个例子,电梯的门和口径大小必须统一,否则很难联结在一起。我希望SAP、用友他们制订统一的协议标准,这非常关键。我最担心的问题是各走各的路,结果是标准混乱。如果统一的数据结构标准来了,我们SOA就能软件全部共享了。”
有一种观点认为,“标准就是WebServices和XML。”2005年11月,IBM、BEA、Oracle、SAP等公司就曾共同发布了两项SOA的技术规范:服务构件架构(SCA)和服务数据对象(SDO)。当时,由于很多软件厂商(如微软和Sun)各打各的算盘,并没有加入这一标准组织。微软对此的解释是,希望新的标准规范可以“靠自己更近一些”,SML的技术基础就是在微软的XML系统定义模式(SDM)下发展起来的。
2006年8月,IBM、微软、BEA、思科等11家IT巨头宣布推出一项服务建模语言(SML)草案,以提供统一标准来整合计算机网络、应用软件、服务器及其他IT资源。
2006年以来,3个重量级的标准问世,它们目前都属于规范级别。它们就是SCA、SDO、WS-Policy。SCA和SDO构成了SOA组件开发的核心,而WS-Policy则成为SOA组件间安全通讯的标准,其作用类似于安全套接层在浏览器与服务器通讯中的作用。
长风联盟SOA-RA-TF主席、东方通科技首席架构师朱律玮认为:“制定标准无论对厂商还是对用户都很重要,厂商可以获得更多的竞争机会,而用户则意味着有更多的选择,可替换性就有了保障。”他同时指出:“虽然目前已有了SDO和SCA标准,为SOA的广泛应用奠定了良好的基础,但从整个技术水平来看,SOA还处于起步阶段,很多标准需要完善和补充。”
诱人的愿景
SOA是软件工程和软件产业的一次自我变革和扬弃,它将迫使软件技术人员站在用户的业务视角上工作,将高深莫测的软件开发转化为“服务”业务的相应实现,将软件专业语言转换为现实业务语言,打破软件领域的技术壁垒和神秘感,最终甚至会把用户的业务人员改造成软件系统的架构师。那时,软件产业将告别“阳春白雪”,成为一个名副其实的现代服务产业。
SOA适合谁?
并不是所有的企业都适合部署SOA。沪士电子有限公司IT经理王翔认为,如果公司规模较小、产品单一,IT部门只是作为附属、支持性部门,一套ERP系统就足够了;规模较大、IT部门相对独立的企业,实施SOA会更为容易一些。“IT部门以前偏重于支持,但SOA要求IT部门提供服务。因此,与业务部门并行、相对独立的IT部门更容易部署SOA。”
事实上,假如不具备条件,而去盲目地部署SOA,项目失败的可能性会很高。一位专业人士表示,有些企业用户错误地认为SOA项目应该全部由自己开发;另外,有些用户只是购买一些软件产品,实施的时候完全依靠自己的团队,勿需外力支持,在实际实施过程中很可都会遇到非常大的风险。
因此,该专业人士建议,那些试图部署SOA的企业,应该从小项目着手;此外,SOA项目还需要得到企业高层管理者的支持,以整合IT和业务部门的资源,实现IT与业务流程的紧密结合。
“SOA不偏重技术,而是偏重组织、管理、商业模式。这是一个大的系统工程。”王翔说。SOA最吸引人的地方在于,它可以更好地实现业务和IT一致性。
基于SOA的IT系统是由松散耦合组件组成的,它允许分散于各地且采用不同技术的资源协同工作。它要求研发人员开发的程序有更多的通用性。通俗来讲,就是有标准化的接口,可以将各种组件迅速组装成为新的产品和服务。
显然,要实施SOA,难点在于把整个业务和IT逻辑重新梳理,提炼出更多的共性模块,之后的技术实施反而不是关键。
在中国,电信、银行是对SOA需求最为迫切的行业。但这两个行业都有共同的特点:企业内部的信息化系统很多是按照部门来部署的,而且每个部门都有自己的利益,因此,“实施大集中式SOA,一次性地实现所有部门和系统之间的共性组合,显然是不现实的。”一位在银行工作多年的应用架构师这样描述SOA在银行里所能发挥的作用,“不过,各个部门为了应对日益加大的竞争压力,都希望在局部的范围内,实现尽可能多的业务一体化组合,也就是希望快速地在小范围内实施SOA。”
除电信、金融行业以外,众多行业企业的普遍情况是,IT系统并非企业的核心业务工具,企业的业务运营和生产没有达到向用户提供随需应变的服务水平。换而言之,大部分企业的生产运营和管理还是以生产环节为导向,由生产能力决定服务的水平,因此,这类企业需要经过较长时间,使企业生产运营逐步成熟,才会向服务导向型的更高的企业经营水平过渡。
当企业客户要求企业提供随需应变的服务能力时,这些企业就会对SOA的IT系统架构产生迫切的需求。因此,处于目前发展水平的相当数量的企业,对部署基于SOA的IT系统还需要相当长的时间。