文档库 最新最全的文档下载
当前位置:文档库 › ilog中文文档 brmanagement

ilog中文文档 brmanagement

ILOG JRules?5.0业务规则管理

教程

版权声明

版权所有 ? 1987-2004,ILOG S.A. (9 Rue de Verdun, 94253 Gentilly Cedex, France) 和ILOG, Inc. (1080 Linda Vista Ave.,Mountain View, California 94043, USA)。保留所有权利。

一般使用限制

本文档以及文档中描述的软件属于 ILOG 所有并作为 ILOG 的商业机密受到保护。只有获得许可或签署保密协议才能使用本文档以及本文档中描述的软件,且必须仅在该许可或保密协议的条款的范围内进行使用或复制。

事先未经 ILOG S.A. 或 ILOG, Inc. 的书面许可,不得以任何形式或任何手段复制或散布本文档或软件中的任何部分。

商标

ILOG、ILOG 图案、CPLEX 以及 ILOG 的所有其他徽标、产品名称和服务名称是ILOG 在法国、美国和/或其他国家/地区的注册商标或商标。

所有其他公司名称和产品名称均是其各自所有者的商标或注册商标。

Java 和所有基于 Java 的标志是 Sun Microsystems, Inc. 在美国和其他国家/地区的商标或注册商标。

Microsoft、Windows 和 Windows NT 是 Microsoft Corporation 在美国和其他国家/地区的商标或注册商标。

开放源代码许可

ILOG JRules 包括由 Apache Software Foundation、W3C、Java Community Process、https://www.wendangku.net/doc/5f10984267.html,、IBM 以及 LGPL 许可下的其他赞助商开发的软件。ILOG 免费发行此软件但不对其提供担保、支持和维护。您可以在以下站点中找到原始许可信息:

◆https://www.wendangku.net/doc/5f10984267.html,

◆https://www.wendangku.net/doc/5f10984267.html,/tomcat

◆https://www.wendangku.net/doc/5f10984267.html,

◆https://www.wendangku.net/doc/5f10984267.html,

◆https://www.wendangku.net/doc/5f10984267.html,

◆https://www.wendangku.net/doc/5f10984267.html,

◆https://www.wendangku.net/doc/5f10984267.html,

◆https://www.wendangku.net/doc/5f10984267.html,

◆https://www.wendangku.net/doc/5f10984267.html,

◆https://www.wendangku.net/doc/5f10984267.html,

/doc/licenses目录中提供了 ILOG JRules 包括的所有开放源代码软件的完整许可信息。

目录

目录

关于本业务规则模型教程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5本业务规则模型教程简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7开始之前. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

将要学习的内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

设置环境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

教程概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

用户和角色. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

规则属性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9运行完成的教程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11打开修改的 Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12

创建新规则. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13

添加菜单项. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14

设置权限管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

执行规则. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16任务 1:设置登录面板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17步骤 1:更改 Builder 的行为. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

步骤 2:处理登录面板信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19

I L O G J R U L E S5.0—业务规则管理教程3

查看结果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20任务 2:向规则中添加业务信息. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23步骤 1:扩展默认的规则库模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24

步骤 2:添加实现属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26

查看结果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27任务 3:扩展 Rule Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29步骤 1:添加新的操作类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30

步骤 2:声明插件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31

查看结果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32任务 4:定义权限管理策略. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35步骤 1:定义定制权限管理器类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36

查看结果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37任务 5:设置部署行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39步骤 1:创建提取查询 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40

步骤 2:将扩展的属性用于运行时控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42附录 A扩展的 Web Rule Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43定制 Web Rule Builder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44

部署和启动. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44索引 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45

4I L O G J R U L E S5.0—业务规则管理教程

前 言

I L O G J R U L E S 5.0 — 业务规则管理教程5

关于本业务规则模型教程

由于每个公司所希望使用的处理方法,以及对内部用户实行的管理控制级别不同,因此 JRules 提供了开放的规则库和 Builder 环境,并使用户能够定制规则库和 Builder 。本《业务规则管理教程 》是为那些希望实施和定制业务规则模型 (BRM) 以支持与规

则生命周期相关的各种实践的 Java 开发人员编写的。(业务分析人员也可以阅读完成的教程以查看实施结果)。

本教程假定用户已熟悉 ILOG JRules 体系结构。

手册组织结构

本手册包括以下几部分:

◆本业务规则模型教程简介 — 包含开始本教程所需的信息以及教程案例的概述。◆运行完成的教程 — 介绍如何打开扩展的 Rule Builder ,并通过展示在不同任务中添加的功能来总结本教程。

