首页> 中国专利> 一种基于组件的微云、微云的组网方法及装置

一种基于组件的微云、微云的组网方法及装置

摘要

本发明实施例公开了一种基于组件的微云、微云的组网方法及装置,所述微云包括一个微云簇头节点和多个一般节点,微云簇头节点和一般节点均包含与移动云计算系统相关的功能模块:微云簇头服务功能模块和一般节点服务功能模块,且微云簇头节点和一般节点的一般节点服务功能模块均处于激活状态,微云簇头节点的微云簇头服务功能模块处于激活状态,一般节点的微云簇头服务功能模块处于未激活状态;所述方法包括:移动云计算网络中的任一个节点作为一个以自身为微云簇头节点的目标微云,并与第一节点进行交互,当第一节点的总能力小于该目标微云的总能力时,该第一节点加入该目标微云成为该目标微云内的一般节点。应用本发明实例可以降低微云的负载。

著录项

  • 公开/公告号CN106131106A

    专利类型发明专利

  • 公开/公告日2016-11-16

    原文格式PDF

  • 申请/专利权人 北京邮电大学;

    申请/专利号CN201610399012.5

  • 申请日2016-06-07

  • 分类号H04L29/08(20060101);

  • 代理机构北京柏杉松知识产权代理事务所(普通合伙);

  • 代理人马敬;项京

  • 地址 100876 北京市海淀区西土城路10号

  • 入库时间 2023-06-19 00:56:20

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-12

    授权

    授权

  • 2016-12-14

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20160607

    实质审查的生效

  • 2016-11-16

    公开

    公开

说明书

技术领域

本发明涉及移动云计算技术领域,特别涉及一种基于组件的微云、微云的组网方法及装置。

背景技术

智能移动设备的数量大幅度增长及其在CPU(Central Processing Unit,中央处理器)处理能力、网络连接能力、传感能力等性能方面的提升,人们将更多地使用移动设备接入网络和获取服务,MCC(Mobile Cloud Computing,移动云计算)将成为一种主流的移动应用解决方案。但是,移动设备的计算能力、电池续航能力等限制使得移动设备难以满足一些计算密集型应用的计算需求。因此,有人提出由移动设备将计算复杂度较高的任务卸载到远程的云数据中心、云数据中心再将计算结果返回给移动设备的解决方案;但是,通常云数据中心与移动设备距离较远,需要通过高延迟的广域网连接,导致移动设备无法快速地获得需要的计算结果,因此,基于云数据中心卸载的解决方案难以满足实时应用的要求。

为了解决移动云计算的实时计算效率问题,本领域技术人员提出了微云的概念,微云是指那些位于移动用户附近、计算资源丰富的可信计算机,在此方案中,移动设备不再将任务卸载到远程的云数据中心,而是卸载到与自己邻近的、计算资源丰富的被称为胖客户端的微云设备中。移动设备可以通过在微云中实例化一个用户虚拟机,以便将自身的应用程序卸载到虚拟机上。微云虽然解决了移动云计算中存在的延时问题,但基于微云的移动云计算解决方案仍然存在以下挑战:第一,通常每个移动设备都采用贪婪机制将计算任务卸载到与自己邻近的微云中,大量的任务卸载将会造成微云本身较高的负载,对于整个移动云计算网络来说达不到全局最优;第二,基于虚拟机的微云卸载方案,由于卸载颗粒度较大,使得微云的负载较大。

发明内容

本发明实施例的目的在于提供一种基于组件的微云、微云的组网方法及装置,通过采用动态的微云组网方法,以降低微云的负载。

第一方面,为达到上述目的,本发明实施例公开了一种基于组件的微云,所述微云包括:

一个微云簇头节点和多个一般节点,各个节点之间互相通信,其中,微云簇头节点和一般节点均包含两个与移动云计算系统相关的功能模块,分别为微云簇头服务功能模块和一般节点服务功能模块,且微云簇头节点和一般节点的一般节点服务功能模块均处于激活状态,微云簇头节点的微云簇头服务功能模块处于激活状态,一般节点的微云簇头服务功能模块处于未激活状态;

所述一般节点服务功能模块,包括:节点代理功能子模块、设备监测功能子模块和组件管理功能子模块,其中,

所述节点代理功能子模块,用于控制信息的交互和数据信息的交互;

所述设备监测功能子模块,用于监测自身节点的当前资源状态;

所述组件管理功能子模块,用于管理自身节点的全部应用程序组件及应用程序组件之间的调用关系,包括组件注册表,所述组件注册表用于保存自身节点的应用程序组件调用信息,所述调用信息包括调用关系、参数、返回值以及估计完成时间;

所述微云簇头服务功能模块,包括节点管理功能子模块、组件注册功能子模块、决策功能子模块和分配功能子模块,其中,

所述节点管理功能子模块,用于管理一般节点的加入、移除,两个微云之间的合并;并存储全部节点的设备信息以及当前资源状态信息;

所述组件注册功能子模块,用于存储全部节点的应用程序组件调用信息,所述调用信息包括调用关系、参数、返回值以及估计完成时间;

所述决策功能子模块,用于根据节点管理功能子模块存储的当前资源状态信息,确定最优组件部署结果;

所述分配功能子模块,用于根据所述决策功能子模块确定的最优组件部署结果,分配应用程序组件。

第二方面,为达到上述目的,本发明实施例还公开了一种微云的组网方法,应用于移动云计算系统,所述移动云计算系统包括至少两个节点,所述节点包含两个与所述移动云计算系统相关的功能模块,分别为微云簇头服务功能模块和一般节点服务功能模块,且所述微云簇头服务功能模块和一般节点服务功能模块均处于激活状态;所述方法包括:

所述至少两个节点中的任一节点,将自身节点确定为目标微云的微云簇头节点;

所述微云簇头节点广播用于发现其他节点的广播发现包;

接收第一节点发送的微云能力查询请求以及第一信息,其中,所述第一节点为接收到所述广播发现包的节点,所述第一信息包括:所述第一节点的能力信息、当前资源状态信息以及可提供的组件服务信息;

向所述第一节点发送第二信息,所述第二信息包括:所述目标微云的能力信息、当前资源状态信息以及可提供的组件服务信息;

判断所述目标微云的总能力是否不小于所述第一节点的能力;

如果是,在接收到所述第一节点的加入请求以及允许所述第一节点加入所述目标微云的情况下,将所述第一节点加入所述目标微云,继续执行广播用于发现其他节点的广播发现包的操作步骤;其中,所述第一节点当前的微云簇头服务功能模块处于未激活状态;

如果否,向所述第一节点发送加入请求;在接收到所述第一节点发送的允许加入信息的情况下,将所述目标微云的微云簇头节点的微云簇头服务功能模块去激活;将所述目标微云包括的节点加入所述第一节点,生成新微云;其中,所述新微云的微云簇头节点为所述第一节点,继续执行广播用于发现其他节点的广播发现包的操作步骤。

可选的,所述方法还包括:

接收第一微云发送的第三信息,所述第三信息包括:所述第一微云的能力信息、当前资源状态信息以及可提供的组件服务信息;

根据所述第三信息,计算所述第一微云的总能力;

判断当前微云的总能力是否不小于所述第一微云的总能力;

如果是,在接收到所述第一微云发送的微云合并请求后,计算当前微云的第一资源平均使用率、第一微云的第二资源平均使用率以及若增加所述第一微云后生成的新微云的第三资源平均使用率;

判断所述第三资源平均使用率是否同时小于所述第一资源平均使用率和所述第二资源平均使用率;

如果是,将当前微云的微云簇头节点,确定为合并后微云的微云簇头节点;将所述第一微云与所述当前微云合并。

可选的,根据如下公式计算微云的总能力:

P=ΣviVPvi,i=1,...N,

其中,P为微云的总能力,N为微云中节点的个数,为节点vi∈V的总能力,V为所述微云中所有节点的并集,为节点vi的核心个数,为每个核心的计算能力,Mvi为节点vi的内存,为节点vi的带宽,α、β、γ为加权系数,α+β+γ=1;

根据如下公式计算微云的资源平均使用率:

usage-A=ΣviVusageviN,i=1,...N,

其中,usage-A为微云的资源平均使用率,为节点vi∈V的使用率,V为所述微云中所有节点的并集,c∈C,C为该节点上运行的全部组件,包括该节点自身要运行的应用程序组件和被其他节点卸载过来的应用程序组件,freqc为组件c被调用的频率,cu为组件c使用的CPU,mu为组件c使用的内存,nu为组件c造成的带宽消耗,α’、β’、γ’为加权系数,α’+β’+γ’=1。

