启用 GCM 服务器以将配置添加到其他 GCM 服务器

有时,具有隔离式 IBM® Engineering Lifecycle Management (ELM) 部署的团队需要跨多个业务线在产品组合件上进行协作。 在这类情况下,可以将全局配置管理 (GCM) 服务器配置为接受来自不同 GCM 服务器的添加项。 将一个 GCM 服务器中的全局配置添加到另一个 GCM 服务器中的全局配置称为外部添加项

开始之前

这是具有若干约束的高级功能。 在继续之前,请仔细阅读本主题,并确保您了解功能、使用时机、约束以及示例。

此外,请确保您了解下列 GCM 概念:
外部添加项
将一个 GCM 服务器中的全局配置添加到另一个 GCM 服务器中的全局配置。
主 GCM 服务器
特定于域的应用程序将局部配置添加到主 GCM 服务器。

下列应用程序可以将局部配置添加至全局配置中:

  • 体系结构管理 (AM)
  • 变更和配置管理 (CCM)
  • 设计管理 (DM)
  • 质量管理 (QM)
  • 需求管理 (RM)
特定于域的应用程序只能将局部配置添加到一个 GCM 实例:其主 GCM 服务器。 Jazz ® Team Server 通过下列其中一种方式指示主 GCM 服务器:
  • 显式:使用全局配置提供者 URL 高级服务器属性中设置的值。

    如果向与 GCM不同的 Jazz Team Server 注册了添加应用程序,那么必须为这些应用程序指定 Jazz Team Server 上的主 GCM 服务器。

  • 隐式: 通过向该 Jazz Team Server注册的 GCM 实例。

    如果向与 GCM相同的 Jazz Team Server 注册了所有添加应用程序,那么该 GCM 实例将自动成为主服务器,因此您不必设置 全局配置提供程序 URL 属性。 不支持向同一 Jazz Team Server 注册多个 GCM 实例。

何时启用 GCM 服务器以将配置添加到其他 GCM 服务器:

如果贵组织需要跨业务线进行协作并共享全局配置,那么仅在满足下列条件时使用此功能:
  • 您无法从单个 GCM 实例获取所需要的可伸缩性或性能,即使该实例在功能强大的机器上运行也是如此。
  • 您已准备好安装和维护 Eclipse Amlen
  • 您已准备好配置和维护若干项目区域关联:跨越所有部署与 GCM 实例进行交互的每个当前项目区域和潜在项目区域的项目区域关联。
  • 您可以配置至少一个链接索引提供程序 (LDX) 实例,以接受来自部署中所有 ELM 应用程序 (包括其他部署中的其他 GCM 实例) 的订阅源。
  • 您可以设置满足约束的外部添加项,如 约束 部分中所述。

如果贵组织需要更多时间来满足这些条件,那么可以考虑在单个 GCM 实例中设置多个项目区域,以对服务器之间的添加项实现类似控制。 如果贵组织已准备好在 GCM 服务器之间启用添加项,请确保您了解本节后面所描述的先决条件。

要点: 在为 GCM 服务器启用外部添加项之后,不支持禁用此功能。

示例

以下示例是在单独的 ELM 安装上工作的团队的典型示例,每个安装都有自己的 Jazz Team Server。 为了简单起见,下图仅显示了 RM 应用程序和 GCM 应用程序。 此功能的约束以粗体突出显示,并在 约束 部分中进行讨论。
  • 在此示例中,有两个 Jazz Team Server 实例: JTS 1 和 JTS 2。
  • JTS 1 有一个 RM 实例(名为 RM 实例 1)和一个 GCM 实例(名为 GCM 实例 1 )(请参阅虚线)。 缺省情况下,这些应用程序是友元,因为它们位于同一 Jazz Team Server上。 只能向 Jazz Team Server注册一个 GCM 实例。

    由于 GCM 实例 1 和 RM 实例 1 已向同一 Jazz Team Server注册,因此 GCM 实例 1 是 RM 实例 1 的 主服务器 。 (对于此示例,假定在 " Jazz Team Server 高级属性 " 页面中未指定任何 全局配置提供程序 URL 值。)

    因此,RM 实例 1 只能将其局部配置添加到 GCM 实例 1(由绿色实心箭头指示)。 特定于域的应用程序只能将其局部配置添加到一个 GCM 实例

  • JTS 2 具有类似的设置: 名为 RM 实例 2 的 RM 实例和名为 GCM 实例 2 的 GCM 实例。 缺省情况下,这些应用程序是友元。 GCM 实例 2 是 RM 实例 2 的主服务器,因此 RM 实例 2 只能将其局部配置添加到 GCM 实例 2。
  • 在较低版本中,GCM 实例无法互相添加配置。 从 V6.0.6 开始,如果 GCM 管理员完成了“过程”部分中的步骤,那么它们可以互相添加配置。
  • 在 GCM 实例 2 的配置层次结构中,GCM 实例 1 中的全局配置称为外部添加项(请参阅红色实心箭头)。 在 GCM 项目区域中,全局配置层次结构只能具有任何其他 GCM 实例的一个外部添加项。 有关详细信息和示例,请参阅本主题中稍后的约束 2

    尽管 GCM 实例可以互相添加全局配置,但是请谨慎选择:配置可以外部添加项,或者具有外部添加项:但是它不能既是外部添加项,又具有外部添加项。

