CN110704049B - 一种简单易用的规则引擎条件配置方法 - Google Patents
一种简单易用的规则引擎条件配置方法 Download PDFInfo
- Publication number
- CN110704049B CN110704049B CN201910953853.XA CN201910953853A CN110704049B CN 110704049 B CN110704049 B CN 110704049B CN 201910953853 A CN201910953853 A CN 201910953853A CN 110704049 B CN110704049 B CN 110704049B
- Authority
- CN
- China
- Prior art keywords
- data
- reporting
- product
- configuration
- type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000008569 process Effects 0.000 claims description 22
- 230000001960 triggered effect Effects 0.000 claims description 8
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005507 spraying Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/453—Help systems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种简单易用的规则引擎条件配置方法,包括以下步骤:创建规则;订阅配置;目的地配置;用户选择启动/暂停规则。本发明有益效果:能够灵活选择数据订阅类型;可以灵活的选择订阅数据内容;可以在条件配置页动态加载订阅数据,方便使用者直观的查询使用;采用mvel语法,更加符合面向对象思想,对开发者更为友好。
Description
技术领域
本发明属于规则引擎的配置技术领域,尤其是涉及一种简单易用的规则引擎条件配置方法。
背景技术
现有的规则引擎条件配置,有些直接使用sql编写,有些使用下拉选项,有些仅支持事件转发。对于使用者而言sql编写要求较高,需要知道表格信息及字段信息,同时需要对sql语言有一定的技术要求;使用下拉选项局限性较大,只能选择选项内的信息,同时操作起来较为复杂,当条件过多时需要一个一个的配置,较为繁琐;仅支持事件转发有时又无法满足用户的需求。
发明内容
有鉴于此,本发明旨在提出一种简单易用的规则引擎条件配置方法,以解决上述问题的不足之处。
为达到上述目的,本发明的技术方案是这样实现的:
一种简单易用的规则引擎条件配置方法,包括以下步骤:
I.创建规则;
II.订阅配置;
III.目的地配置;
IV.用户选择启动/暂停规则。
进一步的,所述步骤I中创建规则的过程为,填写规则名称,选择规则转发数据类型。
进一步的,所述步骤I中转发数据类型包括属性、事件和服务。
进一步的,所述步骤II中订阅配置的过程为,选择产品,根据产品选择数据上报类型和上报数据。
进一步的,所述步骤IV中启动规则进行数据处理的过程为:
IV1.数据上报;
IV2.对步骤IV1的数据进行解析;
IV3.判断数据类型;
IV4.索引已启动的转发数据类型的规则;
IV5.转发至规则目的地。
进一步的,所述步骤I中当转发数据类型为属性时,步骤II的订阅配置过程为:选择产品,根据产品选择数据上报类型和上报数据,数据上报类型包括触发上报和周期上报,上报数据包含两个层面,一个层面为产品中定义的属性选择,另一个层面为产品下的设备选择,两个层面相互独立,然后取配置的交集进行属性数据的订阅。
进一步的,当所述转发数据类型为属性时,步骤IV的过程为:当属性数据上报时,根据上报属性中携带的设备信息,根据步骤II中的配置索引到设备从属的所有已启动规则,然后根据规则条件配置,将上报的数据值替换掉条件中的变量,使条件形成一条可进行运算的指令,然后对该指令进行运算,返回运算结果,
如果运算结果为true,则将该数据转发到步骤III中配置的目的地中,如果运算结果为false,则将该数据丢弃,不进行转发。
进一步的,所述规则引擎条件配置方法采用mvel语法编写。
进一步的,在所述规则条件配置的配置页动态加载已订阅的设备属性信息,所述设备属性信息包括属性对应的字段信息,通过字段信息查询属性信息,通过属性信息查询字段信息,并且在所述规则条件配置中设有函数库和提示单元,所述提示单元用于显示提示信息和帮助说明。
进一步的,所述步骤I中当转发数据类型为事件时,步骤II的订阅配置过程为:选择产品,根据产品选择数据上报类型和上报数据,上报类型为触发上报,上报数据包含两个层面,一个层面为产品中定义的事件选择,另一个层面为产品下的设备选择,两个层面相互独立,然后取配置的交集进行事件数据的订阅。
进一步的,当所述转发数据类型为事件时,步骤IV的过程为:当事件数据上报时,根据上报事件中携带的设备信息,根据步骤II中的配置索引到设备从属的所有已启动规则,将该数据转发到步骤III中配置的目的地中。
进一步的,所述步骤I中当转发数据类型为服务时,步骤II的订阅配置过程为:选择产品,根据产品选择数据上报类型和上报数据,上报类型为触发上报,上报数据包含两个层面,一个层面为产品中定义的服务选择,,另一个层面为产品下的设备选择,两个层面相互独立,最终取配置的交集进行服务数据的订阅。
进一步的,当所述转发数据类型为服务时,步骤IV的过程为:当服务数据下发时,根据下发服务中携带的设备信息,根据步骤II的配置索引到设备从属的所有已启动规则,将该数据转发到步骤III的配置的目的地中。
相对于现有技术,本发明所述的简单易用的规则引擎条件配置方法具有以下优势:
本发明所述的简单易用的规则引擎条件配置方法能够灵活选择数据订阅类型(属性、服务、事件);可以灵活的选择订阅数据内容(数据层面和设备层面);可以在条件配置页动态加载订阅数据,方便使用者直观的查询使用;采用mvel语法,更加符合面向对象思想,对开发者更为友好。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的规则引擎条件配置方法流程图;
图2为本发明实施例所述的启动规则进行数据处理时的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合实施例来详细说明本发明。
如图1所示,一种简单易用的规则引擎条件配置方法,包括以下步骤:
I.创建规则;
II.订阅配置;
III.目的地配置;
IV.用户选择启动/暂停规则。
所述步骤I中创建规则的过程为,填写规则名称,选择规则转发数据类型。
所述步骤I中转发数据类型包括属性、事件和服务。
所述步骤II中订阅配置的过程为,选择产品,根据产品选择数据上报类型和上报数据。
如图2所示,所述步骤IV中启动规则进行数据处理的过程为:
IV1.数据上报;
IV2.对步骤IV1的数据进行解析;
IV3.判断数据类型;
IV4.索引已启动的转发数据类型的规则;
IV5.转发至规则目的地。
所述步骤I中当转发数据类型为属性时,步骤II的订阅配置过程为:选择产品,根据产品选择数据上报类型和上报数据,数据上报类型包括触发上报和周期上报,用户可根据使用场景自行选择,其中,触发上报为触发式的上报数据,发起方为真实物理设备,平台实时监听设备上报的数据,周期上报为周期式的上报数据,平台会根据上报周期,获取设备周期内最新的数据;上报数据包含两个层面,一个层面为产品中定义的属性选择,该配置可有针对性的对某些属性进行订阅配置;另一个层面为产品下的设备选择,该配置可有针对性的对某些设备进行订阅配置,两个层面相互独立,然后取配置的交集进行属性数据的订阅。例如选择了产品的P1、P2属性,选择了产品的D1设备,那么该规则最终订阅的数据为D1设备的P1、P2属性。
当所述转发数据类型为属性时,步骤IV的过程为:当属性数据上报时,根据上报属性中携带的设备信息,根据步骤II中的配置索引到设备从属的所有已启动规则,然后根据规则的条件配置,将上报的数据值替换掉条件中的变量,使条件形成一条可进行运算的指令,例如条件配置为P1+P2>2,上报数据为P1是1,P2是2,则本发明会将条件转换为1+2>2,然后对该指令进行运算,返回运算结果,如果运算结果为true,则将该数据转发到步骤III中配置的目的地中,如果运算结果为false,则将该数据丢弃,不进行转发。至此,一次完整的属性类型的规则引擎处理就结束了。
在所述规则条件配置的配置页动态加载已订阅的设备属性信息,所述设备属性信息包括属性对应的字段信息,用于后续条件编写,并且提供多维度的查询功能,通过字段信息查询属性信息,通过属性信息查询字段信息,方便编写与对比,所述字段信息均在其他页面中可见,为公开数据,不会涉及数据安全问题。并且在所述规则条件配置中设有函数库和提示单元,所述提示单元为可随时开关的悬浮框,所述提示单元用于显示提示信息和帮助说明,即便是初次使用者也能够直观快速上手,为使用者提供便捷的操作环境。
所述步骤I中当转发数据类型为事件时,步骤II的订阅配置过程为:选择产品,根据产品选择数据上报类型和上报数据,上报类型为触发上报,这是因为相比属性的规则配置,事件都是触发式的,即默认为触发上报,不存在周期上报的概念;上报数据包含两个层面,一个层面为产品中定义的事件选择,该配置可有针对性的对某些事件进行订阅配置,另一个层面为产品下的设备选择,该配置可有针对性的对某些设备进行订阅配置,两个层面相互独立,然后取配置的交集进行事件数据的订阅,例如选择了产品的E1、E2事件,选择了产品的D1设备,那么该规则最终订阅的数据为D1设备的E1、E2事件。
当所述转发数据类型为事件时,步骤IV的过程为:当事件数据上报时,根据上报事件中携带的设备信息,根据步骤II中的配置索引到设备从属的所有已启动规则,将该数据转发到步骤III中配置的目的地中,这是因为事件不存在条件配置,因此只要设备上报事件,则会无条件的进行转发。至此,一次完整的事件类型的规则引擎处理就结束了。
所述步骤I中当转发数据类型为服务时,步骤II的订阅配置过程为:选择产品,根据产品选择数据上报类型和上报数据,上报类型为触发上报,上报数据包含两个层面,一个层面为产品中定义的服务选择,该配置可有针对性的对某些服务进行订阅配置,另一个层面为产品下的设备选择,该配置可有针对性的对某些设备进行订阅配置,两个层面相互独立,最终取配置的交集进行服务数据的订阅,例如选择了产品的S1、S2服务,选择了产品的D1设备,那么该规则最终订阅的数据为D1设备的S1、S2服务。
当所述转发数据类型为服务时,步骤IV的过程为:当服务数据下发时,根据下发服务中携带的设备信息,根据步骤II的配置索引到设备从属的所有已启动规则,将该数据转发到步骤III的配置的目的地中,由于服务不存在条件配置,因此只要平台下发服务,则会无条件的进行转发。至此,一次完整的服务类型的规则引擎处理就结束了。
所述规则引擎条件配置方法采用mvel语法编写,该语法受到java语法的启发,旨在成为更为有效的表达式语言,比如直接支持集合、数组和字符串匹配,正则表达式的等运算操作,通过点操作,更符合面向对象开发者的使用习惯。在条件表达式编写完成后,会进行合法性校验,避免使用者由于手误而配置了无效的条件表达式。
本实施例中,所述设备是指对真实物理设备的映射概念,例如空气传感器,智能锁等真实存在的物理设备,可以在平台上创建对应的设备信息,用于物理设备和平台进行数据传输。所述产品是拥有相同规格设备的抽象概念,可以在产品(例如传感器)中定义属性(例如空气湿度,空气温度)、事件(例如断电报警)、服务(例如打开喷淋),然后可以基于此产品(例如传感器)批量添加设备,同一产品下的设备均拥有产品定义的属性、服务、事件。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种简单易用的规则引擎条件配置方法,其特征在于,包括以下步骤:
I.创建规则;
II.订阅配置;
III.目的地配置;
IV.用户选择启动/暂停规则;
所述步骤IV中启动规则进行数据处理的过程为:
IV1.数据上报;
IV2.对步骤IV1的数据进行解析;
IV3.判断数据类型;
IV4.索引已启动的转发数据类型的规则;
IV5.转发至规则目的地;
选择产品,根据产品选择数据上报类型和上报数据,数据上报类型包括触发上报和周期上报,上报数据包含两个层面,一个层面为产品中定义的属性选择,另一个层面为产品下的设备选择,两个层面相互独立,然后取配置的交集进行属性数据的订阅;
当所述转发数据类型为属性时,步骤IV的过程为:当属性数据上报时,根据上报属性中携带的设备信息,根据步骤II中的配置索引到设备从属的所有已启动规则,然后根据规则的条件配置,将上报的数据值替换掉条件中的变量,使条件形成一条可进行运算的指令,然后对该指令进行运算,返回运算结果,如果运算结果为true,则将该数据转发到步骤III中配置的目的地中,如果运算结果为false,则将该数据丢弃,不进行转发;
在所述规则条件配置的配置页动态加载已订阅的设备属性信息,所述设备属性信息包括属性对应的字段信息,通过字段信息查询属性信息,通过属性信息查询字段信息,并且在所述规则条件配置中设有函数库和提示单元,所述提示单元用于显示提示信息和帮助说明。
2.根据权利要求1所述的一种简单易用的规则引擎条件配置方法,其特征在于:所述步骤I中创建规则的过程为,填写规则名称,选择规则转发数据类型。
3.根据权利要求1所述的一种简单易用的规则引擎条件配置方法,其特征在于,所述步骤I中当转发数据类型为事件时,步骤II的订阅配置过程为:选择产品,根据产品选择数据上报类型和上报数据,上报类型为触发上报,上报数据包含两个层面,一个层面为产品中定义的事件选择,另一个层面为产品下的设备选择,两个层面相互独立,然后取配置的交集进行事件数据的订阅。
4.根据权利要求3所述的一种简单易用的规则引擎条件配置方法,其特征在于,当所述转发数据类型为事件时,步骤IV的过程为:当事件数据上报时,根据上报事件中携带的设备信息,根据步骤II中的配置索引到设备从属的所有已启动规则,将该数据转发到步骤III中配置的目的地中。
5.根据权利要求1所述的一种简单易用的规则引擎条件配置方法,其特征在于,所述步骤I中当转发数据类型为服务时,步骤II的订阅配置过程为:选择产品,根据产品选择数据上报类型和上报数据,上报类型为触发上报,上报数据包含两个层面,一个层面为产品中定义的服务选择,另一个层面为产品下的设备选择,两个层面相互独立,最终取配置的交集进行服务数据的订阅。
6.根据权利要求5所述的一种简单易用的规则引擎条件配置方法,其特征在于,当所述转发数据类型为服务时,步骤IV的过程为:当服务数据下发时,根据下发服务中携带的设备信息,根据步骤II的配置索引到设备从属的所有已启动规则,将该数据转发到步骤III的配置的目的地中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910953853.XA CN110704049B (zh) | 2019-10-09 | 2019-10-09 | 一种简单易用的规则引擎条件配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910953853.XA CN110704049B (zh) | 2019-10-09 | 2019-10-09 | 一种简单易用的规则引擎条件配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110704049A CN110704049A (zh) | 2020-01-17 |
CN110704049B true CN110704049B (zh) | 2023-07-04 |
Family
ID=69199437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910953853.XA Active CN110704049B (zh) | 2019-10-09 | 2019-10-09 | 一种简单易用的规则引擎条件配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110704049B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112583897A (zh) * | 2020-11-30 | 2021-03-30 | 北京百度网讯科技有限公司 | 规则引擎的数据目的地创建方法、装置、电子设备和存储介质 |
CN112422695A (zh) * | 2020-12-07 | 2021-02-26 | 重庆忽米网络科技有限公司 | 一种支持多协议多规则的工业设备数据转发方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617705A (zh) * | 2013-12-10 | 2014-03-05 | 北京邮电大学 | 一种基于规则的物联网报警方法和系统 |
CN104023020A (zh) * | 2014-06-13 | 2014-09-03 | 中国民航信息网络股份有限公司 | 针对移动设备的TypeB报文订阅推送系统及相应方法 |
CN104702638A (zh) * | 2013-12-06 | 2015-06-10 | 华为技术有限公司 | 事件的订阅分发方法和装置 |
EP2901750A2 (en) * | 2012-09-27 | 2015-08-05 | Alcatel Lucent | Congestion control for radio access networks (ran) |
CN106464665A (zh) * | 2014-02-28 | 2017-02-22 | 泰科消防及安全有限公司 | 与消息路由结合的规则引擎 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7898423B2 (en) * | 2007-07-31 | 2011-03-01 | At&T Intellectual Property I, L.P. | Real-time event notification |
CN103543700B (zh) * | 2012-06-27 | 2016-08-17 | 尤比奎蒂网络公司 | 控制传感器装置的方法和设备 |
CN104050543B (zh) * | 2014-06-30 | 2017-06-20 | 华为技术有限公司 | 流处理系统中的事件处理方法及流处理系统 |
CN106101090A (zh) * | 2016-06-07 | 2016-11-09 | 中国建设银行股份有限公司 | 用于规则引擎的操作方法以及规则引擎系统 |
CN107566498A (zh) * | 2017-09-08 | 2018-01-09 | 深圳市智物联网络有限公司 | 一种基于物联网的数控机床监控方法及系统 |
-
2019
- 2019-10-09 CN CN201910953853.XA patent/CN110704049B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2901750A2 (en) * | 2012-09-27 | 2015-08-05 | Alcatel Lucent | Congestion control for radio access networks (ran) |
CN104702638A (zh) * | 2013-12-06 | 2015-06-10 | 华为技术有限公司 | 事件的订阅分发方法和装置 |
CN103617705A (zh) * | 2013-12-10 | 2014-03-05 | 北京邮电大学 | 一种基于规则的物联网报警方法和系统 |
CN106464665A (zh) * | 2014-02-28 | 2017-02-22 | 泰科消防及安全有限公司 | 与消息路由结合的规则引擎 |
CN104023020A (zh) * | 2014-06-13 | 2014-09-03 | 中国民航信息网络股份有限公司 | 针对移动设备的TypeB报文订阅推送系统及相应方法 |
Non-Patent Citations (2)
Title |
---|
SRE: Semantic Rules Engine for the Industrial Internet-Of-Things Gateways;Charbel El Kaed等;《 IEEE Transactions on Industrial Informatics 》;715 - 724 * |
基于发布订阅的分布式复杂事件处理系统的研究与实现;王奇;《中国优秀硕士学位论文全文数据库 信息科技辑》;I138-390 * |
Also Published As
Publication number | Publication date |
---|---|
CN110704049A (zh) | 2020-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8417690B2 (en) | Automatically avoiding unconstrained cartesian product joins | |
US10963347B1 (en) | Data snapshots for configurable screen on a wearable device | |
EP3790255A1 (en) | Data processing method, multi-cloud management system and related device | |
CN106126540B (zh) | 数据库访问系统及其访问方法 | |
JP2022036960A (ja) | ネットワーク上のデータソースへの照会 | |
JP2019537100A (ja) | サービス層のためのアクセス制御ポリシーの同期 | |
US20050204367A1 (en) | Integration architecture for non-integrated tools | |
JP5192634B2 (ja) | 宣言順レポートパラメータ化 | |
US20020049756A1 (en) | System and method for searching multiple disparate search engines | |
JP2019537775A (ja) | 分散されたセマンティック記述子に対するセマンティッククエリ | |
CN110704049B (zh) | 一种简单易用的规则引擎条件配置方法 | |
CN111274263B (zh) | 可视化数据库变更语句生成方法、装置及存储介质 | |
WO2007143198A2 (en) | A system for adaptively querying a data storage repository | |
US20060047648A1 (en) | Comprehensive query processing and data access system and user interface | |
US11762775B2 (en) | Systems and methods for implementing overlapping data caching for object application program interfaces | |
CN107526806A (zh) | 数据的转换方法及装置 | |
WO2019153514A1 (zh) | 业务系统动态生成方法、装置、计算机设备及存储介质 | |
CN104410568A (zh) | 一种智能家居语义网关的设计方法 | |
CN115062046A (zh) | 数据库查询方法、装置、电子设备及存储介质 | |
US10713014B2 (en) | Multi-platform interface framework | |
US20200167133A1 (en) | Web service mashup orchestrator | |
CN101562633B (zh) | 可视化服务网络用户交互系统 | |
CN105681100B (zh) | 一种综合网管多协议采集调度方法 | |
CN114238459A (zh) | 一种异构数据源集成管理方法、装置和系统 | |
CN105634822B (zh) | 基于告警分组实现快速查询告警信息的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |