利用中心化缓存管理特性和 CCRC 构建跨广域网 Base ClearCase/ClearQuest 集成开发平台
 

2010-01-29 作者:付珊,徐广毅 来源:ibm

 
本文内容包括:

Rational ClearCase 和 Rational ClearQuest 是 IBM Rational 家族产品中的核心成员,而二者的集成,将变更请求和配置管理对象有机的联系在一起,既保证了产品的质量又极大地提高了开发效率。ClearCase Remote Client(简称CCRC),是 IBM Rational 推出的能够满足广域网环境下资源配置管理的需要,并涵盖了大部分 ClearCase 客户端功能的强大工具。而 ClearCase 中心化缓存管理的特性是 CCRC 上 Base ClearCase 与 ClearQuest 集成的基础。

因此,本文将详述如何利用中心化缓存管理的特性,使用 CCRC 构建跨广域网的 Base ClearCase 与 ClearQuest 集成开发平台,希望能够给企业部署 ClearCase 与 ClearQuest 集成开发平台,提供一定的参考。

1. Base ClearCase 与 ClearQuest 集成简介

Base ClearCase 与 ClearQuest 集成,简称 Base CC/CQ 集成,是 ClearQuest 中的变更请求(Change Requests)关联到一个或多个 ClearCase 中元素(Element)的某一分支(Branch)的版本(Version)上。

Base CC/CQ 集成的方式有两种,一种是在开发人员的客户终端安装了 ClearQuest 客户机组件的情况下,通过本地 ClearQuest 接口访问数据库的方式实现集成;第二种方式是通过 CQ Web(ClearQuest Web)集成接口实现,它使用 ClearQuest Web Server 上提供的基于 WEB 的接口访问数据库的方式,开发人员使用该方式集成无需在自己的客户终端上安装 ClearQuest 客户机组件。而 Base CC/CQ 集成的部署和配置方式也有两种,一种是本地方式(Local Server),它使用本地默认目录中的配置文件 config.pl 和 cqcc_launch 脚本以及其他代码文件进行集成操作;另外一种方式是集中方式(Central Server),它是将配置文件 config.pl 和 cqcc_launch 脚本以及其他代码文件统一存放在一个目录里,当进行集成操作时,ClearCase 就会使用该目录中的配置文件,脚本以及其他集成所需要的代码文件,而不是使用本地默认目录中的文件,从而提高了安全性和可维护性,因此,本文推荐使用该方式来构建广域网上 Base CC/CQ 集成开发环境。

基础的 Base CC/CQ 集成环境的构建以及操作范例,读者可以参考 developerworks 文章“Base ClearCase 与 ClearQuest 的集成”。而 ClearCase 的另外一种应用方式 UCM(Unified Change Management),它是一种基于活动的变更管理流程,并且它是基于 Base ClearCase 的管理流程演变而来的。UCM ClearCase 与 ClearQuest 集成的相关信息读者可以参考 developerworks 文章“UCM ClearCase 与 ClearQuest 的集成”。

2. CCRC 简介

ClearCase 远程客户端软件(ClearCase Remote Client),简称 CCRC,是一种优化的基于 Eclipse 的用户界面。它通过 HTTP 协议与服务器进行交互,并涵盖了大部分本地 ClearCase 客户端的功能,因此能够用于广域网环境下资源的配置管理,为用户提供了一种使用 ClearCase 服务的便捷方式,受到了众多业界人士的青睐。如图 1 所示,开发人员可以在广域网的环境中,使用 CCRC 来访问 ClearCase 服务器进行配置管理工作。

图 1.CCRC 使用场景
图 1.CCRC 使用场景

3. 中心化缓存管理的特性

