发明内容
本发明的目的在于解决上述问题,提供了一种对机顶盒loader文件进行统一升级管理的系统,它确定了统一的loader技术规范,更好地解决了网络中不同厂商的机顶盒的软件版本管理问题,实现不同厂商升级码流同时进行播发的功能。
本发明的技术方案为:一种对机顶盒下载器文件进行统一升级管理的系统,机顶盒厂商向运营商提供各自的下载器文件,由所述运营商使用所述系统对所有的机顶盒下载器文件进行统一的管理、调度和广播,其中,所述系统包括一用于接收、存储下载器文件并根据接收到的播发指令将所述下载器文件升级广播的服务器、一用于管理调度下载器文件的客户端和一存储下载器记录的数据库,所述客户端包括:
配置管理模块,将所述下载器文件传输到所述服务器中存储,同时根据该下载器文件设置用于升级广播的下载器记录并将其传输到所述数据库中存储;
播发调度模块,从所述数据库用于升级广播的所有下载器记录中选取所需升级广播的下载器文件,设置所述下载器文件升级广播的参数,并向所述服务器发送播发指令,同时根据所述参数导出当前升级的下载器文件的描述符。
上述的统一升级管理的系统,其中,所述下载器记录中包含厂商信息、硬件版本、软件版本、下载器文件格式、下载器文件在服务器中的存储位置。
上述的统一升级管理的系统,其中,所述下载器文件升级广播的参数包含升级的厂商名、升级的起止时间、升级的范围选择、下载器文件升级使用的包标识符和带宽。
上述的统一升级管理的系统,其中,所述升级的范围是机顶盒序号、机顶盒批次号或者硬件软件版本。
上述的统一升级管理的系统,其中,所述系统还包括一业务信息/节目特定信息的信息播出模块,接收经所述播发调度模块导出的当前升级的下载器文件的描述符并予以播发。
上述的统一升级管理的系统,其中,所述服务器中包含一码流封装模块,采用预设的统一系统技术应用规范将下载器文件封装打包。
上述的统一升级管理的系统,其中,所述机顶盒厂商还提供下载器文件对应的下载器描述文件,所述配置管理模块从所述下载器描述文件中自动提取用于升级广播的下载器记录信息。
上述的统一升级管理的系统,其中,所述配置管理模块包括下载器记录管理子模块和下载器文件升级历史管理子模块,所述下载器记录管理子模块查询、添加、修改、删除所述数据库中保存的下载器记录信息;所述下载器文件升级历史管理子模块查询所述播发调度模块记录在所述数据库中的升级历史信息。
上述的统一升级管理的系统,其中,所述播发调度模块通过和所述服务器通信来获得当前播发的下载器文件升级广播的参数。
上述的统一升级管理的系统,其中,所述系统还包括一信息交互模块,提供通信接口以实现所述系统与外部系统的通信。
上述的统一升级管理的系统,其中,所述系统中定义了通用的链接下载描述符,与机顶盒约定了与升级范围相关的参数,该些参数使运营商可任意选定部分机顶盒进行升级。
上述的统一升级管理的系统,其中,所述与升级范围相关的参数包括以下信息:升级机顶盒号范围、升级区域、升级群体号、升级版本号、升级批次和升级厂商。
上述的统一升级管理的系统,其中,所述链接下载描述符包括以下参数:
描述符标签值,描述子表标识;
描述符长度值,表示链接下载描述符的循环中的字节总数;
传输流标识值,存储下载频点信息、QAM信息和符号率信息的NIT表的标识;
原始网络标识值,存储升级数据包下载所在频道的原始网络的全国唯一网络标识值;
服务标识值,表示下载数据流的标识,为描述升级数据包的PMT所在频道的节目号;
链接类型值,固定为0X09;
OUI(Organization Unique Identifier),即全国统一的设备厂商唯一编号,用于厂商识别;
循环长度值,表示OUI后的循环的字节长度值;
下载类型值,定义软件下载格式;
区域标志值,定义区域寻址控制标志;
群体标志值,定义群体寻址控制标志;
组件标签值,定义下载器文件升级使用的包标识符;
硬件主版本值,由各接收机厂商自行定义;
硬件次版本值,由各接收机厂商自行定义;
软件类型值,定义机顶盒的软件类型;
软件主版本值,由各厂商自行定义;
软件次版本值,由各厂商自行定义;
控制码,定义升级类型;
升级范围起始值,在按批次升级时,该值存储机顶盒升级批次范围的起始,在按序列号升级时,该值存储机顶盒升级序列号范围的起始;
升级范围结束值,在按批次升级时,该值存储机顶盒升级批次范围的结束,在按序列号升级时,该值存储机顶盒升级序列号范围的结束;
参数保留值,保留将来携带与升级有关的参数;
区域号码值,表示存储在机顶盒内的区域号码;
群体号码值,表示存储在机顶盒内的群体号码。
上述的统一升级管理的系统,其中,所述描述符标签值固定为0x4A。
上述的统一升级管理的系统,其中,所述下载类型值参数进一步包括:
序列号来源,可表示为机顶盒号、智能卡卡号和配对时的配对号其中之一;
下载标识,可标识自动提示下载方式或手动下载方式;
传输流格式,可表示传输流是DC方式封装或私有格式。
上述的统一升级管理的系统,其中,所述软件类型值参数进一步包括:
完整软件类别,表示系统软件以及应用软件的完整整体;
驱动软件类别,表示最小下载器升级和硬件诊断;
测试用系统软件;以及
软件模块类别,为终端提供的附加外设设备的专用驱动程序;
上述的统一升级管理的系统,其中,所述控制码参数进一步包括以下信息:
强制升级,对软件版本不等于当前流中软件版本的用户升级;
基本升级,对所有低于当前播放软件版本的用户升级;
按批次升级,对在批次范围中并且软件版本低于当前播放软件版本的用户升级;
按序列号升级,对在序列号范围中并且软件版本低于当前播放软件版本的用户升级。
本发明对比现有技术有如下的有益效果:本发明中的客户端配置管理模块用于管理系统升级软件需要设置的各种网络信息以及系统版本信息,服务器作为数字视频广播DVB(Digital Video Broadcasting)前端发送系统软件升级码流的服务器,通过标准通信方法接收来自客户端播发调度模块的命令,根据控制命令将存储在待播库中的系统升级软件(即loader文件)打包发送,并具有一定的容错性、报警提示和日志功能。本发明方便了网络中不同机顶盒软件升级版本的管理问题,实现不同厂商升级码流同时进行播发,而且在一定程度上减轻了机顶盒大面积升级带来的负面影响。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
图1示出了本发明一个实施例的网络结构。如图1所示,在前端的网络中,由客户端101、SSU(系统软件升级,System Software Upgrade)数据服务器102、SSU信息数据库103通过网络交换机104连接成统一loader系统100。复用器200同SSU数据服务器102连接,EPG(Electronic Program Guide)系统301和OSS/SMS(Operational Support System/Subscriber Management System)系统302通过网络交换机104与统一loader系统100连接。
图2示出了本发明一个实施例的系统框架。如图2所示,统一loader系统100可划分为配置管理模块111、播发调度模块112、SSU数据服务器102以及SSU信息数据库103。其中SSU数据服务器102部署在使用Linux操作系统的服务器上,而其余模块均部署在使用Windows操作系统的客户端计算机上。
下面结合一个实例来说明统一loader系统100中各个模块的实现过程。在该实例中,某机顶盒生产厂商提供了一个loader文件以及对应的loader描述文件。该loader描述文件内容如下:生产厂商名称:ABC,硬件版本:0082,软件版本:0X44,下载格式:私有格式,文件格式:TS文件,以及该loader文件存放在SSU数据服务器102上的D盘根目录下等信息。如果要升级,通常情况下需要生成硬件版本相同而软件版本更高的一个loader文件用于在线升级,因而在这里假定其待升级的软件版本为0X43。
厂商向运营商提供用于升级的loader文件和对应的loader描述文件后,配置管理模块111根据loader描述文件将相应的loader文件传输到SSU数据服务器102的指定路径中。同时,配置管理模块111在SSU信息数据库103中新增一条对应的loader记录,该记录的格式依次为:厂商信息、硬件版本、软件版本、loader文件格式、loader文件在SSU服务器102上的存储位置。在这里,新增加的记录是“ABC、0082、0X44、TS文件、D:\”。每一个不同的loader文件都对应不同的loader记录,而所有的loader记录组成一个loader记录数据库。
当然,配置管理模块111也可以不通过提取loader描述文件的信息而是根据厂商提供的相关信息直接手动添加loader记录。配置管理模块111还可检测loader描述文件是否有错误,能够判断loader文件是否可以用于升级广播,如果loader文件已经是TS文件,也可判断其格式是否满足统一规范的要求。配置管理模块111可再细分为loader记录管理子模块和loader文件升级历史管理子模块。loader记录管理子模块可查询、添加、修改和删除loader记录数据库中的loader记录信息。Loader文件升级历史管理子模块可查询播发调度模块112记录在数据库中的升级历史信息,包括系统升级软件的厂商、硬件版本、软件版本、升级开始时间和升级结束时间等信息。
然后,播发调度模块112连接SSU数据服务器102。在上述的配置管理模块111中,可以将一个厂商设置成一项服务(Service),将对应该厂商的loader文件配置成该服务下的基本流(Elementary Stream)。运营商选择当前需要进行升级的厂商(即选择服务),选择当前用于升级的loader记录(即对应服务下的基本流ES),并设置loader文件播发信息的参数,比如设置升级的起止时间,设置升级的范围选择、loader文件升级使用的PID和带宽等。设置完成后即可将开始该loader文件升级播发的指令发送给SSU数据服务器102。播发调度模块112还可通过与SSU数据服务器102的通信来获得当前播发的loader文件升级广播的参数,还可将所有的播发调度操作记录到SSU信息数据库103中,供配置管理模块111使用。
其中,升级的范围选择可以是根据机顶盒序号、机顶盒批次号或者仅根据机顶盒的硬件软件版本来选择。按机顶盒序号或批次号或硬件软件版本进行升级的意义在于,如果针对全部网络进行升级,有线网络由于信号质量原因,在很大的覆盖面上出现故障的可能就很多,会导致运营商难以应付的局面。而如果按序号、批次号或硬件软件版本进行升级,则可以将升级所影响的范围限定在一个相对较小的范围,出现的故障数量相对要少很多。这样就可以通过连续的小批量升级将整个网络内的机顶盒都完成一次升级。
播发调度模块112可根据当前的loader文件升级广播导出SI/PSI需要的描述升级信息的描述符内容,即当前有哪些厂商的哪些loader文件在进行升级,他们各自的标签Tag(也即PID)、升级范围的选择等信息。SI/PSI信息使用EPG系统301来播出。EPG系统301接收上述的描述符,并将其插入到指定的SI表中,完成对NIT的设置。只要保证EPG系统301配置并播出的SI/PSI信息与播发调度模块112使用的信息协调一致,顺利地进行loader文件升级就得到了保障。
SSU数据服务器102接收播发调度模块112的播发指令,将loader文件及与之相关的控制信息通过ASI输出口传输给复用器200等设备实现广播。
SSU数据服务器102可接收遵循统一系统技术应用规范打包的传送流(TS,即Transport Stream)文件、未打包的loader文件以及各厂商专用格式的TS文件。SSU数据服务器102中的码流封装模块根据接收的loader文件的类型,采用不同的处理方式,确保发出正确的升级数据码流。处理方式如下:在遇到厂商专用格式的TS文件时,先检验其是否是合法的TS文件,并根据指定的PID进行重新映射;在遇到厂商专用格式的未打包的loader文件时,根据指定的PID从Section数据打包成TS文件;而对于DC格式的未打包的loader文件,首先采用统一系统技术应用规范中使用的数字存储媒体命令与控制(DSM-CC,即Digital StorageMedia-Command&Control)两层数据轮播(Data Carousel)协议进行数据的封装,打包生成TS文件,然后再行广播。
loader文件广播之后,机顶盒随时检测到NIT中发生的变化,如果NIT中携带上述的描述符,机顶盒将逐一判断当前广播的loader文件中是否有符合它的loader文件。判断顺序依次为厂商标识、硬件版本、软件版本,如果设置了升级范围则还需判断升级范围是否符合自身。如果上述条件都通过了,则机顶盒根据描述符中指定的Tag(PID),开始接收具有相同PID的loader文件,接收并校验完毕之后自动重新启动机顶盒完成系统软件的升级。
整个统一loader系统还可以包括一个信息交互模块,该信息交互模块用于提供通信接口,通过该接口实现和外部系统的通信。比如提供升级前后分析接口给OSS,用于提供分析数据。
此外,统一loader系统还定义了通用的链接下载描述符(linkage downloaderdescriptor),与机顶盒约定了包括升级机顶盒号范围、升级区域、升级群体号、升级版本号、升级批次和升级厂商等与升级范围相关的参数。这些参数的组合保证运营商可以任意选定部分机顶盒进行升级,从而避免了由于厂商、版本号、批次的不同引起的机顶盒升级带来的负面影响。运营商可先进行小范围的升级,之后再进行大批量的升级,保证用户在升级过程中的问题不至于一下子爆发。
链接下载描述符的具体结构如下表所示:
Syntax |
No.of bits |
Identifier |
Linkage_Descriptor(){Descriptor_tag =0x4ADescriptor_lengthTransport_stream_idOriginal_network_idService_idLinkage_type =0x09OUI_data_lengthfor(I=0;I<N;I++){OUIselector_lengthfor(j=0;j<N;j++){Update_typeRegion_flagColony_flagComponent_tagHardware_major_versionHardware_minor_versionSoftware_typeSoftware_major_versionSoftware_minor_version |
88161616882486118161681616 |
UimsbfUimsbfUimsbfUimsbfBslbfUimsbfUimsbfBslbfUimsbfBslbfUimsbfUimsbfUimsbfUimsbfUimsbfUimsbfUimsbfUimsbf |
Serial_number_startSerial_number_endControl_codePrivate_dataif(region_flag=0x1)region_noif(colony_flag==0x1)conlony_no}}For(I=0;I<N;I++){private_data_byte}} |
323283216168 |
UimsbfUimsbfUimsbfBslbfBslbfBslbfBslbf |
下面是对链接下载描述符中各字段的描述:
Descriptor_tag:描述子表ID,其值定为0x4A。
Descriptor_length:此后Descriptor循环中字节总数。
Transport_stream_id:存放下载频点信息,QAM信息,和符号率信息的NIT表的ID。
Original_network-id:存储升级数据包下载所在频道的原始网络的全国唯一网络标识值。
Service_id:下载数据流的ID,该值应为描述升级数据包的PMT在该频道的节目号,一般定义一个Service_id对应一个厂商。
Linkage_type:其值固定为0X09
OUI:是一个标准定义,在本实施例中高字节暂未定,低两字节用于厂商识别。
Selector_length:为以下循环的字节总长度。
Update_type:大小为6位(bit),定义软件下载格式如下:
Bit5Bit4 Bit3~2 Bit1 Bit0
|
|
Serial_Number_Source(2 bits) |
Download_flag |
TS_format |
Serial_Number_Source |
说明 |
00 |
序列号为机顶盒号 |
01 |
序列号为智能卡卡号 |
10 |
序列号为配对时的配对号 |
11 |
保留 |
Region_flag:lbit,定义区域寻址控制标志,0x0不按区域寻址,0x1按区域寻址。
Colony_flag:lbit,群体寻址控制标志,0x0不按群体寻址,0x1按群体寻址。
Component_tag:8bit,定义本版本的Loader PID,Service_id对应的PMT中所对应的elementary stream必须带component descriptor(descriptor_tag=0x50)。
Hardware_major_version:16bit硬件主版本,由各接收机厂商自行定义。
Hardware_minor_version:16bit硬件次版本,由各接收机厂商自行定义。
Software_TYPE:8bit软件类型,参见下表。
软件类别 |
CODE值 |
备 注 |
完整软件 |
0X00 |
系统软件以及应用软件完整整体 |
驱动软件 |
0X10 |
Miniload升级、硬件诊断等 |
测试用系统软件 |
0X20 |
|
软件模块 |
0x30-0x7F |
为终端提供的附加外设设备专用驱动程序,每个驱动软件码(CODE)值需事先单独分配,例如USB |
保留 |
0X80~0XFF |
|
Software_major_version:16bit软件主版本。由厂商自行定义。
Software_minor_version:16bit软件主版本。由厂商自行定义。
Control_code:8bit升级类型定义,见下表。
升级类型 |
CODE值 |
备 注 |
强制升级 |
0X00 |
对软件版本不等于当前流中软件版本的用户升级 |
基本升级 |
0X01 |
对所有低于当前播发软件版本的用户升级 |
按批次升级 |
0X02 |
对在批次范围中并且软件版本低于当前播发软件版本的用户升级 |
按序列号升级 |
0X03 |
对在序列号范围中并且软件版本低于当前播发软件版本的用户升级 |
保留 |
0X4-FF |
保留 |
Serial_number_start:大小为32bit,需要时可定义为:
需要按批次升级时,是升级该程序的机顶盒批次范围起始;
需要按序列号升级时,是升级该程序的机顶盒序列号范围起始。
Serial_number_end:大小为32bit,需要时可定义为:
需要按批次升级时,是升级该程序的机顶盒批次范围结束;
需要按序列号升级时,是升级该程序的机顶盒序列号范围结束。
Private_data:保留用于将来携带与升级有关的参数:
region_no:16bit,存储在机顶盒内的区域号码;
colony_no:16bit,存储在机顶盒内的群体号码。
上述实施例是提供给本领域普通技术人员来实现或使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。