将 Rational Focal Point 与协作式生命周期管理应用程序相集成

将 Focal Point 连接到 Rational Team Concert、Rational Requirements Composer 和 Rational Quality Manager 的 4 种方式

Kathryn Fryer 介绍 4 种可用于将 IBM® Rational® Focal Point™ 与 IBM® Rational Team Concert™、Rational® Requirements Composer 和 Rational 协作式生命周期管理 (CLM) 解决方案中的其他应用程序相集成的不同技术。文中还提供了配置集成的步骤和演示它们的示例。

Kathryn Fryer, 解决方案架构师,Unleash the Labs, IBM

http://www.ibm.com/developerworks/rational/library/content/Authors/A-F/fryer_k.jpgKathryn Fryer 于 1990 年加入 IBM Canada。她以前担任的职位包括多个品牌中的用户体验、用户援助、开发和管理职位,这些品牌包括 DB2、WebSphere 和 Rational。



2013 年 11 月 18 日

本文介绍各种可用于在 IBM® Rational® Focal Point™ 和 Rational 协作式生命周期管理 (CLM) 解决方案的存储库中的各个工件之间创建链接和交换数据的技术,包括集成到 CLM 中的 IBM Rational Team Concert™ 和 IBM® Rational® Requirements Composer 应用程序的存储库。

每种技术都有一节用于概述如何使用该方法,然后提供设置它或配置它的一般说明。在某些情况下,还提供了来自 Rational Governance of Application Development Outsourcing 解决方案的示例。

先决条件

本文假设您已完成将服务器设置为好友、指定功能用户、指定要使用的可用对象区域,以及定义可链接到 CLM 工件的 Focal Point 模块的预览视图的基本集成工作。这些主题不会在这里介绍。

如果您还不熟悉 REST API 和导航 XML 中的资源表示,强烈建议您先掌握这些技能。要使用数据交换功能,需要理解 RESTful 接口和它们的工作原理。理解特定的 CLM REST 接口和结构也很有帮助。在 jazz.net、open-services.net 以及甚至 Internet 上的 REST 教程中,可以查找相关资源。下面给出一些建议:

备注:
Focal Point 使用 Rational Requirements Composer 的可报告 REST API 来访问后者的资源,但使用开源生命周期协作 (OSLC) REST 服务访问 Rational Team Concert 资源,而不是使用该软件的可报告的 REST API。截至 2013 年 4 月发表本文的时候,Focal Point 与 Rational Quality Manager 之间没有明确的集成。


集成技术概述

有 4 种主要的集成技术:

  • 使用 Integration Link 属性进行简单的工件创建和链接
  • XPathValueFetcher 业务规则
  • OSLC 视图命令
  • REST 视图命令

表 1 总结了这 4 种技术,后面的各节提供了更多的细节。

表 1. 集成技术
技术功能说明
Integration Link使用 “委派的 UI” 创建或删除 CLM 工件的链接。使用丰富的悬停功能来查看数据。最简单的技术,是其他集成技术的基础。
XPathValueFetcher 从 CLM 工件中的属性抓取文本或整数值,以更新 Focal Point 中的单个属性。数据可供 Focal Point 用于过滤。以后台批处理进程的形式进行操作。
OSLC 视图命令一组有限的、不可扩展的功能,对 Focal Point 容器元素运行,以创建、删除、还原和验证所有包含的元素的链接。硬编码在 Focal Point 中,特定于 Rational Requirements Composer 和 Rational Team Concert。从下拉菜单或图标中调用。
REST 视图命令对任何通过 REST API 公开数据的工具执行 REST 命令。在 Focal Point 和 CLM 工件之间朝一个方向交换属性值。非常灵活、定义最复杂。从下拉菜单中调用。

Integration Link 属性

其他类型的集成技术都需要 Integration Link 属性。它定义了允许使用的 Rational Team Concert 和 Rational Requirements Composer 项目区域和后退链接类型。编辑元素的该属性值时,通过使用 Rational Requirements Composer 或 Rational Team Concert 所提供的委派 UI,您可以创建一个元素或链接到目标 CLM 应用程序中一个现有元素。

创建工件时,您可以填充标题和(可选地)来自 Focal Point 元素的描述。Rational Team Concert 还提供了下拉菜单来手动设置其他属性值,比如 Planned-for 或 Filed-against。这种集成机制不允许任何进一步的数据交换。

将 Focal Point 元素与新的或现有的 CLM 工件关联后,Integration Link 属性然后持有 CLM 工件的 URL 值。将鼠标光标悬停在链接上会显示工件的富悬浮(Rich hover)信息窗口。也可从任一端(Focal Point 或 CLM)删除链接。

XPathValueFetcher

可以使用 XPathValueFetcher 业务规则从 Rational Requirements Composer 或 Rational Team Concert 提取特定的值来填充或更新 Focal Point 属性值。因为规则会自动运行,所以 Focal Point 属性会自动更新,无需任何用户操作 — 假设您已定义了一个 CLM 功能用户,初步集成设置中已经包含该用户的必要身份验证信息。您必须在 CLM 端定义此功能用户,业务规则才能运行。您可以定义运行业务规则的计划频率。(也可以使用 OSLC 视图命令强制 XPathValueFetcher 规则运行,有关的更多信息将会在下一节中介绍。)

