安装和配置 IBM Operational Decision Management 黄金拓扑

了解如何分布式环境中为 IBM® Operational Decision Management (IBM ODM) 选择和配置部署拓扑。本文介绍理解高度可用的、可伸缩的 WebSphere Application Server Network Deployment 环境需要掌握的一些基本概念,然后介绍了 IBM ODM 服务器组件,并解释了这些组件中影响部署决策的特性或约束条件。 本文来自于 IBM Business Process Management Journal 中文版

Pierre Feillet, 软件架构师, IBM

Pierre Feillet 是 IBM 法国实验室的 IBM Operational Decision Manager 的运行时产品架构师。他在业务规则方面有着 20 年的经验,在 IBM 和 ILOG 实验室负责构建决策管理产品。自 4.5 版本以来,他在 IBM ODM、WebSphere ODM 和 JRules 中创建了规则服务器运行时。Pierre 负责分布式、云、System Z 以及移动环境中的决策管理架构和拓扑。



James Withers, 专业服务人员, SwiftKey

James Withers 在撰写本文时是 IBM Operational Decision Management 的质量保证团队的一名成员。他对于分布式平台和 System z 平台上的系统配置有着丰富的经验。James 获得了神经信息学方面的博士学位,他喜欢研究机器学习、图像处理和可访问的用户界面设备。他目前在 SwiftKey™ 从事专业服务。



Jose De Freitas, 高级软件工程师, IBM

Jose de Freitas 是 IBM Operational Decision Management 的质量保证团队的一名成员。在此职位上,他参与了 ODM 部署环境的配置和测试。Jose 以前曾在 IBM Business Process Management (BPM) 工作过,担任实验室工作和面向客户的职位,他的职责包括安装和配置 IBM BPM 和 IBM Business Monitor 群集拓扑。



2013 年 8 月 19 日

引言

本文将指导您完成 IBM Operational Decision Management (ODM) V8 部署环境的安装和配置。本文将介绍理解高度可用的、可伸缩的 WebSphere Application Server Network Deployment 环境需要掌握的一些基本概念,还将介绍 ODM 服务器组件,并解释这些组件中影响分布式环境中的部署决策的特性或约束条件。

除了讨论 WebSphere Application Server 单元拓扑中这些组件的布局之外,我们还将介绍从开发阶段到生产阶段采用 ODM 解决方案所需的其他部署环境。最后,我们会带您逐步完成 ODM 参考或 “黄金” 拓扑的安装和配置。

在本文中,我们将使用术语 ODM 来表示 IBM Operational Decision Manager V8.0.1 和以前的 WebSphere Operational Decision Manager V8.0.0.1,但在这些上下文中,必须有一个特定于产品版本的参考。

背景

IBM WebSphere Application Server Network Deployment V8.0 [8] 是一个强大的、高度可用的、与 Java™ EE 兼容的中间件环境。它提供一个用于托管和管理企业应用程序的平台,用户可以使用这个平台来配置和访问这些应用程序的相关资源。WebSphere Application Server 是一个 IBM ODM [4] 的可能部署环境之一。

WebSphere Application Server 配置包含相关的应用服务器、HTTP 服务器、节点、群集、单元和其他资源(如数据库),称之为拓扑。对于某一类的方案(这种方案设计为实现最佳做法并介绍术语以及所做出的决策),推荐使用黄金拓扑

为了介绍 ODM 的黄金拓扑,我们将介绍在本文中使用的与拓扑相关的术语。有关这些术语的详细信息,请参阅 [1][2]

ODM 拓扑使用了两种类型的服务器:

  • 应用服务器是 WebSphere Application Server 提供的 Java 虚拟机 (JVM),该服务器运行应用程序并提供服务。
  • Web 服务器路由 Web 应用程序中的内容请求,而且可以调用在应用服务器上运行的应用程序。IBM HTTP Server for WebSphere Application Server [10] 插件提供了该功能,而且还可以实现高可用性策略和工作负载平衡。

当一个环境中有多台服务器时,可以配置一个逻辑组织来简化管理,以及更有效地访问资源。节点 是一组服务器,托管节点 具有能够管理其服务器的节点代理。节点的配置记录在其配置文件中,预先定义的配置文件更新被称为扩展 (augmentation)。单元中的节点组 是具有相同可用资源的、独立的服务器配置以及群集配置的节点集合。

单元 是托管节点的管理域。向单元中添加节点的过程称为联合部署管理器 是单元中一个特殊的节点,该节点可提供对单元中所有部分进行管理控制的一个中心节点。当使用部署管理器更改单元的配置时,必须对所有节点代理执行同步过程。

群集 通常是跨不同托管节点的单元中的一组托管服务器。群集能够对应用程序进行工作负载平衡,以便提高性能或者提供高度可用的环境。由于群集的应用程序部署只有一个逻辑部署目标,因此非常简单。

群集中的服务器被称为群集成员,不在群集中的服务器被称为独立服务器。通常部署到独立服务器的应用程序类型包括那些不需要或者不会从工作负载平衡或高可用性策略中大量获益的应用程序。这种情况可能由于以下原因造成的:访问应用程序的风格、与其他应用程序相比该应用程序相对重要,或者是应用程序设计的限制。

向 WebSphere Application Server 环境中部署资源或应用程序应该在某个特定作用域上进行。作用域 是一个层次概念,例如,选择单元作用域会在该单元中的群集成员和独立服务器上部署资源或应用程序。部署作用域非常重要,因为在同一服务器上部署相关应用程序能够减少本地 EJB 调用的开销(与跨服务器调用相比)[3]

