首页 > 专利 > 杭州电子科技大学 > 智能家居系统中基于哈希算法的终端网关负载分配方法专利详情

智能家居系统中基于哈希算法的终端网关负载分配方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2018-11-21
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2019-04-05
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2021-06-01
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2038-11-21
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201811388232.3 申请日 2018-11-21
公开/公告号 CN109462652B 公开/公告日 2021-06-01
授权日 2021-06-01 预估到期日 2038-11-21
申请年 2018年 公开/公告年 2021年
缴费截止日
分类号 H04L29/08H04L12/751H04L12/743H04L12/28 主分类号 H04L29/08
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 1
权利要求数量 2 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、2018.10.16吴以凡,张桦,戴国骏.“面向多处理器资源预留的实时程序划分方法”《.电子学报》.2014,;
引用专利 US10104039B 被引证专利
专利权维持 4 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 戴国骏、赵骏、史建凯、张桦、吴以凡 第一发明人 戴国骏
地址 浙江省杭州市下沙高教园区2号大街 邮编 310018
申请人数量 1 发明人数量 5
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州君度专利代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
朱月芬
摘要
本发明公开了一种智能家居系统中基于哈希算法的终端网关负载分配方法。本发明的负载分配是在由多台终端网关和本地服务器组成的网络中,终端网关利用Zigbee协调器接收从Zigbee子设备上发送到的传感器数据,并存储在服务器上;主控网关将数据切分成多个小区间并映射到哈希环上,用虚拟节点代替终端网关在哈希环上的位置,用虚拟节点的数量来表示终端网关的算力,即当终端网关加入边缘计算网络时,主控网关根据终端网关的算力为终端网关分配相应数量的虚拟节点,并将其虚拟节点用哈希函数映射到哈希环上,虚拟节点去捕获固定方向上离它最近的数据,让已经进入边缘计算状态的网关系统拥有在动态加入和退出边缘计算网络的同时,仍能实现按算力比值分配负载的能力。
  • 摘要附图
    智能家居系统中基于哈希算法的终端网关负载分配方法
  • 说明书附图:图1
    智能家居系统中基于哈希算法的终端网关负载分配方法
  • 说明书附图:图2
    智能家居系统中基于哈希算法的终端网关负载分配方法
  • 说明书附图:图3
    智能家居系统中基于哈希算法的终端网关负载分配方法
  • 说明书附图:图4
    智能家居系统中基于哈希算法的终端网关负载分配方法
  • 说明书附图:图5
    智能家居系统中基于哈希算法的终端网关负载分配方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-06-01 授权
