桥接UPnP网络和HAVi网络的方法

文档序号:7739705阅读:366来源:国知局
专利名称:桥接UPnP网络和HAVi网络的方法
技术领域
本发明涉及一种用于桥接UPnP和HAVi网络的方法。更具体地,将其应用于家用通信网络。
背景技术
桥接器的功能包括表示UPnP网络上的HAVi软件元素(例如设备控制模块和功能部件模块)以及表示HAVi网络上的UPnP设备和服务。
根据HAVi规范,HAVi网络上的每一个设备均必须拥有配置存储器,可以从该存储器中读取特定的说明性数据(“SDD”数据表示自说明数据)。
表示UPnP设备的桥接器的代理设备不是实际存在的设备,因此它不具有这种配置存储器。
以汤姆森多媒体公司的名义于2000年5月31日提交、并于2000年12月14日公布的专利申请WO 0076131涉及了一种用于桥接HAVi(家庭音频/视频互操作性)网络和UPnP(通用即插即用)网络的方法。

发明内容
本发明涉及一种用于桥接HAVi网络和UPnP网络的方法,在桥接器设备级,这两种网络均与表示一个网络上来自另一网络的软件元素的桥接器设备相连,所述方法包括以下步骤—检测与UPnP网络相连的UPnP设备;—针对每一个UPnP设备,创建代理HAVi设备控制模块,用于在HAVi网络上表示该UPnP设备;其特征在于以下步骤
—注册该代理HAVi设备控制模块,其中声明代理HAVi设备控制模块是遗留(legacy)设备型的。
由于UPnP设备在HAVi网络中被表示为遗留(LAV)设备,因此其他HAVi设备就不能期望在这些UPnP设备中存在任何配置存储器。
根据本发明的实施例,该方法还包括以下步骤—至少检测UPnP网络上特定类型的UPnP服务;—针对每一个检测到的UPnP服务,创建代理HAVi功能部件模块,其中将表示给定UPnP服务的代理HAVi功能部件模块集成到代理HAVi设备控制模块中,所述代理HAVi设备控制模块表示与UPnP网络上的UPnP服务相关的UPnP设备;—发布该代理HAVi功能部件模块。
根据本发明的实施例,该方法还包括以下步骤—检测HAVi网络上的HAVi设备控制模块和HAVi功能部件模块;—针对每一个HAVi设备控制模块,创建代理UPnP设备,并针对每一个HAVi功能部件模块,创建UPnP服务;—根据UPnP规则,发布该代理UPnP设备和服务。
根据本发明的实施例,声明表示UPnP设备和/或服务的代理HAVi软件元素是非61883类型的。
根据本发明的实施例,该方法还包括以下步骤在代理软件元素注册之前,请求与该代理软件元素相关的说明性数据,并只在接收到说明性数据之后,注册该代理软件元素。


参考附图,通过对实施例的非限制性说明,将使本发明的其它特性和优点显而易见,其中图1是包括HAVi-UPnP桥接器设备的网络的方框图。
图2是在连接UPnP设备之前,包括HAVi设备的图1所示网络的方框图。
图3是在UPnP设备的发布阶段,图4所示网络的方框图。
图4是创建了UPnP设备的DCM和FCM之后,图5所示网络的方框图。
图5是详细示出了当HAVi设备控制UPnP设备时的消息流程的图6所示网络的方框图。
图6是当由HAVi设备发起时,图1所示网络的方框图以及用在本实施例中以在桥接器上建立连接的步骤的方框图。
图7是当由UPnP设备发起时,网络的方框图以及用在本实施例中以在桥接器上建立连接的步骤的方框图。
具体实施例方式
根据本实施例,桥接器设备连接HAVi网络和UPnP网络。HAVi表示“家庭音频/视频互操作性”并定义了特别是基于IEEE1394总线的、用于控制家庭网络的软件栈。HAVi规范的当前版本是2002年5月15日发布的v1.1,可以从HAVi公司得到,其地址是2694 Bishop Drive,Suite 275 San Ramon,CA 94583,USA。UPnP表示“通用即插即用”,并且也提供了基于因特网协议(IP)的网络控制软件栈。可以从微软公司管理的UPnP论坛得到UPnP规范。
如果处于HAVi网络或UPnP网络中,则应用程序和其他元素必须能够确定有效的功能性。
在HAVi网络中,功能性由被称作FCM(功能控制模块)的软件元素表示。从等级上说,FCM表示设备,始终包含于DCM(设备控制模块)中。一个DCM可以包含多个FCM(例如,一个表示数字VCR的DCM包含调谐器FCM以及VCR FCM)。对于每一个设备只有一个DCM。
在HAVi网络中,如果软件元素希望将其功能性提供给网络,它必须将自己注册到被称作“注册处”的本地软件元素。当创建FCM时(可以在设备启动时期或运行时期进行,例如DCM控制单元或DCU的下载),软件元素将自身注册到其自身设备的注册处。
当应用程序希望知道在网络中哪个服务可用时,向网络的所有注册处发送查询。
此外,在系统运行的同时,存在着针对动态创建的软件元件的事件系统。为了发布软件元素的注册或删除,注册处可以使用两种事件新软件元素(NewSoftwareElement,表示刚刚注册了软件元素)以及离去的软件元素(GoneSoftwareElement,表示刚刚解除了软件元素的注册)。在HAVi网络中不需要轮询。
如果软件元素比HAVi注册处更新(即该软件元素是未知类型的),则该软件元素还将被识别且表示为HAVi网络中的新功能性。
UPnP不会集成与HAVi注册处类似的概念。不过,在UPnP网络中,可以在网络中发布设备的服务。出于此目的,UPnP使用了“用于组播的UDP上的HTTP”(HTTPMU)。应用程序还可以搜索网络中的服务。这种网络发现协议是SSDP(简单服务发现协议)。可以将其与针对事件通知的GENA协议(普通事件通知体系结构)结合。当应用程序希望知道哪个服务可用时,它发送SSDP发现组播消息。与该请求匹配的服务会以单播模式(HTTPU)发回响应。查询可以非常广(例如所有服务)或有更多的限制(例如,特定类型的服务)。
当服务在网络中是新的时,该服务会发送GENA-SSDP“有效(alive)”组播消息,从而发布它的出现。
该有效消息和发现响应消息包括使用时限(‘max_age’)字段。该最大使用时限字段以秒为单位表示该服务的有效性。如果服务在此时间之后仍然出现,则服务必须发送另一有效消息(或进行另一次发现查询)。
在UPnP网络中,使用简单对象访问协议(SOAP)消息进行控制。
为了使一个网络中的任意设备能够与另一个网络中的任意设备进行通信,桥接器设备的任务是以将消息从一侧转换到另一侧的方式连接两个网络。桥接器还应该能够使流通过。
图1给出了HAVi网络的例子,该网络包括与IEEE 1394总线2相连的HAVi设备1,此HAVi网络与包括连接了IP网4的UPnP设备3的UPnP网络相连,这两个网络均通过桥接器设备5进行连接。桥接器5包括HAVi协议栈、IP协议栈以及用于执行从一个网络到另一个网络的控制消息、事件、流、…的转换或映射的软件。
根据本实施例,对于设备和应用程序而言,该桥接器是透明的。
根据本实施例,UPnP设备由HAVi DCM表示,而UPnP服务由DCM中的HAVi FCM表示,该DCM表示与该服务相连的UPnP设备。相反,HAVi DCM设备由UPnP设备表示,而HAVi FCM服务由与表示包括此FCM的DCM的设备相关的服务表示。下文中,将桥接器创建的软件元素称作“代理”软件元素。
桥接器的功能是在每一个网络中适当地表示设备针对HAVi网络上的每一个DCM或FCM,桥接器创建UPnP设备或UPnP服务。相反,分别针对每一个UPnP设备和服务,桥接器分别创建HAVi DCM和FCM。
每当添加或删除服务、设备、FCM或DCM时,桥接器设备负责更新每一个网络的表示。
桥接器可以管理多个表示UPnP设备的HAVi DCM,这取决于每一个网络的配置。由于桥接器设备本身除了其桥接器功能之外还有其他功能,因此桥接器还可以管理其自身的DCM。例如,可以将桥接器功能包含于诸如电视接收机或卫星解码器之类的设备中。
根据HAVi规范并符合IEEE 1212标准,作为IEEE 1394设备的每一个HAVi设备包括配置存储器。HAVi和IEEE 1394定义了多个保存于该存储器中的参数。这些HAVi定义的参数被称作自说明数据或“SDD”,而且可以被其它设备读取。表示UPnP设备的桥接器的DCM不表示真实的IEEE 1394设备,因此不具有符合HAVi/IEEE 1394的、可以包含SDD数据的配置存储器。
为了避免这个问题,声明桥接器为了表示UPnP设备而创建的DCM是遗留设备(“LAV”或遗留音频/视频设备)。认为这些可能是或可能不是IEEE 1394设备的设备不遵循HAVi,并因此不会要求包含SDD数据。其他软件元素可以使用被称作DCM∷GetDeviceClass的DCM应用程序编程接口(API)函数,识别该DCM的本质。
根据HAVi规范,DCM或FCM自身向本地注册处注册。在注册过程中,DCM提供一定量的信息,其中有被称作目标ID(TargetID)的数据结构,其表示正在注册的软件元素是设备(DCM)、设备的功能部件(FCM)还是应用程序模块。在前面两种情况下,TargetID数据结构还表示出该DCM或FCM是否符合IEC 61883标准,该标准中定义了IEEE1394网络上同步流(即音频和视频流)的传送。没有哪两个TargetID数据结构是相同的。
HAVi规范需要TargetID数据结构中包含全局惟一标识符(“GUID”),该GUID标识符具有惟一识别IEEE 1394设备的64位的数值。将此GUID标识符存储于设备的配置ROM中,并且在网络复位中保持不变。在流的上下文中,目标ID中给定的GUID识别要发送此流或是要接收此流的物理HAVi设备。针对特定的设备类型,该物理HAVi设备可以不是与流源或宿设备相关的DCM的主机设备,而是最终目标设备GUID。
表示UPnP设备的DCM没有自己的GUID标识符。但是,由于桥接器也向HAVi网络发送从UPnP网络接收到的流,或是接收要传递到UPnP设备的来自HAVi设备的流,这些表示UPnP设备的DCM必须在它们的TargetID数据结构中使用桥接器的GUID标识符。
在家庭网络环境中,独立于其作为HAVi和UPnP网络之间桥接器的功能,典型地将桥接器设计用于发送或接收以及处理音频和视频流。于是,它具有自己的DCM,并且此DCM是符合IEC 61883的类型的。在其注册过程中,桥接器本身的DCM使用其自己的GUID标识符。
在这种情况下,表示UPnP设备的DCM的设备类型不能是符合IEC61883的DCM,这是因为这样会导致在HAVi网络中有两个相同TargetID数据结构。即使桥接器本身的DCM不是DCM_61883类型的,如果该桥接器处理多于两个UPnP设备的DCM,将会出现同样的问题。
建议将UpNP设备的DCM声明为非61883 DCM。在这种情况下,这些DCM的TargetID数据结构仍然包含该桥接器的GUID标识符(该桥接器是这些DCM的主机),但通过另一参数将这些TargetID加以区分,该参数是桥接器内部赋予每一个DCM的标识符。
在网络的HAVi侧将UPnP设备表示为非61883设备的事实并不意味着这些设备不能发送或接收流,只是这些流不必符合IEC 61883。
类似方式,将表示UPnP服务的代理FCM声明为非61883 FCM。
如上所述,针对目标软件元素类型,HAVi规范定义了五个不同的值(DCM_61883、DCM_NON61883、FCM_61883、FCM_NON61883以及AM)。作为解决上述问题的不同实施例,定义了附加的目标类型
DCM_PROXY或DCM_NON1394-将DCM识别为表示UPnP设备(或另一非HAVi网络上的设备)FCM_PROXY或FCM_NON1394-将FCM识别为表示UPnP服务(或另一非HAVi网络上的服务或功能性)由于以可以包含多个设备和服务的根设备来表示物理设备,因此在UPnP侧不存在这种问题。
当它接收到已经为UPnP设备或服务而创建了新代理DCM或FCM的事件时,HAVi应用程序可能希望获得有关这个DCM或FCM的附加信息。当将由桥接器处理的新代理设备或服务通知给UPnP设备或服务时,反向情况也是一样的。
出于此目的,桥接器组合了与为其创建代理的每一个HAVi DCM或FCM,或是UPnP服务或设备有关的信息。在发布代理软件元素的创建之前,组合此信息。
桥接器执行下列步骤(a)针对新HAVi软件元素,桥接器从注册处请求该元素的属性(使用Registry∷RetrieveAttribute函数)。
针对新UPnP软件元素,桥接器通过前述的简单服务发现协议“有效”消息,接收该软件元素的说明。此说明是按照XML编写的统一资源定位器(URL),并且根据本发明,由桥接器对其进行解析,以提取出所有的相关信息。
(b)桥接器创建新代理软件元素。
(c)桥接器使用HAVi网络上的“NewSoftwareElement”事件消息(针对代表UPnP软件元素的代理)或者使用UPnP网络上的‘ssdp∷alive’组播消息(以发布HAVi软件元素的代理),发送发布该代理软件事件的有效性的事件。与UPnP相一致,周期性地重复此组播消息。
表1中给出了事件映射

表1现在对桥接器中消息的传输进行说明。当HAVi软件元素将消息发送到代理DCM或FCM时,桥接器将该消息转换为UPnP消息。如果该消息涉及设备或服务控制,则它基于简单对象访问协议,或者如果它涉及事件通知,则它基于普通事件通知体系结构协议。当UPnP设备或服务寻址桥接器的代理设备或服务时,使用相反的原则。
这种转换并不应用于所有消息。在下面的非限制性示例中,并未转发HAVi消息,而是直接通过代理元素应答代理FCM接收Fcm∷GetDcmSeid命令;其应答返回其所属代理DCM的SEID。
将HAVi惟一标识符(HUID)用于惟一地识别DCM、FCM或应用程序模块。针对UPnP设备或服务的每一个HAVi代理,创建HUID。HUID标识符包括TargetID以及多个其它标识符“InterfaceId”、“Vendorld”、“n1Uniqueness”以及“n2Assigner”。将“n1Uniqueness”设为真(TRUE),对于DCM,将“n2Assigner”设为非(NONE),而对于FCM,则将“n2Assigner”设为NONE或DCM。结果,将请求UPnP设备的HAVi代理的HUID传输的消息作为请求SEID标识符传输的消息进行处理。
至少不将HAVi实体发送的下列消息转发到UPnP侧,而是直接由桥接器进行应答Fcm∷GetDcmSeidDcm∷GetHuidDcm∷GetFcmSeidListFcm∷GetHuid为了实现适当的转换,在HAVi API和UPnP API之间建立了等效关系。由于不可能始终存在直接一对一的对应,因此桥接器必须利用多个消息来仿真单个消息以得到适当结果,或者发回对初始消息的响应,通知发送者不能处理他的请求。
当存在这种等效关系时,表2中给出了HAVi VCR API、HAVi音频/视频桌面APi与UPnP AV传送API之间的等效关系


表2表3中列出了与表2中给出的API相关的事件之间的等效关系

表3图2到5示出了通过将UPnP设备与UPnP网络相连而在桥接器触发的处理。在图2的初始网络中,只有HAVi设备1与该HAVi网络相连,并且没有设备与IP网络相连。桥接器将该HAVi设备向UPnP网络表示为包括代理服务16和代理连接管理器服务10的代理设备15。为了使说明清晰,除非说明需要,图3到图5没有示出对应桥接器UPnP侧HAVi设备的代理软件元素。
如图3所示,在UPnP VCR的情况下,UPnP设备3与IP网络4相连。通过SSDP协议,将此连接通知给桥接器5。然后,桥接器分析设备的XML说明并发现新连接的设备是包括VCR服务的VCR设备。
如图4所示,为了仿真该UPnP VCR设备和服务,桥接器创建了HAVi DCM 8和HAVi VCR FCM 9作为代理软件元素。然后,这两个代理软件元素向桥接器的消息传送系统(图4中的“MSG”)请求SEID标识符并向桥接器的注册处(“REG”)注册。此注册使注册处在HAVi网络上发送新软件元素事件。
当HAVi设备1的应用程序希望向UPnP VCR 3发送播放(PLAY)命令时,该应用程序通过使用其本身的消息传送系统向桥接器5的VCRDCM发送“VCR∷Play”消息来实现。然后桥接器的应用程序向UPnP VCR服务发送适当的控制消息。这如图5所示。
流的建立如图6和7所示,其中图6涉及建立由HAVi设备1发起的流,而图7涉及建立由UPnP设备3发起的流。
在图6的情况下,设备1的应用程序—例如用户接口—调用其流管理器(SM)中的“FlowTo”函数,其是HAVi中负责建立流的软件元素。FlowTo函数调用的参数是源和宿FCM插头的标识符。该信息由被称作“FcmPlug”的数据结构提供。使用前面已经说明过的“TargetID”数据结构识别要连接的FCM(在这种情况下,是HAVi设备1的FCM以及表示UPnP设备3的桥接器代理FCM)。源插头的TargetID表示桥接器的GUID标识符。
流管理器在有关DCM和FCM的级别中使用“DCM∷Connect”函数调用触发需要的内部插头连接。流管理器还保留IEEE 1394同步资源并更新有关设备的IEC 61883插头控制寄存器(步骤E1和E2)。
根据本实施例,通过对代理DCM 8的函数调用“DCM∷Connect”触发UPnP网络上对应的连接处理。代理DCM调用UPnP连接管理器服务10和11,UPnP连接管理器服务10和11分别是表示为UPnP设备的HAVi设备1(即,连接管理器服务10是代理连接管理器服务)的一部分以及UPnP VCR 3的一部分。被调用的函数是“ConnectionMgr∷PrepareForConnection”(步骤E3)。代理DCM还建立IP连接(步骤E4)以及桥接器中的内部连接(E5)。
尽管在图6的示例中,代理DCM建立了内部桥接器连接,而在另一个实施例中,此任务由桥接器的专用软件模块执行。此模块集中了所有的内部流连接,这简化了处理及带宽资源管理。
注意到在实现相同结果的同时,可以改变某些步骤的次序。
图7示出了当由UPnP设备3发起时,建立流的步骤。控制点13(即UPnP控制器)在源和宿连接设备10和11同时调用UPnP的“ConnectionMgr∷PrepareForConnection”命令(步骤E1)。控制点13还创建了IP连接(步骤E2)。桥接器15对来自控制点13的命令的接收触发了对桥接器的流管理器14的函数调用(“FlowTo”函数—步骤E3)。与前面的情况相同,流管理器调用DCM并建立HAVi设备和桥接器之间的61883连接(步骤E6)。
在图6和图7的情况下,代理DCM和代理UPnP设备都必须确定它们是否应当分别在接收到DCM∷Connect函数调用和ConnectionMgr∷PrepareForConnection函数调用时进行动作。
例如,当UPnP设备发起连接时,当接收到来自设备1的流管理器的命令时,代理DCM应当建立连接,而在接收到来自桥接器的流管理器的命令时,代理DCM则不建立连接。类似地,当连接服务10接收到来自DCM 8的“ConnectionMgr∷PrepareForConnection”函数调用时,应当建立UPnP网络中的连接,而当从UPnP设备3的控制点接收到函数调用时,则不应有所动作。
上述说明主要集中于HAVi DCM/FCM和UPnP设备/服务的等效关系。应当注意到,除DCM和FCM之外的某些HAVi软件元素可能需要UPnP侧的代理。此外,代理UPnP设备可能还必须集成除了表示HAViFCM的代理服务之外的其它服务。例如,尽管HAVi使用了系统元素流管理器,UPnP设备还需要连接管理器服务,从而能够处理某些流。还可以添加其他服务。
权利要求
1.一种用于桥接HAVi网络和UPnP网络的方法,在桥接器设备级,这两个网络均与表示一个网络上来自另一网络的软件元素的桥接器设备相连,所述方法包括以下步骤—检测与UPnP网络相连的UPnP设备;—针对每一个UPnP设备,创建代理HAVi设备控制模块,用于在HAVi网络中表示该UPnP设备;其特征在于以下步骤—注册该代理HAVi设备控制模块,其中将代理HAVi设备控制模块声明为遗留设备型。
2.根据权利要求1所述的方法,其特征在于还包括以下步骤—至少检测UPnP网络上特定类型的UPnP服务;—针对每一个检测到的UPnP服务,创建代理HAVi功能部件模块,其中将表示给定UPnP服务的代理HAVi功能部件模块集成到代理HAVi设备控制模块中,所述代理HAVi设备控制模块表示与UPnP网络上的UPnP服务相关的UPnP设备;—发布该代理HAVi功能部件模块。
3.根据权利要求1或2所述的方法,其特征在于还包括以下步骤—检测HAVi网络上的HAVi设备控制模块和HAVi功能部件模块;—针对每一个HAVi设备控制模块,创建代理UPnP设备,并针对每一个HAVi功能部件模块,创建代理UPnP服务;—根据UPnP规则,发布该代理UPnP设备和服务。
4.根据权利要求1至3之一所述的方法,其特征在于将表示UPnP设备和/或服务的代理HAVi软件元素声明为非61883类型。
5.根据权利要求1至4之一所述的方法,其特征在于还包括以下步骤在代理软件元素注册之前,请求与该代理软件元素相关的说明数据,并只在接收到说明数据之后,注册该代理软件元素。
6.根据权利要求4所述的方法,其特征在于包括以下步骤向表示UPnP设备01和/或服务的非IEEE 1394代理软件元素提供特定的目标类型。
全文摘要
一种用于桥接HAVi网络和UPnP网络的方法,其中,在桥接器设备级,这两种网络均与从其中一个网络到另一个网络表示软件元素的桥接器设备相连。该方法包括以下步骤-检测与UPnP网络相连的UPnP设备;-针对每一个UPnP设备,创建代理HAVi设备控制模块,用于在HAVi网络上表示该UPnP设备。本方法的特征在于以下步骤-注册该代理HAVi设备控制模块,其中将代理HAVi设备控制模块声明为遗留设备型。
文档编号H04L12/40GK1545781SQ02816459
公开日2004年11月10日 申请日期2002年8月20日 优先权日2001年8月22日
发明者让-巴蒂斯特·亨利, 赫尔穆特·比尔克林, 特 比尔克林, 让-巴蒂斯特 亨利 申请人:汤姆森许可贸易公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1