部署作用域 对于在 WebSphere Application 服务器单元中定义可伸缩性非常有用。这个概念通常会定义两个主线:

  • 单元的水平可伸缩性允许通过复制节点提供其他处理能力,以便增加每个群集中的成员数量。这种类型的可伸缩性假定是在群集作用域执行部署。工作负载平衡可以利用这个额外的处理能力来创建高度可用的环境,或者提高应用程序性能。
  • 单元的垂直可伸缩性取决于各个节点的处理能力。这种类型的可伸缩性决定每个节点上可用的处理能力数量,它可能会限制节点上可用的资源、群集成员、独立服务器和作为组成部分的应用程序的数量。

为了处理这些可伸缩性问题,我们引入了单元拓扑的概念。单元拓扑 通常可以使用单元拓扑图(其中两个图在本文的后面部分)来简明扼要地进行描述,它还针对以下方面介绍了一个单元中的可伸缩配置:

  • 在群集和独立服务器中部署应用程序
  • 群集中服务器的成员
  • 独立服务器的标识
  • 独立服务器和群集到节点的映射
  • 访问不同作用域上的资源

更加复杂的系统可能需要多个单元,这些单元通过访问资源、高可用性策略或者业务流程连接在一起。例如,在准备将应用程序部署到生产单元之前,可以在不同的单元中开发和测试应用程序。我们将引入一个环境拓扑,在这个拓扑中,每个组件单元都引用了一个特殊的单元拓扑。

为了陈述和解释 ODM 黄金拓扑,我们现在将引入 ODM 的组件以及应用它们部署的约束条件。


介绍 ODM 组件和约束条件

ODM 是 IBM 的业务规则、事件管理以及处理系统的实现。有关 ODM 组件的完整介绍,请参阅 ODM 信息中心 [4]。通过联合存储库中存储的不同用户角色,可以控制对 ODM 组件的访问。本文中只是简要地介绍一下用户访问管理;有关的详细信息,请参阅 [6][7]

ODM 包含两个主要组件:

  • 决策中心 (DC) 能够进行业务规则设计和生命周期管理,并且由社交媒体框架提供支持。
  • 决策服务器 (DS) 能够通过它的子组件 “决策服务器规则” 和 “决策服务器事件” 进行业务规则和事件的配置和处理。

“决策服务器规则” 包含业务规则配置和处理功能。它的 “规则执行服务器 (RES)” 是一个业务规则执行平台,该平台能够通过其规则引擎处理 RuleApps 及其构成规则集。RES eXecution Unit (XU) 提供了 Java EE Connector Architecture (JCA 1.5) 和 Service Provider Interface (SPI) 系统级别合约,这两个合约允许服务器连接到规则引擎。可以在节点作用域中将 XU 资源适配器存档 (RAR) 部署到 WebSphere 应用服务器,或者将其封装在某个规则应用程序内。

在本文中,我们假定将 XU RAR 部署在 WebSphere 应用服务器中。XU RAR 的安装和部署是在节点作用域中进行的,因此,可以对节点中的任何群集成员或独立服务器进行访问;它变得可用于多个应用程序,并且可以控制它的 JCA 连接池大小。在单元中使用 Management Bean (MBean) 管理 XU,对此部署它的服务器作用域上必须存在对 MBean JAR 的类路径引用,或者必须将 MBean JAR 复制到 WebSphere Application Server lib 目录中。我们不考虑 XU 独立于管理模型运行的情况。到 ODM V8.0.1 为止,除了 JMX API 之外,还必须可以使用 Representational State Transfer (REST) API 来简化远程管理。

XU 包含多个支持企业应用程序存档 (EAR) 文件。需要两个 EAR 文件来处理 Message Driven Bean (MDB) 和 Enterprise Java Bean (EJB) 规则会话。需要另一个 EAR 文件来处理 Hosted Transparent Decision Services (HTDS),它将决策服务器规则的规则执行功能显示为 Web 服务。所有这三个 EAR 文件都必须与 XU 搭配。

图 1. 决策服务器规则组件
决策服务器规则组件

RES 控制台允许执行管理任务,而且在独立服务器作用域可以部署为企业应用程序。RES 控制台不应该被大量使用,通常一次只有一个规则管理员访问它。不运行该控制台也能操作 XU,因此,不应该将它视为一个重要的故障点。

自从发布 ODM V8.0.1 PureApplication 系统模式以来,推荐使用的另一种方法是,将 RES 控制台放置在一个群集中,以确保该组件的高可用性。这种方法的缺点是,在执行手动同步之前,同时工作在两个 RES Web 控制台实例上的两个管理员可能无法看到完全相同的数据。

决策服务器的另一个组件是 Scenario Service Provider (SSP),该组件允许测试和模拟 RuleApps,并且实现一个 Decision Validation Service (DVS)。当使用远程 SSP 时,这个企业应用程序必须与 XU RAR 所在的服务器搭配。

Decision Server Events 包含一组不同的组件以及与 Decision Server Rules 的关系。事件运行时是用于企业事件协作、监视和执行的企业应用程序。它部署在独立服务器上或群集作用域,而且它不能与应用程序一起打包。假定您的规则和事件项目彼此引用,那么本地调用的性能优势为:事件运行时和 XU 可在同一群集中使用。我们还建议每个事件运行时部署只有一个分配给它的事件项目。

事件运行时提供了一个管理控制台作为企业应用程序的一部分。由于该控制台通常不会大量使用或者不会一次由多个用户使用,所以,对于部署和使用事件运行时,并没有施加额外的约束条件。

事件检测和操作是使用技术连接器(如文件、用户控制台和 JDBC 连接器)执行的。当上传事件项目或者启动服务器时,会检测事件应用程序所需的特殊技术连接器,而且,在与相关事件运行时相同的作用域上,可以将它们部署为企业应用程序。

事件运行时还需要使用一个单元内的消息传递基础架构。如何配置这样一个消息传递基础架构有很大的灵活性,我们延迟了消息传递提供程序(例如 WebSphere MQ)的选择,并让读者选择垂直和水平可伸缩性的一些实现选项。对于在规则应用程序中使用的 MDB 会话,也可以使用消息传递基础架构。通常,本地调用的性能优势意味着应该让该基础架构可以在与事件运行时和 XU 相同的群集中获得使用。

当从某个事件调用规则集时,项目规则运行时和事件运行时必须位于相同的服务器上。

决策服务器的最后一组组件是 Rule Designer 和 Event Designer。这些是基于 Eclipse 的集成开发环境 (IDE),提供了一个可以构造规则和事件项目并且可以部署到 Rule Execution Server 和事件运行时的用户界面。Rule Designer 和 Event Designer 位于台式计算机上,并在该计算机上运行,尽管它们已经连接到基于服务器的组件,但对于黄金拓扑而言,它们仍然位于外部。

与决策服务器相比,决策中心的子组件比较少。它的 Business Console 和 Enterprise Console 被用作一个企业应用程序,共同部署在独立服务器上或群集作用域上。创建业务规则时,Business Console 能够在业务用户之间进行协作,而 Enterprise Console 的功能更多,包括运行模拟、将产品部署到决策服务器和存储库控制。Enterprise Console 还连接到 Rule Solutions for Office,它能够在 Microsoft Office 文档中编辑业务规则。预计这些控制台会得到连续大量的使用,因此将它们部署在群集作用域中会比较好。

在 ODM V8.0.0.1 IBM Business Space(它由一组部署在独立服务器或群集作用域的企业应用程序组成)中,需要利用决策中心和事件小工具。Business Space 小工具和一个随附的事件测试企业应用程序都部署在与事件运行时相同的服务器上。自 ODM V8.0.1 起,决策中心和事件小工具就已经被替换为一个 JEE 应用程序,不再需要 Business Space。

ODM 需要访问若干个数据库。Decision Server Rules 使用了以下数据库:

  • Decision Server Rules (RES) 数据库,该数据库存储结构为 RuleApps、Rulesets 以及相关的 Java eXecutable Object Models (XOM) 的可执行规则产品。
  • Decision Warehouse 数据库,该数据库存储规则执行跟踪信息。

Decision Center 有自己的数据库,用于暂存业务规则产品和 DVS 报告。此外,Decision Server Events 和 Business Space(在 ODM V8.0.0.1 中)也有自己的数据库。

这些数据库的配置(就可伸缩性和高可用性而言)不在本文的讨论范围之内。用于连接到这些数据库的数据源应该部署在节点作用域内,以便与节点相关的资源(如数据库连接 JAR 的磁盘上的位置)可以得到正确配置,同时还要确保从 ODM 组件和其他企业应用程序访问数据源的宽度。


黄金拓扑的描述和实现

以下部分描述 ODM 黄金拓扑并介绍设计决策背后的动机:

  • Operational Decision Manager 拓扑(在 ODM V8.0.0.1 中被称为 Decision Management 拓扑)提供了在一个单元内进行规则与事件的创作、测试和执行的全部功能。
  • Decision Server 拓扑允许在一个单元内进行规则与事件的测试和执行,无需提供 Decision Manager 拓扑的创作功能。
  • 利用这些推荐的拓扑可在应用程序部署方案的各个阶段构建环境,从开发阶段到测试和生产阶段。

设计拓扑的目的是最大程度地提高性能、提供工作负载平衡,以及提供 ODM 的所有功能。我们首先详细地介绍一下 Decision Manager 拓扑,然后在本文的后面部分介绍了实用的分步部署说明

Operational Decision Manager 黄金拓扑

Operational Decision Manager 黄金拓扑,如图 2 所示,提供了规则与事件的创作、测试和执行的全部功能。有关仅侧重于测试和执行的拓扑,请参阅 Decision Server 拓扑

图 2. Operational Decision Manager 黄金拓扑
Operational Decision Manager 黄金拓扑

在此拓扑中,每个节点(部署管理器除外)都包含一个 Decision Center 群集和一个 Decision Server 群集。由于 RES 控制台不是此拓扑的重要组件,因此它没有任何可伸缩性要求,它在其中一个节点上的独立服务器中运行。工作负载平衡是通过使用 WebSphere Application Server 的 IBM HTTP Server 和 Web Server 插件实现的。故障转移或其他高可用性策略的实现不在本文的讨论范围之内。

设计 Decision Server 群集的目的是利用统一服务器中本地 EJB 调用的效能,以便最大程度提高规则与事件的执行、测试和模拟性能。因此,所有规则与事件的测试、模拟和执行都是在此群集内执行。出于同样的原因,此处还提供了用于事件处理的消息传递基础架构(也可以通过 MDB 规则会话使用)以及使用规则和事件的应用程序。此群集中构成 ODM 的组件包括 SSP、EJB、MDB、HTDS、事件运行时,以及各种事件连接器企业应用程序。

