电子政务需要SOA
来源:中国电子政务网 更新时间:2008-03-11

钱军

SOA是面向服务的软件架构,既然是面向服务的,SOA就应该首先是一种业务设计方式,指导着业务服务的构思、创建、使用、变化和终结。本文是要回答:在电子政务领域,电子政务需要SOA吗?是过去需要、现在需要,还是将来需要?以及电子政务的SOA如何开始等问题,以阐述“从SOA开始,从面向构件的SOA开始,是电子政务保持可持续发展的最佳实践”这一论断。

电子政务需要SOA吗?

我国的电子政务建设格局像一个纵横交错的大棋盘,在刚刚过去的“九五”和“十五”期间,我国各级政府部门纷纷规划和建设起各自的电子政务系统工程,在很多方面都取得了显著的阶段性成果。纵向电子政务建设以“金税”、“金关”等工程的成功实施为代表,目的就是利用信息化的手段,达成自上而下的业务标准和业务资源的统一,实现数据自底向上的快速准确汇集和业务自上而下的高度协同。从某种程度上讲,能够自上而下的推进涵盖“部、省、市、县、乡”等五个层次的纵向综合业务系统,本身就是SOA的一种体现,只不过此时SOA的设计仅仅是面向内部的、面向具体业务功能的,因此也是局部的SOA。

局部SOA的后果就是,局部的统一不能带来全局的统一,如果跳出局部看整体,在更宽广的范围内来看,比如站在国家电子政务全局来看,或站在公众的角度去看,满眼尽是一个个划地而治的信息孤岛,需要为整体去做集成。而这恰恰成为了横向电子政务所需面临和解决的信息共享和资源整合的挑战。

横向电子政务正在逐步实现由“政绩导向”向“服务导向”的转变。以服务为中心,使老百姓能得到更广泛、更便捷的政府信息和服务,使政府真正转变为服务型政府,党和政府为此都做出了重要决定。党的十六届四中全会做出了加强执政能力建设的重要决定,提出转变政府职能,创新政府管理模式,是提高政府执政水平的重要措施。温家宝总理在主持召开国家信息化领导小组第三次会议上提出要从全面和战略的高度加快推进信息化建设,抓紧推进电子政务,提高政府的经济调节、市场监管、社会管理和公共服务能力,促进政务公开。
因此,以公众服务为中心,服务公众就成为电子政务建设的出发点和落脚点。

是过去需要、现在需要,还是将来需要?

现在,电子政务需要SOA已毋庸置疑,但随之而来的问题就是,电子政务是什么时候需要SOA?是过去、现在还是将来?

其实,人们在考虑这个问题的时候,往往会想到我过去已经建了哪些系统,现在还需要建设哪些系统,哪些系统需要整合,至于将来,有个规划就可以了。实际上这是走入了一个误区,即将建设与整合孤立看待。这一误区的主要表征就是以孤立的、静态的、割裂的,而不是发展的眼光看待电子政务的应用建设和应用整合,将业务需求和业务发展割裂开来,以致建设出来的电子政务系统需要整合,整合的电子政务应用仍是按静态需求建设起来,如果需要则再次整合。

而走出此误区的方法就是将建设和整合有机统一起来。要树立没有从头建起的系统的观念,要从设计上就能够充分意识到系统总是在整合一切可以利用的资源(内部的、外部的)的基础上发展起来的,是为了满足新的业务变化需求。新系统就是旧系统的利用整合,同时它又是将来能够被新业务整合的资源。这正是SOA倡导的设计理念。因此可以这么说,电子政务是时时刻刻都需要SOA的,过去需要,现在需要,将来也需要。尤其以服务为中心和导向的电子政务建设需要SOA,在它的指导下,我们才能够避免走进误区。

实际上,面向服务的架构已经存在很多年了!因为面向服务是一种设计理念和基于一系列设计原则的,而这些都是与技术无关的。在过去,可用于实现SOA的技术是多种多样的,它们包括CORBA、J2EE、COM/DCOM、MQ、ebXML、EAI、ESB等。在这些技术中,有的适于构建SOA,有的则不然。比如,EAI与SOA同样解决企业集成的问题,但SOA解决的问题远比EAI解决的IT问题多得多,产生的影响要深远得多。EAI解决集成的问题往往是在事后,碰到了集成问题,才去想办法通过 EAI来解决,这正是走进了我们前面所说的误区。与之相反,SOA架构解决集成的问题是事先的,也就是说,在一开始搭建SOA这一IT架构的时候,就已经考虑了集成的问题。这是SOA区别于EAI的一个重大不同,也是SOA能够帮助我们走出“割裂建设和整合”误区的佐证。

电子政务的SOA如何开始?

前面我们已经论证了电子政务要可持续发展,就需要SOA。现在的问题是,在电子政务的建设过程中,如何才能发挥SOA的最大功效?SOA该如何做起?面对我们所涉及到的众多重要概念,如面向服务、顶层设计、业务模型、流程重组、服务构件等,我们该如何入手呢?

首先,要把SOA看成方法论,要根据电子政务的业务需要,通盘考虑所需要的业务模型和数据模型。每一条业务线和数据线都要从服务的特征、管理的特征和适应变化的特征去审视,并且每次审视都要围绕上下左右中等多重视角,还要加上一个时间维度。可能需要建立新的面向服务评价模型,要打破单个业务使用独立IT系统的模式,特别是那些可以重复使用的服务,必须要求服从一个统一的SOA架构,开发出有层次的、可重用的体系。

其次,要把SOA看成架构平台,或者说要根据业务模型建立支撑重用软件的运行和管理平台。在可重用的层次模型支持下,平台要做到技术无关性,就要以统一的标准去运行和管理重用软件。

再次,要把SOA看作是软件工厂里的产品装配线。它是一笔对将来业务运营的投入,所以在这笔投入发挥效益之前,需要做相关的计划、设计和开发工作。正如生产线上制造的第一辆车的花费要比第一千辆高出很多一样,用SOA部署的第一个服务所需的花费要比部署第一百个多出很多。SOA的主要优势是逐渐体现出来的,不能一蹴而就。

最后,必须投入足够的精力和人员进行技术和业务流程的培训,才能确保所开发的服务是可重用的。任何服务的开发,不能只顾及眼前利益,也要考虑长期利益(或许是更重要的)。换句话说,各个服务的单独存在并无太大价值,除非这些服务能与其他服务一起被使用,并能根据业务的变化,快速组合成各种新的应用。
 
所以说,SOA可从面向构件开始。

SOA从面向构件开始

从面向构件开始,电子政务的SOA就建立在了可被管理的业务单元基础之上,而不是建立在不可被管理的代码之上,构件成为业务的技术无关性基本单元;

从面向构件开始,电子政务的SOA可以从一个局部做起,以渐进的方式向SOA架构演进,因为构件的标准统一使得这个局部不会给全局带来新的集成问题,这样可以最大程度地规避项目风险,降低初期投入;

从面向构件开始,电子政务建设将最终达成我们梦寐以求的标准统一,架构统一,建设统一,管理统一;

从面向构件开始,电子政务将实现一个同构的世界。

因此说,从SOA开始,SOA从面向构件开始,是可持续发展电子政务的最佳实践。