发明内容
本发明要解决的技术问题是提供一种UPnP设备远程互连方法、系统及装置,使不同局域网中UPnP设备之间的无缝互连互通。
根据本发明一个方面,提供一种UPnP设备远程互连方法,包括:步骤一、将第一局域网内部第一设备通过服务器映射成为第二局域网内虚设备;和步骤二、虚设备作为中介转发第二局域网内控制点与所述第一设备之间的数据包;其中,发送方局域网将内部UPnP数据封装成数据流,接收方局域网将接收到的数据流解析为UPnP数据。
可选的,所述步骤一包括:步骤1、第一局域网网关、第二局域网网关分别登录服务器;步骤2、第一局域网网关收集第一局域网内的设备信息;步骤3、第一局域网网关将设备信息封装为数据流;步骤4、第一局域网网关将数据流发送给服务器;步骤5、服务器将数据流转发给第二局域网网关;步骤6、第二局域网网关将数据流解析为设备信息;和步骤7、第二局域网网关根据设备信息建立虚设备,并在第二局域网内发布在线宣告消息。
可选的,所述步骤二包括:步骤1、第二局域网中控制点向虚设备发起数据或控制请求;步骤2、第二局域网网关接收该控制请求后,封装成数据流并转发给服务器;步骤3、服务器转发数据流给第一局域网网关;步骤4、第一局域网网关解析数据流得到请求,将请求转发给第一设备;步骤5、第一设备收到请求消息后,如果是控制请求,改变对应控制状态,并将控制结果返回给第一局域网网关,如果是数据请求,将数据结果返回给第一局域网网关;步骤6、第一局域网网关封装结果成为数据流,并转发给服务器;步骤7、服务器转发该数据流给第二局域网网关;和步骤8、第二局域网网关解析数据流得到结果,并以虚设备的身份返回该结果给控制点。
可选的,其中数据流为XML数据流,和/或所述网关与所述服务器之间采用XMPP协议作为通信协议。
可选的,步骤一的步骤2包括:所述网关侦听本地多播接口;设备上线后,向该接口发送设备/服务在线宣告;所述网关侦听到设备发出的在线宣告消息后,发起获取描述信息请求;和设备向网关返回相应的设备描述信息和服务描述信息。
可选的,步骤一的步骤7还包括:第二局域网中的控制点收到虚设备广播的在线宣告后,向宣告地址发送设备详细描述文档请求消息;虚设备返回描述消息给控制点;和控制点发现本地虚设备,并在本地设备列表中加入该设备。
可选的,步骤一的步骤1包括:所述网关将登录请求格式封装为数据流;所述网关将请求发送至服务器;如果所述请求在服务器验证通过,服务器注册该网关的域信息,并把在同一域内的其他登录网关的相关消息以数据流的形式发送给所述网关。
可选的,网关发出的消息中包括目标设备地址、发送网关的ID、信息内容和信息类别;网关和服务器端使用Socket端口进行通讯;网关使用服务器端的IP地址或域名对服务器进行解析,以获取真正的通讯地址。
可选的,步骤一的步骤5包括:如果是设备在线/离线宣告,网关广播给同一域内其他所有已登录网关;和如果是指定设备间的消息,服务器首先根据其中的目标设备地址,查询出其所属的目标网关ID,继而获取到该网关登录时使用的IP地址和端口,然后再将这个消息发送到该IP和端口标识的网络端。
根据本发明另一个方面,提供一种UPnP设备远程互连系统,包括:服务器和网关,其中:所述服务器包括:登录管理单元,用于管理网关的登录信息;数据转发单元,用于实现将网关发送来的数据流转发至目的网关;和域管理单元,用于按域划分管理各登录网关;所述网关包括:登录单元,用于实现网关登录至服务器,并在域管理器内注册;UPnP设备收集单元,用于收集局域网内UPnP设备信息;UPnP数据转换单元,用于将本地网关UPnP设备收集单元所收集到的UPnP设备信息,封装成数据流后通过服务器转发,实现与远程网关的交互;和UPnP设备中介单元,用于在本地网关获取到远程UPnP设备信息后,在本地创建相应的虚设备。
可选的,所述数据流为XML数据流,和/或所述网关与所述服务器之间采用XMPP协议进行通信协议。
根据本发明另一个方面,提供一种UPnP设备远程互连服务器,包括:登录管理单元,用于管理网关的登录信息;数据转发单元,用于实现将网关发送来的数据流转发至目的网关;和域管理单元,用于按域划分管理各登录网关。
可选的,所述数据流为XML数据流,和/或所述网关与所述服务器之间采用XMPP协议进行通信协议。
根据本发明又一个方面,提供一种UPnP设备远程互连网关,包括:登录单元,用于实现网关登录至服务器,并在服务器域管理器内注册;UPnP设备收集单元,用于收集局域网内UPnP设备信息;UPnP数据转换单元,用于将本地网关UPnP设备收集单元所收集到的UPnP设备信息,封装成数据流后通过服务器转发,实现与远程网关的交互;和UPnP设备中介单元,用于在本地网关获取到远程UPnP设备信息后,在本地创建相应的虚设备。
可选的,所述数据流为XML数据流,和/或所述网关与所述服务器之间采用XMPP协议进行通信协议。
与现有技术相比,本发明的优点在于:在一个局域网中UPnP设备能够如同操作本地设备一样与远程UPnP设备交互,实现完整的UPnP功能,并且不需要对现有UPnP设备进行任何修改和设置。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了使本发明的目的、技术方案及优点更加清楚明白,首先介绍本发明提供的网络结构。
如图1所示,为本发明一个实施例的网络结构意图。其中,局域网100包括网关101、联网设备102和103;局域网200包括网关201、联网设备202和203。局域网100和局域网200通过网络中的服务器300通讯,即局域网100的网关101与局域网200的网关201通过服务器300相互发送数据。
在本发明的一些实施例中,局域网100、200中可以包含一个或多个联网设备;网关101、102可以与服务器300直接连接;网关101、102也可以通过其他网络设备(例如网络路由设备)与服务器300间接连接。
在本发明的一些实施例中,服务器300可以处于能够被网关101、102所访问的任何网络位置,包括局域网100和局域网200内。
在本发明的一些实施例中,网关101、102可以是非UPnP设备的任何网络设备。
在本发明的一些实施例中,网关101、102与服务器300间的连接可以是有线连接,也可以是无线连接。
根据本发明的一个实施例,提供一种基于XMPP即时通信协议的UPnP设备远程互连方法,实现局域网A中的UPnP设备A和局域网B中的UPnP控制点B通过各自局域网中的网关(网关A、B)和服务器进行远程交互的方法。如图2所示,该方法包括:
S101、第一局域网网关(即网关A)、第二局域网网关(即网关B)分别登录服务器;
S102、网关A收集第一局域网内的设备信息;
S103、网关A将设备信息封装为XML流;
S104、网关A将XML流发送给服务器;
S105、服务器将XML流转发给网关B;
S106、网关B将XML流解析为设备信息;和
S107、网关B根据设备信息建立虚设备,并在第二局域网内发布在线宣告消息。
在步骤S101中,网关A和B启动后,将登录请求格式封装为XMPP协议规定的XML流,并把请求发送至服务器端;服务器接收该XML流并解析其内容,然后对网关身份进行验证,并把验证结果以标准XMPPXML流动方式发送到发起请求的网关。
如果网关请求验证通过,则服务器把其他登录网关的相关消息以标准XMPP XML流的形式发送给该网关。
优选的,如果网关请求验证通过,则服务器注册该网关的域信息,并把在同一域内的其他登录网关的相关消息以标准XMPP XML流的形式发送给该网关。服务器按域划分并管理各登录网关,可以实现不同域内的网关之间实现信息隔离,避免信息爆炸。
结合图3所示,步骤S102包括:
S1021、网关A侦听本地多播接口;根据UPnP协议,该接口为239.255.255.250:1900;
S1022、设备A上线后,向该接口发送设备/服务在线宣告;
S1023、网关A侦听到设备A发出的在线宣告消息后,发起获取描述信息请求;和
S1024、设备A向网关A返回相应的设备描述信息和服务描述信息。
在步骤S103中,网关A将收集到的设备信息封装为XMPP协议规定的XML流。
在步骤S104、S105中,网关所发出的信息首先到达服务器,服务器根据其中信息的类型和网关所在域进行转发,具体转发方式为:
如果是在线/离线宣告,则广播给同一域内其他所有在线(登录)网关;
如果是指定设备间的消息,服务器首先根据其中的目标设备地址,查询出其所属的目标网关ID,继而获取到该网关登录时使用的IP地址和端口,然后再将这个消息发送到该IP和端口标识的网络端。
网关发出的消息中包括目标设备地址,发送网关的ID、信息内容和信息类别。网关和服务器端使用Socket端口进行通讯,网关可以使用服务器端的IP地址或域名对服务器进行解析,以获取真正的通讯地址。
在步骤S106、S107中,网关B解析服务器转发来的消息,发现是设备A的描述信息后,根据此描述信息生成虚设备,并在第二局域网内发布在线宣告消息。
结合图3,步骤S107在建立虚设备后还包括:
S1071、第二局域网中的控制点B收到虚设备广播的在线宣告后,向宣告地址发送设备详细描述文档请求消息;
S1072、虚设备返回描述消息给控制点B;
S1073、控制点B发现本地虚设备,并在本地设备列表中加入该设备。
至此,第二局域网中的控制点B以操作虚设备的形式实现与远程设备A的交互。
根据本发明一个实施例,控制点B以操作虚设备的形式实现与远程设备A的交互内容主要包括:(1)控制点B对设备A进行远程控制,(2)控制点B通过本地虚设备订阅远程设备A,(3)设备A将服务状态变化通知控制点B,以及(4)设备A离线。
对于过程(1):如图4所示,控制点B通过控制本地虚设备实现控制远程设备A的流程包括:
(1.1)控制点B向虚设备发起控制请求;
(1.2)网关B接收该控制请求后,封装成XMPP消息转发给服务器;
(1.3)服务器转发给网关A;
(1.4)网关A解析该请求后,转发给设备A;
(1.5)设备A收到控制消息后,改变对应控制状态,并将控制结果返回给网关A;
(1.6)网关A封装该控制结果后转发给服务器;
(1.7)服务器转发该结果给网关B;
(1.8)网关B解析控制结果后,以虚设备的身份返回该结果给控制点B。
对于过程(2):如图5所示,控制点B通过本地虚设备订阅远程设备A的过程类同于上述设备控制过程,不同之处在于订阅请求到达远程设备A后,设备A将更新订阅者列表。
对于过程(3):设备A将服务状态变化通知控制点B的过程如下:
(3.1)设备A服务状态发生变化时,将产生状态变化通知,查询订阅者列表后,发送给网关A;
(3.2)网关A封装该状态通知后转发给服务器;
(3.3)服务器将该状态通知转发给网关B;
(3.4)网关B解析该状态变化通知后,以虚设备的身份通知控制点B该状态变化。
对于过程(4):设备A离线的过程与在线过程类似,不同之处在于离线宣告到达网关B后,网关B将对应虚设备删除后,再向局域网B转发离线宣告。
根据本发明一个实施例,还提供一种基于XMPP即时通信协议的UPnP设备远程互连系统。如图6所示,该系统包括:服务器和网关,所述网关与服务器间使用XMPP协议进行通信。
所述服务器进一步包括:
(1)登录管理单元,用于管理网关的登录信息;和
(2)数据转发单元,用于实现将网关发送来的XMPP数据转发至目的网关。
所述网关进一步包括:
(1)登录单元,用于实现网关登录至服务器,并在域管理器内注册;
(2)UPnP设备收集单元,用于收集局域网内UPnP设备信息;
(3)UPnP/XMPP转换单元,用于将本地网关UPnP设备收集单元所收集到的UPnP设备信息,封装成XMPP XML流后通过服务器转发,实现与远程网关的交互;和
(4)UPnP设备中介单元,用于在本地网关获取到远程UPnP设备信息后,在本地创建相应的虚设备,作为远程设备与本地设备的中介,实现本地控制点与远程设备的透明交互。
为方便描述,图6中将网关中的设备中介单元和设备收集单元分别放置于两个网关中,实际上每个网关中这两个单元都存在。
优选的,基于XMPP即时通信协议的UPnP设备远程互连系统的服务器还包括:域管理单元,用于按域划分管理各登录网关,不同域内的网关之间实现信息隔离,避免信息爆炸。
上述实施例中,网关与所述服务器之间采用XMPP协议作为通信协议(XML数据流),但是本发明其他实施例中,也可以使用其他类型的即时通信协议例如SIP协议(简单会话协议)作为网关与服务器之间的通信协议。
依照本发明的相关方法(网关、服务器)和系统,可以在不改动现有UPnP设备的前提下,使用基于XMPP协议的即时通信机制,通过网关将不同局域网中的设备信息汇聚到Internet上的服务器上,再根据域管理机制进行分发,在局域网中生成相应的远程虚设备,实现不同局域网中的UPnP设备跨越Internet进行互连互通。
应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。