在节点作用域内部署 XU RAR 和数据源。在 Decision Manager 拓扑中,对于位于节点内任何服务器中的应用程序来说,这些资源非常有用。此外,将 XU RAR 部署到节点作用域还允许从事件运行时和其他 Decision Server 群集企业应用程序进行有效的本地调用。

Decision Center 控制台的性能和可伸缩性要求与 Decision Server 群集中所提到组件的性能和可伸缩性要求有所不同。因此,它们的企业应用程序已经转移到单独的 Decision Center 群集中。此方法在设计拓扑时允许有一定的灵活性;如果您不需要创作功能或者希望最大程度地减少硬件资源的使用,那么您可以考虑删除此群集(在 Decision Server 拓扑中建议这样做)。

由于可能会有多个用户同时访问服务和应用程序,所以我们建议调整 XU、事件运行时、消息传递基础架构、数据源和 HTDS(通过 Ruleset 属性 ruleset.xmlDocumentDriverPool.maxSize)的并发选项,以便提供更高的性能。

Decision Server 黄金拓扑

图 3. Decision Server 黄金拓扑
Decision Server 黄金拓扑

Decision Server 拓扑(如图 3 所示)与 Operational Decision Manager 拓扑类似,但不包含 Decision Center 群集。因此,该拓扑允许进行规则与事件的测试和执行,但没有创作功能(Rule Designer 和 Event Designer 提供的那些功能除外,它们单独在一个台式计算机上运行)。

环境拓扑

将您的生产环境与不同单元中的测试和其他环境分离(如 [5] 中所述)有几个好处,例如,提供了专门的测试环境,而且有助于防止出现灾难性故障。环境拓扑是一个分阶段的部署拓扑,它由映射到连续部署阶段的五个单元组成:

  1. 开发单元:在该单元中,首先会开发规则和事件应用程序。
  2. 测试单元:在该单元中执行模拟和集成测试
  3. 暂存单元:在该单元中,业务用户可以编辑规则和事件项目
  4. 预生产单元:该单元与生产阶段的配置完全相同
  5. 生产单元:在该单元中,会对生产数据进行规则和事件处理

这个由五个阶段组成的示例是随后要进行讨论的参考。例如,您可以选择只提供三个阶段或单元,或者开发环境只是一个独立服务器。我们的目标是帮助您选择一个满足您的特定要求和资源限制的环境拓扑。

图 4 就是环境拓扑光谱(范围从集中管理到最大程度隔离)中极限情况的一个例子。

图 4. 集中决策管理
集中决策管理

上面所示的集中管理方法的优缺点概况如下:

优点:

  • 可以将业务创作的某一点部署到所有环境上
  • 可以利用 Decision Center 分支和合,并在任何选定的 Decision Server 上部署可执行的规则
  • 具有 Decision Center 和 Decision Server 群集环境的高可用性
  • 隔离创作和执行工作负载

缺点:

  • 不允许专门为每个阶段自定义 Decision Center
  • 共享的 Decision Center 存储库变为创作和部署的单点故障,除非该数据库已针对高可用性进行了配置
  • 需要调整作用域授权操作的访问权限
  • 没有用于测试维护活动以及其他高磁盘更改的副本 Decision Manager 环境

相对的极限情况,如图 5 所示,它由所有阶段的隔离管理和执行单元组成。

图 5. 分阶段决策管理
分阶段决策管理

优点:

  • 各个开发生命周期阶段之间完全隔离。所有 ODM 运行时都位于一个单元中
  • 根据阶段和单元隔离进行创作和执行
  • 在每个单元中可以采用不同方式自定义 Decision Center,包括安全自定义
  • 具有 Decision Centers 和 Decision Servers 群集的高可用性

缺点:

  • 要配置和管理更多 JVM 和 Decision Center 数据库
  • 必须跨各个单元同步 Decision Center 存储库内容,从开发单元到生产单元

为了举例说明选择环境拓扑之后的整个过程,我们考虑一个方案,在该方案中,前三个阶段单元都包含一个 Operational Decision Manager 拓扑,后两个阶段(预生产和生产)具有相同的拓扑,即 Operational Decision Manager 拓扑或 Decision Server 拓扑。后两个阶段的单元拓扑的选择取决于您是否需要在生产环境中使用 Decision Center 的创作功能。预生产阶段单元提供在到达生产阶段之前识别规则和事件应用程序意外行为的最后机会。

在前三个阶段中,当应用程序进度通过这些阶段时,它会使用规则设计器、事件设计器或决策中心企业控制台,从一个阶段单元中的决策中心提升到下一个阶段单元中的决策中心。在每个阶段单元内,都会将应用程序从决策中心部署到决策服务器。将每个阶段分离,以便向应用程序中添加特定于阶段的自定义和测试。

如果预生产阶段和生产阶段也包含 Operational Decision Manager 拓扑,则会在决策中心群集之间继续提升规则和事件项目。当分离各个阶段时,可以简化用户访问管理,此外,当对共享决策服务器没有依赖时,会更容易测试 ODM 更新(如修复包)。但是,就多个决策中心群集所需的硬件资源而言,该实现过于昂贵。而且,这些分离的群集的管理、自定义和同步都可能会涉及其他成本。

或者,如果预生产阶段和生产阶段都包含决策服务器拓扑,那么暂存阶段单元的决策中心群集会在后三个阶段的决策服务器群集之间有效共享。当应用程序进度通过这些阶段时,在每个阶段单元中将其从决策中心部署到决策服务器。这种实现的主要好处就是可以通过集中处理来简化各个阶段之间 RuleApp 版本的管理。

