远程访问的方法及服务器
技术领域
本发明实施例涉及通信技术,尤其涉及一种远程访问的方法及服务器。
背景技术
通用即插即用(Universal Plug and Play,简称UPnP)标准是基于传输控制协议/网间协议(Transmission Control Protocol/Internet Protocol,简称TCP/IP)和针对设备彼此间通讯而制订的标准。该标准定义了基本能源管理代理(Basic Power ManagementProxy,简称BPMPX)功能,BPMPX可以发现本地网络中具有节能功能的UPnP设备。本地网络中的UPnP设备可能处于睡眠状态,当远程网络中的控制点(Control Point,简称CP)访问本地网络中处于睡眠状态的UPnP设备时,首先需要唤醒本地网络中的处于睡眠状态的UPnP设备,具体地唤醒方法为:将BPMPX功能集成在本地网络中的远程访问服务器中,远程网络中的控制点通过远程访问服务器中的BPMPX查询本地网络中的UPnP设备的状态,并通过命令来触发远程访问服务器中的BPMPX唤醒本地网络中处于睡眠状态的UPnP设备。
但是,远程网络中的控制点在访问的过程中需要通过本地网络中的远程访问服务器发现本地网络中处于睡眠状态的UPnP设备,并需要完成唤醒操作,远程网络中的控制点的操作比较复杂。
发明内容
本发明实施例提供一种远程访问的方法及服务器,以解决现有技术中远程网络中控制点的操作复杂的问题。
第一方面,本发明实施例提供一种远程访问的方法,包括:
远程访问代理接收本地网络中设备发送的在线消息,为所述设备建立虚拟设备,且将所述设备的设备描述文件和服务描述文件中的地址信息替换为所述虚拟设备的地址信息;
所述远程访问代理向远程网络的控制点发送描述所述虚拟设备处于在线状态的消息;
所述远程访问代理接收所述控制点向所述虚拟设备发送的第一请求消息;
若所述远程访问代理确定所述设备处于睡眠状态,则向所述设备发送唤醒命令;
当所述设备被唤醒时,所述远程访问代理根据所述第一请求消息构造与所述第一请求消息具有相同功能的第二请求消息,并向所述设备发送。
在本发明第一方面的第一种可能的实现方式中,当所述设备被唤醒时,所述远程访问代理根据所述第一请求消息构造与所述第一请求消息具有相同功能的第二请求消息,并向所述设备发送之后,还包括:
当接收到所述设备向所述虚拟设备发送的第一响应消息时,所述远程访问代理根据所述第一响应消息构造与所述第一响应消息具有相同功能的第二响应消息,并向所述控制点发送。
结合本发明第一方面或第一方面的第一种可能的实现方式,本发明第一方面的第二种可能的实现方式中,若所述远程访问代理确定所述设备处于睡眠状态,则向所述设备发送唤醒命令之前,还包括:
所述远程访问代理接收所述设备上报的描述所述设备进入睡眠状态的消息,并记录所述设备处于睡眠状态。
结合本发明第一方面、第一方面的第一种和第二种可能的实现方式的任意一种,本发明第一方面的第三种可能的实现方式中,向所述设备发送唤醒命令之前,还包括:所述远程访问代理获取所述设备的唤醒方式。
结合本发明第一方面、第一方面的第一、第二和第三种可能的实现方式的任意一种,本发明第一方面的第四种可能的实现方式中,还包括:
所述远程访问代理接收所述设备发送的离线消息,并向所述控制点发送描述所述虚拟设备处于离线状态的消息。
结合本发明第一方面的第一至第四种可能的实现方式的任意一种,本发明第一方面的第五种可能的实现方式中:
所述远程访问代理根据所述第一请求消息构造与所述第一请求消息具有相同功能的第二请求消息包括:所述远程访问代理将所述第一请求消息的目的地址替换为所述设备的地址信息,将所述第一请求消息的源地址替换为所述虚拟设备的地址信息,作为所述第二请求消息;
所述远程访问代理根据所述第一响应消息构造与所述第一响应消息具有相同功能的第二响应消息包括:所述远程访问代理将所述第一响应消息目的地址替换为所述控制点的地址信息,将所述第一响应消息的源地址替换为所述虚拟设备的地址信息,作为所述第二响应消息。
结合本发明第一方面、第一方面的第一至第五种可能的实现方式的任意一种,本发明第一方面的第六种可能的实现方式中,所述远程访问代理向远程网络的控制点发送描述所述虚拟设备处于在线状态的消息包括:
所述远程访问代理通过网络服务器向远程网络的所述控制点发送描述所述虚拟设备处于在线状态的消息;或者
所述远程访问代理通过虚拟专用网络VPN向远程网络的所述控制点发送描述所述虚拟设备处于在线状态的消息。
结合本发明第一方面、第一方面的第一至第六种可能的实现方式的任意一种,本发明第一方面的第七种可能的实现方式中,所述远程访问代理接收所述控制点向所述虚拟设备发送的第一请求消息包括:
所述远程访问代理通过网络服务器接收所述控制点向所述虚拟设备发送的所述第一请求消息;或者
所述远程访问代理通过VPN接收所述控制点向所述虚拟设备发送的所述第一请求消息。
结合本发明第一方面、第一方面的第一至第七种可能的实现方式的任意一种,本发明第一方面的第八种可能的实现方式中,所述设备为通用即插即用设备。
本发明的第二方面提供了一种远程访问服务器,包括:
接收模块:用于接收本地网络中设备发送的在线消息;
处理模块:用于在所述接收模块接收到所述设备发送的所述在线消息时,为所述设备建立虚拟设备,且将所述设备的设备描述文件和服务描述文件中的地址信息替换为所述虚拟设备的地址信息;
发送模块,用于向远程网络的控制点发送描述所述虚拟设备处于在线状态的消息;
所述接收模块还用于接收所述控制点向所述虚拟设备发送的第一请求消息;
所述处理模块还用于确定所述设备处于睡眠状态还是唤醒状态;
所述发送模块还用于在所述处理模块确定所述设备处于睡眠状态时向所述设备发送唤醒命令;
所述处理模块还用于在所述发送模块发出所述唤醒命令确定所述设备处于唤醒状态时,根据所述接收模块接收到的所述第一请求消息构造与所述第一请求消息具有相同功能的第二请求消息;
所述发送模块还用于向所述设备发送所述第二请求消息。
本发明第二方面的第一种可能的实现方式中,所述接收模块还用于接收所述设备向所述虚拟设备发送的第一响应消息;
所述处理模块还用于根据所述接收模块接收到的所述第一响应消息构造与所述第一响应消息具有相同功能的第二响应消息;
所述发送模块还用于向所述控制点发送所述第二响应消息。
结合本发明第二方面或第二方面的第一种可能的实现方式,本发明第二方面的第二种可能的实现方式中:
所述接收模块还用于接收所述设备上报的描述所述设备进入睡眠状态的消息;
所述处理模块还用于根据所述接收模块接收到的所述描述所述设备进入睡眠状态的消息确定所述设备处于睡眠状态。
结合本发明第二方面、第二方面的第一种和第二种可能的实现方式的任意一种,本发明第二方面的第三种可能的实现方式中,所述处理模块还用于在所述发送模块向所述设备发送所述唤醒命令之前,获取所述设备的唤醒方式。
结合本发明第二方面、第二方面的第一至第三种可能的实现方式的任意一种,本发明第二方面的第四种可能的实现方式中:
所述接收模块还用于接收所述设备发送的离线消息;
所述发送模块还用于在所述接收模块接收到所述离线消息时,向所述控制点发送描述所述虚拟设备处于离线状态的消息。
结合本发明第二方面或第二方面的第一种可能的实现方式,本发明第二方面的第五种可能的实现方式中:
所述根据所述接收模块接收到的所述第一请求消息构造与所述第一请求消息具有相同功能的第二请求消息,包括:将所述第一请求消息的目的地址替换为所述设备的地址信息,将所述第一请求消息的源地址替换为所述虚拟设备的地址信息,作为所述第二请求消息;
或者,
所述根据所述接收模块接收到的所述第一响应消息构造与所述第一响应消息具有相同功能的第二响应消息,包括:将所述第一响应消息目的地址替换为所述控制点的地址信息,将所述第一响应消息的源地址替换为所述虚拟设备的地址信息,作为所述第二响应消息。
结合本发明第二方面、第二方面的第一至第五种可能的实现方式的任意一种,本发明第二方面的第六种可能的实现方式中,所述设备为通用即插即用设备。
本发明实施例提供的远程访问的方法及服务器,通过为本地网络中设备设置对应的虚拟设备,在远程网络中的控制点访问过程中,直接与虚拟设备交互,从而达到间接控制本地网络中设备的目的,简化了本地网络中和远程网络之间的处理流程。并且虚拟设备为远程网络中的控制点分担了判断唤醒设备的具体操作,使得远程网络中的控制点的操作简洁化。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一所提供的远程访问的方法的流程图;
图2为本发明实施例二所提供的远程访问的方法的流程图;
图3为本发明实施例四所提供的远程访问的方法的信令流程图;
图4为本发明实施例五所提供的远程访问服务器的结构示意图;
图5为本发明实施例六所提供的远程访问服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一所提供的远程访问的方法的流程图。本实施例的方法可适用于远程网络中的控制点通过本地网络中的远程访问服务器(Remote Access Server,RAS)访问本地网络中的UPnP设备,UPnP设备是能够基于UPnP协议进行设备发现和数据交互的设备。但并不限于为UPnP设备,也可适用于具备UPnP类似访问机制的其他设备。需要说明的是:远程访问代理可以等同于远程访问服务器,此外,远程访问代理也可以是一个独立的装置或实体,或者,远程访问代理还可以是嵌入到远程访问服务器中的装置或实体。以下实施例以UPnP设备为例进行说明。本实施例的方法包括如下步骤:
步骤101、远程访问代理接收本地网络中设备发送的在线消息,为设备建立虚拟设备,且将所述设备的设备描述文件和服务描述文件中的地址信息替换为所述虚拟设备的地址信息;
远程访问代理接收本地网络中UPnP设备发送的在线消息,为所述UPnP设备建立虚拟设备,且将UPnP设备的设备描述文件和服务描述文件中的地址信息替换为虚拟设备的地址信息,从而使得虚拟设备作为UPnP设备的访问接口。作为访问接口,该虚拟设备配置的IP地址可以是所述远程访问代理的IP地址,远程访问代理为虚拟设备分配一个新的端口号。
具体地,本地网络中的RAS接收本地网络中的UPnP设备发送的“(Simple SeverDiscovery Protocol:Alive,简单服务发现协议:在线)SSDP:alive”消息,该消息用以表示本地网络中的UPnP设备处于在线状态。在接收到该UPnP设备处于在线状态的消息后,本地网络中的RAS为本地网络中的UPnP设备建立与之对应的UPnP虚拟设备,并将UPnP设备的设备描述文件和服务描述文件中的地址信息替换为虚拟设备的地址信息。
步骤102、所述远程访问代理向远程网络的控制点发送描述所述虚拟设备处于在线状态的消息;
本步骤中,远程访问代理向远程网络的控制点同步虚拟设备的在线状态。这时,远程网络中的控制点确认UPnP虚拟设备已处于在线状态。
步骤103、远程访问代理接收所述控制点向虚拟设备发送的第一请求消息;
具体地,在远程网络的控制点处,将虚拟设备视为一个UPnP设备。当远程网络中的控制点要控制本地网络中的该UPnP设备时,就会向该UPnP虚拟设备发送第一请求消息。
步骤104、若所述远程访问代理确定所述设备处于睡眠状态,则向所述设备发送唤醒命令;
步骤105、当所述设备被唤醒时,所述远程访问代理根据所述第一请求消息构造与所述第一请求消息具有相同功能的第二请求消息,并向所述设备发送。
第二请求消息与第一请求消息具备相同功能,相当于控制点对UPnP设备进行了控制。典型的是第二请求消息与第一请求消息的功能完全相同,仅调整控制命令中的格式字段,以表明将此控制命令发送至UPnP设备。
例如,优选是所述远程访问代理将所述第一请求消息的目的地址替换为所述UPnP设备的地址信息,将所述第一请求消息的源地址替换为所述虚拟设备的地址信息,作为所述第二请求消息。
在实际应用中,本地网络中的UPnP设备无论是在线状态还是在睡眠状态,远程网络中的控制点看到的UPnP设备都是在线的,而实际的本地网络中的UPnP设备可能处于睡眠状态,这是因为本地网络中的RAS为本地网络中的每个UPnP设备都建立了一个对应的UPnP虚拟设备,因此控制点无需知道本地网络中的UPnP设备的实际状态,相对于现有技术,控制点不必直接唤醒本地网络中的处于睡眠状态的UPnP设备,因此减少了控制点的操作,同时也简化了本地网络中和远程网络之间的处理流程。
本发明实施例提供的远程访问的方法,通过为本地网络中的设备设置对应的虚拟设备,在远程网络中的控制点访问过程中,直接与虚拟设备交互,从而达到间接控制设备的目的,简化了本地网络中和远程网络之间的处理流程。并且虚拟设备为远程网络中的控制点分担了判断唤醒设备的具体操作,使得远程网络中的控制点的操作简洁化。
在上述方案的基础上,还可以进一步通过远程访问代理向远程网络的控制点返回响应,即当所述设备被唤醒时,所述远程访问代理根据所述第一请求消息构造与所述第一请求消息具有相同功能的第二请求消息,并向所述设备发送之后,还包括:
当接收到所述设备向所述虚拟设备发送的第一响应消息时,所述远程访问代理根据所述第一响应消息构造与所述第一响应消息具有相同功能的第二响应消息,并向所述控制点发送。
相应地,第二响应消息和第一响应消息可具备相同功能,仅调整部分字段,以指示此响应消息是虚拟设备发送给控制点。例如优选是所述远程访问代理将所述第一响应消息目的地址替换为所述控制点的地址信息,将所述第一响应消息的源地址替换为所述虚拟设备的地址信息,作为所述第二响应消息。
具体地,当本地网络中的RAS接收到本地网络中的UPnP设备发送的响应消息时,就将响应消息的目的地址替换为控制点的地址信息,将响应消息的源地址替换为虚拟设备的地址信息,最后将替换地址后的响应消息发送给远程网络中的CP。
实施例二
图2为本发明实施例二所提供的远程访问的方法的流程图。本实施例是在实施例一的基础上进行优化,可选的,若所述远程访问代理确定所述设备处于睡眠状态,则向所述设备发送唤醒命令之前,还包括:
步骤210、远程访问代理接收设备上报的描述所述设备进入睡眠状态的消息,并记录设备处于睡眠状态。
步骤220、远程访问代理在接收到设备上报的描述所述设备进入睡眠状态的消息之后,获取设备的唤醒方式。
具体地,UPnP设备向本地网络中的远程访问服务器发送进入睡眠状态的消息,本地网络中的RAS记录该UPnP设备的睡眠状态。
获取设备的唤醒方式的时机不限于接收到进入睡眠状态的消息之后,在向所述设备发送唤醒命令之前,所述远程访问代理获取所述设备的唤醒方式即可。获取UPnP设备的唤醒方式的具体方式,可以是本地网络中的RAS接收到的UPnP设备上报的进入睡眠状态的消息中携带UPnP设备的唤醒方式。在实际应用中,唤醒UPnP设备的方式有多种,可以是本地网络中的RAS通过UPnP LowPowerDevice中定义的唤醒命令“Wakeup()”来唤醒UPnP设备,还可以是通过承载协议相关的方式来唤醒UPnP设备,比如,在以太网中,可采用Wake OnLAN(简称WoL)机制来唤醒UPnP设备,还可以是等待UPnP设备的睡眠周期结束后自动唤醒。
本发明实施例提供的远程访问的方法,在远程网络中控制点要访问UPnP设备时才对处于睡眠状态的UPnP设备进行唤醒操作,从而可以实现UPnP设备在其他时刻处于低功率消耗的睡眠状态,从而起到节约能源的作用,并且该控制点也无需感知本地网络中的UPnP设备的实际状态,也不必对本地网络中处于睡眠状态的UPnP设备执行唤醒操作,大大简化了远程网络中的控制点的操作流程。
在上述实施例技术方案的基础上,在本发明实施例三中,优选的是:本实施例提供的远程访问的方法还包括:远程访问代理接收设备发送的离线消息,并向所述控制点同步虚拟设备的离线状态。
在实际应用中,本地网络中的UPnP设备还可以处于离线状态,但是UPnP设备在离线之前会向本地网络中RAS发送离线消息,例如“SSDP:byebye”,用以表示该UPnP设备处于离线状态,不能提供服务,因此在这种情况下,本地网络中的RAS会向远程网络的控制点同步虚拟设备的离线状态。这时,远程网络中的控制点就会获取本地网络中的该UPnP设备不能提供服务。在具体实现过程中,通常将本地网络中虚拟设备的离线消息通过本网络中的RAS发送至远程网络中的RAS,然后由远程网络中的RAS生成该虚拟设备的离线消息,并在远程网络中组播,以使远程网络中的控制点能够接收该虚拟设备的离线消息。
本发明各实施例所提供的远程访问的方法可适用在不同的网络架构中,则在线状态,控制命令,请求消息和响应消息的传输路径可相应调整。
例如,所述远程访问代理向远程网络的控制点发送描述所述虚拟设备处于在线状态的消息可以包括:
所述远程访问代理通过网络服务器向远程网络的控制点发送描述所述虚拟设备处于在线状态的消息;或者
所述远程访问代理通过虚拟专用网络(VPN)向远程网络的控制点发送描述所述虚拟设备处于在线状态的消息。
相应地,所述远程访问代理接收远程网络的控制点向所述虚拟设备发送的第一请求消息可以包括:
所述远程访问代理通过网络服务器接收所述控制点向所述虚拟设备发送的第一请求消息;或者
所述远程访问代理通过VPN接收所述控制点向所述虚拟设备发送的第一请求消息。
图3为本发明实施例四所提供的远程访问的方法的信令流程图。该实施例是本地网络中UPnP设备、本地网络中的RAS、远程网络中的RAS以及远程网络中的CP配合执行的,具体包括如下步骤:
步骤1、本地网络中的UPnP设备向本地网络中的RAS发送在线报文,即在线消息。
步骤2、本地网络中的RAS创建一个UPnP虚拟设备。
具体地,UPnP虚拟设备的地址为一个新的不同于本地网络中UPnP设备的地址,同时本地网络中的RAS通过“HTTP GET”命令获取本地网络中的UPnP设备的设备描述文件和服务描述文件,并将设备描述文件和服务描述文件中UPnP设备的相关地址修改为UPnP虚拟设备的地址,修改后的设备描述文件和服务描述文件就可以称为UPnP虚拟设备的设备描述文件和服务描述文件。
步骤3、本地网络中的RAS把UPnP虚拟设备信息同步给远程网络,具体的,本地网络中的RAS中的同步源模块,即“RADASync CP”向远程网络中的RAS发送添加远程设备消息,例如“AddRemoteDevice()”,用来同步UPnP虚拟设备的信息,在AddRemoteDevice()的参数中包含了UPnP虚拟设备的信息,这样远程网络的RAS确定UPnP虚拟设备已处于在线状态。其中,RAS中包括同步目的模块(RADASync)和同步源模块(RADASync CP),二者是用于本地网络和远程网络中的UPnP设备信息同步的,RADASync做为信息同步的目的模块,RADASync CP做为信息同步的源模块。
步骤4、远程网络中的RAS根据收到的AddRemoteDevice(),向远程网络中的控制点组播UPnP虚拟设备的在线消息,这样该控制点确定UPnP虚拟设备已经在线。
步骤5、远程网络中的控制点向本地网络中的RAS通过“HTTP GET”命令获取UPnP虚拟设备的设备描述文件和服务描述文件,UPnP虚拟设备将修改后的设备描述描述文件和服务描述文件发送给远程网络中的控制点。
步骤6、当UPnP虚拟设备收到本地网络中的UPnP设备进入睡眠状态的SSDP消息时,睡眠状态包括“TRANSPARENT(浅睡眠状态)”、“DeepSleepOnline(深度睡眠在线状态)”或“DeepSleepOffline(深度睡眠离线状态)”三种中的任意一种,都可以表示本地网络中的UPnP设备进入睡眠状态。本地网络中的RAS中记录该UPnP设备处于睡眠状态,并通过“GetPowerManagementInfo()”获得UPnP设备的唤醒方式,还可在睡眠前使用该“GetPowerManagementInfo()”获得UPnP设备的唤醒方式,此时远程网络中的控制点仍认为本地网络中的UPnP设备处于在线(alive)状态,不会感知该UPnP设备到已处于睡眠状态。
步骤7、本地网络中的RAS记录本地网络中的UPnP设备的状态并获取该UPnP设备的唤醒方式。
步骤8、远程网络中的控制点向本地网络中的UPnP虚拟设备发送控制指令,具体的指令可以是浏览(browse()),相当于上述第一请求消息。
步骤9、UPnP虚拟设备收到browse()后,判断本地网络中的UPnP设备已处于睡眠状态,具体可通过如下机制唤醒UPnP设备:通过UPnP标准的节能标准(LowPowerDevice)中的命令,如Wakeup()唤醒UPnP设备;通过承载网协议提供的机制唤醒UPnP设备,比如在以太网中,通过WoL机制唤醒UPnP设备,或等待UPnP设备的睡眠周期结束后自动唤醒。UPnP虚拟设备在UPnP设备唤醒后把browse()发送给UPnP设备,browse()的目的地址和端口号需要修改为UPnP设备的IP地址和端口号,browse()的源地址修改为本地网络中RAS中在本地网络中的UPnP虚拟设备的地址,相当于将第一请求消息构造为功能相同的第二请求消息。
步骤10、UPnP设备处理完browse()后向本地RAS返回响应消息,相当于上述第一响应消息。
步骤11、本地网络中的RAS把响应消息的源地址和目的地址更改后发送给远程网络的控制点,即将第一响应消息构造为具有相同功能的第二响应消息。
步骤12、当本地网络中的RAS收到UPnP设备的离线消息(SSDP:bye-bye)时,表示UPnP设备将关闭电源。
步骤13、UPnP虚拟设备通知同步源模块“RADASync CP”向远程网络的RAS发送RemoveRemoteDevices(),该RemoveRemoteDevices()用来同步该UPnP虚拟设备的信息,该RemoveRemoteDevices()的参数中包含了该UPnP虚拟设备的信息,这样远程网络RAS确定该UPnP虚拟设备已处于离线状态。
步骤14、远程网络的RAS收到RemoveRemoteDevices(),在远程网络中组播该UPnP虚拟设备的离线消息(SSDP:bye-bye),使得远程网络控制点能获知虚拟设备的离线状态。
在本实施例中在远程网络中的远程访问服务器和远程网络中的控制点可以单独设置,也可以集成在远程访问客户端(RAC,Remote Access Client)中,具体的实现形式不做限制。
本发明实施例通过本地网络中的RAS,对本地网络中处于不同状态的UPnP设备的采用不同处理方式,详细地介绍了远程网络中的控制点在远程访问本地网络中的UPnP设备的方式,极大地简化了本地网络与远程网络的通信流程,并且进一步大大减少了远程网络中的控制点的操作流程。
图4为本发明实施例五所提供的远程访问服务器的结构示意图。该服务器包括:接收模块410、处理模块420和发送模块430。
其中,接收模块410用于接收本地网络中设备发送的在线消息;处理模块420用于在所述接收模块410接收到所述设备发送的所述在线消息时,为所述设备建立虚拟设备,且将所述设备的设备描述文件和服务描述文件中的地址信息替换为所述虚拟设备的地址信息;发送模块430用于向远程网络的控制点发送描述所述虚拟设备处于在线状态的消息;所述接收模块410还用于接收所述控制点向所述虚拟设备发送的第一请求消息;所述处理模块420还用于确定所述设备处于睡眠状态还是唤醒状态;所述发送模块430还用于在所述处理模块420确定所述设备处于睡眠状态时向所述设备发送唤醒命令;所述处理模块420还用于在所述发送模块发出所述唤醒命令确定所述设备处于唤醒状态时,根据所述接收模块410接收到的所述第一请求消息构造与所述第一请求消息具有相同功能的第二请求消息;所述发送模块430还用于向所述设备发送所述第二请求消息。
本实施例所提供的装置可以执行本发明实施例一提供的远程访问的方法,具备相应的功能模块和有益效果,此处不再赘述。本发明实施例中的设备优选是通用即插即用设备。
上述远程访问服务器中,所述接收模块410还可用于接收所述设备向所述虚拟设备发送的第一响应消息;所述处理模块420还可用于根据所述接收模块410接收到的所述第一响应消息构造与所述第一响应消息具有相同功能的第二响应消息;所述发送模块430还可用于向所述控制点发送所述第二响应消息。
具体地,所述接收模块410还可用于接收所述设备上报的描述所述设备进入睡眠状态的消息;所述处理模块420还可用于根据所述接收模块410接收到的所述描述所述设备进入睡眠状态的消息确定所述设备处于睡眠状态。
远程访问服务器中,优选的是,所述处理模块420还用于在所述发送模块430向所述设备发送所述唤醒命令之前,获取所述设备的唤醒方式。
进一步地,所述接收模块410还用于接收所述设备发送的离线消息;所述发送模块430还用于在所述接收模块410接收到所述离线消息时,向所述控制点发送描述所述虚拟设备处于离线状态的消息。
在上述技术方案的基础上,所述根据所述接收模块接收到的所述第一请求消息构造与所述第一请求消息具有相同功能的第二请求消息可优选包括:将所述第一请求消息的目的地址替换为所述设备的地址信息,将所述第一请求消息的源地址替换为所述虚拟设备的地址信息,作为所述第二请求消息;
或者,
所述根据所述接收模块接收到的所述第一响应消息构造与所述第一响应消息具有相同功能的第二响应消息可优选包括:将所述第一响应消息目的地址替换为所述控制点的地址信息,将所述第一响应消息的源地址替换为所述虚拟设备的地址信息,作为所述第二响应消息。
需要说明的是:本发明实施例五中所涉及的接收模块410也可以称作接收器410;发送模块430也可以称作发送器430;处理模块420也可以称作处理器420,此处不做限制。
图5为本发明实施例六所提供的远程访问服务器的结构示意图。该服务器包括:处理器501和存储器502。其中,存储器502存储执行指令,当远程访问服务器运行时,处理器501与存储器502之间通信,处理器501调用存储器502中的执行指令,用于执行以下操作:
接收本地网络中设备发送的在线消息,为所述设备建立虚拟设备,且将所述设备的设备描述文件和服务描述文件中的地址信息替换为所述虚拟设备的地址信息;
向远程网络的控制点发送描述所述虚拟设备处于在线状态的消息;
接收所述控制点向所述虚拟设备发送的第一请求消息;
若确定所述设备处于睡眠状态,则向所述设备发送唤醒命令;
当所述设备被唤醒时,根据所述第一请求消息构造与所述第一请求消息具有相同功能的第二请求消息,并向所述设备发送。
可选的是,当所述设备被唤醒时,根据所述第一请求消息构造与所述第一请求消息具有相同功能的第二请求消息,并向所述设备发送之后,还包括:
当接收到所述设备向所述虚拟设备发送的第一响应消息时,根据所述第一响应消息构造与所述第一响应消息具有相同功能的第二响应消息,并向所述控制点发送。
可选的是,若确定所述设备处于睡眠状态,则向所述设备发送唤醒命令之前,还包括:
接收所述设备上报的描述所述设备进入睡眠状态的消息,并记录所述设备处于睡眠状态。
可选的是,向所述设备发送唤醒命令之前,还包括:获取所述设备的唤醒方式。
可选的是,还包括:
接收所述设备发送的离线消息,并向所述控制点发送描述所述虚拟设备处于离线状态的消息。
可选的是,
根据所述第一请求消息构造与所述第一请求消息具有相同功能的第二请求消息包括:将所述第一请求消息的目的地址替换为所述设备的地址信息,将所述第一请求消息的源地址替换为所述虚拟设备的地址信息,作为所述第二请求消息;
根据所述第一响应消息构造与所述第一响应消息具有相同功能的第二响应消息包括:将所述第一响应消息目的地址替换为所述控制点的地址信息,将所述第一响应消息的源地址替换为所述虚拟设备的地址信息,作为所述第二响应消息。
可选的是,向远程网络的控制点发送描述所述虚拟设备处于在线状态的消息包括:
通过网络服务器向远程网络的所述控制点发送描述所述虚拟设备处于在线状态的消息;或者
通过虚拟专用网络VPN向远程网络的所述控制点发送描述所述虚拟设备处于在线状态的消息。
可选的是,接收所述控制点向所述虚拟设备发送的第一请求消息包括:
通过网络服务器接收所述控制点向所述虚拟设备发送的所述第一请求消息;或者
通过VPN接收所述控制点向所述虚拟设备发送的所述第一请求消息。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。