Rational Insight 与 Rational Team Concert 集成环境部署
2010-03-22 00:00:00 来源:WEB开发网IBM Rational Insight 是 Rational 为提高软件项目度量和管理效率而开发的集成解决方案,通过 Insight 提供的数据抽取与分析功能提取诸如 Rational ClearQuest、Rational ClearCase、Rational Team Concert 等数据源中相关的开发流程管理数据,并据此生成数据仓库,进而以可视化报表展现。Rational Team Concert 是基于 Jazz 的协作软件交付平台,是 Rational 重要的战略性产品和平台,提供了可定制的便捷高效的软件开发流程控制功能。因为这两个产品的重要性,基于 Rational Team Concert 数据的项目度量解决方案是 Rational Insight 中非常重要的功能。
前言
软件开发过程管理是所有软件开发公司或相关从业人员非常关心的话题,可以说从某些程度上其管理的好坏决定了软件质量以至于公司的生存能力,其重要性甚至超过了软件开发技术本身。软件开发的管理就是对其要素的管理,一般来讲,软件开发中的要素包括 Resource、Code、Change、Configuration、Test、Iteration、Build、Cost 等。软件开发管理的核心内容就是对这些要素进行全生命周期管理,并依据对这些要素的度量逐步地不间断地提高管理能力的成熟度。
IBM Rational 为业界提供了领先的软件开发过程管理解决方案,其品质和能力已经持续了将近 30 年。如今 Jazz 作为一个可伸缩、可扩展的团队协作平台,被 Rational 赋予了无缝地集成软件生命周期中的要素管理的能力,是 Rational 下一代的协作软件交付平台。
Rational Team Concert,以下简称 RTC,是基于 Jazz 的团队软件开发协作工具。其轻量级的特点,使其相比于 Rational ClearQuest 等变更管理工具而言,更加易于配置、使用和管理,其可定制性也使其更加灵活多变。RTC 不仅可以提供变更管理的功能,同时在进度管理、人力资源分配、团队协作、版本控制和构建管理等方面也都提供了相应的支持,可以说 RTC 基本满足了软件开发项目中管理功能的一站式服务。再者,凭借其开源和可扩展的特点,在可以预见的未来,RTC 在软件过程管理领域将越来越接近于领先地位,如同 Eclipse 在软件开发领域一样。
Rational Insight,以下简称 Insight,是 IBM 于 2009 年发布的全新产品,以 Rational 软件流程管理工具为数据源,诸如但不限于 ClearQuest ClearCase RTC 等产品,通过设计和实现标准的 REST Service 数据接口实时抽取数据并形成 XML 数据集,而后通过自定义的 ODBC Driver 将 XML 数据集转换为关系数据集,并以此作为生成数据仓库的原始数据。基于业界领先的 Cognos 商业智能软件,Insight 将原始数据生成数据仓库并通过可定制的报表进行展现,软件开发过程中的相关人员将以此为参考,并作为持续评估和改进软件过程能力的依据。
RTC 的优势在于对软件过程的管理,而 Insight 的优势在于对软件过程的度量。因此,如何将两者集成,并在真实生产环境中部署,借助于两者的优势改进软件过程能力就显得非常重要而且具有实质上的意义,这相当于 1+1>2 的结果。
基于此,本文所面向读者群是软件公司中的过程管理工具的配置管理员,或任何希望了解 Rational 软件项目过程管理与度量产品集成解决方案的人。当然普通的开发人员或项目管理者也可以从中获益,了解到软件过程度量的结果是如何产生的。
约定
真实生产环境千差万别,为了更能抓住重点,本文对所述内容作如下约定。
以典型的企业环境为前提,1)不限制 Insight 数据仓库种类与 RTC 存储库的类型,即在异构数据库环境中同样可以集成部署;2)不限制 RTC 存储库的数量,本文将以单 RTC 存储库为重点,同时提供如何配置多 RTC 存储库数据抽取的必要参考信息;3)不限制 Insight 安装与使用的操作系统,即如何分别在 Windows 与 Linux 平台上运行 Insight 解决方案;4)本文撰写内容基于 RTC 1.0.1 和 Insight 1.0 为准,后续版本基本类似;5)为了简化 Insight 部署过程,本文的所述环境将 Insight 的所有组件部署在一台独立的服务器上。同时本文中并不涉及与 Insight 与 RTC 集成配置和使用并不紧密相关的内容。
Rational Team Concert 与 Rational Insight 安装与配置
Rational Team Concert 的安装与配置
RTC 的所有数据存储在存储库中,目前 RTC 版本的存储库支持 Derby、DB2、Oracle、SQLServer,由于 Insight 所支持的数据源中并不包含 Derby 数据库,所以如果想要将 RTC 与 Insight 进行集成,那么必须选择存储库的类型为 DB2、Oracle 和 SQLServer 中的任意一种,而这种可选择的设置也为集成中异构数据库的支持提出了新的问题,本文将在后面进行阐述。
通过修改 RTC Server 的 properties 文件使 RTC 建立与存储库连接,而后启动 RTC Server 就可以使用 RTC 应用了,鉴于本文并不是描述如何具体配置和使用 RTC 的,这部分内容请参考 RTC 的相关文档。
Rational Insight 的安装与配置
鉴于本文的约定,Rational Insight 的所有组件将被部署在一台服务器上,主要包括 Cognos Data Manager(以下简称 Data Manager),Cognos Framework Manager,Cognos Business Intelligence Server(以下简称 BI Server),ODBC Driver,XML Configuration Tool,Data Warehouse DB,Content Server DB 等。
Rational Insight 的高层架构图 1 所示,其中 RTC 数据源相对于其它数据获取方式的最大不同在于,RTC 的数据是直接取自 RTC 存储库,而 ClearQuest ClearCase 等产品的数据是遵循 REST Service 标准通过互联网获取的 XML 数据集,进而通过 ODBC Driver 生成的关系数据集。
图 1. Rational Insight 总体架构图
如表 1 列举出了在 Insight 的安装过程中,所有组件及其基本作用。其中 Data Manager、Reporting Server、Content Store Database 和 Data Warehouse 是必须安装的组件,否则没有办法完成与 RTC 集成,并最终形成报表的整个流程。
表 1. Rational Insight 主要组件
名称 | 作用 | 是否必须 |
Data Warehouse | 存储来自数据源的原始数据以及 ETL 执行结果的数据仓库 | 是 |
Data Warehouse With Sample Data | 在数据仓库结构基础之上提供示例数据供用户参考 | 否 |
XML Data Configuration | XML 数据集与关系数据集映射配置工具 | 否 |
Reporting Server | 报表服务器,部署在 WebSphere Application Server 上,提供报表设计与展现服务 | 是 |
Content Store Database | Cognos 应用数据,包括安全信息、配置信息、数据模型、报表定义、计划任务等,主要为 Reporting Server 提供运行支持 | 是 |
Data Manager① | ETL 流程设计执行工具 | 是 |
Framework Manager | 为报表提供的数据模式的编辑工具 | 否 |
① 在 Linux 操作系统之上,Data Manager 没有 GUI 的界面,但仍然需要安装,以提供命令行执行所需的基本环境。
RTC 与 Insight 集成综述
拓扑结构
RTC 与 Insight 的数据集成环境的拓扑结构还是比较简单的,如图 2 所示。集成环境中包含一台 Insight 服务器,以及一至多台 RTC 服务器。
图 2. RTC 与 Insight 集成拓扑结构
单 RTC 存储库与 Insight 环境集成
首先,在最简单情况下只有一台 Insight Server 和一台 RTC Server。数据集成的步骤如下:
准备阶段——快照 RTC 数据
RTC 作为团队协作平台,其 7*24 小时在线的特点要求在任何时候都必须能提供服务,同时数据统计的要求数据干净稳定无冗余,这类似与数据库中读写操作,同时存在又并发的话必然引起冲突。为了解决这个冲突,RTC 在数据底层设计时提供了两套数据,即实时数据和快照数据,实时数据保证其 7*24 小时在线服务,而快照数据为数据统计提供支持。鉴于 Insight 的功能是数据统计分析与报表展现,所以针对 RTC 抽取的数据是 RTC 快照数据部分,换句话说 Insight 中展示的与 RTC 相关的信息并不是绝对真实地反映 RTC 的实时情况,而是 RTC 快照之后的数据情况。
鉴于此,为了让 Insight 更准确反映现实情况,在准备阶段首先需要对 RTC 实时数据进行快照,这步操作在每次抽取 RTC 数据前都必须执行。RTC 提供了手动和自动两种更新方法供选择:手动方法需要以管理员权限用户登录 RTC Server 后选择 Project Area 执行快照数据更新功能,如图 3 所示;自动方法需要以管理员权限用户登录 RTC Server 后选择 Admin 设置高级属性部分,注意这里设置的快照时间是指 24 小时制的具体时间,如图 4 所示(图 4 中隐藏了没有变化的属性),需要注意的是自动功能只在 RTC 1.0.1 及之后版本中提供,在 RTC 1.0 中只能以手动方式执行快照数据更新。
图 3. 手动更新 RTC 快照数据
查看原图(大图)
图 4. 自动更新 RTC 快照数据
查看原图(大图)
准备阶段——恢复 ETL 编目
Cognos Data Manager 是可视化的设计 ETL(Extract Transform Load)流程的工具,它是 RTC 与 Insight 数据集成中运行 ETL 的必备工具,这里需要指出的是 Data Manager 的运行同样需要数据库的支持,被称为 ETL 编目,如同 Reporting Server 的运行需要 Content Store Database 的支持是一样的。所以在使用 Data Manager 之前,需要事先创建一个空数据库以供存储编目信息,目前 Data Manager 支持在 DB2 Oracle SQLServer 等商业数据库上创建编目。
随 Insight 一起发布的是根据各数据源产品,例如 RTC ClearCase ClearQuest 等拥有的默认数据模型而设计的 ETL 流程,它以 CTG 备份文件的方式存储在安装好的 Insight 服务器上,具体目录是($RI_INSTAL_DIRECTORY 表示 Insight 安装目录)$RI_INSTALL_DIRECTORY\datamgr\insight_catalog\OOTBDMCatalog.ctg
由于 Linux 平台不同于 Windows 平台,Data Manager 没有 GUI 操作界面,所以这里分别对两个平台进行描述
Windows
如图 5~7 所示,在 Windows,可以通过 Data Manager 的 GUI 操作界面首先创建全新的 ETL 编目,然后将 Insight 发布的 CTG 文件恢复到刚刚创建的 ETL 编目中。注意在图 6 中,ETL 编目也可以建立在不同的商业数据库产品诸如 DB2 Oracle SQLServer 之上。
图 5. 新建空 ETL 编目 1
图 6. 新建空 ETL 编目 2
图 7 重建 ETL 编目
Linux
由于 Linux 上 Data Manager 没有 GUI 界面,所以必须通过命令行方式创建并导入 ETL 编目,以 DB2 为例,新建 ETL 编目的命令如下:
./catmanage DB2 "DSN=RICTG;UID=db2inst1;PWD=db2admin" –c
导入 ETL 编目的命令如下:
./catrestore DB2 "DSN=RICTG;UID=db2inst1;PWD=db2admin" $CATALOG_DIR/OOTBDMCatalog.ctg
以上 Linux 命令必须在诸如 db2inst1 这样的有效 DB2 用户环境中执行,所以执行前务必通过 su 命令切换到该用户的上下文环境中。Oracle 等其他数据库的参数设置方法详见 catmanage 与 catrestore 命令的帮助信息。
数据抽取阶段
数据抽取是指将 RTC 存储库中的内容提取到 Insight 数据库中,并重新组织和统计,以生成数据仓库供 Insight 报表使用。在数据库抽取之前,先要确认连接设置中的 RTC 存储库与 Insight 数据仓库是否正确,然后再运行 RTC Job。同样由于 Linux 不提供 Data Manager 的 GUI 操作界面,所以也需要分为 Windows 和 Linux 两个平台提供不同的配置及数据抽取方法。
Windows
在 Data Manager 中,分别打开 Connections 中的 Rational Team Concert 与 Rational Data Warehouse 连接的配置页,其中记录了 RTC 存储库与 Insight 数据仓库的详细连接信息,设置完成后可以通过 Test Connection 按钮完成连接测试,如图 8 所示。
注意此时的 RTC 存储库与 Insight 数据仓库同样可以部署在不同商业数据库服务器上,这是异构数据库集成的基本要求,当然用户可以不需要关心异构兼容性是如何完成的,只需要将它们分别设置正确即可。
图 8. 验证连接有效性
完成连接有效性的测试之后,即可以通过 Data Manager 抽取 RTC 快照数据用以生成数据仓库,用户只需执行右键点击或 F5 执行相应的 Job 即可,如图 9 所示。
图 9. 运行 RTC Job
Linux
在 Linux 上通过 rundsjob 命令来运行 ETL Job 抽取 RTC 数据:
./rundsjob -P DB2 "DSN=RICTG;UID=db2inst1;PWD=db2admin" RTCE2E
还可以利用 catlist 命令查看目前 Catalog 数据库中可以运行的所有 Job 列表:
./catlist DB2 "DSN=RICTG;UID=db2inst1;PWD=db2admin" J
多 RTC 存储库与 Insight 环境集成
Insight 1.0 版本不能自动地支持多 RTC 存储库数据抽取,需要很多手工的工作,在 Insight 随后的版本中这个问题将会得到解决。由于这个问题不具备有通用性,在这里不再详细描述。对于 Insight 1.0 的用户请参考“处理 IBM Rational Insight Process 中的多个 IBM Rational Team Concert 资源”一文,对于 Insight 1.0 以上版本的客户与简单数据集成步骤相同。
Insight 自动数据抽取
每天手动运行 Insight 的 RTCE2E 任务抽取 RTC 存储库数据显然是不现实的,通过如下步骤可以配置使其在规定的时间自动运行。
通过 Data Manager 的“动作”菜单中的“发布数据迁移任务”提交需要自动运行的任务,如图 10 所示,并在打开的窗口中选择需要提交的任务,这里选择 RTCE2E;
进入 Insight 的 Web Portal http://localhost:9080/insight/servlet/dispatch/;
选择 dataMovementTask 文件夹中的 RTCE2E 的计划表属性,如图 11 所示,其中可以设置具体任务的运行频度,开始时间与结束时间等;
图 10. 提交需要自动运行的任务
图 11. 设置自动运行的任务
基于 RTC 的 Insight 报表
通过以上步骤,RTC 数据已经成功抽取到 Insight 的数据仓库中,之后通过配置 Insight 报表服务器的数据仓库连接,即可以在线地显示如图 12、图 13 所示的软件过程度量报表。
其中图 12 演示的是某个产品所有成员拥有 workitem 的数量情况,借此可以考察每个成员对产品的贡献程度及其工作负荷;而图 13 显示的是在一段周期之内某个项目中缺陷发现的分别情况,针对不同严重等级分别以不同颜色的折线表示,借此可以观察项目质量的发展趋势,并判断项目是否可以按时发布,是否存在质量风险等。
如图 12、图 13 所示,随 Insight 的发布,一些常用的软件过程度量报表已经被实现并提供给用户,可以在数据抽取之后直接使用。当然,用户亦可以根据自身项目度量标准的需要自行设计和实现 Insight 的报表,这需要掌握一定的报表设计能力,这部分并不是本文的重点。
图 12. RTC Reports A
图 13. 图 12 RTC Reports B
Insight 提供的报表全部都是可以自定义并重新设计的,而这种自定义功能也是可以通过网络在浏览器中直接完成的,这意味着用户在客户端上不需要额外安装任何软件即可完成报表的设计,这充分体现了 Insight 的强大之处。当然除报表设计外,更多情况下对报表的浏览也是可以通过浏览器完成的,它使得软件开发过程度量方法的设计与实现真正跨越了时间和地域的界限,达到了 AnyTime and AnyWhere 的程度,非常适合全球化软件开发的管理,IBM Rational 内部已经开始使用这种方法并以此作为产品的最佳实践。
前文提到过,需要配置 Insight Reporting Server 的数据仓库连接。假定 Insight 产品的所有组件被安装在一台的服务器上,则通过访问 Insight 的 Web Portal http://localhost:9080/insight/servlet/dispatch/ 可以进入 Insight 报表服务的入口。并按如下步骤配置 Insight Reporting Server 连接指定的数据仓库:
页面右上角的“启动”菜单中选择 IBM Cognos Administration;
选择打开页面的“配置”页;
进入目录结构选择 RIDW 连接的设置属性
选择打开页面的“连接”页;
此时应能呈现出如图 13 所示的页面,正确设置数据仓库的类型和连接字符串部分即可。
重启服务器
访问 Insight Web Portal 地址,点击相应的报表
图 14. 数据仓库连接设置
总结
最后必须要提及的是,RTC 同样可以完成项目报表展现的功能,但显然这并不是它的强项。首先 RTC 不能抽取不同的存储库中的数据形成报表,这不适用于需要跨地域的大型软件开发的管理;其次 RTC 报表自定义的功能没有 Insight 强大;第三 Insight 可以针对不仅限于 RTC 的数据源,对 ClearQuest、ClearCase 等也可以进行数据统计,最大限度的保留了用户的现有软件资产。总之,集成使得软件工程项目能更加协作高效、信息透明,同时 Insight 强大的项目度量能力从另一个方面保证了软件项目成功。
本文涵盖了 Rational Insight 与 Rational Team Concert 进行环境集成部署,抽取快照数据生成数据仓库,以及形成报表的全过程,特别分别针对 Windows 和 Linux 操作系统提供了不同的解决方案。限于篇幅,本文仅涉及集成部署与数据抽取执行等方面的内容,对于 Insight 和 RTC 更多的技术细节,尤其是 Insight 用户自定义部分没有谈及,有兴趣请参考更多的关于 Insight 与 RTC 的技术文章。
更多精彩
赞助商链接