IBM Rational 为了能够更好的实现 ClearCase 在 CCRC 上 Base CC/CQ 集成的功能,特别在 ClearCase V7.0.1 及其后续发行版本 7.1(含补丁)增加了中心化缓存管理(Centralized Cache Management)的特性。如果开发人员使用 V7.0.1 之前版本的 ClearCase 进行 Base CC/CQ 集成操作,在该操作过程中产生的会话信息文件及缓存文件都会存放在开发人员自己的本地目录中,这样的存储方式既不利于 ClearCase 管理员的统一管理,同时也不利于这些信息文件的数据管理以及后期的维护工作。而中心化缓存管理的特性弥补了这一缺陷,它将这些存放在各个开发人员本地目录里的信息文件,都统一存放在一个公共的共享目录中,既方便了 ClearCase 管理员的统一管理又提高了产品的安全性和可维护性,同时也为构建跨广域网的 Base CC/CQ 集成开发环境提供了前提。而这一特性主要体现在核心配置文件 config.pl 的参数 CQCC_CACHE_ROOT 上,本文将会在 5.3.4 节详细介绍该参数的配置方法。

下面本文将具体介绍如何通过 CQ Web 集成接口、并采用 Central Server(集中方式)的配置方式,使用 CCRC 构建广域网环境下的 Base CC/CQ 集成解决方案。

4. 运行环境的部署

图 2 是一个典型的使用单一站点的 ClearCase/ClearQuest 集成环境拓扑结构图。为了能够实现 Base CC/CQ 集成的功能,企业还需要在内部网络中加入 CC/CQ Integration Server 来管理 Base CC/CQ 集成,从图中可以看出开发人员可以使用 CCRC 在广域网的环境中,通过访问 ClearCase 服务器来进行集成环境下的配置管理工作。

图 2. 单站点的拓扑结构图
图 2. 单站点的拓扑结构图

为了满足中大型企业开发需求,可以采用跨广域网、多站点、分布式的 Base CC/CQ 集成开发环境,如图 3 所示。

图 3. 多站点的拓扑结构图
图 3. 多站点的拓扑结构图
表 1. 机器角色描述
 
机器名称 角色描述 操作系统
CC/CQ Integration Server
(简称 CCCQ_server)
  • 管理 Base CC/CQ 集成。
  • 存储集成使用的配置文件和脚本,以及在集成过程中产生的文件。
  • 需要安装 ClearQuest Integration with ClearCase 组件。
Windows
CC Web Server
  • 提供 CCRC 服务。
  • 如果选择安装 ClearCase V7.1,此机器需要安装服务器组件中的 CM Server for ClearCase Remote Clients。
Windows 或 Unix/Linux
CC VOB/ Registry/Multisite
Server
  • 存储所有 VOB 数据。
  • 存储所在站点的所有 CC 的注册信息。
  • 此机器也可分开部署成 CC Registry Server 和 CC VOB Server 两台机器。
  • 如果部署成图 2 所示的多站点环境,需要在此机器上安装 CC Multisite 组件。与其他站点的 CC Multisite Server 通信,同步更新数据。
Unix/Linux
CC VIEW Server
  • 提供动态视图(Dynamic View)的存储。
Windows 或 Unix/Linux
CQ Web Server
  • 提供 CQ Web 访问服务。
  • 如果选择安装 ClearQuest V7.1,此机器需要安装 ClearQuest Web 组件中的 ClearQuest Web Server 和 CM Server for ClearQuest Web。并且推荐与 CC Web Server 合并为一台机器 CC/CQ Web Server,因为它们都需要安装 CM Server。
Windows 或 Unix/Linux
CQ Multiste Server
  • 如果部署成图 2 所示的多站点环境,需要增加此服务器。
  • 安装 CQ Multisite 组件。
  • 与其他站点的 CQ Multisite Server 通信,同步更新数据。
Windows 或 Unix/Linux
CQ DB Server
  • 数据库服务器,用来存储 CQ Master DB 和 User DB。
Windows 或 Unix/Linux
CCRC
  • CCRC 客户端。
Windows 或 Unix/Linux
Client
  • 可以是 ClearCase 或者 ClearQuest 的客户端,也可使用 CCRC 客户端。
Windows 或 Unix/Linux

表 1 列出了图 2、图 3 中各类机器在运行环境中承担的角色描述以及推荐使用的操作系统类型。但有两点值得注意的地方:

  • 服务器上 ClearCase 产品的安装需要使用 V7.0.1 或者更高的版本 V7.1,而 ClearQuest 的安装也必须使用与 ClearCase 相同版本的产品。如果 CQ Web Server 选择安装在 Unix 机器上,那么还需要在一台 Windows 机器(推荐使用 CC/CQ Integration Server)上安装 ClearQuest 及其管理工具,需要使用该机器上的 ClearQuest 维护工具(Maintenance Tool)来创建模式库及用户库,以及 ClearQuest Designer 为 ClearQuest 模式库应用 ClearCase 的软件包,使 ClearQuest 具有和 ClearCase 集成的功能。
  • 如果搭建如图 3 所示多站点的 Base CC/CQ 集成开发环境,ClearCase 和 ClearQuest 都需要搭建成多站点环境,并且 ClearCase 只能与本站点的 ClearQuest 进行集成。

5. 集成环境的配置与管理

5.1 创建中心化管理的目录

配置集成环境的第一步需要在 CC/CQ Integration Server 上创建两个共享目录,一个共享目录(\\ CCCQ_server \cqcc_central_dir)是用于存储用户在进行 Base CC/CQ 集成操作时生成的所有信息文件,该共享目录名将会用于配置文件 config.pl 中的参数 CQCC_CACHE_ROOT,并且 ClearCase 管理员需要配置该共享目录的权限,限制每个用户只能修改本用户目录下文件的权限,而管理员自己可拥有所有权限,以保证集成数据的安全性;另一个共享目录用于集中方式(Central Server)的工作目录(\\CCCQ_server\CQCC_config_dir),存放所有 Base CC/CQ 集成的脚本文件及配置文件,它需要把 <cchome-dir>\lib\CQCC 目录下的所有文件和 <cchome-dir>\bin\cqcc_launch 脚本文件都拷贝到该目录下,而该共享目录名称会在安装 VOB 触发器时用到(<cchome-dir> 是指 ClearCase 的安装目录,例如在 Windows 机器上安装 ClearCase 后,它的默认安装目录为 C:\Program Files\Rational\ClearCase),并且 ClearCase 管理员也需要配置该共享目录的权限,限制每个用户对该目录的写权限,而管理员自己拥有所有权限,以保证配置数据的安全性。

5.2 在 ClearCase VOB 上安装触发器(Triggers)

Base CC/CQ 集成主要是应用了针对 cleartool 工具中的 checkin,checkout 和 uncheckout 操作的触发器,触发器的安装与配置需要在 Windows 端进行,而 CC VOB Server 一般使用 Unix/Linux 机器,所以首先需要使用 Region Synchronizer 工具同步 Unix 与 Windows 机器上的 ClearCase Regions,然后才能在 Windows 端的集成配置工具(ClearQuest Integration Configuration)中看到 Unix 机器上的 VOB。接着在 Windows 机器上,点击“开始 -> 程序 -> IBM Rational -> IBM Rational ClearCase -> Administration ->Integrations->ClearQuest Integration Configuration”。这时出现如下图 4 所示的对话框。在“ClearQuest - ClearCase Integration – Configuration”对话框中,可以看到所有在 CC VOB Server 上的 VOB,选中需要安装集成触发器的 VOB,如图 4 所示对名为“testvob01”的 VOB 安装 Checkout 和 Checkin 的触发器,选择 V2 版本的触发器,并且在 Path 中填写“\\CCCQ_server\CQCC_config_dir\CQCC\config.pl”,同时选中 "Use trigger scripts in Path directory",表明将会采用集中方式(Central Server)并使用“\\CCCQ_server\CQCC_config_dir \CQCC\”目录下的集成配置文件和脚本文件来进行集成操作。

图 4. 集成配置图
图 4. 集成配置图

5.3 配置核心文件 config.pl

