级别: 中级 张 森, IBM 中国 SOA 设计中心,高级软件工程师, IBM 任 志宏 (renzhih@cn.ibm.com), IBM 中国 SOA 设计中心,高级软件工程师, IBM 陈 雷 (cdlchenl@cn.ibm.com), IBM 中国 SOA 设计中心,资深软件工程师, IBM 刘 伟 (liuwcdl@cn.ibm.com), IBM 中国 SOA 设计中心,软件工程师, IBM 张 辉 (cdlhuiz@cn.ibm.com), IBM 中国 SOA 设计中心,软件工程师, IBM
2007 年 4 月 30 日 既有资产资产转型是企业面临的一个重要问题。本文结合 SOA, 描述了三种既有资产转型的方式;并以此为基础,提供了一种端到端的解决方案供探讨。同时还介绍了与实现这种方案相关的两个产品: WSAA 和 ATW。
前言
既有资产 (Legacy) ,是指部署在企业基础架构中的现有 IT 资产。通常,它与企业正在运行的业务过程结合,对推动企业完成既定的业务目标、实现相关的业务价值,有着重要的意义。以 COBOL 为例,它是传统企业实现业务应用的最重要方式。目前全球约存在至少2000亿行 COBOL 代码,并且以每年50亿行的速度递增。
在看到这些既有资产重要性的同时,也不能忽视另外一个重要事实:随着技术发展,企业越来越需要自己的应用能实现更好的灵活性、更大的扩展性、和更方便的维护性。传统应用在这方面的局限性,与新的技术和新的应用相比,越来越突出。例如,用户需要用一种更友好的、GUI 的方式去访问业务应用,而不是传统的绿屏 (Green Screen) 输入;或者,想集成另外一个平台上、通过其它语言实现的业务应用;这些要求,直接在既有资产上实现,都很困难。
SOA 帮助既有资产转型
面对这样的挑战,是不是简单通过利用新技术来重写这些应用程序,就能解决掉一切问题呢?答案是否定的。一方面,既有资产大多是部署在大型机上,企业为它们的布署和维护已经花费了大量的投资,不可能完全抛弃掉它们来花费更多的资金重新开发;另一方面,这些既有资产的应用,都是很多年工作的积累,包含了至关重要的业务数据和业务规则。这些业务规则时至今日都依然是有效的,熟悉和了解的人员并不是很多。如果想在新的应用中得到完全的体现,必将花费更多的人力和更久的时间。再加上实现过程中其它一些未知的风险,重写既有资产,比起维持它们,就会显得更没有意义。
如何最大限度克服既有资产的局限性,又能充分发挥它们现有的作用,是摆在众多企业架构师、IT 技术人员面前的难题。 SOA 的出现,给解决这个挑战提供了一个良好的机会。 SOA 是一个松耦合的服务架构,它的核心是定义一系列执行特定业务任务的服务,通过制定良好的服务交互方式,来完成相关的业务目标。对用户来说,服务如何实现并不重要,只需要保证服务的安全性、可靠性和快速性。
SOA 的这种理念,对于拥有既有资产、需要充分利用它们的优势又必须结合新的应用、集成和数据源的企业来说,提供了一种平稳高效的过渡方式。它可以帮助企业从既有资产出发,根据企业新的业务需要,最大限度地重用现有的业务流程、规则和数据,将它们识别成不同的服务,并且结合新的技术和应用,通过定义良好的规范实现,来保证这些服务的调用质量。从而,通过尽量少的成本和风险,帮助企业做到顺利转型。
既有资产三种转型方式
既有资产在 SOA 下的转型,通常有以下三种方式:
这种转型是既有资产转型的最简单方式。它从用户的体验出发,通过增强用户接口和工作流的方式,帮助企业获得快速的投资回报。
图1 转变用户体验
如图所示,传统的既有资产用户输入,如 CICS 应用的交互,都是通过绿屏 (Green Screen) 命令行方式。操作人员必须特别熟悉每一个指令,否则就不利于查找和修改。如果企业需要新的技术人员来执行这些应用,也要经历较长时间的培训才能掌握
因而,这种转型方式,首先是从提高用户接口的适用性和灵活性入手,通过 Portal 或者其它新的用户友好的 GUI 方式,将传统的绿屏交互封装起来,通过方便用户对每一步操作的理解和改造工作流程的方式,提高应用执行的效率。
比转变用户体验更复杂一些的是转变应用程序的连接性。这种转型,主要是从促进企业的业务过程出发,通过 Web Service(网络服务)和 Java 连接器的方式,提高既有资产应用程序与外部的连接性,进而帮助促进客户、合作伙伴与供应商之间的关系发展。
图1 转变应用程序连接性
图示给出了一个既有资产转变应用连接性的例子。在这个例子中起关键作用的是 IBM WebSphere 和 CICS Transaction Gateway。 用户通过局域网或者外部网,可以访问 WebSphere for Z/OS 或者分布式环境下 Webshpere 的应用,进而再通过与 CICS Transaction Gateway 的连接,访问大机上的既有资产 CICS 应用
既有资产转型中最复杂的方式是对应用程序整体架构进行转型。这种转型需要从既有资产应用的整体架构出发,识别出对企业至关重要的应用。通过对它们的更新和扩展,将它们转变成服务的方式,进一步推动它们的核心价值。
图3 转变应用程序整体架构
从业务端到 IT 端的转型方案
前面提到的三种转型方式,无论是最简单地从转换用户体验入手,还是最复杂的转换应用程序整体架构,都需要对企业的既有资产有一定的了解;需要清楚企业中哪些资产是有价值的、需要被识别成服务来进行管理和重用。
除此之外,转变应用程序连接性和转变应用程序整体架构,还需要对应用程序业务层次上有一定的了解,这样才能帮助企业决定,哪些应用才是企业业务发展重要的组成部分,才能有效地选择并进行服务方向的转型。
针对这些需求,结合对 IBM WebSphere 产品家族中的 WSAA(Webshpere Studio Asset Analyzer)和相关的第三方产品 ATW(Asset Transformation Workbench)的介绍,本文提供一种方案,探讨从业务层面到 IT 层面端到端地解决既有资产的转型。
图4 既有资产转型方案
上图给出了这种方案的概括性描述,它将既有资产的转型分成三个阶段:
对企业的既有资产进行全面的检查,根据它们的类型、属性和相互关系创建目录清单,并根据需要进行必要的依赖分析、缺陷弥补分析和图表描述分析。相关的结果,作为元数据保存到仓储库中,为后续的业务模型和语义识别提供依据。
根据用户需求或者预定义的支持,导入资产归类的元数据,抽取相关的源文件、构件和数据定义,以此为基础,结合企业业务语义字典,创建出既有资产的 As-Is 业务模型,包含相关的构件、业务流和事务的定义。
企业架构师和熟悉既有资产的技术人员,可以根据实际需要,通过手工或者工具的支持,为这些提取的业务模型增加或者修改相关的业务语义。因而,这一阶段,对用户角色的要求比较高。
包含了业务语义的业务模型,能够更清楚地反应出既有资产不仅仅在 IT 层面上、而且也在业务层面上存在的意义。尤其是后者,能帮助后来的IT架构师和技术人员真正理解哪些既有资产符合企业真正的业务需要,从而在决定是否将相关的既有资产识别成可重用的服务时,能提供更有效的依据。
同时,抽象出来的业务模型,也可以帮助 IT 架构师将其相关的既有资产,通过现有的产品支持,转型为服务的构件。
这个方案第三阶段向服务构件的转变,有如 WDz(WebSphere Developer for z series, 帮助Z系列既有资产转变成服务)、WID(WebSphere Integration Developer, 帮助创建和组合业务过程)等产品的支持。用户可以参考相关产品的文章,本文不再做详细性介绍,仅从基础的前两个阶段--资产归类和模型抽取与语义识别,对相应的产品和功能做重点描述。
WSAA 和 ATW
WSAA(WebSphere Studio Asset Analyzer) 是 IBM 针对企业资产分析管理需求提供的一个产品。它能够自动地发现和分析既有资产,提供应用程序构件的及时更新信息,从而缩短新的开发人员的学习周期,降低资产转型开发的复杂度。
下图是 WSAA 产品整体结构的概要性介绍:
图5 WSAA 产品整体结构介绍
- WSAA 可以运行在跨平台上
- 能够对大机 (Main Frame)上的 MVS 应用组成部分进行资产归类和分析
- 能够对文件系统和配置管理系统中的软件资产进行资产归类和分析,如 WebSphere Application Server 中的安装配置,Rational ClearCase, PVCS 或者 CVS 的资产
- 能够决定代码资产中,可能会因其它部分变化而受影响的位置
- 能够提供图示来描述应用程序构件彼此之间的关联
- 集成了 MVS 应用需要添加 Web 接口时需要的连接器信息
WSAA 提供了针对不同类型资产的扫描器,可以对企业信息系统的不同应用组成部分进行扫描。目前主要针对两大类:MVS 资产(针对大机应用)和分布式资产(针对 J2EE 应用)。
扫描后的结果会被保存在 DB2 数据库中,用户可以通过提供的 Web 浏览器接口直接访问这些信息。
通过使用数据库保存的信息,用户可以利用 WSAA 提供的接口作进一步的代码变化影响分析,也可以找到数据库中特定的代码资产,察看它们的目录分类信息乃至具体的代码内容。并且能够通过 WebSphere 其它的产品,如 WDz ,来利用这些信息创建 MVS 应用的连接器。
MVS 应用是既有资产重要的组成部分,也是 WSAA 进行资产归类分析的重点。下图描述了 WSAA 对 MVS 应用资产的归类分析过程:
图6 WSAA MVS 资产分析访问
企业 MVS 应用资产通过 WSAA ,被识别出资源的位置、链接的其它资产,然后经过内嵌的特定资产分析方法,被分类分析并保存到资产数据库中。
最常见的 MVS 应用资产经分类分析后包括 CICS Transaction 和 IMS Transaction。以它们为根节点,可以再向下再细分并关联到更多的其它类型的既有资产,如 COBOL Program, Batch Job, PSB, Data Set 等等。
WSAA 提供了标准的网络应用接口,方便用户从客户端浏览分类分析后的资产信息,并提供一定的操作,允许用户从客户端实时执行自定义的资产定位、查找、扫描、分析和浏览图示化的分析结果。它也可以通过添加评注的方式,帮助用户为已经分析完的资产附加一些简单的业务语义。
WSAA 的归类分析结果,为既有资产的转型提供了基础的元数据。实际操作中,还需要对这些元数据赋予更多的业务语义和业务规则,才能帮助后续阶段 SOA 的实施人员更有效地从这些既有资产中识别出可重用的服务。
第三方产品 ATW 可以帮助用户比较有效地完成这个需求。 ATW 以 WSAA 分析的结果作为输入,以内嵌的分析和与用户交互相结合的方式,对分析完的资产附加更多有效的业务语义。
下图描述了 ATW 和 WSAA 相接合共同完成既有资产分析、并赋予一定程度业务规则的过程:
图7 WSAA 和 ATW 结合完成既有资产分析
首先由 WSAA 完成对既有资产的归类分析,归类分析的结果,可以传递给 WSAA Bridge,并由 Bridge 经一定格式转换后,传递给 ATW。
ATW 是一个综合工作台,能够对诸如 COBOL、PL/I、CICS、IMS、JCL 等既有资产的源文件进行深度分析,并自动创建一个详细的基础知识库。以这个基础知识库为依据,ATW 提供了:
- Application Analyzer: 识别出执行期望的服务所需要的应用程序构件
- Business Rule Manager: 管理服务内部的业务规则,对其进行识别和记录
- Application Architect: 帮助把已有的代码结构和期望的服务更好地联系起来
- Application Profiler: 帮助实现应用程序信息的共享,如提供程序分析图示的浏览
- Reuse Analyzer: 对程序块进行重用性评估并给出缺陷弥补建议
既有资产经 WSAA 和 ATW 完成归类分析、业务语义管理、重用性分析等操作之后,已经可以给资产转型的第三阶段技术人员提供包含了较明确业务语义的、结构化的构件模型。进而再通过相关的 WDz 等产品的使用,即可实现向 IT 层次的转变,并能将实现的结果作为服务部署到企业的 SOA 环境中。
实际应用的例子
前面介绍完既有资产实现 SOA 转型的端到端方案之后,对相关的 WSAA 和 ATW 产品信息做了概要的介绍。下面用一个具体的小例子,说明一下这种方案工作的流程:
步骤一: WSAA 已经对企业 MVS 既有资产进行了扫描和分类,用户通过 Web Browser 访问 WSAA 的分析结果,在搜索页面内,随意敲入搜索的条件,如: AC01 来搜索相关的资产信息。
图8 WSAA 搜索既有资产
步骤二:点击一个搜索返回的 CICS Transaction 结果的链接,浏览它的相关详细信息。
图9 查看结果 CICS Transaction 信息
步骤三:查看此 CICS Transaction 的事务图,对其中的一个 COBOL 应用程序 ACCT01 感兴趣,浏览它的信息和源代码。
图10 查看A C01 Transaction 图和 ACCT01 源代码
步骤四:在 ATW 中对这个 COBOL 进行进一步的分析,通过 Business Rule Manager 管理它的业务规则,通过 Reuse Analyzer 了解它的重用性分析和构件结构
图11 ATW Business Rule Manager 管理业务规则
步骤五:通过前面的分析,决定将这个 COBOL 应用暴露成服务部署到企业 SOA 环境中。可以通过 Reuse Analyzer 做简单的 WSDL 的生成,也可以在 WDz 下完成后续的开发,开发的结果作为服务的具体实现。
图12 WDz 开发环境
结束语
既有资产的转型,一直是企业面临的重要问题。SOA 的出现,给解决这个问题创造了良好的机会。本文结合具体产品和应用例子,针对企业在 SOA 环境下实现既有资产的转型,描述了一种端到端地解决方案。希望能从业务层面到 IT 层面,对实际从事既有资产转型的技术人员有所启发
参考资料
作者简介  | |  | 张森:IBM 中国 SOA 设计中心,高级软件工程师,从事 EMF,SOA 和 WebSphere 相关的工作,对J2EE,SOA 和相关的领域有着浓厚的兴趣。 |
 | |  | 任志宏:IBM 中国 SOA 设计中心,高级软件工程师,从事 SOA 及 WebSphere 相关的工作,对 J2EE,SOA 和业务流程管理有着浓厚的兴趣,联系方式: renzhih@cn.ibm.com。 |
 | |  | 陈雷: 是 IBM 中国 SOA 设计中心的资深软件工程师,从事 SOA 和企业整合相关的工作,对 J2EE,SOA 和相关的领域有着浓厚的兴趣,联系方式: cdlchenl@cn.ibm.com。 |
 | |  | 刘伟:IBM 中国 SOA 设计中心,软件工程师,主要从事 SOAIF Tooling 的设计和开发工作。深入理解和应用SOA、SOMA、Web Services 等技术。个人兴趣:书法,绘画。联系方式:liuwcdl@cn.ibm.com。
|
 | |  |
张辉 IBM 中国 SOA 设计中心的软件工程师,主要从事 SOA Integration Framework 的研发,目前在做 SOA Domain Analysis 相关的工作。联系方式: cdlhuiz@cn.ibm.com。
|
对本文的评价
|