Integration Link 属性提供了要访问的特定工件的上下文。业务规则指定了要为该工件检索的属性。您需要指定希望在 Rational Team Concert 或 Rational Requirements Composer 中访问的属性的 XPath 值。通常,会使用此规则仅检索单个值,因为它仅更新 Focal Point 中的单个属性值。但您可检索多个值来填充一个矩阵或文本字段。

备注:
XPathValueFetcher 使用了 OSLC 1.0 语法,而不是 OSLC 2.0。

OSLC 视图命令

OSLC 视图命令是在 Focal Point 代码中定义的并包含在该代码中。它们仅适用于其他支持 OSLC CM(变更管理)和 RM(需求管理)规范的工具。(OSLC 支持是 REST API 支持之上的另一层支持。)它们拥有有限的预定义功能,这些功能不能扩展。因为 OSLC 与链接的数据密切相关,并且使用委托的 UI 来启用链接资源,所以这些命令主要用于管理链接。

OSLC 视图命令扩展了基本的 Integration Link 支持,所以您可以同时在多个元素上针对具有要创建或链接的元素的链接的容器(例如一个包含 Business Needs 链接的 Project)进行操作。当然,这些链接的元素必须已经定义了 Integration Link 属性。

因为 OSLC 视图命令与一个视图有关联,所以您必须位于该视图中,并且位于树表示模式下。运行该命令的图标显示在元素的标题栏中,位于 OSLC 命令的下拉菜单旁边。图 1 中的屏幕截图显示了元素标题栏中创建工件并关联链接的图标。

图 1. OSLC 命令图标
命令下拉菜单旁边的图标

如果将鼠标光标悬停在该图标上(如图所示),则会显示文本来表明该图标将运行哪个命令。单击该图标就可以调用此命令。

以下是可用的 OSLC 视图命令:

创建工件并关联链接
为每个链接的 Focal Point 元素创建 CLM 工件并设置 Integration Link 属性值。
 
删除关联的链接
同时从 Focal Point 和 CLM 工件删除链接。
 
还原最后从 Jazz Server 删除的链接
重置已经从 Focal Point 和 CLM 端都删除的以前的链接。
 
验证集成链接
检查 Focal Point 和 CLM 之间任何被破坏的或不一致的链接。从结果列表,您也可选择还原或删除已破坏的链接。
 
向 Jazz Team Server 创建项目
使用来自 Focal Point 项目的链接和业务需求元素,创建一个新的 Rational Team Concert 项目区域、发布计划和项目项。这是最初的 Focal Point-CLM 集成实现。它总是创建一个新 Rational Team Concert 项目区域,该区域与一些使用模型不一致,后续版本的项目是在同一个项目区域中创建的。

运行此命令在 Rational Team Concert 中创建项目后,针对该项目及其业务需求的 OSLC 命令图标将自动更改为 Synchronize Data 图标。以这种方式检索的数据包括 Plan and Actual Start and End Dates、Planned Effort and Duration、Actual Duration、Actual Work 和 Percent Complete。
 
将数据与 Jazz Team Server 同步
运行链接的元素中定义的所有已配置的 XPathValueFetcher 业务规则。
 

您不能进一步扩展或修改 OSLC 视图命令。

OSLC 视图命令必须手动运行,所以用户必须单击该图标来执行命令。它不能安排为自动运行。

REST 视图命令

REST 视图命令是最灵活、最复杂的集成技术。基本而言,您可以使用 REST 命令执行的任何操作(获取、放置、同步、删除属性和元素),都可以使用 REST 视图命令来完成。您可以将 Focal Point 设置为其他通过 REST 接口公开其数据的工具的 REST 客户端,在本例中,这些包括 Rational Requirements Composer 和 Rational Team Concert,但您也可以与其他 REST 提供程序相集成。

从一个资源或一组资源的 URL 路径开始(通常为 Integration Link 值,但不总是这样),您可以浏览该资源的 XML 表示,以确定要交换的属性和值,以及它们的表示形式。可提供 Focal Point 的一个 XML 模板来查找和识别信息,然后指定哪些 Focal Point 属性与 CLM 中的属性相对应。

可使用此技术将属性值从 Focal Point 推送到 CLM 工件,根据 CLM 检索值来更新 Focal Point 属性,或者在两个工具中的工件之间对值进行同步。REST 视图命令与特定的视图相关联(从名称即可看出)。请注意,要更新的属性必须可在该视图中编辑,该命令才能完成更新。视图命令引用的属性必须在定义该命令时可见,并且它们应保持可见。(我们能够在定义命令后隐藏引用的属性;但是,未来的其他验证可能要求这些属性保持可见。)要提高性能,可为该命令定义查询参数来限制 REST 命令中包含的数据量。

像 OSLC 视图命令一样,REST 视图命令必须手动运行,这意味着用户必须从下拉菜单中选择该命令才能执行它。另外,不能将该命令安排为自动运行。

一个警告:不同的工具可能具有不同的数据表示。例如,Rational Team Concert 以毫秒为单位来存储时间值,而 Focal Point 不是。Rational Team Concert 在内部表示 Priority 值的方式与您在 UI 中看到的和从 Focal Point 看到的不同。目前还没有映射功能,所以我们使用了一些隐藏属性来处理数据转换。我们将介绍我们是如何解决这些具体示例的;您可能会发现其他需要解决的示例。