可选的,所述方法还包括:

计算当前微云的资源平均使用率和各个一般节点的资源协同共享度,其中,所述一般节点为当前微云中除所述微云簇头节点外的其他节点;

判断所述当前微云的资源平均使用率是否大于预设阈值;

如果是,将计算得到的最小资源协同共享度值对应的一般节点移除。

可选的,所述方法还包括:

接收目标一般节点发送的移除请求,所述移除请求为所述目标一般节点的接入网络信号强度低于预设门限值并接收到其他微云的广播发现包时发送的,所述一般节点为当前微云中除所述微云簇头节点外的其他节点;

将所述目标一般节点移除。

可选的,移除一般节点,包括:

判断当前微云中是否有应用程序组件卸载到被移除的一般节点上;

如果没有,判断是否有第一组件,所述第一组件为卸载到当前微云中其他一般节点上的所述被移除的一般节点的应用程序组件;如果是,判断所述第一组件上是否有函数正在执行;如果有函数正在执行,判断所述函数的执行时间是否不大于预设第一阈值;如果不大于,在接收到其他一般节点发送的函数执行完成的消息后,移除所述被移除的一般节点;如果大于,通知所述被移除的一般节点,以使所述被移除的一般节点重新实例化所述第一组件并同步函数执行状态;移除所述被移除的一般节点;

如果有,判断第二组件上是否有函数正在执行,所述第二组件为卸载到所述被移除的一般节点上的当前微云中其他一般节点的应用程序组件;如果否,移除所述被移除的一般节点;如果是,判断所述函数的执行时间是否不大于预设第二阈值;如果不大于,在接收到所述被移除的一般节点发送的函数执行完成的消息后,移除所述被移除的一般节点;如果大于,通知卸载应用程序组件到所述被移除的一般节点上的其他一般节点,以使所述其他一般节点重新实例化所述第二组件并同步函数执行状态;移除所述被移除的一般节点。

可选的,所述方法还包括:

接收其他微云中的一般节点发送的加入请求信息,所述加入请求信息包括一般节点的能力和加入原因,所述加入原因为一般节点因其移动性导致被动加入当前微云;

将所述一般节点加入当前微云。

可选的,所述方法还包括:

接收当前微云中一般节点发送的基于应用程序组件的卸载请求,其中,所述一般节点为当前微云中除所述微云簇头节点外的其他节点;

根据当前微云内全部一般节点的当前资源状态信息以及组件状态信息,确定目标卸载节点;

将所确定的目标卸载节点的标识信息发送给需要卸载应用程序组件的一般节点;并将需要卸载应用程序组件的一般节点的标识信息发送给所述目标卸载节点,以使所述需要卸载应用程序组件的一般节点将需要卸载的应用程序组件卸载到所述目标卸载节点。

第三方面,为达到上述目的,本发明实施例还公开了一种微云的组网装置,应用于移动云计算系统,所述移动云计算系统包括至少两个节点,所述节点包含两个与所述移动云计算系统相关的功能模块,分别为微云簇头服务功能模块和一般节点服务功能模块,且所述微云簇头服务功能模块和一般节点服务功能模块均处于激活状态;所述装置包括:

确定模块,用于所述至少两个节点中的任一节点,将自身节点确定为目标微云的微云簇头节点;

广播模块,用于所述微云簇头节点广播用于发现其他节点的广播发现包;

接收模块,用于接收第一节点发送的微云能力查询请求以及第一信息,其中,所述第一节点为接收到所述广播发现包的节点,所述第一信息包括:所述第一节点的能力信息、当前资源状态信息以及可提供的组件服务信息;

发送模块,用于向所述第一节点发送第二信息,所述第二信息包括:所述目标微云的能力信息、当前资源状态信息以及可提供的组件服务信息;

第一判断模块,用于判断所述目标微云的总能力是否不小于所述第一节点的能力;

第一处理模块,用于当判断出所述目标微云的总能力不小于所述第一节点的能力时,在接收到所述第一节点的加入请求以及允许所述第一节点加入所述目标微云的情况下,将所述第一节点加入所述目标微云,继续执行所述广播模块;其中,所述第一节点当前的微云簇头服务功能模块处于未激活状态;

第二处理模块,用于当判断出所述目标微云的总能力小于所述第一节点的能力时,向所述第一节点发送加入请求;在接收到所述第一节点发送的允许加入信息的情况下,将所述目标微云的微云簇头节点的微云簇头服务功能模块去激活;将所述目标微云包括的节点加入所述第一节点,生成新微云,继续执行所述广播模块;其中,所述新微云的微云簇头节点为所述第一节点。

可选的,所述装置还包括:

第三信息接收模块,用于接收第一微云发送的第三信息,所述第三信息包括:所述第一微云的能力信息、当前资源状态信息以及可提供的组件服务信息;

第一计算模块,用于根据所述第三信息,计算所述第一微云的总能力;

第二判断模块,用于判断当前微云的总能力是否不小于所述第一微云的总能力;

第三处理模块,用于在判断出当前微云的总能力不小于所述第一微云的总能力时,在接收到所述第一微云发送的微云合并请求后,计算当前微云的第一资源平均使用率、第一微云的第二资源平均使用率以及若增加所述第一微云后生成的新微云的第三资源平均使用率;

第三判断模块,用于判断所述第三资源平均使用率是否同时小于所述第一资源平均使用率和所述第二资源平均使用率;

第四处理模块,用于在判断出所述第三资源平均使用率同时小于所述第一资源平均使用率和所述第二资源平均使用率时,将当前微云的微云簇头节点,确定为合并后微云的微云簇头节点;将所述第一微云与所述当前微云合并。

可选的,根据如下公式计算微云的总能力:

P=ΣviVPvi,i=1,...N,

其中,P为微云的总能力,N为微云中节点的个数,为节点vi∈V的总能力,V为所述微云中所有节点的并集,为节点vi的核心个数,为每个核心的计算能力,Mvi为节点vi的内存,为节点vi的带宽,α、β、γ为加权系数,α+β+γ=1;

根据如下公式计算微云的资源平均使用率:

usage-A=ΣviVusageviN,i=1,...N,

其中,usage-A为微云的资源平均使用率,为节点vi∈V的使用率,V为所述微云中所有节点的并集,c∈C,C为该节点上运行的全部组件,包括该节点自身要运行的应用程序组件和被其他节点卸载过来的应用程序组件,freqc为组件c被调用的频率,cu为组件c使用的CPU,mu为组件c使用的内存,nu为组件c造成的带宽消耗。α’、β’、γ’为加权系数,α’+β’+γ’=1。

可选的,所述装置还包括:

第二计算模块,用于计算当前微云的总能力和各个一般节点的资源协同共享度,其中,所述一般节点为当前微云中除所述微云簇头节点外的其他节点;

第四判断模块,用于判断所述当前微云的资源平均使用率是否大于预设阈值;

第一移除模块,用于在判断出所述当前微云的资源平均使用率大于预设阈值,将计算得到的最小资源协同共享度值对应的一般节点移除。

可选的,所述装置还包括:

移除请求接收模块,用于接收目标一般节点发送的移除请求,所述移除请求为所述目标一般节点的接入网络信号强度低于预设门限值并接收到其他微云的广播发现包时发送的,所述一般节点为当前微云中除所述微云簇头节点外的其他节点;

第二移除模块,用于将所述目标一般节点移除。

可选的,所述第一移除模块或第二移除模块,具体用于:

判断当前微云中是否有应用程序组件卸载到被移除的一般节点上;

如果没有,判断是否有第一组件,所述第一组件为卸载到当前微云中其他一般节点上的所述被移除的一般节点的应用程序组件;如果是,判断所述第一组件上是否有函数正在执行;如果有函数正在执行,判断所述函数的执行时间是否不大于预设第一阈值;如果不大于,在接收到其他一般节点发送的函数执行完成的消息后,移除所述被移除的一般节点;如果大于,通知所述被移除的一般节点,以使所述被移除的一般节点重新实例化所述第一组件并同步函数执行状态;移除所述被移除的一般节点;

如果有,判断第二组件上是否有函数正在执行,所述第二组件为卸载到所述被移除的一般节点上的当前微云中其他一般节点的应用程序组件;如果否,移除所述被移除的一般节点;如果是,判断所述函数的执行时间是否不大于预设第二阈值;如果不大于,在接收到所述被移除的一般节点发送的函数执行完成的消息后,移除所述被移除的一般节点;如果大于,通知卸载应用程序组件到所述被移除的一般节点上的其他一般节点,以使所述其他一般节点重新实例化所述第二组件并同步函数执行状态;移除所述被移除的一般节点。

可选的,所述装置还包括:

加入请求信息接收模块,用于接收其他微云中的一般节点发送的加入请求信息,所述加入请求信息包括一般节点的能力和加入原因,所述加入原因为一般节点因其移动性导致被动加入当前微云;

加入模块,用于将所述一般节点加入当前微云。

可选的,所述装置还包括:

卸载请求接收模块,用于接收当前微云中一般节点发送的基于应用程序组件的卸载请求,其中,所述一般节点为当前微云中除所述微云簇头节点外的其他节点;

目标卸载节点确定模块,用于根据当前微云内全部一般节点的当前资源状态信息以及组件状态信息,确定目标卸载节点;

标识信息发送模块,用于将所确定的目标卸载节点的标识信息发送给需要卸载应用程序组件的一般节点;并将需要卸载应用程序组件的一般节点的标识信息发送给所述目标卸载节点,以使所述需要卸载应用程序组件的一般节点将需要卸载的应用程序组件卸载到所述目标卸载节点。

综上所述,本发明实施例提供的一种基于组件的微云、微云的组网方法及装置,以应用程序组件为卸载颗粒度,在应用程序运行时,根据最优策略将应用程序组件动态卸载到微云中的其他设备中,相比基于虚拟机的卸载具有更好的灵活性,降低了微云的负载和通信带宽开销,并且利于全局优化和动态负载均衡;将微云周围大量空闲的用户设备也归入微云中,作为计算资源的一部分,可以高效地利用空闲的边缘计算资源,通过对微云进行动态发现、扩展、合并,可以优化微云的自组织组网,解决了由于移动节点贪婪卸载造成的传统微云负载较大的问题,同时提高了整个微云的资源利用率;以微云簇头节点为卸载的中心,将应用程序组件卸载到微云中,相比于传统移动云计算将任务卸载到远程的云数据中心,大量占据骨干网带宽,微云更靠近用户,延时小,任务的卸载及计算结果的获取都更快。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1本发明实施例提供的一种基于组件的微云的结构示意图;

图2为本发明实施例提供的一种基于组件的微云中各功能模块之间的信息流交互关系图;

图3为本发明实施例提供的一种微云的组网方法的流程示意图;

图4为本发明实施例提供的一种卸载策略优化算法的应用场景图;

图5为本发明实施例提供的一种卸载策略优化算法的解空间减小示意图;

图6为本发明实施例提供的一种微云的组网装置的结构示意图。

具体实施方式

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

本发明实施例提供了一种基于组件的微云、微云的组网方法及装置,下面通过具体实施例,对本发明进行详细说明。

图1为本发明实施例提供的一种基于组件的微云的结构示意图,需要说明的是,图1仅示出了该微云中的一个一般节点,并不限定本发明实施例所提供的一种基于组件的微云中仅包含一个一般节点。

如图1所示,本发明的实施例提供了一种基于组件的微云,包括:

一个微云簇头节点和多个一般节点,各个节点之间互相通信,其中,微云簇头节点和一般节点均包含两个与移动云计算系统相关的功能模块,分别为微云簇头服务功能模块200和一般节点服务功能模块100,且微云簇头节点和一般节点的一般节点服务功能模块100均处于激活状态,微云簇头节点的微云簇头服务功能模块200处于激活状态,一般节点的微云簇头服务功能模块100处于未激活状态;

需要说明的是,该微云包含两种节点,一种是微云簇头节点,另一种是一般节点,各个节点之间可以互相通信。任何一个节点中均包含两个与移动云计算组网系统相关的功能模块,即微云簇头服务功能模块200和一般节点服务功能模块100。这两个功能模块依据本节点目前的状态,被激活和去激活。即,在微云簇头节点中,激活并发生作用的与移动云计算系统相关的功能模块有微云簇头服务功能模块200和一般节点功能模块100;在一般节点中,激活并发生作用的功能模块仅为一般节点服务功能模块100。微云簇头节点作为微云的宿主,既可以是固定设备,也可以是移动设备。

所述一般节点服务功能模块100,包括:节点代理功能子模块101、设备监测功能子模块102和组件管理功能子模块103,其中,

所述节点代理功能子模块101,用于控制信息的交互和数据信息的交互;

具体而言,该节点代理功能子模块101,用于与微云簇头服务功能模块200的控制信息交互以及与其他一般节点服务功能模块100之间的数据信息交互;同时,将组件管理功能子模块103的应用程序组件调用信息和设备监测功能子模块102的设备资源能力信息,发送给微云簇头节点200的节点管理功能子模块201。

在本发明实施例所述的一种基于组件微云中,数据流分为控制平面和数据平面,其中,控制平面的数据流用于微云中一般节点的加入、移除、两个微云之间的合并等动态组网以及资源优化时的相关控制信息交互;数据平面主要负责位于各个节点上的应用程序组件之间的调用数据的交互,即一般节点服务功能模块100之间完成调用重定向、调用参数和返回值的传输。微云中数据平面和控制平面的交互关系如图2所示。

所述设备监测功能子模块102,用于监测自身节点的当前资源状态;

具体而言,该设备监测功能子模块102,负责监测设备的剩余硬件资源,如CPU的计算资源、内存、网络带宽等的使用率,这些信息将发送到微云簇头服务功能模块200,被决策功能子模块203用于组件优化部署策略。

所述组件管理功能子模块103,用于管理自身节点的全部应用程序组件及应用程序组件之间的调用关系,包括组件注册表,所述组件注册表用于保存自身节点的应用程序组件调用信息,所述调用信息包括调用关系、参数、返回值以及估计完成时间;

具体而言,该组件管理功能子模块103,用来管理本节点中全部应用程序组件,并存储这些应用程序组件间的调用关系。当用户启动一个应用程序时,操作系统为这个应用程序创建一个组件管理器,应用程序将其全部的组件注册在组件管理器处并生成对应的组件注册表,同时将应用程序组件之间的调用关系、参数信息、返回值信息和估计执行时间保存在生成的组件注册表里,这个注册表同时与微云簇头服务功能模块200中的组件注册功能子模块202同步;当应用程序组件之间发生调用时,调用者将向本节点的一般节点服务功能模块100的组件管理功能子模块103发出请求,组件管理功能子模块103则在生成的组件注册表中找到请求的组件,并将调用请求转发给该组件,如果被调用的组件在本地运行,则这是一次本地调用;如果根据某种优化的组件部署策略,该组件被卸载到本微云中的其他节点上,那么该调用请求将被组件管理功能子模块103重定向到对应的其他节点上。

所述微云簇头服务功能模块200,包括节点管理功能子模块201、组件注册功能子模块202、决策功能子模块203和分配功能子模块204,其中,

所述节点管理功能子模块201,用于管理一般节点的加入、移除,两个微云之间的合并,并存储全部节点的设备信息以及当前资源状态信息;

具体而言,作为微云簇头服务功能模块200的重要组成部分,所述节点管理功能子模块201用来管理一般节点的加入、移除,两个微云之间的合并过程,接收各个一般节点发送的通过设备监测功能子模块102监测到该节点的设备信息以及资源状态信息并保存。

所述组件注册功能子模块202,用于存储全部节点的应用程序组件调用信息,所述调用信息包括调用关系、参数、返回值以及估计完成时间;

具体而言,所述组件注册功能子模块202用于保存该微云内所属的全部节点的应用程序组件状态信息,该应用程序组件状态信息是微云内所属的全部节点的组件管理功能子模块103的组件信息的并集。本微云通过该组件注册功能子模块202,可以向本微云所属的所有节点提供注册表中列出的全部组件服务。

所述决策功能子模块203,用于根据节点管理功能子模块201存储的当前资源状态信息,确定最优组件部署结果;

具体而言,该决策功能子模块203,基于特定的优化目标和算法,根据节点管理功能子模块201提供的当前微云内全部节点的资源状态信息、组件注册功能子模块202提供的全部应用程序组件相关信息以及当前的应用程序组件部署状态信息进行优化,得到一个基于本微云的全局优化的应用程序组件部署配置结果,并将该最优组件部署结果发送给分配功能子模块204。

所述分配功能子模块204,用于根据所述决策功能子203模块确定的最优组件部署结果,分配应用程序组件;

