家庭间DLNA设备发现和控制方法及装置转让专利

申请号 : CN201010621374.7

文献号 : CN102123065A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张骞赵立军刘冉张霞杨明刘捷妤李强

申请人 : 东软集团股份有限公司

摘要 :

本发明提供一种用于在本地家庭和对端家庭之间进行家庭间DLNA设备发现的方法,所述方法包括:在所述对端家庭中的SSDP代理将所接收的设备检索多播消息以多播方式向所述对端家庭中的家庭DLNA设备发送后,基于所述家庭DLNA设备的UUID,对从该家庭DLNA设备发出的检索响应进行URL改写,然后以单播方式将经过URL改写后的检索响应发送到本地家庭中的所述家庭DLNA设备,其中,在URL改写时,将所述检索响应中的URL的IP地址和端口号分别改写为所述本地家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;以及将所述检索响应中的URL的路径部分改写为所述对端家庭中的所述家庭DLNA设备的UUID。

权利要求 :

1.一种用于在本地家庭和对端家庭之间进行家庭间DLNA设备发现的方法,用于家庭间DLNA设备发现的设备检索多播消息从所述本地家庭中发出,以及被所述对端家庭接收,所述方法包括:本地家庭中的第一SSDP中继设备将所述本地家庭中的第一SSDP代理以多播方式从本地家庭中的家庭DLNA设备接收的设备检索多播消息,经由VPN隧道发送给对端家庭的第二SSDP中继设备;

在所述对端家庭中的第二SSDP代理从所述第二SSDP中继设备接收到所述设备检索多播消息后,以多播方式向所述对端家庭中的家庭DLNA设备发送所述设备检索多播消息;

所述对端家庭中的URL改写单元基于所述对端家庭中的家庭DLNA设备的唯一标识符(UUID),对从该家庭DLNA设备接收的针对所述设备检索多播消息的检索响应进行URL改写,所述检索响应至少包括URL字段和ST字段,所述ST字段存储检索目标;

通过所述第二SSDP代理和第二SSDP中继设备,经由所述VPN隧道将经过URL改写后的检索响应发送到所述第一SSDP中继设备;以及通过所述第一SSDP代理对所述第一SSDP中继设备所接收的经过URL改写后的检索响应进行处理,从而以单播方式将经过URL改写后的检索响应发送到本地家庭中的所述家庭DLNA设备,其中,所述URL改写单元基于所述对端家庭中的家庭DLNA设备的UUID,对从所接收的检索响应进行URL改写的步骤包括:将所述检索响应中的URL的IP地址和端口号分别改写为所述本地家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;以及将所述检索响应中的URL的路径部分改写为所述对端家庭中的所述家庭DLNA设备的UUID。

2.如权利要求1所述的方法,其中,如果接收到多个经过URL改写后的检索响应,则通过所述第一SSDP代理对经过URL改写后的检索响应进行处理的步骤包括:从所述第一SSDP中继设备所接收的经过URL改写后的检索响应中获取所述ST字段的值;

使用socket创建用于单播的UDP套接字sock;

根据所述ST字段的值和本地家庭中发送设备检索多播请求的家庭DLNA设备的检索目标,确定与所述检索响应匹配的家庭DLNA设备;以及通过所述UDP套接字sock,以单播方式将所述经过URL改写后的检索响应发送到所确定出的匹配家庭DLNA设备。

3.一种家庭间DLNA设备发现装置,包括:

SSDP中继设备,用于将从SSDP代理接收的设备检索多播消息经由VPN隧道发送到所述对端家庭,以及从所述对端家庭接收对设备检索多播消息的检索响应并发送给SSDP代理;

或者将从所述对端家庭接收的设备检索多播消息发送到SSDP代理,以及向所述对端家庭发送从SSDP代理接收的对设备检索多播消息的检索响应,其中所述检索响应至少包括URL字段和ST字段,所述ST字段存储检索目标;

SSDP代理,用于将以多播方式从家庭内部的家庭DLNA设备接收的设备检索多播消息发送到所述SSDP中继设备,以及将从所述SSDP中继设备接收的检索响应以单播方式发送给家庭内部的对应家庭DLNA设备,或者多播从所述SSDP中继设备接收的设备检索多播消息,获取家庭内部的家庭DLNA设备对该设备检索多播消息的检索响应,所述检索响应至少包括URL字段和ST字段,所述ST字段存储检索目标,并且将经过改写后的检索响应发送到所述SSDP中继设备;

URL改写单元,用于基于家庭内部的家庭DLNA设备的唯一标识符(UUID),对从该家庭DLNA接收的所述检索响应进行URL改写,以及网关,包括Web代理服务器,

其中,所述URL改写单元还包括:

IP地址和端口改写单元,用于将所述检索响应的URL的IP地址和端口号分别改写为对端家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;

URL路径改写单元,用于将所述检索响应的URL的路径部分改写为所述家庭DLNA设备的UUID。

4.如权利要求3所述的家庭间DLNA设备发现装置,其中,在所述SSDP代理接收到多个经过URL改写后的检索响应时,所述SSDP代理还包括:ST字段值获取单元,用于从所述SSDP中继设备所接收的经过URL改写后的检索响应中获取所述ST字段的值;

套接字创建单元,用于使用socket创建用于单播的UDP套接字sock;以及匹配家庭DLNA设备确定单元,用于根据所述ST字段的值和所述SSDP代理所属家庭中发送设备检索多播请求的家庭DLNA设备的检索目标,确定与所述检索响应匹配的家庭DLNA设备,在确定出匹配的家庭DLNA设备后,所述SSDP代理通过所述UDP套接字sock,以单播方式将所述经过URL改写后的检索响应发送到所确定出的匹配家庭DLNA设备。

5.如权利要求3所述的家庭间DLNA设备发现装置,其中,当所述家庭间DLNA设备发现装置位于发送设备检索多播请求的家庭时,所述SSDP中继设备将从SSDP代理接收的设备检索多播消息经由VPN隧道发送到所述对端家庭以及从所述对端家庭接收对设备检索多播消息的检索响应并发送给SSDP代理;所述SSDP代理将以多播方式从家庭内的家庭DLNA设备接收的设备检索多播消息发送到所述SSDP中继设备,以及将从所述SSDP中继设备接收的检索响应以单播方式发送给家庭内的对应家庭DLNA设备。

6.如权利要求3所述的家庭间DLNA设备发现装置,其中,当所述家庭间DLNA设备发现装置位于接收设备检索多播请求的家庭时,所述SSDP中继设备将从所述对端家庭接收的设备检索多播消息发送到SSDP代理,以及向所述对端家庭发送从SSDP代理接收的对设备检索多播消息的检索响应,所述SSDP代理多播从所述SSDP中继设备接收的设备检索多播消息,获取家庭内部的家庭DLNA设备对该设备检索多播消息的检索响应,并且将经过改写后的检索响应发送到所述SSDP中继设备。

7.一种基于SSDP代理和SSDP中继设备的家庭间DLNA设备发现方法,包括:在家庭DLNA设备上线后,生成设备上线通知消息,所述设备上线通知消息中至少包括URL字段;

基于所述家庭DLNA设备的唯一标识符(UUID),对所生成的设备上线通知消息进行URL改写,通过所述家庭DLNA设备所属家庭中的第一SSDP代理和第一SSDP中继设备,经由VPN隧道将所述经过URL改写后的设备上线通知消息发送到所述对端家庭中的第二SSDP中继设备;

通过所述对端家庭中的第二SSDP代理,以多播方式向所述对端家庭中的家庭DLNA设备发送所述经过URL改写后的设备上线通知消息,其中,对所述设备上线通知消息进行URL改写的步骤包括:

将所述设备上线通知消息中的URL的IP地址和端口号分别改写为所述对端家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;

将所述设备上线通知消息中的URL的路径部分改写为所述家庭DLNA设备的UUID。

8.一种家庭间DLNA设备发现装置,包括:

设备上线通知消息生成单元,用于在家庭DLNA设备上线后,生成设备上线通知消息,所述设备上线通知消息中至少包括URL字段;

URL改写单元,用于基于所述家庭DLNA设备的唯一标识符(UUID),对所述设备上线通知消息进行URL改写,SSDP中继设备,用于将从SSDP代理接收的来自家庭内部的家庭DLNA设备的所述设备上线通知消息通过VPN隧道发送到所述对端家庭,或者从所述对端家庭接收所述设备上线通知消息并发送给家庭内部的SSDP代理;

SSDP代理,用于将从所述URL改写单元接收的经过URL改写后的设备上线通知消息发送到所述SSDP中继设备,或者将从所述SSDP中继设备接收的所述对端家庭所发送的经过URL改写后的设备上线通知消息,以多播方式向家庭内部的家庭DLNA设备发送所述经过URL改写后的设备上线通知消息;以及网关,包括Web代理服务器,

其中,所述URL改写单元还包括:

IP地址和端口改写单元,用于将所述设备上线通知消息的URL的IP地址和端口号分别改写为所述家庭DLNA设备所属家庭的对端家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;