2 2019-04-05 实质审查的生效 IPC(主分类): H04L 29/08 专利申请号: 201811388232.3 申请日: 2018.11.21
3 2019-03-12 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.智能家居系统中基于哈希算法的终端网关负载分配方法,其特征在于该方法的负载分配是在由多台终端网关和本地服务器组成的网络中,终端网关利用Zigbee协调器接收从Zigbee子设备上发送到的传感器数据,并存储在服务器上;主控网关将数据切分成多个小区间并映射到哈希环上,用虚拟节点代替终端网关在哈希环上的位置,用虚拟节点的数量来表示终端网关的算力,即当终端网关加入边缘计算网络时,主控网关根据终端网关的算力为终端网关分配相应数量的虚拟节点,并将其虚拟节点用哈希函数映射到哈希环上,虚拟节点去捕获固定方向上离它最近的数据,让已经进入边缘计算状态的网关系统拥有在动态加入和退出边缘计算网络的同时,仍能实现按算力比值分配负载的能力;
具体步骤如下:
步骤1、系统初始化时,主控网关里存储一张算力表,以终端网关的网卡MAC值为主键值,查询加入智能家居系统的所有终端网关是否已在算力表中记录其算力,如果已经记录,进入步骤2;否则计算当前终端网关的算力,并在算力表中记录当前终端网关的MAC值和对应的算力,然后直至所有终端网关的算力均记录在算力表中后进入步骤2;
步骤2、判断当前数据积累量和系统运行时间,如果当前服务器上数据量累积到了C并且系统时间运行了T时,由主控网关向服务器和终端网关发起边缘计算请求;否则进入网关正常使用状态;
步骤3、终端网关接收到主控网关发出的边缘计算请求后,判断其自身当前是否处于空闲状态,如果是,则进入边缘计算网络,进入步骤4;否则不加入边缘计算网络;
步骤4、主控网关查询当前算力表中所有正处于边缘计算网络中的终端网关的算力值,并计算其比值β,以K为单位,为每一台终端网关分配N个虚拟节点,每台终端网关的虚拟节点标记为:
node(n)={Mn‑1,Mn‑2,...,Mn‑N|n∈1~M,N=Kβ(n)},将标记的虚拟节点由哈希函数全部映射到哈希环上;
步骤5、当需要边缘计算的数据总量为Q GB时,主控网关从服务器上获取后,将数据总量分割为大小为P MB的样本,得到Q*1024/P个数据分块,并将分割的数据分块按顺序标记为1~Q*1024/P,使用哈希函数,映射到哈希环上;
步骤6、在哈希环上,标记为x的数据分块块按照顺时针方向去找离数据分块自身最近的虚拟节点,找到该虚拟节点归属的终端网关,并将该数据块分配到虚拟节点归属的终端网关上进行边缘计算,将这种分配的路径记录在路由表上,存储到服务器上并发送到每个终端网关中,然后将数据分块按照步骤5中标记的顺序依次将数据分块发送到对应的终端网关上;
步骤7、每个终端网关将拿到的数据分块和路由表中的数据路径进行对比,如果当前所在的终端网关拿到的数据分块在路由表中的数据路径指向自己,就进行边缘计算,否则不进行计算;
步骤8、当有新的终端网关接入智能家居系统时,同样需要进行步骤1的初始化过程;当有新的终端网关进入边缘计算状态时,则同理在算力表中,以MAC值为索引,查找新的终端网关对应的算力值,得到算力值后,计算新终端网关和边缘计算网络中其它终端网关的算力比值β(y),并为新的终端网关分配新的N个虚拟节点,标记为node(y)={My‑1,My‑2,...,My‑N|N=Kβ(y)},根据哈希函数的计算,将新的虚拟节点全部映射到哈希环上,将哈希环上数据分块所在的位置向顺时针旋转,找到最近的终端网关,则新分配的虚拟节点又会捕获到数据分块,在路由表中更新新的分配路径,重新向所有网关发送路由表,服务器根据新的路径发送分块数据;
步骤9、当终端网关由空闲状态切换为非空闲状态时,需要退出边缘计算网络,此时,该终端网关对应的所有虚拟节点退出哈希环,同理在路由表中更新分配路径;
步骤10、每个数据块计算完成,终端网关将计算结果回传给服务器,当所有边缘计算任务完成后,服务器将计算结果汇总,进行相应后续处理和存储。

2.根据权利要求1所述的智能家居系统中基于哈希算法的终端网关负载分配方法,其特征在于步骤3所述的空闲状态,根据当前终端网关的CPU利用率来判定当前网关是否处于空闲状态,根据网关的负载,当CPU利用率小于等于T1超过U时间时,属于空闲状态,加入边缘计算网络;如果当CPU利用率大于T1,属于非空闲状态,则不加入或退出边缘计算网络,T1和U为设定的阈值。
说明书

技术领域

[0001] 本发明公开了一种智能家居系统中基于哈希算法的终端网关负载分配方法。

背景技术

