author: A.TNG
email: jiyucn_at_163_dot_com

总结:OMA Download与Java MIDlet Download非常相似,部分细节根据特性需求进行了扩展。

OMA Download提供了一种从web服务器下在媒体对象的方式。
OMA Download主要包含两大块:媒体对象的下载;在移动终端上根据版权对象播放媒体对象。
OMA Download是建立在HTTP Download和MIDlet Download之上的。
OMA Download与MIDlet Download的主要区别在于,MIDlet Download主要是为下载JAVA应用而设计的,而OMA Download的应用范围更加广泛,可以用来下载任何类型的媒体对象、彩铃、桌面图片等。
OMA Download扩展了HTTP Download的流程,增加了两个额外的步骤:第一,在下载媒体对象之前,需要事先下载一个download descriptor,类似于描述符的文件,该文件包含了许多与需要下载的媒体对象相关的信息;第二,媒体对象下载完毕之后,移动终端需要发送一个状态报告至服务器端,便于服务器端监测服务质量和收费。
在OMA Download系统中,媒体对象被看作一个文件,通常在web服务器上用URL标识。
标识媒体文件的download descriptor通常包含:媒体对象的Metadata;下载媒体对象的URL;发送状态报告的URL。通过下图,可以分清各个元素之间的关系。

看左框Download,其中download descriptor和status report是1对0/1的关系,如果download descriptor要求发送status report,并且包含了对应的URL,则需要发送status report,否则不发送。
中间小框图—媒体对象,0个或者多个download descriptor可以用来描述1个媒体对象;0个或者多个rights object可以用来规定媒体对象的使用;1个媒体对象只能对应1个DCF。
看右框DRM,1个DRM Message对应1��DCF和1个rights object.
参考下图可以弄清楚各个网络实体之间的关系。

用户可以通过presentation server查看有哪些媒体对象可供下载,选择了喜欢的文件后,交由download agent负责从download server上下载媒体对象,注意,下载的媒体对象一定是事先经过DRM packager打包的,同时在下载完毕后,根据download descriptor来决定是否发送status report。当以上步骤完成后,媒体对象就交由DRM Agent来控制了。
OMA Download标准文档中给出了3个user case:
HTTP Download
1.客户向URL发起一个GET请求,例如点击web上的一个链接;
2.客户端发送一个GET至服务器,并等待响应;
3.服务器根据请求返回数据给客户端;
4.客户端接收服务器返回的数据,并根据HTTP头来进行相应的处理;如果客户端不支持HTTP头中Content-type所指示的媒体对象类型,客户端可以关闭连接,服务器发现超时;如果客户端判断HTTP头中Content-length字段,发现无法保存
Combined Descriptor and Media Object
客户端发送GET请求后,服务器将download descriptor和媒体对象同时发送至客户端,因此,客户端无法对下载媒体对象进行确认。
1.客户向URL发起一个GET请求,例如点击web上的一个链接;
2.客户端发送一个GET至服务器,并等待响应;
3.服务器将媒体对象和download descriptor打包,作为服务器响应,返回给客户端;
4.根据download descriptor的指示来决定是否发送status report。
Separate Descriptor and Media Object
1.客户向URL发起一个GET请求,例如点击web上的一个链接;
2.客户端发送一个GET至服务器,并等待响应;
3.服务器将download descriptor作为响应,返回给客户端;
4.客户端接收到download descriptor并解析,提示用户是否下载;
5.客户端确认下载,获取对应媒体对象。

出处:http://blog.csdn.net/jiyucn/archive/2007/07/06/1680621.aspx