具体而言,当一个微云含有多个节点时,该分配功能子模块204用于执行最优组件分配结果,即应用程序组件的卸载;当一个节点的组件管理功能子模块103需要执行一个远程调用时,该分配功能子模块204将根据决策功能子模块203给出的本微云的全局优化部署在相应的目标节点上实例化所请求的应用程序组件,并将目标节点的地址返回给提出请求的节点,以便提出请求的节点与目标节点之间建立联系,进行应用程序组件的调用。

综上所述,本发明实施例提供的一种微云,以应用程序组件为卸载颗粒度,在应用程序运行时,根据最优策略将应用程序组件动态卸载到微云中的其他设备中,相比基于虚拟机的卸载具有更好的灵活性,降低了微云的负载和通信带宽开销,并且利于全局优化和动态负载均衡;将微云周围大量空闲的用户设备也归入微云中,作为计算资源的一部分,既可以高效地利用这些空闲的边缘计算资源,也解决了由于移动节点贪婪卸载造成的传统微云负载较大的问题,降低了将任务卸载到核心网络时带来的骨干网络负载。

相应于上述一种基于组件的微云,本发明实施例还提供了一种微云的组网方法,应用于移动云计算系统,所述移动云计算系统包括至少两个节点,所述节点包含两个与所述移动云计算系统相关的功能模块,分别为微云簇头服务功能模块200和一般节点服务功能模块100,且所述微云簇头服务功能模块200和一般节点服务功能模块100均处于激活状态;如图3所示,所述方法包括:

S201,所述至少两个节点中的任一节点,将自身节点确定为目标微云的微云簇头节点;

S202,所述微云簇头节点广播用于发现其他节点的广播发现包;

S203,接收第一节点发送的微云能力查询请求以及第一信息,其中,所述第一节点为接收到所述广播发现包的节点,所述第一信息包括:所述第一节点的能力信息、当前资源状态信息以及可提供的组件服务信息;

S204,向所述第一节点发送第二信息,所述第二信息包括:所述目标微云的能力信息、当前资源状态信息以及可提供的组件服务信息;

S205,判断所述目标微云的总能力是否不小于所述第一节点的总能力;如果是,执行S206,否则,执行S207;

S206,在接收到所述第一节点的加入请求以及允许所述第一节点加入所述目标微云的情况下,将所述第一节点加入所述目标微云,返回S202;其中,所述第一节点当前的微云簇头服务功能模块200处于未激活状态;

S207,向所述第一节点发送加入请求;在接收到所述第一节点发送的允许加入信息的情况下,将所述目标微云的微云簇头节点的微云簇头服务功能模块200去激活;将所述目标微云包括的节点加入所述第一节点,生成新微云;其中,所述新微云的微云簇头节点为所述第一节点,返回S202。

具体而言,在微云组网的过程中会发生基于微云簇头节点之间的交互,这里定义具有激活微云簇头服务功能模块200的设备为微云簇头宿主(简称为宿主)。在移动云计算系统初始化时,所有节点都初始化为一个微云簇头节点,即每个节点均具有激活的微云簇头服务功能模块200和一般节点服务功能模块100;节点的移动性可能会导致节点之间频繁地发生微云之间的合并和一般节点的移除,为了避免上述情形的发生,在初始化后,以节点为宿主的微云中只包含该节点一个设备。当节点与某个微云簇头节点进行交互,其通信的稳定性和计算性能均弱于该微云簇头节点时,本节点将由微云簇头宿主退化为一般节点,即微云簇头服务功能模块200去激活,并加入微云。

在移动云计算系统的初始化过程中,任何一个节点会运行微云簇头服务功能模块200和一般节点服务功能模块100两个模块的初始化过程。各个节点完成初始化过程后,进入微云的动态组网过程。在组网过程中,根据节点的功能,会相应地激活微云簇头服务功能模块200或一般节点服务功能模块100,其中,当节点是微云簇头节点或者单独的节点时,节点中的微云簇头服务功能模块200和一般节点服务功能模块100均处于激活状态;当该节点是微云中的一般节点时,仅有一般节点服务功能模块100处于激活状态,而微云簇头服务功能模块200则处于去激活状态。

一般节点服务功能模块100的初始化过程包括节点代理功能子模块101、设备监测功能子模块102、组件管理功能子模块103的初始化过程。具体的,包括对节点代理功能子模块101的参数进行初始化、设备监测功能子模块102的参数初始化、组件管理功能子模块103的参数初始化;设备监测功能子模块102实时监控节点设备的资源状态,包括CPU的计算能力、内存、网络带宽等资源的使用情况,并将各资源状态信息汇总到节点代理功能子模块101;根据组件管理功能子模块103判决目前的每个应用程序是否可分割成组件,针对可分割的应用程序获得该应用程序对应的组件中的函数的参数大小、返回值大小等参数,评估这些应用程序组件中函数的运行时间、开销,生成基于本节点的组件注册表,并将上述评估结果汇总到节点代理功能子模块101。

微云簇头服务功能模块200的初始化过程包括节点管理功能子模块201、组件注册功能子模块202、决策功能子模块203、分配功能子模块204的参数初始化过程。当微云中仅有一个节点时,则先进行微云簇头服务功能模块200的初始化过程,之后,进行本节点的一般节点服务功能模块100的初始化过程,在一般节点服务功能模块100初始化之后,本节点的一般节点服务功能模块100向本节点的微云簇头服务功能模块200发送应用程序组件的相关信息,由本节点的微云簇头服务功能模块200完成本节点的组件注册表生成和组件部署过程。

节点的初始化过程完成之后,每个节点都成为以自身节点为微云簇头节点的目标微云。其微云簇头服务功能模块200则开始周期性地广播用于发现其他节点的广播发现包给其周围的节点;并且节点完成其初始化过程后,可以接收并监听周围微云或节点发送给本节点的广播发现包。广播发现包中包含目标微云簇头节点的源地址、目的地址(广播地址)、该目标微云的标识以及该目标微云目前的资源状态信息,其中,该目标微云的标识可以是该目标微云的地址。

当第一节点收到这个广播发现包时,说明该第一节点已经发现了一个可加入、可获取服务的目标微云。该第一节点可以通过发送微云能力查询请求查询该目标微云的能力和状态,该微云能力查询请求对应的第一信息中包含有该第一节点当前的能力信息、当前资源状态信息以及可提供的组件服务信息;该目标微云的微云簇头节点收到该第一节点的微云能力查询请求消息后,也会向该第一节点发送微云能力查询消息对应的第二信息,该第二信息中含有本目标微云的能力信息、当前资源状态信息以及可提供的组件服务信息。在获得该第一节点的能力信息后,该目标微云的微云簇头节点会判断本目标微云的总能力与该第一节点的总能力;如果该目标微云的总能力小于该第一节点的总能力,该目标微云的微云簇头节点会向该第一节点发送加入请求,该第一节点根据该目标微云的当前资源状态信息和可提供的组件服务信息,决定是否允许该目标微云加入,如果该目标微云的当前资源状态信息和可提供的组件服务信息满足该第一节点的要求,则该第一节点向该目标微云的微云簇头节点发送允许加入信息,该目标微云的微云簇头节点接收到该允许加入信息后,将该目标微云的微云簇头节点的微云簇头服务功能模块200去激活成为一般节点加入该第一节点,并将该目标微云包括的一般节点加入该第一节点,生成新微云,而新微云的微云簇头节点为该第一节点;如果该目标微云的当前资源状态信息和/或可提供的组件服务信息不满足该第一节点的要求,该第一节点可以发送拒绝加入信息给该目标微云的微云簇头节点,拒绝该目标微云加入第一节点。

在实际应用中,可以根据微云的资源平均使用率,来判断微云是否允许加入。具体而言,该目标微云的微云簇头节点向该第一节点发送加入请求后,该第一节点根据自身和该目标微云的当前资源状态信息和可提供的组件服务信息,计算自身的资源平均使用率、目标微云的资源平均使用率,以及若增加该目标微云后生成的新微云的资源平均使用率。如果增加该目标微云后生成的新微云的资源平均使用率同时小于自身的平均资源使用率和目标微云的资源平均使用率,那么该第一节点允许该目标微云加入;如果增加该目标微云后生成的新微云的资源平均使用率不小于自身的平均资源使用率或目标微云的资源平均使用率,那么该第一节点不允许该目标微云加入。

同样的,如果该第一节点的总能力小于该目标微云的总能力,该第一节点会向该目标微云的微云簇头节点发送加入请求,该目标微云的微云簇头节点根据该第一节点的当前资源状态信息和可提供的组件服务信息,决定是否允许该第一节点加入,如果该第一节点的当前资源状态信息和可提供的组件服务信息满足该目标微云的要求,则该目标微云的微云簇头节点向该第一发送允许加入信息,该第一节点接收到该允许加入信息后,将该第一节点的微云簇头服务功能模块200去激活成为一般节点,加入该目标微云,生成新微云;如果该第一节点的当前资源状态信息和/或可提供的组件服务信息不满足该目标微云的要求,则该目标微云的微云簇头节点可以发送拒绝加入信息给该第一节点。

