内容


把定制的模式连接到云外数据库

学习如何把 WebSphere Process Server Hypervisor Edition 定制模式与云外的数据库连接起来

Comments

WebSphere® Process Server Hypervisor Edition 附带 IBM® 提供的模式,它们可以帮助用户节省大量时间。这些模式包括:

  • Single Server for WebSphere Process Server
    这个预定义的模式提供 WebSphere Process Server 单独服务器的实例和一个数据库服务器。它基于 WebSphere Process Server 单一服务器拓扑。在频繁创建和销毁实例的环境中,通常使用这个模式检验应用程序功能。
  • Simulated Scalable Environment for WebSphere Process Server
    这个预定义的模式提供 WebSphere Process Server Remote Messaging 的实例,单一虚拟机上的远程支持部署环境模式。如果某些测试需要的环境的元素在多个服务器中运行,而目前的处理能力需求表明不需要多个虚拟机,那么通常使用这个模式检验应用程序功能。
  • Scalable Environment for WebSphere Process Server
    这个预定义的模式提供 WebSphere Process Server Remote Messaging 的实例,多个虚拟机上的远程支持部署环境模式。通常使用这个模式检验应用程序的服务质量和调优需求。

另外,Hypervisor Edition 是可扩展的,用户可以创建自己的模式以满足预定义模式无法满足的需求。我们经常遇到的需求之一是,希望能够使用映像之外的数据库。因此,我们将在本文中讲解如何使用扩展创建流程服务器环境,让它能够连接云之外的数据库(我们的云由 WebSphere CloudBurst™ 管理)。

WebSphere Process Server Hypervisor Edition 附带的所有模式都依赖于映像中提供的 DB2® 数据库。我们将详细解释如何构建和部署与 IBM 提供的可伸缩环境等效的定制流程服务器模式,但是构建的定制模式将连接 WebSphere CloudBurst 管理的云之外的现有数据库。

尽管本文讨论的步骤针对 remote messaging and support 拓扑,但是对于任何流程服务器拓扑,使用非映像附带的数据库所需的步骤是相似的。另外,这个示例使用 DB2 on Distributed,但是也可以按照相同的过程使用 DB2 on z/OS 或 Oracle。

图 1. 拓扑布局图
拓扑布局图
拓扑布局图

基本实现

创建 WebSphere CloudBurst 模式的基本步骤如下:

  1. 建立用于数据库设计、创建和访问的过程。
  2. 使用可扩展节点部件创建一个定制的模式。
  3. 创建用于收集数据库配置信息的脚本。
  4. 创建用于创建概要文件的脚本。
  5. 创建用于生成配置的脚本。
  6. 连接模式。
  7. 部署模式。

现在详细解释每个步骤。

建立用于数据库设计、创建和访问的过程

WebSphere Process Server (WPS) 和 WebSphere Process Server for the Hypervisor edition (WPSH) 数据库表必须存在,WebSphere CloudBurst Appliance 才能够部署包含外部数据库连接的模式。

在这个场景中,我们不使用 WPSH 中预先配置的嵌入式数据库。因此,必须先创建数据库服务器和表,然后才能够让这个设备创建这个模式的实例。

为了成功地支持这个模式,需要清楚地定义一个用于创建所需的数据库和表的过程,每次部署新的模式实例时必须遵守这个过程。这让数据库管理员和模式部署者可以明确地交流。

这个过程的组成部分之一涉及 Database Design Tool of WebSphere Process Server。因为在部署新模式之前要让创建数据库的人员能够使用这个设计工具,所以您应该了解此工具的一些情况:

  • 对于需要多个数据库(例如 WPRCSDBBPEDBMEDBEVENT)的任何 WebSphere Process Server 配置,要想使用 Deployment Environment 创建配置,就必须使用流程服务器 Database Design Tool。当使用多个数据库时,创建 Deployment Environment 的命令以一个 Database Design File 作为输入。
  • Database Design Tool 只能在安装产品二进制代码之后使用。无法从产品介质获取此工具。

