实现业务关键型 IT 应用程序的持续分析和管理

使用 Rational Team Concert 和 Rational Asset Analyzer 来管理提议变更的范围和风险,以此作为经过优化的 IT 基础架构的一部分

本文将重点介绍开发周期中与管理变更范围和风险有关的内容,还将提供有关某个可以提高您的变更规划能力的集成解决方案的信息。

Amy M. Silberbauer, 高级 IT 专家, IBM

Silberbauer 的照片Amy 目前是 Rational Industry Solutions 首席架构师以及 Unleash the Labs 团队的成员。她的专长包括企业现代化、面向服务的架构 (SOA) 和业务流程管理。她在 IBM 工作了 25 年,其中有 22 年的时间从事开发,6 年的时间担任 Rational Asset Analyzer 团队的首席架构师。



2012 年 11 月 05 日

下载 IBM® Rational® Team Concert 试用版  |  IBM® Rational® Asset Analyzer 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

如今,商业竞争异常激烈,企业必须能够快速有效地响应市场需求,这促使业务目标、优先级和需求发生不断改变。要获得竞争优势,必须将 IT 投资与这些目标和优先级联系在一起。另外,将一个灵活、协作式的软件交付基础架构集成到整个企业中对于获得成功也很重要。

要实现业务灵活性,用来建立现代化软件开发环境的策略就非常重要。此外,另一个重要要求是确保您的环境完全支持多平台开发并能够进行协作。在大多数企业对基于大型机、驱动关键业务流程的应用程序进行大笔投资时,这将是一项非常复杂的任务。这些应用程序通常没有归档,或至少正在进行归档,用于维护和修改这些应用程序的技能非常稀缺。

那么您的组织该如何着手去做呢?要建立现代开发环境、推动业务灵活性,理论上的第一步是什么?要通过 IT 敏捷实现业务灵活性,就必须对现有的软件清单有非常清楚的了解,并且能够直接影响对现有清单做出的持续的、有计划的更改。

因此,第一步是对目前引导业务进行的现有应用程序的结构有清晰的认识,从而了解这些应用程序的 “整体互动”。只有这样,您才能够为应用程序现代化决策、项目和团队建立愿景和路线图,并最终制定一项软件开发和交付计划,快速响应不断变化的业务需求。此外,通过将知识收集流程与应用程序变更流程集成在一起,您就可以根据准确的信息制定规划,从而正确地评估这些变更的范围和风险。

本文将讨论多平台开发的一项关键内容:集成软件应用程序分析与源代码变更管理基础架构,以便在软件维护和变更的整个过程中实现更精准的决策制定和规划。


应用程序分析概述

首先,我们将集成 IBM® Rational Team Concert™,实现端到端多平台软件开发生命周期管理。IBM® Rational Team Concert™ 提供了源代码管理、构建、升级 (promotion) 和开发功能,还提供了必要的基础架构来组织项目和团队,以管理持续的、交互的项目规划,并确保整个生命周期期间所有利益相关方之间的依赖关系的可跟踪性,从而将 IT 变更与业务需求联系起来。

然后我们会将 IBM® Rational® Asset Analyzer 添加到该环境中,以便提供应用程序分析,该分析是理解企业中存在的软件内容以及这些应用程序内部及之间的关系所必需

这些工具是更广泛的 Rational 解决方案(即 Integrated Solution for System z Development)的一部分,该解决方案的目标是为多平台开发创建一个集成的、核心式的现代开发环境,以此作为企业现代化战略的第一步。图 1 展示了一种初始的 Integrated Solution for System z 拓扑结构。

图 1. ISD for z 拓扑
集成解决方案的拓扑图

本文只关注其中两种组件,因此您可以集成 Rational Asset Analyzer 源代码分析功能和 Rational Team Concert 源代码管理,确保持续分析能够成为软件开发和变更生命周期的一部分。


准备工作

要为获得集成式解决方案而对开发环境进行准备,您必须先设置 Rational Team Concert,以便管理一个软件项目,包括(但不仅限于)以下元素:

  • 一个项目区域(和可选的团队区域)
  • zComponentProjects,代表可以在 Rational Team Concert 库中共享的软件应用程序工件
  • 一个流结构,表示您的软件应用程序横跨生命周期的各个阶段,包括生产、正式测试和开发阶段
  • 一个或多个构建定义,用于构建您的软件应用程序
  • 企业扩展,用于基于主机的构建:数据集定义、转换器和语言定义

图 2 展示了本文后面部分将使用的一个流结构示例。您的流结构可能与此不同,或者更复杂一些。