在一个目标微云通过组网过程后包含多个一般节点的情形下,该目标微云所属的各个一般节点通过一般节点服务功能模块100,将汇总的设备资源状态信息和应用程序组件信息传送给该目标微云的微云簇头服务功能模块200。其中,设备信息传送给节点管理功能子模块201,组件信息则传送给组件注册功能子模块202。节点管理功能子模块201完成基于该目标微云内的所有节点的设备资源信息的管理,组件注册功能子模块202则完成本目标微云内所能提供的所有应用程序组件的信息生成。

需要注意的是,每当微云中的节点发生变化或者提供的组件发生变化时,组件注册表的内容均需要更新,为了能使微云提供不断更新的组件注册表,组件注册功能子模块202收集本微云内所属节点的组件注册变化消息和资源状态消息,以便既维护最新的组件注册表信息,又能最小化由此带来的交互信息所产生的额外开销。

需要说明的是,该第一节点根据判决准则决定是否允许该目标微云加入,或者,该目标微云的微云簇头节点根据判决准则决定是否允许该第一节点加入,具体的判决准则可以依据不同的优化目标和策略,在此不做限定。需要注意的是,当第一节点加入到该目标微云之后,并在决定离开该目标微云之前,都将不再处理来自其他微云的广播包。

更进一步的,基于图3所示的实施例,本发明实施例所提供的一种微云的组网方法还包括:

接收第一微云发送的第三信息,所述第三信息包括:所述第一微云的能力信息、当前资源状态信息以及可提供的组件服务信息;

根据所述第三信息,计算所述第一微云的总能力;

判断当前微云的总能力是否不小于所述第一微云的总能力;

如果是,在接收到所述第一微云发送的微云合并请求后,计算当前微云的第一资源平均使用率、第一微云的第二资源平均使用率以及若增加所述第一微云后生成的新微云的第三资源平均使用率;

判断所述第三资源平均使用率是否同时小于所述第一资源平均使用率和所述第二资源平均使用率;

如果是,将当前微云的微云簇头节点确定为合并后微云的微云簇头节点;将所述第一微云与所述当前微云合并。

具体而言,将图3所示的实施例中生成的新微云作为当前微云,当前微云与其他微云还会发生两个微云之间的合并过程。

任意两个微云的合并包括以下三个阶段:即微云发现阶段、微云能力比较阶段和微云合并阶段。

第一阶段为微云发现阶段。如果当前微云有扩展的需求,则当前微云的微云簇头节点会广播微云广播发现消息,如果第一微云的微云簇头节点收到了本消息,意味着已发现附近的一个微云,如果收到发现消息的其他微云也具有扩展计算能力的需求,则第一微云的微云簇头节点会试图与发送微云广播发现消息的当前微云建立连接,同样发送微云广播发现消息给当前微云的微云簇头节点,两个微云的微云簇头节点建立连接,进入微云能力比较阶段。

第二阶段为微云能力比较阶段。在本阶段中,两个微云簇头节点分别向对方发送微云能力查询信息,该信息中包括本微云的能力信息、当前资源状态信息以及可提供的组件服务信息。两个微云簇头节点收到微云能力查询信息后,各自根据微云能力查询信息,计算对方微云的总能力,并进入微云合并阶段。

第三阶段为微云合并阶段。如果该第一微云的微云簇头节点判断出自身微云的总能力小于当前微云的总能力,则该第一微云发送微云合并请求信息给当前微云,当前微云接收到该微云合并请求后,计算当前微云的第一资源平均使用率、第一微云的第二资源平均使用率,以及若增加该第一微云后生成的新微云的第三资源平均使用率。如果当前微云的微云簇头节点判断出第三资源平均使用率同时小于第一资源平均使用率和第二资源平均使用率,则发送微云合并确认信息给该第一微云;待收到当前微云的微云簇头节点的合并确认信息后,第一微云的微云簇头节点将发送微云合并通知信息给自身微云中的其他一般节点,通知其所属的一般节点将要合并进入的当前微云的微云簇头节点的地址及其当前微云的标识等信息,自身微云的一般节点将与当前微云的微云簇头节点建立关联,同时,第一微云的微云簇头将去激活自己的微云簇头服务功能模块200,退化成当前微云中的一般节点。当前微云的微云簇头节点将接收到的第一微云的节点管理功能子模块201和组件注册功能子模块202中的内容与本微云的内容进行合并,同时重新刷新本微云的相关模块设置,然后启动决策功能子模块203,得到新的组件优化分配结果,根据新的优化分配结果分配应用程序组件。如果当前微云的微云簇头节点判断出第三资源平均使用率不小于第一资源平均使用率或者第二资源平均使用率,则当前微云的微云簇头节点不与该第一微云进行合并,当前微云的微云簇头节点可以发送拒绝合并信息给该第一微云的微云簇头节点,则本次微云合并过程失败。

需要说明的是,如果该当前微云的微云簇头节点判断出自身微云的总能力小于该第一微云的总能力,该当前微云发送微云合并请求信息给第一微云请求合并,第一微云判断是否合并的过程可以参见上述第三阶段,在此不做赘述。

在上述微云的组网和两个微云合并的过程中,微云计算自身的总能力或者其他微云的总能力所利用的公式为:

P=ΣviVPvi,i=1,...N,

其中,P为微云的总能力,N为微云中节点的个数,为节点vi∈V的总能力,V为所述微云中所有节点的并集,为节点vi的核心个数,为每个核心的计算能力,Mvi为节点vi的内存,为节点vi的带宽,α、β、γ为加权系数,α+β+γ=1。

对于应用程序组件中执行的某个函数来说,会造成一定的CPU、内存的开销,如果该函数是属于被卸载到微云中其他节点上的组件时,传递参数和返回值还会造成带宽的消耗。

设某一个应用程序组件cj被另一个应用程序组件ci调用,调用的频率为调用组件中的函数m∈M(其中,M为微云中所有的组件的所有函数的集合),设这个函数m产生一定的CPU使用量loadm,用该函数的指令条数确定,产生额外的内存使用,大小为memm,并且具有参数arg和返回值res,大小分别为argm、resm,并且在一次应用程序组件的调用中该函数使用了callm次。根据上面的定义,可以得到这个组件cj的CPU使用为:CU=∑m∈Mloadm·callm;内存使用为:MU=∑m∈Mmemm;如果组件cj和组件ci不在同一个节点上,则还会造成节点之间的带宽消耗为NU=∑m∈M(argm+resm)·callm;则该节点上的资源使用率为其中c∈C,C为该节点上运行的全部组件,包括该节点自身要运行的应用程序的组件和被其他节点卸载过来的组件,α’、β’、γ’为加权系数,α’+β’+γ’=1;则整个微云的资源平均使用率为N为微云中的节点个数。

需要说明的是,对于整个微云的资源平均使用率,每个微云可以设置一个阈值,当该资源平均使用率大于阈值时,该微云将不再广播微云广播发现消息,即不会再被其他微云发现及合并。

更进一步的,基于图3所示的实施例,本发明实施例所提供的一种微云的组网方法还包括:

计算当前微云的总能力和各个一般节点的资源协同共享度,其中,所述一般节点为当前微云中除所述微云簇头节点外的其他节点;

判断所述当前微云的资源平均使用率是否大于预设阈值;

如果是,将计算得到的最小资源协同共享度值对应的一般节点移除。

具体而言,将图3所示的实施例中生成的新微云作为当前微云,当前微云的微云簇头节点会周期性地计算本微云的资源平均使用率以及本微云中各个一般节点的资源协同共享度(NRCSD),如果当前微云内由于执行的应用程序组件卸载任务较多而导致剩余的计算、存储等硬件资源不足,使得当前微云的资源平均使用率值大于预设阈值时,微云簇头节点将基于移动节点NRCSD的策略选择移除资源协同共享度最小的一般节点,由微云簇头节点发送移除请求消息给该被移除的一般节点,要求该一般节点退出本微云,该一般节点发送移除确认消息给微云簇头节点并退出该微云。这种移除过程称为主动移除过程。

需要说明的是,该一般节点被移除后,需要激活自身的微云簇头服务功能模块,并对其进行初始化,该一般节点成为一个微云簇头节点。

