zRules Execution Server 拓扑结构简介

Webshpere Decision Server for z/OS 是 Websphere Operational Decision Manager 在 z/OS 上的产品套件,本文将详细介绍其核心组件 zRES 的拓扑结构及配置方式,向您展示业务规则管理系统在 z/OS 上的实现,及如何配置相应的拓扑结构去保证业务规则执行服务的高可靠性。

赵 学良, 高级软件工程师, IBM

赵学良 ,IBM 中国软件开发中心软件工程师。自 2008 年起,任职于 Websphere Operational Decision Management QA 团队。



2012 年 12 月 06 日

引言

Webshpere Decision Server for z/OS 是继 Websphere ILOG Rules For COBOL 支持在 z/OS 上实现业务规则管理系统应用之后,进一步完善了业务规则管理系统在 z/OS 上的实现和应用。从引入 COBOL 执行对象模型并为之生成对应的 Java 执行对象模型 (XOM),到 COBOL 程序直接本地调用业务规则执行服务器去执行业务规则集,Webshpere Decision Server for z/OS 为您提供了一个真正端到端的基于 z/OS 的业务规则管理系统。

本文将为您介绍 Webshpere Decision Server for z/OS 产品套件中新推出的业务规则执行服务器 zRule Execution Server, 以及如何配置它的拓扑结构,从而实现业务规则执行服务在 z/OS 上的高可靠性。


zRules Execution Server (zRES) 简介

zRES 是 IBM 在 Webshpere Decision Server for z/OS 产品套件中新推出的基于 z/OS 的业务规则执行服务器,与传统的 ILOG 业务规则执行服务器(Rule Execution Server)不同,它并不运行在任何 Java 应用服务器上,而是作为 z/OS 上的一个子系统,直接运行在 z/OS 的地址空间。zRES 同时提供 COBOL 数据结构到 JAVA 对象的转换服务,从而使得 COBOL 程序能够直接调用基于 Java 的业务规则引擎去执行业务规则集。

当 zRES 安装配置成功后,根据配置 zRES 子系统时定义的子系统 ID(如 HBRA),会有两个开始任务 HBRAMSTR 和 HBRACNSL 生成,其中 HBRAMSTR 开始任务会在 zRES 子系统的 Master 地址空间启动一个 JVM,加载 zRES 规则执行服务器。如果规则执行服务器有自己的规则控制台 RES Console,HBRAMSTR 任务会调用 HBRACNSL 开始任务 , 在 zRES 子系统的 Console 地址空间启动一个 JVM, 加载规则控制台 RES Console, 并建立它们之间的关联。

如下图 1 所示,zRES 由规则执行服务器 zRES Server 和规则管理控制台 RES Console 构成,它们分别运行于同一个 z/OS LPAR 的独立地址空间。zRES Server 组件在子系统 Master 地址空间(HBRAMSTR)运行一个与本地程序相交互的中间层和一个用来加载规则执行组件 XU(execution unit) 的 JVM, RES Console 组件在 Console 地址空间 (HBRACNSL) 运行一个独立的 JVM 加载 Jetty web 容器,并在 Jetty web 容器上运行规则管理组件 RES Console. 通过在不同的地址空间启用 JVM 来加载规则执行组件和规则集管理组件,可以让我们有针对性的为规则执行组件创建相应的拓扑结构来保证规则执行服务的高可靠性。

图 1. zRES 架构图
图 1. zRES 架构图

Decision Server for z/OS 提供了三个 COBOL API: HBRCONN、 HBRRULE、 HBRDISC,用来支持 COBOL 应用和业务规则执行服务器的交互。

  • HBRCONN: 建立 COBOL 应用和 zRES 规则执行服务器的连接
  • HBRRULE: 调用规则执行服务,将 COBOL 数据结构映射成 Java 对象,并调用 ILOG 规则执行引擎去执行业务规则,并将执行结果从 Java 对象映射成 COBOL 数据,返还调用程序。
  • HBRDISC: 断开与 zRES 规则执行服务器的连接。

zRES 的配置基本概念

zRES 的配置是通过修改 zRES 子系统数据集 SHBRPARM 中的配置文件来完成的。如下图 2 所示,一个 zRES 子系统的 SHBRPARM 数据集包含 12 个成员文件,其中 HBRINST 成员提供了用于初始化子系统实例的 JCL 替换变量,在配置 zRES 子系统实例前,用户需要修改 HBRINST 成员,指定子系统的具体配置,如子系统 ID,产品安装路径,规则控制台 RES Console 的 Web 端口,规则控制台 RES Console 与规则执行组件 XU 的通信端口,规则集持久化方式及路径等 , 在提交初始化子系统实例 JCL 后,会根据 HBRINST 成员的变量设置,初始化子系统并自动配置图 2 所示的其他 11 个子系统配置文件。而 zRES 的不同拓扑结构,正是通过设置这些配置文件来完成的。

图 2. zRES 子系统配置数据集
图 2. zRES 子系统配置数据集

diag_param_dataset.jpg


zRES 的拓扑结构简介及配置

在生产环境中,zRES 提供了四种拓扑结构,单一服务器,共享同一控制台的服务器组,XU 运行于单一 CICS region 的单一服务器,XU 运行于多个 CICS region 的单一服务器。

