1.产品简介

亚博pg电子 8引擎是一种嵌入在应用程序中的组件,它可以将业务亚博pg电子 8从业务代码中剥离出来,使用预先定义好的语义规范来实现这些剥离出来的业务亚博pg电子 8;亚博pg电子 8引擎通过接受输入的数据,进行业务亚博pg电子 8的评估,并做出业务决策。

因为亚博pg电子 8引擎将复杂的业务逻辑从业务代码中剥离出来,所以可以显着降低业务逻辑实现难度;同时,剥离的业务亚博pg电子 8使用亚博pg电子 8引擎实现,这样可以使多变的业务亚博pg电子 8变的可维护,配合亚博pg电子 8引擎提供的良好的业务亚博pg电子 8设计器,不用编码就可以快速实现复杂的业务亚博pg电子 8,同样,即使是完全不懂编程的业务人员,也可以轻松上手使用亚博pg电子 8引擎来定义复杂的业务亚博pg电子 8。

业务系统运行过程中难免会发生业务亚博pg电子 8变化的情形,有了亚博pg电子 8引擎,业务亚博pg电子 8部分采用的是亚博pg电子 8引擎实现,这样在系统正常运行的情况就可以利用亚博pg电子 8引擎对业务亚博pg电子 8进行修改,从而实现业务亚博pg电子 8的随需应便。

URule Pro是一款由上海锐道信息技术有限公司自主研发的一款纯Java亚博pg电子 8引擎,它可以运行在Windows、Linux、Unix等各种类型的操作系统之上;URule Pro的亚博pg电子 8设计器采用业内首创的纯浏览器编辑模式,无须安装任何工具,打开浏览器即可完成复杂亚博pg电子 8的设计与测试; 我们可以从以下几个方面来了解URule Pro。

强大的功能

在URule Pro当中,提供亚博pg电子 8集、决策表、交叉决策表(决策矩阵)、决策树、评分卡、复杂评分卡、亚博pg电子 8流等八种类型的业务亚博pg电子 8设计工具,从各个角度满足复杂业务亚博pg电子 8设计的需要。

如果我们的业务给出的是零散的逻辑亚博pg电子 8,那么可以使用亚博pg电子 8集来实现;如果给出的是表格形式的业务亚博pg电子 8,那么可以直接使用对应的决策表或交叉决策表(决策矩阵)来实现;如果需要对实体进行综合评分,则可以使用评分卡或复杂评分卡来实现;最后还可以通过亚博pg电子 8流对一系列复杂的亚博pg电子 8个体进行编排,将这个亚博pg电子 8流作为实际业务亚博pg电子 8调用入口,从而实现任意复杂的业务亚博pg电子 8。

无论是亚博pg电子 8文件的部署,还是亚博pg电子 8中要调用的Spring Bean以及相关的Java类的加载,URule Pro全部采用热部署功能实现(参见Spring Bean及Java类的热部署),系统不重启即可实现所有与亚博pg电子 8相关的业务需求变更。

简单的使用方式

URule Pro中提供的所有的亚博pg电子 8设计器及打包测试工具,全部基于浏览器实现,所有的亚博pg电子 8设计器皆为可视化、图形化设计器,通过鼠标点击即可实现复杂的业务亚博pg电子 8定义,URule Pro中亚博pg电子 8的多条件组合也是以图形方式展现,这样即使没有任何编程经验的普通业务人员,也可以轻松上手,完成复杂业务亚博pg电子 8的定义。

因为所有的业务亚博pg电子 8设计器都是基于网页的,且亚博pg电子 8的定义都是通过鼠标点击的方式完成,所以对于一个普通的使用者来说,配合教学视频两到三天即可完全掌握URule Pro中各种设计器的使用,结合业务需要定义出想要的业务亚博pg电子 8。

优秀的性能

URule Pro后台采用纯Java实现,运行时借鉴Rete了算法的优势,再结合中式亚博pg电子 8引擎的特点,独创了一套自己的亚博pg电子 8模式匹配算法,这套算法可以从根本上保证亚博pg电子 8运行的效率,实现大量复杂业务亚博pg电子 8计算时的毫秒级响应。

