什么是规则引擎:
规则引擎是一种采用人类能理解的术语(简称类自然语言)来描述业务逻辑(如各类公式、算法、策略、流程等)并且解析执行的软件程序。对于一般的数据处理逻辑以及判断逻辑,规则引擎可以直接采用业务人员自己定义的术语,来对其进行描述。使得这些业务逻辑可以脱离程序外进行单独配置和管理,已满足其后期随时变更。国外代表品牌是ILOG,开源DROOLS,以及国内商业产品代表是旗正规则引擎。
旗正规则引擎的特点:
使用规则引擎的目的就是为了让软件系统中一些数据处理的逻辑,未来可以随时调整。比如旗正规则引擎除了可以随时调整具体的逻辑外,还能支持对数据结构以及数据来源的调整,这是一般的规则引擎做不到的。
因此旗正规则引擎扩大了规则引擎的使用范围,能够解决软件系统当前普遍存在的后期维护的问题,使得在系统上线后可以随时进行调整,以便适应企业最新的需要。
旗正规则引擎是如何做到的?
软件系统的后期维护所需要的变更,无外乎数据结构和数据处理逻辑的变更问题。
如果按照一般的开发方式,数据结构的定义时,会有大量的实体类来定义数据结构。比如界面对应的实体类、逻辑处理的实体类以及数据库对应的实体类。当数据结构发生调整时,对应需要修改所有的实体类。
采用基于规则包配置时,不再采用实体类的方式来定义数据。而是采用key-value的方式来定义所有的类型。这样当数据结构发生调整时,只需更新key-value具体的值即可进行变更。
逻辑处理,采用规则包的动态接口定义。规则包的传入参数传出参数,以及可以直接用key-value传递需要处理的数据结构。
数据库对应的数据结构,采用动态的类来进行定义,用List<string>来定义列信息,用List<List&