一种提高Alljoyn网关的资源利用率的方法和Alljoyn网关
技术领域
本发明涉及智能家居场景中的Alljoyn网关,特别涉及一种提高Alljoyn网关的资源利用率的方法和应用该方法的Alljoyn网关。
背景技术
在智能家居场景中,所有智能家居设备向网关注册自己提供的服务。设备间的所有通信均通过网关。网关对所有的注册的设备进行统一管理。网关通过接收注册设备定时向所其发送的心跳数据包来判断设备的上下线状态。但当突然断电、网络不通或设备重启时,由于没有及时向网关发送心跳包,这时网关就是认为该设备已不在线,对应设备在网关上的资源就会被释放。当设备再次注册时网关端再次申请相关资源。当设备频繁上下线时,网关端就会频繁的申请、释放资源,产生内存碎片,资源利用率低。
Alljoyn是一种基于C/S架构的设备之间点对点通信框架,如图1所示,由BusDaemon(总线守护进程)和终端节点组成。Bus Daemon负责终端节点之间的消息路由,服务发现等功能。终端节点是指运行在设备上的应用程序,启动后需要连接到Bus Daemon上。
终端节点如果提供服务,则向Bus Daemon注册一个服务名称,由Bus Daemon广播出去。如果作为客户端,那么可以通过服务名称来查找服务,并通过远程调用来完成指定功能。
为了使Alljoyn更好的支持智能家居场景,Alljoyn的智能家庭服务(Smart homeservice)提出了集中式管理的概念,即Smart Home service运行在网关上,当Alljoyn设备向网关注册自己提供的服务时,Alljoyn网关对注册设备分配相关的资源,并且注册设备以定时向Alljoyn网关发送心跳包的形式来向其表明自己的在线状态,当设备下线时对应的资源也由Alljoyn网关进行统一回收,即Alljoyn网关对所有注册的设备进行统一的管理。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现在的Alljoyn设备是通过定时发送心跳包来向网关表明自己的在线状态,但当突然断电、网络不通或设备重启时,由于注册设备没有及时向网关发送心跳包,这时网关就会认为该设备已下线,对应设备在网关上的资源就会被释放。当设备再次注册时网关会再次为注册设备申请并分配相关资源。如果当设备频繁上下线时,网关端就会频繁的申请、释放资源,产生内存碎片,资源利用率低。
发明内容
本发明针对网关端频繁申请、释放资源,导致内存碎片造成资源利用率低的问题,提出了一种提高Alljoyn网关的资源利用率的方法和应用该方法的Alljoyn网关,以减少设备向网关注册,并提高Alljoyn网关的资源利用率。
一方面,本发明实施例提供了一种提高Alljoyn网关的资源利用率的方法,其包括如下步骤:
接收Alljoyn设备发送的注册请求;
为所述Alljoyn设备随机生成标识码,设置所述标识码的有效期,并分配资源;
向所述Alljoyn设备返回所述标识码;
接收所述Alljoyn设备发送的携带标识码的心跳包;
在所述心跳包的标识码对应的有效期内,为所述Alljoyn设备提供对应的资源。
另一方面,本发明实施例提供了一种Alljoyn网关,其包括:
接收单元,用于接收Alljoyn设备发送的注册请求;
处理单元,用于为所述Alljoyn设备随机生成标识码,设置所述标识码的有效期,并分配资源;
发送单元,用于向所述Alljoyn设备返回所述标识码;
所述接收单元,还用于接收所述Alljoyn设备发送的携带标识码的心跳包;
所述处理单元,还用于在所述心跳包的标识码对应的有效期内,为所述Alljoyn设备提供对应的资源。
上述技术方案具有如下有益效果在于:
上述技术方案通过Alljoyn网关对所有向其注册的Alljoyn设备分配随机的唯一设备标识码,并对设备标识码的有效性设置过期时间,使得标识码在有效期内,设备的注册信息不会在网关端删除,而是只做一个下线标记,这样当该Alljoyn设备再连接到Alljoyn网关时就不用再注册,网关端也减少了自己相关资源的申请和释放,从而提高的资源利用率。另外,通过随机标识码生成并对随机标识码设定有效期,也保证了设备间通信的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中Alljoyn点对点通信框架的示意图;
图2为本发明实施例的提高Alljoyn网关的资源利用率的方法的一种流程图;
图3为本发明实施例的Alljoyn设备与Alljoyn网关之间的注册及资源处理的流程图;
图4为本发明实施例的Alljoyn网关的一种逻辑结构示意图;
图5为本发明实施例的Alljoyn网关的另一种逻辑结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明针对网关端频繁申请、释放资源,导致产生内存碎片造成资源利用率低的问题,提出了一种提高Alljoyn网关的资源利用率的方法和应用该方法的Alljoyn网关(Gateway),以减少设备向网关注册,并提高Alljoyn网关的资源利用率。
图2是本发明实施例的提高Alljoyn网关的资源利用率的方法的一种流程图。该方法的执行主体是基于Alljoyn的智能家居服务(Smart Home Service)的网关设备。如图2所示,该方法100包括如下步骤:
S102:Alljoyn网关接收Alljoyn设备发送的注册请求;
S104:Alljoyn网关为该Alljoyn设备随机生成标识码,设置该标识码的有效期,并分配资源;
S106:Alljoyn网关向该Alljoyn设备返回该标识码;
S108:Alljoyn网关接收该Alljoyn设备发送的携带标识码的心跳包;
S110:在所述心跳包的标识码对应的有效期内,为所述Alljoyn设备提供对应的资源。
具体地,步骤S110可以包括如下处理步骤:Alljoyn网关根据注册生成的标识码和有效期,验证携带的标识码的有效性;如果携带的标识码有效,则Alljoyn网关重置注册生成的标识码的有效期,并使该Alljoyn设备对应的资源处于激活状态;如果在心跳包的发送周期到达时没有收到心跳包,则Alljoyn网关将该Alljoyn设备对应的资源保留至该标识码的有效期届满。
进一步地,如果携带的标识码无效,向该Alljoyn设备返回失败消息,以指示该Alljoyn设备重新注册。
进一步地,如果在心跳包的发送周期到达时没有收到心跳包,则将该Alljoyn设备对应的资源标识为掉线状态,该掉线状态可以激活。
图2所示方法还可以包括如下步骤:如果在心跳包的发送周期到达时没有收到心跳包,则在注册生成的标识码的有效期内,不删除该Alljoyn设备的注册信息,并增加下线标记。
进一步地,在步骤S104中为Alljoyn设备随机生成标识码之前,还包括如下步骤:检查该Alljoyn设备的有效性,确认该Alljoyn设备有效。
采用本发明实施例的方法,当设备向网关进行注册时,网关会生成一个随机的设备标识码,并对生成的标识码设置有效期,将标识码返回给注册设备。当设备向网关发送带有标识码的心跳包时,网关根据所携带的标识码来检查标识码的有效性,如果有效则重置标识码过期时间并激活对应的设备资源,否则给设备返回ER_FAIL消息。本发明实施例的方法在没有及时收到心跳包时不会释放资源,也不会删除设备的注册信息,而是保留资源至标识码的有效期届满,同时保存该设备的注册信息,这样当设备在断电、网络不通或设备重启后,只要是在标识码的有效期内,则无需再次注册,减少了注册次数,同时网关减少了申请、释放资源的次数,有利于减少资源碎片,提高资源的利用率。
以下通过Alljoyn设备与Alljoyn网关之间的交互流程图来更加详细地描述本发明实施例的方法。
图3是本发明实施例中的Alljoyn设备与Alljoyn网关之间的注册及资源处理的流程图。如图3所示,这种减少注册的方法及提高资源利用率的方法具体可包括如下步骤:
步骤S201:设备向网关正常注册其服务、接口等。
步骤S202:网关检查设备有效性,如果有效则生成随机设备标识码,设置标识码过期时间。
步骤S203:网关向设备返回标识码。
步骤S204:设备通过定时向网关发送包含设备的标识码的心跳包来表明其在线状态。
步骤S205:网关检查标识码有效性。如果有效,则重置标识码过期时间并激活对应的设备资源。
步骤S206:如果标识码有效,返回ER_OK,否则返回ER_FAIL,设备收到ER_FAIL后执行步骤S201。
步骤S207:当设备由于重启或断电等原因没有及时向网关发送心跳数据时,网关会把该设备的相关资源的标识为掉线状态,相关资源会保留至对应对应标识码过期。
步骤S208:如果设备上线后首先会用之前保存的标识码向网关发心跳包。
步骤S209:步骤S209的过程同步骤S205。
步骤S210:结果返回,同步骤S206。
图4为本发明实施例的Alljoyn网关300的一种逻辑结构示意图。如图4所示,该Alljoyn网关包括:
接收单元310,用于接收Alljoyn设备发送的注册请求;
处理单元320,用于为该Alljoyn设备随机生成标识码,设置该标识码的有效期,并分配资源;
发送单元330,用于向该Alljoyn设备返回该标识码;
该接收单元310,还用于接收该Alljoyn设备发送的携带标识码的心跳包;
该处理单元320,还用于在该心跳包的标识码对应的有效期内,为上述Alljoyn设备提供对应的资源。
进一步地,该发送单元310,还用于如果携带的标识码无效,向该Alljoyn设备返回失败消息,以指示该Alljoyn设备重新注册。如果携带的标识码有效,则返回成功消息。
进一步地,该资源控制单元320,还可用于如果在心跳包的发送周期到达时没有收到心跳包,则将该Alljoyn设备对应的资源标识为掉线状态。
图5为本发明实施例的Alljoyn网关的另一种逻辑结构示意图。如图5所示,在该Alljoyn网关中,该处理单元320具体可以包括如下模块:
标识码验证模块321,用于根据注册生成的标识码和有效期,验证携带的标识码的有效性;
有效期重置模块322,用于如果携带的标识码有效,则重置注册生成的标识码的有效期;
资源激活模块323,用于如果携带的标识码有效,则使该Alljoyn设备对应的资源处于激活状态;
资源保留模块324,用于如果在心跳包的发送周期到达时时没有收到心跳包,则将该Alljoyn设备对应的资源保留至该标识码的有效期届满。
进一步地,该处理单元320还可以包括:状态标识模块325,用于如果在心跳包的发送周期到达时没有收到心跳包,则将该Alljoyn设备对应的资源标识为掉线状态,该掉线状态可以激活。
较佳地,该Alljoyn网关还可以包括:注册信息管理单元340,用于如果在心跳包的发送周期到达时没有收到心跳包,则在注册生成的标识码的有效期内,不删除该Alljoyn设备的注册信息,并增加下线标记。
进一步地,该Alljoyn网关还可包括:检查单元350,用于检查该Alljoyn设备的有效性,确认该Alljoyn设备有效。
该Alljoyn网关的具体工作过程请参阅前述的方法实施例,在此不再赘述。
本发明装置实施例的技术方案的优点在于:
该Alljoyn网关对所有向其注册的设备分配随机的唯一设备标识码,并对设备标识码的有效性设置过期时间,标识码在有效期内,设备的注册信息不会在网关端删除,而是只做一个下线标记,这样设备再连接到网关进就不用再注册,网关端也减少了自己相关资源的申请和释放,提高的资源利用率。另外,Alljoyn网关通过随机标识码生成并对随机标识码设定有效期,保证了设备间通信的安全性。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。