一种基于MQTT消息驱动机制的物联网本地设备联动方法与流程

文档序号:24235224发布日期:2021-03-12 13:06阅读:188来源:国知局
一种基于MQTT消息驱动机制的物联网本地设备联动方法与流程

本发明涉及物联网相关技术领域,尤其是指一种基于mqtt消息驱动机制的物联网本地设备联动方法。



背景技术:

传统物联网平台技术基于数据流在云平台侧通过流式处理将多个物联设备联动起来,这样做造成海量数据流汇聚于平台处理,造成平台很大的数据处理压力,同时物联设备通过各种各样的网络将数据上传平台,一旦网络出现故障,联动功能将无法工作。同时各种各样的网络带来了极大的延迟和不可靠性,无法实现实时设备联动。



技术实现要素:

本发明是为了克服现有技术中存在上述的不足,提供了一种能够分担集中处理压力的基于mqtt消息驱动机制的物联网本地设备联动方法。

为了实现上述目的,本发明采用以下技术方案:

一种基于mqtt消息驱动机制的物联网本地设备联动方法,具体包括如下步骤:

(1)将设备联动规则引擎在云端编排,将该规则引擎所配置的规则关联到选中的边缘网关上;

(2)下发配置到边缘网关端,进行边缘计算和规则引擎逻辑联动,并在边缘侧具体执行,当网络不可靠时,本地设备依旧按照用户预配置来执行。

mqtt消息队列遥测传输,是iso标准(iso/iecprf20922)下基于发布/订阅范式的消息协议,它工作在tcp/ip协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。

规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据规则做出业务决策。

边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供服务。其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。边缘计算处于物理实体和工业连接之间,或处于物理实体的顶端。而云端计算,仍然可以访问边缘计算的历史数据。

本发明主要是将设备联动规则在云端编排,但是下发配置到边缘网关端,在边缘侧具体执行,当网络不可靠时,本地设备依旧按照用户预配置来执行,不但分担了云端平台的集中处理压力,同时不依赖于公网网络做到本地实时可靠的设备联动。

作为优选,在步骤(1)中,设备联动规则引擎的配置方法为:

(11)内部消息总线数据将数据送往数据对象化分割模块进行处理,数据对象化分割模块将数据分割为key->value的形式;

(12)将数据转为以单个key为单元的数据流,每个数据都将经过消息触发器与影子对象模块;

(13)消息触发器匹配到key,会触发比较器,比较器根据自己key去影子对象模块中查找所关注key指向value,根据比较器内的运算表达式与比较值做计算后来触发执行器;

(14)当执行器被触发后,执行器会将执行器中设备以及可选参数送往数据对象化拼接模块,进行输出数据的格式化,格式化后的数据流用于匹配内部总线设备控制规范。

作为优选,在步骤(11)中,内部消息总线数据帧流转格式分为属性、事件、服务,它们的payload格式都是相同的,内部消息总线数据需要先经过数据过滤,对加载编排规则用到topic及数据放行,其他topic直接忽略,规则引擎配置中引用到的topic所携带的数据进行才会送往数据对象化分割模块中进行处理,而数据对象化分割模块中将原来是json结构的payload拆解为独立的value,并且将json结构的key格式化到topic中,payload仅为数值的字符串;若内部消息总线的数据结构有多个参数,那么其转为规则引擎内部消息时,会有一条消息拆分为多条消息的情况。

作为优选,在步骤(13)中,比较器中的key是通过mqtt消息里的负载payload从内部消息总线上过来的,当消息触发器条件满足时,与消息触发器关联的执行器被触发。

作为优选,在步骤(13)中,除了消息触发器会触发比较器之外,还有时间触发器会触发比较器,具体为:当时间触发器里面的时间满足要求时,比较器会被触发,比较器根据自己key去影子对象模块中查找所关注key指向value,根据比较器内的运算表达式与比较值做计算后来触发执行器。

作为优选,在步骤(13)中,除了可以配置时间触发器以外,还可以配置延时触发器,具体为:延迟触发器由其他逻辑被动触发,延迟触发器参数是相对触发时刻的延迟时间,延时触发器仅仅执行一次,当延迟触发器被触发后,延迟触发器不做任何比较,即不会触发比较器,延迟参数指定时间后执行下一逻辑。其中:延迟触发器由其他逻辑被动触发中的其他逻辑可以是时间触发器/消息触发器/比较器,其作用是为了满足特定时序的设备联动业务场景。

作为优选,在规则引擎配置过程中,需要对业务逻辑进行跟踪调试,查找问题,规则引擎设计有debug模块,该模块默认禁用远程跟踪上报,当有需要远程开启,开启后在iot规则编辑平台展示,被触发的任一模块将以高量显示,便于用户跟踪逻辑流转线路。

作为优选,规则引擎设计中debug模块的具体为:业务逻辑仅仅与其node配置有关,node为最小编程单元,每个node之间通过nodeid相连,当条件满足时,跳转到下个nodeid,不同的比较node相互关联构成复杂的层级,最终实现预定的ifelse逻辑,将独立的一组nodeid称为nodechain,一份配置里可以有多条nodechain,彼此之间隔离,由自己的触发器驱动,每个node自己的id在被执行后被记录在链表中,如果下一个指向的node不存在,说明当前nodechain已经结束,或者当前node逻辑条件不满足,说明下面逻辑无法被执行;当这两种情况任何之一出现后,将本地记录的id表上传,平台对收到id显示做加亮。其中:自己的触发器是上文中提到的触发器,由于规则编排可能出现多条流程图,所以这里只自己节点所在流程图对应的触发器。链表指的是用于记录这条流程图nodeid的容器。

作为优选,在步骤(2)中,边缘计算的方法如下:

(21)输入属性定义:将设备的属性值作为输入,供脚本计算使用;

(22)输出模型定义:输入参数名称,即往业务平台传送的json结构数据字段的key,业务平台根据该字段收到数据后直接使用;

(23)编写脚本对输入值进行计算,并将计算结果作为输出结果,输出到物模型给业务平台使用。

本发明的有益效果是:当网络不可靠时,本地设备依旧按照用户预配置来执行,不但分担了云端平台的集中处理压力,同时不依赖于公网网络做到本地实时可靠的设备联动。

附图说明

图1是本发明的规则引擎配置流程图。

具体实施方式

下面结合附图和具体实施方式对本发明做进一步的描述。

如图1所述的实施例中,一种基于mqtt消息驱动机制的物联网本地设备联动方法,具体包括如下步骤:

(1)将设备联动规则引擎在云端编排,将该规则引擎所配置的规则关联到选中的边缘网关上;设备联动规则引擎的配置方法为:

(11)内部消息总线数据将数据送往数据对象化分割模块进行处理,数据对象化分割模块将数据分割为key->value的形式;

内部消息总线数据帧流转格式分为属性、事件、服务,它们的payload格式都是相同的,内部消息总线数据需要先经过数据过滤,对加载编排规则用到topic及数据放行,其他topic直接忽略,数据过滤目的是减少比较器的工作压力,规则引擎配置中引用到的topic所携带的数据进行才会送往数据对象化分割模块中进行处理,而数据对象化分割模块中将原来是json结构的payload拆解为独立的value,并且将json结构的key格式化到topic中,payload仅为数值的字符串;若内部消息总线的数据结构有多个参数,那么其转为规则引擎内部消息时,会有一条消息拆分为多条消息的情况。

注意:value仅仅可以是数值,或者数值的字符串形式,如果是其他形式会造成比较器无法得到正确的解,通常情况下会恒等于false。

(12)将数据转为以单个key为单元的数据流,每个数据都将经过消息触发器与影子对象模块;

(13)消息触发器匹配到key,会触发比较器,比较器根据自己key去影子对象模块中查找所关注key指向value,根据比较器内的运算表达式与比较值做计算后来触发执行器;比较器中的key是通过mqtt消息里的负载payload从内部消息总线上过来的,当消息触发器条件满足时,比如定时器到达或者数据/事件消息到达时,与消息触发器关联的执行器被触发。

除了消息触发器会触发比较器之外,还有时间触发器会触发比较器,具体为:当时间触发器里面的时间满足要求时,比较器会被触发,比较器根据自己key去影子对象模块中查找所关注key指向value,根据比较器内的运算表达式与比较值做计算后来触发执行器。

除了可以配置时间触发器以外,还可以配置延时触发器,具体为:延迟触发器由其他逻辑被动触发,延迟触发器参数是相对触发时刻的延迟时间,延时触发器仅仅执行一次,当延迟触发器被触发后,延迟触发器不做任何比较,即不会触发比较器,延迟参数指定时间后执行下一逻辑。

备注:触发器是出发源,类似流程图开始模块,系统中可以有多个独立的流程,单个流程是独立使用。延迟触发器由其他逻辑被动触发中的其他逻辑可以是时间触发器/消息触发器/比较器,其作用是为了满足特定时序的设备联动业务场景。

(14)当执行器被触发后,执行器会将执行器中设备以及可选参数送往数据对象化拼接模块,进行输出数据的格式化,格式化后的数据流用于匹配内部总线设备控制规范。其中:数据拼接模块的含义为二进制数据流拼接或格式化,作用是将抽象消息转为实体设备的控制指令。

在规则引擎配置过程中,需要对业务逻辑进行跟踪调试,查找问题,规则引擎设计有debug模块,该模块默认禁用远程跟踪上报,当有需要远程开启,开启后在iot规则编辑平台展示,被触发的任一模块将以高量显示,便于用户跟踪逻辑流转线路。

规则引擎设计中debug模块的具体为:业务逻辑仅仅与其node配置有关,node为最小编程单元,每个node之间通过nodeid相连,当条件满足时,跳转到下个nodeid,不同的比较node相互关联构成复杂的层级,最终实现预定的ifelse逻辑,将独立的一组nodeid称为nodechain,一份配置里可以有多条nodechain,彼此之间隔离,由自己的触发器驱动,每个node自己的id在被执行后被记录在链表中,如果下一个指向的node不存在,说明当前nodechain已经结束,或者当前node逻辑条件不满足,说明下面逻辑无法被执行;当这两种情况任何之一出现后,将本地记录的id表上传,平台对收到id显示做加亮。其中:自己的触发器是上文中提到的触发器,由于规则编排可能出现多条流程图,所以这里只自己节点所在流程图对应的触发器。链表指的是用于记录这条流程图nodeid的容器。

(2)下发配置到边缘网关端,进行边缘计算和规则引擎逻辑联动,并在边缘侧具体执行,当网络不可靠时,本地设备依旧按照用户预配置来执行;边缘计算的方法如下:

(21)输入属性定义:将设备的属性值作为输入,供脚本计算使用;

(22)输出模型定义:输入参数名称,即往业务平台传送的json结构数据字段的key,业务平台根据该字段收到数据后直接使用;

(23)编写脚本对输入值进行计算,并将计算结果作为输出结果,输出到物模型给业务平台使用。

边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供服务。其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。而云端计算,仍然可以访问边缘计算的历史数据。

边缘计算既可以在大型运算设备内完成也可以在中小型运算设备、本地端网络内完成。用于边缘运算的设备可以是智能手机这样的移动设备、pc、智能家居、无人驾驶汽车等家用终端,也可以是atm机、摄像头、红绿灯、电动机、泵、发电机或其他的传感器等终端。

边缘计算是伴随着物联网的发展而出现的。对物联网而言,边缘计算技术取得突破,意味着通过本地设备就可实现数据分析与控制,无需交付云端处理。这将大大提升数据处理效率,减轻云端负荷,为用户提供更快速的响应,实时或更快速地处理和分析数据。数据处理更接近数据来源,而不是在外部数据中心或云端进行,因此可以减少迟延时间。具有较低的运营成本,企业在本地设备的数据管理解决方案上的花费比在云和数据中心网络上的花费要少。占用网络流量较少,随着物联网设备数量的增加,数据生成继续飙升,因此,网络带宽变得更加有限,让云端不堪重负,造成更大的数据瓶颈。更高的应用程序运行效率,随着滞后的减少,应用程序能够以更快的速度更高效地运行。减少对云的依赖可以降低发生单点故障的可能性,也意味着某些设备可以稳定地离线运行。边缘计算可以提高数据的安全性和合规性,这对保护个人信息大有裨益。

本发明主要是将设备联动规则在云端编排,但是下发配置到边缘网关端,在边缘侧具体执行,当网络不可靠时,本地设备依旧按照用户预配置来执行,不但分担了云端平台的集中处理压力,同时不依赖于公网网络做到本地实时可靠的设备联动。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1