2005年,SOA炙手可热,众厂家都向这里聚集。但对于绝大部分的中国企业而言,SOA仍是一种“虚幻的真实”。在质疑的目光中,中远集运却坚定地向SOA启航。
作为第一批“吃螃蟹的人”,中远集装箱运输有限公司(简称中远集运)认同并采纳SOA的做法与中国企业的普遍观望形成了强烈反差。中远集运目前拥有120余艘全集装箱船,其船舶在全球超过30个国家和地区、超过100个港口停靠,销售网络和代理超过400家。这个以集装箱运输为主要业务、运力处在世界前十名的航运巨头,凭借着基于SOA的全新EDI(电子数据交换)系统于国内节点部署的完成,真正步入到SOA的阳光之下。
从EDI突破
2000年,中远集运计算机中心的几十号人马埋头苦干,以核心业务系统IRIS-2为切入点,启动了中远集运IT建设的新征程。今天,这个团队已经增至170余人,业务系统不断扩充,相继建设了SAP、MIS、电子商务的系统或平台,业务应用部署在200多台服务器上,内部网络节点达150余个。
队伍的壮大、设备的精良,似乎都不能缓解中心领导层肩上的压力,来自决策层的压力和客户不断增加的需求,以及面对IT部门定位与工作的挑战,计算机中心研发的负责人马涛开始思考是否能转换视角,从IT架构的设计上做文章呢?
顺着这个思路,中远集运和SOA对面而视。基于现有的系统研发架构,中远集运迅速将第一突破点锁定在承载核心业务的EDI系统上,2004年10月项目正式启动。谈到从EDI入手的原因,马涛表示,EDI承载着中远集运的核心业务,是维系企业贸易活动的命脉,同时它也是最轻易被业务变化所牵制的部分。尤其是在9.11事件后,美国出台“提前24小时报关”的新规定,让原有业务流程遭受重大影响,虽然这一问题在开发团队闭关1个月后得以解决,但是中远集运计算机中心却从此刻清楚地意识到:EDI的主体框架必须做出改变!
“我们需要对EDI进行改良,让它富有包容性,而不是像以前那样总是拒绝用户的需求”,马涛说。他坦言,原来的EDI系统目前还基本够用,但是架构复杂、多语言编写、无统一标准的应用弊端逐渐显露,针对不同国家和进出口业务的EDI子应用已达21个大类,他们的版本不同,由独立服务器承载,形成了多个孤立的小系统群,每次系统升级都必须逐个调试,运维成本过高。同时,应用监控、诊断的能力薄弱,系统对需求变化的响应能力不足,非凡是对现有业务逻辑缺乏统一、清楚地划分,导致报关流程难以重复利用。中远集运希望,通过对业务服务的拼装快速组建新的业务流程,以满足航运业务不断涌现的新需求。
从分解到合并
为了打造一个健全、可靠、安全、可扩展的公共EDI平台,中远集运选择了SOA。他们希望,通过公共业务流程的设置、公共功能模块的拼合,获得灵活的、丰富的EDI应用。
具体到解决方案层面,马涛认为,新的架构要能通过松耦合包容原有EDI应用,灵活地把细粒度的功能模块组合成为粗粒度的业务服务,并且灵敏地应对业务变化。而要达到这些要求,完整的业务视角是必须的。为此,他们放弃了某厂商提供的现成产品,并最终被IBM针对企业业务的SOA表述所吸引,选择与IBM SOA设计中心和IBM软件集团合作的方式,构建真正适合自身业务的SOA架构。
这样的高起点项目却没有借助IBM的BCS(业务咨询服务事业部)的力量,是马涛颇为自得的地方,也赢得了IBM的由衷赞叹。马涛将这归功于中远资讯的BPS(企业资讯发展部)对于中远集运现有业务逻辑的完整、翔实的阐述能力。BPS所构成的合作“对话层”,通过对业务流程的分析、梳理、分解,将其归纳为40~50种模块化服务,为新的EDI框架的构建确立了规范。
通过SOA,中远集运在EDI平台上不仅进行了应用层的整合(原来使用VB、C、Java等不同语言编写的几十个应用整合为一个统一的应用),并实现了软硬件平台的合并(原来的多硬件平台整合为2个,原来的多操作系统整合为两种),目前应用的编程语言统一以Java为主,辅以ESQL。EDI平台“瘦身”后,形成了一个符合J2EE标准的企业计算平台,更为重要的是,新的平台为业务流程和处理框架的重用提供了诸多可能。
流程重用的浪潮
“我们通过3个迭代实现了高度并行的开发,以及应用持续集成的问题。”中远集运全球EDI平台项目经理陈怀海说。他介绍,3个迭代分别代表用户对一次开发产品测试、解决用户提出问题、成品验证及压力测试这三个开发阶段,而迭代式开发环境的构建则使用了WBI (WebSphere Business Integration)Server Foundation、WBI Message broker和WBI Monitor等产品。实践证实,这种用户全程参与的开发方式非常适合中远集运EDI项目需求多样性的情况。
陈怀海表示,迭代式开发让我们可以容纳需求的变更而不是拒绝变更,让我们可以持续集成最近发现的问题,这种开发效率的提升让用户颇为满足。而更让计算机中心兴奋的是,新框架的建成激发了业务流程重用的巨大潜能。他举例说,假如我们已经开发好了厦门港的装卸指示流程,而其他港口也需要进行装卸指示业务,那么我们只要在配置治理界面中增加一个港口定义,填写具体信息,再把已有的流程配置到新增港口中就行了。而假如要开发新流程,也只要修改现有流程或开发新流程,并添加到配置中。在新流程开发时,数据抽取、报文生成、报文发送等环节都可以实现开发组件的重用。
架构变更后,中远集运还拥有了可重用的报文处理框架,报文处理可以以类插件的形式实现,定义报文时只需对报文格式和核心的数据处理逻辑进行配置。
从目前项目的进展来看,新的公共EDI平台已经达到了简化基础设施、降低系统日常运行和治理成本的目的。
“资产复用绝不是我们对SOA尝试的终点,今后我们的技术触角将延伸到更多领域,目前我们已经针对EDI项目开发了轻型ESB(企业服务总线),为了增加业务平台的聚合度,企业级综合ESB已经进入我们的视野,”马涛的语气诚恳而果断。
基于SOA的EDI项目实施时间表
■2004年10月
项目启动
■2004年12月
进入架构设计阶段
■2005年2~6月
完成三个迭代,并在厦门口岸并行使用
■2005年7月1日
EDI国内部分部署完毕,所有内容上线运行。
■2006年7月
EDI国际业务网点部署完成,届时中远集运EDI生产平台将全部迁至基于SOA的全新EDI平台之上