在部署模式实例之前,必须提供用于数据库设计、创建和访问的过程,并说明应该如何完成此过程。还应该清晰地标识此过程,然后才能够继续设计工作的后续步骤。

下面是为本文示例建立的过程:

  1. 数据库管理员使用 WebSphere Process Server Database Design Tool 生成一个 Database Design File 和脚本,它们用于创建所需的数据库和表。
  2. 数据库管理员使用生成的脚本创建所需的数据库和表。
  3. 创建所需的数据库和表之后,数据库管理员把 Database Design File 和数据库的 JDBC 驱动程序放在一个 HTTP 下载服务器上,WebSphere CloudBurst 部署所创建的虚拟机可以访问此服务器。
  4. 数据库管理员向模式部署者提供这两个文件的 URI。在部署模式时,模式部署者使用提供的 URI 作为模式的输入。

建立此过程之后,后面的步骤主要集中于让 WebSphere CloudBurst Appliance 能够部署此模式所要完成的工作。

使用可扩展节点部件创建一个定制的模式

为了更好地理解设计活动,我们先来看看目标环境。WebSphere Process Server 配置的设计见图 2。这种设计通常称为 remote messaging and remote support 拓扑或黄金拓扑。

图 2. WebSphere Process Server 拓扑图
WebSphere Process Server 拓扑图
WebSphere Process Server 拓扑图

Hypervisor Edition 通过 IBM 提供的模式 Scalable Environment for WebSphere Process Server 提供此模式。此模式在 WebSphere CloudBurst 模式编辑器中的视图见图 3。

图 3. Scalable Environment 模式视图
Scalable Environment 模式视图
Scalable Environment 模式视图

尽管通过这个示例部署的拓扑是相同的,但是必须通过不同的映像部件实现。Scalable Environment 模式中使用的部件严格地硬连接以使用 WPSH 中的数据库。

鉴于无限的定制需求,WPSH 引入了可扩展节点部件。部署在模式中时,可扩展节点部件创建一个虚拟机实例,其中只有 WebSphere Process Server 二进制代码。可以把可扩展节点部件看作白板,用户可以在这里实现在预定义部件中无法实现的任何定制。代价是用户必须提供用于创建概要文件和想要的所有配置的脚本包。

使用 WPSH 中的可扩展节点部件开发这个拓扑模式的实现。在此示例中,我们创建一个包含可扩展节点部件的定制模式,从而实现此拓扑的基础。图 4 给出为此创建的部件的布局。

图 4. 使用外部数据库的定制 Scalable Environment 模式视图
使用外部数据库的定制 Scalable Environment 模式视图
使用外部数据库的定制 Scalable Environment 模式视图

考虑到数据库和表的创建不在此模式的控制之下,通过与前一个模式视图进行对比,您可以看出可扩展节点部件取代了所有其他预定义部件。从右到左,可扩展节点部件将分别变成流程服务器部署管理器、包含代理服务器的定制节点和包含流程服务器配置的定制节点。

既然已经明确了所需的所有部件,下一步就是通过构建脚本把每个部件转换为拓扑的有效节点。

创建用于收集数据库配置信息的脚本

正如此示例开始时所说的,必须建立用于数据库设计、创建和访问的过程。对于此示例,假设数据库管理员把 Database Design File 和 JDBC 驱动程序的 URI 提供给模式部署者,以这种方式传递必需的数据库信息。

我们创建的第一个脚本包获取这些文件的 URI 并把文件传输给模式中的每个虚拟机。因为要与外部数据库通信,必须假设需要在模式中的所有 WebSphere 节点中添加 JDBC 驱动程序。

Database Design 脚本包:

  • 把 JDBC 驱动程序复制到虚拟机。
  • 把 Database Design File 复制到虚拟机。

这个脚本包包含:

  • 复制 JDBC 驱动程序的脚本。
  • JDBC 驱动程序。