核心文件 config.pl 的配置工作在 Base CC/CQ 集成的操作中起到非常重要的作用。而为了能够实现在 CCRC 上 Base CC/CQ 集成的功能,在该文件中添加了一些新的参数,同时还需要设置一些其他重要的参数,下面将逐个进行说明。

5.3.1 指定 CQ Web Server

&SetConfigParm("CQCC_SERVER", "<server>");

本文采用 CQ Web 集成接口进行集成,因此需要在该参数中指明 CQ Web Server 的主机名或者 IP 地址,并且使用的默认端口是 80,如果 CQ Web Server 使用其他端口,需要在该参数指出,示例如下:

&SetConfigParm("CQCC_SERVER", "hostname:8080");

5.3.2 指定采用的集成方式

&SetConfigParm("CQCC_CQWEB_ONLY", "TRUE");

设置该参数为 TRUE 表明选择 CQ Web 集成接口作为集成方式。

5.3.3 指定一个数据库集合(DBSET)

&SetConfigParm("CQCC_WEB_DATABASE_SET", "<db_set_name>");

本文采用 CQ Web 集成接口进行集成,所以需要设置 CQCC_WEB_DATABASE_SET 参数来指定一个模式(schema)的存储空间。

5.3.4 指定中心化缓存管理的目录

&SetConfigParm("CQCC_CACHE_ROOT", "<central-cache-dir-root>");

该参数是为 CCRC 上 Base CC/CQ 集成的功能而特别增加的,因此,必须在进行集成操作前对该项进行设置,并且该根目录需要提前创建好,该要点可参考 5.1 节。

如果为该参数设置的中心化缓存管理的目录在 Windows 机器上,那么需要遵循 UNC 格式,示例如下:

\\\\WindowsHost\\cqcc_server_dir

如果为该参数设置的中心化缓存管理的目录在 Unix/Linux 机器上,那么就需要使用如下形式:

/net/unixHost/var/tmp/cqcc_server_dir

而且该参数可以灵活配置来解决跨平台的问题,示例如下:

