中外运张思宇:SOA开创软件系统新结构

公司:中国外运股份有限公司
行业:物流运输业
访谈对象:信息管理部副总经理张思宇

《信息周刊》网络版     翁美飞
发表时间:2006-10-31

信息周刊:中外运两年前开始实施的SOA是一个什么样的项目?

张思宇:这是我们的一个核心业务系统,叫“海运船货代系统”的项目。事实上,我们开始采用SOA架构和编程是在2005年春节后,在2005年之前的将近一年时间,主要是做前期的咨询工作,这个阶段主要是梳理业务、分析需求,确定项目范围,由哪些模块组成等等?

信息周刊:这个阶段,是不是请了外部的咨询公司?

张思宇:是的,我们是和惠普合作的。

信息周刊:为什么决定实施SOA呢?

张思宇:海运船货代是我们很重要的业务,我们有将近200家子公司,上万名业务人员需要使用它,每年的营业额上百亿。这个系统也很庞大,包括了很多功能模块。我们觉得SOA的架构有助于我们更好地构建这样复杂的系统。

首先,利用SOA的架构,不同系统、不同模块之间的关系被统一为“请求和服务”。系统太复杂,通过SOA的思路。我们可以关注在每个功能点,以及所提供的服务,避免了系统由于复杂而出现的混乱。第二,这个系统的工程浩大,由不同的人开发不同的模块,如果没有一个统一的软件工程标准,他们之间的沟通将非常麻烦。应用SOA的架构,你只要用XML编写一段请求,我在我负责的模块中提供一个响应机制,注册一个服务就可以了。这样我们的开发工作比较容易组织。第三,我们各地的业务模式不完全相同,往往80%到90%的是相同的,还有10%-20%是不同的,甚至不兼容。应用SOA,我们就可以在已经开发的功能模块上作一些修改,可以减少很多重复的工作。

信息周刊:那之前是否需要一个流程梳理的工作,使得尽可能多的功能模块可以重用?

张思宇:业务需求不一样有三种情况,一种是流程不一样,比如做一件事情,上海需要经过三个环节,山东需要经过一个环节,我们会把其中相同的情况相同处理。另外一个情况是同一个环节,它所需要的参数不一样,那我们会在一个模块的基础上做些修改,生成两个服务。第三种情况是各地的同种业务的工作范围和服务内容不完全相同,也需要补充一些服务来兼顾。

我明白SOA厂商所说的先把业务需求和流程梳理出来,事先经过周密的考虑,然后做成一个个服务模块,可以像砖头一样搭建。这种情况能实现的话,当然是最好的。但是事实上企业做不到。要事先把系统功能完全抽象成SOA中的服务模块是不可能的。我们的做法是,最早做出来的程序,各个功能之间的耦合比较紧密,然后将程序程序切割成小块,每一块再做一些相应的修改,形成耦合比较松的关系。
 
信息周刊:您觉得企业按照这样的方法,可以自己实施SOA?

张思宇:是的。SOA本身并没有任何新的东西,采用的技术几乎都是现成的,只不过是技术经过多年的演进和积累后,忽然有一天完成了质变,某个人提出为什么不按照这样一种思路来编写软件呢?然后就自然而然地走到了SOA。我同意SOA是一个里程碑的说法,但我认为这只是一个从量变到质变的过程,中间并没有什么全新的技术。

信息周刊:我感觉您对SOA的理解和厂商宣传的SOA并不一样。