实现 4 种备用技术

本节将介绍如何配置每种集成技术并提供一些示例。在所有情况下,我们都假设 Focal Point 和 CLM 服务器已配置为 “好友(friends)”,且定义了一个功能用户。

定义和使用 Integration Link 属性

如前面所述,Integration Link 属性支持在 Rational Requirements Composer 或 Rational Team Concert 中创建一个工件并建立双向链接,或者与一个现有工件建立这些链接。Rational Requirements Composer 工件包含需求集合;Rational Team Concert 工件包含在项目区域流程规范中定义任何类型的工作项。也可建立与现有 Rational Team Concert 计划的链接,但具体行为不同。该计划必须已存在,而且没有设置从 Rational Team Concert 到 Focal Point 的后退链接。

创建工件链接后,您可以在以后将它用于其他集成技术。

工作区管理员负责配置 Integration Link 属性,但通常由最终用户创建或链接到 CLM 存储库中的工件。

定义或配置 Integration Link

  1. 使用具有(工作区)管理员特权的身份登录到 Focal Point。
  2. 选择 Configure > Attributes,然后选择您将在其中添加该属性的模块。
  3. 单击 Add Attribute 并从属性类型列表选择 Integration link
图 2. 属性类型
按字母顺序排列的属性类型列表
  1. 输入常用信息,包括名称、描述和位置。
  2. Allowed Service Providers 字段显示了已配置好的好友列表。展开或选择您希望在其中为此属性创建或链接工件的服务器。
图 3. 定义允许使用的服务提供程序
已配置的服务提供程序:Rational Requirements Composer 和 Rational Team Concert
  1. 一个填出窗口会提示指定要在此服务器上使用哪些服务提供程序(或项目区域),以及哪些成员角色能够使用它。
图 4. 服务提供程序配置
选择项目区域和可访问的成员
  1. 除非按角色限制了使用(从某种程度上讲,将使用视图定义完成此操作),否则选择 Members 文件夹和合适的项目区域,然后单击 Apply Close。最终,当编辑该属性来设置它的值时,系统会提示用户指定您在这里配置的内容中使用哪个服务提供程序。
  2. 指定要在工件上创建的后退链接类型(从工件角度讲,指定的是关系)。Rational Requirements Composer 后退链接类型通常为 “Elaborates Main Requirement…”(这些需求详细描述了 Focal Point 业务需求),Rational Team Concert 后退链接通常为 “Implements associated requirement” 或 “Tracks associated requirement”。您需要指定仅适用于您创建的工件类型的后退链接类型(所以,如果链接到 Rational Team Concert,您无需指定 Rational Requirements Composer 后退链接类型)。
图 5. 后退链接类型
选择要创建的允许使用的后退链接类型
  1. 单击 OK 保存属性。

从一个视图设置 Integration Link

要设置 Integration Link 的值,比如要在 Focal Point 元素与 Rational Team Concert 中的工件之间创建链接,可以打开一个可在其中编辑该属性的视图。

  1. 双击空字段或单击它旁边的 Edit 图标来编辑属性值。
  2. 从下拉菜单(其中填充了您配置的服务提供程序列表)选择想要使用的项目区域
图 6. 设置 Integration Link 属性值
选择要选择的项目区域或创建新项目区域
  1. 要链接到某个现有工件,可单击 Select。要创建一个新工件并链接到它,可单击 Create New。在两种情况下,显示的对话框窗口都来自服务提供程序,比如 Rational Requirements Composer 或 Rational Team Concert。下面给出了完成每个提供程序的创建和选择步骤的详细信息。
  2. 创建或选择工件后,它的名称将显示在仍然打开的属性字段中。
图 7. 设置 Rational Requirements Composer 工件的链接的结果
该属性显示了连接到工件名称的链接
  1. 单击 Save 图标(如上面的图 7 所示)将值保存到该字段中。

在 Rational Requirements Composer 中创建一个新工件

如果选择在 Rational Requirements Composer 中创建一个新工件,则会看到如图 8 所示的对话框窗口。

图 8. 在 Rational Requirements Composer 中创建新工件
设置链接和工件类型、名称、文件夹和标记
  1. Back link 字段设置为您希望创建的可从 Rational Requirements Composer 工件返回到 Focal Point 的链接类型。如果仅定义了一种后退链接类型,那么它已预先设置。否则,它将显示您列表最顶部的选项。
  2. 设置您希望创建的工件的 Type(类型):Requirement 或 Requirement Collection。
  3. NameDescription 字段中填入 Focal Point 元素的名称和描述。如果愿意的话,可以更改这里的值。
  4. Artifact Type 是 Rational Requirements Composer 项目中定义的可用的 Requirement 或 Requirement Collection 类型的列表,具体情况取决于您对 Type 进行的选择。指定您希望创建何种类型的需求或集合。
  5. 类似地,Artifact Format 选项依赖于您选择的 Type。对于需求,您可以从 Rational Requirements Composer 项目区域所定义的不同格式中进行选择。通常,只有一种(或非常少的)集合格式。
  6. 选择性地使用按钮指定您希望在其中创建工件的文件夹(或接受默认值),然后分配所有标记。
  7. 如果 Rational Requirements Composer 项目为工件类型和格式定义了模板,那么您可以选择从 Template 下拉菜单中选择该模板。
  8. 单击 Finish 创建工件并返回到 Focal Point 以保存链接

在 Rational Requirements Composer 中选择一个现有工件

如果链接到现有工件,则会看到图 9 中的对话框窗口。

图 9. 链接到现有的 Rational Requirements Composer 工件
设置链接和工件类型,搜索工件
  1. 与创建步骤中一样,指定要创建的从 Rational Requirements Composer 工件返回到 Focal Point 的后退链接的类型。如果仅在 Integration Link 属性中配置了一种类型,该类型已经被设置。
  2. Type 设置为 RequirementRequirement Collection
  3. 如果知道工件的编号或名称部分,可以在 Search 字段中输入它。也可以浏览右侧的工件,这里默认显示了文件夹分层结构。选择一个文件夹时,可用的工件会显示在左侧的选择区域中。也可以单击 Filter Display by AttributeFilter Display by Tag,基于这些值进行浏览或导航。
  4. 找到正确的工件后,选择它,然后单击 OK 返回到 Focal Point 并保存该链接。

在 Rational Team Concert 中创建新工件

如果选择在 Rational Team Concert 中创建新工件,那么可以看到图 10 中所示的对话框窗口。

图 10. 在 Rational Team Concert 中创建新工件
预先填充摘要和描述
  1. 像 Rational Requirements Composer 一样,Back Link 选项由 Integration Link 属性中的配置来定义。在这里,您可以看到仅配置了一个选项,并且它已被预设。
  2. Type 下拉菜单显示了 Rational Team Concert 流程规范中定义的工作项类型。您可选择创建任何已定义的工作项类型。
  3. SummaryDescription 字段基于 Focal Point 元素的名称和描述来填充。如果愿意的话,您可以修改这些字段。
  4. 显示的其他字段(比如 Owned BySeverity 等)完全基于您选择的工作项类型和 Rational Team Concert 为该类型定义的属性。您可以选择为显示的字段提供值,或者保留它们的默认值,具体情况取决于创建之后要在 Rational Team Concert 中执行的流程。也可以使用 REST 视图命令将值从 Focal Point 推送到 Rational Team Concert 工件,本教程后面将会介绍这方面的内容。
  5. 单击 OK 创建工件并返回到 Focal Point,以保存该链接。

选择 Rational Team Concert 中的现有工件

如果选择链接到现有工件,则会看到图 11 中的窗口。

图 11. 链接到现有的 Rational Team Concert 工件
设置类型和搜索工件
  1. 后退链接类型仍然显示了您配置的选项。
  2. 您可以链接的工件类型稍微不同,但仍由 Rational Team Concert 流程规范定义。您可能注意到,您可以在这里选择一个 Plan(稍后将会给出这种特殊情况的更多信息)。您选择的类型将更改对话框窗口上的其他选项。
  3. 第二个 Type 字段显示了另一个工作项类型列表。这通常是您在 Create 对话框窗口上看到的列表。可以在这里选择具体的工作项类型。
  4. 在要搜索的 Work Item Number 或 Words Contained 字段中输入工作项编号或名称部分,或者选择 Search by Query 单选按钮,以便选择和运行一个查询来查找工作项。匹配的工作项将会显示在下面的方框中。
  5. 选择想要使用的工作项,然后单击 OK 返回到 Focal Point 并保存链接。

您可以选择链接到一个现有计划而不是工作项。它可能对将一个 Focal Point 项目元素链接到 Rational Team Concert 中的发布计划(将用于交付该项目)非常有用。稍后,您可使用此链接,使用 REST 视图命令从 Rational Team Concert 获取进度数据(稍后也会给出更多信息)。但是,不能在 Rational Focal Point 中使用 Integration Link 创建计划,而且 Rational Team Concert 计划中没有创建后退链接来引用 Focal Point 元素。

定义和使用 XPathValueFetcher 业务规则

与其他业务规则一样,工作区管理员将 XPathValueFetcher 业务规则定义为一个特定属性的值,可能有也可能没有时间表。最终用户完全不会与业务规则交互,只是查看它的执行结果。最终用户最多可能需要强制运行业务规则来获取更新的值。您可以定义一个 OSLC 视图命令来允许它这么做。

要定义 XPathValueFetcher 业务规则,您需要理解:

  • 至少在一定程度上理解 Rational Requirements Composer 和 Rational Team Concert 所提供的 REST 服务
  • 如何使用 REST 查询从这些来源访问数据
  • 如何导航 XML 输出来识别您希望检索的属性的正确 XPath

此规则的格式为:

=XPathValueFetcher('Integration link attribute',"URL parameters","XPath expression",
"Label","true")

您可附加 run_at=x, y, zupdate_interval=n 参数来指定运行的时间表。run_at 参数定义开始运行规则的时间(24 小时制的 x)、再次运行它之前的延迟(y 天),以及启动第一次运行的时间(z 日期时间)。update_interval 参数指定业务规则执行的间隔时间,以小时为单位。这些参数适用于所有 Rational Focal Point 业务规则。