本文接下来将为您介绍每一种拓扑结构及如何通过配置 SHBRPARM 数据集的配置文件去实现相应的拓扑结构。

单一服务器结构

单一服务器拓扑结构由一个单一的规则执行服务器和规则控制台组成,整个拓扑结构只包含一个 zRES 子系统,这也是 zRES 最基本的拓扑结构,通常用来支持批处理任务对业务规则的执行调用。针对这种拓扑结构,需要如下配置 zRES 子系统数据集 SHBRPARM

  • HBRMSTR 配置文件指定 zRES 服务器的子系统 ID, 子系统的 USS 工作目录 , 服务器的运行模式,是否启动自己的控制台,以及用于加载规则执行组件 XU 的 JVM 配置。
  • HBRCMMN 配置文件指定规则控制台 RES Console 与规则执行组件 XU 的通信端口。
  • HBRPSIST 配置文件指定规则集的持久化方式及数据库的配置。
  • HBRCNSL 配置文件指定规则控制台 RES Console 的 web 端口和用于加载 web 容器的 JVM 配置。
图 3. 单一服务器拓扑结构
图 3. 单一服务器拓扑结构

共享同一控制台的服务器组结构

共享同一控制台的服务器组拓扑结构由多个 zRES 子系统共同组成一个服务器组,并且这些子系统共享同一个规则控制台 RES Console。这种拓扑结构中的各个子系统分别运行在各自的地址空间,从而实现 zRES 在支持批处理任务时,在 z/OS 地址空间级的高可靠性。当一个 zRES 子系统出错时,批处理任务会自动切换到服务器组中的下一个可用的 zRES 子系统继续执行业务规则调用。针对这种拓扑结构,需要如下配置服务器组中每个子系统的配置数据集 SHBRPARM

  • 每个子系统的配置数据集 SHBRPARM 应包含相同 HBRPSIST 和 HBRCMMN 配置文件,以确保各个子系统使用同样的规则存储库和同样的规则管理控制台配置。
  • 每个子系统的 HBRMSTR 配置文件指定各个子系统的相关配置,但只能有一个子系统(如 HBR1)可以在 HBRMSTR 配置文件中启用 RES Console, 其他子系统的 HBRMSTR 配置文件不启用 RES Console, 与 HBR1 子系统共用同一个 RES Console。
  • 每个子系统的 HBRBATCH 配置文件都定义了一个 HBRSSIDLIST 变量,用来指定服务器组包含的 zRES 子系统 ID 及执行顺序。
图 4. 共享同一控制台的服务器组拓扑结构
图 4. 共享同一控制台的服务器组拓扑结构

XU 运行于单一 CICS region 的单一服务器

XU 运行于单一 CICS region 的单一服务器拓扑结构由一个单一 zRES 子系统构成,与前面提到的单一服务器拓扑结构不同的是,用于加载规则执行组件 XU 的 JVM 不是运行在 zRES 子系统的 Master 地址空间,而是运行在 CICS 子系统管理的 JVM Server 地址空间,从而更好的支持了 CICS 应用的业务规则执行服务。

针对这种拓扑结构,需要如下配置 zRES 子系统数据集 SHBRPARM

  • HBRMSTR 配置文件中指定服务器的运行模式为 NORULE, 这样 zRES 子系统将不会在 Master 地址空间加载用于运行规则执行组件 XU 的 JVM。
  • HBRCICSJ 配置文件中指定是否在 CICS 下运行规则执行组件 XU 和规则执行组件 XU 的 USS 工作目录。
  • HBRCICSD 配置文件中指定规则集存储库的 DB2 配置。
图 5. XU 运行于单一 CICS region 的单一服务器拓扑结构
图 5. XU 运行于单一 CICS region 的单一服务器拓扑结构

XU 运行于多个 CICS Region 上的单一服务器结构

XU 运行于多个 CICS region 的单一服务器拓扑结构同样由一个单一 zRES 子系统构成,与 XU 运行于单一 CICS region 拓扑结构不同的是,zRES 子系统支持在多个 CICS Region 的 JVM Server 上运行规则执行组件 XU,因此支持多个 CICS Region 上的业务规则执行服务,从而在 CICS Region 级别上实现了业务规则调用的高可靠性。

配置 XU 运行于多个 CICS region 的拓扑结构与配置 XU 运行于单一 CICS region 的拓扑结构大体相同,只是针对每一个支持的 CICS Region, 都需要一个类似于 CICSJ 的配置文件(如图 6 所示的 CICS2,CICS3), 用来指定运行于这个 CICS Region JVM Server 上的规则执行组件 XU 的 USS 工作目录。

图 6. XU 运行于多个 CICS Region JVM 上的单一服务器结构
图 6.XU 运行于多个 CICS Region JVM 上的单一服务器结构

小结

ZRES 通过将业务规则执行组件引入 z/OS,实现了业务规则的执行与 z/OS 应用的分离 , 而它提供的拓扑结构也很好的支持了批处理应用和 CICS 应用对业务规则的调用 , 并保证了业务规则调用在 z/OS 上的高可靠性。

参考资料

学习

获得产品和技术

讨论

条评论

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=850353
ArticleTitle=zRules Execution Server 拓扑结构简介
publish-date=12062012