图 2. 用于多平台开发的初始 Rational Team Concert 流结构
初始设置的流结构图

在考虑如何将软件应用程序分析集成到持续的软件开发生命周期中时,您应当思考将分析功能嵌入到这个流结构的哪个部分中。换言之,哪个 “时间快照” 最能够代表软件工件?这不仅包括正在发生的变更,还包括应用程序的稳定版本。选择生产级别的源代码不一定能够反映出开发生命周期中正在发生的变更,除非在非常靠后的时间进行分析,才能对变更的范围和风险进行准确分析。开发级别的代码也不一定是最佳选择,因为这些变更可能尚未完成,仍然不稳定。理想情况下,应选择正式测试中的软件级别,因为所代表的变更被认为是相对稳定的,而且还包含正在发生的一些变更。

对 Rational Asset Analyzer 分析进行设置

Rational Asset Analyzer 软件对源代码内容(如 COBOL 或 JCL)以及系统信息(如 IBM CICS® 或 IBM DB2® 软件内定义的资源)进行分析。要对源代码进行分析,仅需要将 Rational Asset Analyzer 软件指向源代码并进行扫描。该集成解决方案的实现方式是建立一个 Rational Asset Analyzer 扫描请求与一个 Rational Team Concert 构建定义之间的联系,Rational Team Concert 通过这种联系将源代码提取到构建定义中指定的位置,然后向 Rational Asset Analyzer 软件发出请求,要求从该位置开始扫描。这种集成是建立在两种应用程序的标准功能的基础之上,因此会将分析功能嵌入到持续的软件变更流程中。

注意:
要针对 Rational Asset Analyzer 分析进行设置,必须在 Microsoft Windows 服务器上安装 Rational Asset Analyzer 和必需的组件,然后才能够在主机系统中实现主机子系统扫描。

在 Rational Team Concert 中创建 Rational Asset Analyzer Scan 构建定义

Rational Asset Analyzer 扫描请求是通过 Rational Team Concert 构建定义在集成解决方案中发起的,是通过发出一个构建请求来发起该扫描请求的。要定义该构建,请打开您的 Rational Team Concert 客户机并执行下面的步骤:

  1. 从 Team Artifacts 视图中,导航到项目 Builds 文件夹,单击右键,选择 New Build Definition
图 3. 创建新的构建定义
从 Builds 文件夹中选择 New Build Definition
  1. 在 New Build Definition 页面中,单击 Next
图 4. New Build Definition 向导
New Build Definition 屏幕
  1. 在 General Information 页面中,提供一个合适的名称,以表明该构建定义是针对 Rational Asset Analyzer 扫描的,请选择 Ant-Jazz Build Engine 模板,然后单击 Finish
图 5. Build Definition General Information 页面
显示 General Information 页面
  1. 请注意,在 Build Definition 页面中会出现一个警告,指示您必须指定一个受支持的构建引擎。在 Supporting Build Engines 部分中,单击 Create 按钮以创建一个新的 Rational Asset Analyzer 构建引擎:
图 6. Build Definition Overview 页面
Build Definition 对话窗口

图 6 的大图

  1. 在 New Build Engine General Information 页面中,提供一个名称以表明这是 Rational Asset Analyzer 构建引擎,选择 Jazz Build Engine 类型并单击 Finish
图 7. New Build Engine General Information 页面
指定新的构建引擎信息
  1. 新的构建引擎将出现在构建定义的 Supporting Build Engines 部分:
图 8. 新的受支持的构建引擎
新的与构建定义相关的构建引擎
  1. 单击 Schedule 选项卡,提供有关调度 Rational Asset Analyzer 扫描的细节。

提示:
可以选择您喜欢的任何时间表。您可以使用它将完成 Rational Asset Analyzer 扫描全部自动化为源代码管理生命周期的一部分:

图 9. Rational Asset Analyzer 扫描的 Schedule 选项卡
为已调度的扫描指定特性

图 9 的大图

  1. 单击 Properties 选项卡并添加一个新的属性 SourceLocation,然后在您的 Rational Asset Analyzer 服务器上指定一个目录。该目录可以是任意目录,稍后我们会用它来完成解决方案的配置。
图 10. Rational Asset Analyzer 中的 Scan Properties 选项卡
为扫描指定 SourceLocation 属性

