Rational Team Concert催生了许多博客,论坛和其他文档,但是对于z / OS开发人员从当前源代码管理系统迁移到Rational Team Concert的支持不足。
本文介绍了Rational Team Concert的存储库体系结构和用于源代码管理和协作开发的概念框架。 它包括用于从当前源代码管理解决方案迁移到z / OS上的Rational Team Concert的逐步指南,以及有助于确保成功进行源代码迁移的计划指南。
作为z / OS开发人员,您可能想知道迁移的麻烦是否值得,特别是如果您当前的系统运行良好的话。 如果您需要做的只是在功能代码存储库中管理源代码,那么Rational Team Concert可能会比您需要的平台更多。 如果您打算对整个开发过程进行大修和现代化,那么可能需要比Rational Team Concert单独提供的更多功能。
Rational Team Concert不仅是源代码管理解决方案; 它还管理流程,计划和工作项,如图1所示。
查看全尺寸图片
Rational Team Concert在同一存储库中同时管理分布式和z / OS源代码的能力使整体上集成的源代码管理解决方案更加全面。 迁移也是审查您的开发过程的机会,尤其是对于有效的团队协作而言。 如果您发现自己在分散的团队中管理复杂的项目,则可能还希望集成“协作生命周期管理”组件。
Rational Team Concert比大多数源代码管理系统更强大,并且也更复杂。 大多数大型机源存储库使用数据集和成员来存储代码,而Rational Team Concert将代码存储在数据库存储库中的项目,文件夹和文件中。 为了在z / OS中构建代码,将这些工件复制到z / OS数据集中。
表1介绍了Rational Team Concert中使用的一些术语。
术语 | 描述 |
---|---|
项目 | 一个Eclipse项目,其中包含组织为文件夹和文件的相关工件。 |
沙盒 | 作为文件夹存储在硬盘上的工作空间(即本地Eclipse工作空间)。 它包含您当前正在处理的项目。 对于Rational Team Concert ISPF客户端,沙箱是具有相同HLQ.MLQ的数据集的集合。 |
流 | Rational Team Concert是基于流的存储库,其中不同的流将保存各种代码分支。 例如,您可以使用不同的流来表示每个代码版本。 |
仓库工作区 | 这是存储库中用户的私有区域,他们可以从其沙箱中检入代码。 它与特定的流一起流动,这意味着代码从工作空间传递到该流。 可以将流中的代码接受到存储库工作区,该工作区还会更新沙箱中已加载的代码。 |
零件 | 组件是相关项目的集合。 组件可用于控制访问权限并促进共享和重用。 流由许多组件组成。 每个组件可以在多个流之间共享,例如,产品的两个不同版本可能包含相同的组件。 |
变更集 | 一个工作单元,包含在某个时间点交付的相关代码更改的集合。 |
分享 | 共享将新的工件从沙盒推送到存储库工作空间。 |
加载 | 负载将选定的工件从存储库工作区拉到沙箱(同样是Eclipse工作区或MVS数据集)。 |
接受 | 将以前由其他开发人员交付给流的新变更集拉到存储库工作区。 如果更改集与沙箱中加载的项目相关,则沙箱将自动更新。 |
报到 | 将本地更改从沙箱中推送到存储库工作区中,以创建或修改更改集。 |
交货 | 将已签入的更改集从存储库工作区推送到流。 |
图2显示了如何针对Rational Team Concert对象执行表1中描述的操作。
查看全尺寸图片
IBM Knowledge Center提供了有关安装Rational Team Concert的指示信息。 但是,如果您对要安装的组件一无所知,那么浏览安装会造成混乱。 在指导您完成基本过程时,我们还将尝试使关键组件神秘化,并帮助您确定所需的组件。
Rational Team Concert只是连接到数据库的应用程序服务器中运行的众多应用程序之一。 例如,Jazz Team Server可以使用DB2 for z / OS作为数据库在z / OS的Liberty上运行。 Rational Team Concert是协作生命周期管理解决方案 (CLM)套件的一部分,并且它还提供了各种客户端和构建代理,如图3所示。
查看全尺寸图片
迁移到Rational Team Concert的第一步是安装Jazz Team Server。 现在,首先打开《 Rational Collaborative Lifecycle Management 交互式安装指南》中的安装说明。
在开始安装之前,需要确定要在哪个平台上安装服务器,以及将存放数据的存储库放在何处。 本指南中的一节讨论了各种拓扑。 为了便于讨论,我们建议在z / Linux和DB2 for z / OS上安装Jazz Team Server。
以该拓扑为例,我们可以使用《交互式安装指南》逐步完成安装。 选择表2中指定的选项,将为您提供有关在Linux上的z系统上安装服务器的说明,该系统以WebSphere Liberty Server的身份运行,并带有DB2 for z / OS存储库数据库。
选项 | 选拔 |
---|---|
选择您的应用程序服务器的操作系统 | Linux for System z |
选择设置方法 | 自定义设置 |
选择一个或多个应用程序进行安装 | Jazz Team Server更改和配置管理 |
可选应用程序(单独的许可证) | 不要选择 |
配套应用 | 不要选择 |
爵士报告服务 | 不要选择 |
选择您的数据库服务器 | IBM DB2 z / OS版 |
选择您的用户注册表类型 | LDAP |
您要配置数据仓库吗? | 没有 |
下一步是在z / OS上安装Rational Team Concert组件。 您可以从IBM知识中心获得基本的安装说明 。 此页面上的安装清单将指导您完成组件安装。 您还可以使用基于ISPF的配置实用程序 ,该实用程序可让您在一个位置输入所有变量,然后生成要安装的组件的工作流程。 使用工作流程有助于确保您完成每个安装步骤。
首次打开安装时,安装的FMID数量可能会让您有点不知所措。 如果要在非z / OS平台上安装Jazz Team Server,则实际上只需要安装其中的少数几个。 这是Rational Team Concert v6.0.2的FMID。
FMID | 名称 | 描述 |
---|---|---|
HRCC602 | 共同组成 | SMP / E职位; 配置实用程序; DB2卸载/重新加载作业; 其他常见工作和样品 |
HRBT602 | 构建工具包 | 构建工具包; 导入 ISPF客户 |
HRBA602 | 建立代理 | Rational Build Agent |
HRDV602 | 作业监视器 | RDz作业监视器(可选) |
接下来,您可能想知道需要哪些组件。 如果要运行z / OS构建(包括编译,汇编,链接编辑等),则将需要安装上述所有FMID,但作业监视器除外。 如果您已经安装了RDz,那么Rational Team Concert将能够使用您当前的Job Monitor。 表4描述了表3中FMID下安装的每个组件。
零件 | 描述 |
---|---|
配置实用程序 | 基于ISPF的实用程序,可帮助进行配置。 包含一个IVP以协助解决安装问题。 |
生成工具包 | HFS中的一组目录,其中包含Rational Team Concert驱动编译和构建活动所需的jar文件。 |
导入 | 协助将代码从分区数据集(PDS)迁移到Rational Team Concert存储库的工具。 |
ISPF客户 | 基于ISPF的对话框,用于执行源代码管理操作,例如编辑,签入,交付和构建基于z / OS的构件。 |
Rational Build Agent | 在z / OS上运行以与Rational Team Concert Server提供通信的进程,以便可以将代码转移到z / OS上,并且进程可以在此源上运行。 |
Rational Team Concert可以直接执行许多进程,但是某些过程需要从REXX可执行文件执行。 为此,您需要配置ISPF网关 。 网关可以将TSO / ISPF执行程序作为构建过程执行。 尽管ISPF编辑器和对话管理器是安装的标准部分,但您可能希望仅为Rational Team Concert配置ISPF网关。 请参阅IBM知识中心以获取配置说明 。
安装所有必需的FMID之后,您可以配置必需的组件。 最简单的方法是使用基于ISPF的配置实用程序 。 安装该实用程序之后,可以使用文档页面上的指示信息来运行该实用程序并为z / OS配置所选的Rational Team Concert组件。
现在,您应该已经安装并配置了Jazz Team Server以及使用Rational Team Concert管理和构建源代码所需的所有基于z / OS的组件。 接下来,我们将研究用于管理Rational Team Concert中的源代码的各种工具。
Rational Team Concert中的大型机源存储在称为zProject的特定类型的Eclipse项目中。 源代码通常存储在Rational Team Concert中的UTF-8中。 在将其加载到大型机进行构建时或通过使用ISPF客户端将其转换为EBCDIC。
查看全尺寸图片
zProjects映射到z / OS中的数据集和成员。 zFolders通过使用数据集定义映射到数据集。 zFiles映射到那些数据集中的成员。 另外,zFiles与语言定义相关联,该语言定义告诉Rational Team Concert如何构建该成员。
Rational Team Concert不使用JCL(作业控制语言)来控制构建。 相反,构建是由基于Ant的工具驱动的,从而确保可以在z / OS和分布式平台上使用一组通用的构建工具。 但是,您不必熟悉Ant即可使用Rational Team Concert进行源代码管理。 Rational Team Concert提供了向导和对话框,可用于配置系统定义和构建构件。 表5描述了您将在Rational Team Concert中使用的不同类型的系统定义。
定义 | 描述 |
---|---|
数据集定义 | 描述数据集,并允许在存储库中进行单个定义。 这可以是输入数据集,输出数据集,现有数据集或临时数据集。 在构建期间,如果数据集不存在,那么Rational Team Concert将使用该定义来创建它。 这类似于JCL中的DD。 |
语言定义 | 与零件相关联以构建零件的过程。 例如,COBOL编译过程中可能包含两个步骤:一个编译步骤和一个链接编辑步骤。 语言定义类似于具有一个或多个步骤的JCL过程。 |
译者 | 构建过程中的每个步骤(例如,编译步骤)都称为翻译器。 将翻译器视为JCL过程中的单个步骤。 |
除了系统定义之外,您还将使用向导来创建定义构建范围和位置的定义。 表6描述了两种不同类型的构建工件。
定义 | 描述 |
---|---|
构建定义 | 向Rational Team Concert定义流中的哪些组件将在构建范围内,将要处理哪些语言定义,以及在高级限定符中加载源代码并在其中生成构建输出。 您也可以使用此定义来设置特定于构建的属性。 |
构建引擎 | 服务器上的定义,该定义指向运行Rational Build Agent的z / OS主机和端口。 |
您可以使用Rational Team Concert的系统定义对话框来创建数据集定义,语言定义和翻译器,如图5所示。
查看全尺寸图片
首次设置系统定义时,最好使用系统定义XML。 使用XML(而不是对话框)进行操作,使您可以修改和重新加载定义,直到定义完成。 XML中的定义也可以轻松地加载到另一个系统上。
请参阅Rational Team Concert企业扩展构建管理研讨会,以获取系统定义工具包和有关在XML文件中编辑系统定义的说明。 该研讨会深入探讨了构建管理的许多方面,因此我们建议您花一些时间来完成它。 请注意,您需要登录Jazz.net才能访问研讨会。
您已经掌握了一切,并且对如何在Rational Team Concert中使用源代码有基本的了解。 剩下要做的就是迁移代码。 从旧的大型机源代码管理系统到Rational Team Concert的成功迁移涉及多个计划阶段。 我们将概述每个阶段的活动。
流可以被认为是产品的特定版本或产品的一部分。 为了使依赖关系构建成功,流需要包含编译或构建资源所需的所有源代码,例如,程序所需的所有副本。 在另一方面,甲流并不需要包含运行时库如CICS习字,其构建系统会发现构建机器上。 定义包含所有内容的大型流很诱人,但不是一个好习惯。 最好定义较小的流,范围仅限于应用程序或一组相关应用程序。
基于组件的设计对每种语言均有效。 将相关的工件或项目放在一起,以便使组件从多种角度有意义:代码重用,构建操作和团队共享。 考虑由许多不同的应用程序使用的公共接口的示例:如果您使用的范围仅限于一组应用程序的流,则流可能需要包含另一个流中包含的应用程序的公共接口。 。 优良作法是将公共接口隔离在一个专用组件中,然后多个方可以访问和使用。 在此设置中,您还可以定义和实施共享和采用新版本公共接口的方式。
您将需要定义从开发到生产交付的流程。 您可以在一个流中完成所有工作,随着时间的流逝,这些流将逐渐成熟并准备好宣布为GA(这是我们在Rational Team Concert中开发的方式),或者您可以定义流的层次结构(例如Prod,QA,Test,开发人员),并建立通过层次结构提升代码的标准。
尽管Rational Team Concert的升级功能非常适合层次结构,但它支持这两种策略。 也可以升级仅源代码或源代码和二进制文件。 对于二进制文件,将在目标级别更新升级零件的构建元数据。
Rational Team Concert的系统定义允许您仅在一个地方描述构建步骤,并将其应用于整个系统。 您需要定义的第一个系统定义是语言定义。 在Rational Team Concert中,语言定义将与每个可构建部分相关联。
清点遗留系统时,可能会发现比Rational Team Concert要支持的程序类型更多的组合。 重要的是将这些组合减少为与功能相关的组合。 转换器提供了一种称为转换器变量的机制,可以在程序级别进行设置,并提供一种管理异常的方法(例如,当给定的程序适合给定的语言定义但需要附加的构建选项时)。 在单独的项目区域中定义系统定义也是个好主意,然后,该定义对RTC存储库中的其他项目区域将是可见的。 如果不同的项目区域共享相似的构建过程,这将很有用,因为它避免了重复。
定义语言定义后,将通过使用程序的代表性子集来反复使它们真正起作用。 通常,这些步骤在测试服务器上发生。 感到舒适之后,您可以导出系统定义,并将其导入生产服务器中,在该服务器中运行更有限的嗅探测试。
定义要导入的基线,以便可以捕获Rational Team Concert SCMS中的历史记录。 这将使您能够存储资源历史记录。 更重要的是,它将使您可以对组件进行基线设置或对流进行快照,以便您可以查看系统的历史视图,并在该级别同步所有资源。 (例如,包含数千个程序的应用程序的发行版23的快照将包含用于构建发行版23的源的版本。)
您应该在旧版源代码管理系统中标识要在Rational Team Concert SCM中迁移的历史内容以及所涉及的基线。 基线之间的所有文件都不必相同。 如果它们相同,则将是Rational Team Concert中两个基线之间共享的文件状态相同。
SCM命令行在zImport on z/OS
包含一个名为zImport on z/OS
的命令。 zImport将映射文件作为输入,这使您可以定义要导入的文件,应将文件放在何处以及与之关联的语言定义。 正确调整映射文件很重要,以便对已设置的组件实施规则。
zImport API接受一个可选参数,该参数是用于初始zImport的存储库工作区。 为了在Rational Team Concert中创建历史记录和基线,您需要从较旧的工件开始,将它们放入一组分区数据集中,然后触发zImport。 然后,将这些成员替换为下一个基准,并使用相同的工作空间触发zImport。 这将在两个基线之间创建具有相应更改集的增量。 进行迭代,直到达到当前版本。
zImport的替代方法是使用ISPF客户端导入完整的分区数据集。 ISPF客户端不在本文讨论范围之内,但Jazz.net上有许多有关ISPF客户端的教程和视频。
如果要处理异常,例如需要特定编译器选项的文件,则需要使用变量设置翻译器。 该变量的值需要由异常中的相应文件提供。 有关转换器变量的更多信息,请参见z / OS文档或developerWorks博客文章“ 使用转换器变量控制条件过程 ”。
构建定义向Rational Team Concert描述了构建什么。 z / OS Dependency构建会从语言定义列表中进行选择,并会从中生成将要运行的构建脚本。 构建定义定义了存储库工作区,该工作区流到包含源代码的团队流。 构建定义包含高级限定符,在该限定符中加载源代码并在其中生成构建输出。 您还可以设置特定于构建的属性。
构建定义指向构建引擎(类型=理性构建代理)。 与z / OS构建有关的构建引擎是服务器上的定义,该定义指向运行Rational Team Concert构建代理的z / OS主机和端口。
运行在z / OS上的构建代理是在Unix系统服务中运行的任务,它等待来自构建引擎的请求。 这是服务器和z / OS之间的双向通信。 通过运行startbfa.sh
启动并由配置实用程序配置的构建代理包含Jazz用户名和密码。 该构建用户必须可以读取存储库工作空间。
将代码迁移到Rational Team Concert之后,您可以使用依赖关系构建或模拟构建来生成资源的构建元数据。 模拟构建允许将来的依赖关系构建仅构建自迁移以来已更改的部分。
本文提供了许多指向文档和视频的链接,这些链接应该可以帮助您开始使用Rational Team Concert。 最好的开始是安装和配置推荐的基于z / OS的FMID,然后通过Rational Team Concert企业扩展构建管理工作室进行工作 。 该研讨会将引导您完成在桌面上设置测试服务器并将其配置为与z / OS系统交互的所有方面。
翻译自: https://www.ibm.com/developerworks/library/d-migrating-rational-team-concert-zos-trs/index.html