OMA DRM 1.0 – OMA Download 框架相关推荐

  1. OMA DRM V1.0学习笔记

    author: A.TNG email: jiyucn_at_163_dot_com OMA中关于DRM的定义主要是为了给内容提供商提供一种控制媒体对象使用的方式,包括对DRM Message的预览. ...

  2. 看清OMA DRM文件的本质

    Forward Lock Combined Delivery Seperate Delivery DRM 文件的制作 Android中DRM代码结构 DRM即digital right managem ...

  3. SpringBoot2.0 整合 JWT 框架,解决Token跨域验证问题

    SpringBoot2.0 整合 JWT 框架,解决Token跨域验证问题 参考文章: (1)SpringBoot2.0 整合 JWT 框架,解决Token跨域验证问题 (2)https://www. ...

  4. Yii2.0 后台UI框架以及权限管理扩展实现权限菜单管理

    Yii2.0 后台UI框架以及权限管理扩展实现权限菜单管理 一.安装后台框架ui 二.安装权限管理扩展 三.实现权限菜单管理 一.安装后台框架ui composer require dmstr/yii ...

  5. vnd oma drm

     VND虚拟网络磁盘系统(Virtual Network Disk System) 该系统采用Linux 2.6内核基础上,并对I/O负载.内存管理.网络协议进行优化和修改,进行重新开发.编译的体积小 ...

  6. 8.0系统安装Xposed框架失败Xposed framework version XX is installed

    在使用xposed框架的时候,对于新用户来说,会通常遇到这个问题,即下载完xposed Installer之后,点击框架的时候,会跳出如下警告: The Xposed framework is not ...

  7. SpringBoot2.0 整合 SpringSecurity 框架,实现用户权限安全管理

    一.Security简介 1.基础概念 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配 ...

  8. SpringBoot2.0 整合 Shiro 框架,实现用户权限管理

    GitHub源码地址:知了一笑 https://github.com/cicadasmile/middle-ware-parent 一.Shiro简介 1.基础概念 Apache Shiro是一个强大 ...

  9. SpringBoot2.0 整合 Dubbo框架 ,实现RPC服务远程调用

    一.Dubbo框架简介 1.框架依赖 图例说明: 1)图中小方块 Protocol, Cluster, Proxy, Service, Container, Registry, Monitor 代表层 ...

最新文章

  1. python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解
  2. linux python matplotlib 使用,关于Linux:如何在Python的matplotlib中设置“后端”?
  3. python免费试听-哈尔滨Python人工智能课程免费试听
  4. DefaultSerializer requires a Serializable payload but received an object of type
  5. 旧文重发:苹果是怎么吃到的?
  6. WPF——专用枚举器ListBox和ComboBox
  7. Spatial Transformer Networks
  8. 【转】ZooKeeper学习第二期--Zookeeper命令操作
  9. Qt应用程序主窗口框架
  10. 最全最详细的小白快速上手Modelsim教程
  11. c++ reinterpret_cast报错: casts away qualifiers
  12. pandas抽样函数sample
  13. linux vim下自动补全,linux-python在vim下的自动补全功能
  14. Groundhog Chasing Death 2020牛客多校第九场(质因子分解+欧拉降幂)
  15. html+canvas+输入文字换行,canvas文字换行
  16. sql float保留两位
  17. 电脑桌面上没有计算机回收站,桌面上没有回收站,桌面没有回收站怎么找
  18. Win10 PowerShell,通过SSH公钥远程连接Linux服务器
  19. Android Binder机制学习总结(二)-Driver部分
  20. $().ajaxSubmit is not a function解决方案

热门文章

  1. 如何分别在Android、iOS、Windows Phone三大平台进行“触摸屏”开发?
  2. BZOJ1415【NOI2005】聪聪和可可
  3. serial.serialutil.SerialException: could not open port 'COM1': PermissionError(13, '拒绝访问。', None, 5)
  4. 学完C语言,学什么, 怎么学,之后学什么
  5. 福大软工 · 第十次作业 - 项目测评(团队)
  6. can差分线阻抗_差分阻抗
  7. office(如:Word、Excel、PPT 等)文件轻松实现在线预览
  8. 张栋博士计算机,计算机科学与技术学院
  9. 服务器如何防御网络攻击
  10. 目前流行的机器学习算法