日志文章

2007年07月28日 14:01:19

SOA与企业IT架构规划

2007-7-27 15:20:00   王仰富

  大家下午好!刚刚两位专家谈了SOA的一些思想和方法,我呢,利用一点时间,站在企业这个层面,从企业信息化IT管理这个角度来谈谈SOA。首先我谈一下SOA提出的背景,以及它的真正内涵。再站在企业信息化和IT管理本身的角度看SOA如何去实施,从哪个层面去进行。另外再谈一下SOA与EAI。
  实际上SOA的概念早已提出来了。最早是Gartner在96年提出的。但当时由于技术的条件,还有市场环境还不成熟,企业需求没有那么急迫,有一段时间就沉寂下来了。其实比Gartner更早,就是Zacchman的架构规划的思想和方法,就体现了SOA的思想。在它的思想和方法里就已经提到了一个企业的IT架构规划应该是业务驱动。业务驱动也就是流程驱动,先进行流程的梳理和整合,然后再进行IT架构规划。实际他的方法里已经体现了SOA的思想,但只不过是他没有明确提出来,而是96年的时候由Gartner提出来的。Gartner提出来之后呢,又过了一段时间的沉寂。
 
        CIO时代IT战略与架构规划顾问   王仰富
  等到21世纪,经济全球化和互联网的发展带动了整个电子商务的蓬勃发展,就提出了Web service的概念。这个思想提出来之后,可以说是SOA的真正发端,基于Web service的应用还实际上没有真正应用起来。所以SOA提出的背景主要是这几个方面。第一个是全球化的竞争要求企业的业务要有灵活性。第二方面,业务灵活性就表现为业务流程的频繁变化,这就要求我们IT系统要有高度的适应性,来适应业务的变化。再一方面呢,因为企业已经建了很多信息系统,这些系统在建的时候都是孤立地去进行的,基于部门,或者是基于业务局部去做的,所以集成的问题就很突出,信息孤岛问题越来越严重。所以提出基于SOA的思想来解决这个问题。还有一个方面,就是IT资产的重用性,一个是业务变化后信息系统有可能推倒重来,如果IT架构不是灵活的,不能适应业务变化的,那就可能把信息系统推倒重来,这样就需要重复投资。这样的几个背景使得SOA的概念越炒越热。
  那究竟什么是SOA?它是什么?它不是什么?其实在IT界,包括供应商、还有企业的IT管理者,他们对这个概念实际上还是很模糊的。那么什么是SOA呢?SOA是一个面向服务的IT架构。它实际上是一个种IT体系结构的类型,它是一种分布式的体系结构设计的思想和方法。它的目的是把基于异构平台的服务,通过一个定义好的良好的接口规范,把它通过松耦合的方式集成到一起,在网络环境下使我们的信息系统是一体化的。在企业层面讲,它是一个一体化的系统,因为企业的业务运作,它要求业务流程的一体化,这样就要求IT系统也是一体化的。所以说从我刚才讲的来说,SOA是一种IT体系结构设计的思想和方法。它是一种体系结构的类型,而不是一种具体的产品。
  体现SOA的体系结构应该在两个层面上。一个层面就是站在企业级,整个企业级的IT体系结构。还有另一个层面,在软件工程级的软件架构体系设计,这是微观层面的。这两个层面体现的方式不一样。对于企业级要体现SOA思想,首先我们要把业务流程梳理完,把业务流程分解成相对独立的业务单元,完后通过业务流程的统一定义的标准化接口,把它们串连起来,形成一个优化的业务流程。在这个流程优化的基础之上,我们再看IT的体系结构如何来支撑。这样可以说在企业层面来做企业级的IT架构的设计,更好地体现SOA的思想的话,首先要对业务进行全局的审视,然后进行业务流程的重整和优化。所以说在企业级IT架构设计这个层面,要想体现SOA的思想,首先要进行的有两个关键点,就是BPR或BPI的工作,这样的工作很重要。
  在微观层面,也就是软件体系结构设计这个层面,我们再来看目前的发展状况。在2006年的时候,SOA软件体系结构设计要标准化,基于这种思路,软件工程的方法实际上体现在标准上。软件工程基于SOA的标准,有一个SOA的国际标准化组织,已经在2006年时推出了两大标准,一个是CSA,一个是SDO,都是1.0版。CSA标准就是基于服务的基础架构框架的描述语言的标准。还有一个是SDO,是基于服务的数据接口标准。还有一个标准,WS-policy,它是今年6月份刚刚发布的。最近很多软件开发人员在网上讨论这些标准的使用情况,如是否好用。我在网上也是跟这些人有过一些讨论,所以在软件体系结构这个层面上,SOA还是在发展的过程中,刚刚两位专家也谈到了,它还处于青春期,它还不成熟。而且即使标准定出来,软件开发商或者软件供应商他们能够真正支持这个标准,按照这个标准去做软件设计,这还是一个问题。我估计在软件工程这个层面的体系结构设计要成熟的话,也得在1010年之后了,至少2、3年之后了。
  那么在微观层面,也就是软件系统层面的不成熟,并不代表我们在企业级的架构上体现SOA的思想。我们企业的IT管理人员在做我们企业的IT架构设计时,尽可能地把SOA的思想体现进去。那么SOA思想的架构有几个方面的特点,一个是模块化的设计,就是我们的应用系统是模块化的设计,每个独立的模块是可以独立支撑某个业务功能单元的。还有一个就是不同模块之间是可以互操作的,可以相互调用的。同时各模块之间按一定的标准松耦合在一起的。还有就是应用系统提供的服务单元是在网络环境上走的,所以服务单元的位置应该是透明的。当然,这个服务单元有粗有细。如果在企业级做IT架构规划时,它的颗粒度盯得粗一点,在软件级,因为标准还没成熟,很多的软件供应商的解决方案的粒度也未必是定得很细的,所以在企业级,它是一个粗粒度。还有各个服务之间是可以组合的,你看ERP、CRM与SCM等通过组合可以完成更多的业务功能。这是基于SOA思想的IT架构的几个特点,所以我们甲方在做IT体系结构设计时,要更多地体现这种思想。
  那么最后我再谈一下SOA的解决方案。目前,很多软件供应商和解决方案提供商的SOA解决方案只是体现了SOA思想的一些基于中间件产品的集成整合方案,或者说它的中间件产品体现了SOA的思想。实际上它是基于这种中间件的EAI解决方案。这种方案是一种事后性的方式。为什么说它是事后性的?因为它解决的是我们已经建好的很多系统之后没法集成的问题。它不可能把它的产品体系在这么短的时间内完全打破,完全符合SOA的思想,因为标准还刚刚出来,还没有完全成熟。但是他们可以提供一些这样的中间件产品,多少体现一点SOA的思想,可以在这种中间件产品之上做企业应用集成的解决方案。所以一个企业的IT建设要体现SOA的思想,我个人觉得最好在规划阶段做好IT架构规划,使我们的整个架构符合SOA的特征和特点。这样就可能避免或消除信息孤岛,而不是事后再去做集成。因为再好的中间件有的问题也解决不了,所以我们要事前性地去消除这些问题。下面我这张图是目前一个主流中间件产品的一个架构特点。如果它要更多体现SOA思想的话,它要在业务流程管理和业务规则引擎,业务事件管理上做得更强,而且它是模型驱动的,它有建模工具,流程建模工具,业务建模工具。
  我总结一下我的观点。建议一个企业要想实施SOA的话,它应该从企业级的IT架构设计上着手。好,我就讲到这里。谢谢大家!

Tags: SOA   IT架构   EA  

类别: 企业IT架构规划 |  评论(0) |  浏览(6658) |  收藏
发表评论
看不清楚,换一张