图 10 的大图

  1. 单击 Jazz Source Control 选项卡。在这里,您要指定许多细节,实现从 Rational Team Concert 流的扫描:
    • 根据表示 “时间快照” 的流创建一个存储库工作空间,在该空间中保存源代码,以便获取源代码来完成构建请求。
    • 根据上面的 SourceLocation 属性指定加载目录,Rational Team Concert 将从这里获取内容,并表明该目录不可删除。这将确保会将正在进行的增量变更扫描到 Rational Asset Analyzer 中。
    • 在 Accept Options 部分,表示应当在构建工作空间中接受对流的更改,并且除非其中包含变更,否则不应出现任何构建(扫描)。
图 11. Rational Asset Analyzer Scan Jazz Source Control 选项卡
为 Jazz 源代码控制指定特性

图 11 的大图

  1. 单击 Ant 选项卡。在 Build File and Targets 部分中,在 Build file 条目字段下,根据 SourceLocation 属性指定构建 XML 文件的绝对路径和文件名:
图 12. Rational Asset Analyzer Scan Ant 选项卡,构建文件
指定一个 RAA 扫描构建 XML 文件
  1. 保存 新的构建定义。

构建定义和构建引擎将出现在项目 Builds 文件夹中。在创建了 Rational Team Concert 构建定义来执行 Rational Asset Analyzer 扫描后,您现在可以设置 Rational Asset Analyzer 服务器环境,以便执行这些扫描。

准备 Rational Asset Analyzer 服务器以处理 Rational Team Concert 扫描请求

在 Rational Asset Analyzer 服务器,执行以下任务来完成 Rational Team Concert 扫描:

  1. 确保 Jazz Build Engine 已安装并在 Rational Asset Analyzer 服务器机器上启动,从而可以准备接受构建请求。(参见 参考资料 中的链接,了解如何获得 Jazz Build Engine 和安装说明。)
  2. (可选)在 Rational Asset Analyzer 中创建一个应用程序,用它来保存扫描的工件。如果您准备分析多个软件应用程序,并且用不同的 Rational Team Concert 项目区域来表示这些应用程序,那么这样做很有帮助。
图 13. Rational Asset Analyzer 应用程序定义
定义新应用程序的对话窗口
  1. (可选)如果您在步骤 2 中定义了一个应用程序,那么通过 Rational Asset Analyzer REST 界面记录该新应用程序的 ID。您可以通过 Rational Asset Analyzer 服务器上的浏览器访问 REST 界面,使用类似如下所示的 URL 即可:

    https://host:port/raarest/assets/application

您应当看到类似如下屏幕所示的内容。

图 14. 应用程序的资产汇总
该汇总列出了资产和 ID

定义 Rational Asset Analyzer 扫描请求的细节

  1. 在服务器中寻找或创建前面小节中在 RAA Scan 构建定义 Properties 选项卡 中被指定为 SourceLocation 的目录。
  2. 在该目录中,使用相关内容创建两个文本文件(为您的环境定制粗体 显示的值):
    • RAAScan.text
    • raaBuild.xml

RAAScan.txt

此文件包含 Rational Asset Analyzer 扫描指令,其中:

  • container 是 Jazz Source Control 选项卡上方的 Rational Asset Analyzer Scan 构建定义中指定的 Load Directory
  • applicationId 是可选的数值标识符,用于标识 Rational Asset Analyzer 中的应用程序(如果您没有创建应用程序,那么可从该文件中删除这一行)
清单 1. RAAScan.text 文件内容
{
    container: "c:\\ScanRAA\\RTCTestStream", 
    scanZips: false, 
    scanSymbols: false, 
    applicationId: 11 
}

raaBuild.xml

这是一个 ANT 脚本,用于发起扫描(构建)请求,如 RAA Scan 构建定义中的 Ant 选项卡所示,其中:

  • message 是构建结果中出现的值,因此应当是有价值的
  • executable 指向您的 Rational Asset Analyzer 安装目录
  • URL 提供 Rational Asset Analyzer 连接信息
  • text file 是上述文件的名称(例如,RAAScan.txt)。
清单 2. raaBuild.xml 文件 contents
<project name="scanRAA" default="startScan"> 
    <target name="startScan"> 
    <echo message="Submit a scan request of sample source..."/> 
    <exec executable="<RAAInstallRoot>\bin\dmhrest.bat" 
        <arg value="POST"/> 
        <arg value="http://<host>:<port>/raarest/assets/container?action=scan"/> 
        <arg value="-if"/> 
        <arg value="c:\ScanRAA\RAAScan.txt"/> 
    </exec> 
    </target> 
</project>

创建好集成解决方案的各个部分后,您现在就可以执行应用程序工件的初次扫描。


