当前位置: 首页 > 知识库问答 >
问题:

在Drools Guvnor中维护drl(技术)规则

东郭臻
2023-03-14

我对商业规则的世界还很陌生,但我想我已经理解了Drools Expert和Drools Guvnor的概念,但我仍然有点困惑,与Expert相比,到底是如何/何时/为什么使用Guvnor的。而且,无论他们是相互排斥,还是有能力,甚至更愿意并肩工作。下面是一些让我感到困惑的突出主题,以及我关注的问题背后的一些解释,主要集中在应用程序的可维护性上。

Guvnor是否具有Expert plus more中提供的所有功能?

我知道Guvnor是业务规则管理系统(BRMS),它控制规则的存储(包括版本控制)并将服务公开给其他应用程序的使用。Guvnor包含用于生成规则的UI(文本和图形)和用于运行它们的引擎,所以从这个意义上说,我想它包含了专家系统的所有功能。根据我的要求,我很确定Guvnor是我需要的,但是在那之后我需要Drools专家吗?

或者换句话说,口水专家提供了古夫诺不存在的东西吗?

Guvnor中的测试规则

我看到的许多关于Drools的教程都是从TDD示例开始的,其中的规则是通过简单的jUnit测试来测试的。一旦一个规则被导入到Guvnor(或刚刚在那里生成),是否有任何方法可以为它使用/编写单元测试?

测试是否应仅通过暴露接口(REST)进行?

如果系统的用户要开发自己的规则,我不希望他们编写任何测试。主要关注“核心”规则及其可维护性。

对于“核心”规则,是否应将其存储在版本控制系统中,并在整个系统的计划更新时导入Guvnor?在这种情况下,可以为这些规则编写单元测试,并作为构建周期的一部分自动执行

提前感谢。

共有1个答案

方权
2023-03-14

根据你的一个问题,我应该先澄清一下。本质上:

  • 专家是一个规则引擎运行时

Guvnor没有为您的规则提供运行时,除了测试线束所需的运行时之外。您将始终需要运行时环境专家。Guvnor使您能够管理和存储规则。它还提供了一些方便的GUI工具,如引导编辑器和web决策表。但是,您也可以在诸如Eclipse之类的IDE中编辑规则,并使用Guvnor WebDav Eclipse插件将它们推送到Guvnor。

通常,您将在一台服务器上安装Guvnor web应用程序,在其他服务器上安装应用程序。您可以将编译后的规则从Guvnor下载到应用程序构建中,并将其与应用程序一起部署。或者,您可以在代码中定义URL资源来创建知识库,指向Guvnor包URL。在这种情况下,应用程序可以在启动时加载知识库,并在运行时重新加载。

例如,以下代码将下载一个名为“Approved”的包快照,作为构建知识库的资源。

UrlResource urlResource = 
    (UrlResource) ResourceFactory.newUrlResource(
        "http://my.guvnor.local/.../package/mypackage/Approved");
urlResource.setBasicAuthentication("enabled");
urlResource.setUsername("myusername");
urlResource.setPassword("mypassword");
KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder();
builder.add(urlResource, resource.getType());

编辑-如果您希望在Guvnor中更改规则时在运行时重新加载规则,请查看知识库。

我使用Guvnor的主要原因是使非技术用户能够使用决策表和基于DSL的引导编辑器来编写规则。

我喜欢在Eclipse中编辑技术规则,在那里我可以很容易地围绕它们编写单元测试,并评估它们的行为是否符合我的预期。我发现这比Guvnor中的测试功能要容易得多。尽管Guvnor提供了一些版本控制,但我更喜欢Subversion/Git作为我的技术规则的版本控制。

我还在Eclipse中编写DSL,然后将其部署到Guvnor。这使得非技术用户更容易使用引导规则。

测试规则

关于测试,有几个选项。Guvnor中有测试功能,可以根据各种输入编写期望值。然而,我个人觉得这种方式太笨重,限制了使用。我更喜欢用Java/JUnit编写测试。

首先,您可以编写简单的单元测试,加载一个或两个用DRL编写的技术规则,并评估它们是否在您认为应该激活的时候激活,并在适当的情况下生成推断事实。

对于更复杂的测试,我编写的测试使用Guvnor中的包创建知识库,插入事实和火灾规则,以评估包作为一个整体是否正常工作,包括在引导编辑器或决策表中构建的规则。

Guvnor的其他用途

值得注意的是,Guvnor编辑器的功能正变得更加丰富,它正在成为不仅仅是规则的编辑器和存储库。例如,有丰富的BPM流程工具,很快就会比Eclipse这样的IDE更好。

总结

如果您的所有规则都是您自己和其他开发人员在DRL中编写的,那么使用Guvnor没有什么好处。事实上,我会发现这是一个障碍。然而,如果您希望利用向导式编辑器或决策表,或者希望让“业务”用户管理一些规则,那么您应该深入了解Guvnor。

 类似资料:
  • 初始(群面)一般是6个人分两组 1.自我介绍(2min,主要是介绍你自己,主要介绍自己的优点、突出你在这个岗位能力) 2.面试官问的自己优缺点,建议第一个答,给别人一个好的印象并且第一个回答的话就不会出现重复的现象,我反正是直接抢答的 3.分组解决一个问题,问题不是那种专业的问题,就是一些检验情商和智商的题目(场景应用题),我这个题目是:假如你是一名运维工程师,有个客户在凌晨打电话给你叫你去线下解

  • Polar Verity Sense 运行时间: 长达 30 小时的连续训练 每天训练 1 小时可运行 22 天 电池类型: 45 mAh 锂聚合物充电电池 内存容量: 高达 600 小时的训练 Bluetooth 传输范围: 在开放空间内,带固定器时高达 150 米 无固定器时高达 20 米 工作温度: -20 °C 到 +60 °C / -4 °F 到 140 °F 材质: 传感器 ABS、A

  • Grit X 电池型号: 346 mAh 锂聚合物充电电池 工作时间: 训练模式下(GPS 和手腕型心率测量)电池续航可长达 40 小时,手表模式下启用持续心率追踪时续航时间可长达 7 天。提供三种省电模式。多个节能选项甚至可令使用时间长达 100 小时。 工作温度: -10 °C 到 +50 ℃/14 °F 到 122°F 手表材料: 黑色 设备: CORNING GORILLA 玻璃、PA12

  • Vantage V2 电池型号: 346 mAh 锂聚合物充电电池 运行时间: 训练模式下(GPS 和手腕型心率测量)电池续航可长达 40 小时,手表模式下启用持续心率追踪时续航时间可长达 7 天。提供多个省电选项。 多个节能选项甚至可使训练模式下的使用时间长达 100 小时。 工作温度: -10 °C 到 +50 ℃/14 °F 到 122°F 手表材料: 黑色和黑色 设备:CORNING GO

  • A370 电池型号: 100 mAh 锂聚合物充电电池 工作时间: 在 全天候活动监测、连续心率追踪和未开启智能通知每天 1 小时训练的情况下可长达 4 天。 训练模式中的工作时间: 移动 GPS 功能开启时长达13小时。移动 GPS 功能关闭时长达 32 小时。 工作温度: -10 °C 到 +50 °C / 14 °F 到 122 °F 充电时间: 最长两小时。 充电温度: 0 °C 到 +4

  • Polar M600 操作系统 Wear OS by Google 处理器 基于 ARM Cortex-A7 的 MediaTek MT2601 双核 1.2 GHz处理器 电池型号 500 mAh 锂聚合物充电电池 工作时间 (Android) 训练 2 天/8 小时 工作时间 (iOS) 训练 1.5 天/8 小时 工作温度 -10 °C 到 +50 °C / 14 °F 到 122 °F 充