技术领域 本发明属于数字媒体框架的设计与应用领域,特别是涉及一种用于支持UPnP和IGRS的轻量级数字媒体适配器系统。 技术背景 随着数字家庭的概念日趋普及,在数字家庭中占据着重要地位的数字多媒体应用也发展得如火如荼。通过实现相应标准的A/V应用框架,媒体设备就能访问家庭网络中的资源。Digital Media Adapter(DMA,数字媒体适配器)在近年来非常流行,它是一种信息处理终端,其在数字家庭中的功能包括了访问媒体目录,获取媒体资源,并且对资源进行解码输出。 当前,数字家庭网络中的媒体应用主要是通过UPnP协议支撑,也有一部分是采用IGRS协议。UPnP技术应用TCP/IP等网络技术,用于实现家庭计算网络的分布式,开放互联架构。其定义了两种不同的设备类别:控制点和被控制设备。与UPnP协议类似,IGRS也定义了一套属于自己的协议标准,但其设备的种类与UPnP是一致的。UPnP和IGRS协议属于高层次的协议,建立在其他网络协议之上,例如Simple Object Access Protocol(SOAP),HTTP over TCP和HTTP unicast/multicast over UDP等。 针对于家庭计算网络的A/V媒体应用,UPnP和IGRS有着相似的标准应用框架。尽管协议本身不相同,设备和服务的属性定义,以及调用服务的参数也不同。但框架中使用的设备类型是一样的,而且提供的服务类别也是一样的。它们的A/V应用框架如附图1所示,框架中,定义了媒体服务器,控制点,以及媒体渲染器。用户通过控制点,控制媒体渲染器从媒体服务器经过外带的传输协议获得资源,并进行播放。 在实际的主要应用中,用户的控制点设备往往也是媒体渲染器本身,即将控制点与媒体渲染器合并在一起,即支持某一特定协议的DMA。基于标准A/V媒体应用框架下的DMA框架如附图2所示。 由此可见,DMA的任务量是比较大的。它既包括了控制点的工作,也包括了媒体渲染器的资源下载以及解码等工作。 另外,UPnP协议与IGRS协议是相对复杂的协议,例如设备和服务广告的组播机制,以及设备状态的维护,设备状态信息的获取等。这往往占据了相当一部分的网络资源和CPU,内存等资源,也导致耗电过大的问题,从而提高了软件对于嵌入式设备的性能要求。对于某些便携的或简单的设备,如手机,数码相框等,对硬件性能要求提高所导致的代价可能是巨大的。 综合分析当前基于标准的家庭计算网络A/V媒体应用框架下的应用,存在如下几点问题: 首先是当前的应用开销过大,必须考虑如何降低开销; 其次,是如何使设备支持多种互联协议标准; 再次,因为协议基于SSDP组播,如何解决局域网范围的限制,实现跨家庭局域网的资源共享,以及相应的网络攻击、安全性问题; 最后,需要针对于不同用户进行设备或服务访问的限制。 故而,现有的数字媒体适配器架构还有待改进。 发明内容 本发明的目的在于克服现有技术的不足,提出了支持UPnP和IGRS的轻量级数字媒体适配器系统。 为了实现上述发明目的,采用的技术方案如下: 一种应用于数字家庭网络的数字媒体适配器系统,包括数字媒体适配器服务器和数字媒体适配器终端,所述数字媒体适配器服务器设置于数字家庭的局域网内,能发现标准家庭媒体服务器,并调用该媒体服务器的服务,数字媒体适配器服务器与数字媒体适配器终端通过网络连接,并向数字媒体适配器终端提供数字媒体适配器应用层级别的远程服务。 上述技术方案中,所述数字媒体适配器终端通过SOAP协议,对数字媒体适配器服务器提供的服务进行调用,当用户通过数字媒体适配器终端选择合适的资源后,数字媒体适配器终端与媒体服务器建立带外传输连接,以获取媒体资源进行解码和播放。 所述数字媒体适配器服务器将维护的数据分成了公共数据区,以及对应每个用户的私有数据区,所述数字媒体适配器终端通过调用模块调用数字媒体适配器服务器的服务,最终与媒体服务器建立带外传输连接,并通过AV传输模块获取资源。 所述数字媒体适配器终端包括AV传输模块、渲染模块、网络模块、GUI图形模块、调用模块,所述GUI图形模块、调用模块、网络模块依次连接,所述AV传输模块与媒体服务器通过网络连接,所述渲染模块与AV传输模块连接。 所述数字媒体适配器服务器包括调用模块、控制点模块、防火墙模块、公共数据区、私有数据区,所述控制点模块与数字家庭网络的媒体服务器连接,还分别与数字媒体适配器系统的防火墙模块、公共数据区、私有数据区连接,所述调用模块分别与数字媒体适配器终端和控制点模块连接。 本发明所述数字媒体适配器服务器处于数字家庭的UPnP,IGRS局域网内,数字媒体适配器服务器的控制点模块通过启动IGRS和UPnP侦听线程,接收到数字家庭网络里媒体服务器的广告信息,并分别调用IGRS模块和UPnP模块进行消息识别。 本发明具有以下优点: 1、轻量级的终端设计,适用于更多的嵌入式设备; 2、能支持UPnP和IGRS协议,并且还能增加更多家庭网路互联协议; 3、终端设备的应用将不受局域网的限制; 4、防火墙模块与终端分离,保证终端的安全同时不增加终端的开销; 5、用户权限设计,实现终端根据用户权限配置对其他设备和服务的可见性。 附图说明 图1为现有的A/V应用框架图; 图2为现有的DMA框架图; 图3为本发明的系统架构示意图; 图4为本发明的LW-DMAC模块划分示意图; 图5为本发明的LW-DMAC框架示意图; 图6为本发明服务请求的模块交互示意图; 图7为本发明的LW-DMAS框架示意图; 图8为本发明的数据流示意图; 图9为本发明的并发性交互示意图; 图10为本发明运行界面示意图。 具体实施方式 下面结合附图对本发明做进一步的描述。 本发明提出的整体架构如附图3所示。新框架下提出了两种新的设备类型,分别是轻量级数字媒体适配器服务器(LW-DMAS)和轻量级数字媒体适配器终端(LW-DMAC)。LW-DMAS处于数字家庭的UPnP,IGRS局域网内,能发现标准家庭媒体服务器,并且通过标准的UPnP或IGRS Action调用其服务。另一方面,LW-DMAS向LW-DMAC提供DMA应用层级别的远程方法,如设备浏览,服务浏览,目录访问服务,资源协议协商服务等。 LW-DMAC通过SOAP协议,对LW-DMAS提供的服务进行调用。当用户通过终端选择合适的资源后,终端与媒体服务器建立带外传输连接,获取媒体资源进行解码和播放。 模块的划分如附图4所示,LW-DMAS将维护的数据分成了公共数据区,以及对于每个用户的私有数据区。LW-DMAC通过调用模块,调用LW-DMAS的服务,最终与媒体服务器建立带外传输连接,LW-DMAC通过AV传输模块获取资源。 图5是LW-DMAC的框架图。框架中包含了5个模块,该框架的设计重点在于轻量化。将尽量多的计算资源,网络资源,电源资源等集中地服务于终端的多媒体播放上。 下面将对本发明的轻量化设计思路,以及终端的工作流程进行说明。 分布式计算为终端的轻量化设计提供了条件。在LW-DMAC中,DMA与协议相关的主要逻辑工作的计算任务都放在信任的LW-DMAS里。 首先LW-DMAC不需要持续地侦听组播的广告信息,不需要执行设备和服务状态的维护工作,以及设备与服务的描述文件的下载与分析工作。当终端需要执行逻辑任务时,如查询当前存在的设备与服务,或浏览某个媒体服务器的内容目录时,才需要与LW-DMAS建立起连接,进行远程方法调用。当接收到服务结果后,连接可以回到关闭状态,等待下一次的请求发送。因此,LW-DMAC在节省计算资源的同时,也节省了更多的网络资源,终端具备访问媒体服务器能力,并且可以脱离局域网的限制,也避免了局域网里的协议攻击包。 对于LW-DMAC,真正的核心工作是负责媒体资源的带外传输以及解码工作。这一部分是由AV传输模块以及渲染模块实现。轻量化的设计让终端拥有尽量多的网络带宽和计算存储资源用于执行其核心工作,保证媒体播放的质量。 使用本发明,用户可以通过LW-DMAC界面进行输入,GUI模块向调用模块传递需要调用的远程方法,以及对应的参数,在调用模块里,将调用的远程方法的信息提取后,构造出对应的SOAP包,然后通过网络模块发送服务请求,服务请求的模块交互如附图6所示。 服务的响应则是以上过程的逆过程。网络模块接收到响应包后,调用模块进行SOAP响应包的解释,获取调用结果后通知界面进行事件处理。 LW-DMAS框架是轻量级数字媒体框架的另一个重要应用,图7是LW-DMAS的框架图,框架中包括了5大模块。该模块的设计重点是突出了服务的并发性,以及增加了安全性的设计。令LW-DMAS能高效地为多个终端服务,并且能更好地满足不同应用的需求。 下面就服务器的主要工作流程来说明服务器的框架图。 设备和服务的发现有它自己的流程,控制点模块通过启动IGRS和UPnP侦听线程,接收到家庭网络里媒体服务器的广告信息,并分别调用IGRS模块和UPnP模块进行消息识别。消息识别完成后,查询公共数据区中对应的设备目录是否已经保存了该设备结构。如果没有,首先应用防火墙模块,查询该设备是不是在黑名单中(即攻击源)。然后控制点模块对设备的描述信息进行下载,并对下载的XML进行安全检测。根据描述信息,创建设备结构,并添加到公共数据区中对应环境数据区中的设备目录中。并将设备对应的服务信息,添加到服务目录中。环境数据区保存着属于多个终端共享的数据,因此存在于公共数据区中,当访问环境数据区时,需要获取对应的互斥锁。如果设备或服务结构已经存在于环境数据区中,则接收到广告信息后,只需对其的超时时间进行更新,并且如果有需要的话,更新设备的其他状态信息。数据流图如图8所示。 向LW-DMAC提供快速有效的服务,是LW-DMAS的重点。考虑到实际应用中多个LW-DMAC的情况,并发性的强弱将直接影响到应用的QoS。用户的请求可以通过与服务器建立TCP链接,然后发送SOAP调用服务器提供的方法。或采用Web Service的方式进行服务调用。调用模块接收到SOAP包后,构造出相应的调用信息(包括了调用者信息,方法,以及参数),这相当于一项任务,然后放进FIFO队列中。当线程区有空闲的Worker线程时,就从队列中获取调用信息。根据调用信息,从防火墙中,获取其权限的信息,并且从私有数据区获取或创建用户对应的用户状态数据。用户状态数据是保存着私有的用户状态信息,包括用户当前正在访问的媒体设备,及其浏览的目录栈结构,因此不存在多用户的并发访问。将公有资源和私有资源区分,提高了工作的并发度,因为当服务需要获取公共资源时,才需要获取互斥锁。 当服务需要对媒体服务器进行访问时,Worker线程将调用控制点模块。控制点模块获取相应的调用信息,用户状态数据,以及对应的环境数据。然后构造出标准的UPnP或IGRS活动,并发送至目标媒体服务器。当接收到媒体服务器结果时,控制点模块对结果进行处理,然后返回结果给调用者LW-DMAC。Worker线程回到空闲状态。对应的交互图如图9所示。 本发明的运行界面如图10所示,应用轻量级数字媒体适配器软件框架,开发了一个支持UPnP和IGRS协议的智能手机上的媒体播放器,用户通过手机,可以浏览和下载家庭媒体服务器里的图片,以及播放家庭媒体服务器中的音乐。由于采用了新框架,轻量级的特点既保证播放质量,又降低了对手机的能耗。下面对本发明的框架实现进行介绍。 播放器软件根据框架,实现了一个运行在标准Linux操作系统下的LW-DMAS,而针对于应用的终端,为了适应更多的软件平台,本发明实现了一个运行在标准Linux下的和一个在Windows Mobile 6.5操作系统下的LW-DMAC客户端。 由于软件框架的设计,已经在发明内容中阐述过。下面将以软件中所部属的进程与线程的任务为重点来讲述框架的实现,并且将介绍一些与特定应用相关的特殊模块。 服务调用方法是本发明软件框架关于服务使用的一个重点内容。针对于不同的应用,开发者可以制定相应的远程服务方法,以满足LW-DMAC的实现需要。在本发明的应用中,本发明定义的方法机器参数列表如表1所示。首先LW-DMAC需要向Server端进行登录。登录后根据用户ID创建Session。此时LW-DMAS为用户在Private Data中创建一个属于该用户的用户状态信息SessionData。创建Session成功后,用户就可以使用实质性的服务,包括获取媒体设备列表,包括浏览目录的Ls和Cd功能。以及获取资源文件的URL等。 表1 LW-DMAC作为轻量级的终端,对于框架的实现是相对简单的。在本发明的应用中,设计一个主进程以及2个子线程。主进程是GUI,与用户进行交互。表2为另外两个线程任务的描述。对于各个线程,都有其对应的若干事件,应用实现中,通过对不同的事件设置对应的回调函数,可以获得各个子线程在事件发生时的通知,并能执行相应的处理。表3是LW-DMAC线程所定义的可注册事件。 表2 模块 功能 1 调用 产生SOAP请求、连接LW-DMAS、发送请求、 等待请求、通过事件回调来报告主要进程。 2 渲染 使用CHttpFile类,负责访问HTTP URL、用 跨平台解码库libmad来获取媒体资源和解码。 表3 终端的实现,带外传输以及解码部分是重点。本发明在已经实现的CHttpFile类,负责提供HTTP协议访问媒体文件的操作,并且针对于音乐播放,使用流行的跨平台解码库libmad。从而保证了终端代码的高移植性。当需要移植到另外一个平台时,通常只需要根据新的图形库,重新构建界面即可。 在本发明的LW-DMAS中,应用程序设计1个进程和8个子线程同时执行工作。主进程负责对服务器的开启,结束以及配置等界面的操作。而其它各子线程的任务可以见表4。各线程的事件定义如表5所示。 表4 表5