Oswald Regular
OpenSans Regular
Business Rules Environment

Ab Initio 服务各类用户。其中一类为专业应用程序开发人员。这些开发人员了解如何在复杂环境下设计、构建和处理海量数据的高级系统。Ab Initio 为这些用户提供了 Graphical Development Environment (GDE),以图形方式构建复杂的进程和业务逻辑。其生成的应用程序在极为可靠且扩展性极佳的 Co>Operating System中运行。

Ab Initio 的另一类用户为业务用户。这类用户并不熟悉每秒处理千兆数据或数千条消息的机制,也无须关注这类信息。但是,这些业务用户对系统应该完成哪些工作却了如指掌,并精通驱动业务增长的数据和规则详细信息。

多年来,IT 团队和其服务的业务用户之间逐渐衍生出分歧(有时甚至是对抗性分歧)。业务用户了解他们想做什么及这些行为对于业务的意义,IT 专家了解实现方法。IT 部门需要规范,业务用户也尽力提供这些规范。但规范本身的模糊性和微小错误率是不可避免的事实,规范本身可能出错,将规范转为代码时也会出错。规范 - 代码 - 测试 - 发布这一过程从来都不如想象的顺利、快捷。每一阶段,双方都要费劲心思地相互揣摩对方想法。这不仅耗费了大量的时间,更糟的是,这种方式下出错的机率很大。一旦出错,不但错误排查费时费力,错误找到后修改规范和代码就更加麻烦。生产效率因此受到影响,正确性永远都无法得到保证。有时甚至越来越糟,导致整个项目的失败。

如果业务用户能够控制系统中执行其业务逻辑的具体部件,他们能够理解甚至可以编写业务规则的表达方式,并且这些规则可以自动转换为在更大规模的系统运行的代码,那该是多么理想的工作状态啊!听起来相当不错吧?这就是 Business Rules Environment 的工作理念。

Ab Initio 的 Business Rules Environment (BRE) 使业务用户得以通过熟悉的方式指定业务规则,例如网格格式的电子表格。BRE 使用业务术语而非技术术语指定规则,用过 Microsoft Excel 的用户都会理解表达式的含义。因此,不仅可以快速准确地指定规则,也使其他业务人士轻松理解其含义。

此外,业务用户还能够通过 BRE 亲自验证业务规则,他们不仅能将规则直接输入系统,而且可以立即看到测试数据应用规则后的结果。如果结果不理想,可以立即修改规则,从而节省了大量时间。

Ab Initio Business Rules Environment 并非孤立存在的工具

传统的“规则引擎”产品通常孤立存在,需要通过附加操作才能实现与其他产品和计算体系结构中其他部件的接口。性能和扩展性方面都存在局限性。只能处理简单的数据结构,作用范围也仅限自主处理的规则,无法跟踪整个系统关联。只能处理简单的数据结构,作用范围也仅限自主处理的规则,无法跟踪整个系统关联。

Ab Initio BRE 与 Co>Operating System 的元数据技术有着紧密的联系,解决了上述所有问题和局限。构建和实施之时就以此为出发点,即非后知后觉的补救,也不同于一般软件公司花哨的营销策略。

  • 相同的 BRE 规则可在批处理、连续、Web 服务和实时应用程序中运行,无需重新实施。
  • BRE 规则的运行效率极高,可扩展在多个 CPU 和服务器上运行。Ab Initio 构建的系统因而具备无限的扩展能力。
  • BRE 可以处理复杂的历史层次化的数据。无论历史环境中存在何种数据(EBCDIC、压缩十进制、全球通用格式、XML、Cobol Copybooks 等),BRE 均能通过 Co>Operating System 进行原生处理。
  • 相同的 BRE 规则在 Co>Operating System 支持的所有平台(Unix、Linux、Windows、z/OS 和 z/Linux)运行方式完全相同。
  • BRE 利用 Co>Operating System 所有可靠功能,如错误处理、检查点操作等。

什么是“业务规则”?

BRE 支持的业务规则有三类: 决策规则、验证规则和映射规则。尽管它们很相似,业务用户还是习惯将所有规则具体划分为其中一类。

规则可能短小而简单,也可能繁常又复杂,具体视业务属性而定。对于这两种极端情况,BRE 均能正确处理。目前,实际应用环境中最大的 BRE 规则集包含五万余条规则。

