业务规则引擎是包含业务规则定义的软件应用程序。但是,不同的业务规则引擎之间也存在很大差异,业务规则之父Ronald Ross将它们归类为主要处理数据库的引擎和用于推理的引擎。
计算机应用程序主要被企业用来管理信息。这就是为什么其中绝大多数都连接到数据存储设备的原因。今天,这些数据存储设备中的大多数都是关系数据库,尽管在大型计算机上仍然可以找到索引“文件”。绝大多数计算机应用程序不仅从数据库中读取数据,而且还更新数据。因此,数据(数据库中事实的存储表示)是信息技术的基本组成部分。事实上,这就是为什么它被称为信息技术,以及它以前被称为数据处理的原因。
数据在计算机应用程序中的重要性反映在这些系统中以业务需要的方式处理这些数据的逻辑。此逻辑反映了业务规则,但通常还有许多其他逻辑用于管理应用程序本身。显然,业务规则引擎是在这些情况下处理业务规则的主要候选者。然而,这并不是唯一一种规则引擎。
一些规则引擎主要用于进行推理。用户可能想知道一些事情,规则引擎可以生成用户问题的答案。基于它拥有的规则定义可访问的数据。或者,用户可能只是希望知道可以基于引擎中包含的规则从给定的一组数据中推断出内容,而不必向引擎提出特定问题。以这种方式面向推理的规则引擎与称为专家系统或人工智能的应用程序相关。这些应用程序具有相当有用的价值。但是,它们远不如面向数据管理的应用程序常见。
面向数据的业务规则引擎是需求数量最多应用最广的地方,因此规则引擎发挥作用的机会也最多。用于推理的规则引擎非常有趣,实际上,对于它们满足的要求,很难想出一种不涉及规则引擎的方法。但是,它们不是本文中构建的规则引擎类型。
基于考虑将应用逻辑管理存储信息的业务规则引擎,找到更具体的业务规则视图变得更容易一些。在这种情况下,业务规则可以定义为使用数据结构的业务逻辑的原子包。数据构造是存储在数据库中的数据级别,即单个数据值、记录(行)、列(字段)或表。大多数时候,这些业务规则将在单个数据构造上运行,例如,计算一个值或约束构造内一个或多个值的变化。对于面向数据管理的业务规则引擎,在其中实现的业务规则由存储在数据库中的数据驱动。
这种更具体的业务规则视图有助于更清楚地定义在业务中构建的业务规则引擎的角色,也会为业务提升提供巨大的帮助。
相关新闻推荐