(查看 图 9 的更大版本。)
规则设计
规则集的设计包括识别规则集的输入和输出,识别规则在一个规则项目中的组织方式,以及创建规则流来编排规则集中的规则的执行。图 10 显示了规则设计流程,我们将在后续小节中详细介绍。
图 10. 规则设计流程
设置规则集参数
规则集参数指定决策服务的输入和输出,进而定义决策服务与调用客户端之间的接口。
要设置规则集参数,右键单击 ccc-rules 并选择 Properties。在我们的场景中,我们收到一个 Alert 作为输入,返回一个扩充的 Alert 作为输出。它们分别表示为 “请求” 和 “响应,如 图 11 所示。
图 11. 规则集参数
创建规则包
规则包简单来讲是一些可在其中创建规则的文件夹和子文件夹。规则包有助于在一种分层结构中组织规则。
基于我们的规则分析,我们断定不同的天气模式具有不同的规则,比如 “起雾” 和 “强降雨“。这一区别形成了我们的顶级规则包。对于每个包,我们拥有针对评估规则和指令规则的子包。图 12 显示了规则项目中使用的规则包的一个子集。
图 12. 规则包
创建规则流
规则流定义一个更大决策的上下文中的规则工件执行顺序。对于调用应用程序,可调用规则集来制定单个业务决策。但是,这个业务决策通常会分解为一系列更小的决策。使用一个规则流,您可将更小的决策标识为规则任务并以过渡的形式路由逻辑。
规则流中的第一个规则任务是初始化,其中会创建一个框架式响应 Alert。在这之后,基于发出的指令来进行评估。
图 13 显示了这个规则流。
图 13. 主要规则流
与一个规则任务关联的规则在规则任务的属性中指定。对于规则任务 heavy rainfall,在执行此规则任务期间考虑规则包 heavy rainfall.evaluations 中的所有规则。图 14 显示了规则任务 heavy rainfall 的属性视图,其中选择了关联的规则。
图 14. 强降雨规则任务的规则选择
请注意,规则流控制着规则组或规则任务的执行顺序。不同于过程编程中使用的方法,这里您不指定各个规则的顺序。许多拥有过程编程模式背景的新手倾向于过度使用规则流。例如,最初的倾向可能是使用规则流,通过与一个 Alert 关联的不同 InfoType 对象来使用控制循环。但是,这不是推荐的方法,我们将在下一节中看到如何使用规则来自然地执行这一循环。
业务规则创作
规则开发人员通常创建初始规则集并执行单元测试,以确保规则项目为业务用户提供了一个牢固的基础。此外,技术开发人员可创建规则模板来简化业务用户对新业务规则的创作。图 15 描绘了规则创作流程。
图 15. 规则创作流程
编写初始规则集
一位规则开发人员使用 Rule Studio 创建初始规则集。我们在本系列的第 1 部分中已看到,在我们的场景中,这些规则分为两个类别:评估规则和指令规则。
评估规则
以下文章点击率最高
Loading…