业务规则引擎

编辑
本词条由“匿名用户” 建档。
业务规则引擎是一个软件系统,执行一个或多个业务规则在运行的生产环境。这些规则可能来自法律法规、公司政策或其他来源。业务规则系统使这些公司政策和其他运营决策可以与应用程序代码分开定义、测试、执行和维护。 规则引擎通常支持规则、事实、优先级(分数)、互斥、前提条件和其他功能。 规则引擎软件通常作为业务规则管理系统的组件提供,该功能除其他功能外,还具有以下功能:注册、定义、分类和管理所有...

业务规则引擎

编辑

业务规则引擎是一个软件系统,执行一个或多个业务规则在运行的生产环境。这些规则可能来自法律法规、公司政策或其他来源。业务规则系统使这些公司政策和其他运营决策可以与应用程序代码分开定义、测试、执行和维护

规则引擎通常支持规则、事实、优先级(分数)、互斥、前提条件和其他功能

规则引擎软件通常作为业务规则管理系统的组件提供,该功能除其他功能外,还具有以下功能:注册、定义、分类和管理所有规则、验证规则定义的一致性(“金级客户是当订单数量> 10”且“白银级客户的xxx订单数量= 15”时有资格获得免费送货),定义不同规则之间的关系,并将其中一些规则与受影响或需要执行一项或多项操作的IT应用程序相关联更多的规则。

IT应用

编辑

在任何IT应用程序中,业务规则可以比应用程序代码的其他部分更频繁地更改。规则引擎或推理引擎用作可插拔的软件组件,这些组件执行业务规则方法已外部化或与应用程序代码分离的业务规则。这种外部化或分离使业务用户无需IT干预即可修改规则。整个系统变得更容易适应此类外部业务规则,但这并不排除质量检查和其他测试的通常要求。

业务规则引擎

设计策略

编辑

许多组织的规则工作将通常被认为是工作流设计的方面与传统规则设计结合在一起。如果无法将两种方法分开,则可能导致重用和控制业务规则和工作流的能力出现问题。避免这种难题的设计方法将业务规则和工作流的角色分开,如下所示:

  • 商业规则产生知识;
  • 工作流执行业务工作。

具体而言,这意味着业务规则可能会执行类似的操作,例如检测到业务情况已经发生并引发业务事件(通常通过消息传递基础结构来承载)或创建更高级别的业务知识(例如,评估组织、产品和产品的系列)。另一方面,工作流将通过启动一系列活动来响应指示诸如路由点超载之类的事件。

这种分离很重要,因为相同的业务判断(抵押符合承销标准)或业务事件(路由器超载)可以由许多不同的工作流做出反应。将响应于规则驱动的知识创建而完成的工作嵌入到规则本身中,极大地降低了业务规则在整个组织中重用的能力,因为它使业务规则变得特定于工作流程。

要创建使用业务规则引擎的体系结构,必须在BPM(业务流程管理)和BRM(业务规则管理)平台之间建立集成,该集成基于对事件做出响应或检查由以下人员定义的业务判断的流程:商业规则。市场上有一些产品本机提供此集成。在其他情况下,必须在特定项目或组织内开发这种类型的抽象和集成。

大多数基于Java的规则引擎都基于JSR-94 应用程序编程接口(API)标准提供了一个技术调用级接口,以允许与不同的应用程序集成,并且许多规则引擎都允许通过Web 进行面向服务的集成。基于标准的标准,例如WSDL和SOAP。

大多数规则引擎都提供了开发数据抽象的能力,该数据抽象表示应针对规则编写的业务实体和关系。通常,可以从包括XML,POJO,平面文件等在内的各种来源填充此业务实体模型。没有用于编写规则本身的标准语言。许多引擎使用类似于Java的语法,而有些引擎允许定义自定义的业务友好语言。

大多数规则引擎充当可调用库。但是,它们作为类似于RDBMS行为方式的通用过程运行变得越来越流行。大多数引擎将规则视为要加载到其流程实例中的配置,尽管实际上某些引擎是整个规则执行实例​​的代码生成器,而其他引擎则允许用户选择。

规则引擎的类型

编辑

有许多不同类型的规则引擎。这些类型通常在计划执行规则的方式上有所不同。

企业使用的大多数规则引擎都是前向链接,可以进一步分为两类:

  • xxx类处理所谓的生产/ 推断规则。这些类型的规则用于表示IF条件THEN操作的行为。例如,这样的规则可以回答以下问题:“应该允许该客户抵押吗?” 通过执行“如果有条件,则允许客户抵押”形式的规则。
  • 另一类规则引擎处理所谓的反应/ 事件条件动作规则。反应式规则引擎检测到传入事件并处理事件模式并对之做出反应。例如,当某些物品缺货时,可以使用反应式规则引擎来提醒经理。

这些类型之间的xxx区别是,生产规则引擎通常在用户或应用程序以无状态方式调用它们时执行。当事件发生时,反应式规则引擎通常会以有状态的方式自动做出反应。许多流行的商业规则引擎具有生产规则和反应规则功能,尽管它们可能会强调一个类别而不是另一个类别。例如,大多数业务规则引擎主要是生产规则引擎,而复杂的事件处理规则引擎则强调响应规则。

另外,某些规则引擎支持向后链接。在这种情况下,规则引擎将寻求解决事实以适合特定目标。它通常被称为目标驱动型,因为它试图根据现有信息确定是否存在某种东西。

另一种规则引擎在推理运行期间会在后链和前链之间自动切换多次,例如Internet Business Logic系统,可以通过搜索Web来找到它。

规则引擎的第四类可以称为确定性引擎。这些规则引擎可能会同时放弃前向链接和后向链接,而是使用特定于域的语言方法来更好地描述策略。这种方法通常更易于实现和维护,并且比前向或后向链接系统具有性能优势。

在某些情况下,基于模糊逻辑的推理可能更合适,在规则处理中使用启发式而非布尔规则。示例可能包括客户分类、丢失数据推断、客户价值计算等。DARL语言以及相关的推断引擎和编辑器就是这种方法的一个例子。

用于访问控制/授权的规则引擎

编辑

规则引擎的一种常见用例是对应用程序的标准化访问控制。OASIS定义了专门用于访问控制的规则引擎体系结构和标准,称为XACML(可扩展访问控制标记语言)。XACML规则引擎和业务规则引擎之间的一个主要区别是,XACML规则引擎是无状态的,并且无法更改任何数据的状态。XACML规则引擎称为策略决策点(PDP),要求输入二进制“是/否”问题,例如“ Alice可以查看文档D吗?” 并返回一个决定,例如允许/拒绝。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/111488/

(4)
词条目录
  1. 业务规则引擎
  2. IT应用
  3. 设计策略
  4. 规则引擎的类型
  5. 用于访问控制/授权的规则引擎

轻触这里

关闭目录

目录