掌桥专利:专业的专利平台
掌桥专利
首页

一种基于协议及签名的物联网平台数据处理方法和设备

文献发布时间:2024-04-18 20:01:23


一种基于协议及签名的物联网平台数据处理方法和设备

技术领域

本发明涉及数据处理技术领域,尤其是涉及一种基于消息协议及签名的物联网平台数据处理方法。

背景技术

随着信息化技术的发展及互联网网络条件的不断优化,在工业、医疗、社区等场景下接入的的物联网终端设备数量迅速增长,物联网设备所采集、生成的数据,不仅在体量和维度上空前增长,其下游应用的复杂度也为物联网平台带来了巨大的挑战。

为了在云端对海量消息(即终端设备上送的数据)进行归集、清洗、转发、计算与存储,物联网平台往往通过分布式架构实现一套数据处理服务(即规则引擎),依据配置的规则来对消息进行各种处理。一个易于配置、运行效率高、拥有良好安全机制且能够实现各类数据处理功能的规则引擎,能够为物联网平台的数据处理能力带来极大的提升。

通常,物联网平台的规则引擎需要依据业务的需要,对常用的数据调用程序进行开发,对上下游消息的流转规则进行链式的配置,将这些配置以特定的形式存储在数据库中,并编写解释器对这些流转规则链进行解析。在实际场景中,物联网平台的规则引擎在每次上线新业务或做业务变动时,需要配合上下游应用,对数据库中的消息流转规则进行重新配置,并同上下游进行三方调试。此外,每次收到消息后,必须要进行规则数据库的读取、消息来源(设备)的认证以及规则解释器的调用。这些步骤对于物联网平台整体的效率及负载压力都带来了不好的影响。

中国专利申请号CN201911402164.6公开了一种基于规则引擎的物联网平台的数据处理方法及系统,该方法包括如下步骤:步骤1,数据解析:将物联网平台的信号数据解析为明文数据;步骤2,规则配置:基于步骤1中物联网平台的明文数据配置需要作用在该明文数据上的规则;步骤3,数据处理:基于步骤2配置的规则对物联网平台的明文数据进行过滤和/或转换和/或执行和/或存储处理。通过基于规则引擎的预处理和配置方法,对于某类设备或数据按照预定的规则由引擎驱动进行动态处理,避免不断的增加代码来解决特殊数据类型,避免了物联网平台中由于新项目的引入进而影响原有项目的稳定。但是,在应用运行期间规则引擎于数据库强依赖,数据库的单点故障存在导致物联网平台的不可用的可能,此外,上游应用、规则引擎之间没有设置签名机制,规则引擎与上下游业务强耦合。

综上,当前的规则引擎的实现方法存在如下缺点:

(1)物联网平台的规则引擎在每次上线新业务或做业务变动时,需要配合上下游应用,对数据库中的消息流转规则进行重新配置,并同上下游进行三方调试,应用部署前规则引擎需要进行配置、调试,在应用运行期间对于数据库存在强依赖,规则引擎需要进行复杂配置和频繁的数据库查询,传统的解析器在大部分情况下无法应对略微复杂的逻辑,且极难被用户试用;

(2)物联网平台每次收到消息后,必须要进行规则数据库的读取、消息来源(设备)的认证以及规则解释器的调用,这些步骤对于物联网平台整体的效率及负载压力带来了负面影响,加大了规则引擎读写数据库、调用解释器的性能开销。

发明内容

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种实现规则引擎与规则数据库的解耦从而无需进行复杂配置和频繁数据库查询的基于协议及签名的物联网平台数据处理方法和设备。

本发明的目的可以通过以下技术方案来实现:

本发明的一个方面,提供了一种基于协议及签名的物联网平台数据处理方法,应用于物联网平台,所述物联网平台包括规则引擎以及一个或多个规则适配节点,所述的基于消息协议及签名的物联网平台数据处理方法包括如下步骤:获取与预设的消息协议格式相匹配的解析信息,所述的解析信息包括原始消息数据、流转规则数据以及签名,根据所述流转规则数据和预置的规则适配节点信息,采用负载均衡策略匹配一个或多个所述的规则适配节点;向匹配的所述一个或多个规则适配节点发送所述解析信息,在验证所述签名后进行与所述原始消息数据匹配的数据处理,并提交下游应用。

作为优选的技术方案,所述的流转规则数据包括:流转规则标识和流转规则参数,所述的规则标识包括上游平台信息、应用信息、下游应用类型、签名算法类型及流转规则识别码中的一个或多个。

作为优选的技术方案,所述的签名的生成算法为MD5、SHA、DSS中的任一个。

作为优选的技术方案,所述的解析信息来自上游应用或用于将原始数据消息转换为统一的所述消息协议格式的一个或多个消息适配节点,所述消息适配节点已预先与所述规则适配节点关联。

作为优选的技术方案,当所述的解析信息来自所述消息适配节点时,所述的获取包括原始消息数据、流转规则数据以及签名在内的解析信息的过程包括如下步骤:从经过相同的负载均衡策略匹配后的所述消息适配节点获取解析信息,所述解析信息包括原始消息数据、根据所述原始消息数据和预置的规则匹配的流转规则数据,以及采用与流转规则匹配的所述规则适配节点关联的签名。

作为优选的技术方案,所述的负载均衡策略为:计算当前的消息适配节点所属的集群的负载指标,当所述负载指标超过/低于预设阈值时,对应地增加/减少与当前的消息适配节点相同的消息适配节点。

作为优选的技术方案,所述的负载指标根据当前的消息适配节点的负载、流量趋势、规则调用率中的一个或多个参数计算得到。

作为优选的技术方案,所述的负载指标的负载计算公式为:

v=Ceil[k*CurrentCost*Trend*(w

其中,v为所述负载指标,k为常量,Trend为流量趋势,w

其中,w

作为优选的技术方案,所述的占用资源的指标包括当前的消息适配节点的CPU占用率、当前的消息适配节点的内存占用率中的一个或多个。

本发明的另一个方面,提供了一种电子设备,包括一个或多个处理器以及存储器,所述储存器内储存有一个或多个程序,所述一个或多个程序包括用于执行上述基于消息协议及签名的物联网平台数据处理方法的指令。

与现有技术相比,本发明具有以下优点:

(1)规则引擎不需要根据设备或上游应用的标识符去查询适用的所有规则,而将查询工作交由上游应用进行,规则引擎接收到的消息为符合预设的消息协议格式,并包含适用的规则信息,从而将规则引擎从繁杂的数据解析工作中解放出来,不需要为每一项规则及原始数据去进行一次数据预处理;

(2)为了适配传统的上游应用,提供了包含多个消息适配节点的集群,对原始信息进行预处理,并转换为规则引擎可以识别的预设的消息协议格式;

(3)为了保证解耦后消息平台的安全性,在规则引擎接收到的解析后的信息中须包含有与流转规则对应的规则适配器的签名,同时在规则引擎转发给规则适配器后,规则适配器将验证签名,从而保证解耦后消息平台的安全性;

(4)优化了规则引擎上下游流量的负载均衡模式,通过流量监控及自适应算法对各适配器进行弹性部署,达到了提高负载能力和资源利用率的效果;

(5)提升了物联网平台消息流转的效率,解耦后的规则引擎成为了一个可扩展的低耦合服务,其对于微服务架构及高可用消息中间件的适配性大大加强,在各种规模的物联网平台中,都能够极好的发挥其轻量、高效的特点,因此本发明适配分布式系统及各类网络协议,如HTTP,CoAP,MQTT等,能够被广泛应用以提高各种规模物联网平台数据处理能力,同时将流转规则的三方调试简化为双方调试,减少了高耦合度的配置式管理,并使得业务实现的逻辑更为丰富。

附图说明

图1为实施例中一种基于协议及签名的物联网平台数据处理方法的流程图;

图2为实施例中规则引擎的运行流程图;

图3为实施例中消息适配器的数据预处理流程图;

图4为实施例中规则适配器对消息的处理流程图;

图5为实施例中数据处理方法的流程示意图;

图6为实施例中消息适配器集群的负载均衡算法调用示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

实施例1

如图1所述,本实施例提供了一种基于协议及签名的物联网平台数据处理方法,包括如下步骤:

步骤S1,从上游应用接收原始数据,本实施例中原始数据与规则引擎不匹配,需要进行预处理。

步骤S2,消息适配器获取原始数据,进行预处理,适用从规则适配器获取的授权进行签名后,解析原始数据进行规则匹配,从而获得流转规则信息,最后按照如下表所示预设的格式对信息进行组装,得到解析信息。

在该协议下,运行于终端设备的上游应用或它的消息适配器定义了每一条数据将被应用于哪些流转规则,并从源数据中提取出应用于这些规则的部分,通过签名的形式保证自己拥有调用这些规则的权限。其中,规则标识符需要与规则适配器进行对应,其数据签名使用的特定的字符串等参数都由规则适配器签发,消息中的数据可以通过与规则适配器约定,进行加密以保证数据安全性。

另外,数据标识符的格式为:platform.app.type.signType.id,主要包含平台信息、应用信息、下游应用类型、签名算法类型及规则的唯一编码等。数据为密文,经过预处理后加入到协议的data字段。

步骤S3,规则引擎读取预处理后的符合消息协议格式的解析信息,判断协议是否合法,若是则继续执行后续步骤,否则结束。

步骤S4,规则引擎根据流转规则信息,将解析信息发送给对应的规则适配器。

步骤S5-S6,规则适配器提取解析信息中的流转规则信息,并验证签名,若验证通过,则执行预设的处理逻辑,否则进入步骤S7;

步骤S7,提交给下游应用。

如图2所述为本实施例中规则引擎的运行流程图。在高并发场景下,本方法提出的规则引擎避免了频繁读取规则数据库的开销。利用任意高可用的发布订阅中间件,规则引擎服务能够在保证消息最终一致性的情况下,将消息的内容列表中包含的各项拆分,并发布到规则适配器。消息协议的特性为规则引擎确保了以下几点:1.规则引擎不需要根据设备或上游应用的标识符去查询适用的所有规则,这些规则从数据规模和数据查询效率上来说,其造成的系统开销都远比在消息中增加内容多。2.规则引擎不需要为每一项规则及原始数据,去进行一次数据预处理,也就避免了规则引擎去实现一个没有通用标准的数据解析器,传统的解析器在大部分情况下无法应对略微复杂的逻辑,且极难被用户试用。3.规则引擎成为了一个可扩展的低耦合服务,其对于微服务架构及高可用消息中间件的适配性大大加强,在各种规模的物联网平台中,都能够极好的发挥其轻量、高效的特点。

如图3所述为本实施例中消息适配器的流程示意图。在绝大部分业务场景中,在开发上游应用的过程中,其数据的处理流程和目的地一般都是明确的,因此,让数据流转规则由消息协议发起,通过规则引擎进行路由,并最终由规则适配器进行验证和处理,在实际场景中显然比全部交由规则引擎进行复杂配置和频繁的数据库查询更为合理。

消息适配器作为规则引擎的前置服务,能够以工厂模式的形式进行生成,也可以通过开发,添加额外的数据处理逻辑。其目的是提供一个可扩展的接口,使得规则引擎和上游应用之间进一步解耦,提高兼容性,对于常用的json或xml数据,这些开发与配置极为简便。此外,本实施例中的消息适配器能够作为规则引擎的第一级负载均衡入口,对于高并发场景下的消息进行预处理和流量代理,并通过消息协议的解析与自适应算法,对消息适配器与规则适配器进行弹性切换。

如图6所述为本实施例中负载均衡算法的调用流程示意图,当适配器当前负载、流量趋势、规则调用率等参数通过计算高于扩容阈值或小于缩减阈值时,集群管理工具将对消息适配器与规则适配器进行自动化的部署或迁移。

规则适配器自适应部署计算公式:

v=Ceil[k*CurrentCost*Trend*(w

其中,v为所述负载指标,k为常量,Trend为流量趋势,通过近期流量上升或下降率得到,对于每个规则适配器,其计算资源消耗会对权重产生影响,而规则调用率通过消息适配器中对于消息流转规则的解析得到,w

其中,w

通过该公式获取v值与满负载与低负载时的阈值进行对比,使系统对于各个规则适配器的实例进行弹性伸缩。

如图4所述为本实施例中规则适配器的流程示意图。规则适配器主要用于最终执行规则引擎所分配的数据处理任务,以及对于数据来源的上游应用或消息适配器进行规则权限的签发。在物联网平台的集群架构中,规则适配器以订阅者的形式,作为一项等待被调用的服务存在,它存在着易开发、易复用、高可用等特点。

本实施例的物联网平台在使用前的配置流程为:

(1)规则引擎根据消息协议所指定的规则,对协议中的规则标识符进行动态解析并绑定到消息中间件。

(2)物联网平台根据消息协议,开发能够签发与验签的规则适配器,并通过消息中间件对规则引擎进行订阅。

(3)物联网终端设备或平台的开发者,根据业务需要开发上游应用或消息适配器,对业务数据进行消息协议的适配。

(4)将消息适配器与规则适配器关联,启用负载监控和流量预测。

(5)适配器之间进行流转规则链路的调试,实现数据的流转。

(6)额外新增规则时,开发规则适配器并签发权限给上游应用或消息适配器,在上游应用或消息适配器中对消息进行更新。

本实施例提出的方法中,规则适配器承担着验证、签发数据签名以对流转规则进行认证的职责。其根据签名算法的安全性要求及效率值,一般应用MD5,SHA及DSS三种签名算法,其签名规则为:部署规则适配器时,生成一个由不规则随机字符串组成的签名特定的字符串,校验消息协议时,通过将盐插入至消息数据中并一次或多次调用签名算法进行验签。这类验签方式能够验证上游提供的数据及规则是否合法,并校验数据的完整性。同样的,消息适配器与规则适配器之间可以约定数据的加密与解密方式,规则适配器通过存储非对称的私钥,能够对保密级别较高的数据提高安全保障。

此外,物联网平台的管理员在简单配置后,可以通过工厂模式生成规则适配器并将其自动部署,在消息中间件的帮助下,这些规则适配器可以随时开发数据处理逻辑并依旧保障数据的一致性,在关联至消息适配器的自适应算法后,能够实现规则适配器的弹性部署。同样,对于物联网平台的普通用户,可以根据消息协议的验签和签发逻辑,对规则适配器进行开发,并关联到物联网平台的规则引擎进行使用。

综上,本发明具有以下创新点:

(1)通过约定消息协议,将数据流转规则的制定及数据解析的工作转移到各类适配器中进行处理并随消息一同进行传输,免去应用部署前,规则引擎在配置、调试方面的冗余工作,免去了在应用运行期间规则引擎对于数据库的强依赖,并大大减少了规则引擎读写数据库、调用解释器的性能开销。在使用该方法后,规则引擎成为一个“无状态”的服务,在分布式架构中,能够通过冗余部署弹性的增加规则引擎的负载能力,使得规则引擎不会因为数据库的单点故障导致物联网平台的不可用。

(2)通过消息协议中的数据签名机制,使上游应用(消息适配器)、规则引擎及规则适配器之间形成安全机制,仅有通过规则适配器授权的数据,才能通过规则引擎转发至下游应用以进行数据处理或存储。在添加流转规则时,通过规则适配器签发授权、上游应用或消息适配器绑定新的规则标识符的方式,安全的将规则引擎与上下游业务解耦,使整个物联网平台易于维护。

(3)提供可开发、可配置的适配器,当上下游的应用不支持二次开发,或原先不支持本方法描述的消息协议时,消息和规则适配器能够使这些应用的数据符合规则引擎的运行逻辑,而这类适配器在开发与部署上极为轻量级,对于json或xml等常用数据格式能够快速转化处理。规则引擎以消息适配器作为消息入口,在自定义消息流转规则的同时能够起到流量监测和负载均衡的作用。同时,各类适配器采用类似的模式进行弹性部署,通过监控及自适应算法对所有适配器的计算、存储资源进行弹性切换,以提高负载能力与资源利用率。

实施例2

本实施例提供了一种电子设备,包括一个或多个处理器以及存储器,储存器内储存有一个或多个程序,一个或多个程序包括用于执行如实施例1所述的基于消息协议及签名的物联网平台数据处理方法的指令。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

技术分类

06120116546690