◆任务 1:设置登录面板 — 展示如何设置登录面板,以作为本教程的起点。◆任务 2:向规则中添加业务信息 — 展示如何定义定制规则类及其属性。◆任务 3:扩展 Rule Builder — 展示如何设置 Rule Builder ,使其使用前面任务中声明的属性。

◆任务 4:定义权限管理策略 — 详细说明如何实施权限管理。

◆任务 5:设置部署行为—展示如何设置部署行为,以进一步扩展规则管理流程。

◆扩展的 Web Rule Builder—详细说明如何从默认的 Web Rule Builder 样例中访问扩

展的规则模型。

相关文档

ILOG JRules 文档包括多本手册。为帮助您找到所需的信息,请参见JRules 概述,其

中介绍了此产品的所有功能以及文档的组织方式。

6I L O G J R U L E S5.0—业务规则管理教程

本业务规则模型教程简介

本《业务规则管理教程》通过实际的任务来帮助用户定制业务规则模型 (BRM)。阅读完本教程,您将了解如何实施定制的业务规则模型,以及如何扩展 Rule Builder 来使用添加的功能。

本简介包括以下几部分:

◆开始之前

◆教程概述

I L O G J R U L E S5.0—业务规则管理教程7

8I L O G J R U L E S 5.0 — 业务规则管理教程

开始之前

开始本教程之前,您应当首先熟悉以下内容:◆将要学习的内容◆设置环境将要学习的内容在本教程中,您将学习如何:◆通过向规则中添加业务信息来扩展规则库。◆扩展 Rule Builder 以添加新的菜单选项,使这些选项使用已定义的业务信息。◆为业务规则定义定制的严格权限管理策略。◆根据您自己的实际情况来定制规则的部署。完成本教程需要 2 到 4 小时。设置环境本教程中使用的所有文件包含在 \brmanagement 目录中。同时,您可以在 \brmanagement\work 目录中进行工作,该目录在本文档中为 。大多数任务要求用户将“开始”目录中的内容复制到工作目录中,然后按照步骤完成练习。最终结果将放在“结束”目录或下一个练习的“开始”目录中。例如:◆任务 1:●开始目录: \brmanagement\task1●结束目录: \brmanagement\task1_end 在每个任务结束时,您可能希望编译并运行扩展的 Rule Builder 以查看结果。要查看结果,请执行以下操作:1.在命令提示符或 UNIX shell 下进入以下目录:\brmanagement\taskn 2.键入:ant run 注意: 指 ILOG JRules 教程的安装目录。例如:在 Windows 中为 C:\ILOG\JRulesXX\tutorials ,在 UNIX 中为 /usr/ILOG/JRulesXX/tutorials 。

I L O G J R U L E S 5.0 — 业务规则管理教程9

教程概述

实际的业务规则管理可能涉及规则生命周期的多个重要方面,例如:

◆哪些用户可以编辑规则?

◆什么信息应当使用规则保存?

◆何时可以删除规则?

本教程采用一家名为 Nice Car Insurance 的虚拟汽车保险公司作为案例,介绍该公司的业务规则和维护实践。在本案例中,Nice Car Insurance 业务用户使用 Builder 来创建和编辑在处理报价申请的系统中使用的规则。

要达到此目的,Nice Car Insurance 案例将实施以下细节:

◆用户和角色

◆规则属性

用户和角色

本教程中的用户是指使用 Rule Builder 的人员。用户具有用户名和角色。“任务 1:设置登录面板”中对各种角色做了介绍。

Rule Builder 在启动之前将显示验证面板,用户在此面板中输入用户名和密码。这将自动确定用户的角色和 Rule Builder 模式。“运行完成的教程”中对用户名/密码组合做了简要说明。

规则属性

为了确保规则管理的一致性,Nice Car Insurance 定义了以下四种属性来附加到每个规则:“author ”、“status ”、“effectiveDate ”和“expirationDate ”。在 Rule Builder 的“文件”>“新规则库”菜单中选择“标准扩展”后,将显示这些属性。但是,在本教程中,我们从标准规则库开始,并展示如何开发这些属性(虽然这些属性的功能可能与本教程所要实现的默认实施略有不同)。

作者

“author ”属性包含创建规则的用户的名称。新规则创建后,其“author ”属性将设置为当前用户的名程。“author ”属性为只读,不能对其进行修改。

注意:教程中定义了一套规则和一个简单的保险应用模型以支持本案例,并帮助用户理解各个概念。但是,实际的对象模型以及规则的组织不在本教程所讨论的范围之内。