这种实现的局限性包括:由于将应用程序部署在多个单元中,所以增加了用户访问管理的复杂度,尤其是在敏感的生产单元中。暂存阶段单元要求对它的共享决策中心群集精心管理并尽可能提供额外的资源,以便决策中心保持可用并且能够响应。此外,由于它的决策中心数据库变成了单点故障,因此需要尤为注意确保它的可用性(通过复制或其他方式)。


在 ODM V8 中部署决策管理器拓扑

本节介绍了如何利用 WebSphere ODM V8.0.0.1 中包含的配置文件扩展和脚本设置决策管理器黄金拓扑的步骤。如果忽略特定于业务空间的任务,那么该操作同样适用于 IBM ODM V8.0.1。

主要步骤如下:

  1. 创建和扩展配置文件
  2. 创建和配置群集
  3. 安装和配置 IBM HTTP 服务器以及 WebSphere 应用服务器 Web 服务器插件。

先决条件

创建部署拓扑之前,确保在每个节点中安装了下列软件:

  • WebSphere Application Server Network Deployment V8.0.0.3(使用业务空间)
  • WebSphere eXtreme Scale V7.1.1.1(如果使用 Event Server 组件)
  • WebSphere ODM 8.0.0.1 Decision Center
  • WebSphere ODM 8.0.0.1 Decision Server(使用 Event Server 组件,如果需要)

创建和扩展配置文件

大多数 ODM 用户都会使用随产品一起提供的脚本默默地创建和扩展配置文件。但对于本文,我们选择使用配置文件管理工具(Profile Management Tool,PMT)来执行此操作,因为第一次使用它的用户能够看到所有所需的步骤和输入参数。

创建部署管理器配置文件

注意:如果您创建过部署管理器配置文件,那么可以跳过这一部分。

每个单元都有一个部署管理器节点和一个部署管理器配置文件。创建部署管理器配置文件的步骤如下:

  1. 启动配置文件管理工具 (PMT) 并选择 Create
  2. 选择 WebSphere Application server => Management,如图 6 所示,然后单击 Next
    图 6. 选择部署环境
    部署环境对话框
  3. 选择 Deployment Manager 作为服务器类型,如图 7 所示。
    图 7. 选择服务器类型
    服务器类型选择
  4. 单击 Next,然后选择 Typical profile creation 选项并单击 Next。(除非您想更改默认名称和端口,在这种情况下,您应选择 Advanced profile creation。)
  5. 在 Administrative Security 页面上,选择 Enable administrative security 并提供您的安全凭据,如图 8 所示。
    图 8. 启用管理安全
    管理安全对话框
  6. 单击 Next。系统将为您提供一个与图 9 中所示内容类似的配置文件创建摘要。单击 Create
    图 9. 配置文件创建摘要
    配置文件创建摘要页面
  7. 创建配置文件之后,您可以选择 First steps 来验证安装并启动部署管理器。在将单元中的其他节点联合到该部署管理器中之前,需要启动部署管理器。

创建自定义节点配置文件

在我们的拓扑中,部署管理器位于与群集成员节点不同的计算机上,因此,我们不会在部署计算机上创建自定义配置文件。对于单元中的其他每个节点,我们将创建一个自定义配置文件。自定义配置文件用于将节点联合到部署管理器;它能够通过节点代理让部署管理器在该节点上创建和管理应用服务器。若要创建自定义配置文件,请执行以下操作:

  1. 通过启动配置文件管理工具来创建自定义节点。选择 Create,然后选择 WebSphere Application Server => Custom profile,如图 10 所示。
    图 10. 创建自定义配置文件
    创建自定义配置文件选择
  2. 单击 Next 并选择 Typical profile creation
  3. 在下一个页面上,指定将该节点联合到部署管理器所需的参数:部署管理器主机名、部署管理器 soap 端口和部署管理器身份验证凭据,如图 11 所示,然后单击 Next。确保部署管理器已启动。注意:通常最佳做法是仅在配置文件扩展之后联合节点,但在本例中,在此阶段联合节点没有问题。
    图 11. 指定节点联合参数
    节点联合对话框
  4. 在下一个页面上,单击 Create
  5. 对单元部署管理器将要管理的所有节点重复步骤 1-4。

扩展部署管理器和自定义配置文件

下一步是扩展部署管理器配置文件以及具有 ODM 配置文件的所有自定义配置文件。如果使用业务空间,那么还需要使用业务空间来扩展部署管理器配置文件。

ODM 黄金拓扑要求您使用决策中心、决策服务器和决策服务器事件更新部署管理器配置文件。仅使用决策服务器事件更新自定义配置文件,如表 1 所示。

ODM 配置文件 扩展部署管理器 扩展自定义配置文件
决策中心 x
决策服务器 x
决策服务器事件 xx
业务空间 xx

若要扩展配置文件,请执行以下操作:

  1. 停止部署管理器。
  2. 使用决策中心扩展部署管理器配置文件,方法是在 Augment Selection 对话框中选择相应的更新选项,如图 12 所示,然后单击 Next
    图 12. 选择扩展选项
    扩展选项对话框
  3. 指定 ODM 安装位置(在我们的示例中是 /opt/IBM/WODM80)。
  4. 单击 Next 并在下一个页面上单击 Augment
  5. 采用类似的方法,使用决策服务器扩展部署管理器配置文件。
  6. 使用决策服务器事件扩展部署管理器配置文件的步骤如下:
    1. 选择扩展并提供 ODM 安装位置。
    2. 在 Database Configuration 页面上(如图 13 所示)提供所需的数据库参数,并单击 Next。建议您在继续到下一步之前,测试数据库连接。
      图 13. 指定数据库参数
      Database Configuration 对话框
    3. 在下一个页面上,选择消息传递提供程序(我们接受默认值),然后单击 Augment。该操作还执行 eXtreme Scale 扩展。您应该已完成四个部署管理器配置文件的扩展,如图 14 所示。
      图 14. 已扩展的配置文件
      已扩展的配置文件的列表
  7. 使用业务空间扩展部署管理器配置文件。
  8. 使用决策服务器事件扩展自定义节点(该操作还执行 eXtreme Scale 扩展)。

创建决策管理器群集

接下来,您需要创建决策管理器群集:决策中心和决策服务器。

创建决策中心群集

创建和配置决策中心群集的最快速方法是运行 Configure DC Cluster 脚本 (configureDCCluster.sh),该脚本位于部署管理器的 bin 目录中。除了创建该群集之外,该脚本还执行以下操作:

  • 启动部署管理器服务器(如果尚未启动)。
  • 在群集级别安装决策中心应用程序 (teamserver)。部署应用程序时,会将用户映射到应用程序组。
  • 在节点级别配置 JDBC 提供程序和数据源*
  • 配置安全性。
  • 创建 rtsAdmin、rtsInstaller、rtsUser1 和 rtsConfig 用户。
  • 配置用户和组。
  • 将用户和组映射到角色。
  • 启动群集、服务器和应用程序。

* 此版本提供的脚本仅为一个节点创建定义,这个节点由参数 -targetNodeName 标识。您可以通过更改目标节点名称再次为其他所有节点运行该脚本,或者也可以手动配置其他节点。

完成以下步骤,以便使用该脚本创建群集:

  1. 运行该脚本之前,您需要打开 WAS_Installdir/profiles/Dmgr01/bin/rules/configureDCCluster.properties 文件并提供群集配置属性,如以下示例所示。
    #
    # Cluster base configuration
    #
    wodm.dsrules.clusterName=DecisionCenterCluster
    wodm.dsrules.rulesMgrServerName=RulesMgrSrv
    
    #
    # Database configuration
    #	Supported database type:
    #		- DB2
    #		- Oracle
    #		- MSSQL
    #
    wodm.dsrules.db.type=DB2
    wodm.dsrules.db.jdbcDriverPath=
    	/opt/IBM/WebSphere/AppServer/jdbcdrivers/DB2
    wodm.dsrules.db.name=WODMDC
    wodm.dsrules.db.hostname=ilogds01.hursley.ibm.co,
    wodm.dsrules.db.port=50000
    wodm.dsrules.db.user=db2inst1
    wodm.dsrules.db.password=xxxx
  2. 设置 WODM_HOME(例如,通过发出命令 export WODM_HOME=/opt/IBM/WODM80)。
  3. 转到 WAS_Installdir/profiles/Dmgr01/bin 目录并运行 configureDCCluster 脚本,如以下示例所示:
    ./configureDCCluster.sh -dmgrAdminUsername admin -dmgrAdminPassword admin
    -clusterPropertiesFile ./rules/configureDCCluster.properties
    -dmgrHostName ilogds01.hursley.ibm.com -dmgrPort 8879
    -targetNodeName ilogds02Node02

    完成该脚本后,您应该看到以下消息: [wsadmin] GBRPC0028I: The cluster is up and running!

  4. 选择 WebSphere application server clusters => DecisionCenterCluster => Cluster members 并选择 New,以创建新的群集成员。在我们的示例中,将创建名为 dm.dc02 和 dm.dc03 的两个新成员,一个在 ilogds02 节点上,另一个在 ilogds03 节点上,如图 15 所示。
    图 15. 创建新的群集成员
    Create Additional Cluster Members 对话框

    参见图 15 的大图。)

  5. 创建群集成员后,确保节点代理已启动,然后启动决策中心群集。

创建决策服务器群集

若要创建决策服务器群集,请执行以下操作:

  1. 打开 WAS_Installdir/profiles/Dmgr01/bin/rules/configureDSCluster.properties 文件并提供决策服务器群集配置属性,如图 17 所示。请注意,我们正在为规则执行服务器控制器创建一个额外的服务器,名为 RulesMgrSrv。
    #
    # Cluster base configuration
    #
    wodm.dsrules.clusterName=DecisionServerCluster
    wodm.dsrules.rulesMgrServerName=RulesMgrSrv
    
    #
    # Database configuration
    #	Supported database type:
    #		- DB2
    #		- Oracle
    #		- MSSQL
    #
    wodm.dsrules.db.type=DB2
    wodm.dsrules.db.jdbcDriverPath=
    	/opt/IBM/WebSphere/AppServer/jdbcdrivers/DB2
    wodm.dsrules.db.name=WODMDS
    wodm.dsrules.db.hostname=ilogds01.hursley.ibm.co,
    wodm.dsrules.db.port=50000
    wodm.dsrules.db.user=db2inst1
    wodm.dsrules.db.password=xxxx
  2. 使用类似于以下内容的命令运行 configureDSCluster 脚本:
    ./configureDSCluster.sh -dmgrAdminUsername admin -dmgrAdminPassword admin 
    -clusterPropertiesFile ./rules/configureDSCluster.properties 
    -dmgrHostName ilogds01.hursley.ibm.com -dmgrPort 8879  
    -targetNodeName ilogds03Node02

    该脚本执行以下操作:

    • 在节点级别安装 JDBC 提供程序、执行单元 (XU) JCA 连接器以及数据源。
    • 创建一台不属于任何群集的服务器,并在该服务器上安装 Rule Execution Server 控制台。
    • 配置安全性。
    • 创建 resAdmin、resDeployer、resMonitor 用户和各个组。
    • 将 HTDS 和 Scenario Service Provider (SSP) 部署到群集成员。部署应用程序时用户映射到应用程序组。
    • 启动部署管理器服务器(如果尚未启动)。
    • 启动群集、服务器和应用程序。
  3. 运行该脚本之后,您可以在其他节点中手动配置 XU 适配器和数据源。或者,您也可以对每个不同的目标节点运行该脚本。该脚本会识别已经执行的操作,并且仅在每个节点上创建数据源和 XU 定义。如果出错,可以通过使用 -uninstall 参数运行相同的命令来卸载所有群集定义。
  4. 最后,采用与决策中心群集所使用的类似方式,创建决策服务器群集成员。此时,单元拓扑应该如图 16 所示。
    图 16. 得到的本地拓扑
    显示所得到的本地拓扑的树

