远程管理私有网络内终端设备的方法
技术领域
本发明涉及通信技术领域,具体涉及一种远程管理私有网络内终端设备的方法,具有可编程且可扩展的优点。
背景技术
随着移动互联网、物联网的发展,不断涌现出很多智能终端设备,如智能路由器、智能家电等,不断增加的智能终端构件了一个庞大的分布式网络或平台,对智能终端的管理和控制是首要问题,由于这些终端一般都在私有网络内,例如家里、公司、商铺、交通工具等等,无法像管理服务器一样进行远程登录。
现有的技术方案中解决以上私有网络设备管理问题的方法有如下几种:
(1)构建vpn(Virtual Private Network虚拟专用网)网络,即私有网络设备中内置vpn client软件,与互联网服务端的vpn server建立一个vpn私有网络,这样通过vpnserver可以远程登录私有网络内的终端进行管理。vpn技术方案导致设备终端上网需走vpn,会导致vpn服务器负载高,而且当设备终端为路由器设备时,上网走vpn可能会导致网速变慢。同时,凡是使用vpn的路由器设备,其用户上网的出口IP就全部变为了vpn服务器的出口IP,为了满足相关法规的溯源要求,由于需要对vpn网络进行安全维护管理,增加了额外的成本。
(2)私有网络内的终端(即Client,客户端)与互联网服务端(即Server,服务器)建立长连接,所谓长连接是Client先向Server端发起建立TCP连接,然后双方保持连接不释放(为了保持连接,需要双方不停的发链路检测包),Server端在需要时可以发送配置文件(如XML格式配置文件)给Client进行管理。
(3)私有网络内的终端(即Client)向互联网服务端(即Server)周期性的发送心跳数据包,若有管理需求Server在心跳数据包的响应数据包中将配置文件(如XML格式配置文件)发送给Client,交互协议可使用TCP或UDP,采用TCP时实际上是定时的短链接交互,所谓短连接心跳数据包即双方建立链接交互过一次后当前链接会关闭,过一定时间将再次建立链接。
上述现有技术(2)和(3)中的方式,存在的问题是扩展性和灵活性不够。由于Client和Server端之间通过类似XML格式的文件进行任务配置的传送,那么Client端必然需要有对应XML格式的解析和执行程序。
这些解析和执行程序,只能根据初始的业务需求进行设置,随着业务的变化,相应的远端Client需要修改解析和执行程序来适应需求的变化。Client端的程序修改完成后,需要在成千上万台Client分布式设备上完成升级。业务变动的频率越高,导致配置解析和执行程序的变化越频繁,升级也越频繁,从而会增加系统发生不稳定性的概率,增大升级的工作量。
发明内容
针对现有技术存在的上述缺陷,本发明要解决的技术问题是,现有技术对私有网络内终端设备的管理缺少扩展性和灵活性的问题。
为解决上述技术问题,本发明提供了一种远程管理私有网络内终端设备的方法,其特征在于,包括如下步骤,S1:私有网络内的设备周期性向云端的服务器发TCP心跳请求包,所述心跳请求包包括回调函数名[Login]和设备唯一标识;S2:服务器接收到心跳请求包后调用函数[Login]:服务器根据设备唯一标识判断该设备是否已经在服务器注册,若已注册,记录心跳时间;若未注册,则执行注册;S3:服务器判断是否有与此设备相关的任务,若有,则读取任务并下发,并执行步骤S4,否则,云端处理结束;S4:服务器向该设备发送心跳响应包,该心跳响应包包括任务的程序代码和要求设备发送反馈包给服务器的任务;S5:设备收到心跳响应包后,执行任务程序代码;S6:设备向服务器发送反馈包,此反馈包包含云端回调函数名[callback]与所述任务程序代码的执行结果;S7:服务器接收反馈包,执行回调函数[callback]。
作为优选,步骤S7中的所述任务程序代码功能为,先在设备上执行自定义的逻辑,然后将执行结果上报云端的服务器。
作为优选,步骤S7中的回调函数用于保存执行结果。
作为优选,回调函数还根据执行结果触发进一步的逻辑任务。
作为优选,步骤S4中的心跳响应包中还包含反馈包中的回调函数名。
作为优选,所述设备与服务器之间的交互信息均采用SSL加密后传输。
本发明具有如下有益效果,本发明的任务的形式为脚本语言型可编程型,客户端的设备只需部署获取任务的轻量级程序,任务本身即可调用执行,无需开发解析和执行任务的程序,任务变化仅需要在云端的服务器上修改,大大降低了对客户端设备的维护成本。
附图说明
图1为本发明的一个实施例的云端的服务器与私有网络内的设备的交互流程示意图。
图2为本发明的一个实施例执行的流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细描述,但不作为对本发明的限定。
如图1和图2所示,本实施例的远程管理私有网络内终端设备的方法,包括如下步骤:
S1:私有网络内的设备周期性地向云端的服务器发送TCP(Transmission ControlProtocol传输控制协议)心跳请求包,该心跳请求包携带信息包括回调函数名[Login]和设备唯一标识(ID),函数名[Login]为自定义名称,只要云端的服务器有对应的回调函数即可。也就是说,回调函数名[Login]是可根据实际情况自定义,只是要求服务器有对应的回调函数。
S2:云端的服务器,调用函数[Login],接收到心跳请求包后根据设备ID判断该设备是否已经在云端注册,服务器根据设备唯一标识判断该设备是否已经在服务器注册,若已注册,记录心跳时间(用于标识设备在线状态),并执行步骤S3;若未注册,则执行注册;
S3:服务器判断是否有与此设备相关的任务,若有,则读取任务并下发,并执行步骤S4,否则,云端的处理结束。
S4:服务器向设备发送心跳响应包,该响应包至少包括任务的程序代码,在此实施例中,该程序代码的主要逻辑功能:先在设备上执行自定义的逻辑,然后将执行结果上报云端的服务器,即向云端的服务器发反馈包。所谓的“自定义的逻辑”即服务器要求设备执行的程序,根据实际需求编写。
S5:设备收到心跳响应包后,执行任务程序代码;
S6:设备执行完毕后,向服务器发送反馈包,此反馈包包含云端回调函数名[callback]与所述任务程序代码的执行结果;
S7:服务器接收反馈包,执行回调函数[callback]。此回调函数支持扩展,云端可随时增加一个回调函数,同时作为云端下发程序任务里的回调函数名,这样可实现设备端与云端的服务器的灵活交互。此回调函数可作为设备端所要执行的下一个任务。故,设备端不需要随着业务变化而升级,在业务变化时,仅需要修改云端下发的管理任务即可实现,也就是修改管理任务的程序内容,在任务中增加实现新任务的回调函数即可。
其中的任务的程序代码均采取函数形式,本方法中的任务均为可编程型的脚本语言型。
为了信息传输安全,本实施例中,私有网络内的设备与云端的服务器交互信息均采用SSL(Secure Sockets Layer安全套接层)加密后传输。
作为优选方案,步骤S4中的所述任务程序代码功能为,先在设备上执行自定义的逻辑,然后将执行结果上报云端的服务器。步骤S7中回调函数可用于保存执行结果。为了能够实现可扩展,此回调函数可根据执行结果触发进一步的逻辑任务,如下发一个新任务等操作,此回调函数的名称和内容可根据实际情形自定义。
其中的反馈包仍含有服务器回调函数名[callback],函数名[callback]的名称是在服务器下发的任务写好的,并且服务器需要预先有实现[callback]的回调函数。
从上述流程可以看出,与现有方案相比,本发明提出了一种更灵活的远程管理设备的方法,最大的不同点是任务的形式非配置型,而是脚本语言型可编程型。现有方案中任务即配置型,而本方案中任务为可执行的编程语言代码。边缘的客户端的设备只需部署获取(或接受)任务的轻量级程序,获取任务后任务本身即可调用执行,无需开发解析和执行任务的程序,任务变化仅需要在云端的服务器上修改,大大降低了对客户端设备的维护成本,是一种客户端支持服务器端编程的新型管理方式。同时,本方案中服务器端也支持客户端的回调,且回调的接口在云端是可编程和可扩展的。
本发明关键点在于使用TCP心跳建立云端可下发任务的通道,云端将任意管理任务以加密程序的形式发送到设备端,促使设备端执行期望的程序,设备端支持云端的任意程序逻辑,云端的服务器可灵活地控制设备端的行为,并且双方建立一种回调机制,云端可以任意扩展回调函数来接收和处理。
本发明的方法可应用各类型的终端设备,包括不限于智能路由器、智能家电等设置于私有网络内并与云端的服务器联网的终端,通过与服务器的交互,由服务器对其控制、管理等活动。
当然,以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。