Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4247
  • 博文数量: 5
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-23 16:56
文章分类
文章存档

2016年(1)

2015年(4)

我的朋友
最近访客

分类:

2016-02-01 19:19:39

原文地址:Intel UPnP代码解读 作者:lullaby2005

体系架构

共分三层:

1、(最上层),也就是应用层,主要实现了整合功能,以达到DLNA设备的要求。所以说呢,有关的开发设计人员要花多的时间在这一层上(如果有)。当然,如果真正想成为高手,就要向低层看起,只有这样才能更上一层楼哦!!!

2、(DLNA层),也就是数字生活网络联盟规范了。这一层主要完成有关规范的定义吧!

3、(所谓的低层),其实不是真正的低层,因为这里包含的内容很多很多了,(个人观点),有关的栈实现了、低层数据的通信etc.



(应用层的依赖)
在上图中,DH(applications/solution) 模块主要描绘了最终产品的整合。其实DH依赖了许多已经整合过的东东了(DLNA)。(e.g.DMP,DMD,DMU,DMS,DMC 整合等等)


DLNA Modules

这一层的模块主要是协助DLNA网络事件处理,如:SOAP 动作等。

开发者在处理该层时,应该把它当作一个“黑匣子”来对待,(如有特殊说明例外)。因为该层模块并不期望被修改,虽然在某种程度上说,需要支持制造商的扩充。

DLNA Layer Dependencies

、主要来初始化HTTP 请求

、主要来响应HTTP 请求

、主要用来序列化元数据(到DIDL)。

、主要用来浏览UPNP A/V 媒体服务器设备

、仅有一个方法,就是DOWNLOAD文件到本地。

、很简单那就是上载控制哦

、这一层很重要了,要完成应用层和低层的UPNP 栈层的连接处理。序列化、校验来自UPNP PALYER的请求。详细再说吧。

 

这一层是由Intel DeviceBuilder所产生,完全不用修改,如果要想修改,建议重新用该产生工具重新产生吧。当然,要想全懂,这一部分代码可是很有必要细细读来的。



a.DMS integraton 有以下主要任务:

a1、处理来自控制点的浏览请求,并以DIDL-Lite 形式返回请求结果。

a2、整合有关CDS(content directory server) 对象元数据的后端媒体数据。

a3、响应内容请求(使用DLNA HTTP 服务器)。

a4、如果服务器支持上传功能,需要处理上传操作。

b.File System Backend 主要仿效后端数据库存放CDS (content directory server)元数据。

枚举文件目录中的文件,并用文件的基本属性来填充CDS 对象。CDS items是实际目录中的媒体数据。CDS containers是实际的文件夹。

c.MSA(media server abstration)主要概括 CDS:Browse请求,CDS:CreateObject和CDS:DestroyObject 。当处理浏览请求时, 在响应之前,要用DIDL-Lite序列化CDS对象。当处理上传请求时,MSA将创建一个CDS对象,来描述上传内容。

d.DeviceBuilder。用此工具产生的代码允许媒体服务器响应CDS:Browse CDS:CreateObject和CDS:DestroyObject 的调用;同时也允许媒体服务器发送GENA(通用事件通知架构)事件。

e.Web Server.可以接收CDS浏览请求。

f.Web Client 可以发送GENA、以及UPNP设备描述和服务描述文件。

制造商需要做事情就是融合处理元数据以及后端内容。MDS使用文件系统来作为后端文件存贮。(当然我们可以选项用数据库,也就是说自己随意组织了,当然,要根据情况了)


阅读(463) | 评论(0) | 转发(0) |
0

上一篇:UCI API的使用--OpenWRT

下一篇:没有了

给主人留下些什么吧!~~