状态

规则的状态指定了该规则在生命周期中所处的位置。它可以是以下状态之一:

“new”、“defined”、“validated”、“rejected”、“deployable”或

“inactive”。新规则创建后,其“status”属性定义为“new”。

能否对规则进行编辑、删除或版本控制,取决于规则状态和用户角色。

生效日期和到期日期

规则具有两种日期属性。这两种属性可以确定规则在此期间有效的时间段:

◆effectiveDate—规则开始生效的日期。规则创建后,其“effectiveDate”

属性设置为当前日期。

◆expirationDate—规则的到期日期,即从此以后规则不再有效。可以不定义

“expirationDate”属性,在此情况下,规则永不到期。

使用此规则所应用到的策略的日期而不是当前日期来确定规则是否有效。

“expirationDate”属性的日期必须始终迟于“effectiveDate”属性的日期。但

是,在本案例中,此约束并不自动执行。而是,使用与“项目”>“检查生效日期”

菜单项相关联的定制 Builder 操作来进行检查。

10I L O G J R U L E S5.0—业务规则管理教程

运行完成的教程

本部分介绍如何运行完成的教程,并向您展示将要执行的各个任务的最终结果。同样,它为业务用户提供了有用的摘要。

本部分划分为以下几步操作:

◆打开修改的 Builder

◆创建新规则

◆添加菜单项

◆设置权限管理

◆执行规则

I L O G J R U L E S5.0—业务规则管理教程11

12I L O G J R U L E S 5.0 — 业务规则管理教程

打开修改的 Builder

在“任务 1:设置登录面板”中,您将定制 Builder ,使其在启动时显示登录面板,从而限制访问。要查看此任务的结果,请执行以下操作:1.在命令提示符或 UNIX shell 下,进入 /brmanagement/final 目录并运行 ant run 命令。启动时将显示登录面板:2.使用用户名/密码组合 administrator1/administrator1 进行登录。其他组合为:analyst1/analyst1reviewer1/reviewer1定制的 Builder 打开时将显示 Nice Car Insurance

规则库:

创建新规则

在“任务 2:向规则中添加业务信息”中,您将定制规则库,使新规则的

“author”属性自动设置为用户名。要查看此任务的结果,请执行以下操作:

1.展开 MotorVehicle 规则包,然后展开 Motorbike 规则包。

2.添加新的 BAL 规则。在属性表中可以看到,“author”属性被设置为用户名

I L O G J R U L E S5.0—业务规则管理教程13

添加菜单项

在“任务 3:扩展 Rule Builder”中,您将向 Rule Builder 添加菜单项,并将其与操作

相关联。要查看此任务的结果,请执行以下操作:

1.在 Rule Builder 中选择“项目”菜单,您将注意到已添加菜单项“检查生效日

期”。Array

2.选择“检查生效日期”菜单项。将显示以下弹出窗口

14I L O G J R U L E S5.0—业务规则管理教程

I L O G J R U L E S 5.0 — 业务规则管理教程15

设置权限管理

在“任务 4:定义权限管理策略”中,您将了解如何设置权限以更改规则的状态。要查看此任务的结果,请执行以下操作:

1.选择一个状态为“deployable ”的规则,例如 SubCompact 规则包中的 Young Driver 规则:

请注意此规则不可编辑:

2.在属性表中,将此规则的状态更改为“inactive ”。此规则将立即变为可编辑规

则:

16I L O G J R U L E S 5.0 — 业务规则管理教程

执行规则

在“任务 5:设置部署行为”中,您将定制规则库,以便仅对状态为“deployable ”的规则进行部署。要查看此任务的结果,请执行以下操作:1.在属性表中,您将注意到所创建的新 BAL 规则的状态为“new ”,此为默认状态。同时,还能注意到 Motorbike 规则包中的另外两条规则的状态也是“new ”,但 SubCompact 或 SUV 规则包中所有规则的状态都是“deployable ”。2.执行规则。您可以看到尚未对新 BAL 规则和 Motorbike 规则进行部署:关闭 Builder 但不保存,然后继续执行“任务 1:设置登录面板”

任 务

I L O G J R U L E S 5.0 — 业务规则管理教程17

1

任务 1:设置登录面板

在此任务中,您将向默认 Rule Builder 添加登录面板。通过此操作可以指定启动行为(登录、通知规则库中的更改等),并定义应用程序所需的会话范围内的信息。

此任务包括以下步骤:

◆步骤 1:更改 Builder 的行为

◆步骤 2:处理登录面板信息

◆查看结果

注意:根据登录面板的结果,本教程将以正确的模式(管理人员、建模人员和开发人员)使用 API 来启动 Builder 。

18I L O G J R U L E S 5.0 — 业务规则管理教程

步骤 1:更改 Builder 的行为

在此步骤中,您将更改 Builder 的行为,使其在启动时显示登录面板。您将通过创建 wrapper 类 nicecar.builder.NcBuilder 来完成此操作,该 wrapper 类调用默认的 Rule Builder 类 ilog.rules.tools.IlrBuilder 。该 wrapper 类能够使用户在调用 Rule Builder 之前执行一系列验证步骤。

1.先将目录 \brmanagement\task1 中的内容复制到您的工作目录 \brmanagement\work 中。

按以下步骤编辑文件 \src\nicecar\builder\NcBuilder.java :

2.在 main 函数的开头添加以下行:

IlrRepository repository = ilog.rules.tools.IlrBuilder.getRepository(); /*

* Make our extension the default

*/

try {

repository.addRepositoryExtension

("nicecar.repository.NcRepositoryModelExtension");

}

catch (IlrRepException ex) {

System.err.println("Repository Extension could not be set");

quit(-1);

}

这些行将验证您所使用规则库的类型是否正确。用户角色Nice Car Insurance 案例要求每个用户在登录到 Rule Builder 之前进行身份验证。用户具有用户名和角色。包括以下三种不同的角色:

◆分析人员是可以创建新规则并编辑新规则的用户,但不允许此类用户决定是否可以部署规则。此角色对应于 Builder 的“管理人员”模式(有关此模式的详细信息,请参见《Rule Builder 的联机帮助 》

)。◆审查人员是可以基于战略、商业或法律方面的事项来核准或拒绝规则的用户。此角色对应于 Builder 的“建模人员”模式。

管理人员是可以部署和删除规则的用户。此角色对应于 Builder 的“开发人员”模式。注意:有关 NcRepositoryModelExtension 的参考将在任务 2 中进行介绍。

3.还是在 main 函数中,在以下行之后:

NcRepositoryModelExtension ext = (NcRepositoryModelExtension)

repository.getRepositoryModelExtension();

添加以下行,以便设置 Builder 的登录名而不是历史记录器中的系统登录名:

String currentUser = ext.getCurrentUser();

if (currentUser != null) {

// Log builder login name instead of system login name

// for history events.

if (repository.getHistoryManager() != null) {

repository.getHistoryManager().getCurrentSession().setInfo(currentUser);

}

}

然后添加以下行,以便根据用户角色来确定 Builder 角色的位置并启动此角色:

String mode = getMode(currentUser);

if (mode == null) {

System.err.println("mode cannot be null");

System.err.println("The builder will exit");

quit(-1);

}

// Launch the builder with correct mode.

ilog.rules.tools.IlrBuilder.main(buildArgumentLine(args, mode));

注意:这样就对文件\src\nicecar\builder\NcConstants.java

进行了声明,且该文件定义了NcBuilder类中所使用的变量。

步骤 2:处理登录面板信息

在此步骤中,您将添加项目处理登录面板信息所需的功能。

按以下步骤编辑文件

\src\nicecar\builder\NcLoginPanel.java:

1.添加以下行,以获得登录和密码信息:

public String getLogin() {

return loginField.getModel().getSelectedItem().toString();

}

public String getPassword() {

return new String(passwordField.getPassword());

}

2.执行下面的actionPerformed方法,以验证密码:

public void actionPerformed(ActionEvent e) {

IlrRepositoryModelExtension ext =

repository.getRepositoryModelExtension();

I L O G J R U L E S5.0—业务规则管理教程19

20I L O G J R U L E S 5.0 — 业务规则管理教程

if ( ext instanceof NcRepositoryModelExtension) {

if (!((NcRepositoryModelExtension)ext).selectCurrentRole

(getLogin(), getPassword())) {

showErrorMsg("Login failure");

} else {

hide();

}

}

}

3.保存所做的工作。

查看结果

要验证是否已向定制的 Builder 中添加了登录面板,请执行以下操作:

1.编译项目并启动扩展的 Rule Builder (如“设置环境”中所述):

将显示登录面板:

2.输入以下用户名/密码组合之一:

analyst1/analyst1

reviewer1/reviewer1

administrator1/administrator1

由于尚未对 Builder 进行任何设置,Builder

将显示默认视图:

相关文档