这是前面所述的有效的 Operational Decision Manager 黄金拓扑,但您仍然需要完成决策服务器事件的配置。

配置决策服务器事件

在决策服务器群集中安装和配置决策服务器事件组件。针对该群集中的个群集成员(应用服务器),执行以下操作:

  1. 创建一个新的 wbe.home Java 自定义属性(选择 Servers => Server Types => WebSphere application servers => server-name => Java and Process Management => Process Definition => Java Virtual Machine => Custom properties),该属性指向 ODM 安装目录(例如,/opt/IBM/WODM80)。
  2. 增加 JVM 堆大小。至少(假定 64 位计算机)将初始堆大小设置为 768,将最大堆大小设置为 1024。
  3. 选择 WebSphere application server clusters => DecisionServerCluster => Cluster members => dm.ds02 => Container services => Startup beans service,然后选择 Enable service at server startup
  4. 现在,您需要将决策服务器群集配置为服务集成总线的成员。为此,首先需要为该消息存储创建数据库和数据源,如下所示:
    1. 创建一个数据库,例如 DSEME。
    2. 在决策服务器群集中创建一个群集级别的 JDBC 提供程序。
    3. 创建一个数据源(使用 JNDI 名称,如 jdbc/eventsme)。
  5. 现在,对决策服务器事件总线执行以下配置步骤:
    1. 选择 Service integration => Buses => WbeBus => Bus members 并单击 Add。选择 Cluster,然后从下拉列表中选择 DecisionServeCluster
    2. 在下一个页面上,选择消息传递引擎策略类型。以下示例使用 High Availability,如图 17 所示,但是,对于可伸缩的生产环境,建议使用 Scalability with high availability
      图 17. 选择策略类型
      策略类型选择
    3. 在下一个页面上,为消息暂存选择 Data store
    4. 单击 Next,然后选择消息传递引擎的名称。指定 JNDI 名称(如 jdbc/eventsme)并选择一个相应的身份验证别名。确保已选中 Create tables 并单击 Next
    5. 根据需要更改堆大小,然后单击 Finish
  6. 下一步是执行所需的 WbeBus 和 JMS 配置。有关如何执行该操作的说明,请参阅信息中心中的 配置白银拓扑群集。执行该过程的第 7 步至第 13 步。此外,在 WbeBus 上,创建以下主题空间目标:Default.Topic.SpaceWbeHistoryTopicSpaceWbeTopicSpace
  7. 对于生产环境,还应该考虑至少配置三个 Websphere eXtreme Scale 目录服务器:一个在部署管理器节点中,另个两个在两个节点代理节点中(请参阅 [9])。
  8. 由于要将连接器部署到群集,因此您将需要选择 Resource environment entries => WbeSrv01 => Custom properties 并创建以下条目:
    • 值为 clustercom.ibm.wbe.ca.deploy.target.type
    • 值为 DecisionServerClustercom.ibm.wbe.ca.deploy.target.name(它是要在其上部署连接器应用程序的群集的名称)

安装并配置 IBM HTTP 服务器和 WebSphere Application Server 的 Web 服务器插件

我们的拓扑包括一台 IBM HTTP 服务器,该服务器拥有 WebSphere Application Server 的 Web 服务器插件,该服务器用于路由传入的 HTTP 请求,并对该请求进行负载平衡。在生产系统中,将在单独的计算机上安装一台或多台 HTTP 服务器。为了简便起见,我们只使用同一物理服务器上安装的 HTTP 服务器的一个示例作为部署管理器。由于部署管理器计算机上没有托管节点,因此采用与 HTTP 服务器安装在远程计算机上相同的方法配置该插件。若要设置该配置,请执行以下操作:

  1. 安装 IBM HTTP 服务器。
  2. 安装 WebSphere Application Server Web 服务器插件。
  3. 安装 WebSphere Customization Toolbox。

