BRMS 用户指南
适用于 JBoss Rules 开发人员、规则作者和商业分析员。
版 5.2.0
摘要
第 1 章 简介 复制链接链接已复制到粘贴板!
1.1. 本版本的新特征 复制链接链接已复制到粘贴板!
| 功能 | 修改 |
|---|---|
| 第 4.3.9 节 “ Guided 决策表(基于 Web)” | 关于添加 Guide Decision Table 的其他细节。 |
| 第 4.3.10 节 “规则模板” | 关于添加规则模板的内容。 |
| 第 5 章 事实模型(对象模型) | 添加了关于 Fact Model 的其他信息。 |
| 第 6 章 工作集(Working Set) | 添加了关于 Working Set 的新章节。 |
| 第 8.3.1 节 “WebDav 和特殊字符” | 添加了关于在 WebDAV 里使用多字节字符的说明。 |
1.2. 什么是 BRMS? 复制链接链接已复制到粘贴板!
重要
1.3. 什么时候应该使用 BRMS? 复制链接链接已复制到粘贴板!
- 需要管理用于部署和修改规则的系统。
- 具有不同技能级别的多个用户需要访问和编辑规则。
- 现有的用于管理规则的基础结构。
- 需要管理许多“商业”规则,它们不是作为应用程序的一部分的技术规则。
1.4. 谁会使用 BRMS? 复制链接链接已复制到粘贴板!
- 商业分析员
- 规则专家
- 开发人员
- 规则管理员
1.5. 功能概述 复制链接链接已复制到粘贴板!
- BRMS web 用户界面支持多语言,目前包括美式英语、日语和简体中文。
- 不同类型的规则编辑器(图形化和文本编辑器都有)。
- 本版控制(用于历史资产)
- 归类
- 构建和部署
- 将多个规则“资产”作为单个软件包存储。
第 2 章 架构 复制链接链接已复制到粘贴板!
图 2.1. 架构图表
2.1. 可重用的组件 复制链接链接已复制到粘贴板!
RepositoryService,它在 ServiceImplementation 里实现。GWT ajax 前端使用 GWT 的异步回调机制和这个接口交互。Seam 的配置文件是 components.xml。
Guvnor.html。对于熟悉 GWT 的开发人员,每个功能都可以独立使用。JBRMSFeature 类和实现它的类(理论上也可以是独立的)包含了其他的信息。
2.2. 版本和存储 复制链接链接已复制到粘贴板!
.cnd 文件在节点类型定义的源码里。软件包是一个文件夹,每个资产都是一个文件:资产可以是文本的也可以拥有二进制附件。
第 3 章 快速起步指南 复制链接链接已复制到粘贴板!
图 3.1. JBoss 企业级 BRMS 平台的 Web 用户界面
- Info:这是初始页面,里面有到资源的链接。
- Rules:这是类别和商业用户视图。
- Package:这是配置和管理知识软件包的地方。
- Deployment:这是管理部署快照的地方。
- Admin:管理性功能(归类、状态、导入和导出)。
3.1.
系统支持的浏览器 复制链接链接已复制到粘贴板!
| 操作系统 | 浏览器 |
|---|---|
| RHEL 5.x 及更高版本 | FireFox 3.0+ |
| Microsoft Windows | FireFox 3.0+ |
| Microsoft Windows | Internet Explorer 7+ |
| Mac OSX 10.x | FireFox 3.0+ |
| Mac OSX 10.x | Safari 4 和 5 |
3.2. BRMS 还是 Guvnor? 复制链接链接已复制到粘贴板!
3.3. 初始的配置 复制链接链接已复制到粘贴板!
- 如果是一个全新的库,你需要进入“Admin”,然后选择“Manage Categories”。添加一些类别(注意这些类别只适用于分类目的)。
- 规则需要使用一个事实模型(也称为对象模型)。从 "Package Management" 功能里,你可以创建一个新的知识软件包(knowledge package)。软件包称应该有一个有意义的名称,而且不包括空格。
- 要上载模型,你可以使用一个包含代码和规则里将使用的事实模型(API)的
.jar文件。在 "Model Editor" 屏幕里,你可以上传一个.jar文件。为此,请从你在前一步骤里创建的列表里选择软件包。 - 为了导入你上传的事实类型(add import 语句),现在需要对刚创建的软件包配置进行编辑。请保存修改。
- 此时,软件包就完成了配置且可以使用了。请注意,你也可以导入一个现有的 DRL(Drools Rule Language)软件包,其规则将和单个资产一样存储在库里。
3.4. 编写规则 复制链接链接已复制到粘贴板!
- 在配置了至少一个类别和软件包之后,你就可以开始编写规则了。
- 虽然有多个规则格式,但 BRMS 都将其视为“资产”。
- 通过
- 你也得选择一个类别。分类提供了独立于知识软件包查看规则的途径(确实,你甚至可以使规则出现在多个知识软件包里)。你会发现把它当作某种标签将有助于理解。
- 选择 "Business Rule (Guided Editor)" 格式。
- 这将打开一个规则模型(Guided Editor)。你可以添加和编辑当前软件包里使用的模型的条件和行为。而且,为这个软件包配置的任何 DSL Sentence 模板都是可用的。
- 当你完成了规则的编辑后,你可以检入所做的修改(换句话说就是保存修改),或者你可以选择验证或“查看源”(对于有效的源而言)。
- 你也可以从规则编辑器里添加或删除类别并修改其属性,如文档等。(如果你不确定怎么去做,请用自然语言描述规则并检入到系统里。以后这可当作模板。)
3.5. 搜索 复制链接链接已复制到粘贴板!
3.6. 部署 复制链接链接已复制到粘贴板!
- 在软件包里编辑了规则后,你可以点击“Package”功能,打开软件包并进行构建。
- 如果构建过程成功完成,你应该可以下载二进制软件包文件并将其部署到运行系统里。
- 你也可以制作软件包的“快照”以用于部署。这会固定某个时刻的软件包的内容,任何的并发修改都不会影响到它。这会使得软件包可通过下列格式的 URL 来访问:
http://<your server>/jboss-brms/org.drools.guvnor.Guvnor/packages/<packageName>/<snapshotName>。
第 4 章 BRMS 概念 复制链接链接已复制到粘贴板!
4.1. 规则是资产 复制链接链接已复制到粘贴板!
注意
4.2. 分类 复制链接链接已复制到粘贴板!
图 4.1. 类别
图 4.2. 可以有多个类别的资产
图 4.3. 创建类别
注意
4.3. 规则授权 复制链接链接已复制到粘贴板!
4.3.1. 资产编辑器(Asset Editor) 复制链接链接已复制到粘贴板!
图 4.4. 资产编辑器视图
4.3.2. 用 Guided Editor 编辑商业规则 复制链接链接已复制到粘贴板!
注意
例 4.1. Guided Editor
4.3.3. 规则的分解 复制链接链接已复制到粘贴板!
- When规则的 When 部分是一个必须满足的条件。例如,在 例 4.1 “Guided Editor” 里,when 部分是:当申请者低于 21 岁。
- Then规则的 Then 部分是规则的条件部分已经满足后必须执行的行为。例如,在 例 4.1 “Guided Editor” 里,when 部分是:当申请者低于 21 岁。
例 4.2. 修改规则
过程 4.1. 在 Fact Type 里添加字段
选择模型
从屏幕的左侧导航面板里选择 Knowledge Bases。扩展包含模型的软件包并选择 model。点击 open 从列表里打开模型。添加字段
点击后面的加号以扩展 Fact Type,然后选择添加字段(Add Field)。输入字段细节
添加细节到弹出对话框里。在 Field name 字段里输入名称 guarantor,然后从 Type 下拉菜单里选择 True or False。选择 File 和 Save changes 将修改保存到模型里。
过程 4.2. 在规则里添加限制
删除当前的限制
当编辑现有的规则时,你有必要删除当前的限制。这可以确保处理多个限制时选择正确的逻辑操作符(And 或 Or)。在这个例子里,点击 Age 条件后面的减号。修改约束
点击文本 There is an Applicant 打开 Modify Constraints Dialogue。从 Add a restriction on a field 下列菜单里选择限制。在这个例子是选择 Age。从 Multiple field constraints 下列菜单里选择 All of (and)。指定第一个约束
点击文本 all of the following 以打开 Add fields to this constraint 对话框并添加限制。在这个例子里是选择 Age。从新的下拉菜单里选择 less than,然后点击铅笔图标以编辑它的值,选择 literal,然后点击 Value 输入合适的值,这个例子里是输入 21。指定第二个约束
点击文本 all of the following 以打开 Add fields to this constraint 对话框并添加限制。在这个例子里是选择 Guarantor。从新的下拉菜单里选择 equal to,然后点击铅笔图标以编辑它的值,选择 literal,然后点击 true 输入合适的值,并选择 False。
4.3.4. Saliance 复制链接链接已复制到粘贴板!
4.3.5. 用户驱动的下拉列表 复制链接链接已复制到粘贴板!
4.3.6. 增加 DSL 语句 复制链接链接已复制到粘贴板!
重要
[when] 和 [then] 部分。
图 4.5. Guided Editor 里的 DSL
4.3.7. DSL 规则 复制链接链接已复制到粘贴板!
图 4.6. DSL 规则
4.3.8. 电子表格决策表 复制链接链接已复制到粘贴板!
.xls 文件格式),每一行都代表一个规则。本章不会涉及电子表格的细节。
图 4.7. 电子表格决策表
.xls 文件。你也可以下载从相同的对话框下载当前版本的电子表格。为了创建一个新的决策表,你必须启动“规则向导“,它包含一个这个过程的选项,然后你可以上传 .xls 文件。
4.3.9.
Guided 决策表(基于 Web) 复制链接链接已复制到粘贴板!
- 你可以双击单个的单元格以弹出对应底层数据类型的编辑器。相同列的单元格组可以通过点击第一个单元格并拖动光标或在点击第一个单元后再点击要选取范围里的最后一个(同时按住 Shift 键)来进行选择。
- 或者,你也可以使用箭头键在表格里移动。按住 Enter 键将弹出对应的编辑器。按住 Shift 同时用箭头键扩展选择范围可以选择一个区域。
图 4.8. 决策表
4.3.9.1. 主要的组件 复制链接链接已复制到粘贴板!
- 上面的部分允许定义表的列来代表规则属性、元数、条件和行为。
- 下面的部分包含实际的表,而每一行都定义单独的规则。
图 4.9. 主要的组件
4.3.9.2. 列配置 复制链接链接已复制到粘贴板!
- Literal单元格里的值将用操作符和字段进行比较。
- Formula单元格里的表达式将被评估,然后和字段进行比较。
- Predicate不需要字段,表达式将被评估为 true 或 false。
图 4.10. 列配置
4.3.9.2.1. 工具列 复制链接链接已复制到粘贴板!
4.3.9.2.2. 属性列 复制链接链接已复制到粘贴板!
when $c : Cheese( name == "Cheddar" ) then ... end
when
$c : Cheese( name == "Cheddar" )
then
...
end
when not Cheese( name == "Cheddar" ) then ... end
when
not Cheese( name == "Cheddar" )
then
...
end
4.3.9.2.3. 元数据列(Meta-data column) 复制链接链接已复制到粘贴板!
4.3.9.2.4. 条件列(Condition Column) 复制链接链接已复制到粘贴板!
4.3.9.2.5. 行为列(Action Column) 复制链接链接已复制到粘贴板!
4.3.9.4. 单元合并 复制链接链接已复制到粘贴板!
图 4.12. 单元合并
4.3.9.5. 单元分组 复制链接链接已复制到粘贴板!
图 4.13. 单元分组
4.3.9.6. Otherwise 操作 复制链接链接已复制到粘贴板!
== 或不等号 != 操作符的 literal 值的条件列可以利用一个特殊决策表的单元格值 otherwise。这个特殊的值允许定义规则来匹配没有在表里其他规则里显性定义的值。我们最好用以下的例子来解释:
4.3.10. 规则模板 复制链接链接已复制到粘贴板!
过程 4.3. 创建规则模板
创建规则模板资产
从 Knowledge Bases 菜单,选择 Create New,然后选择 New Rule Template。定义资产
输入模板的名称、类别和描述。定义模板
使用 guided editor 来构造规则。模板关键字(Template key) 是字段约束和行为部分里的占位符。你也可以在标准 guided editor 继续使用 Literal 值、公式(Formula)和表达式(Expression)。
例 4.3. 示例模板
4.3.10.1. 定义模板数据 复制链接链接已复制到粘贴板!
注意
图 4.14. 模板数据网格
4.3.10.1.1. 单元合并 复制链接链接已复制到粘贴板!
图 4.15. 单元合并
4.3.10.1.2. 单元分组 复制链接链接已复制到粘贴板!
图 4.16. 单元分组
4.3.10.2. 生成的 DRL 复制链接链接已复制到粘贴板!
图 4.17. 生成的 DRL
4.3.11. 规则流 复制链接链接已复制到粘贴板!
4.3.12. 技术性规则(DRL) 复制链接链接已复制到粘贴板!
图 4.18. DRL 技术性规则
4.3.13. 功能 复制链接链接已复制到粘贴板!
图 4.19. 功能
4.3.14. 数据枚举(下拉列表配置) 复制链接链接已复制到粘贴板!
'Board.type' : [ 'Short', 'Long', 'M=Mini', 'Boogie'] 'Person.age' : [ '20', '25', '30', '35' ]
'Board.type' : [ 'Short', 'Long', 'M=Mini', 'Boogie']
'Person.age' : [ '20', '25', '30', '35' ]
java.util.List 到 BRMS 的 classpath 的代码。不是指定 BRMS 的值列表,代码是返回字符串列表。(通常,如果你想为规则使用不同的显示值,你可以在字符串里使用 "=" 符号。)例如,你可以修改上面的 Person.age 行为:
'Person.age' : (new com.yourco.DataHelper()).getListOfAges()
'Person.age' : (new com.yourco.DataHelper()).getListOfAges()
DataHelper 的类,它有一个返回字符串列表(位于 classpath 上)的方法 getListOfAges()。你当然可以将这些 “动态的“ 枚举和固定列表混合。例如,你可以用 JDBC 从数据库里加载它们。你第一次在会话里使用 Guided Editor 时将加载数据枚举。如果你有任何打开的 Guided Editor 会话,你将需要关闭它并重新打开规则才能看到发生的变化。要检查枚举是否已经加载,请进入软件包配置屏幕。你可以使用"保存并检验(save and validate)"软件包,这可以检查并反馈任何发生的错误。
4.3.15. 高级的枚举概念 复制链接链接已复制到粘贴板!
engineType" 和 "fuelType"。对于 "engineType" 你希望选择 "Petrol" 或 "Diesel"。现在,很明显燃油的选择必须取决于引擎类型(对于汽油我们有 ULP 和 PULP,而对于柴油我们有 BIO and NORMAL)。我们可以在枚举表达式里表达这种依赖关系:
'Vehicle.engineType' : ['Petrol', 'Diesel'] 'Vehicle.fuelType[engineType=Petrol]' : ['ULP', 'PULP' ] 'Vehicle.fuelType[engineType=Diesel]' : ['BIO', 'NORMAL' ]
'Vehicle.engineType' : ['Petrol', 'Diesel']
'Vehicle.fuelType[engineType=Petrol]' : ['ULP', 'PULP' ]
'Vehicle.fuelType[engineType=Diesel]' : ['BIO', 'NORMAL' ]
engineType,fuelType 的选项列表就被决定里。
Fact.field 名称)。它的值是一个字符串的 java.util.List。
=(new SampleDataSource2()).loadData()
=(new SampleDataSource2()).loadData()
'Fact.field[dependentField1, dependentField2]' : '(new com.yourco.DataHelper()).getListOfAges("@{dependentField1}", "@{dependentField2}")'
'Fact.field[dependentField1, dependentField2]' : '(new com.yourco.DataHelper()).getListOfAges("@{dependentField1}", "@{dependentField2}")'
depenentField1" 和 "dependentField2" 是 "Fact" 类型上的字段名称。它们用于计算作为 ”字段“ 值显示在下拉列表里的值列表。
4.4. 状态管理 复制链接链接已复制到粘贴板!
注意
图 4.20. 资产状态
4.5. 软件包管理 复制链接链接已复制到粘贴板!
警告
图 4.21. 软件包浏览器(Package Explorer)
- 商业资产(Business Asset):显示所有“商业规则”类型的列表,它包括决策表(Decision Table)、商业规则等。
- 技术资产(Technical Asset):显示被当作技术性规则的资产列表(如 DRL 规则、数据枚举以及规则流)。
- 功能(Function):在 BRMS 里,你也可以定义功能(这是可选的)。
- DSL:Domain Specific Language 也可作为资产存储。如果存在(通常只有一个),他们将和合适的编辑器 GUI 一起使用。
- 模型(Model):一个软件包需要至少一个模型。它用于规则。
图 4.22. 创建新的资产
图 4.23. 软件包配置
com.something.Hello 的模型。然后你将在软件包配置里添加 import com.something.Hello 并保存修改。
图 4.24. 构建软件包
4.5.1. 导入 drl 软件包 复制链接链接已复制到粘贴板!
.drl 文件。BRMS 将试图解析这个 drl 并自动创建一个软件包。它里面的规则将作为单个资产保存(仍然是 drl 的文本内容)。请注意,要实际上构建软件包,你需要上载一个合适的模型(以 .jar 形式)以供检验。这是一个单独的步骤。
4.6. 版本管理 复制链接链接已复制到粘贴板!
Subversion)里以文件版本的形式保存。然而,资产软件包通过快照方式根据需要(“On Demand”)划分版本。这个快照用于部署。下一节我们讨论部署管理和快照的更多细节。
图 4.25. 资产版本
4.7. 部署管理 复制链接链接已复制到粘贴板!
LATEST"(如果它是“LATEST”,那么它将是从主软件包里构建的最新版本而非快照)。你可以在代理里使用它或者将其粘贴到浏览器地址栏里作为文件下载。
图 4.26. 部署快照
4.8. 浏览库和查找规则 复制链接链接已复制到粘贴板!
图 4.27. 分类视图(Category View)
图 4.28. 软件包视图
第 5 章
事实模型(对象模型) 复制链接链接已复制到粘贴板!
- 上传包含应用程序和规则使用的 Java 类的
JAR文件。 - 在 BRMS 里声明的模型可以作为 KnowledgeBase 导出并用在 Java 代码里。
5.1. 全局区域(Global Area) 复制链接链接已复制到粘贴板!
注意
5.2. JAR 模型 复制链接链接已复制到粘贴板!
过程 5.1. 创建 JAR 模型
打开 New model archive (jar) 菜单
从 Knowledge Bases 菜单里,选择 Create New,然后选择 Upload POJO Model JAR。创建 JAR 模型资产
输入 JAR 模型的名字、类别和描述。选择模型所在的软件包或指定它应该添加到 Global Area 里。输入完毕后点击 OK。上传 JAR 到资产里
上传包含定义为常规 JAR 文件里的 Java 类和软件包的 JAR。
5.3. 声明式模型(Declarative Model) 复制链接链接已复制到粘贴板!
- 它强调模型属于知识库,标注应用程序。
- 这个模型可以有独立于应用程序的生命周期。
- 规则专有的注解可以丰富 Java 类型。
- JAR 文件必须在规则和使用它的应用程序之间保持同步,然而,声明式模型不需要保持同步。
- 你的规则里使用的整个事实模型的独立定义。
- 支持 Java POJO 模型的补充性事实定义。
过程 5.2. 创建声明式模型
打开 New Declarative Model 菜单
从 Knowledge Bases 菜单,选择 Create New,然后选择 New Declarative Model。创建一个新的声明式模型
指定新模型的名称。选择创建模型的软件包或者指定它是否应该添加到 Global Area。输入完毕后点击 OK。定义模型
点击 Add new fact type 并在弹出菜单的 name 字段输入事实的名称。添加事实字段
通过选择 Add field 按钮并在弹出菜单里输入信息来创建事实字段(Fact Field),添加注解
选择 Add annotation 按钮来创建事实注解。注解的Name 和 Value 字段都是强制的,但 Key 字段是可选的。如果没有指定 Key 值,它将被分配Value的一个缺省值。
5.3.1. 在 Java 里消费声明式模型 复制链接链接已复制到粘贴板!
例 5.1. 通过 API 处理声明的事实类型
注意
org.drools.examples)。
第 6 章
工作集(Working Set) 复制链接链接已复制到粘贴板!
注意
过程 6.1. 创建一个新的工作集
打开 New WorkingSet 对话框
从 Knowledge Bases 菜单,选择 Create New,然后选择 New WorkingSet。创建新的工作集
输入工作集的名称和描述。选择创建模型的软件包或者指定它是否应该添加到 Global Area。输入完毕后点击 OK。添加 Fact Type 到工作集里
将 fact type 从左边列表移至右边可以添加 fact type 到工作集里。右边列表的 fact type 将对工作集可用。在工作集里的 Fact Type 里添加约束
从下列菜单里选择 Fact type,选择 Field 值并添加所需的约束。
6.1. 检验 Field 约束 复制链接链接已复制到粘贴板!
- On Demand 检验
- 实时检验
注意
第 7 章 商业用户的视角 复制链接链接已复制到粘贴板!
第 8 章 集成规则和应用程序 复制链接链接已复制到粘贴板!
8.1. 知识代理(Knowledge Agent) 复制链接链接已复制到粘贴板!
重要
jboss-brms-engine.zip 里包括的 README_DEPENDENCIES.txt 包含了每个组件的依赖关系的细节。
drools-core 依赖关系,也就是 drools 和 mvel JAR 文件。这里没有其他的规则专有的依赖关系。
KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent( "MyAgent" ); kagent.applyChangeSet( ResourceFactory.newUrlResource( url ) ); KnowledgeBase kbase = kagent.getKnowledgeBase();
KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent( "MyAgent" );
kagent.applyChangeSet( ResourceFactory.newUrlResource( url ) );
KnowledgeBase kbase = kagent.getKnowledgeBase();
change-set.xml 示例。
ResourceFactory.getResourceChangeNotifierService().start(); ResourceFactory.getResourceChangeScannerService().start();
ResourceFactory.getResourceChangeNotifierService().start();
ResourceFactory.getResourceChangeScannerService().start();
图 8.1. 快照部署
change-set.xml 文件里的 URL,以指定你需要这个软件包。它指定了一个额外的版本,在这里是一个快照。每个快照都有自己的 URL。如果你需要最新的版本,你可用 LATEST 替换 NewSnapshot。
PKG)。将这个文件放入一个目录里并使用知识代理的 file 或 dir 功能。这将自动联系 JBoss 企业版 BRMS 平台服务器以获取在其他情形下可能不需要的更新。
8.2. 手动部署 复制链接链接已复制到粘贴板!
8.3. WebDAV 复制链接链接已复制到粘贴板!
WebDav 访问。WebDav 是一个基于 HTTP 的文件系统应用程序编程接口。大多数的操作系统,包括 Windows、Apple MacOS X 和 Linux 都提供访问 WebDAV 共享目录的集成支持。请参考操作系统供应商提供的配置说明文档。对于多数平台而言,也有许多第三方的 WebDAV 客户端工具。
http://localhost:8080/jboss-brms/org.drools.guvnor.Guvnor/webdav/
http://localhost:8080/jboss-brms/org.drools.guvnor.Guvnor/webdav/
Snapshots 是一个只读目录,它基本上是已创建的知识软件包的快照的视图。packages 目录包含作为目录的知识软件包列表,而目录则包含作为文件的单个资产。
8.3.1. WebDav 和特殊字符 复制链接链接已复制到粘贴板!
过程 8.1. 添加对 Unicode 的支持
- 停止应用服务器。
- 打开
server.xml文件。这个文件位于jbossweb.sar目录里。 - 在 web 连接器里添加
URIEncoding="UTF-8"。例如,对于 HTTP,这个代码应该是:<Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" /><Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 启动应用服务器。
8.4. URL 复制链接链接已复制到粘贴板!
.drl 到 URL 的结尾,如 /package/testPDSGetPackage/LATEST.drl,附加 /assetName.drl,它将显示该条目的 DRL,即使它不是一个 DRL 文件,如 /package/testPDSGetPackage/LATEST/SomeFile.drl。
第 9 章 收件箱和评论 复制链接链接已复制到粘贴板!
重要
9.1. 评论(Comment) 复制链接链接已复制到粘贴板!
图 9.1. 评论(Comment)
9.2. 收件箱(Inbox) 复制链接链接已复制到粘贴板!
图 9.2. 收件箱(Inbox)
- Incoming changes
- 这里会列出对用户之前编辑或评论的 artifact 的修改。
- Recently opened
- 这里会列出用户最近打开的 100 个 artifact 以供快速访问。
- Recently edited
- 提供用户编辑的最近 100 个 artifact 以供快速访问。
第 10 章 JBoss Developer Studio 集成 复制链接链接已复制到粘贴板!
重要
重要
10.1. 功能概述 复制链接链接已复制到粘贴板!
图 10.1. "Guvnor Repository Exploring" 视角
10.2. Guvnor 连接向导 复制链接链接已复制到粘贴板!
图 10.2. 连接向导
图 10.3. 连接向导
图 10.4. 连接向导
http://localhost:8080/jboss-brms/org.drools.guvnor.Guvnor/webdav。
图 10.5. 登录
10.3. Guvnor 库浏览器 复制链接链接已复制到粘贴板!
图 10.6. 浏览器
图 10.7. 属性
图 10.8. 文件内容
图 10.9. 文件内容
10.4. Guvnor 文件的本地拷贝 复制链接链接已复制到粘贴板!
图 10.10. 导航器
图 10.11. 属性
10.5. 用于本地 Guvnor 资源的行为 复制链接链接已复制到粘贴板!
- 更新(Update)
- 添加(Add)
- 评论(Commit)
- 显示历史(Show History)
- 比较版本(Compare with Version)
- 切换版本(Switch to Version)
- 删除(Delete)
- 断开连接(Disconnect)
图 10.12. 添加(Add)行为
图 10.13. 添加(Add)行为
mortages 文件夹为目的地。点击 “Finish” 添加所选文件到 Guvnor 库并创建本地文件和 Guvnor 库文件间的关联。这个向导不会允许你在添加新文件时覆盖现有的 Guvnor 库文件。
图 10.14. 比较
图 10.15. 比较
图 10.16. 版本
图 10.17. 历史
图 10.18. 历史
10.6. 导入 Guvnor 库资源 复制链接链接已复制到粘贴板!
图 10.19. 导入
图 10.20. 导入
图 10.21. 导入
图 10.22. 复制
10.7. Guvnor 插件的首选项 复制链接链接已复制到粘贴板!
图 10.23. 首选项
第 11 章 规则软件包签名(Rule Package Signing)的客户端配置 复制链接链接已复制到粘贴板!
重要
keytool 用于创建私有密钥和对应的公共数字证书。用私有密钥签名的软件包只可以用匹配的证书来检验。私有密钥存储在一个名为 keystore 的文件里,服务器使用它来自动为每个软件包签名。密钥里为每个客户端应用程序可用的公共证书被称为信任库(truststore)。信任库里的证书用于检验签名软件包的真实性。在下载过程中损坏或被修改的规则软件包将被客户端拒绝,因为其签名不再和证书匹配。
System.setProperty 设置。org.drools.core.util.KeyStoreHelper 类包含几个代表这些属性的常量。
- 已经安装了 JBoss 企业级 Web 平台并针对规则软件包签名进行了正确的配置。
- JBoss 企业级 Web 平台服务器所使用的包含数字证书的信任库的 URL。
- 信任库的密码(如果设置了的话)。
过程 11.1. 规则软件包签名(Rule Package Signing)的客户端配置
启用签名
将drools.serialization.sign属性设置为true。System.setProperty( KeyStoreHelper.PROP_SIGN, "true" );
System.setProperty( KeyStoreHelper.PROP_SIGN, "true" );Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置 TrustStore URL
设置drools.serialization.public.keyStoreURL属性为信任库所在的 URL。如果信任库位于客户端的 classpath 里,这可以通过getClass().getResource()方法来完成。例 11.1. 当信任库位于客户端的 classpath 里
URL trustStoreURL = getClass().getResource( "BRMSTrustStore.keystore" ); System.setProperty( KeyStoreHelper.PROP_PUB_KS_URL, trustStoreURL.toExternalForm() );
URL trustStoreURL = getClass().getResource( "BRMSTrustStore.keystore" ); System.setProperty( KeyStoreHelper.PROP_PUB_KS_URL, trustStoreURL.toExternalForm() );Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例 11.2. 当信任库位于 web 服务器上
URL trustStoreURL = new URL("http://brms.intranet/resources/BRMSTrustStore.keystore" ); System.setProperty( KeyStoreHelper.PROP_PUB_KS_URL, trustStoreURL.toExternalForm() );URL trustStoreURL = new URL("http://brms.intranet/resources/BRMSTrustStore.keystore" ); System.setProperty( KeyStoreHelper.PROP_PUB_KS_URL, trustStoreURL.toExternalForm() );Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例 11.3. 当信任库位于本地文件系统里
URL trustStoreURL = new URL("file:///mnt/fileserve/rules-server/BRMSTrustStore.keystore" ); System.setProperty( KeyStoreHelper.PROP_PUB_KS_URL, trustStoreURL.toExternalForm() );URL trustStoreURL = new URL("file:///mnt/fileserve/rules-server/BRMSTrustStore.keystore" ); System.setProperty( KeyStoreHelper.PROP_PUB_KS_URL, trustStoreURL.toExternalForm() );Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:设置密钥库的密码
通过drools.serialization.public.keyStorePwd设置信任库的密码。只有访问信任库需要密码时才要设置这个属性。System.setProperty( KeyStoreHelper.PROP_PUB_KS_PWD, "sekretPasswordHere" );
System.setProperty( KeyStoreHelper.PROP_PUB_KS_PWD, "sekretPasswordHere" );Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 关于如何针对规则软件包签名配置服务器的说明,请参考『http://docs.redhat.com/docs/en-US/JBoss_Enterprise_BRMS_Platform/5/html/BRMS_Administrator_Guide』上的《BRMS 管理员指南》。
- 关于公共密钥加密的更多信息,请参考『http://en.wikipedia.org/wiki/Public-key_cryptography』。
附录 A. 修订历史记录 复制链接链接已复制到粘贴板!
| 修订历史 | |||||||
|---|---|---|---|---|---|---|---|
| 修订 5.2.0-2.400 | 2013-10-31 | ||||||
| |||||||
| 修订 5.2.0-2 | 2012-07-18 | ||||||
| |||||||
| 修订 5.2.0-0 | August 4 2011 | ||||||
| |||||||
| 修订 5.1.0-0 | Mon December 13 2010 | , | |||||
| |||||||
| 修订 5.0.2-0 | Wed May 5 2010 | ||||||
| |||||||
| 修订 5.0.1-0 | Fri Oct 3 2009 | , | |||||
| |||||||
| 修订 5.0.0-1 | Thu 16 Jul 2009 | ||||||
| |||||||
| 修订 5.0.0-0 | Mon 18 May 2009 | ||||||
| |||||||