[0002] 智能家居是在互联网影响之下物联化的体现。智能家居通过物联网技术将家中的各种设备(如音视频设备、照明系统、窗帘控制、空调控制、安防系统、数字影院系统、影音服务器、影柜系统、网络家电等)连接到一起,提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。与普通家居相比,智能家居不仅具有传统的居住功能,兼备建筑、网络通信、信息家电、设备自动化,提供全方位的信息交互功能,甚至为各种能源费用节约资金。
[0003] 在此之中,终端网关作为数据转发、交换、流通的汇聚节点,地位显得尤为重要。随着硬件产业的发展,移动终端、设备终端的性能和数量迎来了爆发行的增长,据业内预计,到2020年将有超过500亿的终端与设备联网,仅中国就会产生100亿以上的物联网连接数。物联网的发展让普通人家里的电子器件都变得活泼了起来,仅仅让这些电子器件连上网络是不够的,我们需要更好的利用这些电子元件产生的数据,并利用这些数据更好的为当前家庭服务。在智能家居应用领域,考虑到网络带宽和数据私密保护,我们需要这些数据最好仅能在本地流通,并直接在本地处理即可,而服务器作为智能家居系统的运算中心,承担着运算任务的重担。我们需要网关作为边缘结点,让它自己消费家庭里所产生的数据的同时,可以利用网关越来越强大的边缘计算能力为智能家居系统提供辅助计算的能力。
[0004] 终端网关的优先任务应该是用户数据的接收、转发,当处于空闲状态时,服务器可以将需要在云端计算的数据进行业务分流,回传数据到终端网关,进行用户行为推荐、数据格式整理和转换等非紧急的计算任务。该种业务场景在常见的智能家居领域有广阔的应用。传统的云计算解决方案可能会在应用初期,计算性能过剩,造成成本过高;而在应用中后期,随着终端网关增多,用户数据量增大,又会出现计算性能不够的情况,需要加大对云端资源的投入。所以边缘计算的应用可以很好的解决该问题,本地服务器将需要计算的任务切分成多块,下发给终端网关,在网关闲时,进行边缘计算,完成后上传给本地服务器。在应用初期可以在云端算力不大的情况下,辅助计算。在应用后期,由于终端网关数量的提升,边缘计算的性能也随之提升,可以节省云端服务器的资源投入。
[0005] 由于终端网关需要优先响应数据转发任务,因此会动态的加入和退出边缘计算网络,由此可见如何将计算任务合理的分割,并按照终端网关的计算能力分配给终端设备,让终端设备合理的负载计算任务,就显得尤为关键了。

发明内容

[0006] 本发明的目的在于提供一种智能家居系统中基于哈希算法的终端网关负载分配方法。
[0007] 本发明应用的系统包括网关控制系统、本地服务器、传感器控制系统和移动终端设备。
[0008] 所述网关控制系统包括主控网关和终端网关,主控网关和终端网关直接采用RPC协议联接,终端网关由多种嵌入式Linux控制板连接Zigbee协调器;传感器控制系统由智能插座、照明设备、声光报警器、智能锁具、新风系统、空调设备、电动窗帘连接Zigbee模块组成的Zigbee子设备组成;本地服务器根据需要放在家中或者小区物业管理的机房内;移动终端设备包括日常使用的手机或平板等。
[0009] 所述主控网关和终端网关的控制板采用Tiny4412控制板,它基于三星Exynos 4412四核心处理器,主频高达1.5GHz,搭载1G DDR3RAM和4G eMMC高速缓存,并拥有良好的功耗控制。
[0010] 所述的终端网关系统用于接收Zigbee子设备上产生的数据,并转发到服务器进行存储,另一方面,对用户直接控制的移动终端设备上下发的控制指令,进行转发。加入边缘计算网络进行服务器分配的计算任务。
[0011] 所述Zigbee协调器和Zigbee子设备上采用CC2530开发套件,搭载了8KB RAM和256KB闪存,可支持协调器和254个子设备的大规模组网,并拥有非常低的功耗。
[0012] 所述的传感控制系统一方用于将各种传感器数据上传给主控网关系统,一方面用于接收主控网关系统下发的各种控制指令,对相应的智能设备进行控制。
[0013] 所述的本地服务器用于接收和存储主控网关系统上传的数据。进行边缘计算的控制,包括边缘计算任务的切分和下发、进行数据加工后的结果处理,对加入和退出边缘计算网络的主控网关的控制和调度。
[0014] 所述的移动终端设备即用户日常使用的手机或平板电脑等。
[0015] 本发明的技术解决方案:
[0016] 本发明的负载分配是在由多台终端网关和本地服务器组成的网络中,终端网关利用Zigbee协调器接收从Zigbee子设备上发送到的传感器数据,并存储在服务器上。主控网关将数据切分成多个小区间并映射到哈希环上,用虚拟节点代替终端网关在哈希环上的位置,用虚拟节点的数量来表示终端网关的算力,即当终端网关加入边缘计算网络时,主控网关根据终端网关的算力为终端网关分配相应数量的虚拟节点,并将其虚拟节点用哈希函数映射到哈希环上,虚拟节点去捕获固定方向上离它最近的数据,让已经进入边缘计算状态的网关系统拥有在动态加入和退出边缘计算网络的同时,仍能实现按算力比值分配负载的能力。
[0017] 本发明解决其技术问题所采用的技术方案具体步骤如下:
[0018] 步骤1、系统初始化时,主控网关里存储一张算力表,以终端网关的网卡MAC值为主键值,查询加入智能家居系统的所有终端网关是否已在算力表中记录其算力,如果已经记录,进入步骤1;否则计算当前终端网关的算力,并在算力表中记录当前终端网关的MAC值和对应的算力,然后直至所有终端网关的算力均记录在算力表中后进入步骤2。
[0019] 步骤2、判断当前数据积累量和系统运行时间,如果当前服务器上数据量累积到了C并且系统时间运行了T时,由主控网关向服务器和终端网关发起边缘计算请求;否则进入网关正常使用状态。
[0020] 步骤3、终端网关接收到主控网关发出的边缘计算请求后,判断其自身当前是否处于空闲状态,如果是,则进入边缘计算网络,进入步骤4;否则不加入边缘计算网络。
[0021] 步骤4、主控网关查询当前算力表中所有正处于边缘计算网络中的终端网关的算力值,并计算其比值β,以K为单位,为每一台终端网关分配N个虚拟节点,每台终端网关的虚拟节点标记为:node(n)={Mn‑1,Mn‑2,...,Mn‑N|n∈1~M,N=Kβ(n)},将它们由哈希函数全部映射到哈希环上。
[0022] 步骤5、当需要边缘计算的数据总量为Q GB时,主控网关从服务器上获取后,将他们分割为大小为P MB的样本,得到Q/P个数据块,并将分割的数据块按顺序标记为1~Q/P,使用哈希函数,映射到哈希环上。
[0023] 步骤6、在哈希环上,标记为x的数据分块块按照顺时针方向去找离数据块本身最近的虚拟节点,找到该虚拟节点归属的终端网关,并将该数据块分配到虚拟节点归属的终端网关上进行边缘计算,将这种分配的路径记录在路由表上,存储到服务器上并发送到每个终端网关中,然后将数据分块按照步骤5中标记的顺序依次将数据分块发送到对应的终端网关上。
[0024] 步骤7、每个终端网关将拿到的数据分块和路由表中的数据路径进行对比,如果当前所在的终端网关拿到的数据分块在路由表中的数据路径指向自己,就进行边缘计算,否则不进行计算。
[0025] 步骤8、当有新的终端网关接入智能家居系统时,同样需要进行步骤(1)的初始化过程。当有新的终端网关进入边缘计算状态时,则同理在算力表中,以MAC值为索引,查找新的终端网关对应的算力值。得到算力值后,计算新终端网关和边缘计算网络中其它终端网关的算力比值β(y),并为新的终端网关分配新的N个虚拟节点,标记为node(y)={My‑1,My‑2,...,My‑N|N=Kβ(y)},根据哈希函数的计算,将新的虚拟节点全部映射到哈希环上,将哈希环上数据分块所在的位置向顺时针旋转,找到最近的终端网关,则新分配的虚拟节点又会捕获到数据分块,在路由表中更新新的分配路径,重新向所有网关发送路由表,服务器根据新的路径发送分块数据。
[0026] 步骤9、当终端网关由空闲状态切换为非空闲状态时,需要退出边缘计算网络,此时,该终端网关对应的所有虚拟节点退出哈希环,同理在路由表中更新分配路径。
[0027] 步骤10、每个数据块计算完成,终端网关将计算结果回传给服务器,当所有边缘计算任务完成后,服务器将计算结果汇总,进行相应后续处理和存储。
[0028] 进一步地,步骤1所述算力表为终端网关处理器算力,可由设备厂家提供,也可以在进行步骤1的处理器算力评估的计算时,由软件计算可得,。
[0029] 进一步地,步骤2所述当前服务器上数据量累积到了C并且系统时间运行了T,具体过程和必要性如下:
[0030] (1)过程:当数据量积累到达C时而系统运行时间没有达到T时,并不开始进行边缘计算;同理当系统运行时间到达T时,数据量没有累积到C时,也不开始进行边缘计算;只有当数据累积量到达C并且系统运行时间到达T时,才开始进行边缘计算。
[0031] (2)必要性:边缘计算是由数据驱动的,很多计算的应用以大量的数据为依托,数据量不够,会增加无意义的计算;当系统运行时间过短时,收集的到数据可能会是大量的冗余数据,样本采集缺乏多样性,对于边缘计算的意义同样不大。
[0032] 进一步地,步骤3所述的空闲状态,根据当前终端网关的CPU利用率来判定当前网关是否处于空闲状态,根据网关的负载,当CPU利用率小于等于T1(T1可以自定义)超过U时间时,属于空闲状态,加入边缘计算网络;如果当CPU利用率大于T1,属于非空闲状态,则不加入或退出边缘计算网络。
[0033] 进一步地,步骤4所述计算每一台终端网关的算力值并计算其比值β,以K为单位,为每一台终端网关分配N个虚拟节点的必要性如下:
[0034] 在实际情况下,由于联接到边缘计算网络的每一台终端网关设备的处理性能不同,而导致算力不同,所以如果将数据分块等分到每个边缘计算的末端显然是不合理的。所以将处理器算力比值作为衡量标准,为每个边缘计算末端的设备分配虚拟节点的个数,就显得尤为必要了。
[0035] 进一步地,根据步骤6找到的所有数据块的分配路径存储在路由表里,将数据块按照步骤5中标记的顺序分块发送到对应的终端设备上的具体过程和必要性如下:
[0036] (1)过程:当路由表确定后,服务器根据路由表的里的信息,将数据块按照步骤(4)中标记的1,2,3...,Q/P,分块发送到对应的终端网关。发送完第一个数据分块后,继续发送剩余的数据分块。
[0037] (2)必要性:避免了将所有属于某一个终端网关的数据分块发送完毕,再去发送下一个终端网关的数据分块这种方式带来的负载不合理的缺点。
[0038] 进一步地,步骤8、9所述新分配的虚拟节点会捕获到数据分块,虚拟节点退出哈希环会释放数据分块,并更新路由表,服务器根据新的路径发送分块数据的具体过程和必要性如下:
[0039] (1)过程:当新的虚拟节点进入哈希环以后,必然会有之前已经被捕获的数据分块重新被分配到新的虚拟节点上;同理,当虚拟节点退出哈希环时,必然有之前已经被捕获的数据分块被重新释放出来,由当前仍在哈希环上的虚拟节点来捕获,所以需要更新服务器上的路由表,服务器根据新的路由表,对比旧的路由表,将数据分块标记为三种状态:已发送的数据分块,未发送的数据分块,已失效的数据分块。其中已失效的数据分块为新旧路由表中路径不同数据分块。服务器继续向网关发送未发送的数据分块和已失效的数据分块。
[0040] (2)必要性:首先,当新的虚拟节点入环或旧的虚拟节点退时,由于比例固定,在不改变单位K的情况下,原本处于环上的代表各个终端网关的虚拟节点数量和比例不会发生改变。其次,由哈希一致性可知,原本的虚拟节点在哈希环上的位置保持不变,而新的虚拟节点的进入哈希环或部分虚拟节点退环后,根据顺时针捕获数据分块的原则,只有部分的数据分块的路径发送了变化。最后,路由器根据新的路由表下发数据分块,而不采用跨网关数据迁移,减少了网路传输的压力和服务器转发的负载,有利于实现数据分块路径的快速迁移。
[0041] 本发明的有益效果:
[0042] (1)使用本发明,每一个数据分块被分配到每个终端网关的概率是和算力成比例的。所以可以保证在数据块大量下发后,每个终端网关分配到的计算量是合理的。允许终端网关动态加入和退出边缘计算网络,既不会影响终端网关的日常任务需求,又可以利用终端网关的闲时算力,节省了服务器的计算压力和投资成本。
[0043] (2)由于任意一个或多个终端网关加入或退出边缘计算网络时,并不会影响边缘计算网络内部终端网关的按算力比值分配负载的状态,所以当任意一个或多个终端网关设备发生故障、用户主动停止使用某一个或几个终端网关、有新增终端网关设备需要接入智能家居系统时,始终都是“按力分配,能者多劳”,因此本系统具有很灵活的扩展性、裁剪性和可用性。
[0044] (3)使用本发明,当新的终端网关加入或退出边缘计算网络时,仅有部分的数据失效,减少了数据迁移量;由服务器重新下发运算数据,代替了由失效数据占有者跨网关传输的做法,减轻了网络数据传送压力。

实施方案

[0050] 以下为结合附图对本发明的进一步说明。
[0051] 结合图1,本系统包括:网关控制系统、本地服务器和智能设备控制系统、移动终端设备。
[0052] 其中,网关控制系统包括主控网关和终端网关,主控网关和终端网关采用RPC协议联接,终端网关由多种嵌入式Linux控制板连接Zigbee协调器;传感器控制系统由智能插座、照明设备、声光报警器、智能锁具、新风系统、空调设备、电动窗帘连接Zigbee模块组成的Zigbee子设备组成;本地服务器可以根据需要放在家中或者小区物业管理的机房内;移动终端设备包括日常使用的手机或平板等。
[0053] 作为一种具体的示例:所述主控网关和终端网关的控制板采用Tiny4412控制板,它基于三星Exynos 4412四核心处理器,主频高达1.5GHz,搭载1G DDR3RAM和4G eMMC高速缓存,并拥有良好的功耗控制。
[0054] 所述的主控网关系统用于接收Zigbee子设备上产生的数据,并转发到服务器进行存储,另一方面,对用户直接控制的移动终端设备上下发的控制指令,进行转发。加入边缘计算网络进行服务器分配的计算任务。
[0055] 作为一种具体的示例:所述Zigbee协调器和Zigbee子设备上采用CC2530开发套件,搭载了8KB RAM和256KB闪存,可支持协调器和254子设备的大规模组网,并拥有非常低的功耗。
[0056] 所述的传感控制系统一方用于将各种传感器数据上传给终端网关系统,一方面用于接收终端网关系统下发的各种控制指令,对相应的智能设备进行控制。
[0057] 所述的本地服务器用于接收和存储主控网关系统上传的数据。进行边缘计算的控制,包括边缘计算任务的切分和下发、进行数据加工后的结果处理,对加入和退出边缘计算网络的终端网关的控制和调度。
[0058] 所述的移动终端设备即用户日常使用的手机或平板电脑等。
[0059] 结合图1和图2,本发明具体步骤如下:
[0060] (1)系统初始化时,主控网关里存储一张算力表,以终端网关的网卡MAC值为主键值,查询加入本系统内的所有终端网关,是否已在算力表中记录其算力,如果已经记录,进入步骤(2);否则计算其算力,在算力表中记录其MAC值和对应的算力后进入步骤(2)。
[0061] (2)判断当前数据积累量和系统运行时间,如果当前服务器上数据量累积到了C并且系统时间运行了T时,由主控网关发起边沿计算请求;否则进入网关正常使用状态。
[0062] (3)终端网关判断当前是否处于空闲状态,如果是,则进入边缘计算网络,进入步骤(4);否则不加入边缘计算网络。
[0063] (4)主控网关查询当前算力表中所有正处于边缘计算网络中的终端网关的算力值,并计算其比值β,以K为单位,为每一台终端网关分配N个虚拟节点,每台终端网关的虚拟节点标记为:node(n)={Mn‑1,Mn‑2,...,Mn‑N|n∈1~M,N=Kβ(n)},将它们由哈希函数全部映射到哈希环上。
[0064] 作为一种具体的示例:如图3,边缘计算网络里有3个终端网关,查询算力表,β(1)=1,β(2)=3,β(3)=2,所以为终端网关分配的虚拟节点个数分别为5个,15个,10个。分别标记为node(1)={M1‑1,M1‑2,...,M1‑5},node(2)={M2‑1,M2‑2,...,M2‑15},node(3)=32
{M3‑1,M3‑2,...,M3‑10}。哈希环的范围为0~2 ‑1,将这三个集合中的全部元素使用哈希函数映射到哈希环上。
[0065] 进一步地,为每个网关分配以K=5为单位分配虚拟节点仅为图示说明,实现过程中,为每个网关分配的虚拟节点越多,为每个网关最终分配的数据分配越接近算力β的比值。
[0066] (5)当需要边缘计算的数据总量为Q GB时,主控网关从服务器上获取后,将他们分割为大小为P MB的样本,得到Q/P个数据块,将它们按顺序标记为1~Q/P,使用哈希函数,映射到哈希环上。
[0067] 作为一种具体的示例:如图3,若数据总量为10GB时,主控网关将他们切分为10个数据分块,每个数据分块大小为1GB,将这10个数据分块标记为1~10,映射到哈希环上。
[0068] (6)在哈希环上,标记为x的数据块按照顺时针方向去找离它最近的虚拟节点,找到的虚拟节点属于哪个终端网关,该数据块就分配到哪个终端网关上进行边缘计算,将这种分配的路径记录在路由表上,存储到服务器上并发送到每个终端网关中,然后将数据块按照步骤(5)中标记的顺序分块发送到对应的终端网关上。
[0069] 作为一种具体的示例:如图3所示,标记为1的数据分块顺时针寻找离他最近的虚拟节点是属于终端网关1的,那么数据分块1的路由路径为终端网关1,记录在路由表中,其他数据分块同理。当所有数据分块的路由信息记录完毕后,将该路由表下发到每个终端网关中。
[0070] (7)每个终端网关拿到数据分块后和路由表中的数据路径进行对比,如果当前所在的网关拿到数据在路由表中的数据路劲指向自己,就进行边缘计算,否则不进行计算。
[0071] 作为一种具体示例:当终端网关1,拿到数据分块1,并查询路由信息无误后,对数据分块1,进行边缘计算。
[0072] 进一步地,当终端网关进行边缘计算时,服务器仍然继续发送未发送的数据分块和已失效的数据分块。
[0073] (8)当有新的终端网关接入本智能家居系统时,同样需要进行步骤(1)的初始化过程。当有新的终端网关进入边缘计算状态时,则同理在算力表中,以MAC值为索引,查找新的终端网关对应的算力值。得到算力值后,计算新终端网关和边缘计算网络中其它终端网关的算力比值β(y),并为新的终端网关分配新的N个虚拟节点,标记为node(y)={My‑1,My‑2,...,My‑N|N=Kβ(y)},根据哈希函数的计算,将新的虚拟节点全部映射到哈希环上,将哈希环上数据块所在的位置向顺时针旋转,找到最近的终端网关,则新分配的虚拟节点又会捕获到数据块,在路由表中更新新的分配路径,重新向所有网关发送路由表,服务器根据新的路径发送分块数据。
[0074] 作为一种具体示例:如图4所示,当终端网关4进入边缘计算状态时,查询算力表得到终端网关4的算力β(4)=2,所以为其分配新的10个虚拟节点,同理映射到哈希环上,则原本被终端3虚拟节点捕获到的数据分块现在被新的虚拟节点捕获了,主控网关将信息的路由信息记录下来,如果当前数据分块4还未发送,则将数据分块4标记为已失效的,并向所有终端网关和服务器发送新的路由表。服务器根据新的路由表发送将失效的数据分块4重新发送到新的终端网关4中,主控网关进行转发。
[0075] (9)当终端网关由空闲状态切换为非空闲状态时,需要退出边缘计算网络,此时,该终端网关对应的所有虚拟节点退出哈希环,同理在路由表中更新分配路径。
[0076] 作为一种具体的示例:如图5所示,当终端网关M3对应的虚拟节点退出哈希环时,原来被终端网关M3的虚拟节点捕获到的数据分块2,如果在路由表中查询数据分块2已发送,则不更新数据分块2的状态和路由信息;如果数据分块2未发送,则在新的路由表中记录数据分块2为已失效,服务器和终端网关更新路由表,服务器重新发送已失效的数据分块。
[0077] (10)每个数据块计算完成,终端网关将计算结果回传给服务器,当所有边缘计算任务完成后,服务器将计算结果汇总,进行相应后续处理和存储。

附图说明

[0045] 图1为本发明终端网关负载分配方法的结构图。
[0046] 图2为本发明终端网关负载分配方法工作流程图。
[0047] 图3为虚拟节点在哈希环上的映射图。
[0048] 图4为新增虚拟节点M4后在哈希环上的映射图。
[0049] 图5为删除虚拟节点M3后在哈希环上的映射图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号