【IT168 技术文档】
在本文中,作者使用中间会合(meet-in-the-middle)开发模式,对既有资产进行抽取、分析、编排和映射,生成满足业务目标的可部署代码和接口定义文件,从而实现了对于既有资产的转换和重组。
既有资产(系统)
既有资产(系统),是指部署在企业基础架构中的现有IT资产。通常,它与企业正在运行的业务过程结合,对推动企业完成既定的业务目标、实现相关的业务价值,有着重要的意义。怎样盘活既有资产,重用已有的代码,将它们向新的IT技术平台迁移和转换,提升既有资产的价值,是越来越多的IT架构师和技术人员非常重视的问题。对于当前的系统和应用,“代替”和“转换”都是实现盘活既有资产切实可行的方法,但前提条件是,所提供的既有资产(系统)对于用户需求来说是高质量、合理的。
图1说明了“代替”和“转换”对于利用和提升既有资产的影响。在整个应用程序生命周期中,使用“代替”或者“重构”的方式进行应用程序的开发,会大大提高软件的成本,原有资产的核心价值没有得到充分的发掘和体现;如果使用“转换”的开发方式,重用已有的资产,并利用新的技术进行开发和集成,会逐步使企业更灵活和快速的响应业务变化,更好的服务于客户,从而提升既有资产的价值。

图1 “代替”和“转换”对既有资产影响的比较
基于SOA的既有资产开发
SOA理念及其技术的出现,为转换企业的既有资产提供了方法实践。我们可以依托IBM所提供的软件产品,利用SOA的方法论,开发和转换既有资产,并将其迁移到新的环境和平台中。例如:IBM提供的WDz(WebSphere Developer for System z)软件,可以对一些既有资产进行组合、编排和转换,使其能够满足业务目标,生成可以运行部署的代码以及接口定义文件。同时,我们也可以使用WSAA(WebSphere Studio Asset Analyzer)对企业既有资产进行“统计”、“分析”和“管理”,为进行既有资产的开发提供符合目标要求的输入。
我们使用基于SOA的开发模式,要符合开发的实际情况和企业资产的现有形态。下面提供了三种模式:
- 自底向上(bottom-up)的开发方法:当用户期望从已有的应用创建一个新的服务时,应当采取这种开发方法。这时候我们需要生成对Web Service的描述以及指定已有数据结构和运行时的XML消息映射。例如对于一个已有的COBOL应用,首先选取接口的数据结构,然后生成部署所需要的供应商转换工件(artifacts)。
- 中间会合(meet-in-the-middle)的开发方法:当用户已经拥有定义好的WSDL文件和已实现的应用或者组件的时候,这时我们需要开发附加的代码来实现上述二者之间的映射。例如定义在不同语言如:WSDL、XML、XSD或DTD之间的数据结构映射。
- 自顶向下(top-down):采用这种方式,用户可以创建一个新的服务满足已有的WSDL定义。通常情况这种服务定义会是工业标准的一部分,可以由不同的服务提供商来实现。这种开发方法需要实现WSDL所定义的数据结构和提供对运行时的XML消息处理支持。

图2 基于SOA技术的既有资产的开发