高清下载Widget技术方案0409.docx
- 文档编号:7292031
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:47
- 大小:206.11KB
高清下载Widget技术方案0409.docx
《高清下载Widget技术方案0409.docx》由会员分享,可在线阅读,更多相关《高清下载Widget技术方案0409.docx(47页珍藏版)》请在冰豆网上搜索。
高清下载Widget技术方案0409
高清下载Widget技术方案
1.系统架构
●业务管理平台
业务管理平台主要完成Widget应用、高清下载功能、高清下载节目等产品的发布,并通过《IPTV业务管理平台与业务系统接口技术规范V2.2》中的横向接口完成与EPG、Widget应用平台间的业务鉴权、订购功能。
●EPG
EPG服务器在高清视频下载业务中的功能主要是下载业务开通、下载内容展现。
用户开通业务、下载视频等操作均由EPG页面进行展现,并由EPG调用相关接口完成高清下载功能的开通、下载视频等。
EPG服务器可以通过与业务管理平台的横向接口完成高清下载功能的鉴权与订购,同时也可完成高清节目下载产品的鉴权与订购。
EPG服务器通过与Widget平台的横向接口完成高清下载Widget客户端的下载事件通知、高清节目下载通知等功能。
●Widget平台
Widget平台的功能主要包括应用发布、应用管理和事件管理三个部分。
⏹应用发布:
在应用管理系统(AMS)未建设的情况下,提供Widget应用发布功能,将XML格式的Widget应用描述信息发布给业务管理平台及业务能力平台。
⏹应用管理:
Widget平台负责维护应用文件,为用户提供Widget应用文件的下载、更新等服务。
⏹事件管理:
Widget平台从EPG服务器接收用户触发的应用下载、视频下载等事件的详细信息,并对其进行维护管理。
●机顶盒
⏹浏览器
为实现高清下载业务,机顶盒浏览器需要添加相应的扩展JavaScript支持,当用户通过浏览器触发业务开通、视频下载等事件时,浏览器应能够通过内部接口将这些事件通知运行在同一机顶盒上的Widget引擎,并传递必要的参数。
⏹下载Widget
下载Widget通过Widget引擎提供的通用接口与底层的下载模块进行交互,为用户提供影片下载的管理和控制界面,其主要功能包括:
Ø下载任务管理
下载Widget为用户提供查看和管理下载任务的界面。
为方便用户查看任务信息,下载Widget通过Widget引擎获取底层的下载模块维护的下载任务信息,并将其进行展现。
Ø查看下载完成影片简介
用户可通过下载Widget界面查看下载完成的影片的简介以及播放该影片。
影片简介包括影片名称、所属类别、导演、演员表、剧情简介等文字内容以及影片海报、剧照等图片内容,用户可在下载Widget界面中的已完成任务中展开下载完成影片的简介。
Ø浏览本地文件
用户可通过下载Widget浏览本地磁盘中存储的各种文件。
Ø启动播放器进程播放指定影片
用户可通过下载Widget启动播放器进程播放下载完成的影片,播放界面由播放器程序提供。
⏹Widget引擎
Widget引擎是运行在机顶盒上的Widget应用的播放器,负责Widget应用的文件管理和运行任务管理。
同时将底层模块的API接口和操作系统的API接口转译为可被Widget应用调用的通用接口。
Widget引擎的功能可以概括为以下几点:
1、Widget应用管理
a)文件管理
Widget引擎维护本地保存的Widget应用文件信息,包括WidgetID,Widget的本地保存路径等,当引擎下载、更新或者删除Widget应用文件时需及时更新Widget应用文件信息。
b)任务管理
Widget引擎为用户提供Widget的浏览、下载、启动、停止以及Widget任务管理等功能。
2、接口转译
Widget引擎将操作系统和下载模块、播放模块提供的接口转换为可供下载Widget应用使用的JavaScript通用接口,在高清下载业务中,Widget引擎为下载Widget提供的接口包括:
Ø获取下载任务列表接口:
Widget引擎从下载模块获取下载任务列表及各任务相关信息并将其返回给下载Widget,后者将其展现给用户。
Ø下载管理接口
Widget引擎将下载模块提供的下载控制接口转译为可供下载Widget调用的通用接口,下载Widget通过调用这些接口完成用户的下载控制指令,包括下载任务的启动、暂停、恢复、停止、删除、重新下载等。
Ø本地文件浏览接口
Widget引擎通过调用系统的文件管理接口为Widget应用提供本地文件浏览接口。
可对本地文件夹执行浏览、打开、关闭等操作。
Ø启动本地程序接口
Widget引擎为Widget应用提供启动本地程序接口,并可携带若干参数,在高清下载应用中,下载Widget应能够通过Widget引擎启动播放器进程播放指定影片,影片通过本地文件路径指定。
⏹下载模块
下载模块是运行在机顶盒上的后台模块,负责与高清下载平台的交互,通过Widget引擎为下载Widget提供下载任务的查看与管控接口。
●高清下载平台
高清下载平台负责管理高清视频文件,并为用户提供高清视频下载功能。
●应用管理系统(AMS)
IPTV业务能力平台的外部系统,为Widget应用开发者及SP提供应用上传能力,并将经审核后的Widget应用发布到IPTVEPG系统向用户进行展现。
【注】在本次系统方案中暂不建设。
2.系统接口
2.1.A:
业务管理平台与EPG服务器及Widget平台的接口
该接口为业务订购与鉴权接口,在《IPTV业务管理平台与业务系统接口技术规范V2.2》中对于业务订购与鉴权接口有相关规定,为支持高清下载业务,对该接口进行相应改动。
需在业务管理平台的产品类型中添加“8:
VideoDownload”以支持影片下载功能。
2.1.1.业务订购接口
在规范“5.6业务订购”章节中对于“业务订购”响应信息定义如下表,在表中新增“PurchaseType”类型:
表3-1-1-1业务订购响应信息
名称
说明
数据
类型
长度
(字节)
是否
必选
Result
业务订购结果0:
成功其他:
失败
String
4
M
Description
结果描述
String
256
O
UserID
IPTV用户业务编号
string
36
O
UserToken
业务管理平台为该用户分配的临时身份证明,可采用Cookie的方式传递
string
32
O
ContentID
内容ID
string
32
M
ServiceID
IPTV服务编号
string
32
O
ProductID
IPTV产品编号
string
32
M
SPID
SP的唯一标识
string
8
O
TransactionID
订购的事务编号
string
40
O
ExpiredTime
订购关系的失效时间,格式为YYYYMMDDhhmmss。
缺少该参数表示永久有效。
String
14
O
Balance
预付费用户的费用余额,
单位为分。
如为后付费用
户,该参数缺失或为空。
Int
4
O
Fee
产品价格,以分为单位
Int
4
M
PurchaseType
0:
包月支付,用户选择订购产品后,按照固定包月费用计费,在当月内无需再次向业务管理平台发起订购请求;
1:
按次支付,用户选择订购产品后,按照使用次数进行计费无需重新发起订购请求
2:
免费
3:
ppv,用户选择订购产品后,进行一次性计费。
再次使用时仍需订购该产品
4:
SVOD
5:
PVOD
6:
PSpace:
个人空间;
7:
PTime:
个人回看时长;
8:
VideoDownload
Int
4
O
2.1.2.业务鉴权接口
在《IPTV业务管理平台与业务系统接口技术规范V2.2》中“5.5业务鉴权”章节中对于product结构定义如下表,在表中新增“PurchaseType”类型:
表3-1-2-1Product结构
名称
说明
数据
类型
长度
(字节)
是否
必选
ProductID
产品ID
String
32
M
ProductName
产品名称
String
100
M
Fee
产品价格,以分为单位
Int
4
M
PurchaseType
0:
包月支付,用户选择订购产品后,按照固定包月费用计费,在当月内无需再次向业务管理平台发起订购请求;
1:
按次支付,用户选择订购产品后,按照使用次数进行计费无需重新发起订购请求
2:
免费
3:
ppv,用户选择订购产品后,进行一次性计费。
再次使用时仍需订购该产品
4:
SVOD;
5:
PVOD;
6:
PSpace:
个人空间;
7:
PTime:
个人回看时长;
8:
VideoDownload
Int
4
O
ProductDesc
产品描述
String
200
O
ListPrice
标称价格,以分为单位
Int
4
O
RentalTerm
租期
Int
4
O
LimitTimes
可使用次数
Int
4
O
2.2.B:
EPG服务器与Widget平台间接口
本接口用于将用户在EPG页面中进行的业务开通、视频下载等事件通知Widget平台。
Widget应用和高清视频的下载的指令是用户通过浏览器在EPG页面中下达的,而指令的执行却是通过Widget引擎、Widget应用和Widget平台实现的,EPG服务器通过本接口,将用户事件的详细信息发送至Widget平台。
2.2.1.事件通知接口
2.2.1.1.接口时序
2.2.1.2.接口协议内容
承载协议:
SOAP
接口方向:
EPG服务器→Widget平台
接口功能:
EPG服务器通知Widget平台业务开通、视频下载等事件
事件通知请求(EventNotify)
名称
说明
数据
类型
长度
(字节)
是否
必选
TransactionID
事务编号
String
40
M
TransType
事务的类型,表示此次事件对象的类型,其中:
0:
Widget
1:
视频
Int
4
M
UserID
IPTV用户业务编号
string
36
O
UserToken
业务管理平台为该用户分配的临时身份证明
string
32
M
ContentID
Widget应用的唯一标识,待下载的Widget应用,仅当TransType=0时为必选字段,其他情况下不应出现
Int
32
O
ContentList
待下载高清视频内容列表,仅当TransType=1时为必选字段,其他情况下不应出现
Content[]
不定
O
ExpireTime
事件失效时间,超时则删除该事件,采用UTC时间,格式为YYYYMMDDThhmmssZ。
缺少本参数表示永久有效。
String
16
O
Content结构
名称
说明
数据
类型
长度
(字节)
是否
必选
ContentID
需下载的视频内容的唯一标识
String
32
M
【注】当选择下载连续剧时,EPG页面中应提供给用户一次勾选即可选中一部连续剧中所有内容的功能,该部连续剧中的每一集生成一个Content结构体,加入到ContentList中。
事件通知响应(EventResponse)
名称
说明
数据
类型
长度
(字节)
是否
必选
ResultCode
处理结果
int
4
M
ErrorDescription
对错误/异常的详细描述信息
string
256
O
2.3.C:
Widget平台与高清下载平台间接口
本接口用于Widget平台在获取视频内容下载的事件后从高清下载平台获取该视频文件的URL。
2.3.1.接口时序
2.3.2.接口协议内容
承载协议:
SOAP
接口方向:
Widget平台→高清下载平台
接口功能:
Widget平台向高清下载平台请求获取高清视频下载地址接口
地址获取请求【AddrAcquireRequest】
名称
说明
数据
类型
长度
(字节)
是否
必选
ContentList
待下载视频内容列表
Content[]
不定
M
Content结构
名称
说明
数据
类型
长度
(字节)
是否
必选
ContentID
内容的唯一标识
String
32
M
地址获取响应【AddrAcquireResponse】
名称
说明
数据
类型
长度
(字节)
是否
必选
ContentURLList
待下载高清视频内容列表
ContentURL[]
不定
M
ContentURL结构
名称
说明
数据
类型
长度
(字节)
是否
必选
ContentID
内容的唯一标识
String
32
M
DownloadURL
高清下载平台中视频文件的下载地址,该地址针对一个ContentID需仅允许一个UserToken进行访问,以防止盗链。
String
1024
M
ExpireTime
下载链接失效时间,超时则此链接不可访问,采用UTC时间,格式为YYYYMMDDThhmmssZ。
String
16
M
【注】DownloadURL生成规则可参考以下方式:
影片访问的防盗链URL,如
http:
//xxx.xxx.xxx.xxx/path/name.ts?
timestamp=b&signature=c
⏹影片下载的原始链接:
包含四部分内容,分别为协议头、IP地址(或域名)、相对路径、媒体文件名,例如,http:
//xxx.xxx.xxx.xxx/path/name.ts。
⏹访问时间戳Timestamp,为本接口被调用时下载系统的系统时间,具体为距离格林尼治时间1970年0点的秒数,长度8字节。
⏹加密字串Signature:
◆加密算法的选择。
由于防盗链加密参数需动态生成,考虑到加密算法实现的复杂度和生成后的防盗链URL的总长度,目前暂定采用加密摘要算法SHA-1。
后期如果需要加强算法强度,可以进一步更新防盗链参数及计算规则。
通过加密摘要算法SHA-1,对(密钥+URL+时间戳+用户IP)的字符串序列进行加密,生成的加密后字符串signature为20个字节的摘要。
◆密钥Key,长度为4个字节,密钥为事先约定,定期修改,密钥的分配和管理采用人工配置方式。
◆影片访问的原始链接URL。
长度不固定,如:
http:
//xxx.xxx.xxx.xxx/path/name.ts
◆访问时间戳Timestamp,为用户点击URL时刻的系统时间,具体为距离格林尼治时间1970年0点的秒数,长度8字节。
◆用户IP,采集自请求数据包。
长度为4个字节。
2.4.D:
机顶盒与EPG服务器间接口
本接口为机顶盒浏览器与EPG服务器间接口,遵循中国电信《机顶盒与IPTV业务运营平台技术规范V2.0》“6.机顶盒与EPG服务系统接口(S2接口)”中的说明。
为支持高清下载业务,对机顶盒浏览器需支持的扩展javascript集合中的Utility对象进行修改,添加“Utility.Write”和“Utility.Read”函数,具体信息如下表:
方法
参数
返回值
注释
setBrowserWindowAlpha(alpha)
0-100之间的整数值,0表示不透明,100表示完全透明。
浏览器窗口(针对所有页面)的透明度,设置之后立即生效
getEvent()
N/A
字符串
封装event对象的JSON字符串
获得虚拟按键事件的详细信息
startLocalCfg()
启动本地配置界面,用于进行网络、帐户、密码等内容的配置。
write(string)
向机顶盒上指定的应用写入命令
写入是否成功
0:
成功;
1:
失败;
在本方案中,写入的字符串为“WidgetEng,TransID,TransType”
其中“WidgetEng”为固定字符串表示命令发往的本地应用,TransID为本次应用或视频下载的事务ID,TransType为本次事务的类型
read(string)
从指定的应用中读取希望获取的参数
本方案中不使用
2.5.E:
浏览器与Widget引擎间接口
⏹承载协议:
机顶盒内部标准C函数
⏹接口方向:
浏览器→Widget引擎
⏹函数名称:
intstartTrans(stringTransID,intTransType,stringUserToken)
⏹功能说明:
该接口用于浏览器与Widget引擎间的交互与参数传递。
浏览器从EPG服务器获取事件ID后,通过系统中转将参数传递至Widget引擎;
⏹返回值说明:
调用是否成功,0–成功;1–失败;
⏹参数说明:
名称
说明
数据
类型
长度
(字节)
是否
必选
TransID
事务编号
String
40
M
TransType
事务的类型,表示此次事件对象的类型,其中:
0:
Widget
1:
视频
Int
4
M
UserToken
业务管理平台为该用户分配的临时身份证明
string
32
M
之所以增加TransType的作用是在于,WE只负责Transaction的分发,但是不处理Transaction详细信息的处理,而是将处理交由Widget完成,这样有利于释放WE的能力。
2.6.下载Widget与Widget平台的接口
本接口用于下载Widget引擎从Widget平台获取需下载的影片列表地址。
当来自于浏览器的TransType=1时,Widget引擎会通过DownloadEvent对象将下载事件抛送给下载Widget应用,并由下载Widget应用获取需要下载的影片信息。
2.6.1.1.接口协议内容
承载协议:
HTTP+XML
接口方向:
下载Widget→Widget平台
接口功能:
Widget请求获取下载影片列表的接口
获取下载影片列表请求【GetDownalodRequest】
名称
说明
数据
类型
长度
(字节)
是否
必选
TransactionID
事务编号
String
40
M
UserToken
业务管理平台为该用户分配的临时身份证明
String
32
O
获取下载影片列表响应【GetDownalodResponse】
名称
说明
数据
类型
长度
(字节)
是否
必选
TransactionID
事务编号
String
40
M
ResultCode
处理结果
int
4
M
ContentList
待下载高清视频内容列表
Content[]
不定
O
Content结构
名称
说明
数据
类型
长度
(字节)
是否
必选
ContentID
内容的唯一标识
String
32
M
DownloadURL
高清下载平台中视频文件的下载地址,该地址针对一个ContentID需仅允许一个UserToken进行访问
String
1024
M
ExpireTime
下载链接失效时间,超时则此链接不可访问,采用UTC时间,格式为YYYYMMDDThhmmssZ。
String
16
M
2.7.F:
Widget引擎与Widget平台的接口
本接口用于Widget平台与Widget引擎间的交互,包括下载Widget应用。
2.7.1.下载Widget接口
2.7.1.1.接口时序
2.7.1.2.接口协议内容
承载协议:
HTTP+XML
接口方向:
Widget引擎→Widget平台
接口功能:
Widget引擎请求下载Widget应用接口
下载Widget的请求【GetWidgetRequest】
名称
说明
数据
类型
长度
(字节)
是否
必选
TransactionID
事务编号
String
40
M
UserToken
业务管理平台为该用户分配的临时身份证明
String
32
M
下载Widget的请求【GetWidgetResponse】
名称
说明
数据
类型
长度
(字节)
是否
必选
TransactionID
事务编号
String
40
M
ResultCode
处理结果
int
4
M
ContentID
Widget应用的ID
String
32
O
DownloadURL
Widget应用下载地址
String
1024
M
2.8.G:
下载模块与Widget引擎之间接口
2.8.1.任务管理接口
Widget引擎将下载模块提供的下载控制接口转译为可供下载Widget调用的通用接口,下载Widget通过调用这些接口完成用户的下载控制指令,包括下载任务的查看、启动、暂停、恢复、停止、删除、重新下载等。
2.8.1.1.接口时序
2.8.1.2.接口协议内容
本接口的承载协议及消息内容,见3.7.2及3.7.3章节
2.8.2.新建任务接口
2.8.2.1.接口时序
2.8.2.2.接口协议内容
本接口的承载协议及消息内容,见3.7.2及3.7.3章节
2.8.3.通信协议
Widget引擎和下载模块之间的之间的通讯方法采用的是消息队列。
消息队列的消息由消息类型和消息数据构成。
消息类型指明了事件的类型,例如:
预约下载、立即下载、续传下载等。
消息数据是与该事件相关的字符串。
消息队列的数据结构定义如下:
structmsg_buf{
longmtype;
charmtext[1024];
};
任务管理器建立了两个消息队列。
Widget引擎发送时,所用的消息队列的相关联的键值(即函数msgget的第一个参数)为0x1000;Widget引擎接收时,所用的消息队列的相关联的键值为0x1001。
2.8.4.事件的消息定义
Ø预约下载
✧发送事件
消息类型:
1
消息数据格式:
[:
url]=TransactionID=xxxx&ContentID=xxxx&ContentType=xxx&Url=xxx&TimeStamp=xxxx
【注】上面一行末尾应有一个空格
[:
order]=xxxx
【注】此处是指用户预定下载任务开始的时间,用当前时间相对于1970年一月一日00:
00:
00的秒数表示
✧返回结果
消息类型:
1
消息数据格式:
参见附录A
Ø立即下载
✧发送事件
消息类型:
2
消息数据格式:
[:
url]=TransactionID=xxxx&ContentID=xxxx&ContentType=xxx&Url=xxx&TimeStamp=xxxx
✧返回结果
消息类型:
2
消息数据格式:
参见附录A
Ø续传下载
✧发送事件
消息类型:
3
消息数据格式:
[:
id]=xxxx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 下载 Widget 技术 方案 0409