具体而言,微云中的每一个节点维护一个资源协同共享度值NRCSDv,将其初始化为0,若某一个节点vi向另一个节点vj卸载了一个组件c,那么每次当c中的函数m在节点vj上执行时,就要减少对应于该组件c的函数m的资源开销值,同时增加对应于该组件c的函数m的资源开销值;反之,若节点vj向节点vi卸载了一个组件c,那么每次当c中的函数m在设备vi上执行时,就要减少,同时增加。每当微云需要移除某个节点时,选择资源协同共享度值最小的节点。一个典型的情形是,若一个恶意的节点反复地发出卸载请求,那么随着请求的发出,该节点的资源协同共享度值将根据其每次卸载请求的资源开销值不断减小,该恶意节点将有极大的可能被移除。本发明实施例提供了两种资源协同共享度值NRCSDv的计算方法。

方法一:若节点vi向节点vj卸载了一个组件c,那么每当c中的函数m在节点vj上执行时,节点vi的资源协同共享度值减去此次卸载的实际占用的资源η(m,c,vi,vj),节点vj的资源协同共享度值加上此次卸载的实际占用的资源η(m,c,vi,vj),

η(m,c,vi,vj)=u·loadm·freqc+t·memm+w·(argm+resm)·freqc,其中,u、t、w为加权系数,u+t+w=1。

方法二:若节点vi向节点vj卸载了一个组件c,那么每当c中的函数m在节点vj上执行时,节点vi的资源协同共享度值减去此次卸载的实际占用的资源使用率η’(m,c,vi,vj),节点vj的资源协同共享度值加上此次卸载的实际占用的资源η’(m,c,vi,vj),

η,(m,c,vi,vj)=u·loadm·freqccoresvj·speedvj+t·memmMvj+w·(argm+resm)·freqcNvj

其中,u′、t′、w′为加权系数,u′+t′+w′=1。

资源协同共享度值的第二种计算方法使得性能较弱的节点也会维持一定的资源协同共享度值,即当性能较弱的节点卸载任务到其他节点时,由于该任务来自移动应用,造成的负载不会太大,即上式中的分子较小,所以资源协同共享度值的减量也会较小;当有其他节点有任务卸载到性能较弱的节点时,由于移动设备普遍性能较弱,即上式中的分母较小,所以资源协同共享度值的增量会较大。这样,性能较弱的节点虽然大部分时间都在向其他节点卸载任务,小部分时间接受其他节点卸载过来的任务,但由于每次资源协同共享度值的减量较小,增量较大,使得一个正常的节点的资源协同共享度值会维持在一定的水平,不会被轻易地移除。

而对于性能较强的节点,和性能较弱的移动设备刚好相反,其资源协同共享度值的增量很小,减量很大,但由于性能较强的节点很少向其他节点卸载任务,并且几乎不会向性能较弱的节点卸载任务,所以性能较强的节点的资源协同共享度值一直会维持在一个较高的状态,不必担心微云簇头节点将其移除。

更进一步的,基于图3所示的实施例,本发明实施例所提供的一种微云的组网方法还包括:

接收目标一般节点发送的移除请求,所述移除请求为所述目标一般节点的接入网络信号强度低于预设门限值并接收到其他微云的广播发现包时发送的,所述一般节点为当前微云中除所述微云簇头节点外的其他节点;

将所述目标一般节点移除。

具体而言,将图3所示的实施例中生成的新微云作为当前微云,当前微云中的一般节点,由于其移动性,使得该一般节点接入当前微云的网络信号劣化至设定的门限值时,将导致该一般节点无法维持在当前微云中工作,该一般节点向微云簇头节点发送节点移除请求信息,微云簇头节点接收一般节点的移除请求后,发送移除确认信息给该一般节点,并移除该一般节点,这种移除过程也称为被动移除过程。更进一步的,移除一般节点的过程,具体包括:

判断当前微云中是否有应用程序组件卸载到被移除的一般节点上;

如果没有,判断是否有第一组件,所述第一组件为卸载到当前微云中其他一般节点上的所述被移除的一般节点的应用程序组件;如果是,判断所述第一组件上是否有函数正在执行;如果有函数正在执行,判断所述函数的执行时间是否不大于预设第一阈值;如果不大于,在接收到其他一般节点发送的函数执行完成的消息后,移除所述被移除的一般节点;如果大于,通知所述被移除的一般节点,以使所述被移除的一般节点重新实例化所述第一组件并同步函数执行状态;移除所述被移除的一般节点;

如果有,判断第二组件上是否有函数正在执行,所述第二组件为卸载到所述被移除的一般节点上的当前微云中其他一般节点的应用程序组件;如果否,移除所述被移除的一般节点;如果是,判断所述函数的执行时间是否不大于预设第二阈值;如果不大于,在接收到所述被移除的一般节点发送的函数执行完成的消息后,移除所述被移除的一般节点;如果大于,通知卸载应用程序组件到所述被移除的一般节点上的其他一般节点,以使所述其他一般节点重新实例化所述第二组件并同步函数执行状态;移除所述被移除的一般节点。

需要说明的是,当某个一般节点被决定移除时,称该节点为弃子。移除弃子的过程,分为该弃子有应用程序组件被卸载到微云中的其他节点上、微云中其他节点将应用程序组件卸载到该弃子上以及该弃子上没有应用程序组件被卸载三种情形。

如果该弃子上没有微云内的应用程序组件被卸载,则直接移除该移动节点。

当该弃子有应用程序组件被卸载到微云中的其他节点上时,微云簇头节点通过该弃子上的组件管理功能子模块103对该应用程序组件的执行状态进行监测,如果这个应用程序组件正有某个函数执行,若函数的执行时间不大于阈值T(可定义为从确定切换到切换完成的持续时间)时,则函数执行完毕、并将结果返回到弃子后,再将该弃子移除,被卸载到其他节点上的组件将被销毁;若这个函数的执行时间大于阈值T时,则在移除该弃子之前,微云簇头节点先指示弃子重新实例化该未完成的应用程序组件,同时同步函数执行状态,待该弃子被移除之后,被卸载到其他节点上的应用程序组件将被销毁;当应用程序组件中的函数在弃子上没有处于运行状态时,则直接销毁应用程序组件,并移除弃子。

对于微云中其他节点将应用程序组件卸载到弃子上的情况,将发生以下步骤:弃子上被卸载过来的应用程序组件有某个函数在执行,若执行时间不大于阈值T,则待执行完毕并返回结果给微云内的相关节点后,弃子将该应用程序组件销毁后,该弃子被移除;若函数执行时间大于阈值T,通知卸载应用程序组件到该弃子上的其他节点,以使所述其他节点重新实例化该应用程序组件并同步函数执行状态;如果弃子上被卸载组件中没有函数处于运行状态,则微云簇头节点通知弃子直接销毁该应用程序组件后,微云簇头节点直接移除掉该弃子。

更进一步的,基于图3所示的实施例,本发明实施例所提供的一种微云的组网方法还包括:

接收其他微云中的一般节点发送的加入请求信息,所述加入请求信息包括一般节点的能力和加入原因,所述加入原因为一般节点因其移动性导致被动加入当前微云;

将所述一般节点加入当前微云。

具体而言,该一般节点接入当前微云的网络信号劣化,当网络信号强度低于预设门限值时,该一般节点开始接收并处理其他微云发送的广播发现包;当该一般节点接收到其他微云的广播发现包时,可以从中得到该其他微云的目前资源状态信息;该一般节点比较接收到的各个微云发现包的资源状态信息,并选取其中资源能力最佳的微云,发送加入微云请求信息给该微云,在加入请求中标识加入原因是被动加入;该微云的微云簇头节点发送加入确认消息给该一般节点,该一般节点发送移除请求给当前所在的微云的微云簇头节点,以使当前所在的微云的微云簇头节点移除该一般节点;该一般节点完成从当前微云中离开并被动加入该微云的过程,进入该微云接受微云服务。

更进一步的,基于图3所示的实施例,本发明实施例所提供的一种微云的组网方法还包括:

接收当前微云中一般节点发送的基于应用程序组件的卸载请求,其中,所述一般节点为当前微云中除所述微云簇头节点外的其他节点;

根据当前微云内全部一般节点的当前资源状态信息以及组件状态信息,确定目标卸载节点;

将所确定的目标卸载节点的标识信息发送给需要卸载应用程序组件的一般节点;并将需要卸载应用程序组件的一般节点的标识信息发送给所述目标卸载节点,以使所述需要卸载应用程序组件的一般节点将需要卸载的应用程序组件卸载到所述目标卸载节点。

