一种基于Zenoh的跨局域网分布式系统内通讯方法

文档序号:29308574发布日期:2022-03-19 19:22阅读:432来源:国知局
一种基于Zenoh的跨局域网分布式系统内通讯方法
一种基于zenoh的跨局域网分布式系统内通讯方法
技术领域
1.本发明涉及跨局域网通信领域,尤其涉及一种基于zenoh的跨局域网分布式系统内通讯方法。


背景技术:

2.在移动边缘计算(mobile edge computing)场景中,一些资源受限的边缘设备(如传感器,摄像头,机器人等)每天都将产生大量的数据需要进行处理以提供车联网、人脸识别、监控等服务。此时由于计算资源和能源不足,边缘设备无法较好地完成计算从而按时交付,设备需要将任务卸载到附近的边缘服务器或者云服务器进行计算。在机器人应用中,常常使用机器人操作系统(robot operating system,ros)作为通信手段,通过ros机器人可将自己收集到的传感器数据、激光雷达数据、摄像头数据等等传输到附近的计算设备上进行计算,在复杂的边缘网络中,服务器和移动边缘设备往往不是处于同一局域网中,而ros等通信、计算框架有着设备都处于同一局域网的限制。
3.现有的解决跨局域网通信方案都存在着单点依赖的问题,需要维护一个可访问的公共节点,若节点无法被访问,通信将直接终止。


技术实现要素:

4.为了解决上述技术问题,本发明的目的是提供一种基于zenoh的跨局域网分布式系统内通讯方法,不需要经过核心网连接入云主机进行跨局域网的通信。
5.本发明所采用的第一技术方案是:一种基于zenoh的跨局域网分布式系统内通讯方法,包括以下步骤:
6.将边缘小站划分节点类别并动态组建全局zenoh命名数据网络;
7.基于全局zenoh命名数据网络,接受边缘小站的信息并完成数据传输;
8.所述节点类别包括种子节点和普通节点,所述全局zenoh命名数据网络为种子节点所在的zenoh网络。
9.进一步,所述将边缘小站划分节点类别并动态组建全局zenoh命名数据网络这一步骤,其具体包括:
10.将边缘小站通过配置文件划分为种子节点和普通节点;
11.种子节点周期性地往其zenoh网络发送种子通知信息直至收到外部的中断信息;
12.普通节点扫描ap信息并订阅种子通知信息。
13.进一步,所述普通节点扫描ap信息并订阅种子通知信息这一步骤,其具体包括:
14.普通节点扫描附近可用的ap信息并过滤得到属于边缘小站的ap,去除当前节点边缘小站的ap,得到过滤后ap信息;
15.对过滤后ap信息进行排序并生成ap集合,得到排序后的ap集合;
16.根据排序后的ap集合按顺序选择连接的ap,开启zenoh网络并根据连接的ap指向该ap对应的一个zenoh网络;
17.订阅种子通知信息并等待预设时间;
18.判断到接收到种子通知信息,确定成功加入全局zenoh命名数据网络并结束;
19.判断到没有接收到种子通知信息,断开当前已连接的ap并在收到中断信号结束程序。
20.进一步,所述根据排序后的ap集合按顺序选择连接的ap这一步骤,具体包括:
21.根据排序后的ap集合的顺序,依次选择其中一个ap,若附近可用的边缘小站ap都被锁定,选择第一个ap作为接入点连接,否则假设目前选择的是ai;
22.从节点所在边缘小站的分布式数据库中检查是否有边缘小站内其他计算设备连接到ai;
23.在节点所在边缘小站的分布式数据库中标记ai已被当前节点锁定。
24.进一步,对于种子节点,还包括:
25.开启nats服务;
26.订阅普通节点信息;
27.监听并更新普通节点信息;
28.周期性更新节点拓扑并发送到全局zenoh命名数据网络。
29.进一步,种子节点周期性更新节点拓扑并发送到全局zenoh命名数据网络,具体包括:
30.按照普通节点的最后通知时间,根据自定义阈值,若当前时间和普通节点最后通知时间的差值大于自定义阈值,则将该普通节点从记录中剔除;
31.根据所有剩下的普通节点及其正在连接中的ap,将ap映射为对应的设备节点生成连接的拓扑图发送到全局zenoh命名数据网络。
32.进一步,对于普通节点,还包括:
33.开启nats服务;
34.周期性在全局zenoh命名数据网络中发送普通节点信息;
35.接收到拓扑信息时更新当前节点到其他节点的路径信息到映射表;
36.发送信息时根据映射表和目标节点得到路径;
37.长时监听种子通知信息。
38.本发明方法及系统的有益效果是:本发明的网络传输全部由边缘架设的网络设备完成,不需要经过核心网连接入云主机进行跨局域网的通信,考虑了分布式系统的特点,使用了分布式数据库,并增加了周期通知机制、过时销毁节点信息等机制来应对分布式场景中可能出现的网络不稳定出现断连导致网络通信失效的情况,增强了系统的稳定性和可用性。
附图说明
39.图1是本发明一种基于zenoh的跨局域网分布式系统内通讯方法的流程示意图;
40.图2是本发明具体实施例监听过程示意图;
41.图3是本发明具体实施例数据通道示意图。
具体实施方式
42.下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
43.本发明整个基础网络设施由多个边缘小站组成,每个边缘小站由一个无线路由器和一台计算设备组成,计算设备通过以太网连接无线路由器,即所有计算设备在一开始都有着一个局域网。所有边缘小站的计算设备被统一划分为种子节点和普通节点,动态组网的关键在于使处于不同局域网的设备能够组建成一个全局的zenoh命名数据网络,在该网络下的设备能够通过zenoh消息的发布/订阅实现互联互通。传输通信部分是在全局zenoh命名数据网络已经建立完成的基础上,边缘设备通过连接边缘小站并开启zenoh指向边缘小站计算设备的zenoh网络,从而接入全局zenoh命名数据网络,通过这种方式,只要两个边缘设备加入了同一全局zenoh命名数据网络即可通过zenoh进行消息传输。
44.zenoh为开源软件,提供发布/订阅的消息通信方式,并且可指定指向的节点,一旦指向并且两者可通信,两设备间将形成连通的zenoh网络,该连通具有传递性,即a与b连通,b与c连通,则a与c也连通。
45.参照图1,本发明提供了一种基于zenoh的跨局域网分布式系统内通讯方法,该方法包括以下步骤:
46.a、当前节点通过配置文件被手动选定为种子节点。
47.i、种子节点开启nats服务器、开启nats客户端与本地nats服务连接,监听以种子节点名称开头的所有话题信息。
48.j、种子节点在其zenoh网络中订阅普通节点信息。
49.以下步骤b、k、l为同步执行。
50.b、种子节点按照预设的时间周期t1周期性地往其zenoh网络(即全局zenoh命名数据网络)发送种子通知信息,直至收到外部的中断信息,在此步骤后,所有成功加入全局zenoh命名数据网络并订阅了种子通知话题的节点均能周期性地接收到种子通知信息。
51.具体地,种子节点的所在zenoh网络被定义为全局zenoh命名数据网络,种子节点不断地往全局zenoh命名数据网络中发送通知信息,若普通节点能通过订阅种子通知话题持续收到通知信息,证明该普通节点与种子处于同一zenoh网络,即加入全局zenoh命名数据网络成功。
52.k、种子节点在此阶段持续监听普通节点信息直到接收到中断信息,若在zenoh网络收到普通节点信息则更新该普通节点的最后通知时间以及其当前连接的ap。
53.l、周期性更新节点拓扑并发送到全局zenoh命名数据网络直到接收到中断信息,具体更新和发送步骤包括:
54.l1、按照普通节点的最后通知时间,根据自定义阈值t,若当前时间和普通节点最后通知时间的差值大于t,则将该普通节点从记录中剔除。
55.l2、根据所有剩下的普通节点及其正在连接中的ap,将ap映射为对应的设备节点,生成连接的拓扑图并发送到全局zenoh命名数据网络。
56.c、当前节点通过配置文件被选定为普通节点。首先边缘小站的计算节点利用网卡设备扫描附近可用的ap的信息,在各个ap中过滤出所有属于边缘小站的ap,并从中去除当
前节点所有边缘小站的ap。
57.d、对ap信息进行排序,本发明按信号强度从强到弱排序,得到排序后的可用ap集合a={a1,a2,

,an}。
58.e、从集合a中按顺序逐个选择需要连接的ap,具体选择步骤包括:
59.e1、根据ap排序顺序,依次选择其中一个ap,若此时所有附近可用的边缘小站ap都被锁定,则选择第一个ap作为接入点跳到步骤f,否则假设目前选择的是ai;
60.e2、从节点所在边缘小站的分布式数据库etcd中检查是否有边缘小站内其他计算设备连接到ai,若ai已被选择,则返回e1;
61.e3、在节点所在边缘小站的etcd数据库中标记ai已被当前节点锁定,跳转步骤f。
62.f、根据配置文件连接选定的ap,此时节点将通过无线网络加入另外一个局域网,节点处于两个不同的局域网内,此时节点开启zenoh网络并根据连接的ap指向该ap对应的一个zenoh网络。
63.g、节点订阅种子通知信息,并等待一定时间t2,并满足t2》t1。若在等待时间内接收到种子通知信息表明已成功加入全局zenoh命名数据网络并跳转步骤m,否则跳转步骤h。
64.h、断开当前已连接的ap并检查是否收到中断信号,若无,返回步骤e,否则结束程序。
65.m、在全局zenoh命名数据网络订阅节点拓扑信息。
66.n、开启nats服务端和客户端实现转发,以此构建数据通道,并监听以当前节点名称开头的所有话题信息。
67.以下步骤o、p、q为同步执行。
68.o、周期性地在全局zenoh命名数据网络中发送普通节点信息。
69.具体地,普通节点信息包括当前节点名称和连接的ap等,此消息会被种子节点接收并更新拓扑信息。
70.p、接收到拓扑信息,按照节点连通信息,利用搜索算法(如深度优先搜索等)计算出当前节点到其他所有节点的路径信息并保存更新到映射表road。
71.具体地,路径信息由一组顺序的节点名称组成,相邻的节点应有nats服务相连。
72.q、节点若需要往目标节点i发送信息,以节点i的名称作为键,在当前映射表road查找从当前节点到节点i的完整路径。
73.r、将路径信息作为话题名并将信息通过nats服务发送到该话题上,完成消息发送,消息将由边缘小站中的计算设备经过步骤n构建的消息通道转发到达目标节点。
74.s、持续监听种子节点信息,若在自定义时间t3(t3》t1)内未监听到种子通知信息,表示当前节点处于失联状态,将结束整个程序并重启,若是接收到中断信息,则正常结束程序。
75.普通节点在成功加入全局zenoh命名数据网络的情况下,由于分布式系统存在不稳定性,运行时可能存在部分节点失效的情况,为了能提高本发明中的分布式系统的健壮性,普通节点需要不断监测是否收到种子节点信息,若经过预设阈值时间后仍未收到信号则表示该节点失联,需要重新不断选择边缘小站ap并尝试加入全局zenoh命名数据网络,详细监听过程如下,参照图2:
76.s1、根据预设阈值t3(t3》t1)设置定时器,若定时器超时,跳转步骤s3,否则持续监
听种子通知信息,若接收到种子通知信息,跳转步骤s2。
77.s2、在定时器有效期间接收到种子通知信息,表示当前节点仍与全局zenoh命名数据网络连接,重置定时器并重新等待下一轮消息监听。
78.s3、定时器失效,即在预设时间t3内未接收到种子通知信息,该节点被认定为已失联,即与全局zenoh命名数据网络断连,重启整个程序并寻找下一个可行的边缘小站ap重新加入全局zenoh命名数据网络。
79.在获得完整网络拓扑情况下,可以选择多种方式构建数据通道,如ssh转发,nats转发等,可以根据具体的业务需求选择通用/专用的转发方案。本发明使用nats建立数据通道,其中步骤i、n都是为了开启nats来构建数据通道。
80.即使nats要求服务端和客户端之间需要连通,但根据网络拓扑可以实现将在nats的服务a中的信息指向转发到nats服务b中,直至转发到目标节点所在的nats服务中,从而实现消息的传输,在此解释两种节点开启nats的逻辑:
81.开启nats服务:都需要同时开启服务器端和客户端。
82.对于种子节点:只需开启一个客户端连接到本地nats服务器端。
83.对于普通节点:需要开启两个客户端,其中一个客户端连接本机的nats服务器端。计算设备应已连接到另一边缘小站p2的ap上,另外一个客户端应连接到p2的计算设备的nats服务器端,两个客户端运行在同一程序中并通过内存转发数据。
84.当任一客户端接收到以当前节点名称开头的话题消息,客户端会从话题中把当前节点名称去除,再通过本地节点客户端转发到服务端上等待特定客户端接收,或消息被丢弃(无效路径)。
85.参照图3,(i)对于边缘小站中的计算普通节点b,开启的nats服务及操作如下:
86.bs:nats服务器端,用于进行监听话题注册、消息接收等行为;
87.bc1:nats客户端,用于向as订阅话题以b开头的信息,在接收到信息时将b从话题去除,并将信息通过bc2重新发送到bs;
88.bc2:nats客户端,用于向bs订阅话题以b开头的信息,在接收到信息时将b从话题去除,再将信息重新发送到bs并且通过bc1发送到as;
89.(ii)对于边缘小站中的计算种子节点a,开启的nats服务及操作如下:
90.as:nats服务器端,用于进行监听话题注册、消息接收等行为;
91.ac:nats客户端,用于向as订阅话题以a开头的信息,在接收到信息时将b从话题去除再将信息重新发送到as;
92.(iii)对于边缘设备x,开启的nats服务及操作如下:
93.xs:nats服务器端,用于进行监听话题注册、消息接收等行为;
94.xc1:nats客户端,用于向xs订阅话题以x开头的信息,在接收到信息时将x从话题去除再将信息重新发送到xs,并且通过xc2发送到as;
95.xc2:nats客户端,用于向as订阅话题以x开头的信息,在接收到信息时将x从话题去除再将信息重新发送到as,并且通过xc1发送到xs;
96.xappc:nats客户端,每个设备上的应用建立一个nats客户端并在本地nats服务器xs订阅自身想要的话题。
97.(iv)对于边缘设备y,开启的nats服务及操作如下:
98.ys:nats服务器端,用于进行监听话题注册、消息接收等行为;
99.yc1:nats客户端,用于向bs订阅话题以y开头的信息,在接收到信息时将y从话题去除再将信息重新发送到bs,并且通过yc2发送到ys;
100.yc2:nats客户端,用于向ys订阅话题以y开头的信息,在接收到信息时将y从话题去除再将信息重新发送到ys,并且通过yc1发送到bs;
101.yappc:nats客户端,每个设备上的应用建立一个nats客户端并在本地nats服务器ys订阅自身想要的话题。
102.所以完成传输实际是四大步骤:
103.1.组建全局zenoh命名数据网络和数据通道;
104.2.种子节点监听普通节点信息和汇总全局拓扑并发送至全局zenoh命名数据网络;
105.3.应用传输存在一层代理,代理监听全局拓扑和计算当前节点到其他节点的路径信息,并将路径信息转换为话题,转换后将对应数据发送到数据通道;
106.具体地,数据传输时根据终点(起点为代理所在节点本身)即可获得路径。
107.4.数据通道根据话题(路径信息)进行数据的转发,完成数据传输。
108.以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1