对于 Rational Requirements Composer 资源,您必须在 “URL parameters” 和 “XPath expression” 值的开头包含 /ds:dataSource/ds:artifact/。对于 Rational Team Concert 资源,请确保使用了 OSLC Version 1.0 语法。

清单 1 中显示了一个示例,该示例演示了如何使用 Focal Point 属性 Derived Requirements 在 Rational Requirements Composer 中查找一个工件,提取 Estimated Cost 的值,将它标记为 Cost,并且每 12 小时更新一次。

清单 1. 从 Rational Requirements Composer 提取值的 XPathValueFetcher 示例
=XPathValueFetcher('Derived Requirements',"/ds:dataSource/ds:artifact/rrm:collaboration/
rrm:attributes/attribute:objectType/attribute:customAttribute[@attribute:name=
'Estimated%20Cost']/@attribute:value","/ds:dataSource/ds:artifact/rrm:collaboration/
rrm:attributes/attribute:objectType/attribute:customAttribute[@attribute:name=
'Estimated Cost']/@attribute:value","Cost","update_interval=12")

清单 2 中的示例使用 Focal Point Work Items 属性查找一个 Rational Team Concert 元素,并获取它的 State 值,将它标记为 Work Item State。因为此业务规则没有执行时间表,所以它默认情况下回像其他规则一样运行。

清单 2. 从 Rational Team Concert 提取值的 XPathValueFetcher 示例
=XPathValueFetcher('Work Items',"/?oslc_cm.properties=rtc_cm%3Astate%7B*%7D","
//rtc_cm:state/dc:title[text()]","Work Item State", true)

定义自己的 XPathValueFetcher 业务规则

要定义自己的规则,需要使用一个 REST 客户端(可用于大多数 Web 浏览器),比如来自 Mozilla Firefox 的 Poster。

  1. 打开 REST 客户端。(如果客户端未出现,请查阅浏览器的在线帮助。)
  2. 将页眉值设置为包含 application/rdf+xml 值的 accept
  3. 从一个 Integration Link 属性找到合适的工件类型的值(在将一个 Focal Point 元素关联到一个 Rational Requirements Composer Collection 或一个 Rational Team Concert 工作项之后),将该值复制到 REST 客户端的 URL 字段中。
  4. 对于 Rational Requirements Composer,将 /ds:dataSource/ds:artifact 附加到该值,然后发出一个 GET 请求,查看与该对象有关联的数据。

Requirement Collection 的一个可报告的 REST URL 示例可能类似于下面这个 URL,它被用于一个 Rational Requirements Composer 工件:

https://fpdev.integration:9443/rm/publish/resources?resourceURI__JnJ8rYzEeGXfpEm4RWRkQ&fields=/ds:dataSource/ds:artifact/

GET 请求返回该工件的数据的 XML 表示。浏览该 XML,识别您希望检索的属性,然后构建 XPath 值。也可以使用 XPath 编辑器帮助构建该表达式。

定义一个 XPathValueFetcher 业务规则的示例

下面的示例展示了如何定义一个 XPathValueFetcher 业务规则,以便从 Rational Team Concert 工作项检索一个自定义属性值,将它复制回一个 Focal Point 属性值中。可采用相同的步骤来替换您的属性的值。

  1. 打开您的 REST 客户端。

您需要使用 Rational Team Concert 中正确的工件类型的 URL 来识别它的属性。为此,最简单的方法是从 Focal Point 中的一个现有 Integration Link 属性复制该值。

  1. 登录到 Focal Point,找到您希望检索其信息的 Rational Team Concert 工件的链接。在这种情况下,Link to Plan Item 属性包含该链接。如果尚未建立该链接,那么您可以临时建立一个示例工件链接(稍后可以删除该链接)。
图 12. Link to Plan Item 属性值
包含 Rational Team Concert 工件的链接
  1. 右键单击链接值,选择 Copy Link Location
图 13. 从 Link to Plan Item 复制 URL 值
从弹出菜单复制链接位置
  1. 将 URL 粘贴到 Poster 的 URL 字段中,如图 14 所示。
图 14. Poster 设置
输入 URL、登录凭据和标题
  1. 提供凭据对 Rational Team Concert 执行身份验证。在本例中,我们使用了 bob(参见图 14)。
  2. 单击 Header 选项卡,输入以下值:
    • Name:accept
    • Value:application/xml
  3. 单击 Add/Change 将标题添加到列表中。
  4. 单击 Content to Send 选项卡,输入 application/xml 作为 Content Type。
图 15. Content Type 属性字段
Content Type 为 application/xml
  1. 单击 GET 按钮检索该工件的属性信息。这可能会花费几秒钟,但您应看到一个进度跟踪器。
  2. 请求完成时,您会看到一个类似图 16 的窗口。
图 16. Poster 中的 REST 请求结果
REST 查询的 XML 结果和执行细节

此信息显示了此工件的 XML 结构,以及属性和值。我们对属性最感兴趣。

  1. 找到所关注的属性的最简单方法就是搜索,但无法在这个数据窗口中完成搜索。所以我们选中了主要窗口中的所有文本 (Ctrl-A),复制它 (Ctrl-C),将它粘贴 (Ctrl-V) 到一个记事本或纯文本文件中。
  2. 在此示例中,自定义属性的名称为 Num Business Needs Blocked。但是,一次搜索可能无法找到该文本。有时,一个属性或值的 Rational Team Concert 内部表示与 UI 中显示的结果不同。要找到内部名称:
    1. 使用具有项目管理员特权的身份登录到 Rational Team Concert 项目。
    2. 在工具栏中,选择 Manage this Project Area(参见图 17)。
      图 17. Rational Team Concert 管理菜单
      访问菜单的齿轮图标
    3. 从左侧的列表中选择 Work Items,然后选择您正在使用的类型。
      图 18. Rational Team Concert 工作项配置设置
      工作项类型和属性列表
    4. 通过向下滚动来查找属性名称,以及它的类型和内部 ID。在图 19 中的示例中,Num Business Needs Blocked 属性在 XML 中显示为 numbbnblocked
图 19. 特定的工作项值
工作项的名称、类型和内部 ID
  1. 在记事本文本中搜索标识符(在本例中为 numbnblocked)。您应找到类似图 20 的结果。
图 20. 搜索结果
搜索结果突出显示了想要的标识符
  1. rtc_cm:numbnblocked 文本以 XPath 表达式的形式复制到您的 XPathValueFetcher 业务规则中。您还将在 URL parameters 字段中使用它,以便限制仅将查询发送到这个属性(从而避免返回大量与您不会使用的工作项元素相关的其他数据)。最终的 XPathValueFetcher 规则可能类似于清单 3。
清单 3. XPathValueFetcher 规则示例
=XPathValueFetcher('Link to Plan Item',"/?oslc.properties=rtc_cm:numbnblocked",
"//rtc_cm:numbnblocked[text()]","Blocked","run_interval=12h")

该业务规则使用 Link to Plan Item 属性在 Rational Team Concert 中查找计划项,然后请求工作项的 numbnblocked 属性的整数值并将它转换为一个文本值 ([text()])。(如果更新 Focal Point 中的一个整数属性,则无需将该值转换为文本。)

您应能够重复这些步骤来查找您想要的特定值。

提示:
也可以使用 REST View Command 配置接口查看某个元素的可能属性列表。按照指令配置一个 REST 视图命令,您应该能够看到用于映射的可用属性。这会让您了解哪些信息的可用的,但仍然需要按照前面的步骤来查找该属性的特定 XPath。

定义 OSLC 视图命令

OSLC 视图命令都已预先配置。可将它们与您希望从中调用它们的视图相关联。

要将预定义的 OSLC 视图命令关联到您的视图:

  1. 选择 Configure > OSLC View command
  2. 单击 Add view command
  3. 从视图列表,选择您希望在其中使用该命令的视图。
  4. 在出现的配置窗口中(参见图 21),指定以下值:
    OSLC view command Name
    为命令命名,以便记住它的用途。这个名称仅在配置视图中使用,不会向最终用户显示。
     
    Linked elements
    这个下拉菜单显示此视图中具有该元素类型的所有已链接元素。请记住,OSLC 视图命令会对链接到您希望在其中启动该命令的元素的工件集进行批量处理。您选择的链接的元素需要拥有一个 Integration Link 属性,它将由该操作更新。
     
    Attribute where the Jazz Team Servers were configured
    指定将被命令引用或更新的 Integration Link(来自链接的元素)。
     
    Command
    从预定义命令列表中选择您希望运行的特定的 OSLC 视图命令。
     
图 21. OSLC 视图配置菜单
OSLC 视图命令的属性
  1. 单击 Create 创建视图命令。
  2. 在您指定的视图中,这个 OSLC 视图命令的图标显示在元素的标题栏中。单击该图标会触发它的执行。
图 22. 在 Rational Requirements Composer 中创建新工件
命令下拉菜单旁边的图标

提示:
请记住,OSLC 视图命令已预先配置,而且您不能进一步扩展它们的功能。

实现 REST 客户端视图命令

在 Focal Point 和 CLM 应用程序之间双向交换数据方面,REST 客户端视图命令具有最高的灵活性。您可以在单个命令中交换多个属性值。也可以在该命令之前或之后,甚至在命令本身中插入更多的步骤,以转换数据表示和值。

与 XPathValueFetcher 规则一样,您将需要获得指向您希望与其交换数据的资源或资源集的 URL。您将使用一个特定的示例设置该模板。当实际运行该命令时,将基于所选的元素来替换合适的值。最简单的方式通常是(使用 Integration Link 属性)创建想要的工件的链接并复制链接值。您也可以转到 Rational Team Concert 根 URL,从这里导航 REST API 来识别可用的资源。

要提高 REST 视图命令的性能,可以使用(OSLC 定义的)查询参数限制请求所发送或检索的数据量。默认情况下,会发送或检索整个 XML,即使仅使用了少数值。您可以在 REST 视图命令本身中或在您然后从该命令引用的 Focal Point 属性中定义参数。对于后者的示例,请参阅 Sync Details from CCM Plan Item 命令。我们没有指定其他命令上的参数,但如果愿意的话,您也可以添加它们。

备注:
要配置和运行视图命令,必须确保使用的属性可在您选择的视图中看到,而且更新的属性是可编辑的。在某些情况下,更新的属性可能仅用于内部用途,用于支持其他 REST 命令或计算。理想情况下,这些属性应对大多数用户隐藏,以避免混淆它们,更糟的情况是使得它们更改了不应更改的值。对于生产用途,可考虑配置特殊的受限视图来启用特定的视图命令,使它们仅供少数用户使用。也可以将这些命令分组到元素底部它们自己所在的部分,在设置初始视图设置时折叠它们,使用户不太可能注意或探索它。

要定义个 REST 视图命令:

  1. 选择 Configure > REST client view command
  2. 单击 Add view command 按钮。
  3. 从所显示的列表中选择要使用的视图。请记住,您要更改的属性在该视图中必须是可以编辑的,而且您引用的任何属性必须至少是可见的。
  4. 指定:
    REST 客户端视图命令名称
    您将用于调用该命令的名称。这个名称将显示在下拉菜单中供最终用户选择,所以请确保它是有意义的。
     
    REST 请求方法
    您希望调用的 REST 命令的类型:
    • GET 从链接的 CLM 工件提取数据
    • PUT 从 Focal Point 更新值或将其推送到链接的 CLM 工件
    • POST 使用来自 Focal Point 的数据在 CLM 中创建元素
    • DELETE 删除链接的 CLM 工件中的数据
    • SYNCHRONIZE 使用 CLM 中的值更新 Focal Point 工件中的值

     
    好友列表
    您希望将 REST 请求发送到的服务器 “好友”
     
图 23. REST 客户端视图命令配置
命令名称、REST 方法和目标好友服务器
  1. 如果使用 GET 方法:
    1. 通过复制您希望访问的资源类型的 URL 来指定 REST Application Request URL(例如,从一个 Plan Item 进行链接或基于您的 Rational Team Concert XML 进行导航)。
    2. 随后您需要完成 XPath 值,使用您的 REST 客户端识别要使用的值。请参见介绍 XPathValueFetcher 的章节,了解完成此操作的更多细节。
  2. 如果使用其他方法之一,
    1. 单击 Choose URL Attribute to REST Artifact 旁边的 Select
    2. 从 Focal Point 属性列表中,选择拥有您希望访问的资源或属性类型的 URL 的属性(也就是合适的 Integration Link 属性)。
      图 24. 指定要使用的 Integration Link 属性
      模块的属性列表
    3. 将 REST Application URL 中一个资源或工件的链接(Integration Link 的值)复制到 Template XML 字段中。(为此,最简单的方式是设置一个元素中的 Integration Link 属性,然后右键单击该链接并选择 Copy Link Location。然后将该值复制到此字段中。也可以使用 Poster 等 REST 客户端导航 XML 分层结构(如 XPathValueFetcher 一节中所述),以便找到合适的值。)
      图 25. 从 Link to Plan Item 链接复制 URL 值
      下拉菜单上选中的 Copy Link Location
    4. 单击 Get Template XML 获取与该资源相关的 XML。
图 26. 获取模板 XML 选项
已选中的选项,已指定的 URL
  1. 上一步应该已经为您生成了模板 XML(Get Template XML 按钮)。您将看到基于您使用的示例 URL 的显式值。不要担忧,因为这些值将在运行时基于元素的 Focal Point 属性中指定的实际工件进行替换。
  2. 如果定义一个 PUT 命令并希望在命令中包含完整的模板 XML,请选中 Use Template XML for REST PUT call 选项。否则,将会仅包含必要的子集。这仅适用于 PUT 命令。
  3. 对于 Root XPath to REST Application Artifact,请单击 Select 按钮查看基于所指定的 URL 和模板 XML 的可用值。通常,正确的选择是 /rdf:RDF
图 27. 设置工件的根 XPath
根 XPath 的选项
  1. Attribute mapping 下,单击 Add 按钮查看可用的 Focal Point 和 CLM 属性。
    图 28. 映射属性
    要映射的 Focal Point 和 CLM 属性列表
    1. 从该列表中选择 Focal Point 属性以及将受此命令影响的相应的 CLM 属性,然后单击 Map。
    2. 继续根据此命令的需要来映射属性对。
    3. 完成映射后,单击 Close 关闭映射窗口。
  1. 在 Request Parameter Table 标题下,指定将在查询中使用的其他任何参数(例如,将查询范围缩小到一个属性子集,以提高性能)。
  2. Request Header 映射指定了要在 REST 请求中使用的标题名称和值(像您在 REST 客户端中所做的一样),通常为以下值:
    accept
    application/rdf+xml
     
    content-type
    application/rdf+xml
     
    OSLC-Core-Version = 2.0
    如果希望确保资源按 OSLC 2.0 规范的定义来表示,可使用此标题。这是 CLM 中当前支持的级别。如果该级别发生更改,此标题将可确保该资源继续以相同的方式表示。
     
  3. 单击 Save 保存命令。

它现在显示在您已配置的命令列表中。

转到您将此命令与其关联的视图中时,您会看到该命令已在视图顶部的下拉菜单中列出。如果在树视图中查看,该命令还会显示在所显示元素的标题栏中。

图 29. 调用 REST 客户端视图命令
两个执行 REST 命令的下拉菜单

如欲仅为所显示的元素调用该命令,可使用其标题中的下拉菜单;要为视图中的所有元素调用该命令,可使用顶部的下拉菜单。

从下拉菜单中选择您希望运行的命令,然后单击菜单旁边的 Go (Go icon) 图标来调用该命令。

提示:

  • 请记住,这些命令是以一次一个视图的方式定义的。如果希望从多个视图访问某个命令,则必须为每个视图定义它。
  • 尽管可复制和修改现有命令,但不能将它们更改为指向另一个视图。

REST 视图命令的创造性用法

可通过一些非常有创意的方式应用 REST 视图命令。以下是一些来自 Governance of Application Development Outsourcing 解决方案的示例:

  • 我们希望从 Rational Team Concert 发布计划抓取完成信息 (% complete/remaining)。我们无法直接从发布计划 XPath 请求它。但是,我们能够请求发布计划进度跟踪信息的路径 (rdf:Description/oslc_pl:progressTracking/@rdf:resource) ,并将该 URL 存储在另一个属性中。然后,我们在第二个 REST 视图命令中使用该 URL 和 XPath 来请求发布计划的已完成工作和剩余工作。在检索数据后,我们会在 Focal Point 中计算已完成的百分比(Rational Team Concert 没有存储百分比值供我们直接检索)。
  • 我们也能够从发布计划请求 Test Plan 链接(使用 testedByTestPlan 属性:rdf:Description/calm:testedByTestPlan/@rdf:resource)。
  • 在从 Rational Team Concert 检索基于时间的数据的过程中,我们在该命令中通过向属性映射添加一个计算公式将毫秒(millisecond)转换为天(day),参见图 30。
图 30. 在属性映射中包含计算公式
timeSpent 除以 (1000*3600*8) 就可以获取以天为单位的值
  • 我们还在 Focal Point 中执行了一些漂亮的准备工作,以便将 Priority 的文本和数字表示转换为 Rational Team Concert 在内部使用的复杂文字枚举值(priority.literal.I, 加上 0 或 1,再加上一个最终的变量整数):
    • 我们使用隐藏的 Focal Point 属性会计算这个变量整数,基于 Focal Point Priority 值用于确定使用 0 还是 1。
    • 我们使用了另一个 Focal Point 属性将这些计算的值与该字符串的剩余部分串联起来,形成 Rational Team Concert 的一个完整 URL 值:
      ="https://gado.rtp.raleigh.ibm.com:9443/ccm/oslc/enumerations/
      _nPrf4NmfEeGykNT4MeB2Fw/priority/priority.literal.l" +
       'CCM Priority preIndex Value' + 'CCM Priority Value'
    • 定义 REST 视图命令的属性映射后,我们使用最终的 Focal Point 属性与完整的 URL 值来设置相应的 Rational Team Concert Priority 值。
  • 最后,我们做的一件非常特殊的事是,从 Rational Team Concert 快照中获取想要的截止日期信息(因为这些计划只能将该信息存储在快照中)。为此,我们必须使用还可以供 OSLC 视图命令使用的内部 API:
    • 我们使用 Release Plan 链接查找 Release Plan Project Area 的值 (rdf:Description/rtc_cm:projectArea/@rdf:resource),并将它存储在一个属性中。(我们使用用于获取 Release Plan 进度跟踪信息的相同命令。)
    • 在第二个命令中,我们向 Project Area 发送一个请求来查找它的名称 (rdf:Description/dcterms:title ),并将该信息存储在一个属性中。
    • 引用 Project Area Name 和 Release Plan Progress 位置,我们在 Focal Point 中使用了另一个属性 (Release Plan Sync Snapshot Data URL) 来持有内部 API 的表达式(请注意对另外两个属性的引用):
      =substring('Release Plan Progress', 0 ,"oslc") + "service/com.ibm.team.tpt.
      common.internal.IImpexService?PROJECT_ID=" + 
      'CCM Release Plan Project Area Name' + "&Plan_ID=" + substring
      ('Release Plan Progress',"plans/","/progressTracking")
    • 定义 REST 视图命令时,我们指定了 “Choose URL Attribute to REST Artifact” 字段的 “Release Plan Sync Data Snapshot” 属性。我们构造该 URL 的方式是,复制来自某个已运行以前的视图命令且拥有项目区域名称和进度跟踪值的项目的值。
    • 我们将 Rational Team Concert Start Date 和 Finish Date 属性映射到 Facle Point 中合适的 Date 属性。

结束语

如本文中所示,您可以使用多种不同的技术将 Focal Point 与 CLM 解决方案或其他基于 REST 的应用程序相集成。请记住,因为客户端实现不同,所以您可能需要探索 CLM 模式和它的 XML 分层结构,以查找您需要检索的信息,并正确地设置请求格式,尤其对于 XPathValueFetcher,它需要更多的手动配置。了解工件和属性的 REST XML 表示,以及如何使用 REST 客户端导航该 XML,这对完成您的配置非常有用。


致谢

Focal Point 开发团队的 Rajesh Kanna 和 Karthi Dakshinamurthy 对本文做出了巨大贡献,定义了提供了这里所用的一些插图的 GADO 解决方案中的集成。还要感谢 Rational 认证的 IT 架构师 Richard Demidio,他提供了 XPathValueFetcher 小节中的大量细节内容。

参考资料

学习

获得产品和技术

讨论

条评论

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=953388
ArticleTitle=将 Rational Focal Point 与协作式生命周期管理应用程序相集成
publish-date=11182013