URL路径改写单元,用于将所述设备上线通知消息的URL的路径部分改写为所述家庭DLNA设备的UUID。

9.一种家庭间DLNA设备发现系统,包括:

如权利要求3-6和8中任何一个所述的位于发送设备检索多播请求或接收设备上线通知消息的家庭中的家庭间DLNA设备发现装置;

如权利要求3-6和8中任何一个所述的位于接收设备检索多播请求或发送设备上线通知消息的家庭中的家庭间DLNA设备发现装置;

VPN隧道,设置在两个家庭之间,用于在两个家庭之间进行数据传输;

一个或多个位于发送设备检索多播请求或接收设备上线通知消息的家庭中的家庭DLNA设备;以及一个或多个位于接收设备检索多播请求或发送设备上线通知消息的家庭中的家庭DLNA设备。

10.一种基于Web代理服务器的家庭DLNA设备控制方法,该方法由接收HTTP请求的对端家庭的Web代理服务器执行,所述方法包括:在通过专用端口接收到发出HTTP请求的本地家庭中的Web代理服务器经由VPN隧道中继的HTTP请求后,基于所存储的URL改写数据库,对所接收的HTTP请求中的URL进行改写,其中所述HTTP请求是本地家庭的Web代理服务器通过公用端口从本地家庭的家庭DLNA设备接收的,所存储的URL改写数据库是在进行家庭DLNA设备发现时建立的,并且在所述URL改写数据库中存储有改写前URL和改写后URL之间的对应关系;

基于改写后的HTTP请求,获取与该改写后的HTTP对应的对端家庭中的家庭DLNA设备的IP地址和端口号;

利用所获得的对端家庭中的家庭DLNA设备的IP地址和端口号,与对端家庭中的家庭DLNA设备建立通信连接,并通过所建立的通信连接,将改写后的HTTP请求发送给所述家庭DLNA设备;

在改写后的HTTP请求是设备描述文件请求或SOAP请求时,接收来自所述家庭DLNA设备的完整响应数据;

利用所存储的URL改写数据库对所接收的完整响应数据进行URL改写,并将改写后的响应数据中继给本地家庭的Web代理服务器,其中,在进行家庭DLNA设备发现时建立URL改写数据库的步骤包括:

将要被发现的家庭DLNA设备中的包含有URL的消息中的URL的IP地址和端口号分别改写为发出设备检索多播请求的家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;

将要被发现的家庭DLNA设备中的所述包含有URL的消息中的URL的路径部分改写为该家庭DLNA设备的UUID;以及建立URL改写数据库并将所述URL改写数据库存储在所述对端家庭的网关中,所述URL改写数据存储有改写前URL和改写后URL之间的对应关系。

11.一种用于家庭DLNA设备控制的Web代理服务器,包括:

接收单元,用于通过公用端口从所述Web代理服务器所属的本地家庭的家庭DLNA设备接收HTTP请求,以及接收来自本地家庭内的家庭DLNA设备的对该HTTP请求的响应数据,或者通过专用端口从对端家庭的Web代理服务器接收经由VPN隧道中继的HTTP请求;

URL改写单元,用于在进行家庭DLNA设备发现期间,基于对端家庭的家庭DLNA设备的唯一标识符(UUID)建立URL改写数据库,并将所述URL改写数据库存储在所述Web代理服务器中,在所述URL改写数据库中存储有改写前URL和改写后URL之间的对应关系;

HTTP请求改写单元,用于基于所存储的URL改写数据库,对通过专用端口从对端家庭中的Web代理服务器接收到的经由VPN隧道中继的HTTP请求中的URL进行改写;

IP地址和端口号获取单元,用于基于改写后的HTTP请求,获取与该改写后的HTTP对应的本地家庭中的家庭DLNA设备的IP地址和端口号;

通信连接建立单元,用于利用所获得的本地家庭中的家庭DLNA设备的IP地址和端口号,与本地家庭中的家庭DLNA设备建立通信连接;

响应数据改写单元,用于基于所存储的URL改写数据库,对所接收的完整响应数据进行URL改写;

发送单元,用于通过VPN隧道将HTTP请求发送到对端家庭,或者通过所建立的通信连接,将改写后的HTTP请求发送给本地家庭中的对应家庭DLNA设备,以及将响应数据经由VPN隧道中继给对端家庭的Web代理服务器,其中,在所述Web代理服务器用于接收HTTP请求时,在改写后的HTTP请求是设备描述文件请求或SOAP请求时,在所述接收单元接收到来自所述DLNA设备的完整响应数据后,所述响应数据改写单元对所接收的完整响应数据进行URL改写,并且所述发送单元将改写后的响应数据中继给本地家庭的Web代理服务器,其中,所述URL改写单元还包括:

IP地址和端口改写单元,用于将要被发现的家庭DLNA设备的URL的IP地址和端口号分别改写为发出设备检索多播请求的家庭DLNA设备所属家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;

URL路径改写单元,用于将要被发现的家庭DLNA设备的URL的路径部分改写为该家庭DLNA设备的UUID;以及URL改写数据库建立单元,用于建立URL改写数据库,在所述URL改写数据库中存储有改写前URL和改写后URL之间的对应关系。

12.一种家庭DLNA设备控制系统,包括:

如权利要求11所述的位于发出HTTP请求的家庭中的Web代理服务器;

如权利要求11所述的位于接收HTTP请求的家庭中的Web代理服务器;

VPN隧道,设置在两个家庭之间,用于在两个家庭之间进行数据传输;

一个或多个位于发出HTTP请求的家庭中的家庭DLNA设备;以及

一个或多个位于接收HTTP请求的家庭中的家庭DLNA设备。

说明书 :

家庭间DLNA设备发现和控制方法及装置

技术领域

[0001] 本发明涉及互联网领域,更为具体地,涉及一种基于DLNA协议的家庭间DLNA设备发现方法及其设备,以及基于DLNA协议的家庭间设备控制方法及装置。

背景技术

[0002] 随着科学技术的不断发展,在家庭中使用的电子设备越来越多,比如,平板电视、手机、数码相机、摄像机、音响系统、电脑、多媒体播放器、游戏机等。通常,在这些电子设备上,各自存储有不同的文件,比如各种音频、相片和视频文件。如果用户希望观看或欣赏这些电子设备中的一个电子设备上存储的文件,则必须在该电子设备上利用相应的处理软件对该文件进行处理,然后才进行观看或欣赏。也就是说,如果用户希望对一个电子设备上的文件进行处理,就必须在该电子设备上进行相应的操作。在存在非常多的电子设备或者该电子设备远离用户的触及范围的情况下,这种文件处理方式容易给用户带来不便。
[0003] 为此,索尼、英特尔、微软等发起成立的数字生活网络联盟(DLNA)提出了DLNA协议,其目的在于实现个人PC,消费电器,移动设备在内的无线网络和有线网络的互联互通,从而使得数字媒体和内容服务的无限制的共享和增长成为可能。
[0004] 采用DLNA协议的DLNA设备通常可以实现下述功能:(1)在家里的任何地方共享、存储和访问数字音乐,(2)轻松地管理、浏览、打印和分享数字照片,(3)随身携带喜欢的娱乐内容以便在户外欣赏,以及(4)对可被多用户访问的内容进行记录和重放。
[0005] 在实现上述功能时,DLNA通常选择目前所应用很广泛的各种技术和协议,将整个应用规定成5个功能组件,从下到上依次为:网络互连,网络协议,媒体传输,设备的发现控制和管理,媒体格式。
[0006] 在网络互连组件中,规定了所接入网络的类型和协议,例如802.3.i/u以及802.11/a/b/g。在网络协议组件中,规定了所使用的网络协议。在目前,规定所使用的网络协议必须支持IPv4。优选地,所使用的网络协议可以支持IPv6。在媒体传输组件中,规定所有DLNA设备都必须支持使用HTTP协议进行媒体的传输。此外,也可以采用TLS协议、IPSEC协议或RTP协议。在媒体格式组件中,规定了进行数字媒体和内容的共享和使用的时候的媒体格式,目前,其必须支持的媒体格式是JPEG、LPCM和MPEG2。
[0007] 在DLNA中,最重要的组件是设备的发现、控制和管理组件,该组件通过一系列的步骤和协议来达到设备的发现和管理。目前的家庭间DLNA设备发现和控制方法按照传输协议可以划分为基于SIP协议的家庭间DLNA设备发现和控制方法以及基于VPN协议的家庭间DLNA设备发现和控制方法。这两类方法的核心在于对设备发现和控制消息中所包含的URL进行改写,即,将URL中包含的IP地址和端口号替换为对端家庭的有意义IP和端口号,其中不同IP地址均替换为对端家庭同一IP,并且包含不同IP的URL连接在对端家庭以不同的端口号进行区分。
[0008] 然而,在这种家庭间DLNA设备发现和控制方法中,由于不同IP地址均替换为对端家庭同一IP,并且包含不同IP的URL连接在对端家庭以不同的端口号进行区分,从而导致产生以下问题。
[0009] (1)随着家庭内符合DLNA标准的设备增多,这些设备具备不同的IP地址,由此导致对端家庭的代理服务器需要同时监听多个端口,从而增加了代理服务器的负担,而且扩展性不好。
[0010] (2)当家庭内增加新的DLNA设备时,需要与对端家庭的代理服务器协商增加新的监听端口,额外增加了家庭间设备发现与控制的成本。
[0011] (3)增加了“端口占用”冲突的概率。

发明内容

[0012] 鉴于上述问题,本发明提供了一种家庭间DLNA设备发现和控制方法及装置,该方法能够实现URL中包含的IP地址和端口号到对端家庭的多对一映射,即,不同IP地址和端口号都映射到对端家庭的同一IP和端口号。
[0013] 根据本发明的一个方面,提供了一种用于在本地家庭和对端家庭之间进行家庭间DLNA设备发现的方法,用于家庭间DLNA设备发现的设备检索多播消息从所述本地家庭中发出,以及被所述对端家庭接收,所述方法包括:本地家庭中的第一SSDP中继设备将所述本地家庭中的第一SSDP代理以多播方式从本地家庭中的家庭DLNA设备接收的设备检索多播消息,经由VPN隧道发送给对端家庭的第二SSDP中继设备;在所述对端家庭中的第二SSDP代理从所述第二SSDP中继设备接收到所述设备检索多播消息后,以多播方式向所述对端家庭中的家庭DLNA设备发送所述设备检索多播消息;所述对端家庭中的URL改写单元基于所述对端家庭中的家庭DLNA设备的唯一标识符(UUID),对从该家庭DLNA设备接收的针对所述设备检索多播消息的检索响应进行URL改写,所述检索响应至少包括URL字段和ST字段,所述ST字段存储检索目标;通过所述第二SSDP代理和第二SSDP中继设备,经由所述VPN隧道将经过URL改写后的检索响应发送到所述第一SSDP中继设备;以及通过所述第一SSDP代理对所述第一SSDP中继设备所接收的经过URL改写后的检索响应进行处理,从而以单播方式将经过URL改写后的检索响应发送到本地家庭中的所述家庭DLNA设备,其中,所述URL改写单元基于所述对端家庭中的家庭DLNA设备的UUID,对从所接收的检索响应进行URL改写的步骤包括:将所述检索响应中的URL的IP地址和端口号分别改写为所述本地家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;以及将所述检索响应中的URL的路径部分改写为所述对端家庭中的所述家庭DLNA设备的UUID。
[0014] 此外,如果接收到多个经过URL改写后的检索响应,则通过所述第一SSDP代理对经过URL改写后的检索响应进行处理的步骤还可以包括:从所述第一SSDP中继设备所接收的经过URL改写后的检索响应中获取所述ST字段的值;使用socket创建用于单播的UDP套接字sock;根据所述ST字段的值和本地家庭中发送设备检索多播请求的家庭DLNA设备的检索目标,确定与所述检索响应匹配的家庭DLNA设备;以及通过所述UDP套接字sock,以单播方式将所述经过URL改写后的检索响应发送到所确定出的匹配家庭DLNA设备。
[0015] 根据本发明的另一方面,提供了一种家庭间DLNA设备发现装置,包括:SSDP中继设备,用于将从SSDP代理接收的设备检索多播消息经由VPN隧道发送到所述对端家庭,以及从所述对端家庭接收对设备检索多播消息的检索响应并发送给SSDP代理;或者将从所述对端家庭接收的设备检索多播消息发送到SSDP代理,以及向所述对端家庭发送从SSDP代理接收的对设备检索多播消息的检索响应,其中所述检索响应至少包括URL字段和ST字段,所述ST字段存储检索目标;SSDP代理,用于将以多播方式从家庭内部的家庭DLNA设备接收的设备检索多播消息发送到所述SSDP中继设备,以及将从所述SSDP中继设备接收的检索响应以单播方式发送给家庭内部的对应家庭DLNA设备,或者多播从所述SSDP中继设备接收的设备检索多播消息,获取家庭内部的家庭DLNA设备对该设备检索多播消息的检索响应,所述检索响应至少包括URL字段和ST字段,所述ST字段存储检索目标,并且将经过改写后的检索响应发送到所述SSDP中继设备;URL改写单元,用于基于家庭内部的家庭DLNA设备的唯一标识符(UUID),对从该家庭DLNA接收的所述检索响应进行URL改写,以及网关,包括Web代理服务器,其中,所述URL改写单元还包括:IP地址和端口改写单元,用于将所述检索响应的URL的IP地址和端口号分别改写为对端家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;URL路径改写单元,用于将所述检索响应的URL的路径部分改写为所述家庭DLNA设备的UUID。
[0016] 此外,优选地,在所述SSDP代理接收到多个经过URL改写后的检索响应时,所述SSDP代理还可以包括:ST字段值获取单元,用于从所述SSDP中继设备所接收的经过URL改写后的检索响应中获取所述ST字段的值;套接字创建单元,用于使用socket创建用于单播的UDP套接字sock;匹配家庭DLNA设备确定单元,用于根据所述ST字段的值和所述SSDP代理所属家庭中发送设备检索多播请求的家庭DLNA设备的检索目标,确定与所述检索响应匹配的家庭DLNA设备,其中在确定出匹配的家庭DLNA设备后,所述SSDP代理通过所述UDP套接字sock,以单播方式将所述经过URL改写后的检索响应发送到所确定出的匹配家庭DLNA设备。
[0017] 根据本发明的另一方面,提供了一种基于SSDP代理和SSDP中继设备的家庭间DLNA设备发现方法,包括:在家庭DLNA设备上线后,生成设备上线通知消息,所述设备上线通知消息中至少包括URL字段;基于所述家庭DLNA设备的唯一标识符(UUID),对所生成的设备上线通知消息进行URL改写,通过所述家庭DLNA设备所属家庭中的第一SSDP代理和第一SSDP中继设备,经由VPN隧道将所述经过URL改写后的设备上线通知消息发送到所述对端家庭中的第二SSDP中继设备;通过所述对端家庭中的第二SSDP代理,以多播方式向所述对端家庭中的家庭DLNA设备发送所述经过URL改写后的设备上线通知消息,其中,对所述设备上线通知消息进行URL改写的步骤包括:将所述设备上线通知消息中的URL的IP地址和端口号分别改写为所述对端家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;将所述设备上线通知消息中的URL的路径部分改写为所述家庭DLNA设备的UUID。
[0018] 根据本发明的另一方面,提供了一种家庭间DLNA设备发现装置,包括:设备上线通知消息生成单元,用于在家庭DLNA设备上线后,生成设备上线通知消息,所述设备上线通知消息中至少包括URL字段;URL改写单元,用于基于所述家庭DLNA设备的唯一标识符(UUID),对所述设备上线通知消息进行URL改写,SSDP中继设备,用于将从SSDP代理接收的来自家庭内部的家庭DLNA设备的所述设备上线通知消息通过VPN隧道发送到所述对端家庭,或者从所述对端家庭接收所述设备上线通知消息并发送给家庭内部的SSDP代理;SSDP代理,用于将从所述URL改写单元接收的经过URL改写后的设备上线通知消息发送到所述SSDP中继设备,或者将从所述SSDP中继设备接收的所述对端家庭所发送的经过URL改写后的设备上线通知消息,以多播方式向家庭内部的家庭DLNA设备发送所述经过URL改写后的设备上线通知消息;以及网关,包括Web代理服务器,其中,所述URL改写单元还包括:IP地址和端口改写单元,用于将所述设备上线通知消息的URL的IP地址和端口号分别改写为所述家庭DLNA设备所属家庭的对端家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;URL路径改写单元,用于将所述设备上线通知消息的URL的路径部分改写为所述家庭DLNA设备的UUID。
[0019] 根据本发明的另一方面,提供了一种家庭间DLNA设备发现系统,包括:如上所述的位于发送设备检索多播请求或接收设备上线通知消息的家庭中的家庭间DLNA设备发现装置;如上所述的位于接收设备检索多播请求或发送设备上线通知消息的家庭中的家庭间DLNA设备发现装置;VPN隧道,设置在两个家庭之间,用于在两个家庭之间进行数据传输;一个或多个位于发送设备检索多播请求或接收设备上线通知消息的家庭中的家庭DLNA设备;以及一个或多个位于接收设备检索多播请求或发送设备上线通知消息的家庭中的家庭DLNA设备。
[0020] 根据本发明的另一方面,提供了一种基于Web代理服务器的家庭DLNA设备控制方法,该方法由接收HTTP请求的对端家庭的Web代理服务器执行,所述方法包括:在通过专用端口接收到发出HTTP请求的本地家庭中的Web代理服务器经由VPN隧道中继的HTTP请求后,基于所存储的URL改写数据库,对所接收的HTTP请求中的URL进行改写,其中所述HTTP请求是本地家庭的Web代理服务器通过公用端口从本地家庭的家庭DLNA设备接收的,所存储的URL改写数据库是在进行家庭DLNA设备发现时建立的,并且在所述URL改写数据库中存储有改写前URL和改写后URL之间的对应关系;基于改写后的HTTP请求,获取与该改写后的HTTP对应的对端家庭中的家庭DLNA设备的IP地址和端口号;利用所获得的对端家庭中的家庭DLNA设备的IP地址和端口号,与对端家庭中的家庭DLNA设备建立通信连接,并通过所建立的通信连接,将改写后的HTTP请求发送给所述家庭DLNA设备;在改写后的HTTP请求是设备描述文件请求或SOAP请求时,接收来自所述家庭DLNA设备的完整响应数据;利用所存储的URL改写数据库对所接收的完整响应数据进行URL改写,并将改写后的响应数据中继给本地家庭的Web代理服务器,其中,在进行家庭DLNA设备发现时建立URL改写数据库的步骤包括:将要被发现的家庭DLNA设备中的包含有URL的消息中的URL的IP地址和端口号分别改写为发出设备检索多播请求的家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;将要被发现的家庭DLNA设备中的所述包含有URL的消息中的URL的路径部分改写为该家庭DLNA设备的UUID;以及建立URL改写数据库并将所述URL改写数据库存储在所述对端家庭的网关中,所述URL改写数据存储有改写前URL和改写后URL之间的对应关系。
[0021] 根据本发明的另一方面,提供了一种用于家庭DLNA设备控制的Web代理服务器,包括:接收单元,用于通过公用端口从所述Web代理服务器所属的本地家庭的家庭DLNA设备接收HTTP请求,以及接收来自本地家庭内的家庭DLNA设备的对该HTTP请求的响应数据,或者通过专用端口从对端家庭的Web代理服务器接收经由VPN隧道中继的HTTP请求;URL改写单元,用于在进行家庭DLNA设备发现期间,基于对端家庭的家庭DLNA设备的唯一标识符(UUID)建立URL改写数据库,并将所述URL改写数据库存储在所述Web代理服务器中,在所述URL改写数据库中存储有改写前URL和改写后URL之间的对应关系;HTTP请求改写单元,用于基于所存储的URL改写数据库,对通过专用端口从对端家庭中的Web代理服务器接收到的经由VPN隧道中继的HTTP请求中的URL进行改写;IP地址和端口号获取单元,用于基于改写后的HTTP请求,获取与该改写后的HTTP对应的本地家庭中的家庭DLNA设备的IP地址和端口号;通信连接建立单元,用于利用所获得的本地家庭中的家庭DLNA设备的IP地址和端口号,与本地家庭中的家庭DLNA设备建立通信连接;响应数据改写单元,用于基于所存储的URL改写数据库,对所接收的完整响应数据进行URL改写;发送单元,用于通过VPN隧道将HTTP请求发送到对端家庭,或者通过所建立的通信连接,将改写后的HTTP请求发送给本地家庭中的对应家庭DLNA设备,以及将响应数据经由VPN隧道中继给对端家庭的Web代理服务器,其中,在所述Web代理服务器用于接收HTTP请求时,在改写后的HTTP请求是设备描述文件请求或SOAP请求时,在所述接收单元接收到来自所述DLNA设备的完整响应数据后,所述响应数据改写单元对所接收的完整响应数据进行URL改写,并且所述发送单元将改写后的响应数据中继给本地家庭的Web代理服务器,其中,所述URL改写单元还包括:IP地址和端口改写单元,用于将要被发现的家庭DLNA设备的URL的IP地址和端口号分别改写为发出设备检索多播请求的家庭DLNA设备所属家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;URL路径改写单元,用于将要被发现的家庭DLNA设备的URL的路径部分改写为该家庭DLNA设备的UUID;以及URL改写数据库建立单元,用于建立URL改写数据库,在所述URL改写数据库中存储有改写前URL和改写后URL之间的对应关系。
[0022] 根据本发明的另一方面,提供了一种家庭DLNA设备控制系统,包括:如上所述的位于发出HTTP请求的家庭中的Web代理服务器;如上所述的位于接收HTTP请求的家庭中的Web代理服务器;VPN隧道,设置在两个家庭之间,用于在两个家庭之间进行数据传输;一个或多个位于发出HTTP请求的家庭中的家庭DLNA设备;以及一个或多个位于接收HTTP请求的家庭中的家庭DLNA设备。
[0023] 为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。

附图说明

[0024] 通过参考以下结合附图的说明及权利要求书的内容,本发明的上述和其它目的、特征和优点将更加明白及易于理解。在附图中:
[0025] 图1示出了根据本发明的用于对本地家庭中的家庭DLNA设备向对端家庭中的家庭DLNA设备发送的包含有URL的消息进行URL改写的方法的流程图;
[0026] 图2示出上述URL改写方法的一个示例的示意图;
[0027] 图3示出了根据本发明的用于对本地家庭中的家庭DLNA设备向对端家庭中的家庭DLNA设备发送的包含有URL的消息进行URL改写的URL改写装置的方框示意图;
[0028] 图4示出了根据本发明实施例的家庭间DLNA设备发现系统的方框示意图;
[0029] 图5示出了根据本发明的一个实施例的家庭间DLNA设备发现装置的方框示意图;
[0030] 图6示出了根据本发明的由包括图5中示出的家庭间DLNA设备发现装置的家庭间DLNA设备发现系统执行的家庭间DLNA设备发现过程的示图;
[0031] 图7示出了在发出设备检索多播消息的家庭中的SSID代理接收到多个经过URL改写后的检索响应时的处理过程的流程图;
[0032] 图8示出了根据本发明的另一实施例的家庭间DLNA设备发现装置的方框示意图;
[0033] 图9示出了根据本发明的由包括图8中示出的家庭间DLNA设备发现装置的家庭间DLNA设备发现系统执行的家庭间DLNA设备发现过程的示图;
[0034] 图10示出根据本发明的家庭间DLNA控制系统的方框示意图;
[0035] 图11示出了根据本发明实施例的Web代理服务器的方框示意图;
[0036] 图12示出了根据本发明的由包括图11中示出的Web代理服务器的家庭间DLNA控制系统执行的家庭间DLNA设备控制方法的流程图;和
[0037] 图13示出了在执行家庭间DLNA控制时由接收HTTP请求的对端家庭的Web代理服务器执行的过程的流程图。
[0038] 在所有附图中相同的标号指示相似或相应的特征或功能。

具体实施方式

[0039] 下面描述本公开的各个方面。应该明白的是,本文的教导可以以多种多样形式具体体现,并且在本文中公开的任何具体结构、功能或两者仅仅是代表性的。基于本文的教导,本领域技术人员应该明白的是,本文所公开的一个方面可以独立于任何其它方面实现,并且这些方面中的两个或多个方面可以按照各种方式组合。例如,可以使用本文所阐述的任何数目的方面,实现装置或实践方法。另外,可以使用其它结构、功能、或除了本文所阐述的一个或多个方面之外或不是本文所阐述的一个或多个方面的结构和功能,实现这种装置或实践这种方法。此外,本文所描述的任何方面可以包括权利要求的至少一个元素。
[0040] 以下将结合附图对根据本发明的家庭间DLNA设备发现和控制过程及装置进行详细描述。
[0041] 在家庭间DLNA设备发现和控制过程中,通常会涉及到设备检索响应,设备上线NOTIFY消息,设备描述文件,SOAP控制消息和事件订阅消息。这些消息中都包含URL,并且该URL只对本地家庭内部的设备有意义。如果要保证家庭间设备可以相互发现、控制和事件通知,必须对这些URL中进行改写。因此,在进行家庭间DLNA设备发现和控制时,需要对上述消息进行URL改写。
[0042] 在对根据本发明家庭间DLNA设备发现和控制过程及装置进行详细描述之前,下面首先描述根据本发明的对本地家庭中的家庭DLNA设备向对端家庭中的家庭DLNA设备发送的包含有URL的消息进行URL改写过程。
[0043] 图1示出了根据本发明的用于对本地家庭中的家庭DLNA设备向对端家庭中的家庭DLNA设备发送的包含有URL的消息进行URL改写的方法的流程图。
[0044] 如图1所示,在本地家庭中的家庭DLNA设备接收到对端家庭中的家庭DLNA设备发送的请求而要向对端家庭中的该家庭DLNA设备发送消息时,首先,在步骤S110中,将本地家庭中的家庭DLNA设备要发送的所述消息中的URL的IP地址和端口号分别改写为对端家庭的网关中的Web代理服务器的IP地址和监听端口的端口号。然后,在步骤S120中,将本地家庭的家庭DLNA设备要发送的所述消息中的URL的路径部分改写为该家庭DLNA设备的唯一标识符(UUID)。此外,优选地,如图1中所示,在对所述消息中的URL进行上述修改后,所述进行URL改写的方法还可以包括步骤S130,在步骤S130中,建立URL改写数据库并将所述URL改写数据库存储在本地家庭的网关中,所述URL改写数据存储有改写前URL和改写后URL之间的对应关系。在其它示例中,可以不需要步骤S130。
[0045] 下面将参照图2中示出的示例来对上述URL改写过程进行描述。
[0046] 图2中示出了两个通过Internet网络(例如,VPN隧道)互联的家庭A和B。家庭A中包括家庭网关A、两个DLNA设备,例如两个数字媒体服务器(DMS)A1和A2,其中家庭网关A的公有IP地址为202.118.1.1,VPN隧道的IP地址(即,Web代理服务器的IP地址)为10.0.0.1,Intranet IP地址为192.168.0.1,DMS A1和A2的IP地址分别为192.168.0.2和192.168.0.3。家庭B中包括家庭网关B、一个DLNA设备,比如数字媒体控制器(DMC)或数字媒体播放器(DMP),其中家庭网关B的公有IP地址为202.118.1.2,VPN隧道的IP地址(即,Web代理服务器的IP地址)为10.0.0.2,Intranet IP地址为192.168.0.1,DMC或DMP的IP地址分别为192.168.0.1。假定DMS A1和DMS A2的唯一标识符(UUID)分别为U1和U2。所述唯一标识符例如可以为设备标识符等。此外,假设DMS A1和DMS A2设备描述文件的URL分别如下:
[0047] DMS A1:http://192.168.0.2:41952/description.html,
[0048] DMS A2:http://192.168.0.3:41952/description html。
[0049] 显然DMS A1和DMS A2的URL对家庭B内的DMC或DMP是没有任何意义的。如果不对URL进行任何处理,家庭B内的DMC或DMP将不能获取DMS A1和DMS A2的设备描述文件。
[0050] 当在根据本发明对图2中的DMS A1和A2接收到DMC或DMP的请求而要向DMC或DMP发送的消息中的URL进行改写时,首先,将DMS A1和A2的URL的IP和端口号分别改写为对端家庭(即,家庭B)的网关上Web代理服务器的IP地址和Web代理服务器的监听端口8080。此时,DMS A1和DMS A2设备描述文件的URL被改写为:
[0051] DMS A11:http://10.0.0.2:8080/description.html,
[0052] DMS A21:http://10.0.0.2:8080/description.html。
[0053] 然后,将DMS A1和DMS A2的URL中路径部分(描述文件)改写为DMS A1和A2的UUID,从而将DMS A1和A2的URL进一步改写成如下的格式:
[0054] DMS A1:http://10.0.0.2:8080/U1,
[0055] DMS A2:http://10.0.0.2:8080/U2。
[0056] 在对DMS A1和A2的URL进行上述改写后,建立URL改写数据库,在该URL改写数据库中存储改写前URL和改写后URL的对应关系,如表1所示,并且将所建立的URL改写数据库存储在家庭A的网关中,例如网关中的Web代理服务器中。
[0057]名称 改写前URL 改写后URL
A1 http://192.168.0.2:41952/description.html http://10.0.0.2:8080/UI
A2 http://192.168.0.3:41952/description.html http://10.0.0.2:8080/U2[0058] 表1改写前URL与改写后URL映射关系
[0059] 在进行家庭间DLNA设备发现和控制过程中进行消息改写时所涉及的消息可以是设备检索响应、设备上线通知消息、设备描述文件、事件订阅消息和SOAP控制消息中之一。
[0060] 下面对在DLNA设备发现和控制时需要进行URL改写的各个消息分别进行详细描述。
[0061] 1.1设备检索响应消息改写
[0062] 检索响应消息的格式如下:
[0063] HTTP/1.1200OK
[0064] CACHE-CONTROL:max-age=设备的超时时间
[0065] DATE:响应生成时间
[0066] EXT:
[0067] LOCATION:设备描述文件URL
[0068] SERVER:操作系统/版本UPnP/1.0产品/版本
[0069] ST:检索目标
[0070] USN:设备的UUID
[0071] 从该消息的上述格式中可以看出,该消息的LOCATION字段记录了设备描述文件的URL。利用如上参照图2所述的URL改写方法对该URL进行改写,并将改写前后的URL存入URL改写数据库中。
[0072] 1.2.设备上线通知消息改写
[0073] 设备上线通知消息格式如下:
[0074] NOTIFY*HTTP/1.1
[0075] HOST:239.255.255.250:1900
[0076] CACHE-CONTROL:max-age=设备超时时间
[0077] LOCATION:设备描述文件URL
[0078] NT:检索目标
[0079] NTS:ssdp:alive
[0080] SERVER:操作系统/版本UPnP/1.0产品/版本
[0081] USN:设备的UUID
[0082] 同样,在该消息的LOCATION字段中记录了设备描述文件的URL。利用如上参照图2所述的URL改写方法对该URL进行改写,并将改写前后的URL存入URL改写数据库中。
[0083] 1.3设备描述文件改写
[0084] 设备描述文件的格式如下(以下仅列出了关键字段和需要修改的字段):
[0085]
[0086]
[0087] 在设备描述文件中,需要改写的元素包括是DMS或DMR设备提供的设备图标,以方便于DMC或DMP界面显示。元素值直接采用如上参照图2所述的改写方式进行URL改写。而的值为相对URL,即只有URL中的路径部分,不包括主机和端口部分。为设备描述文件中这些相对URL的前缀,如http://192.168.0.1:41952。但该元素在设备描述文件中属于可选元素。下面分两种情况分别介绍设备描述文件中的URL改写过程。
[0088] 1.3.1.当设备描述文件中存在元素时
[0089] 将中的主机地址和端口分别改写为对端家庭网关上Web代理服务器的IP和端口。仍以图2为例,DMS A1的设备描述文件改写前,元素的值为:http://192.168.0.2:41952,则改写后元素的值为:http://10.0.0.2:8080。
[0090] 然后,基于scpd_url,ctrl_url和event_url的名称分别生成相应的UUID:u_scpd_url,u_ctrl_url 和,u_event_url,分 别 代 替 元素原来的值scpd_url,ctrl_url和event_url。并把表2所示的URL映射关系加入到“URL改写数据库”中。
[0091]改写前URL 改写后URL
http://192.168.0.2:41952/scpd_url http://10.0.0.2:8080/u_scpd_url
http://192.168.0.2:41952/ctrl_url http://10.0.0.2:8080/u_ctrl_url
http://192.168.0.2:41952/event_url http://10.0.0.2:8080/u_event_url[0092] 表2URL映射关系
[0093] 1.3.2.当设备描述文件不存在元素时
[0094] 当在设备描述文件中不存在元素时,设备描述文件中的相对URL的前缀可以从“检索响应”或“设备上线通知消息”中的LOCATION字段提取得到。在获取URL前缀后,可以参照上述1.3.1.中所示的方式对其进行改写。
[0095] 1.4订阅消息改写
[0096] DMC或DMP可以订阅设备的服务,待服务的状态发生变化时,DMC或DMP可以收到通知。在实现家庭间媒体共享时,需要对DMC或DMP发送的事件订阅消息进行重新改写。
[0097] 事件订阅消息的格式如下:
[0098] SUBSCRIBE 事件URL HTTP/1.1
[0099] HOST:服务所在主机:服务所在主机的端口号
[0100] CALLBACK:<服务向订阅者发送消息时采用的URL>
[0101] NT:upnp:event
[0102] TIMEOUT:Second-请求的订阅有效时间
[0103] 在该消息中,CALLBACK字段的值是一个绝对形式的URL。服务要发送事件通知消息时,会向该URL发送HTTP GET请求,将事件消息的内容传递给订阅者。该URL需要采用如上参照图2所述的方式进行改写。
[0104] 1.5.SOAP消息改写
[0105] DMC或DMP通过向DMS或DMR发送SOAP消息控制二者的运行。在实现家庭间媒体共享时,有3种类型的SOAP消息(包括请求和响应)需要被改写。
[0106] 1.5.1.Browse动作调用的响应
[0107] Browse是内容目录服务提供的动作。DMC或DMP可以通过该动作浏览DMS上面的媒体文件。DLNA采用DIDL-Lite XML语法描述返回的媒体文件或目录的元数据。DIDL-Lite中的元素对应于目录的元数据,而元素对应于媒体文件的元数据。元素中会有一或多个子元素,该元素文本结点的值表示媒体文件的URL。对于家庭间的媒体共享,中的URL需要被改写,使其重定向到对端家庭网关的Web代理服务器。中的URL为绝对URL,因此采用上述参照图2所述的方式进行URL改写。
[0108] 1.5.2.Search动作调用的响应
[0109] Search动作也是内容目录服务提供的一个动作。通过该动作,DMC或DMP可以检索DMS上符合条件的媒体文件或目录。返回的元数据同样以DIDL-Lite格式描述,其改写方式与Browse动作调用中的改写方式相同。
[0110] 1.5.3.SetAVTransportURI动作调用
[0111] SetAVTransportURI动作是AV传输服务提供的动作。DMC调用该动作设置DMR要播放的媒体文件的URL和对应的媒体元数据。媒体文件的URL为绝对URL的形式,可以按照如图2中所述的URL改写方式进行改写。而媒体元数据采用DIDL-Lite格式进行描述,改写方式与Browse或Search动作调用中的改写方式相同,在此不再赘述。
[0112] 如上参照图1到图2对根据本发明的URL改写方法以及在进行DLNA设备发现和控制时需要改写的各种消息的格式和改写方式进行了描述。
[0113] 图3示出了根据本发明的用于对本地家庭中的家庭DLNA设备向对端家庭中的家庭DLNA设备发送的包含有URL的消息进行URL改写的URL改写装置300的方框示意图。
[0114] 如图3所示,所述URL改写装置300包括IP地址和端口号改写单元310以及URL路径改写单元330。
[0115] 所述IP地址和端口改写单元310用于将本地家庭中的家庭DLNA设备要发送的所述消息中的URL的IP地址和端口号分别改写为对端家庭的网关中的Web代理服务器的IP地址和监听端口的端口号。所述URL路径改写单元330用于将本地家庭的家庭DLNA设备要发送的所述消息中的URL的路径部分改写为该家庭DLNA设备的唯一标识符(UUID)。
[0116] 此外,优选地,所述URL改写装置300还可以包括URL改写数据库建立单元350。在对所述消息中的URL进行上述修改后,所述URL改写数据库建立单元350建立URL改写数据库并将该URL改写数据库存储在本地家庭的网关中,在所述URL改写数据库中存储有改写前URL和改写后URL之间的对应关系。在一个或多个替换实例中,所述URL改写装置
300可以不包括URL改写数据库建立单元350。
[0117] 此外,所述要被改写的消息可以是设备检索响应、设备上线通知消息、设备描述文件、事件订阅消息和SOAP控制消息中之一。
[0118] 在如上对根据本发明的对在DLNA设备发现和控制时要被改写的消息进行URL改写的方法描述后,下面将具体描述根据本发明的家庭间DLNA设备发现过程和家庭间DLNA设备控制过程,这两个过程都包含有上述URL改写过程。
[0119] (家庭间DLNA设备发现过程)
[0120] 图4示出了根据本发明实施例的家庭间DLNA设备发现系统400的方框示意图。
[0121] 如图4所示,所述家庭DLNA设备发现系统400包括本地家庭端,对端家庭端以及VPN隧道。所述本地家庭端包括一个或多个DLNA设备1以及家庭间DLNA发现设备1,用于发出设备检索多播消息。所述对端家庭端包括一个或多个DLNA设备2以及家庭间DLNA发现设备2,用于接收设备检索多播消息以及发送检索响应。优选地,家庭间DLNA发现设备1和家庭间DLNA发现设备2可以完全相同。此外,图4中所示的本地家庭端和对端家庭端是可互易的。也就是,在替换示例中,图4中示出的本地家庭端可以用作对端家庭端,以及图4中示出的对端家庭端可以用作本地家庭端。
[0122] 所述VPN隧道位于两个家庭端之间,用于在两个家庭端之间进行数据传输。所述一个或多个DLNA设备1或者所述一个或多个DLNA设备可以是数字媒体渲染设备(DMR)、数字媒体服务器(DMS)、数字媒体播放器(DMP)和数字媒体控制器(DMC)中之一。
[0123] 图4中示出的家庭间DLNA设备发现装置1和/或2的结构将在下面描述。
[0124] 图5中示出了根据本发明的一个实施例的家庭间DLNA设备发现装置500的方框示意图。所述家庭间DLNA设备发现装置500可以位于本地家庭端,也可以位于对端家庭端。
[0125] 如图5中所示,所述家庭间DLNA设备发现装置500包括SSDP中继设备510、SSDP代理520、URL改写单元530以及网关540。
[0126] 当所述家庭间DLNA设备发现装置500位于发送设备检索多播请求的家庭(即,本地家庭端)时,所述SSDP中继设备510将从SSDP代理520接收的设备检索多播消息经由VPN隧道发送到所述对端家庭,以及从所述对端家庭接收对设备检索多播消息的检索响应并发送给SSDP代理520。所述SSDP代理520将以多播方式从家庭内的家庭DLNA设备接收的设备检索多播消息发送到所述SSDP中继设备510,以及将从所述SSDP中继设备510接收的检索响应以单播方式发送给家庭内的对应家庭DLNA设备。
[0127] 当所述家庭间DLNA设备发现装置位于接收设备检索多播请求的家庭(即,对端家庭端)时,所述SSDP中继设备510将从所述对端家庭接收的设备检索多播消息发送到SSDP代理520,以及向所述对端家庭发送从SSDP代理520接收的对设备检索多播消息的检索响应。所述SSDP代理520多播从所述SSDP中继设备接收的设备检索多播消息,获取家庭内部的家庭DLNA设备对该设备检索多播消息的检索响应,并且将经过改写后的检索响应以单播方式发送到所述SSDP中继设备510。
[0128] URL改写单元530用于基于家庭内部的家庭DLNA设备的唯一标识符(UUID),对从该家庭DLNA接收的所述检索响应进行URL改写。所述URL改写单元530还可以包括IP地址和端口号改写单元531以及URL路径改写单元533。所述IP地址和端口改写单元531用于将所述检索响应的URL的IP地址和端口号分别改写为所述家庭DLNA设备所属家庭的对端家庭的网关中的Web代理服务器的IP地址和监听端口的端口号。所述URL路径改写单元533用于将所述检索响应的URL的路径部分改写为所述家庭DLNA设备的UUID。此外,优选地,所述URL改写单元530还可以包括URL改写数据库建立单元535,所述URL改写数据库建立单元535用于建立URL改写数据库并将所建立的URL改写数据库存储在所述家庭DLNA设备所属家庭的网关的Web代理服务器中,在所述URL改写数据库中存储有改写前URL和改写后URL之间的对应关系。在一个或多个替换示例中,所述URL改写装置530也可以不包括URL改写数据库建立单元350。
[0129] 所述网关包括Web代理服务器,除了用作常规的网关之外,所述网关还可以存储URL改写单元530所获得的URL改写数据库。
[0130] 优选地,在另一示例中,在所述SSDP代理接收到多个经过URL改写后的检索响应时,所述SSDP代理520还可以包括ST字段值获取单元、套接字创建单元和匹配家庭DLNA设备确定单元,但是在图5中上述部件都没有示出。
[0131] 所述ST字段值获取单元用于从所述SSDP中继设备所接收的经过URL改写后的检索响应中获取所述ST字段的值。所述套接字创建单元用于使用socket创建用于单播的UDP套接字sock。所述匹配家庭DLNA设备确定单元用于根据所述ST字段的值和所述SSDP代理所属家庭中发送设备检索多播请求的家庭DLNA设备的检索目标,确定与所述检索响应匹配的家庭DLNA设备。
[0132] 在确定出匹配的家庭DLNA设备后,所述SSDP代理520通过所述UDP套接字sock,以单播方式将所述经过URL改写后的检索响应发送到所确定出的匹配家庭DLNA设备。
[0133] 图6示出了由包括图5中示出的家庭间DLNA设备发现装置500的家庭间DLNA设备发现系统所执行的家庭间DLNA设备发现过程的示图。
[0134] 图6中所示的家庭间DLNA设备发现过程通过本地家庭端、对端家庭端以及VPN隧道实现。
[0135] 如图6所示,首先在步骤S601中,本地家庭端的DLNA设备(DMC或DMP)以多播方式向第一SSDP代理发送设备检索多播消息M-SERACH。
[0136] 在接收到该设备检索多播消息M-SEARCH后,在步骤S602,第一SSDP代理将该设备检索多播消息M-SEARCH发送到第一SSDP中继设备。具体地,本地SSDP代理模块初始化时首先通过socket系统调用来建立用于接收多播消息的UDP套接字local_ssdp_recv_socket,从而利用该套接字来从DLNA设备接收设备检索多播消息M-SEARCH。然后,将所接收的设备检索多播消息M-SEARCH发送给第一SSDP中继设备。因为家庭网关一般存在至少2个网络接口,一个用于连接Internet,另外一个用于连接家庭内部的Intranet。本地SSDP模块只在连接Intranet的接口上调用bind系统调用来在地址239.255.255.250和端口1900上监听。
[0137] 然后,在步骤S603,在接收到设备检索多播消息M-SEARCH后,第一SSDP中继设备经由VPN隧道,将其中继给对端家庭端的第二SSDP中继设备。在SSDP中继设备之间进行数据传输采用UDP。SSDP中继模块初始化时通过socket建立UDP套接字ssdp_relay_recv_socket和ssdp_relay_send_socket。然后,通过bind设置ssdp_relay_recv_socket在VPN隧道指定的的44444端口监听对端SSDP中继模块发送的数据。ssdp_relay_send_socket用于向对端SSDP中继模块中继SSDP消息。
[0138] 在接收到第一SSDP中继设备中继的设备检索多播消息M-SEARCH后,在步骤S604,第二SSDP中继设备将其发送到第二SSDP代理。然后,在步骤S605,第二SSDP代理通过socket函数创建用于发送多播消息的UDP套接字local_ssdp_send_socket,然后将该检索多播消息M-SEARCH以多播的方式发送给对端家庭端的家庭DLNA设备(DMS或DMR)。为防止该套接字向239.255.255.250地址,1900端口发送多播消息时出现“Network is Unreachable”错误,本地SSDP代理模块调用setsockopt函数将连接Intranet网络接口的地址设定为local_ssdp_send_socket发送多播消息时采用的网络地址。
[0139] 在步骤S606中,DMS或DMR将对该检索多播消息M-SEARCH的检索响应以多播方式发送给第二SSDP代理。
[0140] 在步骤S607,第二SSDP代理将经过URL改写后的检索响应发送给第二SSDP中继设备。对检索响应进行URL改写的过程与根据图1所述的URL改写过程类似,在图6中没有示出。具体地,将所述检索响应中的URL的IP地址和端口号分别改写为所述本地家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;将所述检索响应中的URL的路径部分改写为所述对端家庭中的所述家庭DLNA设备的UUID。此外,优选地,建立URL改写数据库并将所述URL改写数据库存储在所述对端家庭的网关中,所述URL改写数据存储有改写前URL和改写后URL之间的对应关系。在一个或多个替换示例中,可以不包括建立和存储URL改写数据库的步骤。
[0141] 然后,在步骤S608中,第二SSDP中继设备经由VPN隧道,将经过URL改写后的检索响应发送到第一SSDP中继设备。
[0142] 在接收到经过URL改写后的检索响应后,在步骤S609中,第一SSDP中继设备将其发送给第一SSDP代理。然后,在步骤S610中,第一SSDP代理将所接收的经过URL改写后的检索响应经过处理后,以单播方式将其发送到本地家庭中的对应家庭DLNA设备。
[0143] 为了使本地SSDP代理模块在收到对端家庭设备发送的检索响应后,能够将该响应发送给本地家庭内发送M-SEARCH检索请求消息的DMC或DMP。本地SSDP代理模块使用如下的结构记录发送检索请求的DMC或DMP:
[0144]
[0145] 该结构中address和port字段分别保存发送检索请求主机的IP地址和端口。而search_target用于保存检索请求的类型,比如检索DMS还是DMR。该值可以从M-SEARCH检索请求的ST字段提取得到。如果本地SSDP代理模块同时收到DMS、DMR等多类设备的响应时,可以用search_target字段判断是否将该响应发送给请求者,这将下面参照图7进行说明。time_stamp记录本地SSDP代理模块接收到检索请求的时间。mx_time字段保存的是M-SEARCH消息中MX字段的值。当且仅当如式(1)的条件满足时,searcher结点才可以被释放。
[0146] current_time_stamp>mx_time+time_stamp (1)
[0147] 如果所述第一SSDP代理接收到多个经过URL改写后的检索响应,则所述第一SSDP代理还需要对经过URL改写后的检索响应进行如图7中所示的处理过程。
[0148] 如图7中所示,在步骤S710中,从所述第一SSDP中继设备所接收的经过URL改写后的检索响应中获取所述ST字段的值。然后,在步骤S720中,使用socket创建用于单播的UDP套接字sock。
[0149] 在步骤S730中,确定是否可以从检索请求列表中获取下一个发出设备检索多播消息的DLNA设备Seracher。如果获取成功,则进行到步骤S740。否则,流程结束。
[0150] 在步骤S740,判断所述ST字段的值和所述DLNA设备Searcher的结构中的seracher_target字段中所存储的检索目标是否匹配。如果匹配,则进行到步骤S750。否则,返回到步骤S730。
[0151] 在步骤S750,通过所述UDP套接字sock,以单播方式将所述经过URL改写后的检索响应发送到所确定出的匹配家庭DLNA设备。
[0152] 图8示出了根据本发明的另一实施例的家庭间DLNA设备发现装置800的方框示意图。如图8所示,所述家庭间DLNA设备发现装置800包括SSDP中继设备810、SSDP代理820、URL改写单元830、网关840以及设备上线消息生成单元850。
[0153] 在所述家庭间DLNA设备发现装置800位于用于发出设备上线通知消息的家庭中时,所述SSDP中继设备810用于将从SSDP代理820接收的来自家庭内部的家庭DLNA设备的所述设备上线通知消息通过VPN隧道发送到所述对端家庭。所述SSDP代理820用于将从所述URL改写单元830接收的经过URL改写后的设备上线通知消息发送到所述SSDP中继设备810。
[0154] 在所述家庭间DLNA设备发现装置800位于用于接收设备上线通知消息的家庭中时,所述SSDP中继设备810从所述对端家庭接收所述设备上线通知消息并发送给家庭内部的SSDP代理820。所述SSDP代理820将从所述SSDP中继设备接收的所述对端家庭所发送的经过URL改写后的设备上线通知消息,以多播方式向家庭内部的家庭DLNA设备发送所述经过URL改写后的设备上线通知消息。
[0155] 所述设备上线通知消息生成单元850用于在家庭DLNA设备上线后,生成设备上线通知消息,所述设备上线通知消息中至少包括URL字段。
[0156] 所述URL改写单元830用于基于所述家庭DLNA设备的唯一标识符(UUID),对所述设备上线通知消息进行URL改写。所述URL改写单元830还可以包括IP地址和端口改写单元831以及URL路径改写单元833。
[0157] 所述IP地址和端口改写单元831用于将所述设备上线通知消息的URL的IP地址和端口号分别改写为所述家庭DLNA设备所属家庭的对端家庭的网关中的Web代理服务器的IP地址和监听端口的端口号。所述URL路径改写单元833用于将所述设备上线通知消息的URL的路径部分改写为所述家庭DLNA设备的UUID。此外,优选地,如图8所示,所述URL改写单元830还可以包括URL改写数据库建立单元835,所述URL改写数据库建立单元835用于建立URL改写数据库并将所建立的URL改写数据库分别存储在所述家庭DLNA设备所属家庭的网关中,在所述URL改写数据库中存储有改写前URL和改写后URL之间的对应关系。在一个或多个替换示例中,所述URL改写单元830也可以不包括URL改写数据库建立单元835。
[0158] 所述网关包括Web代理服务器,除了用作常规的网关之外,所述网关还可以存储所述URL改写数据库。
[0159] 图9示出了根据本发明的由包括图8中示出的家庭间DLNA设备发现装置800的家庭间DLNA设备发现系统所执行的家庭间DLNA设备发现过程的流程图。
[0160] 如图9所示,首先,在家庭DLNA设备上线后,生成设备上线通知消息,所述设备上线通知消息中至少包括URL字段。然后,在步骤S901,将该设备上线通知消息发送给第一SSDP代理。
[0161] 在接收到该设备上线通知消息后,第一SSDP代理将其发送到URL改写单元,基于所述家庭DLNA设备的唯一标识符(UUID),对所述设备上线通知消息进行URL改写,然后将改写后的设备上线通知消息发送给第一SSDP代理。对设备上线通知消息进行URL改写的过程与根据图1所述的URL改写过程类似,在图9中没有示出。具体地,将所述设备上线通知消息中的URL的IP地址和端口号分别改写为所述对端家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;将所述设备上线通知消息中的URL的路径部分改写为所述家庭DLNA设备的UUID;以及建立URL改写数据库并将所述URL改写数据库存储在所述家庭DLNA设备所属家庭的网关中,所述URL改写数据存储有改写前URL和改写后URL之间的对应关系。同样,在一个或多个替换示例中,也可以不包括建立并存储URL改写数据库的步骤
[0162] 然后,在步骤S902,第一SSDP代理将经过改写后的设备上线通知消息发送给第一SSDP中继设备。在接收到经过改写后的设备上线通知消息后,在步骤S903,第一SSDP中继设备经由VPN隧道,将其中继到第二SSDP中继设备。
[0163] 在接收到经过改写后的设备上线通知消息后,在步骤S904,第二SSDP中继设备将其发送到第二SSDP代理。然后,在步骤S905,第二SSDP代理以多播方式向所述对端家庭中的家庭DLNA设备发送所述经过URL改写后的设备上线通知消息。
[0164] 图10示出根据本发明的家庭间DLNA控制系统1000的方框示意图。如图10所示,所述家庭DLNA设备发现系统1000包括本地家庭端,对端家庭端以及VPN隧道。所述本地家庭端包括一个或多个DLNA设备1以及Web代理服务器1000-1,用于发出HTTP请求。所述对端家庭端包括一个或多个DLNA设备2以及Web代理服务器1000-2,用于接收HTTP请求以及发送检索响应。优选地,Web代理服务器1000-1和Web代理服务器1000-2可以完全相同。此外,图10中所示的本地家庭端和对端家庭端是可互易的。也就是,在替换示例中,图10中示出的本地家庭端可以用作对端家庭端,以及图10中示出的对端家庭端可以用作本地家庭端。
[0165] 所述VPN隧道位于两个家庭端之间,用于在两个家庭端之间进行数据传输。所述一个或多个DLNA设备1或者所述一个或多个DLNA设备可以是数字媒体渲染设备(DMR)、数字媒体服务器(DMS)、数字媒体播放器(DMP)和数字媒体控制器(DMC)中之一。
[0166] 图11示出了根据本发明实施例的用于家庭间DLNA设备控制的Web代理服务器1100的方框示意图。如图11所示,所述Web代理服务器1100包括接收单元1110、HTTP请求改写单元1120、URL改写单元1130、IP地址和端口号获取单元1140、通信连接建立单元
1150、响应数据改写单元1160以及发送单元1170。
[0167] 在所述Web代理服务器1100位于本地家庭端时,所述接收单元1110用于通过公用端口从所述Web代理服务器所属的本地家庭的家庭DLNA设备接收HTTP请求,以及接收来自本地家庭内的家庭DLNA设备的对该HTTP请求的响应数据。所述发送单元1170用于通过VPN隧道将HTTP请求发送到对端家庭。
[0168] 在所述Web代理服务器1100位于对端家庭端时,所述接收单元1110通过专用端口从对端家庭的Web代理服务器接收经由VPN隧道中继的HTTP请求。所述发送单元1170用于通过所建立的通信连接,将改写后的HTTP请求发送给本地家庭中的对应家庭DLNA设备,以及将响应数据经由VPN隧道中继给对端家庭的Web代理服务器。
[0169] URL改写单元1130用于在进行家庭DLNA设备发现期间,基于对端家庭的家庭DLNA设备的唯一标识符(UUID)建立URL改写数据库,并将所述URL改写数据库存储在所述Web代理服务器中,在所述URL改写数据库中存储有改写前URL和改写后URL之间的对应关系。所述URL改写单元还包括:IP地址和端口改写单元,用于将要被发现的家庭DLNA设备的URL的IP地址和端口号分别改写为发出设备检索多播请求的家庭DLNA设备所属家庭的网关中的Web代理服务器的IP地址和监听端口的端口号;URL路径改写单元,用于将要被发现的家庭DLNA设备的URL的路径部分改写为该家庭DLNA设备的UUID;以及URL改写数据库建立单元,用于建立URL改写数据库,在所述URL改写数据库中存储有改写前URL和改写后URL之间的对应关系。
[0170] 所述HTTP请求改写单元1120用于在所述Web代理服务器位于对端家庭端时,基于所存储的URL改写数据库,对通过专用端口从本地家庭端的Web代理服务器接收到的经由VPN隧道中继的HTTP请求中的URL进行改写。
[0171] 所述IP地址和端口号获取单元1140用于基于改写后的HTTP请求,获取与该改写后的HTTP对应的本地家庭中的家庭DLNA设备的IP地址和端口号。
[0172] 通信连接建立单元1150用于利用所获得的家庭内部的家庭DLNA设备的IP地址和端口号,与该家庭DLNA设备建立通信连接。
[0173] 响应数据改写单元1160用于基于所存储的URL改写数据库,对所接收的完整响应数据进行URL改写。
[0174] 其中,当所述Web代理服务器位于用于接收HTTP请求的家庭中时,在改写后的HTTP请求是设备描述文件请求或SOAP请求时,在所述接收单元1110接收到来自所述DLNA设备的完整响应数据后,所述响应数据改写单元1160才对所接收的完整响应数据进行URL改写,并且所述发送单元1170将改写后的响应数据中继给本地家庭的Web代理服务器,否则,所述接收单元接收到响应数据后,就直接中继给本地家庭的Web代理服务器。
[0175] 图12示出了根据本发明的由包括图11中示出的Web代理服务器1100的家庭间DLNA控制系统1000执行的家庭间DLNA设备控制方法的流程图。
[0176] 如图12中所示,在步骤S1201,第一Web代理服务器通过公用端口(例如,端口8080)接收DMP所发送的HTTP请求。然后,在步骤S1202,第一Web代理服务器经由VPN隧道,将该HTTP中继给对端家庭端中的第二Web代理服务器。然后,在步骤S1203中,第二Web代理服务器对通过专用端口(例如端口8081)接收(监听到)的HTTP请求进行改写,并将经过改写后的HTTP请求通过利用改写后的HTTP请求而建立的通信连接发送到DMS。
在S1204中,第二Web代理服务器通过所建立的通信连接从DMS接收HTTP响应数据。然后,在S1205中,将经过URL改写后的HTTP响应数据,经由VPN隧道发送到本地家庭端的Web代理服务器。
[0177] 关于对端家庭端的Web代理服务器所执行的过程将参照图13进行详细描述。图13示出了一种在执行家庭间DLNA控制时由接收HTTP请求的对端家庭的Web代理服务器(例如图12中位于左端的Web代理服务器)执行的过程的流程图。
[0178] 如图13所示,首先在步骤S1310中,在通过专用端口(例如,端口8081)接收到发出HTTP请求的本地家庭中的Web代理服务器经由VPN隧道中继的HTTP请求后,基于所存储的URL改写数据库,对所接收的HTTP请求中的URL进行改写,其中所述HTTP请求是本地家庭的Web代理服务器通过公用端口(例如,端口8080)从本地家庭的家庭DLNA设备接收的,所存储的URL改写数据库是在进行家庭DLNA设备发现时建立的,并且在所述URL改写数据库中存储有改写前URL和改写后URL之间的对应关系。建立URL改写数据库的过程与前述完全相同,在此不再赘述。关于HTTP请求的改写过程将在下面进行详细描述。
[0179] 然后,在步骤S1320中,基于改写后的HTTP请求,获取与该改写后的HTTP对应的对端家庭中的家庭DLNA设备的IP地址和端口号。
[0180] 在步骤S1330中,利用所获得的对端家庭中的家庭DLNA设备的IP地址和端口号,与对端家庭中的家庭DLNA设备建立通信连接。并在步骤S1340中,通过所建立的通信连接,将改写后的HTTP请求以多播方式发送给所述家庭DLNA设备。
[0181] 在步骤S1350中,判断改写后的HTTP请求是否是设备描述文件请求或SOAP请求。在改写后的HTTP请求是设备描述文件请求或SOAP请求时,在步骤S1360中,接收来自所述家庭DLNA设备的响应数据,直到接收来自所述家庭DLNA设备的完整响应数据。然后,在步骤S1380中,利用所存储的URL改写数据库对所接收的完整响应数据进行URL改写,然后流程进行到步骤S1390。
[0182] 在改写后的HTTP请求不是设备描述文件请求或SOAP请求时,在步骤S1370中,接收来自所述家庭DLNA设备的响应数据,并且流程进行到步骤S1390,而不用等到接收到来自所述家庭DLNA设备的完整响应数据。
[0183] 在步骤S1390中,将所接收的响应数据中继给本地家庭的第一Web代理服务器。
[0184] 下面以一个示例来描述基于所存储的URL改写数据库,对所接收的HTTP请求中的URL进行改写的过程。
[0185] 假设“URL改写数据库”中的DMS A1的内容如下(网络拓扑结构如图2所示):
[0186] 改写前URL:http://192.168.0.2:41952/description.html,
[0187] 改写后URL为:
[0188] http://10.0.0.2:8080/41f955b0-6146-4750-97ed-561f39a5aae4。
[0189] 经过中继后,家庭网关A上的Web代理服务器从专用端口(以端口8081为例)收到如下格式的HTTP请求:
[0190] GET/41f955b0-6146-4750-97ed-561f39a5aae4HTTP/1.1
[0191] 或
[0192] POST/41f955b0-6146-4750-97ed-561f39a5aae4HTTP/1.1
[0193] Web代理服务器从该请求中提取对端Web服务器请求的URL路径/41f955b0-6146-4750-97ed-561f39a5aae4,然后组装成绝对形式的URL:
[0194] http://10.0.0.2:8080/41f955b0-6146-4750-97ed-561f39a5aae4[0195] 然后,该Web代理服务器从“URL改写数据库”中查找得到该改写后的URL对应的改写前URL:
[0196] http://192.168.0.2:41952/description.html
[0197] Web代理服务器从该URL中获取家庭A内DMS设备A1的主机地址192.168.0.2和端口41952,并将HTTP请求改写成如下的格式:
[0198] GET/description.html HTTP/1.1
[0199] …
[0200] 或
[0201] POST/description.html HTTP/1.1
[0202] …。
[0203] 关于利用所存储的URL改写数据库对所接收的完整响应数据进行URL改写的过程,与上面类似,在此不再描述。
[0204] 有益效果
[0205] 通过以上结合附图对本发明实施例的详细描述,不难看出:本发明提供的家庭间DLNA设备发现和控制方法,实现了URL中包含的IP地址和端口号到对端家庭的多对一映射,即不同IP地址和端口号均映射到对端家庭同一IP和端口号,从而使得根据本发明的家庭间DLNA设备发现和控制方法及装置具有较低的实现成本和良好的扩展性。
[0206] 尽管前面公开的内容示出了本发明的示例性实施例,但是应当注意,在不背离权利要求限定的本发明的范围的前提下,可以进行多种改变和修改。根据这里描述的发明实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明的元素可以以个体形式描述或要求,但是也可以设想多个,除非明确限制为单数。
[0207] 尽管已经如上参照图1到图13描述了根据本发明的URL改写方法和装置、家庭间DLNA设备发现方法和装置以及家庭间DLNA设备控制方法和装置的各个实施例进行了描述,但是本领域技术人员应当理解,对上述本发明所提出的URL改写方法和装置、家庭间DLNA设备发现方法和装置以及家庭间DLNA设备控制方法和装置,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。