发明内容
有鉴于此,本发明的主要目的在于提供一种机顶盒版本升级的方法及系统,能提高IP机顶盒的版本升级速度,并节约网络资源。
为达到上述目的,本发明公开了一种机顶盒版本升级的方法,该方法包括:
IP机顶盒启动版本升级,判断是否采用组播升级模式进行版本升级,若不采用组播升级模式,则下载并解析升级服务器上的升级配置文件;
如果升级配置文件中包含组播升级地址且使能组播升级,则IP机顶盒采用组播升级模式进行版本升级;如果升级配置文件中不包含组播升级地址,则采用超文本传输协议HTTP升级模式进行版本升级;
在HTTP升级模式下,当连接到升级服务器的IP机顶盒数量超过门限时,则切换至组播升级模式,对IP机顶盒进行版本升级,并在第二时间段后,停止组播升级;
其中,所述门限是升级服务器根据升级服务器的性能及网络状况进行设置的用于衡量IP机顶盒连接数量的数值;所述第二时间段根据实际连接到升级服务器上的IP机顶盒数量及网络状况设置。
优选地,上述方法进一步包括:
开始新一轮版本升级时,升级服务器通过设置升级配置文件使IP机顶盒在第一时间段内采用组播升级模式,并在第一时间段之后停止组播升级,切换至HTTP升级模式;其中,所述升级配置文件包括:当前升级文件的版本号、组播升级地址配置项、组播升级使能项;所述第一时间段取决于实际连接在升级服务器上的IP机顶盒数量、以及当前的网络情况。
其中,所述判断是否采用组播升级包括:IP机顶盒读取自身的升级服务器地址,如果所述升级服务器地址为组播升级地址,则采用组播升级;如果所述升级服务器地址为HTTP升级地址,则下载并解析升级服务器上的升级配置文件;或者,IP机顶盒根据策略服务器下发的升级地址,来判断是否采用组播升 级;如果策略服务器下发的升级地址是组播升级地址则选择组播升级模式;如果策略服务器下发的升级地址是HTTP升级地址,则选择HTTP升级模式。
上述方法中,所述IP机顶盒进行组播升级包括:IP机顶盒加入组播组,接收并解析升级头数据,并判断是否升级,如果不升级,则退出版本升级;如果升级,则进行升级初始化,以及接收并保存升级数据;在所述升级数据接收完毕后,IP机顶盒根据升级数据更新版本;其中,所述升级头数据包括:当前升级文件的版本号、升级文件的分块大小、升级文件的分块数量;所述升级数据为分成若干个组播数据包的升级文件。
其中,所述IP机顶盒判断是否升级包括:IP机顶盒根据从所述升级头数据中解析得到的当前升级文件的版本号,判断是否进行版本升级;若所述当前升级文件的版本号与IP机顶盒中对应的版本号不相同,则进行版本升级;若所述当前升级文件的版本号与IP机顶盒对应中的版本号相同,则不进行版本升级。
上述方法中,该方法还包括判断所述升级数据是否接收完毕,为:根据从所述升级头数据中解析得到的升级文件的分块大小、升级文件的分块数量来判断所述升级数据是否接收完毕;若升级文件的分块大小与升级文件的分块数量的积与升级文件的大小相同,则所述升级数据接收完毕;若升级文件的分块大小与升级文件的分块数量的积小于升级文件的大小,则继续接收所述升级数据。
为实现上述方法,本发明提供一种机顶盒版本升级的系统,包括:升级服务器、IP机顶盒;其中,
升级服务器,用于提供升级配置文件;
IP机顶盒,用于启动版本升级并判断是否采用组播升级模式进行版本升级,在不采用组播升级时下载并解析所述升级服务器上的升级配置文件,以及根据升级配置文件选择版本升级模式并进行版本升级;
其中,所述升级服务器包括:模式切换单元,用于设置衡量IP机顶盒连接数量的门限;在HTTP升级模式下,连接到升级服务器的IP机顶盒数量超过所述门限时,切换至组播升级模式,对IP机顶盒进行版本升级,并在第二时间段后,停止组播升级;其中,所述门限是根据升级服务器的性能及网络状况进行设置; 所述第二时间段根据实际连接到升级服务器上的IP机顶盒数量及网络状况来设置。
其中,所述模式切换单元还用于:开始新一轮版本升级时,升级服务器通过设置升级配置文件使IP机顶盒在第一时间段内采用组播升级模式,并在第一时间段之后停止组播升级,切换至HTTP升级模式;其中,所述升级配置文件包括:当前升级文件的版本号、组播升级地址配置项、组播升级使能项;所述第一时间段取决于实际连接在升级服务器上的IP机顶盒数量、以及当前的网络情况。
其中,所述IP机顶盒包括:升级启动单元、第一模式判断单元、第二模式判断单元、组播升级单元、HTTP升级单元;其中,升级启动单元,用于启动版本升级;第一模式判断单元,用于判断是否采用组播升级模式进行版本升级,并在不采用组播升级模式进行版本升级时通知第二模式判断单元;在采用组播升级模式进行版本升级时通知组播升级单元;第二模式判断单元,用于下载并解析升级服务器上的升级配置文件,并判断是否包含组播升级地址,并在包含组播升级地址且使能组播升级时通知组播升级单元,在不包含组播升级地址时通知HTTP升级单元;组播升级单元,用于采用组播升级模式进行版本升级;HTTP升级单元,用于采用HTTP升级模式进行版本升级。
上述系统中,所述组播升级单元还包括:第一数据处理子单元、升级判断子单元、第二数据处理子单元、版本更新子单元;其中,第一数据处理子单元,用于接收并解析升级头数据;升级判断子单元,用于根据所述第一数据处理子单元解析得到的当前升级文件的版本号判断是否进行升级,并在进行升级时通知第二数据处理子单元,以及在不进行升级时退出本次升级;第二数据处理子单元,用于接收并保存升级数据,以及用于判断所述升级数据是否接收完毕;版本更新子单元,用于在所述升级数据接收完毕后,根据升级数据更新版本;其中,所述升级头数据包括:当前升级文件的版本号、升级文件的分块大小、升级文件的分块数量;所述升级数据为分成若干个组播数据包的升级文件。
由以上技术方案可以看出,本发明采用组播升级、HTTP升级相结合的方式,对IP机顶盒进行版本升级。在升级用户集中时采用组播方式,而在升级用户少时采用以前的HTTP方式升级。
本发明结合组播升级和HTTP升级对IP机顶盒的版本进行升级,不仅降低了升级服务器对带宽的需求,还提高了IP机顶盒的版本升级速度及可靠性。并且,在保证组播升级的同时还能兼容现有的HTTP升级方式,在最大限度上节约了网络资源。
具体实施方式
本发明的基本思想在于:采用组播升级和HTTP升级相结合的方式对IP机顶盒进行版本升级,即在升级用户集中时采用组播升级模式,而在升级用户少时切换至HTTP升级模式。
需要说明的是,所述组播升级是指将升级文件分解成若干个组播数据包并以组播的形式在网络上发送,IP机顶盒检测到需要进行版本升级时,则通过直接加入组播组接收升级服务器发送的组播升级数据,这样虽然减轻了升级服务器的压力,但若一直在网络上发送组播升级数据,则会大量占用IPTV系统中本来就紧张的网络资源。于是,本发明进一步提出组播升级和HTTP升级相结合的方式对IP机顶盒进行版本升级,在升级用户集中时采用组播升级模式,而在升级用户少时采用HTTP升级模式。如此,既能保证IP机顶盒进行版本升级的速度及可靠性,又能节约网络资源。
为使本发明上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施例对本发明作进一步详细的说明。
需要指出的是,在说明本实施例的IP机顶盒进行版本升级之前,先来说明一下IPTV系统的升级服务器上切换组播升级模式和HTTP升级模式的实现过程 及其切换原则,主要有以下三个方面:
1)升级服务器设置或修改升级配置文件,主要增加组播升级地址配置项和组播升级使能项,通过设置组播使能项来标识当前所采用的版本升级方式是组播升级还是HTTP升级。例如:组播升级使能项设置为使能状态,即:使能组播升级时,则表示当前采用组播升级模式。
其中,所述升级配置文件包括:当前升级文件的版本号、组播升级地址配置项、组播升级使能项等。
2)每次开始新一轮版本升级时,在第一时间段如48小时内采用组播升级模式,第一时间段如48小时后停止组播升级,而切换至HTTP升级模式对IP机顶盒进行升级。例如:第一时间段结束后,通过修改升级配置文件中的组播升级地址配置项、关闭组播升级使能项,来停止组播升级。其中,所述修改升级配置文件中的组播升级地址配置项可指:将升级配置文件中的组播升级地址删除,或者将组播升级地址修改为HTTP升级地址。
其中,所述第一时间段根据实际连接在升级服务器上的用户情况如IP机顶盒的数量、以及当前的网络状况来设置,这里,第一时间段可采用48小时作为开始进行组播升级的一个特定时间段。
3)在HTTP升级模式下时,当升级服务器的用户即IP机顶盒连接数超过门限时,则切换至组播升级模式进行升级,第二时间段如24小时内采用组播来发送升级文件,第二时间段后停止组播升级,也可切换回HTTP升级模式。例如:当连接到升级服务器的IP机顶盒数量超过门限时,升级服务器将升级配置文件中的组播升级地址配置项修改为组播升级地址,并使能组播升级,以此来切换至组播升级模式。
其中,所述门限是根据升级服务器的性能和网络状况进行设置。另外,所述第二时间段则根据实际连接到升级服务器上的用户情况如IP机顶盒的数量、以及网络状况来设置。
如图1所示,本发明机顶盒进行版本升级的过程主要包括:
步骤101,IP机顶盒启动版本升级;
IP机顶盒开机后,启动版本升级进程,这里版本升级的启动方式主要包括:IP机顶盒开机自动启动,或者由业务触发版本升级,如登陆电子节目菜单(EPG,Electronic Program Guide)进行认证时触发版本升级。具体地,IP机顶盒开机登陆EPG认证时,较新的IPTV业务系统会下发升级服务器地址,并直接触发IP机顶盒的版本升级进程。对于较旧的IPTV业务系统,EPG则不会下发升级服务器地址,IP机顶盒将从自身的配置中获取相应的升级的地址,从而启动升级流程。
步骤102,IP机顶盒判断是否采用组播升级模式进行版本升级,如果不采用组播升级,则执行步骤103;如果采用组播升级,则执行步骤108;
其中,IP机顶盒先根据其自身所配置的升级服务器地址来判断是采用组播升级还是HTTP升级,如果配置的升级服务器地址为组播升级地址则选择组播升级模式;如果配置的升级服务器地址为HTTP升级地址,则选择HTTP升级模式。
另外,对于没有配置升级服务器地址的IP机顶盒,可根据IPTV系统中的策略服务器下发的升级地址,如组播升级地址、或者HTTP升级地址,来判断是否采用组播升级。如果策略服务器下发的是组播升级地址则选择组播升级模式;如果下发的是HTTP升级地址,则选择HTTP升级模式。
这里,所述升级服务器、策略服务器均为IPTV系统中的组件,所述策略服务器会向未保存组播升级地址的IP机顶盒发送组播升级地址,通知IP机顶盒进行升级。
步骤103,IP机顶盒采用HTTP升级模式进行版本升级,与升级服务器连接并获取升级配置文件;
升级服务器的地址配置成HTTP连接方式,或者策略服务器下发的是HTTP链接地址,机顶盒从升级服务器上下载升级配置文件。
步骤104,IP机顶盒解析升级配置文件,并判断是否需要进行版本升级,如果不需要进行版本升级,则执行步骤105;如果需要进行版本升级,则执行步骤106;
IP机顶盒从升级配置文件中解析得到:当前升级文件的版本号、HTTP升级地址/组播升级地址、组播升级使能项等信息。然后,根据所述当前升级文件的 版本号和IP机顶盒自身的版本号来决定是否需要升级。也就是说,将解析得到的当前升级文件的版本号与IP机顶盒中对应的版本号进行比较,如果不相同,则进行版本升级;如果相同,则不进行版本升级。
需要说明的是,IP机顶盒中的各个模块如普通模块、开机图片(Logo)模块、安全模块等具有自身的版本号。每个当前升级文件的版本号与其所对应模块的版本号进行比较,如果不同,该模块则需要进行升级;如果相同,该模块则不需要进行升级。
步骤105,IP机顶盒退出版本升级,并结束本次版本升级流程。
步骤106,IP机顶盒判断升级配置文件中是否包含有组播升级地址,如果不包含组播升级地址,则执行步骤107;如果包含有组播升级地址,则执行步骤108;
IP机顶盒判断得知需要进行版本升级后,根据升级服务器配置的升级配置文件进一步对所采用的升级方式进行判断,即:如果升级配置文件中包含组播升级地址,并且组播升级使能项处于使能状态,则表示机顶盒进入组播升级模式,否则,如果升级配置文件中不包含组播升级地址、或只包含HTTP升级地址,则继续执行HTTP升级。
这里,所述IP机顶盒中的组播升级可以通过两种方式获取所需要的组播升级地址:
I、IPTV系统将IP机顶盒的升级服务器地址直接配置为组播升级地址,或者通过策略服务器向IP机顶盒下发组播升级地址;这种方法是单纯的组播升级,可以在特殊情况和测试中使用。
II、IPTV系统将升级服务器地址配置成HTTP连接方式,或者策略服务器下发HTTP链接地址,IP机顶盒从升级服务器上下载升级配置文件。如果升级配置文件中包含组播升级地址,并且使能组播升级,则表示IP机顶盒采用组播升级方式进行版本升级,否则,则采用HTTP升级。这种方法正是本实施例所采用的组播升级和HTTP升级相兼容的版本升级方式,即根据升级服务器配置的升级配置文件来判断采用何种升级模式,并进行对应的升级操作,如从升级服务器上下载具体所需的升级文件。
步骤107,IP机顶盒采用HTTP升级模式进行版本升级,连接升级服务器下载升级文件,然后执行步骤114;
其中,IP机顶盒进入升级状态时,停止其他业务如观看节目等,并连接升级服务器对升级文件进行整体下载。
步骤108,IP机顶盒加入组播组,进入组播升级模式;
在进行组播升级时,为了使加入组播组的IP机顶盒,能够判断得知是否需要进行版本升级,所以升级服务器在发送组播升级数据时进行一些处理,以保证IP机顶盒只在需要升级时才去进行版本升级。其主要的处理过程是这样的:升级服务器在向组播组发送组播升级数据时,将组播升级数据分成两种,包括升级头数据和升级数据。其中,所述升级头数据在升级文件之前发送给IP机顶盒,包括:
1)当前升级文件的版本号;
2)升级文件的分块大小;
3)升级文件的分块数量。
其中,所述当前升级文件的版本号用于判断是否需要进行版本升级。另外,IP机顶盒在接收升级文件时,可通过所述升级文件分块大小及数量来判断升级文件是否接收完毕。这里,所述升级数据则是按适当的大小如1.5kb分成若干的组播数据包,每个组播数据包都具有自身序号,该序号表明其所对应的组播数据包在升级文件中的位置。其中,所述适当的大小是升级服务器根据网络负载情况进行划分的,本实施例可采用1.5kb作为划分组播数据包的参考,若超出网络对数据包大小的限制还可进行分包处理。
步骤109,IP机顶盒接收升级头数据,并判断是否接收成功,如果接收不成功,则一直接收所述升级头数据直到接收成功;如果接收成功,则执行步骤110;
其中,IP机顶盒在接收组播升级数据时,先接收组播升级数据中的升级头数据。
步骤110,IP机顶盒解析升级头数据并判断是否需要进行版本升级,如果不需要进行版本升级,则执行步骤111;如果需要进行版本升级,则执行步骤112;
IP机顶盒从升级头数据中解析得到:当前升级文件的版本号、升级文件的分块大小、升级文件的分块数量等参数。而且,根据所述当前升级文件的版本号,IP机顶盒会判断出是否需要进行版本升级,如果当前升级文件的版本号与IP机顶盒中对应的版本号不相同,则进行版本升级;如果当前升级文件的版本号与IP机顶盒中对应的版本号相同,则不进行版本升级。
步骤111,IP机顶盒退出版本升级,并结束本次版本升级流程。
步骤112,IP机顶盒进入版本升级状态,并进行升级初始化;
其中,IP机顶盒进行升级初始化的操作主要包括:停止其他业务如观看的节目、界面切换如从观看界面或菜单界面切换到升级界面。
步骤113,IP机顶盒接收并保存升级数据;
这里,IP机顶盒继续接收组播升级数据,此时接收的是升级服务器在升级头数据之后发送的升级数据,该升级数据为被分成若干个组播数据包的升级文件,换言之,由所述升级数据组成升级文件。其中,每个组播数据包都具有自身序号,该序号表明其所对应的组播数据包在升级文件中的位置。而且,IP机顶盒按照所述序号对接收到的组播数据包进行存储。
步骤114,升级文件下载完毕后,IP机顶盒更新其版本;
这里,采用组播升级模块进行版本升级时,IP机顶盒还需要判断当前升级文件是否已经接收完毕,本实施例通过判断所接收的组播数据包的多少来判断升级文件是否接收完毕。其中,通过所述升级文件的分块大小、升级文件的分块数量便会得到整个升级文件的大小,即升级文件的分块大小乘以分块数量为整个升级文件的大小。另外,对于通过HTTP方式下载的升级文件可不必判断是否下载完毕,因为整个文件下载结束即为升级文件下载完毕。
在升级文件下载完成之后,HTTP升级模式与组播升级模式的处理基本一致,主要是:IP机顶盒升级模块所需升级文件下载完毕后,通过烧写更新(Flash),替换IP机顶盒中对应升级模块的版本,即将升级文件烧写到IP机顶盒中。
步骤115,版本升级成功,并结束本次升级流程。
对于上述的各实施例,为了简单描述,故将其都表述为一系列的动作组合, 但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。
为实现上述方法,本发明还提供一种机顶盒版本升级的系统,如图2所示,包括:升级服务器、IP机顶盒。其中:
升级服务器,用于提供升级配置文件;
IP机顶盒,用于启动版本升级并判断是否采用组播升级模式进行版本升级,在不采用组播升级时下载并解析所述升级服务器上的升级配置文件,以及根据升级配置文件选择版本升级模式并进行版本升级。
上述系统中,所述升级服务器包括:模式切换单元,用于开始新一轮版本升级时,升级服务器通过设置升级配置文件使IP机顶盒采用组播升级模式,并在第一时间段之后停止组播升级,切换至HTTP升级模式;其中,所述升级配置文件包括:当前升级文件的版本号、组播升级地址配置项、组播升级使能项;所述第一时间段取决于实际连接在升级服务器上的IP机顶盒数量、以及当前的网络情况。
上述系统中,所述升级服务器包括:模式切换单元,用于升级服务器设置衡量IP机顶盒连接数量的门限;在HTTP升级模式下,当连接到升级服务器的IP机顶盒数量超过所述门限时,则切换至组播升级模式,对IP机顶盒进行版本升级,并在第二时间段后,停止组播升级;其中,所述门限是根据升级服务器的性能及网络状况进行设置;所述第二时间段根据实际连接到升级服务器上的IP机顶盒数量及网络状况来设置。
上述系统中,所述IP机顶盒包括:升级启动单元、第一模式判断单元、第二模式判断单元、组播升级单元、HTTP升级单元;其中,
升级启动单元,用于启动版本升级;
第一模式判断单元,用于判断是否采用组播升级模式进行版本升级,并在不采用组播升级模式进行版本升级时通知第二模式判断单元;在采用组播升级模式进行版本升级时通知组播升级单元;
第二模式判断单元,用于下载并解析升级服务器上的升级配置文件,并判 断是否包含组播升级地址,并在包含组播升级地址且使能组播升级时通知组播升级单元,在不包含组播升级地址时通知HTTP升级单元;
组播升级单元,用于采用组播升级模式进行版本升级;
HTTP升级单元,用于采用HTTP升级模式进行版本升级。
上述系统中,所述组播升级单元还包括:第一数据处理子单元、升级判断子单元、第二数据处理子单元、版本更新子单元;其中,
第一数据处理子单元,用于接收并解析升级头数据;
升级判断子单元,用于根据所述第一数据处理子单元解析得到的当前升级文件的版本号判断是否进行升级,并在进行升级时通知第二数据处理子单元,以及在不进行升级时退出本次升级;
第二数据处理子单元,用于接收并保存升级数据,以及用于判断所述升级数据是否接收完毕;
版本更新子单元,用于在所述升级数据接收完毕后,根据升级数据更新版本;
其中,所述升级头数据包括:当前升级文件的版本号、升级文件的分块大小、升级文件的分块数量;所述升级数据为分成若干个组播数据包的升级文件。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述即可。以上所述,仅为本发明的较佳实施例而已,只是用来说明和解释本发明,并非用于限定本发明的保护范围。在本发明的精神和权利要求保护范围之内,对本发明所作的任何修改、等同替换,都落入本发明的保护范围。