脚本详细信息:

  • 在 /etc/virtualimage.properties 文件中添加所需的变量。
  • 从 HTTP 服务器获取并解压 JDBC 驱动程序(例如 .TGZ),把它放在虚拟机中的指定位置。
  • 从 HTTP 服务器获取 Database Design File 并把它放在虚拟机中的指定位置。

虚拟系统中的每个机器上都需要这个脚本包。图 5 给出完成这一步之后的模式视图。

图 5. 更新的模式视图
更新的模式视图
更新的模式视图

创建用于创建概要文件的脚本

模式中的每个机器都需要使用一个脚本创建概要文件,从而确定它在拓扑中的角色。使用外部数据库的 Scalable Environment 由以下脚本包生成的流程服务器单元组成:

  • 一个创建连接外部数据库的部署管理器概要文件的脚本包。
  • 一个创建定制的概要文件并与部署管理器联合的脚本包。

WebSphere Process Server Create Deployment Manager 脚本包:

  • 创建部署管理器概要文件。
  • 启动部署管理器概要文件。

这个脚本包包含创建和启动概要文件的脚本。

脚本详细信息:

  • 在 /etc/virtualimage.properties 文件中添加所需的变量。
  • 包含用于创建部署管理器概要文件的 manageprofiles 命令。
  • 更新概要文件目录的权限。
  • 包含 startManager 命令。

在模式中添加的第一个可扩展节点部件(图 6 所示的模式编辑器视图中最右边的部件)上需要这个脚本包。

图 6. 更新的模式视图
更新的模式视图
更新的模式视图

WebSphere Process Server Create Custom Node and Federate 脚本包:

  • 创建定制的概要文件。
  • 联合和启动定制的概要文件。

这个脚本包包含创建、联合和启动概要文件的脚本。

脚本详细信息:

  • 在 /etc/virtualimage.properties 文件中添加所需的变量。
  • 包含用于创建定制概要文件的 manageprofiles 命令。
  • 更新概要文件目录的权限。
  • 包含用于联合和启动定制概要文件的 addNode 命令。

模式中的第二个和第三个部件上需要这个脚本包(图 7)。

图 7. 更新的模式视图
更新的模式视图
更新的模式视图

完成概要文件脚本编程之后,部署模式就会向用户提供一个流程服务器单元,但是没有任何集群配置。在下一节中,讨论如何添加集群配置。

创建用于生成配置的脚本

为了完成拓扑,还需要生成配置的脚本。使用外部数据库的 Scalable Environment 需要以下配置:

  • 在部署管理器上创建部署环境的脚本包。
  • 创建和启动代理服务器的脚本包。
  • 添加节点并生成 Deployment Environment 的脚本包。

WebSphere Process Server Create Remote, Messaging and Support Deployment Environment 脚本包创建 Deployment Environment 定义。这个脚本包包含创建 Deployment Environment 定义的脚本。脚本详细信息包含创建 Deployment Environment 定义的 createDeploymentEnvDef 命令。

模式中的第一个部件上需要这个脚本包(图 8)。它完成在流程服务器配置中作为部署管理器节点的部件。

图 8. 更新的模式视图
更新的模式视图
更新的模式视图

WebSphere Process Server Create Proxy Server 脚本包创建并启动代理服务器。这个脚本包包含创建并启动代理服务器的脚本。

脚本详细信息:

  • 包含创建代理服务器的 createProxyServer 命令。
  • 完成与部署管理器的同步。
  • 启动定制节点和代理服务器。

模式中的第二个部件上需要这个脚本包,它完成作为代理服务器的节点(图 9)。

图 9. 更新的模式视图
更新的模式视图
更新的模式视图

WebSphere Process Server Add node to Deployment Environment 脚本包:

  • 在 Deployment Environment 定义中添加定制的节点。
  • 生成 Deployment Environment。

