程序员:SOA从应用开始


 2009-06-09 00:00:00       748

SOA从应用开始
程序员 2009年6月刊 作者:黄柳青
 
有人说IT是概念炒作的一个行业,没几年就出来一个新的概念。SOA这个主题经过几年的热议,它是不是真的能够成为信息化建设的主流?SOA有没有比较成熟的切实可行的技术和方法可以推广?SOA有哪些更好的措施更符合我们中国的特色?在多年的实践之后,我们很高兴和大家分享。
 
SOA悄然走向主流
 
SOA会不会成为主流?有两个答案,一个比较简短,一个比较理性。简短的讲,目前国际最大的中间件平台厂商只剩下Oracle和IBM。他们的产品线已经全面的升级到以SOA为特征的第三代中间件产品,如Oracle Fusion和IBM WPS,所以大家很自然的越来越多的使用SOA。
 
从理性的角度来讲,SOA确实给现在的信息化建设带来了巨大的价值。这个价值的核心就是变化。去年美国总统选举的时候,变化这个词成就了美国第一个黑人的总统。变化也会让SOA真真切切的发挥价值,成为信息化建设的主流。看起来软件我们已经做了那么多年,税务也好、银行、电信、电子政务,我们的信息系统经过五年、十年不断的建设,为什么到现在还没有结束的迹象呢?因为软件并不是代码,软件是一个企业和组织业务的体现,而业务又是企业文化的反映。当我们的企业文化和业务不断的发展变化的时候,我们的软件就必须跟随着发生变化。同时每个企业,每个组织都有自己企业的文化,这也是为什么规模经营的企业都不要用套装软件,需要去定制、去开发。
 
软件上线以后有人使用就需要变化,正是因为业务跟文化都是在发展变化的过程中,只有像SOA这样一个以适应企业变化为核心而发展出来的技术,才能够适应信息系统建设的长期性的要求。在这样的环境中,SOA作为第三代中间件正在以势不可挡的方式走到信息化建设的前沿。
 
SOA到底是什么?技术成熟度怎么样?有哪些比较成熟的使用方法?在传统的软件开发中,系统和模块间互相的接口依赖性比较多,接口的耦合度比较高。当我们的企业软件从一个部门级单向的功能发展到全企业应用的时候,互相之间的依赖性越来越强,往往牵一发而动全身。所以我们就需要一种体系能够把所有的软件的接口,通过一致的、开放的、互相之间松耦合、容易替换的标准方式来描述,这种方式就是与软件实现技术、平台、地点无关的软件服务体系,这就是SOA。
 
在一个面向服务的体系中,一个应用模块可以轻易的被替换,也可以快速的被重新组合成新的模块。在这么个非常简单的理念之上,业界已经发展出一整套的配套的核心技术,真是这些配套的核心技术才让SOA真正落地,让打造出能够灵活应变的SOA服务成为可能。在SOA相关的技术里面有几项比较重要的技术,第一项是SCA标准,即服务构件标准。服务构件标准有两个层面,首先是怎么样通过更小颗粒的服务构件快速组装出软件服务,因为我们现在的系统开发中不可能大量的重新开发新的服务,而是希望这些服务能够快速的形成。
 
同时通过服务构件的方法,能够组装成更大颗粒的服务,是一个服务构件组装的标准。SCA的标准已经提交,现在开始有产品化的实现,包括普元EOS,Oracle Fusion, IBM WPS 等。
 
第二项关键技术是业务流程引擎,使得服务构件之间可以通过流程进行组装。业务流程的转变在企业里面经常发生的。以前业务流程的转变都是需要技术人员通过可视化的编程环境,通过技术人员进行配给和调整。现在我们通过业务的人员,就可以对这个业务的流程快速的进行转变。
 
中国主流要有中国特色
 
国际厂商在SOA的推广过程中,往往从公司的统一信息化规划出发。但是当大型企业企图在整个企业级进行SOA规划的时候,我们会发现即使在中国的几大银行,最大的电信公司,要一步到位在企业级实现SOA是非常困难的。这些企业现在已经有很多系统正在运行,与国外的同类系统相比较,这些应用系统之间的接口并不是非常清晰,而应用系统之间的边界也不是很明确。在这种情况下,如果我们要对整个企业的信息系统进行重新规划,这个规划的周期会非常长。即使我们有能力做好规划,也要求我们在一开始就从新建设好很多基础的服务,这个对很多企业来讲也是很大的一个挑战。
 
同时还有很多非技术性的管理方面的挑战。比如以前企业都是按照项目和应用来组织预算、招投标、和项目管理的。总的来讲,如果我们直接用完整的SOA理念对于企业进行实施的话,我们起步代价大、风险高、周期长。而服务规划不一定能够一步到位,不一定这个服务一下子设计的很准确,因为我们人事管理发生改变,我们的人事管理发生重组。这就大大增加了第一步就实现企业级SOA的难度。从应用开始,小规模实现SOA,不断积累不断扩展,是更加符合中国企业实际情况的一种方案。
 
什么叫SOA从应用开始呢?我们对SOA实施选择从应用或者一组相关的应用出发。比如从信用卡管理,从风险控制,而不是从整个商业银行开始建设SOA。在这样的主题或者一个业务领域里面,比较符合现在公司的信息化建设规划,基础的投入相对来说比较小,不需要大量的投入,把基础的应用开发出来、服务开发出来。同时,也不需要开始进行整个企业级的改造。有一个比较好的切入点,用我们现在的信息化规划的能力,用我们现在的项目规划组织以及项目招投标的过程,用我们现在人员在局部地区先实现SOA。在我们的实践过程当中,这样的项目群、应用群的推进是比较可行的。第一就是这些有清晰定义的项目比较容易成功,第二在这些项目成功之后,总结经验,可以帮助我们在更大的规模推广SOA。
 
在中国SOA的实践有两个成功的关键。第一就是选用一个已经有大量的积累的平台。市场上很多厂商提供的SOA的中间件,它基本上是一个SOA的技术实现。但是在技术上面要把我们需要的基础服务开发出来,要花很多时间,SOA的起步就会比较漫长一点。如果我们选用的平台上面有一组相关的基础服务,特别是有好多基础的构件可以快速组装出基础服务的话,也会大大提高我们这个项目实施的成功概率,降低我们的成本,加快我们的速度。
 
第二个要点就是我们在SOA实施的过程当中,为了它的成功,首先我们不是为了技术做SOA,而是把技术和业务有一个很好的结合。在我们应用群里面用SOA基础的构件当中,搭出来的应用可以向业务部门展现SOA带来的直接好处。比如说让业务部门可以快速的调整流程,让业务部门直接体现到SOA的价值。
 
 
关于作者:
黄柳青博士是普元公司创始人,董事兼首席技术官(CTO),SOA领域专家与先行者,国际OASIS组织专家成员。在此之前,担任亚信科技(中国)首席技术官(CTO),全面负责产品调研、软件基础架构、开发、质保和工程实施。为亚信成为“中国Internet建筑师”和首家在美国上市的中国高科技公司做出了卓越贡献。黄柳青先生不仅专注于SOA与面向构件技术领域,同时在数据库系统设计、计算机网络和通信技术、视频、图象处理和人工智能等领域拥有多项突出贡献并在国际各级专业论坛和刊物上发表。 著有《软件的涅槃》、《构件中国》等书。
黄柳青先生获美国马里兰大学计算机科学博士学位。现受聘为同济大学、武汉理工大学客座教授。

相关阅读: