【IT168 信息化】
从语义上讲,SOA是面向服务架构,它与面向过程、面向对象、面向组件一样,是一种软件组建及开发的方式。与以往的软件开发、架构模式一样,SOA只是一种体系、一种思想,而不是一种具体的软件产品或技术。就整体而言,大部分的软件开发者和使用者对SOA的概念认识还比较模糊。同时对SOA有一定了解的人群里,也存在两种不容忽视的极端:一种是过于激进,持这一极端思想的人认为,传统软件架构一无是处,主张用SOA改写所有程序;另一种是过于虚无,持这一极端思想的人认为,SOA毫无用处,SOA并未与以往的软件架构有什么不同。
事实上,SOA不像激进者所认为的,一夜之间就可以全部取代传统软件架构。在许多软件领域,SOA并无用处,最为典型的就是一些小型的单独应用的工具类软件,是不是SOA对软件价值没有多大的改变。另外SOA的虚无主义者也将会看到有悖于他们想象的事实:一大批基于SOA的软件因为具有协同、高效、易于布署和维护等优点,将会迅速取代传统架构的软件,Gartner预计明年全球销售出的所有商业应用软件产品,SOA的将超过 80%。SOA也给许多新兴的软件厂商带来空前的市场机会,特别是协同软件与SOA在理念上相关性较大,使SOA更易于凸显协同软件的价值。例如复旦协达新一代的协同软件由于采用了SOA,迅速得到用户认可,并被IDC、CCID、CCW等权威IT机构评价为产品竞争力位居同行前列。在国外,BEA也通过SOA迅速崛起,谋求了自己在新兴IT应用市场中相对领先的地位。未来将会有更多像复旦协达、BEA一样的公司,因SOA而给其产品和公司带来更多竞争能力。
从SOA软件的开发和应用模式来看,SOA带给软件本身的变化极其有限,有一些较为早期的软件虽然没有明确提出SOA,但已经体现出SOA所具有的特征。从这一事实我们可以发现,SOA这一概念虽然比较新,但SOA所体现的思想内核早就萌芽。无论是早期带有SOA部分特征的传统软件,还是完全基于SOA研发的新一代软件,都在试图解决的问题主要是:快速构建与应用集成。
传统软件架构思想和开发模式下,软件功能的构建非常复杂。在面向组件时代,虽然软件程序的复用性得到了加强,但实现一项新的应用服务并不简单,仍然需要由专业的软件开发人员,将这些组件形式的软件程序组装在一起。SOA可以使软件的应用服务得以快速构建,甚至不需要专业的软件开发人员,以中国首套SOA协同软件复旦协达为例:软件的功能已经抽象为粗粒度和自动藕合的表单和流程等,并在软件基础平台中予以封装,应用人员只需要简单了解建立表单和流程的操作方法,通过人机对话的方式用业务语言描述软件功能,一项新的软件应用服务就可以启用。
SOA期望解决的另一个主要问题是:信息孤岛。在企业用户中,信息孤岛现象几乎伴随着信息化建设的全过程,这也是协同软件试图解决的主要问题之一。孤岛的出现与消除,成为贯穿信息化建设始终的一个搏弈,旧有信息孤岛的消除随之而来的往往是更大的新孤岛。在不断搏弈中人们逐渐发现,用传统软件思路无法彻底解决信息孤岛现象。SOA可以抽象管理事务,用粗粒度的软件功能(而不是组件)去组建各类应用服务,应用服务的拓展都基于相同的软件功能,而相同的软件功能组建的不同服务可以完全藕合。除此之外,SOA还期望解决原有异构软件系统相对离散的问题。解决这一问题,BEA采用的底层平台整合的方式,而复旦协达采用的是信息整合、数据整合的方式。
传统软件的分解、组合、复用非常困难,这已经成为一个不争的事实,传统软件架构下的OA、MIS、ERP等软件,给用户解决管理问题的同时,遗留下大量用户不得不想办法解决的其他问题。只要存在需要快速构建软件应用的情况,以及消除信息孤岛的必要性,SOA就有价值。因此SOA在中国是不是太早的讨论其实没有必要,重要的是该讨论如何采用SOA来进行信息化建设。中国用户应该吸取欧美企业的教训,无须再重复他们曾经的失败教训。
当然,传统软件不可能一夜之间消失,同时这些软件也会部分兼容SOA。但正如Gartner所预见的那样,SOA必定会逐步取代原有软件架构,特别是在大型的企业级应用上,这是一个不可逆转的趋势。SOA因其开放、集成的特性,将推动软件的开发和应用进入一个全新时代,也使协同软件因SOA的开放、集成,而更加协同。