中国计算机报:SOA中国路线能否行得通


 2007-06-18 00:00:00       754

原文链接:http://tech.sina.com.cn/it/2007-06-18/15341568942.shtml

SOA中国路线能否行得通

汪蔚

对于SOA,厂商说的已经太多,媒体说的也已经太多。技术和理论上的成熟,不代表实际应用的成熟。标准化真正决定SOA的成败。

SOA犹如一个新鲜的梦想,为生态链上的厂商也好,企业中的CIO也好,展现出一个美丽新世界。然而,从最开始的新鲜、好奇、振奋,到很多CIO的隔岸观火、犹豫不决,甚至拒绝否定,这也让不少媒体同仁开始了反问和质疑:莫非天堂在左,SOA在右?

不过,这一次有所不同。

今年3月20日清晨7点,OSOA的专家宣布SCA(Service Component Architecture,服务组件架构)/SDO(Service Data Objects,服务数据对象)规范的主体部分起草完成。

5月29日SOA国际标准全球路演中国站在北京揭幕,并在会上发布SCA/SDO规范和《SOA中国路线图》。

通过反反复复的学习、了解和感受,我们终于可以确定,我们面对的是梦想照进现实的光芒。

SOA规范给谁带来先机

强烈的市场需求,使得SOA成为关注的焦点。各大厂商逐渐放弃成见,通过建立厂商间的协作组织共同努力制定中立的SOA标准。为了使客户能够更加简单地实现向面向服务架构的转变,一种新的服务构件模型浮出水面。它提供了一种统一的调用方式,使得客户可以把不同的组件通过一种标准的接口来封装和调用。这就是面向服务构件的架构SCA。而SDO则是与之相辅的数据编程架构。

如果把SOA的思想类比为以插接乐高积木的方式来构建灵活的、可复用的企业IT系统,则SCA相当于做了那个带插孔的底板,它定义了架构,便于各个积木块插在上面,搭建成一个企业级IT系统。而SDO定义了多种格式数据的统一访问,相当于规范了积木块的凹槽和凸起,使彼此能够插接。理想的状态是,就像我们在乐高游戏中一样,既可以搭建出城堡,又可以搭建出鳄鱼或飞机。

现在虽然不能就此说SOA已经标准化,但可以说,SCA/SDO揭开了SOA标准化的序幕。SCA/SDO带来的决不仅仅只是一个技术上的规范,它的出现势必改变市场的格局,甚至影响软件业。

易观国际高级咨询师梁新刚认为,标准化意味着同质化竞争,IT厂商必然争先推出符合SOA架构的解决方案,抢占市场份额。曾参与OSOA的厂商无疑占有先机。今后SOA市场的竞争,焦点在于平台。形象的比喻是:如果多国的铁轨连通,那么,采用了哪国的轨距,就为其节省了巨大的改造成本,赢得了市场先机。

普元的董事长刘亚东则从普元的立场出发,认为规范的发布将对软件业带来三个变化。第一,商用软件之间将据此实现互联互通,从而实现灵动的“实时企业”;第二,编写源代码的软件开发方式将会被模块式的软件构件搭建所取代替,软件的开发效率将得到巨大的解放;第三,在软件构件这个层次上,基于中国和以美国为代表的西方发达国家的企业在发展阶段、业务特点、IT背景上的巨大差异,只有中国软件企业才能对中国的软件用户做出最佳的解决方案。这也就意味着,在中间件领域,中国软件企业将有可能形成一股中国力量,这股力量将催生中国的软件业巨头,中国软件业的版图将重新划分。

SOA的中国式和美国式

刘亚东所言三个变化的由来,其实是基于中美SOA部署特点的不同--“通向SOA有两条路径:美国式和中国式。”

何谓中国式?何谓美国式?

IDC在调查中发现,中国SOA的关键任务与美国市场差异很大。57.5%的接受调查的中国企业,其建设重心在系统新建和系统改造、升级;重心在系统整合的企业只占42.5%。因此,中国企业更多地在进行系统新建或改造优化。即使在金融、电信等行业,大客户已经建设了近90%的生产性系统,但它们仍然缺乏大量的服务性系统;超过70%的服务不存在或需要重新构造。因此,大量的服务需要全新构造才是中国SOA的主要任务。

美国企业的IT建设则更多地集中于对原有系统的改造、升级或整合,新建软件系统的比例相对很小。在这一点上,我们和美国是完全不同的。

正是因为这一差异,对于已有庞大遗产系统的美国来说,以标准的方法全新构造服务,成本高昂,并非上策;而对于中国来说,大量的新建系统更适合直接构建粒度更小、组合更容易、架构更灵活的标准服务。