完善的版本控制机制

在URule Pro当中,无论是单个亚博pg电子 8文件、或是用户调用的亚博pg电子 8包,都提供了完善的版本控制机制。对于亚博pg电子 8文件来说只要有需要,可以回退到任何一个历史版本; 对于给用户调用的亚博pg电子 8包,可以在不同的历史版本之间灵活切换。

系统架构

系统架构图

从上图中可以看到,使用者通过浏览器打开URule Pro亚博pg电子 8设计器来定义业务亚博pg电子 8,完成后的业务亚博pg电子 8文件会被存储在亚博pg电子 8存储仓库中(在URule Pro当中亚博pg电子 8存储仓库既可以是文件系统中的某个目录,也可以存储于数据库当中)。亚博pg电子 8文件调用时引擎会从亚博pg电子 8存储仓库里把指定的亚博pg电子 8文件取出,再通过亚博pg电子 8构建引擎对亚博pg电子 8进行解析、编译,最后由亚博pg电子 8执行引擎执行并返回结果。

运行模式

实际使用时,有三种使用URule Pro的方式,分别是嵌入式模式、分布式计算模式以及独立服务模式。

嵌入式模式

所谓的嵌入式,是指将URule Pro直接嵌入到我们的Java Web应用当中,作为应用的一部分运行。这种模式的好处是配置起来比较简单;而不好的地方在于因为将URule Pro直接嵌入到我们的应用当中,如果我们有多个涉及到亚博pg电子 8引擎的应用, 那么每个应用都需要嵌入一个URule Pro模块,所以更多的时候我们使用的是独立服务模式。

分布式计算模式

分布式计算模式是指将URule Pro部署为一个独立的Java Web应用,在这个应用里定义各个业务系统所需要业务亚博pg电子 8,定义好后统一存储到一个亚博pg电子 8存储仓库当中。 业务系统要使用亚博pg电子 8时只需要指定URule Pro Server的地址即可通过HTTP协议取到目标亚博pg电子 8包,然后解析并运行,其运行模式图如下所示:在分布式计算模式下, 一个URule Pro Server可以下挂多个需要用到亚博pg电子 8引擎的业务系统,但实际的业务亚博pg电子 8在运行时还是发生在各个业务系统中,而不是URule Pro Server上,所以称之为分布式计算模式。

各个业务系统在运行业务亚博pg电子 8时,会首先检查要运行亚博pg电子 8对应的亚博pg电子 8包在本地缓存中是否存在,如果存在则直接使用,不存在则通过配置的URule Pro Server地址向Server发出使用对应亚博pg电子 8包的请求, URule Pro Server收到请求后会将指定的亚博pg电子 8包序列化成JSON,通过HTTP协议传递给请求的业务系统。业务系统收到传递过来的亚博pg电子 8包后,会首先对其进行反序列化,将JSON格式的亚博pg电子 8包反序列化为Java对象并在本地缓存下来,然后再使用这个亚博pg电子 8包进行业务亚博pg电子 8的计算。

可以看到,在这个过程当中,URule Pro Server只负责业务亚博pg电子 8的定义、编译与发布,不负责具体的业务亚博pg电子 8执行,具体的亚博pg电子 8执行还是发生在各个业务系统当中,可以大大减轻URule Server的压力,使得亚博pg电子 8的计算可以分布到各个业务系统所在的服务器上, 从而可以根据需要对计算亚博pg电子 8的服务器进行灵活的扩充。

独立服务模式

独立服务模式也是亚博pg电子 8引擎的传统运行模式,那就是把亚博pg电子 8的调用以一个Restful服务的形式对外提供,客户端可以是Java、C#、C++或Javascript,客户端只需要把标准的JSON格式的输入数据提交给亚博pg电子 8服务器,服务器调用亚博pg电子 8计算完成后会以JSON格式作为响应返回。Restful服务支持安全验证, 提供完善的调用测试页面,同时对于输入数据,还支持复杂的JSON数据嵌套,以最大限度满足复杂业务需求;对于大批量并发调用,URule Pro提供完整的集群支持。

亚博pg电子 8更新

在分布式计算模式下亚博pg电子 8包的更新有两种方式:一种是主动推送方式;一种为定时更新的方式。

主动推送方式是指URule Pro Server在亚博pg电子 8包更新后,会主动将更新后的亚博pg电子 8包通过HTTP协议推送到配置好的各种业务系统应用的缓存当中,这样各个业务系统中的亚博pg电子 8包就可以与Server中的亚博pg电子 8包时刻保持一致, 但这种推送方式要求对应的各个业务系统应用必须是一个标准Java Web应用,否则这种推送无法实现,如果您的业务系统应用是一个Java应用,而非一个标准的Java Web应用,那么要更新亚博pg电子 8包就不能采用这种推送方式,而需要使用定时更新的方式。

定时更新方式是指具体调用亚博pg电子 8的业务系统,可以通过相应的参数配置,周期性的检查URule Pro Server上当前业务系统用到的亚博pg电子 8包是否有更新,如果有则主动从Server上取下来并序列化成Java对应缓存到当前业务系统中备用,如果没有更新则不做任何操作。

所以如果您的业务系统是一个非Java Web应用,那么更新亚博pg电子 8包可以采用定时更新的方式实现;相反如果您的业务系统是一个标准的Java Web应用,那么主动推送和定时更新两种方式都可以,当然主动推送的方式更为合适。

亚博pg电子 8设计器

URule Pro当中提供了向导式亚博pg电子 8集、脚本式亚博pg电子 8集、决策表、交叉决策表(决策矩阵)、决策树、评分卡、复杂评分卡、亚博pg电子 8流八种类型的业务亚博pg电子 8设计工具,我们来看看这些设计器以及它们设计出来的亚博pg电子 8的样子。

向导式亚博pg电子 8集

亚博pg电子 8集也叫决策集,是由一系列单个普通亚博pg电子 8以及循环亚博pg电子 8构成的,亚博pg电子 8集设计器采用全向导方式,通过鼠标点击就可以完成亚博pg电子 8配置。

定义好的普通亚博pg电子 8如下图:

定义好的循环亚博pg电子 8如下图:

脚本式亚博pg电子 8集

如果使用URule Pro的是一名程序员,那么在编写亚博pg电子 8的时候,可能会更倾向于使用脚本方式业定义业务亚博pg电子 8。在URule Pro当中向导式亚博pg电子 8集能实现的功能脚本式亚博pg电子 8集全部可以实现,反之亦然。

脚本式亚博pg电子 8集编辑器是一个基于浏览器技术的脚本编辑器、提供了完善的关键字及BOM信息提示、脚本合法性的实时检测、语法错误提示、适合业务人员使用的中文关键字等功能。

在脚本式亚博pg电子 8编辑器里,既可以定义英文关键字脚本式亚博pg电子 8,也可以定义中文关键字的脚本式亚博pg电子 8,还可以定义中英文混合关键字的脚本式亚博pg电子 8。

决策表

与普通的亚博pg电子 8集(决策集)相比,决策表是通过一个二维表的方式来定义一批亚博pg电子 8,在URule Pro当中,一张决策表分为左右两部分,左边部分是条件部分,右边部分为条件满足后的动作部分,如下图所示:

同样,决策表设计器也是基于浏览器支持构建,通过鼠标点击就可以完成整个决策表的定义。

交叉决策表(决策矩阵)

普通决策表是通过纵向一个维度的条件来实现亚博pg电子 8的约束,而交叉决策表(决策矩阵)则是通过横向和纵向两个维度进行条件约束,两个维度交叉生的单元格就是实际业务亚博pg电子 8生效的条件,因为这种样式有些类似于我们报表中的交叉表,所以称之为交叉决策表,也叫决策矩阵。

可以看到,交叉决策表的特点使得其可以定义更为复杂的交叉类型的业务亚博pg电子 8。

决策树

之所以称之为决策树,是因为业务亚博pg电子 8以树形方式展现。在URule Pro当中的决策树,是一棵平躺的树,设计成平躺的目的是为了可以展现树的更多内容,更好的利用显示空间。

普通评分卡

普通评分卡是URule Pro当中专门为简单评分系统而设计的一种业务亚博pg电子 8工具,它可以针对某个实体对象的属性条件进行评分,每个属性在条件满足后还可以添加权重支持,同时对于得分的计算方式提供求和、加权求和以及用户自定义方式,以最大限度满足业务系统评分亚博pg电子 8的需要。

复杂评分卡

在URule Pro提供的普通评分卡当中,只能针对某一个对象的一些属性进行评分,这种评分方式可以满足大部分评分系统的需求,但在某些复杂的评分需求中,需要对多个对象的不同属性进行叠加组合评分,针对此类需求,URule Pro提供了复杂评分卡功能。复杂评分卡的配置方式与决策表有些类似,只是对于条件列头只能选择具体的对象,而每个条件单元格在配置条件时都需要选择与当前列头选择的对象对应的具体属性,这样就可以满足任意复杂的评分需求。

亚博pg电子 8流

无论是普通的亚博pg电子 8集,还是决策表或评分卡,这些亚博pg电子 8工具都只能完成一个复杂业务亚博pg电子 8需求的一个点,所以对于完成的业务需求实现来说,还需要有工具把这些点串起来,这个工具就是亚博pg电子 8流,也叫决策流。

URule Pro当中提供的亚博pg电子 8流可以把前面介绍的这些普通的亚博pg电子 8集,决策表或评分卡串起来,实现对已有亚博pg电子 8的可视化编排功能。

在实际的业务系统中往往都是以亚博pg电子 8流作为业务亚博pg电子 8的调用入口,通过亚博pg电子 8流将所有的以点形式存在的亚博pg电子 8编排起来执行,从而可以实现任意复杂的业务亚博pg电子 8需求。

亚博pg电子 8的打包与调用

按照业务需求将亚博pg电子 8文件定义好后,就可以将涉及到的所有亚博pg电子 8文件打包备用。打包方式是点击URule Pro亚博pg电子 8项目导航上的“知识包”节点,在出现的页面当中,就可以将亚博pg电子 8文件打包成一个个待调用的知识包,如下图所示:

一个知识里面可以包含若干个具体的亚博pg电子 8文件,这些文件可以是若干个亚博pg电子 8集(决策集)、决策表、交叉决策表(决策矩阵)、评分卡、复杂评分卡以及决策流。需要注意的是,亚博pg电子 8文件里引入的库文件(变量库、参数库、常量库以及动作库文件)是不需要导入的,引擎会自动处理亚博pg电子 8中包含的库文件。

知识包配置完成后,可以对当前知识包进行测试。URule Pro提供了两种类型的针对知识包的测试,一种为用户直接输入测试值的“快速测试”,另一种为支持基于Excel批量数据的“仿真测试”。

点击知识包工具栏上的“快速测试”按钮就可以对当前知识进行测试,在测试页面当中输入相关测试数据, 然后再点击工具栏上的“测试决策包”按钮就可以对当前知识包里除亚博pg电子 8流以外所有类型的亚博pg电子 8进行测试,如果当前知识包里有亚博pg电子 8流文件,那么就需要点击工具栏上的“测试决策流”按钮来对目标决策流进行测试,如下图所示:

点击知识包工具栏上的“仿真测试”按钮就可以对当前知识包进行基于方案的复杂场景仿真测试,仿真测试有专门的章节介绍,这里不再赘述,具体见知识包测试

知识包测试完成后,就可以对其进行发布,发布方式是通过点击工具栏上的“发布知识包”按钮完成,每次发布的知识包,都会以版本形式保存下来,运行时可以在已发布的知识包版本间灵活切换。

综合来看,在URule Pro当中调用亚博pg电子 8的示意图如下所示:

通过URule Pro中的知识包,就可以将定义在XML中的业务亚博pg电子 8编译成具体的由Java对象构成的可执行的对象,在实际的业务代码当中,我们就可以通过相关API获取到这个知识包对象,插入相关业务数据并执行,从而获取业务亚博pg电子 8执行结果。

results matching ""

    No results matching ""