以下为 BRE 指定的一条非常简单的决策模式业务规则示例,用于计算美国人的收入纳税(1040 税表):

此规则有两个输入:Filing status 和 Taxable income line 43,计算名为 Tax(line 44)的输出。在 BRE,各列之间暗含 AND 运算符,各行之间暗含 ELSE 运算符。因此,此规则的前几行的读取情况如下所示:

如果 Filing status 是 Single 且 Taxable income line 43 小于或等于 100000,则 Tax (line 44) 等于在 Tax from Table 中查找 Taxable income line 43 后返回的 Single 筛选器的值。

如果 Filing status 是 Single 且 Taxable income line 43 大于 100000 但小于或等于 171550,Tax (line 44) 等于 Taxable income line 43 乘 0.28 后减去 6280.00 的值。

如果 Filing status 是 Single 且 Taxable income line 43 大于 171550 … …

… 依此类推 … …

以下为规则验证示例,验证了相同规则的多个输入,然后在每种情况中设置多个输出:

此处示例为源到目标的映射规则。对于这种类型的规则,BRE 在左侧显示可能的输入值列表(“输入” 列),例如字段、变量、常数和计算值,中间是目标字段列表(“输出”列)。每个目标字段的右侧有一列 (“表达式/规则”),用户可以在此拖入 “输入” 列中的值,或创建用于计算该输出的表达式。(后续介绍 “计算值” 列。)

BRE 规则可以包含任何复杂程度的逻辑

BRE 规则内的逻辑可以十分简单,如以上示例中所示。但是,业务用户在实际工作中处理的规则也可能极其复杂。如果不使用 Ab Initio 技术,这些规则就无法在业务规则产品中实施。不得不使用 C++ 或 Java 这类编程语言进行手动编码,对可用性和生产效率造成巨大的负面影响,导致不得不重新执行规范 - 解释 - 代码 - 测试 - 修复这一整套过程,项目失败的几率极大。

Ab Initio BRE 就不会出现这种情况。其秉继了 Co>Operating System 完整的数据处理功能。BRE 可使用 Co>Operating System 的全部数百种函数及复杂的逻辑结构。

因此,规则或其中的表达式在大小、复杂性和数量方面都没有任何限制。

业务用户可以利用内置测试功能自行检验规则

BRE 的内置测试功能是使用 Ab Initio Business Rules Environment 开发业务规则的一大优势:在 BRE 中开发规则无需离开编辑环境,即可通过样本数据执行。测试期间,BRE 针对每条测试记录报告其计算输出,同时报告每个变量和每次计算的中间状态。BRE 用户可以检查输出记录,需要时单击任意计算值仔细查看值的计算方法和原因。

BRE 为每条测试记录显示已触发的情况(黄色),并加深所有导致比较失败的单元格颜色。BRE 还计算每个特殊规则被触发的次数(截图中的 “触发次数”)。此信息可以用于测试实例的缺陷排查或找出无效的规则(从未触发的实例)。

规则开发期间可以随时运行测试,从而逐步创建大型规则组,无须等候所有规则输入即可开始评估操作。

可将测试运行的结果保存为基准,供后续测试运行比较之用。如果在开发期间或设计修改时规则出现变化,可查看已修改规则当前行为与保存的基准结果之间的所有区别。评估所建议的修改可能导致的影响时,最能突出体现此功能的极高价值。如果没有 Ab Initio BRE,业务用户只能如“盲人摸象”般更改规则。

此外,用户也可获取实施应用环境下的规则集的规则执行详细信息。用户可以设置需保存的跟踪信息量,范围任意,从只保存每条输入记录触发了哪些情况(行),到保存所有输入、查询、中间和最终结果,BRE 均可应对自如。这样,分析人员就可以研究规则相对时间的行为变化,从而通过调整业务逻辑取得更好的结果。在被问及过去的某具体决策时,这些详细信息是找到正确答案的关键所在。

来之不易的透明度,清晰呈现的业务逻辑

复杂的大型业务规则系统可能包含许多以其他规则为实施基础的规则。对于业务用户,了解这些规则的相互联系及数据在其中传递的方式十分关键。遗憾的是普通业务用户通常对其系统的工作原理毫不知情。

有了 BRE,业务用户即可查看其系统的内部细节,这是因为无论规则大小与复杂程度如何,BRE 都以示意图显示数据如何流过相互关联的规则。如果应用程序包含多个规则集,而且这些规则集分布在一个甚至多个程序中,还可以用图形显示其沿袭关系。

下图为规则集沿袭的一个简单示例,此规则集基于美国 1040 EZ 表计算收入税,如前所述。绿色椭圆形代表规则(计算),圆角矩形代表变量。在测试模式下,样本测试值显示在每个变量名称下,并带有所有中间计算。完整的沿袭示意图下方为放大区域,显示扣减的计算(第 5 行)如何影响最终的返款或欠款额。

通过 BRE 的沿袭功能,业务用户能够彻底理解大型复杂规则集的工作原理。

并非“RETE 算法”

什么是 RETE?别担心,有了 BRE,您就无须理会这个概念。传统规则产品通常按“RETE 算法”确定的规则顺序执行。这意味着业务人士不得不试着去理解无比复杂的计算机科学/人工智能概念(要了解有关 RETE 的详细信息,请参见 http://en.wikipedia.org/wiki/Rete_algorithm )。

在实际工作中,RETE 方法很难使人理解规则变化带来的后果,原因是它可能影响规范中看似无关的其他规则。微小变化可能带来出乎意料的严重后果,性能调整也异常困难。

在 BRE 中,规则按您指定的顺序运行,不仅拥有高性能,而且具备较高的预见性。即使您不是电脑专家,也能理解规则的工作方式。

BRE 与 Co>Operating System 如何配合?

配合模式简单而直接:BRE 提取用户创建的规则,输入由 Co>Operating System 运行的图形组件。单击 Co>Operating System 了解组件、图形的更多相关信息。

由于在 Co>Operating System 中运行,业务规则因此秉承 Co>Operating System 的所有优点。规则能与任何数据源或目标实现接口,处理任意类型、任意数量的数据,可以在批处理或实时模式下运行,也可以在运行不同操作系统的多个服务器上分布运行,并且具备完全意义上的可靠性。Co>Operating System 具备构建和运行可靠关键任务应用程序需要的所有条件,BRE 因而继承了其所有性能。

以下为 Co>Operating System 图形(应用程序)示例,其关键组件包含 BRE 指定的规则:

完备的规则管理

所有规则均存储在 Enterprise Meta>Environment (EME)中,具备包括版本化在内的完整源代码管理的所有功能。因此,BRE 用户可以选择两种部署方法:

  • 将规则视为其他应用程序元素。这意味着它们必须经历所有标准代码升级过程:开发、测试及向应用实施环境的最终升级。IT 开发人员都熟知这种方法的可靠性,但其步骤繁多、费时。相较之下,BRE 的集成测试可使总体流程运行更快、更顺畅:
  • 将规则视为运行数据库中的参考代码数据。业务用户可更改参考代码(添加、更新和删除),无需历经完整的应用程序代码升级过程,从而达到迅速响应业务需求的目标。

通过 Ab Initio ,用户可以选择最适合的方法。上述两种方法各有千秋,客户可因地制宜作出适当的选择。

EME 提供强大的版本化支持,用户可以轻松将其环境配置为“擂主/挑战者”的规则部署模式,即并排运行相同规则的两个版本,对比输出,随后建立流程查看差异并改进规则,直至得到满意的结果。

通过标准技术统一企业各部门

借助集成的互动式测试、自动生成的应用实施环境可执行模块,BRE 使不具备 IT 专业知识的业务用户得以直接参与应用程序的开发,与 IT 人员的工作相辅相成,能够表达并理解业务逻辑,从而解决了困扰新应用程序开发和部署的诸多不确定性和风险。

BRE 规则及其驱动的应用程序由 Co>Operating System 执行,意味着对复杂程度没有任何限制,运行效率极高,而且具备扩展性。相同的规则无需重新编码就能在批处理应用程序和 web 服务应用程序中运行。实际上,BRE 体现出 Co>Operating System 所有优势。这是为什么呢?这源于 BRE 和 Co>Operating System 由同一标准技术所构建。BRE 与 Co>Operating 无缝配合,将企业各部门集成一体。

English
Français
Español
Deutsch
语言:
简体中文
日本語