这是面向构件技术的优势,也是刘亚东的信心来源。如果说IBM、BEA、Oracle等企业的做法是对企业遗留系统的“破”--分割然后组装,那么普元的做法就是“立”--重新构建。前者是自底向上,后者是自顶而下。

IDC中国区总裁郭昕则直接说,SOA软件供应商在中国基本分成了两大阵营:企业级应用整合和SOA服务构造。前者包括IBM、BEA、Oracle等,后者则以普元为代表。

但是,中国式和美国式的划分还是有争议性的。IBM、BEA、Oracle等企业并不认为这是一种对立。Oracle公司OSOA专家Jeff Mischkinsky就认为,现在有两种方法来做开发,分别适用于两种不同的情况。一种方法是从已有的系统里包装一层,分装成服务,然后串联,这是往上做。还有一种方法是自顶向下构建,因为没有很多已存在的系统。在中国可能后一种情况多一点,在美国可能前一种情况多一点。但是中国也会有一些企业有一些已建成的系统,因此不存在什么特别的对立,具体要看市场需求是什么。再说,即使应用是新的,流程或者服务是新的,但是用户用的数据可能还是旧的。就像银行,很早之前就有很多信息存在于旧有数据库中。要做SOA的话,这就不仅仅是自顶向下重新构建能够解决的,而需要自顶向下和自底向上相结合。

也许打一个比喻会更好理解:一个人从山脚向山顶走,另外一个人从山顶向山脚下走,他们两个人在路上应该会相遇。

但进一步的问题也就出现了。在这个交汇点上我们无法回避的是,这个服务到底是多大颗粒度的?服务的构件到底应该赋予多大的尺度才能实现足够的灵活应变?SCA/SDO只是完成了整合的规范,但这个问题却是SCA/SDO没有界定的。

IBM新技术战略规划负责人Mike Edwards博士不得不承认,“现在SOA最关心的就是怎么定义一个服务,这是最要命的问题,因为如果连服务都没有界定出来就很难做。”

平滑迁移是第一难题

SCA/SDO规范出台以后的SOA,接下来要面对的难题决不止如何定义一个服务。

也许要面临的第一个难题是何时实现在不同的系统间平滑迁移。不少当天与会的CIO就提出了需求:虽然很多厂商说他们的产品遵从SOA的规范,但我们的系统在不同软件厂商、开发商之间还不能进行平滑迁移。如果哪天我们在BEA上开发的软件能很平滑地用在Oracle或者是普元的产品上,那是我们非常希望看到的。

刘亚东也承认,今天这些规范离完整的SOA所需要的标准还有不少差距。厂商和厂商在一起做标准,当然是希望互操作性越多越好,但是从厂商来讲完全做到可操作性是很难的。刘亚东并不对在两三年内实现成熟的SOA抱有希望。J2EE做了10年了,还没有完成互操作性。在5年内如果能够达到SOA的互操作性就是大家的福音了。刘亚东如是说。

成本降低是第二难题

SOA要面临的第二个难题就是成本。既然SOA有了规范的调用协议,那么它是否就要兑现它曾经许下的承诺:SOA的优势之一就是它的组件是可以复用的,可以在大量的复用中降低IT成本。

让国内的用户开发大量新的组件,的确是粒度小而且很灵活,但这从另一方面来说也意味着开发成本高。那么在开发的时候,企业的用户们如何去核算今后的复用率有多少?如何正确看待SOA能够有效降低IT开发成本?如何在系统上马前就做出一个评估和判断?会不会为了管理未来的变化而在今天过度投资?

刘亚东对此的看法是,看一个软件的生命周期,开发仅仅是一个开始。大量成本会发生在软件改造这个环节,其实这比买个平台更贵。做过改造系统的都有感受,改造的成本可能比买的时候还要贵一倍,也就是说当年建设的成本,今年还要继续发生。因此,企业看成本,不能只看一个项目的成本有多少,而是看这些大量的服务构件之间能否互联互通、稳定协作,这才是IT系统将来最主要的任务。实际上SOA应用最有优势的,不是在IT这方面能够省多少钱,而是在于业务响应力。在开发时省了钱,结果软件没有用好也许损失更大。如果你的软件没有做到很灵活,跟你的竞争对手竞争时失去了竞争优势,那么整个企业都会倒闭了。因此,IT作为业务支撑者,如何使得公司业务得到保证、竞争力得到提高,这才是最重要的任务。

刘亚东这番话说得没错,但是并没有完全打消用户心里的疑虑。广东移动管理信息部经理陈跃峰就有这样的疑惑:广东移动在很多地方已经采用了SOA的架构,应该说,SOA确实是有用的,也是有价值的。但作为用户来说,怎么衡量、怎么评价,其实这也是我想知道的。对于IT来说,能为公司省多少钱、创造多少利润一直是IT部门很困惑的问题。

Jeff Mischkinsky则一言以蔽之:SCA不是一剂可以治百病的良药,原来比较难的开发问题该有的还会存在。但是SCA解决问题是有重点的,它解决了一部分问题,而不能解决所有的问题。

一年左右推出成品

不管怎样,有问题才意味着有更多的可能性。SCA/SDO规范是一个新事物,虽然很多东西现在还没有被完全验证,但对它的研究和产品化却一定会迅速展开。

据Mike Edwards预测,SCA/SDO的成熟度问题,可能会在近一两年之内有比较大的进展,IBM会提供在商业方面的开发技术或者是实现规范技术的参照。现在IBM已经有一个Beta版,可能在今年之内就会有成熟版。

BEA公司架构与标准副总裁Edward Cobb也有一个时间表:通常标准化要12到18个月,这个过程将会从今年的夏天开始。

而对于OSOA惟一的中国企业--普元来说,普元已经设计了从2006年到2008年的产品路线图,产品内部开发代码依次为:Phoenix(凤凰)-Bibo (碧波)-Olympics(奥林匹克)。2007年发布的Bibo版本将采用最新的SCA/SDO国际构件技术和规范;而在2008年出货的Olympics版本将变身为新一代面向构件的中间件平台,并符合最新SCA/SDO规范和标准。从Phoenix到Bibo,再到Olympics,普元EOS将不断演进,并成为中国领先的全面支持SCA/SDO国际构件标准的企业应用平台产品。

SCA/SDO这个规范是SOA走向成熟的一个标志。注意,它是走向成熟,并不是达到成熟。

哪一天我们才可以说SOA已经真正成熟了呢?其实用户需要一个非常简单、非常直观的衡量标准:在IBM的Websphere平台上编写的业务流程,也能够在BEA的WebLogic平台上运用。在普元的EOS平台上所开发的一个业务构件,调整之后就可以顺利运行在其他厂商的平台上,那么我们认为SOA在技术上就已经走向成熟了。

这是一个设想,但这个设想显然已经不会太远。

链接

我们要可塑性强的软件

我们的管理信息系统很多地方采用了SOA的架构。软件的成本一个是开发成本,另一个是维护成本。我们做软件开发时,维护成本远远高于开发成本。如果一个软件是可塑性很强的,或者是易于维护的,那么就会大大降低人力、物力的投入。此外,在管理和生产的过程中,变化是非常快的。领导有可能今天是这样一个思路,明天觉得不一定符合市场的需求,就会有变化。在这个变化过程中,如果你能提供一套快速的软件开发理念,把原本需要一年时间开发的系统,变成现在几个星期,甚至是一两个月的时间就能开发完毕,那就是对于公司的价值和支撑了。

(广东移动管理信息部经理 陈跃峰)

第一次用构件感觉不错

我们去年5月份第一次尝试用构件的系统来开发,还挺不错的。EOS平台首先适当降低了对开发人员的要求,与J2EE、Java等相比,技术人员更容易掌握EOS平台;第二,系统开发周期比以前缩短了很多;第三,应用构件平台后,开发风格比以前一致、统一了。 (中国银行江苏分行 杜建英)

链接:SOA的中国路线怎么走?

中国的电信、金融等IT建设领先的领域已经有了一些老应用系统,在对待已有系统的处理上,可以采取这样一些方法来考虑:

对于已有系统的改造和升级

如果功能容易切分,可以采用对老系统进行切割和封装的方法。

如果功能不容易切分,可以把整个系统包装成一个服务来提供;或者推倒推倒重来,用新方法构造服务。

对于新建系统

采用粒度更小、组合更容易、架构更灵活的面向构件技术构造。

用ESB(企业服务总线)实现新旧“服务”的注册与管理,以完全实现灵活的SOA架构。

在中国的政府、国防、电力等领域,大量的服务型系统还没开始大规模构造,它们如何走自己的SOA之路?

建议首先遵循SOA国际标准,尽量采用符合SOA标准的方法,来构造粒度更小、组合更容易、架构更灵活的服务。在第二阶段,企业需要考虑实现基于构件和服务的流程管理,以及基于构件和服务的软件治理,对多服务的集成则需要部署ESB来实现。(《SOA中国路线图》节选)

 

相关阅读: