一种数据采集和分发的方法、系统及存储介质与流程

文档序号:37170563发布日期:2024-03-01 12:16阅读:12来源:国知局
一种数据采集和分发的方法、系统及存储介质与流程

本发明涉及通信,更具体涉及一种数据采集和分发的方法、系统及存储介质。


背景技术:

1、在公网场景中,终端设备主动发起与系统的连接,并通过建立的连接主动上报自身数据到系统,系统也可以将指定数据通过建立的连接发送给指定的终端设备,但不同类型的终端设备支持的通讯协议是不完全一样的,为了满足不同终端设备的不同通讯协议的接入,需要为不同的通讯协议单独开发和部署系统,现提出一种使用分层思想设计的应用层二进制网络通讯协议以及基于此的系统,同时实现设备数据的采集和分发,用于解决系统多次开发的痛点。

2、如现有技术中,mqtt是机器对机器(m2m)或物联网(iot)的连接协议。它被设计为一个极其轻量级的发布或订阅消息传输协议。对于需要较小代码占用空间或网络带宽非常宝贵的远程连接非常有用,是专为受限设备和低带宽、高延迟或不可靠的网络而设计。这些原则也使该协议成为新兴的机器到机器(m2m)或物联网(iot)的连接设备,以及带宽和电池功率非常高的移动应用的理想选择。例如它已被用于通过卫星链路与代理通信的传感器、与医疗服务提供者的拨号连接,以及一系列家庭自动化和小型设备场景。它也是移动应用的理想选择,因为它体积小,功耗低,数据包最小,并且可以有效地将信息分配给一个或多个接收器。但mqtt协议在数据分发场景下不支持点对点通信,虽然采用标准的mqtt协议,理论上可以通过相互订阅的方式实现点对点通信,但是逻辑相对复杂,并且对设备的安全性方面存在担忧,当设备b和设备c在同一主题的情况下,设备a无法知道是设备b还是设备c发送的消息,也有可能消息被设备d窃听。还有,系统如果需要同时支持数据采集和数据分发,而现有技术通过mqtt无法实现统一,需要单独开发数据采集和数据分发功能,这样的系统是被割裂的。

3、由此可见虽然mqtt是目前物联网终端数据采集比较主流的方案,但缺点也比较突出,有明显的使用场景局限性,技术上很难有折衷方案。因此,随着大量设备终端接入系统,系统不仅要支持设备终端的不同的通讯数据的格式,同时也要实现终端设备的数据采集和数据分发,为同时满足这些需求,本发明提出一种数据采集和分发系统设计架构和配套的应用层协议用于同时解决上述需求。


技术实现思路

1、针对上述提出的技术问题,本发明提供一种数据采集和分发的方法、系统及存储介质,以支持终端设备不同的通讯数据格式,同时实现终端设备的数据采集和分发。

2、第一方面,本发明提供了一种数据采集和分发的方法,所述方法包括如下步骤:

3、步骤s1:基于公网,多个终端设备主动发起与数据采集和分发的系统的连接,从而多个所述终端设备通过特定的应用层通讯协议分别与所述系统中的连接单元建立tcp长连接,每个所述终端设备通过与所述终端设备对应的所述tcp长连接向所述连接单元发送第一数据,所述连接单元基于所述tcp长连接读取每个所述终端设备发送过来的每一帧所述第一数据,并将每一帧所述第一数据组合成完整数据,同时将所述tcp长连接的身份和命名空间封装在所述完整数据中,最后将所述完整数据转发给数据处理单元;

4、步骤s2:基于所述tcp长连接,所述数据处理单元从所述连接单元获取所述完整数据,并对所述完整数据进行解帧,获取解帧后的第二数据,分析所述第二数据,获取所述第二数据所属的命名空间和所述tcp长连接身份,基于所述命名空间匹配出所述命名空间下的解码器,使用所述解码器对所述第二数据进行解码操作,获取解码后的第三数据,基于公网和所述终端设备特定的应用层通讯协议,所述数据处理单元将解码后的所述第三数据通过与所述终端设备对应的所述tcp长连接点对点地发送到所述终端设备上。

5、作为本发明的一种优选技术方案,所述步骤s1中,多个所述终端设备至少分为二个以上设备类型,每个所述设备类型分别支持一个应用层通讯协议,每个所述应用层通讯协议对应一种通讯数据格式,每个所述应用层通讯协议结构都包括消息长度、命名空间、消息头、消息体长度和消息体。

6、作为本发明的一种优选技术方案,所述步骤s1中,将每一帧所述第一数据组合成完整数据,包括按照每一帧所述第一数据的标识信息进行排序,基于每一帧所述第一数据中的标识信息,将每一帧所述第一数据进行拼接和重组,组合成所述完整数据。

7、作为本发明的一种优选技术方案,所述步骤s2中,匹配出所述命名空间下的所述解码器包括:从所述完整数据帧中解析出所述完整数据所属的所述命名空间,通过读取所述完整数据帧中的标识信息,获取所述完整数据对应的所述tcp长连接,所述数据处理单元根据所述完整数据所属的命名空间和所述tcp长连接,确定所述命名空间下对应的所述解码器。

8、作为本发明的一种优选技术方案,所述步骤s1中,同时将所述tcp长连接的身份和命名空间封装在所述完整数据中,最后将所述完整数据转发给数据处理单元还包括:基于所述命名空间的分层通讯协议设计,所述连接单元根据所述命名空间,将解码之后的所述完整数据路由到所述终端设备对应的所述数据服务单元中。

9、作为本发明的一种优选技术方案,所述步骤s1中,当所述应用层通讯协议更新时,无需断开所述终端设备与所述系统之间的所述tcp长连接,只更新所述数据处理单元。

10、作为本发明的一种优选技术方案,所述命名空间组装的消息体不同,支持多种通讯模式。

11、第二方面,本发明提供了一种数据采集和分发的系统,所述系统包括:

12、连接单元,用于多个终端设备与数据采集和分发的系统的连接,从而多个所述终端设备通过特定的应用层通讯协议分别与所述系统中的连接单元建立tcp长连接,每个所述终端设备通过与所述终端设备对应的所述tcp长连接向所述连接单元发送第一数据,所述连接单元基于所述tcp长连接读取每个所述终端设备发送过来的每一帧所述第一数据,并将每一帧所述第一数据组合成完整数据,同时将所述tcp长连接的身份和命名空间封装在所述完整数据中,最后将所述完整数据转发给数据处理单元;

13、数据处理单元,用于在所述tcp长连接的基础上,从所述连接单元获取所述完整数据,并对所述完整数据进行解帧,获取解帧后的第二数据,分析所述第二数据,获取所述第二数据所属的命名空间和所述tcp长连接身份,基于所述命名空间匹配出所述命名空间下的解码器,使用所述解码器对所述第二数据进行解码操作,获取解码后的第三数据,基于公网和所述终端设备特定的应用层通讯协议,所述数据处理单元将解码后的所述第三数据通过与所述终端设备对应的所述tcp长连接点对点地发送到所述终端设备上。

14、第三方面,本发明还提供一种计算设备,所述设备包括:

15、存储器和处理器;

16、所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述所述的数据采集和分发的方法。

17、第四方面,本发明还提供一种存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现上述所述的数据采集和分发的方法。

18、与现有技术相比,本发明的有益效果至少如下所述:

19、通过多个终端设备分别与所述系统中的连接单元建立tcp长连接,每个所述终端设备通过与所述终端设备对应的所述tcp长连接向所述连接单元发送第一数据,所述连接单元基于所述tcp长连接读取每个所述终端设备发送过来的每一帧所述第一数据,并将每一帧所述第一数据组合成完整数据,同时将所述tcp长连接的身份和命名空间封装在所述完整数据中,最后将所述完整数据转发给数据处理单元;基于所述tcp长连接,所述数据处理单元从所述连接单元获取所述完整数据,并对所述完整数据进行解帧,获取解帧后的第二数据,分析所述第二数据,获取所述第二数据所属的命名空间和所述tcp长连接身份,基于所述命名空间匹配出所述命名空间下的解码器,使用所述解码器对所述第二数据进行解码操作,获取解码后的第三数据,基于公网和所述终端设备特定的应用层通讯协议,所述数据处理单元将解码后的所述第三数据通过与所述终端设备对应的所述tcp长连接点对点地发送到所述终端设备上。实现了通过在设备终端与系统点对点实时通讯的基础之上,当接入的设备终端数量增加时,只需新增的连接服务节点,当接入的终端设备数据采集频率增加时,只需新增数据处理服务节点,按需投入资源,达到同样的采集与分发需求,资源利用率更高。而当有新类型的设备终端接入时,只需分配新的命名空间,并为新的命名空间定制适配的消息头,就能满足新类型的设备终端采集与分发需求,同时对已有的设备采集与分发不会有任何影响,进行了强隔离。

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