[0031] 下面结合附图和具体的实施例对本发明作进一步的说明,但是不作为本发明的限定。
[0032] 采用TCP长连接来进行远端管理,导致远端管理的成本极高,如图1所示,当远端设备对终端设备发起控制指令(即远端访问管理),首先连接到服务云台(Portal),通过该Portal可实现服务器的负载均衡,之后Portal根据控制指令请求TCP延迟(TCP Relay)服务器进行业务配置,TCP Relay服务器根据该控制指令通过TCP长连接完成对终端设备的业务配置,并根据配置结果更新数据库;由于服务器和终端之间使用长连接来实现远端管理,因此对服务器的数量要求很大,从而导致成本开销和服务的终端数成线性增长,针对上述问题,本发明提出了一种采用UDP短连接的方式完成远端设备对终端设备进行管理的系统及方法,其中,长连接是指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包;短连接是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。
[0033] 如图2所示,本实施例涉及一种采用远端设备对终端设备进行管理的系统,包括:远端设备、服务云台、终端设备、STUN服务器以及终端设备;
[0034] 远端设备用于发送一控制指令(对终端设备的控制指令)至服务云台;服务云台接收该控制指令,并根据该控制指令生成一请求消息(该请求消息即请求执行该控制指令的消息,且该请求消息中包含需要执行该控制指令的终端设备的ID)并将该请求消息发送至STUN服务器,STUN服务器接收该请求消息并将该请求消息发送至终端设备,该终端设备接收并响应该请求消息至服务云台(即该终端设备接收该请求消息,并在完成对该请求消息的确认后,向服务云台请求下方控制指令);其中,服务云台根据终端设备的响应通过一中间业务件将控制指令下发至终端设备。
[0035] 在本发明的一个优选的实施例中,上述系统还包括一存储有终端设备之前心跳的打洞记录的数据库,该终端设备之前心跳的打洞记录包括终端设备的IP地址和端口,且服务云台与终端设备均通过STUN服务器与数据库连接,以根据请求消息(即根据请求消息中的终端设备的ID)从数据库中调取终端设备的IP地址和端口,并根据该IP地址和端口采用UDP穿越技术将请求消息发送至终端设备(即采用UDP穿越技术通知终端设备有控制指令待执行)。
[0036] 其中,心跳是终端设备定时向STUN服务器发送UDP通知,且该心跳的打洞记录被更新的数据库中。
[0037] 进一步的,中间业务件与该数据库连接,以将控制指令下发的状态更新至数据库中;具体的,中间业务件与该数据库连接,将服务云台根据终端设备的响应通过该中间业务件将控制指令下发至终端设备的状态实时更新到数据库中,以便后续进行查询。
[0038] 在本发明的一个优选的实施例中,终端设备采用TR069协议方式与服务云台通信连接,以响应请求消息至服务云台。
[0039] 在本发明一个优选的实施例中,中间业务件采用TCP协议方式与终端设备通信连接,以将控制指令下发至终端设备。
[0040] 在本发明一个优选的实施例中,该STUN服务器为服务器集群,并可通过服务云台实现该服务器集群的负载均衡(load balance)。
[0041] 优选的,该远端设备可以为PDA(Personal Digital Assistant)或智能手机等移动通信终端设备。
[0042] 优选的,该终端设备可以为光猫、路由器或智能家居等具有嵌入式软件且支持TE069协议的终端设备。
[0043] 此外,若NAT设置不支持UDP,则必须使用TCP长连接实现云端远程管理,因此需要在终端设备初始化和网络状态发生变化时,发起远端管理的选择流程,优选的,按以下顺序进行判断,首先尝试直连服务器,若不成功,则使用UDP连接STUN服务器并确认NAT类型,若UDP连接不成功或NAT类型设置不支持UDP,则使用TCP长连接服务器。
[0044] 如图3所示,本实施例涉及一种采用远端设备对终端设备进行管理的方法,包括如下步骤:
[0045] 步骤一,远端设备发送一控制指令发送至服务云台,该远端设备可以为PDA或智能手机等移动通信终端设备;具体的,远端设备通过其上下载的APP发起对终端设备的远端访问管理,即远端设备向服务云台发送对终端设备的控制指令。
[0046] 步骤二,服务云台接收该控制指令并根据该控制指令生成一请求消息,并通过STUN服务器采用UDP穿越技术将请求消息发送至终端设备。
[0047] 具体的,服务云台接收该控制指令并根据该控制指令生成一请求消息后,将该请求消息发送至STUN服务器,STUN服务器以该请求消息包含的终端设备ID(即该请求消息包括终端设备ID)通过STUN服务器从一存储有终端设备心跳的打洞记录的数据库中调取该终端设备的IP地址和端口,并根据该IP地址和端口采用UDP穿越技术将请求消息发送至终端设备,以通知终端设备有控制指令待执行。
[0048] 步骤三,终端设备响应请求消息至所述服务云台;优选的,终端设备采用TR069协议方式和服务云台通信,以响应请求消息至服务云台。
[0049] 步骤四,服务云台根据终端设备的响应通过中间业务件向所述终端设备下发控制指令,进而完成控制指令的下发,同时将控制指令下发的状态更新到数据库中。
[0050] 在本发明一个优选的实施例中,该STUN服务器为服务器集群,并可通过服务云台实现该服务器集群的负载均衡。
[0051] 在本发明一个优选的实施例中,在步骤S4中,中间业务件采用TCP协议方式与终端设备通信连接,以向终端设备下发控制指令,进而完成控制指令的下发。
[0052] 此外,若NAT设置不支持UDP,则必须使用TCP长连接实现云端远程管理,因此需要在终端设备初始化和网络状态发生变化时,发起远端管理的选择流程,优选的,按以下顺序进行判断,首先尝试直连服务器,若不成功,则使用UDP连接STUN服务器并确认NAT类型,若UDP连接不成功或NAT类型设置不支持UDP,则使用TCP长连接服务器。
[0053] 不难发现,本实施例为与上述采用远端设备对终端设备进行管理的系统的实施例相对应的方法实施例,本实施方式可与上述采用远端设备对终端设备进行管理的系统的实施例互相配合实施。上述采用远端设备对终端设备进行管理的系统的实施例中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述采用远端设备对终端设备进行管理的系统的实施例中。
[0054] 综上,本发明公开了一种采用远端设备对终端设备进行管理的系统及方法,通过采用UDP+TR069替换TCP长连接,实现了远端跨NAT的管理,由于采用UDP在需要的情况下才会进行通信,从而大大减少了终端设备数量增加而对服务器数量的要求,进而减少了终端设备远端管理的成本,虽然随着终端数量的增多,也会需要采用集群方式,但是配合负载均衡的能力,可以使得服务器集群数量大大少于采用TCP长连接的方案,同时,即使STUN服务器宕机,则负载均衡也会是离散形式进行,从而在终端设备心跳时自动进行负载分配,进而有效减小了服务器宕机引起的服务质量下降的问题。
[0055] 本领域技术人员应该理解,本领域技术人员在结合现有技术以及上述实施例可以实现所述变化例,在此不做赘述。这样的变化例并不影响本发明的实质内容,在此不予赘述。
[0056] 以上对本发明的较佳实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。