Drools 5.1.1_DOC (61)
Drools 5.1.1_DOC_Drools_Guvnor
这部分介绍Guvnor(早先被称为业务规则管理系统BRMS)的技术方面,如果你是集成了或是BRMS应用程序的终端用户,没有必要使用它。但是Drools是一个开源的,所以构建指令构成手册的一部分。
如果你希望重用组件,或者在另外一个中嵌入该应用程序,你可能就会想从源代码构建。

图 1.6 体系结构示意图
上面的示意图显示了该系统的主要组件,以及如何集成和部署它们。有关高度可配置部分(如数据库)的详情请看用户指南。
BRMS以一个war包被部署,它提供关于网页的用户接口,并且通过URLs(或文件)提供二进制包。对于数据存储(JCR),其使用JSR-170标准。JBoss Seam被用来作为组件框架,为构建基于ajax的网页用户界面,GWT 被用来作为小器件工具箱。
这部分将经过必要的步骤构建各种组件。大多数是自动的,但是描述了整个手动过程。
有 2个模块:drools-repository (后端)和drools-guvnor (前端与规则集成)。drools-guvnor依赖于drools-repository模块,以及其他组件。Guvnor是所有Drools主构建的 一部分—— 在构建Drools时,Guvnor被同时构建。
Maven 2被用来作为构建系统。要开始JBoss Rules的整个资源树将需要进行检查。这包括其他模块,顶层库和仓库目录(构建需要它);因为BRMS构建是Drools构建的一部分。
最初,进入JBoss Rules的根检查资源树,并运行mvn install 安装跨项目的依赖关系的所有组件。如果构建被中断(多加小心,这种可能性不会发生),标志—— DskipTests能够被用来预防单元测试失败而阻止构建。
当希望构建Guvnor时,进入drools-guvnor目录,运行mvn package。这会运行该测试,然后构建一个可部署的war包。唯一不会做的事情是重构GWT 前端(详情请下面的章节)。一旦war文件是在目标目录中了,BRMS就蓄势待发了。
用于网页前端的GUI小配件是利用 GWT (Google Web Toolkit)开发的。如果需要改变或构建GUI,GWT将需要单独下载。 一旦下载了GWT,在 drools-guvnor目录中的build.properties 文 件指定了GWT安装的地方。一旦完成,该ant任务可以被用来构建GWT组件,以及如果需要,在调试/托管 (debug/hosted)模式中发动GWT。如果运行该构建,它会用新的编译物更新在该项目中的网页应用程序目录(GWT在运行时没有使用JSP,只 是html和 javascript)。
每个模块都准备好了,并且拥有最新的eclipse项目配置,所以仅是把它们导入到eclipse工作区。这些项目由Maven产生(它们是错的或过时了的情况下,由mvn eclipse:eclipse刷新它们)。为了拥有项目的依赖关系,它们已经被手动修改(这意味着在调试时,代码可以单步进行)。
在 eclipse中需要一些环境变量( Window: >Preferences->Java->Build path->Classpath variables):M2_REPO,和通常一样,指向Maven下载共享依赖关系的地方。GWT_HOME应该指向你安装的GWT的地方。 GWT_DEV 必须指向特定平台的"dev" jar 包,你的GWT的版本带有它。
如何从Eclipse发动: 如通常一样,单元测试能够被发动(在这种情况下,只需要M2_REPO设置,不需要单独下载GWT),或者使用GWT浏览器以托管模式发动它,这用于调试 是很好的(从GUI到后端,代码能够单步进行,联机更改,仅点击刷新)。在drools-guvnor目录中有一个Guvnor.launch 文件。要在调试模式发动Guvnor,打开Run运行框(Run->Run),然后从列表中选择Guvnor 。发动它,会打开一个新窗口,在调试模式下,BRMS准备好了。
通常,下载和调试带有GWT的BRMS 是可选的,所以,如果没有操作GUI的问题,那么这一步可以安全跳过。
BRMS使用一个服务接口把GUI从后端功能中分离出来。在这种情况下,后端包括资产仓库(drools-repository和JCR),以及处理规则的编译器细节。
主要接口是RepositoryService,在ServiceImplementation中被实现。GWT ajax 前端与这个接口会谈(通过GWT使用的异步回调机制)。无缝配置文件是components.xml (components.xml的详情请参考Seam文档)。
这个服务接口可以被另外的组件或前端重用。
GWT用户界面可以被重用, 因为它是GWT,只是一个html页面:Guvnor.html。
通常, Guvnor是企图作为它自有的war包被部署,然而它能够与另外的应用程序结合 (要小心),但是维持它作为一个单独的war包更方便。部署Guvnor 自身,在新发生版本发行时也会使升级更容易(推荐这样) 。
Guvnor.html 文件可以自定义。例如,改变徽标或者把BRMS嵌入到另外的包中。细节请看Guvnor.html文件。
用户指南和管理章节,涉及数据库和文件系统的配置选项的一些细节 。
资产的版本随该数据一起被存储在数据库中。
当快照被创建时,整个包构成的副本在JCP数据库中的一个单独位置。
对于那此熟悉JCR和jackrabbit人, *.cnd文件是在节点类型定义的资源( source)中,因为有一些人希望浏览它们。 简而言之,一个包是一个文件,每个资产是一个文件:一个资产可能是一个纯文本,或有一个二进制附件。
作为一个开源项目,鼓励来自更广泛的社会贡献。为贡献,请咨询wiki 和项目主页。贡献的一个有效方法是在JIRA中通过记录问题或功能要求。 JIRA链接在: https://jira.jboss.org/jira/browse/GUVNOR。

浙公网安备 33010602011771号