具体而言,当一个节点加入到当前微云中后,为了确保微云内的所有节点处于正常工作状态,微云簇头节点与一般节点之间将周期性交互微云成员保活消息。在微云内,一般节点既可以接受微云中其他节点的服务,也可能向微云中的其他节点提供服务,移动节点提供/接受的服务包括但不限于卸载应用程序组件服务。

这里,定义接受服务的节点为卸载节点,该节点中某个运行中的、可分解成组件的应用程序的一些组件将被卸载到微云中的其他节点上,该其他节点则称为目标卸载节点。

卸载节点的一般节点服务功能模块100向微云簇头节点的微云簇头服务功能模块200发送基于应用程序组件的卸载请求;微云簇头节点收到卸载请求后,根据当前微云内全部一般节点的当前资源状态信息以及组件状态信息,其决策功能子模块203判决并给出本卸载请求的卸载方案,并发送卸载通知信息将该卸载方案通知微云内的目标卸载节点;微云簇头节点将卸载确认信息发送给卸载节点,卸载节点的组件管理功能子模块103向目标卸载节点发送要卸载的组件卸载输入参数信息;微云簇头服务功能模块200中的分配功能子模块204将在目标卸载节点上实例化相应的应用程序组件,并完成同步运行状态的操作,本状态即是卸载节点上正在运行的该应用程序组件的运行状态。这样,当卸载节点上的该应用程序运行到某一时刻,需要调用被卸载到目标卸载节点上的该应用程序组件中的程序包和/或类和/或函数时,卸载节点的组件管理功能子模块103将同步运行状态(如某些全局变量)到目标卸载节点上,并将这次调用重定向到目标卸载节点上,同时,应用程序发送某些参数(例如类的初始化参数、函数的调用参数等)给目标卸载节点,经过卸载节点的重定向,目标卸载节点则执行这次调用请求,在得到运行结果后,目标卸载节点向卸载节点发送该应用程序组件对应的组件卸载输出参数信息,将运行结果返回给卸载节点。

需要说明的是,在微云中,当调用完成后,目标卸载节点不销毁被卸载过来的应用程序组件,销毁由微云簇头服务功能模块200控制执行。一般在微云簇头服务功能模块200重新决策后,如果应用程序组件卸载方案发生变化时,目标卸载节点才会销毁该应用程序组件。

应用本发明实施例提供的一种微云的组网方法,以应用程序组件为卸载颗粒度,在应用程序运行时,根据最优策略将应用程序组件动态卸载到微云中的其他设备中,相比基于虚拟机的卸载具有更好的灵活性,降低了微云的负载和通信带宽开销,并且利于全局优化和动态负载均衡;将微云周围大量空闲的用户设备也归入微云中,作为计算资源的一部分,可以高效地利用空闲的边缘计算资源,通过对微云进行动态发现、扩展、合并,可以优化微云的自组织组网,解决了由于移动节点贪婪卸载造成的传统微云负载较大的问题,同时提高了整个微云的资源利用率;以微云簇头节点为卸载的中心,将应用程序组件卸载到微云中,相比于传统移动云计算将任务卸载到远程的云数据中心,大量占据骨干网带宽,微云更靠近用户,延时小,任务的卸载及计算结果的获取都更快。

另外,微云中的每一个节点都可能将自身需要运行的任意应用程序组件卸载到该微云中的另一个节点上,决策功能子模块203要优化的就是由哪些节点运行哪些应用程序组件的问题。假设某一个微云中全部需要运行的应用程序组件的集合为C,数量为W,且该微云中共有N个节点,则任意一个组件ci∈C,i=1,2…W,最多都有N个可被卸载的可能节点,则该问题的可行解的个数将按O(NW)的速率增长。在这样一个庞大的解空间中寻找一个最优解将是很耗时的,为此,本发明实施例还提出了一种基于移动节点的通信范围的应用程序组件卸载优化策略,该优化策略可以显著地减少卸载解空间,提高卸载优化分配算法的效率。

由于每一个组件ci∈C,i=1,2…W,都有可能被卸载到微云中的任意一个节点上,而实际上,在任一时刻,卸载节点只能将其需要运行的应用程序组件卸载到处于自身通信范围内的目标卸载节点上,由此可以看出,可以针对被卸载的备选节点的数量N进行优化,这样,可行解的节点数量将呈指数形式减小,这将带来系统性能的极大提升。

如图4所示的场景,其中,灰色的圆形表示微云簇头节点,较大的圆表示其通信范围,正方形对应的节点表示某一个需要卸载应用程序组件的卸载节点,较小的圆表示该卸载节点的通信范围,三角形对应的节点表示在该微云簇头节点和该卸载节点通信范围内的一般节点,五边形对应的节点表示在该微云簇头节点通信范围内、但不在该卸载节点通信范围内的一般节点。在不考虑优化策略的组件卸载分配算法中,微云内的全部节点都是目标卸载节点,在基于移动节点的通信范围的优化卸载策略算法中,组件只能被卸载到既处于微云的管理范围内、又在卸载节点的通信范围的节点上,在图4中,正方形对应的节点只能把自身的应用程序组件卸载到三角形和圆形对应的节点上,而不能卸载到那些五边形对应的节点上。

以下证明基于移动节点的通信范围的应用程序组件卸载优化策略对目标卸载节点解空间的减小量。

在图4所示的场景中,假设整个场景内的某个区域内节点的个数服从泊松点过程(Poisson Point Process),在下文中该泊松点过程简称PPP,即

P(N(D)=k)=(λ|D|)ke-λ|D|k!

其中D表示某个区域,|D|表示区域D的面积,λ表示单位面积中节点个数的均值,λ|D|即是区域D中节点个数的均值。

设微云簇头节点的通信范围为R,则微云簇头节点的通信范围即微云覆盖范围内的面积为πR2,则不考虑优化策略的算法的解空间的大小为(λ*πR2)M,其中M为全部组件的数量。

设任意一般节点的通信范围为r,则微云簇头节点的通信范围与该任意一般节点的通信范围的重合部分的面积为S,则重合部分中节点的平均个数为λ*S,即该任意一般节点上的应用程序组件可选的目标卸载节点的数量为λ*S,因此该基于移动节点的通信范围对卸载策略的优化的算法的解空间的大小为(λ*S)M

为求得S,可以建立坐标系,如图5所示,其中O为微云簇头节点的位置,A为该卸载节点的位置,以O为圆心的大圆为微云簇头节点的通信范围,以A为圆心的小圆为该卸载节点的通信范围,以大圆的圆心O的位置为原点、直线OA为x轴建立平面直角坐标系,则两个圆重合部分的面积为S。当小圆完全进入了大圆,此时S=πr2,重合面积达到最大,则该基于移动节点的通信范围对卸载策略的优化的算法解空间的大小至少可以减少到(λ*πr2)M,也就是说算法性能提升的下界为可以看出,当本微云中的应用程序组件的总个数较多时,算法性能提升得更显著。

另外,本发明实施例还给出了微云组网方法中交互信息的格式,其中,通用信息格式包括消息类型、发送方ID、接收方ID、微云ID和消息负载等部分,具体格式如表1所示:

表1

交互信息的消息类型包括:广播发现消息、微云能力查询消息、节点加入请求消息、节点加入确认消息、微云成员保活消息、组件卸载请求消息、组件卸载确认、组件卸载通知消息、组件卸载输入参数消息、组件卸载输出参数消息、微云合并请求消息、微云合并确认消息、微云合并拒绝消息、微云合并通知消息、微云分配消息、节点移除请求消息、节点移除确认消息。

其中,广播发现消息的格式如表2所示:

表2

微云能力查询消息的格式如表3所示:

表3

节点加入请求消息的格式如表4所示:

表4

节点加入确认消息的格式如表5所示:

表5

微云成员保活消息的格式如表6所示:

表6

微云成员保活发送方ID接收方ID所属的微云ID

组件卸载请求消息的格式如表7所示:

表7

组件卸载确认消息的格式如表8所示:

表8

组件卸载通知消息的格式如表9所示:

表9

组件卸载通知发送方ID接收方ID通知的具体信息

组件卸载输入参数消息的格式如表10所示:

表10

组件卸载输入参数发送方ID接收方ID卸载的组件ID输入的具体参数

组件卸载输出参数消息的格式如表11所示:

表11

组件卸载输出参数发送方ID接收方ID卸载的组件ID输出的具体参数

微云合并请求消息的格式如表12所示:

表12

微云合并确认消息的格式如表13所示:

表13

