一种瘦客户端接入标准客户端的方法及装置
技术领域
本发明涉及物联网技术领域,特别是涉及一种瘦客户端接入标准客户端的方法及装置。
背景技术
Alljoyn是一种基于C/S(Client/Server,客户机/服务器)架构的设备之间点对点通信的框架。Alljoyn由Bus Daemon(总线守护进程或总线服务)和终端节点组成。这里的终端节点可以理解成为一个应用程序,应用程序需要注册到Bus Daemon上,Bus Daemon负责终端节点之间的消息路由和服务发现等功能。如图1所示,有三个设备,设备1、2和3。每个设备都运行着一个AlljoynBus Daemon,在设备1上的Bus Daemon上连接(或称为注册)着两个应用程序,设备2上的Bus Daemon连接着一个应用程序,设备3的Bus Daemon上连接着两个应用程序。当设备启动后,3个设备的Bus Daemon将会进行广播,将连接在自己上的应用程序的相关信息广播出去。
通常来说,终端节点与Bus Daemon运行在同一个设备中。终端节点从应用程序的角度上来看可以是控制端,也可以是服务端,或者同时支持控制和服务。这里的控制端是指具有控制功能的应用程序组件,而服务端是指为控制端提供服务的应用程序组件。举例来说,设备1为手机,上面运行着Appx。Appx为控制端,可以完成对电视进行控制。设备2为电视,上面运行着Appz。Appz为服务,为客户端提供了控制电视的接口,这样客户端就可以调用Appz提供的服务队电视进行控制。
Alljoyn的瘦客户端是指,由于设备能力的限制(如内存限制、处理能力限制等)而无法运行Alljoyn Bus daemon,因此Alljoyn瘦客户端要想使用Alljoyn的服务或接入Alljoyn网络,就必须连接到一个有Alljoyn Bus daemon的设备上(Router)。
Alljoyn的标准客户端也称为Alljoyn Router。Alljoyn标准客户端具有Alljoyn Bus daemon功能,能够完成路由、服务发现等功能。同时Alljoyn标准客户端也能够为Alljoyn瘦客户端提供连接的服务。
举例来说,家里的灯泡由于处理能力有限,运行着Alljoyn瘦客户端程序,而家里的智能电视则运行着Alljoyn标准客户端(Alljoyn Router),如果灯泡要接入Alljoyn网络,那么就要连接到Alljoyn标准客户端上,作为Alljoyn Busdaemon上的一个终端节点。
Bus Daemon负责终端节点之间的消息路由,服务发现等功能。终端节点是指基于Alljoyn的应用程序,启动后需要连接到Bus Daemon上,终端节点如果提供服务,则向Bus Daemon注册一个服务名称,由Bus Daemon广播出去。如果作为控制端,那么可以通过服务名称来查找服务,并通过远程调用来完成指定功能。
Alljoyn点对点通信是通过远程调用(RPC)来完成的,因此通信的发起方需要事先获取接收方的服务和接口,然后产生代理对象从而完成远程调用。通信的发起方可以通过查询服务来获取接收方的服务和接口。
Alljoyn瘦客户端使用TCP连接到Alljoyn标准客户端的Bus Daemon,通过标准客户端设备的Bus Daemon接入总线网络。
瘦客户端在网络中寻找能够连接的标准客户端的Bus Daemon名字(BusDaemon名字采用域名反转的形式,如org.haier.busnode)。瘦客户端寻找时,满足部分匹配的Bus Daemon(如org.haier.busnode.gateway.device001)会把自己的地址和接口等信息返回给瘦客户端。瘦客户端便通过TCP连接到该BusDaemon上。
具体步骤如下:
步骤1:标准客户端广播自己的Bus daemon名称,瘦客户端在网络中寻找目标的Bus daemon,找到后便可连接该Bus daemon。Bus daemon名称形如org.alljoyn.BusNode。寻找时可采用前缀匹配,即查找org.alljoyn.BusNode可匹配org.alljoyn.BusNode.gateway,也可匹配org.alljoyn.BusNode.phone。
步骤2:如果在网络内同时有多个Bus daemon符合瘦客户端的寻找条件,则瘦客户端连接最先找到的一个Bus daemon上。
步骤3:瘦客户端与标准客户端的Bus daemon进行鉴权。
步骤4:鉴权通过后,则表示连接成功。
现有的Alljoyn技术中,瘦客户端连接标准客户端的Bus Daemon具有一定的随机性。当最先连接的标准客户端设备掉线后,瘦客户端相应地失去了连接,则需要重新寻找能够连接的标准客户端。若连接的标准客户端设备频繁掉线,则瘦客户端的网络结构需要相应地不断调整,浪费连接资源,影响交互效果。
发明内容
本发明要解决的技术问题是提供一种瘦客户端接入标准客户端的方法及装置,用以解决现有技术瘦客户端通过标准客户端连接网络不稳定的问题。
为解决上述技术问题,一方面,本发明提供一种瘦客户端接入标准客户端的方法,包括:
瘦客户端连接标准客户端时,至少选择两个标准客户端作为连接对象;
所述瘦客户端在所述连接对象中选择一个标准客户端作为主连接,并进行连接;并从所述连接对象中剩余的标准客户端中至少选择部分作为备选连接;
所述瘦客户端与作为主连接的标准客户端连接失败后,选择一个备选连接的标准客户端进行连接。
进一步,所述瘦客户端与作为主连接的标准客户端连接失败后,选择一个备选连接的标准客户端进行连接,且将连接类型标识为主连接。
进一步,在将所述备选连接修改为主连接之后,所述连接对象中没有备选连接的标准客户端时,选择新的标准客户端作为备选连接的标准客户端。
所述瘦客户端与作为主连接的标准客户端进行连接,具体包括:
所述瘦客户端向作为主连接的标准客户端发送连接请求,其中该连接请求中标识该连接为主连接;
所述瘦客户端向作为主连接的标准客户端发送鉴权请求,经过鉴权后完成与作为主连接的标准客户端的连接;其中,所述鉴权请求需要在作为主连接的标准客户端设置的鉴权计时器到达之前发送给作为主连接的标准客户端。
进一步,所述瘦客户端从所述连接对象中剩余的标准客户端中至少选择部分作为备选连接,具体包括:
所述瘦客户端分别向作为备选连接的标准客户端发送连接请求,其中该连接请求中标识该连接为备选连接;作为备选连接的标准客户端收到所述连接请求后,判断连接类型为备选连接,那么作为备选连接的标准客户端移除鉴权计时器,并保存所述瘦客户端的信息。
进一步,瘦客户端连接标准客户端时,向网络内所有的标准客户端发送广播请求,并接收各个标准客户端反馈的响应消息;其中,响应消息至少包括以下信息中的一项:
1)、该标准客户端当前连接的瘦客户端数量;
2)、该标准客户端采用的电源类型;
3)、该标准客户端采用移动电源供电时的剩余电量。
进一步,当网络中电源类型为固定电源的标准客户端数量大于等于两个时,至少选择两个电源类型为固定电源的标准客户端作为连接对象。
进一步,选择电源类型为固定电源的标准客户端作为连接对象时,根据标准客户端当前连接的瘦客户端数量选择主连接和备选连接。
进一步,当网络中只有一个电源类型为固定电源的标准客户端时,选择该标准客户端作为连接对象;同时,至少再选择一个电源类型为移动电源的标准客户端作为连接对象。
进一步,当网络中的标准客户端电源类型全部为移动电源时,至少选择两个电源类型为移动电源的标准客户端作为连接对象。
进一步,选择电源类型为移动电源的标准客户端作为连接对象时,按照电量由高到低的顺序选择主连接和备选连接。
进一步,选择电源类型为移动电源的标准客户端作为连接对象时,根据标准客户端当前连接的瘦客户端数量选择主连接和备选连接。
另一方面,本发明还提供一种瘦客户端接入标准客户端的装置,包括:
选择模块,用于当瘦客户端连接标准客户端时,至少选择两个标准客户端作为连接对象;
连接模块,用于在所述连接对象中选择一个标准客户端作为主连接,并进行连接;并从所述连接对象中剩余的标准客户端中至少选择部分作为备选连接;以及用于当所述瘦客户端与作为主连接的标准客户端连接失败时,选择一个备选连接的标准客户端进行连接。
进一步,所述连接模块还用于:
当所述瘦客户端与作为主连接的标准客户端连接失败后,选择一个备选连接的标准客户端进行连接,且将连接类型标识为主连接。
进一步,在将所述备选连接修改为主连接之后,所述连接对象中没有备选连接的标准客户端时,选择新的标准客户端作为备选连接的标准客户端。
所述连接模块还用于:
所述瘦客户端向作为主连接的标准客户端发送连接请求,其中该连接请求中标识该连接为主连接;
所述瘦客户端向作为主连接的标准客户端发送鉴权请求,经过鉴权后完成与作为主连接的标准客户端的连接;其中,所述鉴权请求需要在作为主连接的标准客户端设置的鉴权计时器到达之前发送给作为主连接的标准客户端。
进一步,所述连接模块还用于:
所述瘦客户端分别向作为备选连接的标准客户端发送连接请求,其中该连接请求中标识该连接为备选连接;作为备选连接的标准客户端收到所述连接请求后,判断连接类型为备选连接,那么作为备选连接的标准客户端移除鉴权计时器,并保存所述瘦客户端的信息。
进一步,所述选择模块还用于:
瘦客户端连接标准客户端时,向网络内所有的标准客户端发送广播请求,并接收各个标准客户端反馈的响应消息;其中,响应消息至少包括以下信息中的一项:
1)、该标准客户端当前连接的瘦客户端数量;
2)、该标准客户端采用的电源类型;
3)、该标准客户端采用移动电源供电时的剩余电量。
进一步,所述选择模块还用于:
当网络中电源类型为固定电源的标准客户端数量大于等于两个时,至少选择两个电源类型为固定电源的标准客户端作为连接对象。
进一步,所述选择模块还用于:
选择电源类型为固定电源的标准客户端作为连接对象时,根据标准客户端当前连接的瘦客户端数量选择主连接和备选连接。
进一步,所述选择模块还用于:
当网络中只有一个电源类型为固定电源的标准客户端时,选择该标准客户端作为连接对象;同时,至少再选择一个电源类型为移动电源的标准客户端作为连接对象。
进一步,所述选择模块还用于:
当网络中的标准客户端电源类型全部为移动电源时,至少选择两个电源类型为移动电源的标准客户端作为连接对象。
进一步,所述选择模块还用于:
选择电源类型为移动电源的标准客户端作为连接对象时,按照电量由高到低的顺序选择主连接和备选连接。
进一步,所述选择模块还用于:
选择电源类型为移动电源的标准客户端作为连接对象时,根据标准客户端当前连接的瘦客户端数量选择主连接和备选连接。
本发明有益效果如下:
本发明通过选择两个标准客户端作为连接对象,一个为主连接,一个为备选连接,当与主连接的标准客户端连接失败后,可以快速连接备选连接的标准客户端,保证了瘦客户端能够快速的接入网络,节约重新连接的时间,提高了效率。
附图说明
图1是现有的Alljoyn架构示意图;
图2是本发明实施例中一种瘦客户端接入标准客户端的方法的流程图;
图3是本发明具体实施例中瘦客户端接入标准客户端的方法的流程图;
图4是本发明实施例中一种瘦客户端接入标准客户端的装置的结构示意图。
具体实施方式
以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
如图2所示,本发明实施例涉及一种瘦客户端接入标准客户端的方法,包括:
步骤S101,瘦客户端连接标准客户端时,至少选择两个标准客户端作为连接对象;
本步骤中,瘦客户端连接标准客户端时,向网络内所有的标准客户端发送广播请求,并接收各个标准客户端反馈的响应消息;其中,响应消息至少包括以下信息中的一项:
1)、该标准客户端当前连接的瘦客户端数量;
2)、该标准客户端采用的电源类型;
3)、该标准客户端采用移动电源供电时的剩余电量。
具体选择连接对象时,参照如下原则:
1)、当选择对象中存在电源类型为固定电源的标准客户端,则选择固定电源的标准客户端;当存在多个固定电源的标准客户端时,选择当时连接瘦客户端数量最少的标准客户端;当然,也可以选择当时连接瘦客户端数量最多的标准客户端。这是因为判断的准则不一样,举例来说,瘦客户端认为接入数量多的标准客户端比较稳定,因此选择连接瘦客户端数量最多的标准客户端连接;也可以从负载均衡的角度来考虑,这样接入瘦客户端数量最少的是优选的。
2)、当需要选择电源类型为移动电源的标准客户端作为连接对象时,选择移动电源剩余电量最高的标准客户端作为连接对象;当存在多个移动电源剩余电量相同的标准客户端时,根据当时连接的瘦客户端数量选择标准客户端进行连接;
3)、如果被选择的所有标准客户端的参数都相同,则按照预先设定的顺序进行选择,例如,收到反馈消息的顺序,标准客户端的域名排列顺序或者地址排列顺序等。
步骤S102,瘦客户端在连接对象中选择一个标准客户端作为主连接,并进行连接;并在连接对象中剩余的标准客户端中至少选择部分标准客户端作为备选连接。
步骤S103,所述瘦客户端与作为主连接的标准客户端连接失败后,选择备选连接的标准客户端进行连接。
本步骤中,瘦客户端与作为主连接的标准客户端连接失败后,选择备选连接的标准客户端进行连接,且将连接类型标识为主连接;然后选择新的标准客户端作为备选连接的标准客户端。其中,瘦客户端与作为主连接的标准客户端连接失败,是指作为主连接的标准客户端由于掉电、关机等原因,造成与其连接的瘦客户端与其(标准客户端)之间无法通信,进而造成瘦客户端无法通过标准客户端连接网络。
下面给出一个具体实例,以说明本发明的技术方案。如图3所示,瘦客户端通过标准客户端连接到网络的步骤如下:
步骤1:Alljoyn的瘦客户端发送广播请求,来获取Alljoyn网络中的AlljoynBus Daemon信息。
步骤2:Alljoyn标准客户端的Bus Daemon1、2、3收到后,分别返回各自的响应消息,其中除了包含Alljoyn协议规定的必要内容外,还扩展了以下信息:
1、瘦客户端负载数:表示该Bus Daemon上目前连接了多少个瘦客户端;
2、电源类型:表示该Bus Daemon通过移动电源供电,还是固定电源供电;
3、电量:该Bus Daemon采用移动电源时,移动电源的剩余电量是多少。
以上参数用于瘦客户端选择Bus Daemon时使用。
步骤3:瘦客户端收到Bus Daemon1、2、3的响应消息后,根据瘦客户端负载数、电源类型以及剩余电量来选择两个Bus daemon为连接对象。这里对选择方法不做强制要求,本技术方案列举一种选择方式如下:
首先选择固定电源的标准客户端;如果标准客户端都使用固定电源,那么根据标准客户端负载数多少进行选择,选择负载数最少的两个标准客户端为连接对象。
如果标准客户端采用移动电源,则选择移动电源剩余电量最高的两个标准客户端。如果移动电源剩余电量相同,那么根据负载数多少进行选择,选择负载数最少的两个标准客户端为连接对象。
如果待选择的标准客户端中,只有一个固定电源的标准客户端,则选择其为连接对象;并且在移动电源的标准客户端中,选择移动电源剩余电量最高的一个标准客户端作为连接对象;如果移动电源剩余电量相同,那么根据负载数多少进行选择,选择负载数最少的一个标准客户端为连接对象。
如果待选择的标准客户端所有参数一样,则按照预先设定的规则进行选择,例如,按照瘦客户端收到响应消息的顺序进行选择。
步骤4:瘦客户端根据选择规则,选择了Bus Daemon2和Bus Daemon3作为连接对象;其中,Bus Daemon2为主连接,而Bus Daemon3作为备选连接。
步骤5:瘦客户端向Bus Daemon2发送连接请求,其中标识该连接为主连接。
步骤6:Bus Daemon2收到该请求后,读取连接类型为主连接,则设置鉴权计时器(鉴权计时器用于表示等待瘦客户端发送鉴权请求的最长时间,如果该时间内,瘦客户端未发送鉴权请求,那么将会不再接收该瘦客户端的鉴权请求,瘦客户端需要重新发送连接请求)。
步骤7:瘦客户端向Bus Daemon2发送鉴权请求,经过鉴权后完成与BusDaemon2的连接。
步骤8:瘦客户端向Bus Daemon3发送连接请求,其中标识该连接为备选连接。
步骤9:当Bus Daemon3收到该请求后,判断连接类型为备选连接,那么该Bus Daemon3移除鉴权计时器,并保存当前的瘦客户端的相关信息。
步骤10:当瘦客户端与Bus daemon2通信终端后,例如Bus daemon2掉线(如设备关机),瘦客户将会向Bus Daemon3发送鉴权请求。
步骤11:Bus Daemon3收到该鉴权请求后,鉴权通过后,修改该连接类型为主连接,完成瘦客户端的接入。
步骤12:瘦客户端向Bus Daemon1发送连接请求,并标识该连接类型为备选连接。Bus daemon1执行与步骤8相同的步骤,成为瘦客户端的备选连接对象。
如图4所示,本发明实施例还涉及一种实现上述方法的瘦客户端接入标准客户端的装置,包括:
选择模块,用于当瘦客户端连接标准客户端时,至少选择两个标准客户端作为连接对象;
连接模块,用于在连接对象中选择一个标准客户端作为主连接,并进行连接;并从所述连接对象中剩余的标准客户端中至少选择部分作为备选连接;以及用于当所述瘦客户端与作为主连接的标准客户端连接失败时,选择一个备选连接的标准客户端进行连接。
连接模块还用于:
当所述瘦客户端与作为主连接的标准客户端连接失败后,选择备选连接的标准客户端进行连接,且将连接类型标识为主连接;在将所述备选连接修改为主连接之后,所述连接对象中没有备选连接的标准客户端时,选择新的标准客户端作为备选连接的标准客户端。
所述瘦客户端向作为主连接的标准客户端发送连接请求,其中该连接请求中标识该连接为主连接;
所述瘦客户端向作为主连接的标准客户端发送鉴权请求,经过鉴权后完成与作为主连接的标准客户端的连接;其中,所述鉴权请求需要在作为主连接的标准客户端设置的鉴权计时器到达之前发送给作为主连接的标准客户端。
所述瘦客户端向作为备选连接的标准客户端发送连接请求,其中该连接请求中标识该连接为备选连接;作为备选连接的标准客户端收到所述连接请求后,断连接类型为备选连接,那么作为备选连接的标准客户端移除鉴权计时器,并保存所述瘦客户端的信息。
选择模块还用于:
瘦客户端连接标准客户端时,向网络内所有的标准客户端发送广播请求,并接收各个标准客户端反馈的响应消息;其中,响应消息至少包括以下信息中的一项:
1)、该标准客户端当前连接的瘦客户端数量;
2)、该标准客户端采用的电源类型;
3)、该标准客户端采用移动电源供电时的剩余电量。
当网络中电源类型为固定电源的标准客户端数量大于等于两个时,至少选择两个电源类型为固定电源的标准客户端作为连接对象。
选择电源类型为固定电源的标准客户端作为连接对象时,根据标准客户端当前连接的瘦客户端数量选择主连接和备选连接。
当网络中只有一个电源类型为固定电源的标准客户端时,选择该标准客户端作为连接对象;同时,至少再选择一个电源类型为移动电源的标准客户端作为连接对象。
当网络中的标准客户端电源类型全部为移动电源时,至少选择两个电源类型为移动电源的标准客户端作为连接对象。
选择电源类型为移动电源的标准客户端作为连接对象时,按照电量由高到低的顺序选择主连接和备选连接。
选择电源类型为移动电源的标准客户端作为连接对象时,根据标准客户端当前连接的瘦客户端数量选择主连接和备选连接。
由上述实施例可以看出,本发明通过选择两个标准客户端作为连接对象,一个为主连接,一个为备选连接,当与主连接的标准客户端连接失败后,可以快速连接备选连接的标准客户端,保证了瘦客户端能够快速的接入网络,节约重新连接的时间,提高了效率。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。