该图显示了 2 GCM 实例的样本拓扑,其中一个实例向另一个实例提供配置。

以不同团队设计一辆汽车的不同部件的方案为例。 团队 1 设计 JTS 1 上的变速器,团队 2 设计 JTS 2 上的引擎。

在开发过程中,团队 2 的配置负责人将在 GCM 实例 2 中创建 Car 全局配置。 团队 1 现在需要将其全局配置添加到 Car 全局配置。

作为管理员,您必须配置 ELM 安装,以便团队 1 可以向 GCM 实例 2 中的项目区域中的配置添加内容。

先决条件

  • 全局配置提供程序 URL: 如果 Jazz Team Server 未向其注册 GCM 应用程序,并且向该 Jazz Team Server 注册的应用程序想要使用全局配置,那么这些应用程序必须在 " Jazz Team Server 高级属性 " 页面上定义 全局配置提供程序 URL 值。
  • 您的部署必须包括“消息队列遥测传输 (MQTT)”代理。 请确保该代理正在运行并且可用。 现在,仅支持 Eclipse Amlen ,这仅适用于 Linux 服务器。

    如果已安装 Eclipse Amlen 以支持 IBM Engineering Workflow Management (EWM) 集群,那么可以使用同一 Eclipse Amlen 实例,或者在其他主机上安装另一个实例以防止单点故障。

    Eclipse Amlen 不是 ELM 安装的一部分。 您必须获取并单独安装它。 有关详细信息,请参阅交互式安装指南的相关链接:当您回答该指南中的问题时,在支持应用程序部分,选择全局配置管理,然后对该部分中的至少一个问题单击。 在生成的指示信息中,单击指向有关安装 Eclipse Amlen的部分的链接。

  • 好友:标识您必须在每个服务器上配置的好友连接。

    缺省情况下,向与主 GCM 服务器相同的 Jazz Team Server 注册的应用程序是友元。 询问配置负责人哪些应用程序添加到全局配置,但未向主服务器的 Jazz Team Server注册。

    Jazz Team Server 与添加应用程序之间需要友元关系,如下图中的箭头所示:

    两个 JTS 实例的好友关系的图像
    三个 JTS 实例的好友关系的图像
  • LQE 和 LDX: 确保您有一个 Lifecycle Query Engine (LQE) 实例和一个 LDX 实例。
    • 确保将每个 GCM 实例添加为 LQE 和 LDX 中的数据源。
    • 确保 LQE 和 LDX 具有相同的数据源列表。

    可以位于一个 GCM 层次结构中的所有全局配置和局部配置 (无论来自多少个 GCM 或 ELM 应用程序实例) 都必须由相同的 LQE 和 LDX 服务器建立索引。

    这些应用程序将为不同用途生成索引。 LQE 对工件建立索引,以便团队成员可以报告具有外部添加项的全局配置中的相关工件。 LDX 对工件建立索引,以便团队成员可以查看不同类型的工件之间(例如,测试用例与需求之间)的链接。

    通常,在多个 Jazz Team Server 实例中只需要一个 LDX 实例。 所有作为好友的应用程序(GCM、RM 和 QM 等等)必须使用同一 LDX 实例,以便团队成员可以在使用不同主 GCM 服务器的应用程序中查看入局链接。 例如,使用全局配置上下文的团队成员在处理 RM 需求时,可以查看指向 QM 测试工件的链接。

    如果您的部署使用多个 LDX 服务器,请考虑合并这些 LDX 服务器。 您可以将 LDX 实例保留在注册应用程序最多的 Jazz Team Server 上。 一个 Jazz Team Server 实例将向其注册 LDX ,而其他实例将不向其注册 LDX。 如果您选择维护多个 LDX 实例,那么必须确保它们所列示的数据源相同,以便对每个 LDX 实例完成索引。 稍后,在步骤 4中,您将合并 LDX 服务器。

  • 项目区域关联:标识哪些项目区域向项目区域中的全局配置提供或者将提供配置(全局配置和局部配置),以便您可以定义项目区域之间的项目区域关联。
  • SSO:所有添加局部配置或全局配置的应用程序都应该使用单点登录 (SSO) 认证。 有关详细信息,请参阅 ELM中有关单点登录认证的相关链接。

    如果您未配置 SSO,那么用户可能会接收到多次登录提示,在系统提示他们登录之后,他们可能需要再次尝试执行任务。

    重要信息: 如果您的部署使用轻量级第三方认证 (LTPA) SSO 认证 (其中除了已注册的应用程序外还有友元连接) ,那么必须将根 URL (https://hostname: port) 添加到 " Jazz Team Server 高级属性 " 页面 (https://hostname: portjts/admin) 上的 Jazz Authentication Proxy SSO Allowlist 属性。 不需要将 URL 添加到 GCM 应用程序中的同一属性。

约束

请确保您了解启用 GCM 服务器之间的添加项的这些约束。
  1. 特定于域的应用程序(AM、CCM、DM、QM 和 RM)只能将局部配置添加到一个 GCM 实例。 要强制实施此约束,您必须添加必需的项目区域关联。

    缺省情况下,此实例是作为特定于域的应用程序向同一 Jazz Team Server 注册的实例。

    示例

    在此高级示例中,GCM 1 是主 GCM 服务器,RM 1 是 RM 应用程序的实例。 如带有复选标记的示例中所示, RM 1 只能将其局部配置添加到一个 GCM 实例 GCM 1。 通常, RM 1 和 GCM 1 将向同一 Jazz Team Server注册。 RM 1 无法将其局部配置同时添加到 GCM 1 GCM 2,如该示例中的 X 所示。

    此图由两部分组成,显示 RM 在一个受支持的 GCM 实例中向全局配置提供配置,还显示 RM 在不同 GCM 实例中向全局配置提供添加项的无效方案。
    重要信息: 如果不强制实施此约束,那么可能会发生意外结果。 要强制实施此约束,您必须设置项目区域关联,以便仅向一个 GCM 实例(通常为主 GCM 服务器)的项目区域提供一个应用程序中的任何项目区域的配置。 有关详细信息,请参阅步骤 2

    可以在 GCM 项目区域管理页面或者其他应用程序的项目区域管理页面上创建关联,但是请确保您了解使用 - 配置提供 - 配置关联之间的差别,以便选择正确的关联。 GCM 项目区域使用由其他应用程序提供的配置。

    示例

    继续以前面的示例为例,RM 实例 RM1 具有两个项目区域:
    • RMA,它包含一个名为 RM_A 的局部配置
    • RMB,它包含一个名为 RM_B 的局部配置
    主 GCM 服务器具有两个项目区域,分别名为 GCA 和 GCB。 对于 GCM 主服务器上的每个 GCM 项目区域,您必须为具有此 GCM 项目区域使用的配置的每个项目区域添加使用 - 配置关联(由服务器之间的箭头表示)。 反过来,您可以转至 RM1 服务器(以及所有其他应用程序),对于每个项目区域,添加与主 GCM 服务器上的项目区域的提供 - 配置关联。
    此图显示主服务器上的两个 GCM 项目区域与向该主服务器注册的两个 RM 项目区域之间的 "使用-配置" 关联。
  2. 对于任意数目的其他 GCM 实例中的每个实例,全局配置层次结构只能有一个来自该实例的外部添加项。 GCM 应用程序将强制实施此约束。

    要添加来自 GCM 实例的多个外部添加项,配置负责人可以将该实例中的配置分组,然后将该组配置添加至主服务器上的层次结构。

    下图中的约定:
    • 绿色框表示主 GCM 服务器上的全局配置。
    • 黄色框表示来自另一个 GCM 实例的外部添加项。
    此图显示了添加到主服务器上的配置的分组配置以及两个无效的示例

    在主 GCM 服务器上,只能添加一个来自任何 GCM 实例的全局添加项。 假定配置负责人需要将 GC B1 和 GC B2 添加至 GC A1 配置。 因为您只能添加来自另一个 GCM 实例的一个添加项,所以配置负责人必须创建一个包含 GC B1 和 GC B2 配置的组配置 (GC B3),然后将 GC B3 添加到主服务器上的 GC A1。

    可以将来自同一实例的多个添加项添加至主服务器上的配置,如第二个示例和第三个示例中所示。

  3. 配置可以外部添加项,或者具有外部添加项:但是它不能既是外部添加项,又具有外部添加项。 GCM 应用程序强制实施此约束,这将防止循环添加,有助于缓解 GCM 拓扑中具有太多层次所导致的性能问题。
    下图中的约定:
    • 绿色框表示主 GCM 服务器上的全局配置。
    • 黄色框表示来自第二个 GCM 实例的外部添加项。
    • 蓝色框表示来自第三个 GCM 实例的外部添加项。
    在第一个示例中,GC B1 和 GC C1 全局配置没有外部添加项。 它们是 GC A1 的添加项。

    GCM 应用程序会阻止您在下图中创建第二个示例和第三个示例:

    • 在第二个示例中,GC B1 不能是 GC A1 的直接添加项,并且它具有直接外部添加项 (GC C1)。
    • 在第三个示例中:
      • GC B1 无法添加至 GC A1,并且它具有外部添加项 (GC B2)
      • GC B2 无法直接添加至 GC B1,也无法间接添加至 GC A1,并且它具有外部添加项 (GC C1)。
    显示主服务器的外部配置不能是任何其他 GCM 实例的添加项的图像

过程

  1. 添加好友关系。 有关更多信息,请参阅先决条件。
    1. 在每个 Jazz Team Server上,转至管理页面 (https://hostname: port/jts/admin) ,并创建与以下应用程序的出站友元关系。 即使这些应用程序中的工件之间不存在直接链接,也要执行此操作。
      • 将使用或添加全局配置的应用程序,以及未向主 GCM 服务器的 Jazz Team Server 注册的服务器上的应用程序。
      • 您想要链接其工件的应用程序。 例如,如果您想要在 RM 工件与 QM 工件之间创建链接,但是这些应用程序位于不同服务器上,那么必须配置这些应用程序之间的好友关系。
      有关详细信息,请参阅 建立好友关系

      示例

      下图中的配置树包含来自两个 ELM 实例的配置。 ELM 1 实例 (层次结构的顶部突出显示部分) 中的每个应用程序都是 ELM 2 实例 (层次结构的底部突出显示部分) 中每个应用程序的友元,反之亦然。 即使这些应用程序之间未直接互相交互,也必须配置这些好友关系。

      显示具有外部添加项和所有必需的友元关系的全局配置层次结构
    2. 对于您添加的每个好友关系,通过下列其中一种方式来核准好友关系。
      • 在向导中,当您创建好友关系时:您可以在同一向导中核准临时密钥以及为每个好友关系配置功能用户。
      • Jazz Team Server (仅限GCM 和 RM) 上: 在 " 服务器管理 " 页面上,单击 使用者 (入站),然后打开 " OAuth 使用者 " 页面。 在“临时密钥”部分,将正在暂挂更改为已核准
      • 在好友应用程序中(除了 GCM 和 RM 之外的应用程序):在“应用程序管理”页面上,单击使用者(入站),然后打开“OAuth 使用者”页面。 在“临时密钥”部分,将正在暂挂更改为已核准
    3. 对于每个好友关系,如果以前未配置功能用户,那么可以使用以下方法指定功能用户:
      • RM 应用程序和 GCM 应用程序:请访问 https:// hostname:port /jts/admin
      • 其他 ELM 应用程序: 转至 " 应用程序管理 " 页面。

      然后,单击 使用者 (入站) ,并在 "授权密钥" 部分中设置每个授权好友的功能用户 (每个 ELM 应用程序对应一个用户)。

      功能用户不需要任何特权,并且可以是其他 Jazz Team Server上的任何用户。 为了方便起见,您可以对该应用程序使用预定义的功能用户。 有关详细信息,请参阅 系统用户

      有关配置使用者和功能用户的详细信息,请参阅 配置 OAuth 使用者

    4. 确认此页面上不存在要核准的其他项。
  2. 创建项目区域关联。
    注: 在设置 添加项需要项目区域关联 属性之前,请完成此步骤true(步骤 3.c)。 否则,团队成员在配置选取器和配置上下文菜单中将找不到他们需要的配置。

    请参阅 项目区域关联 部分,以获取有关 Wiki 上可帮助您完成此步骤的 SPARQL 查询的详细信息。

    在每个项目区域的每个主 GCM 服务器上,添加与所有提供配置的项目区域的关联。

    1. 在条幅上,单击 管理 > 管理此项目区域
    2. 在 " 概述 " 页面上,滚动到 "关联" 部分。
    3. 单击 添加,选择应用程序,然后选择 使用-配置; 然后选择项目区域,然后单击 确定

      重复执行此步骤,直到您已添加要对此项目区域中的全局配置添加或者将添加配置的所有项目区域为止。

    4. 单击页面右上角附近的 保存 。 对此 GCM 实例中的其他项目区域重复执行这些步骤。
    5. 添加当前项目区域的关联后,针对此 GCM 实例中的其他 GCM 项目区域重复步骤 2.a2.d
    6. 为此 GCM 实例中的所有项目区域添加关联之后,对其余 GCM 实例重复执行这些步骤。
  3. 在每个主 GCM 服务器上,在 https://server_name:port/gc/admin上的 " 高级属性 " 页面上设置以下属性:
    1. MQTT 代理 URI: 示例: tcp://broker_server_name:1883

      代理 URI 应该使用标准域名 (FQDN),以便它在所有参与服务器中都解析为同一 MQTT 代理。

      端口 1883 通常是用于 MQTT 协议的缺省端口。

    2. 将 MQTT 用于添加项高速缓存: 将此选项设置为true.
    3. 添加项需要项目区域关联: 将此选项设置为true.
    4. 允许全局配置的外部添加项: 将此选项设置为true.
    5. 单击保存
    6. 重新启动 GCM 实例。
    7. 重新启动其他应用程序。
  4. 合并 LDX 服务器。
    1. 选择其中一个 LDX 服务器作为所有应用程序将使用的公共 LDX 服务器: https://server_name:port/ldx
    2. 添加数据源。
      • 单击 管理数据源 > 添加数据源 ,然后执行向导中的步骤。
      • 请确保列表中包括下列数据源:
        • 合并之前“数据源”页面上显示的跨 LDX 服务器的数据源。
        • 提供或将提供全局配置的所有 GCM 实例和 ELM 应用程序的数据源。
    3. 在每个 Jazz Team Server 上的 " 高级属性 " 页面中 (注册了公共 LDX 服务器的 Jazz Team Server 除外) , 将 链接索引提供程序 URL 属性设置为公共 LDX 实例。

      您不需要将此 URL 添加至应用程序的“高级属性”页面上的同一属性。 应用程序使用您为 Jazz Team Server添加的值。

    4. 可选: 除去不再需要的 LDX 服务器。
      可以通过下列其中一种方式将它们移除:
      • 忽略它们,让它们继续运行。
      • 在 Web 容器或脚本中停止应用程序。
      • 注销并卸载服务器。
  5. 确保所有应用程序 (GCM, RM 和 QM 等) 使用同一 LQE 服务器。
    1. 如果部署使用多个 LQE 服务器,请停止除一个以外的所有服务器。 例如,您可能不会停止注册应用程序最多的主 GCM 服务器上的 LQE 服务器。
    2. LQE 应用程序中,添加所有 GCM 实例和 ELM 应用程序的数据源,这些实例添加或将添加到主 GCM 服务器上的全局配置。 请参阅有关管理 LQE 数据源的相关主题。
    3. 如果在步骤 5.a中停止了多个 LQE 服务器,请考虑从部署中除去这些服务器。
  6. 在要在所有多个 GCM 和相关应用程序实例中使用的 Report Builder 应用程序中,确保它已连接到您在步骤 5中选择保留的同一 LQE 服务器。
  7. 按以下顺序停止所有 GCM 服务器和其他应用程序,然后重新启动它们:
    1. 首先,重新启动每个主 GCM 服务器。
    2. 重新启动每个主 GCM 服务器上的 ELM 应用程序。
    3. 重新启动外部服务器上受步骤 12中所作更改影响的任何其他应用程序。
    注: 如果安装有助于全局配置的其他应用程序,并且下列任何 GCM 属性未设置为其缺省值,那么必须在注册这些应用程序 之后 重新启动这些新应用程序:
    • MQTT 代理程序 URI
    • 允许全局配置的外部添加项
    • 添加项需要项目区域关联
    • 将 MQTT 用于添加项高速缓存

结果

现在,配置负责人可以构建其中包含其他 GCM 实例的相关联项目区域中的全局配置的配置层次结构。 已对配置进行过滤,因此他们只能从相关联的项目区域查看配置,这可以帮助防止产生版本偏差。

GCM 应用程序还会检测来自 EWM 源代码控制管理 (SCM) 和 IBM Engineering Systems Design Rhapsody® - Model Manager (RMM) 的嵌套配置中的组件偏差。 此类型的组件偏差称为深度组件偏差。 有关深度组件偏差的示例,请参阅 检测组件偏差 (检查组件的不同配置)

下一步操作

可以查询具有外部添加项或局部配置的全局配置,以监视组件的复用情况。 有关更多信息,请参阅 查找具有外部添加项或局部配置的全局配置