填充 Rational Asset Analyzer 库

将软件应用程序的源代码放入 Rational Team Concert 存储库并准备好解决方案的各个部分后,您现在可以使用初始的分析信息来填充 Rational Asset Analyzer 存储库。这非常简单,因为您已经有了 Rational Team Concert 构建定义来发起 Rational Asset Analyzer 扫描:

  1. 在 Rational Team Concert 客户机中找到 RAA Scan 构建定义,然后右键单击并从下拉菜单中选择 Request Build
图 15. 请求 Rational Asset Analyzer 扫描
在 RAA Scan 菜单中选中 Request Build
  1. 在 Request Build 对话窗口中,单击 Submit 即可发起 Rational Asset Analyzer 扫描请求。您的构建请求会在 build results 视图中显示。
  2. 完成构建请求后,可以双击打开构建结果:
图 16. RAA Scan Build Request 结果
状态和相关信息

图 16 的大图

提示:
完成构建请求并不表示 Rational Asset Analyzer 扫描已完成,而是仅表示扫描请求 已完成。

  1. 在浏览器中打开 Rational Asset Analyzer,查看首次扫描请求的结果。

完成分析后,您需要执行一些操作来确保初始清单被填充并准备好进行持续分析。下面是一些需要考虑的问题:

  • Rational Asset Analyzer 要求在源代码扫描期间所有范本 (copybook) 都可用于分析参考 (reference)。因此,您可能会在以下情况下看到源代码分析错误:
    • 如果您在 Rational Team Concert 中设置了 zComponentProjects,以便将范本从源代码中分离出来,那么您需要创建一个或多个 Rational Asset Analyzer 串联集合来指定范本的位置。
    • 如果您的应用程序引用了子系统范本,比如 IBM CICS®、IBM DB2® 或 IBM Information Management System(IMS™)中提供的那些范本,那么您需要确保这些范本可用于 Rational Asset Analyzer。您可以通过两种方式实现这一点:
      • 将范本包含到一个单独的 zComponentProject 中并与 Rational Team Concert 存储库共享它们,这样在针对一个扫描请求从流中获取源代码后即可使用范本。
      • 在您的 Rational Asset Analyzer 服务器上创建一个目录并将范本下载到该位置,以便在 Rational Asset Analyzer 串联集合中引用。
  • 如果您的应用程序运行在大型机子系统上,或使用了此类系统,如 CICS、DB2 或 IMS,或者您的应用程序包含 Assembler 源代码,您需要通过使用 Rational Asset Analyzer 主机的扫描功能来扫描这些子系统和所有 Assembler 源代码,用这种方式来补充清单。这超出了与 Rational Team Concert 的集成范围。举例而言,这种解决方案的一个样例应用程序就是 CICS COBOL 应用程序,因此我们通过对主机系统上的 CICS 子系统进行扫描来补充清单。
  • 错误通常是由于漏掉了应用程序源代码或其中的冗余信息而导致的。您需要依靠这些信息来确保您的迁移后的应用程序是完整的。

您不应奢望 Rational Asset Analyzer 中的应用程序清单是完全无错的,但是您应该确定一个合适的、可接受的错误百分比作为阈值,并解决这些问题来实现这一目标。


结束语

集成 Rational Team Concert 和 Rational Asset Analyzer 来实现应用程序分析,目前这已经成为典型维护或有计划的发布生命周期的一部分。持续分析将会自动执行,前提是您已将 RAA Scan 构建定义设置为按照预定计划运行,并表明这些构建(扫描)应当仅在变更通过流纳入到相关的存储库工作空间时才会发生。

通过采用这种集成方法,分析所提议变更的范围和风险就可以成为持续的软件变更和开发生命周期的一个核心组成部分,该分析基于现有的、易于管理的源代码清单。如图 17 所示,Rational Asset Analyzer 捕捉了应用程序的内容并提供有价值的信息,帮助您进行规划和制定决策。

图 17. Rational Asset Analyzer 应用程序图
应用程序工件和交互图

此外,您可以在基于 Eclipse 的 Rational Team Concert 和相关 IDE 工作空间内将这些信息提供给开发人员。他们可以据此制定出更好的变更决策。

在进行更改的过程中,一旦从实际的源代码中获得软件应用程序信息后,您就可以根据这些准确的信息作出规划,从而恰当地评估这些变更的范围和风险,最终显著提高 IT 基础架构的灵活性。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=844572
ArticleTitle=实现业务关键型 IT 应用程序的持续分析和管理
publish-date=11052012