微云合并确认发送方ID接收方ID发送方的微云ID

微云合并拒绝消息的格式如表14所示:

表14

微云合并拒绝发送方ID接收方ID发送方的微云ID

微云合并通知消息的格式如表15所示:

表15

微云合并通知发送方ID合并后的新微云ID合并后的新微云簇头节点ID

微云分配消息的格式如表16所示:

表16

微云组件分配发送方ID接收方ID组件分配策略信息

节点移除请求消息(被动移除)的格式如表17所示:

表17

节点移除请求消息(主动移除)的格式如表18所示:

表18

节点移除确认消息的格式如表19所示:

表19

移除确认发送方ID接收方ID要移除节点的微云ID返回的参数

对应于上述方法实施例,本发明实施例还提供了一种微云组网装置,应用于移动云计算系统,所述移动云计算系统包括至少两个节点,所述节点包含两个与所述移动云计算系统相关的功能模块,分别为微云簇头服务功能模块200和一般节点服务功能模块100,且所述微云簇头服务功能模块200和一般节点服务功能模块100均处于激活状态;如图6所示,所述装置包括:

确定模块301,用于所述至少两个节点中的任一节点,将自身节点确定为目标微云的微云簇头节点;

广播模块302,用于所述微云簇头节点广播用于发现其他节点的广播发现包;

接收模块303,用于接收第一节点发送的微云能力查询请求以及第一信息,其中,所述第一节点为接收到所述广播发现包的节点,所述第一信息包括:所述第一节点的能力信息、当前资源状态信息以及可提供的组件服务信息;

发送模块304,用于向所述第一节点发送第二信息,所述第二信息包括:所述目标微云的能力信息、当前资源状态信息以及可提供的组件服务信息;

第一判断模块305,用于判断所述目标微云的总能力是否不小于所述第一节点的能力;

第一处理模块306,用于当判断出所述目标微云的总能力不小于所述第一节点的能力时,在接收到所述第一节点的加入请求以及允许所述第一节点加入所述目标微云的情况下,将所述第一节点加入所述目标微云,继续执行所述广播模块302;其中,所述第一节点当前的微云簇头服务功能模块200处于未激活状态;

第二处理模块307,用于当判断出所述目标微云的总能力小于所述第一节点的能力时,向所述第一节点发送加入请求;在接收到所述第一节点发送的允许加入信息的情况下,将所述目标微云的微云簇头节点的微云簇头服务功能模块200去激活;将所述目标微云包括的节点加入所述第一节点,生成新微云,继续执行所述广播模块302;其中,所述新微云的微云簇头节点为所述第一节点。

应用本发明实施例提供的一种微云的组网装置,以应用程序组件为卸载颗粒度,在应用程序运行时,根据最优策略将应用程序组件动态卸载到微云中的其他设备中,相比基于虚拟机的卸载具有更好的灵活性,降低了微云的负载和通信带宽开销,并且利于全局优化和动态负载均衡;将微云周围大量空闲的用户设备也归入微云中,作为计算资源的一部分,可以高效地利用空闲的边缘计算资源,通过对微云进行动态发现、扩展、合并,可以优化微云的自组织组网,解决了由于移动节点贪婪卸载造成的传统微云负载较大的问题,同时提高了整个微云的资源利用率;以微云簇头节点为卸载的中心,将应用程序组件卸载到微云中,相比于传统移动云计算将任务卸载到远程的云数据中心,大量占据骨干网带宽,微云更靠近用户,延时小,任务的卸载及计算结果的获取都更快。

具体的,所述装置还包括:

第三信息接收模块,用于接收第一微云发送的第三信息,所述第三信息包括:所述第一微云的能力信息、当前资源状态信息以及可提供的组件服务信息;

第一计算模块,用于根据所述第三信息,计算所述第一微云的总能力;

第二判断模块,用于判断当前微云的总能力是否不小于所述第一微云的总能力;

第三处理模块,用于在判断出当前微云的总能力不小于所述第一微云的总能力时,在接收到所述第一微云发送的微云合并请求后,计算当前微云的第一资源平均使用率、第一微云的的第二资源平均使用率以及若增加所述第一微云后生成的新微云的第三资源平均使用率;

第三判断模块,用于判断所述第三资源平均使用率是否同时小于所述第一资源平均使用率和所述第二资源平均使用率;

第四处理模块,用于在判断出所述第三资源平均使用率同时小于所述第一资源平均使用率和所述第二资源平均使用率时,将当前微云的微云簇头节点,确定为合并后微云的微云簇头节点;将所述第一微云与所述当前微云合并。

具体的,根据如下公式计算微云的总能力:

P=ΣviVPvi,i=1,...N,

其中,P为微云的总能力,N为微云中节点的个数,为节点vi∈V的总能力,V为所述微云中所有节点的并集,为节点vi的核心个数,为每个核心的计算能力,Mvi为节点vi的内存,为节点vi的带宽,α、β、γ为加权系数,α+β+γ=1;

根据如下公式计算微云的资源平均使用率:

usage-A=ΣviVusageviN,i=1,...N,

其中,usage-A为微云的资源平均使用率,为节点vi∈V的使用率,V为所述微云中所有节点的并集,c∈C,C为该节点上运行的全部组件,包括该节点自身要运行的应用程序组件和被其他节点卸载过来的应用程序组件,freqc为组件c被调用的频率,cu为组件c使用的CPU,mu为组件c使用的内存,nu为组件c造成的带宽消耗,α’、β’、γ’为加权系数,α’+β’+γ’=1。

具体的,所述装置还包括:

第二计算模块,用于计算当前微云的总能力和各个一般节点的资源协同共享度,其中,所述一般节点为当前微云中除所述微云簇头节点外的其他节点;

第四判断模块,用于判断所述当前微云的资源平均使用率是否大于预设阈值;

第一移除模块,用于在判断出所述当前微云的资源平均使用率大于预设阈值时,将计算得到的最小资源协同共享度值对应的一般节点移除。

具体的,所述装置还包括:

移除请求接收模块,用于接收目标一般节点发送的移除请求,所述移除请求为所述目标一般节点的接入网络信号强度低于预设门限值并接收到其他微云的广播发现包时发送的,所述一般节点为当前微云中除所述微云簇头节点外的其他节点;

第二移除模块,用于将所述目标一般节点移除。

具体的,所述第一移除模块或第二移除模块,具体用于:

判断当前微云中是否有应用程序组件卸载到被移除的一般节点上;

如果没有,判断是否有第一组件,所述第一组件为卸载到当前微云中其他一般节点上的所述被移除的一般节点的应用程序组件;如果是,判断所述第一组件上是否有函数正在执行;如果有函数正在执行,判断所述函数的执行时间是否不大于预设第一阈值;如果不大于,在接收到其他一般节点发送的函数执行完成的消息后,移除所述被移除的一般节点;如果大于,通知所述被移除的一般节点,以使所述被移除的一般节点重新实例化所述第一组件并同步函数执行状态;移除所述被移除的一般节点;

如果有,判断第二组件上是否有函数正在执行,所述第二组件为卸载到所述被移除的一般节点上的当前微云中其他一般节点的应用程序组件;如果否,移除所述被移除的一般节点;如果是,判断所述函数的执行时间是否不大于预设第二阈值;如果不大于,在接收到所述被移除的一般节点发送的函数执行完成的消息后,移除所述被移除的一般节点;如果大于,通知卸载应用程序组件到所述被移除的一般节点上的其他一般节点,以使所述其他一般节点重新实例化所述第二组件并同步函数执行状态;移除所述被移除的一般节点。

具体的,所述装置还包括:

加入请求信息接收模块,用于接收其他微云中的一般节点发送的加入请求信息,所述加入请求信息包括一般节点的能力和加入原因,所述加入原因为一般节点因其移动性导致被动加入当前微云;

加入模块,用于将所述一般节点加入当前微云。

具体的,所述装置还包括:

组件卸载请求接收模块,用于接收当前微云中一般节点发送的基于应用程序组件的组件卸载请求,其中,所述一般节点为当前微云中除所述微云簇头节点外的其他节点;

目标卸载节点确定模块,用于根据当前微云内全部一般节点的当前资源状态信息以及组件状态信息,确定目标卸载节点;

标识信息发送模块,用于将所确定的目标卸载节点的标识信息发送给需要卸载应用程序组件的一般节点;并将需要卸载应用程序组件的一般节点的标识信息发送给所述目标卸载节点,以使所述需要卸载应用程序组件的一般节点将需要卸载的应用程序组件卸载到所述目标卸载节点。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号