这个脚本包包含:

  • 添加节点和生成 Deployment Environment 定义的脚本。
  • 判断是否已经生成 Deployment Environment 的实用程序脚本。

脚本详细信息:

  • 修改 SOAP 超时,让命令能够执行完。
  • 包含在 Deployment Environment 定义中添加节点的 addNodeToDeploymentEnvDef 命令。
  • 包含生成配置(如果前一个节点没有完成这一步的话)的 generateDeploymentEnv 命令。
  • 把 SOAP 超时恢复为默认值。
  • 完成与部署管理器的同步。
  • 启动节点。
  • 启动每个集群成员。

模式中的第三个部件上需要这个脚本包,它完成作为流程服务器集群的节点(图 10)。

图 10. 更新的模式视图
更新的模式视图
更新的模式视图

现在,配置脚本编程任务完成了。

下一节讨论如何把这些可扩展节点部件连接起来,从而在部件之间共享所需的部署值。

连接模式

使用可扩展节点部件的代价是部件中没有预定义的功能。如果希望在可扩展节点部件之间交换值,就需要由用户处理连接。这可以通过脚本包环境变量来完成(见 边栏)。

最常见的数据交换需求是让希望与单元联合的所有定制节点知道部署管理器的主机名。WebSphere CloudBurst 为此提供一种特殊的语法,可以传播在部署时不知道的值,比如主机名。

完成连接需要:

  • 知道所需的值所在的部件的名称。
  • 知道解析值的语法。

选择托管部署管理器的可扩展节点部件的属性,就可以找到部件名(图 11)。

图 11. 寻找部件名和语法
寻找部件名和语法
寻找部件名和语法

在图 12 中,部件名是 ExtendableNodesPart

图 12. 这里有部件名!
这里有部件名!
这里有部件名!

对于需要部署管理器主机名的可扩展节点部件的任何脚本包,输入以下语法:

${ExtendableNodesPart.hostname}.${ExtendableNodesPart.domain}

在这个模式中,所有定制节点都需要部署管理器主机名。我们在模式编辑器中更新 WebSphere Process Server Create Custom Node and Federate 脚本包中的 DMGR_HOSTNAME 参数。另外,我们锁定这个值,以确保在部署时用户不会意外地更改它(图 13)。

图 13. 更新并锁定 DMGR_HOSTNAME 参数
更新并锁定 DMGR_HOSTNAME 参数
更新并锁定 DMGR_HOSTNAME 参数

注意,在图 13 中,我们在部件名中使用了下划线 (_),因为此模式中有多个 ExtendableNodesPart 部件。

部署模式

困难的工作已经完成了,现在该享受成果了。

像部署 IBM 提供的模式一样部署定制的模式。(一定要记得先执行创建数据库、创建表、把文件部署到下载服务器和记录 URI 这些步骤)。

现在,应该注意两点(见图 14 和图 15):

  • 在这个示例中,我们假设对于所有部件输入相同的 virtuser 密码。
  • 对于每个部件,需要输入 JDBC_DRIVER_URIDATABASE_DESIGN_URI。理想情况下,可以在模式编辑器中使用正确的语法预先填写这些值。
图 14. 输入语法正确的 URI
输入语法正确的 URI
输入语法正确的 URI
图 15. 模式随时可以部署了
模式随时可以部署了
模式随时可以部署了

成功了(见图 16)!

图 16. 成功了!
成功了!
成功了!

结束语

我们通过一个示例演示了如何扩展 WebSphere Process Server Hypervisor Edition 以满足 IBM 提供的模式无法满足的用户需求。具体地说,本文讲解了如何构建和部署一个与 IBM 提供的 Scalable Environment 模式等效的定制 WebSphere CloudBurst 模式,但是让它使用 WebSphere CloudBurst 管理的云之外的数据库。可以按照相同的过程构建多种风格的定制流程服务器拓扑。


下载资源


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing, WebSphere
ArticleID=630245
ArticleTitle=把定制的模式连接到云外数据库
publish-date=03022011