use Config; # At top of config file with other “use” commands
...
&SetConfigParm("CQCC_CACHE_ROOT", 
 ($Config::Config{osname} eq “MSWin32") ?
 “\\\\WindowsHost\\cqcc_server_dir” :
 “/net/unixHost/var/tmp/cqcc_server_dir");

如果核心配置文件 config.pl 即要用于本地的 ClearCase 客户端集成又要用于 CCRC 上的集成,而对于本地客户端的集成又不需要使用中心化的配置管理,可以使用如下方法进行设置:

if (defined $ENV{ATRIA_WEB_CLEARPROMPT}) {
 &SetConfigParm("CQCC_CACHE_ROOT", "central-directory-path");
}

在设置了该参数以后,开发人员进行 Base CC/CQ 集成操作时,产生的缓存信息文件和其他的集成信息文件,都会存放在该中心化缓存目录 <central-cache-dir-root> 中,而不是存放在开发人员本地的目录中,设置它的好处就在于将所有的集成信息放在了一起,方便 ClearCase 管理员管理的同时又提高了管理的效率和增强了产品的可靠性。该目录结构在 Windows 机器上显示如下:

central-directory-path\username\hostname\session.id\.name.seriesID

5.3.5 中心化缓存管理的高级参数配置

&SetConfigParm("CQCC_CACHE_MGMT", "<cache_mgmt_options>");

进行 Base CC/CQ 集成操作时,ClearCase 会对缓存管理目录 <central-cache-dir-root> 下的旧缓存文件进行定时清理,而这一行为可以通过该参数的设置来进行调整,表 2 中列出了可以进行调整的参数项,但该参数并不是必须要设置的。

表 2. 缓存管理的高级参数表
 
名称 描述
CM_CLEAN_HRS 每隔几小时触发器去清理一次不用的缓存文件和会话文件,其缺省值为 4。
CM_CQSESSION_STALE_MINS 多少分钟后 ClearQuest Web 会话文件可以认为是旧文件并适当删除,其缺省值是 30。
CM_LOCK_BREAK_MINS 多少分钟后竞争的进程可以打断操作锁以避免死锁情况的发生,其缺省值是 5。
CM_LOCK_WARNING_MINS 让用户知道正在等待竞争锁之前需要等待的分钟数。缺省值是 1,如果该参数的值比 CM_LOCK_BREAK_MINS 大,也不会通知用户。
CM_STALE_HRS 几小时后缓存文件可以被认为是旧文件并可以适当删除,其缺省值是 8。
CM_WIN_UNIX 如果需要通过 Windows 客户端访问存放在 Unix/Linux 机器上的中心化缓存管理目录,需要设置 CM_WIN_UNIX 为 TRUE,其缺省值为 FALSE。

一个具体的实例如下:

&SetConfigParm("CQCC_CACHE_MGMT", "CM_CLEAN_HRS=2,CM_STALE_HRS=4");

该语句指明了在中心化缓存目录中的缓存文件在 4 小时可以认为是旧文件,并且每隔两小时触发器去清理一次不用的缓存文件和会话文件。

5.3.6 多站点集成环境的配置

  1. 在图 3 所示的多站点 Base CC/CQ 集成环境中,除了要配置上面提到的参数外,还需要增加另外两项参数的配置。
  2. 5.3.6.1 启用多站点环境参数
 &SetConfigParm("CQCC_MULTISITE", "TRUE");

要实现多站点环境下 Base CC/CQ 的集成必须配置此参数为 TRUE。

  1. 5.3.6.2 指定站点名称
 &SetConfigParm("CQCC_REPLICA_NAME", "<replica_name>");

该参数需要设置站点的名称,示例如下:

&SetConfigParm("CQCC_REPLICA_NAME", "SITEA");

对于多站点的环境还有如下两项参数需要注意:

&SetConfigParm("CQCC_DATABASE_SET", "<db_set_name>");
&SetConfigParm("CQCC_WEB_DATABASE_SET", "<db_set_name>");

如果在单站点集成环境的基础上部署多站点的集成环境,并且继续使用旧的数据库集合(DBSET),那么该数据库集合的名称在部署了多站点的环境后会改变,则以上两项参数项也需要相应的改变。

5.4 缓存管理器命令

启用中心化缓存管理时,缓存管理器(cache manager)可以手动的或自动的监控未被处理的与 ClearQuest 的关联项,和清理缓存管理目录中旧的文件和目录。缓存管理器程序在 Windows 上的位置是 <cchome-dir>\config\scheduler\tasks\cqcc_cache_mgr.bat,在 UNIX /Linux 上的位置是 <cchome-dir>/config/scheduler/tasks/cqcc_cache_mgr.pl

5.4.1 缓存管理器命令的使用方法

以下是一个缓存管理器命令的使用实例:

cqcc_cache_mgr -vob \vob01 –cqlogin cqadmin:password -cqbatch_post_mins 40 –nolog 

该命令中使用到的命令参数说明如下:

表 3. 缓存管理命令参数表
 
参数名称 描述
-vob 该参数告诉缓存管理器去处理的 VOB 名称。
-cqlogin name:encrypted_password 该参数提供了连接 ClearQuest 时需要用到的用户名和加密密码。
-cqbatch_post_mins 该参数告诉缓存管理器去处理那些寿命长于多少分钟的未被处理的 ClearQuest 关联项;其缺省值是 60 分钟,最小值是 3 分钟,最大值是 6000 分钟。
-nolog 该参数指定了命令的输出信息输出到命令行而不写入日志文件。

用户可以使用命令“cqcc_cache_mgr -help”来查看更多命令参数的具体使用方法。除了可以用命令行来使用缓存管理器管理中心化缓存管理的目录文件外,也可以使用 ClearCase scheduler 来周期性地执行缓存管理器的命令。

5.4.2 查看缓存管理器的日志文件

5.4.2.1 查看缓存管理器日志文件的方法

1. 使用 log browser 查看

点击“开始 -> 程序 -> IBM Rational -> IBM Rational ClearCase -> Administration -> Log Browser”,缓存管理器的日志文件在 Server Logs 下面可以找到。

2. 使用命令行查看

cleartool getlog cqcc_cache_mgr

5.4.2.2 缓存管理器日志文件(cqcc_cache_mgr.log)的存放位置

Windows: cchome-dir\var\log\
Unix/Linux: /var/adm/rational/clearcase/log/

6. 一个典型的操作范例

下面以 Windows 机器上安装的 CCRC 进行 Base CC/CQ 集成的实例进行介绍。

开发人员在 CCRC 上进行 Base CC/CQ 集成操作,首先需要创建一个 Base View,接着还需要指明连接哪一个站点的 ClearCase 服务器,并装载(load)安装了集成触发器的 VOB,如图 5 所示,然后在该 VOB 中选中文件 file1.txt,点击右键,选择 checkout 操作。如果是首次进行操作,需要输入连接 ClearQuest 的用户名及密码。

图 5. 输入用户名
图 5. 输入用户名
图 6. 输入用户密码
图 6. 输入用户密码

连接 ClearQuest 成功后,就会出现 ClearQuest 关联菜单窗口,用户可以根据自己的需要进行选择,通常情况下选择“Query – Select from ClearQuest query…”进行条件查询,点击 OK,出现查询结果窗口。

图 7. 关联菜单窗口
图 7. 关联菜单窗口

在图 8 的查询结果窗口选中需要关联的 ClearQuest 的一条记录,接着点击 OK。

图 8. 查询结果窗口
图 8. 查询结果窗口

然后又回到 ClearQuest 关联菜单窗口,如图 9 所示,点击 OK 即可完成集成操作。

图 9. 确认关联结果
图 9. 确认关联结果

最后使用 ClearQuest 客户端查看关联结果。

图 10. ClearQuest 端的关联结果
图 10. ClearQuest 端的关联结果

从图 10 可以看出,开发人员在 CCRC 的环境下进行 Base CC/CQ 集成操作后,ClearQuest 端显示的关联结果文件名称,与使用 ClearCase 客户端进行集成操作后的结果不同,使用 ClearCase 客户端集成的文件路径较长并包括了 View 的信息,而使用 CCRC 进行集成时不包括文件路径的 View 信息,这是因为使用 CCRC 创建的 View 路径信息较长,如果在 ClearQuest 端显示了所有的信息,用户在 ClearQuest 中查看集成结果时,可能需要拖动滚动条才能看清楚文件的版本信息;并且在 Windows 上的文件和 Unix 上的显示的方式也不同,以一个文件路径为“long-view-name\myvob\dir1\file.1”的文件为例,在 ClearQuest 端关联结果如下:

Windows: “M:\ccweb\myvob\dir1\file.1”
Unix: “/myvob/dir1/file.1”

7. 总结

本文主要介绍了如何利用中心化缓存管理的特性、使用 CCRC,并采用 CQ Web 集成接口和 Central Server(集中方式)的配置方式,构建跨广域网的 Base ClearCase 与 ClearQuest 的集成开发平台。该 Base CC/CQ 集成平台的解决方案能够方便 ClearCase 管理员的统一管理并提高了产品的安全性和可维护性。希望通过本文,能够给企业构建 ClearCase/ClearQuest 的集成开发平台,提供一定的参考。

参考资料

学习 获得产品和技术
  • 访问 Rational ClearCase 产品专题,了解最新的 IBM Rational ClearCase 产品文档和产品信息,可以查阅产品概览、产品手册、产品技术支持、试用版下载,以及相关文章、教程、多媒体课堂和产品演示等信息。
  • 立即试用 IBM Rational ClearCase 试用版
  • 下载更多免费的 IBM Rational 试用版软件,了解 IBM Rational 软件的最新特性。
  • 获取更多 IBM 试用版软件,并熟练掌握来自 DB2®、Lotus®、Tivoli®,以及 WebSphere® 的开发工具和中间件产品,用这些试用版软件开发您的下一个项目。这些试用版软件可以免费直接从 developerWorks 下载。
讨论

火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织