注意:上面的组件是 WebSphere Application Server Supplements 程序包的一部分,因此可以使用 IBM Installation Manager 进行安装。

  1. 启动 WebSphere Customization Toolbox 并选择 Web Server Plug-ins Configuration Tool
  2. 单击 Add 添加您安装的插件的位置。
  3. 在 Web Server Plug-in Configurations 选项卡上,单击 Create
  4. 选择 IBM HTTP Server V8 并单击 Next
  5. 选择 64-bit 并单击 Next
  6. 提供 Web 服务器配置文件位置和端口(在我们的示例中,分别为 /opt/IBM/HTTPServer/conf/httpd.conf 和 80)。
  7. 单击 Next 并为 Web 服务器设置一台管理服务器(这是可选的)。
  8. 提供惟一的 Web 服务器定义名称(我们接受默认值 webserver1)并单击 Next
  9. 由于前面所解释的原因,选择 Remote supply 并指向部署管理器计算机。
  10. 单击 Next 并选择部署管理器配置文件。
  11. 单击 Next,然后单击 Configure and Finish
  12. 将生成的 configurewebserver1.sh 文件从插件的 bin 目录复制到应用服务器的 bin 目录,并运行此命令:configurewebserver1.sh Dmgr01 admin admin(假定部署管理器配置文件名称为 Dmgr01,WebSphere Application Server 用户 id 和密码为 admin)。
  13. 从部署管理器的管理控制台中,选择 System administration => Save Changes to Master Repository => Synchronize changes with Nodes 并单击 Save
  14. 选择 Servers => Server Types => Web servers。选择 Web 服务器,然后单击 Generate Plug-in
  15. 成功生成插件配置文件 (plugin-cfg.xml) 之后,单击 Propagate Plug-in 将配置文件传播到插件的配置目录(在我们的示例中为 /opt/IBM/WebSphere/Plugins/config/webserver1)。

最后一步是确保所有 Web 模块也都映射到 Web 服务器。

现在,您应该能够指向 <webserver host name>/teamserver 以访问 Decision Center Enterprise 控制台。同样,指向 <webserver host name>/res 可访问 RES 管理控制台。

我们将保留业务空间的配置,作为需要使用 ODM 业务空间小工具的 ODM V8.0.0.1 用户的练习之用。请注意,自从 ODM V8.0.1 起,ODM 不再需要业务空间。


黄金拓扑的适用性

本文中提供的适用于群集部署的建议和说明仅与 ODM 和 WebSphere Application Server ND V8.x 有关。有关其他版本的有关其他版本的 ODM 和 WebSphere Application Server 的信息,请参阅它们的产品信息中心。此外,本文并未考虑任何 SupportPac 产品;有关群集部署的相关信息,请参阅 SupportPac 附带的文档。

本文中所述的黄金拓扑适用于需要使用 ODM 提供的所有规则和事件执行、测试和模拟功能的方案。并非决策服务器群集的所有功能都与您的特定要求有关。例如,您的项目可能未涉及任何事件处理,或者您的环境拓扑的生产阶段可能没有要求 SSP。我们建议对每个拓扑进行自定义,以便删除不需要的组件,从而最大程度地降低资源使用,尤其在性能和可靠性非常关键的情况下。

业务空间和决策服务器事件对于群集部署和测试产品有一些特殊限制,以下小节将对这些限制进行介绍。


业务空间和决策服务器事件的限制

其中一个限制是每个事件运行时部署只能有一个与其关联的事件项目。我们还建议,在一个单元内,只能执行一个事件运行时部署。如果您有多个事件项目,则需要对这些项目进行组合,或者每个事件项目需要一个已部署事件运行时的单独单元。

建议不要在群集环境中使用事件测试程序企业应用程序和业务空间小工具。同样,也不支持在适用于 z/OS 群集的 WebSphere Application Server 上对事件运行时进行群集部署,必须将事件运行时部署在一台服务器上。

如果需要使用这些功能,则拓扑内一个单独的独立服务器可以部署这些组件及其依赖性。例如,将事件测试企业应用程序移动到一台独立服务器也将需要移动事件运行时,因为它们必须搭配使用,我们建议仅在一个单元中部署一个事件应用程序。如果将组件从决策服务器群集移动到一台独立服务器,则必须考虑一些注意事项,即应用程序和资源仍然可以进行本地调用,以及随之而来的性能惩罚。以下部分将详细讨论消息传递的关注事项。


可伸缩性、高可用性以及性能

本文中所述拓扑的很多实现细节已留给读者去选择。在决策管理器拓扑的部署说明中,工作负载平衡策略以及消息传递基础架构的设计都面向高可用性。有关高可用性、可伸缩性策略以及资源隔离与进行本地调用的性能优势之间的权衡,请参阅 [8]


性能监视

监视您的环境的性能和可靠性,这对于确定是否需要采取提高水平或垂直缩放的措施极为重要。某些常见的瓶颈包括 CPU、内存、磁盘访问以及其他资源访问(如数据库或队列)。有关监视 WebSphere Application Server 环境的指南不在本文的讨论范围之内,但可以使用 WebSphere 性能监视基础架构和 IBM Tivoli Composite Application Manager 产品系列执行。


结束语

在本文中,我们学习了有关 Operational Decision Manager 组件的知识,以及这些组件如何安装和配置为 WebSphere Application Server ND 部署拓扑,从而获得高可用性和水平可伸缩性。我们还了解了决策管理解决方案各个阶段,以及支持每个阶段所需的部署环境类型。最后,逐步完成了安装和配置 Operational Decision Manager 黄金拓扑的步骤。


致谢

感谢我们的同事 Karri Carlson-Neumann,由于她参与了讨论,让我们获得了支撑本文内容的许多想法。还要特别感谢 Peter Johnson,他提出了他自己的看法、评论并一直为我们提供支持。

参考资料

学习

获得产品和技术

讨论

条评论

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=WebSphere
ArticleID=941305
ArticleTitle=安装和配置 IBM Operational Decision Management 黄金拓扑
publish-date=08192013