升級服務器、機頂盒及其軟件升級方法
【專利摘要】本發明公開了一種升級服務器、機頂盒及其軟件升級方法,所述方法包括:升級服務器對于接收的每個軟件升級請求,從中解析出發送方的IP地址,將解析出的IP地址加入到升級請求隊列中;并每隔設定時間,向升級請求隊列中的各IP地址的機頂盒,發送升級軟件的各數據片;升級服務器對于接收的每個數據接收錯誤通知信息,從中解析出發送方的IP地址,以及數據片的ID,并對于每個解析出的數據片的ID,將解析出的IP地址加入到對應該數據片的ID的重發隊列中;并每隔設定時間,對于每個數據片的ID,向對應該數據片的ID的重發隊列中的各IP地址的機頂盒重發該數據片。從而提高了軟件升級成功率,節省了網絡帶寬。
【專利說明】升級服務器、機頂盒及其軟件升級方法
【技術領域】
[0001]本發明涉及機頂盒技術,尤其涉及一種升級服務器、機頂盒及其軟件升級方法。
【背景技術】
[0002]數字視頻變換盒(STB, Set Top Box),通常稱作機頂盒。機頂盒通過連接電視機與 外部信號源,將壓縮的數字信號轉成電視內容,并在電視機上顯示出來,使用戶能在電視機 上觀看數字電視節目,并可通過網絡進行交互式數字化娛樂、教育和商業化活動。
[0003]隨著數字電視產業的發展,機頂盒用戶規模不斷擴大。為更好地滿足用戶需求,提 升用戶體驗,機頂盒廠商提供的機頂盒的軟件版本在逐漸增多。機頂盒廠商為開通新的業 務,或解決機頂盒軟件缺陷等,通常需要對機頂盒進行軟件升級。現有的機頂盒進行軟件升 級的方法,通常是升級服務器和機頂盒建立一對一的升級連接,機頂盒通過廣電網接收到 升級服務器廣播的軟件升級消息后,判斷本機頂盒是否需要進行升級;若是,則該機頂盒向 升級服務器發送升級請求,升級服務器根據升級請求向該機頂盒返回軟件升級文件;該機 頂盒接收軟件升級文件,進行文件更新實現軟件升級。
[0004]然而,目前機頂盒的功能日益豐富,一些機頂盒的軟件的體積越來越大,若軟件升 級所涉及的升級文件較多(比如,升級軟件的主版本號改變),機頂盒在進行軟件升級文件 下載時,占用的時間較長,易因廣電網絡出現阻塞或中斷而導致軟件升級失敗,使得機頂盒 軟件升級成功率較低;而且,現有的機頂盒軟件升級方法中,若機頂盒接收到升級服務器廣 播的軟件升級消息后,在短時間內大批的機頂盒向升級服務器請求升級,易導致升級服務 器的負荷過大,造成升級服務器癱瘓,而且占用較大的網絡帶寬。
[0005]綜上所述,現有的機頂盒軟件升級方法的軟件升級占用時間較長,升級成功率較 低,且易浪費網絡帶寬。
【發明內容】
[0006]針對上述現有技術存在的缺陷,本發明提供了一種升級服務器、機頂盒及其軟件 升級方法,用以提高軟件升級成功率,節省網絡帶寬。
[0007]本發明提供了一種機頂盒軟件升級方法,包括:
[0008]升級服務器對于接收的每個軟件升級請求,從中解析出發送方的IP地址,將解析 出的IP地址加入到升級請求隊列中;并每隔設定時間,向所述升級請求隊列中的各IP地址 的機頂盒,發送升級軟件的各數據片;
[0009]所述升級服務器對于接收的每個數據接收錯誤通知信息,從中解析出發送方的IP 地址,以及數據片的ID,并對于每個解析出的數據片的ID,將解析出的IP地址加入到對應 該數據片的ID的重發隊列中;并每隔設定時間,對于每個數據片的ID,向對應該數據片的 ID的重發隊列中的各IP地址的機頂盒重發該數據片。
[0010]較佳地,所述升級服務器每隔設定時間,采用多播技術向所述升級請求隊列中的 各IP地址的機頂盒發送的升級軟件的各數據片時,還包括:發送所述升級軟件的分片信息;以及
[0011]所述數據接收錯誤通知信息具體是機頂盒根據接收到的分片信息確定出所述升 級軟件的數據接收錯誤后,向所述升級服務器返回的;
[0012]其中,所述機頂盒根據接收到的分片信息確定出所述升級軟件的數據接收錯誤, 具體為:該機頂盒解析出接收的分片信息中記錄的數據片的個數,與所述機頂盒接收到的、 校驗成功的數據片的個數進行比較;若比較結果為不相等,則確定出所述升級軟件的數據 接收錯誤。
[0013]較佳地,所述升級服務器對于接收的每個軟件升級請求,從中解析出發送方的IP 地址,將解析出的IP地址加入到升級請求隊列中之前,還包括:
[0014]所述升級服務器通過廣電網廣播軟件升級消息;其中,所述軟件升級消息中記錄 有廠商號、硬件版本號、軟件版本號、升級序列號范圍。
[0015]本發明還提供了一種機頂盒軟件升級方法,包括:
[0016]機頂盒向升級服務器發送軟件升級請求后,進入升級軟件接收狀態;
[0017]所述機頂盒接收到升級服務器發送的升級軟件的分片信息和數據片后,對于每個 接收的數據片分別分配子線程進行數據接收和校驗;
[0018]在設定時間段后,若所述機頂盒根據接收的分片信息確定出所述升級軟件的數據 接收錯誤,則將數據錯誤或不完整的數據片的ID攜帶在數據接收錯誤通知信息中向所述 升級服務器返回;
[0019]所述機頂盒對于每個接收的、由所述升級服務器重發的數據片分別分配子線程進 行數據接收和校驗后,若根據所述分片信息確定出所述升級軟件的數據接收成功,則根據 所述分片信息對接收的各數據片進行排序組裝得到升級軟件,根據得到的升級軟件進行升 級。
[0020]較佳地,所述機頂盒根據接收的分片信息確定出所述升級軟件的數據接收錯誤或 成功,具體包括:
[0021]所述機頂盒解析出接收的分片信息中記錄的數據片的個數,與所述機頂盒接收到 的、校驗成功的數據片的個數進行比較;若比較結果為不相等,則確定出所述升級軟件的數 據接收錯誤;若所述比較結果為相等,則確定出所述升級軟件的數據接收成功。
[0022]較佳地,所述機頂盒向升級服務器發送軟件升級請求之前,還包括:
[0023]所述機頂盒接收到所述升級服務器發送的軟件升級消息后,對其進行解析;并根 據從中解析出的廠商號、硬件版本號、軟件版本號、升級序列號范圍,判斷本機頂盒是否需 要進行軟件升級:若確定出本機頂盒的廠商號、硬件版本號與解析出的廠商號、硬件版本號 相同,本機頂盒的序列號在解析出的升級序列號范圍內,且本機頂盒的軟件版本號小于解 析出的軟件版本號,則判斷出本機頂盒需要進行軟件升級;否則,判斷出本機頂盒不需要進 行軟件升級;以及
[0024]所述機頂盒向升級服務器發送軟件升級請求,具體為:
[0025]若所述機頂盒判斷出本機頂盒需要進行軟件升級,則向所述升級服務器發送軟件 升級請求。
[0026]本發明還提供了一種升級服務器,包括:
[0027]信息處理模塊,用于對于接收的每個軟件升級請求,從中解析出發送方的IP地址,將解析出的IP地址加入到升級請求隊列中;對于接收的每個數據接收錯誤通知信息,從中解析出發送方的IP地址,以及數據片的ID,并對于每個解析出的數據片的ID,將解析出的IP地址加入到對應該數據片的ID的重發隊列中;
[0028]數據片發送模塊,用于每隔設定時間,向所述升級請求隊列中的各IP地址的機頂盒,發送升級軟件的各數據片;
[0029]數據片重發模塊,用于每隔設定時間,對于每個數據片的ID,向對應該數據片的ID的重發隊列中的各IP地址的機頂盒重發該數據片。
[0030]較佳地,所述信息處理模塊還用于通過廣電網向機頂盒廣播軟件升級消息;其中,所述軟件升級消息中記錄有廠商號、硬件版本號、軟件版本號、升級序列號范圍;以及
[0031]所述數據片發送模塊還用于每隔設定時間,采用多播技術向所述升級請求隊列中的各IP地址的機頂盒發送所述升級軟件的分片信息。
[0032]本發明還提供了一種機頂盒,包括:請求發送模塊、數據接收校驗模塊、數據接收判斷模塊以及軟件升級模塊;其中,
[0033]所述請求發送模塊用于向升級服務器發送軟件升級請求后,發送數據接收通知;
[0034]所述數據接收校驗模塊用于在接收到所述數據接收通知后,進入升級軟件接收狀態,并在接收到升級軟件的分片信息和數據片后,對于每個接收的數據片分別分配子線程進行數據接收和校驗,并將校驗成功的數據片保存在內存中;在接收到所述數據接收判斷模塊發送的數據重收通知后,進入升級軟件重收狀態,對于每個接收的、由所述升級服務器重發的數據片分別分配子線程進行數據接收和校驗,并將校驗成功的數據片保存在所述內存中;
[0035]所述數據接收判斷模塊用于接收到所述數據接收通知后,進入升級軟件接收狀態;并在進入升級軟件接收狀態的設定時間段后,若根據所述分片信息確定出所述升級軟件的數據接收錯誤,則將數據錯誤或不完整的數據片的ID攜帶在數據接收錯誤通知信息中向所述升級服務器返回,并發送所述數據重收通知;若根據所述分片信息確定出所述升級軟件的數據接收成功,則向所述軟件升級模塊發送軟件升級通知;
[0036]所述軟件升級模塊用于接收到所述軟件升級通知后,根據所述分片信息對所述內存中保存的各數據片進行排序組裝得到升級軟件,根據得到的升級軟件進行升級。
[0037]較佳地,所述數據接收判斷模塊具體用于解析出接收的分片信息中記錄的數據片的個數、數據片的ID,將解析出的數據片的個數與所述內存中保存的數據片的個數進行比較;若比較結果為不相等,則判斷出所述升級軟件的數據接收錯誤,并根據解析出的數據片的ID確定出數據錯誤或不完整的數據片的ID,將確定出的數據片的ID攜帶在所述數據接收錯誤通知信息中向所述升級服務器返回后,發送所述數據重收通知;若比較結果為相等,則確定出所述升級軟件的數據接收成功,并向所述軟件升級模塊發送所述軟件升級通知。
[0038]本發明的技術方案中,由于升級服務器在接收到機頂盒的軟件升級請求后,將請求升級的機頂盒的IP地址加入到升級請求隊列中;并每隔設定時間,將數據片和分片信息向升級請求隊列中的IP地址的機頂盒發送;機頂盒啟動多子線程并發接收升級服務器發送的數據片和分片信息,而且在確定出升級軟件的數據接收錯誤后,將數據錯誤或不完整的數據片的ID攜帶在數據接收錯誤通知信息中向升級服務器返回;升級服務器根據數據接收錯誤通知信息中的數據片的ID,重新向機頂盒發送這些數據錯誤或不完整的數據片;從而,減輕了升級服務器的負荷,節省了網絡帶寬,并提高了軟件升級的成功率。
【專利附圖】
【附圖說明】
[0039]圖1為本發明實施例的機頂盒軟件升級方法的流程圖;
[0040]圖2為本發明實施例的升級服務器的內部結構框圖;
[0041]圖3為本發明實施例的機頂盒的內部結構框圖。
【具體實施方式】
[0042]為使本發明的目的、技術方案及優點更加清楚明白,以下參照附圖并舉出優選實 施例,對本發明進一步詳細說明。然而,需要說明的是,說明書中列出的許多細節僅僅是為 了使讀者對本發明的一個或多個方面有一個透徹的理解,即便沒有這些特定的細節也可以 實現本發明的這些方面。
[0043]本申請使用的“模塊”、“系統”等術語旨在包括與計算機相關的實體,例如但不限 于硬件、固件、軟硬件組合、軟件或者執行中的軟件。例如,模塊可以是,但并不僅限于:處理 器上運行的進程、處理器、對象、可執行程序、執行的線程、程序和/或計算機。舉例來說,計 算設備上運行的應用程序和此計算設備都可以是模塊。一個或多個模塊可以位于執行中的 一個進程和/或線程內,一個模塊也可以位于一臺計算機上和/或分布于兩臺或更多臺計 算機之間。
[0044]本發明的發明人考慮到,可以預先將升級軟件劃分為多個數據片,對每個數據片 添加數據片的ID,并生成升級軟件的分片信息,該分片信息中記錄有數據片的個數、數據片 的順序,以及各數據片的ID、各數據片的大小等信息;升級服務器可在接收到機頂盒的軟 件升級請求后,將請求升級的機頂盒的IP地址加入到升級請求隊列中;之后,升級服務器 采用多播技術,將數據片和分片信息向升級請求隊列中的IP地址的機頂盒發送;機頂盒啟 動多線程并發接收升級服務器發送的數據片和分片信息,而且在確定出升級軟件的數據接 收錯誤后,并將數據錯誤或不完整的數據片的ID攜帶在數據接收錯誤通知信息中向升級 服務器返回;升級服務器根據數據接收錯誤通知信息中的數據片的ID,重新向機頂盒發送 這些數據錯誤或不完整的數據片;從而,減輕了升級服務器的負荷,節省了網絡帶寬,并提 高了軟件升級的成功率。
[0045]下面結合附圖詳細說明本發明實施例的技術方案。本發明實施例提供的機頂盒軟 件升級方法的流程,如圖1所示,具體包括如下步驟:
[0046]SlOl:升級服務器通過廣電網廣播軟件升級消息。
[0047]具體地,機頂盒生產廠商對機頂盒的軟件進行升級時,可通過升級服務器廣播軟 件升級消息;通常,軟件升級消息中記錄有生產廠商的廠商號、機頂盒的硬件版本號、升級 軟件的軟件版本號、升級序列號范圍等。
[0048]S102:機頂盒接收到軟件升級消息后,解析出其中的廠商號、硬件版本號、軟件版 本號、升級序列號范圍,判斷本機頂盒是否需要進行軟件升級,若是,則執行下述步驟S103 ; 否則,忽略該軟件升級消息。
[0049]具體地,機頂盒接收到升級服務器廣播的軟件升級消息后,解析出其中的廠商號、 硬件版本號、軟件版本號、升級序列號范圍,若確定出本機頂盒的廠商號、硬件版本號與解析出的廠商號、硬件版本號相同,本機頂盒的序列號在解析出的序列號范圍內,且本機頂盒的軟件版本號小于解析出的軟件版本號,則判斷出本機頂盒需要進行軟件升級;否則,判斷出本機頂盒不需要進行軟件升級,忽略軟件升級消息。
[0050]S103:機頂盒向升級服務器發送攜帶本機頂盒的IP地址的軟件升級請求。
[0051]具體地,若機頂盒判斷出本機頂盒需要進行軟件升級,則向升級服務器發送軟件升級請求,該軟件升級請求中攜帶有本機頂盒的IP地址。
[0052]S104:升級服務器對于接收的每個軟件升級請求,從中解析出發送方的IP地址,將解析出的IP地址加入到升級請求隊列中。
[0053]具體地,升級服務對于接收的每個軟件升級請求,對其進行解析,將解析出的發送方的IP地址加入到升級請求隊列中。其中,發送方的IP地址也就是機頂盒的IP地址。
[0054]S105:升級服務器每隔設定時間,向升級請求隊列中的各IP地址的機頂盒發送升級軟件的各數據片和分片信息。
[0055]具體地,可以預先將升級軟件劃分為多個數據片,對每個數據片添加上ID、CRC值,并生成升級軟件的分片信息,該分片信息中記錄有升級軟件的數據片的個數、數據片的順序,以及升級軟件的各數據片的ID、CRC (Cyclic Redundancy Check,循環冗余校驗碼)值、大小等。在本步驟中,升級服務器每隔設定時間,將預先劃分的升級軟件的各數據片和分片信息,采用多播技術向升級請求隊列中的各IP地址的機頂盒發送;其中,設定時間具體有本領域技術人員進行設定。
[0056]S106:對于每個升級請求隊列中的IP地址的機頂盒,該機頂盒接收到升級服務器發送的升級軟件的分片信息和數據片后,對于每個接收的數據片分別分配子線程進行數據接收和校驗。
[0057]在本步驟中,該機頂盒接收到升級服務器發送的升級軟件的分片信息和數據片后,根據本機頂盒的內存資源情況,啟動多個子線程,對于每個接收的數據片分別分配子線程進行數據接收和校驗;其中,對于每個接收的數據片的校驗具體為:對接收的該數據片進行CRC校驗,若得出的CRC值與該數據片攜帶的CRC值相等,則該數據片校驗成功,將該數據片保存在內存中;否則,檢驗該數據片的子線程丟棄該數據片。由于在接收升級軟件的各數據片時,可以不按照劃分的數據片的順序進行接收,可以提高軟件升級的效率和速度,尤其對于數據量較大的升級軟件,提高軟件升級的效率和速度將更為明顯。
[0058]S107:在設定時間段后,若該機頂盒根據接收的分片信息確定出升級軟件的數據接收錯誤,則執行步驟S108 ;若該機頂盒根據接收的分片信息確定出升級軟件的數據接收成功,則跳轉到步驟SI 12。
[0059]具體地,該機頂盒解析出接收的分片信息中記錄的數據片的個數,與該機頂盒接收到的、校驗成功的數據片的個數進行比較;若比較結果為不相等,則確定出升級軟件的數據接收錯誤;若比較結果為相等,則確定出升級軟件的數據接收成功。其中,該機頂盒接收到的、校驗成功的數據片保存在本機頂盒的內存中。
[0060]S108:該機頂盒將數據錯誤或不完整的數據片的ID攜帶在數據接收錯誤通知信息中向升級服務器返回。
[0061]具體地,該機頂盒根據分片信息中記錄的數據片的ID,以及校驗成功的數據片的ID,確定出數據錯誤或不完整的數據片的ID,并將確定出的數據片的ID攜帶在數據接收錯誤通知信息中向升級服務器返回。
[0062]S109:升級服務器對于接收的每個數據接收錯誤通知信息,從中解析出發送方的 IP地址,以及數據片的ID,并對于每個解析出的數據片的ID,將解析出的IP地址加入到對 應該數據片的ID的重發隊列中。
[0063]具體地,升級服務器還針對每個數據片的ID,創建有對應該數據片的ID的重發隊 列;在本步驟中,升級服務器對于接收的每個數據接收錯誤通知信息,解析出其中的發送方 的IP地址以及數據片的ID,并對于每個解析出的數據片的ID,將解析出的IP地址加入到 對應該數據片的ID的重發隊列中
[0064]SllO:升級服務器每隔設定時間,對于每個數據片的ID,向對應該數據片的ID的 重發隊列中的各IP地址的機頂盒重發該數據片。
[0065]具體地,升級服務器每個設定時間,對于每個數據片的ID,可采用多播技術向對應 該數據片的ID的重發隊列中的各IP地址的機頂盒重發該數據片。
[0066]Slll:該機頂盒對于每個接收的、由升級服務器重發的數據片,分別分配子線程進 行數據接收和校驗后,根據分片信息確定出升級軟件的數據是否接收成功;若是,則執行步 驟S112 ;否則,執行步驟S113。
[0067]S112:該機頂盒根據分片信息對接收的各數據片進行排序組裝得到升級軟件,根 據得到的升級軟件進行升級。
[0068]具體地,該機頂盒解析出分片信息中記錄的數據片的順序,根據解析出的數據片 的順序,對接收的各數據片進行排序組裝得到升級軟件,根據得到的升級軟件進行升級;其 中,該機頂盒根據得到的升級軟件進行升級具體可以為:機頂盒根據升級軟件的數據攜帶 的存儲地址,擦除本機頂盒的Flash中該存儲地址所對應的存儲空間,將得到的升級軟件 寫入到Flash中的該存儲空間中。
[0069]進一步,若該機頂盒根據得到的升級軟件進行升級的結果為升級成功,則向升級 服務器返回軟件升級成功通知信息;否則,向升級服務器返回軟件升級失敗通知信息。這 樣,升級服務器可以根據機頂盒上報給本服務器的升級軟件失敗通知信息,或軟件升級成 功通知信息,對機頂盒進行軟件升級的升級結果進行統計。
[0070]例如,升級軟件失敗通知信息、軟件升級成功通知信息中可以記錄有機頂盒的IP 地址、硬件版本號、軟件版本號、序列號等;升級服務器若接收到機頂盒發送的數據接收錯 誤通知信息,解析出其中的IP地址、硬件版本號、軟件版本號、序列號后,將數據庫中該IP 地址對應的升級結果記錄為升級失敗,并將升級失敗的次數加1,且對應該IP地址記錄下 解析出的硬件版本號、軟件版本號、序列號;若接收到機頂盒發送的軟件升級成功通知信 息,解析出其中的IP地址、硬件版本號、軟件版本號、序列號后,將數據庫中該IP地址對應 的升級結果記錄為升級成功,并將升級成功的次數加1,且對應該IP地址記錄下解析出的 硬件版本號、軟件版本號、序列號。從而,可以從數據庫中,讀取出針對某一序列號的機頂盒 的軟件歷史升級記錄,比如升級失敗次數等,可以方便機頂盒廠商的技術支持和維修工作。
[0071]S113:該機頂盒根據設定的數據接收錯誤通知信息的發送上限進行處理。
[0072]例如,若設定的數據接收錯誤通知信息的發送上限為兩次,則機頂盒不再向升級 服務器發送數據接收錯誤通知信息,可以直接向升級服務器發送軟件升級失敗通知信息。 若設定數據接收錯誤通知信息的發送上限為三次,則機頂盒可以再次向升級服務器發送攜帶接收錯誤或不完整的數據片的ID的數據接收錯誤通知信息。
[0073]基于上述的機頂盒軟件升級方法,本發明實施例提供的升級服務器的內部結構框圖如圖2所示,具體包括:信息處理模塊201、數據片發送模塊202和數據片重發模塊203。
[0074]信息處理模塊201用于對于接收的每個軟件升級請求,從中解析出發送方的IP地址,將解析出的IP地址加入到升級請求隊列中;對于接收的每個數據接收錯誤通知信息,從中解析出發送方的IP地址,以及數據片的ID,并對于每個解析出的數據片的ID,將解析出的IP地址加入到對應該數據片的ID的重發隊列中。進一步,信息處理模塊201還用于通過廣電網向機頂盒廣播軟件升級消息;其中,軟件升級消息中記錄有廠商號、硬件版本號、軟件版本號、升級序列號范圍。
[0075]數據片發送模塊202用于每隔設定時間,向升級請求隊列中的各IP地址的機頂盒,發送升級軟件的各數據片;進一步,數據片發送模塊202還用于每隔設定時間,向升級請求隊列中的各IP地址的機頂盒發送升級軟件的分片信息。
[0076]數據片重發模塊203用于每隔設定時間,對于每個數據片的ID,向對應該數據片的ID的重發隊列中的各IP地址的機頂盒重發該數據片。
[0077]基于上述的機頂盒軟件升級方法,本發明實施例提供的機頂盒的內部結構框圖如圖3所示,具體包括:請求發送模塊301、數據接收校驗模塊302、數據接收判斷模塊303和軟件升級模塊304。
[0078]請求發送模塊301用于向升級服務器發送軟件升級請求后,發送數據接收通知。
[0079]數據接收校驗模塊302用于在接收到請求發送模塊301發送的數據接收通知后,進入升級軟件接收狀態,并在接收到升級軟件的分片信息和數據片后,對于每個接收的數據片分別分配子線程進行數據接收和校驗,并將校驗成功的數據片保存在內存中;在接收到數據接收判斷模塊303發送的數據重收通知后,進入升級軟件重收狀態,對于每個接收的、由升級服務器重發的數據片分別分配子線程進行數據接收和校驗,并將校驗成功的數據片保存在內存中。進一步,數據接收校驗模塊302在接收到數據接收判斷模塊303發送的軟件升級通知后,進入升級軟件接收完畢狀態。
[0080]數據接收判斷模塊303用于接收到請求發送模塊301發送的數據接收通知后,進入升級軟件接收狀態;并在進入升級軟件接收狀態設定時間段后,若根據分片信息確定出升級軟件的數據接收錯誤,則將數據錯誤或不完整的數據片的ID攜帶在數據接收錯誤通知信息中向升級服務器返回,并發送數據重收通知;若根據分片信息確定出升級軟件的數據接收成功,則發送軟件升級通知,并進入升級軟件接收完畢狀態。
[0081]軟件升級模塊304用于接收到數據接收判斷模塊303發送的軟件升級通知后,根據分片信息對內存中保存的各數據片進行排序組裝得到升級軟件,根據得到的升級軟件進行升級。
[0082]其中,上述的數據接收判斷模塊303具體用于解析出接收的分片信息中記錄的數據片的個數、數據片的ID,將解析出的數據片的個數與內存中保存的數據片的個數進行比較;若比較結果為不相等,則判斷出升級軟件的數據接收錯誤,并根據解析出的數據片的ID確定出數據錯誤或不完整的數據片的ID,將確定出的數據片的ID攜帶在數據接收錯誤通知信息中向升級服務器返回后,發送數據重收通知;若比較結果為相等,則確定出升級軟件的數據接收成功,并向軟件升級模塊304發送軟件升級通知。[0083]綜上所述,本發明的技術方案中,升級服務器在接收到機頂盒的軟件升級請求后, 將請求升級的機頂盒的IP地址加入到升級請求隊列中;并每隔設定時間,將數據片和分片 信息向升級請求隊列中的IP地址的機頂盒發送;機頂盒啟動多子線程并發接收升級服務 器發送的數據片和分片信息,而且在確定出升級軟件的數據接收錯誤后,將數據錯誤或不 完整的數據片的ID攜帶在數據接收錯誤通知信息中向升級服務器返回;升級服務器根據 數據接收錯誤通知信息中的數據片的ID,重新向機頂盒發送這些數據錯誤或不完整的數據 片;從而,減輕了升級服務器的負荷,節省了網絡帶寬,并提高了軟件升級的成功率。
[0084]以上所述僅是本發明的優選實施方式,應當指出,對于本【技術領域】的普通技術人 員來說,在不脫離本發明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應 視為本發明的保護范圍。
【權利要求】
1.一種機頂盒軟件升級方法,其特征在于,包括:升級服務器對于接收的每個軟件升級請求,從中解析出發送方的IP地址,將解析出的 IP地址加入到升級請求隊列中;并每隔設定時間,向所述升級請求隊列中的各IP地址的機頂盒,發送升級軟件的各數據片;所述升級服務器對于接收的每個數據接收錯誤通知信息,從中解析出發送方的IP地址,以及數據片的ID,并對于每個解析出的數據片的ID,將解析出的IP地址加入到對應該數據片的ID的重發隊列中;并每隔設定時間,對于每個數據片的ID,向對應該數據片的ID 的重發隊列中的各IP地址的機頂盒重發該數據片。
2.如權利要求1所述的方法,其特征在于,所述升級服務器每隔設定時間,采用多播技術向所述升級請求隊列中的各IP地址的機頂盒發送的升級軟件的各數據片時,還包括:發送所述升級軟件的分片信息;以及所述數據接收錯誤通知信息具體是機頂盒根據接收到的分片信息確定出所述升級軟件的數據接收錯誤后,向所述升級服務器返回的;其中,所述機頂盒根據接收到的分片信息確定出所述升級軟件的數據接收錯誤,具體為:該機頂盒解析出接收的分片信息中記錄的數據片的個數,與所述機頂盒接收到的、校驗成功的數據片的個數進行比較;若比較結果為不相等,則確定出所述升級軟件的數據接收錯誤。
3.如權利要求1或2所述的方法,其特征在于,所述升級服務器對于接收的每個軟件升級請求,從中解析出發送方的IP地址,將解析出的IP地址加入到升級請求隊列中之前,還包括:所述升級服務器通過廣電網廣播軟件升級消息;其中,所述軟件升級消息中記錄有廠商號、硬件版本號、軟件版本號、升級序列號范圍。
4.一種機頂盒軟件升級方法,其特征在于,包括:機頂盒向升級服務器發送軟件升級請求后,進入升級軟件接收狀態;所述機頂盒接收到升級服務 器發送的升級軟件的分片信息和數據片后,對于每個接收的數據片分別分配子線程進行數據接收和校驗;在設定時間段后,若所述機頂盒根據接收的分片信息確定出所述升級軟件的數據接收錯誤,則將數據錯誤或不完整的數據片的ID攜帶在數據接收錯誤通知信息中向所述升級服務器返回;所述機頂盒對于每個接收的、由所述升級服務器重發的數據片分別分配子線程進行數據接收和校驗后,若根據所述分片信息確定出所述升級軟件的數據接收成功,則根據所述分片信息對接收的各數據片進行排序組裝得到升級軟件,根據得到的升級軟件進行升級。
5.如權利要求4所述的方法,其特征在于,所述機頂盒根據接收的分片信息確定出所述升級軟件的數據接收錯誤或成功,具體包括:所述機頂盒解析出接收的分片信息中記錄的數據片的個數,與所述機頂盒接收到的、 校驗成功的數據片的個數進行比較;若比較結果為不相等,則確定出所述升級軟件的數據接收錯誤;若所述比較結果為相等,則確定出所述升級軟件的數據接收成功。
6.如權利要求4或5所述的方法,其特征在于,所述機頂盒向升級服務器發送軟件升級請求之前,還包括:所述機頂盒接收到所述升級服務器發送的軟件升級消息后,對其進行解析;并根據從中解析出的廠商號、硬件版本號、軟件版本號、升級序列號范圍,判斷本機頂盒是否需要進行軟件升級:若確定出本機頂盒的廠商號、硬件版本號與解析出的廠商號、硬件版本號相同,本機頂盒的序列號在解析出的升級序列號范圍內,且本機頂盒的軟件版本號小于解析出的軟件版本號,則判斷出本機頂盒需要進行軟件升級;否則,判斷出本機頂盒不需要進行軟件升級;以及 所述機頂盒向升級服務器發送軟件升級請求,具體為: 若所述機頂盒判斷出本機頂盒需要進行軟件升級,則向所述升級服務器發送軟件升級請求。
7.一種升級服務器,其特征在于,包括: 信息處理模塊,用于對于接收的每個軟件升級請求,從中解析出發送方的IP地址,將解析出的IP地址加入到升級請求隊列中;對于接收的每個數據接收錯誤通知信息,從中解析出發送方的IP地址,以及數據片的ID,并對于每個解析出的數據片的ID,將解析出的IP地址加入到對應該數據片 的ID的重發隊列中; 數據片發送模塊,用于每隔設定時間,向所述升級請求隊列中的各IP地址的機頂盒,發送升級軟件的各數據片; 數據片重發模塊,用于每隔設定時間,對于每個數據片的ID,向對應該數據片的ID的重發隊列中的各IP地址的機頂盒重發該數據片。
8.如權利要求7所述的升級服務器,其特征在于, 所述信息處理模塊還用于通過廣電網向機頂盒廣播軟件升級消息;其中,所述軟件升級消息中記錄有廠商號、硬件版本號、軟件版本號、升級序列號范圍;以及 所述數據片發送模塊還用于每隔設定時間,采用多播技術向所述升級請求隊列中的各IP地址的機頂盒發送所述升級軟件的分片信息。
9.一種機頂盒,其特征在于,包括:請求發送模塊、數據接收校驗模塊、數據接收判斷模塊以及軟件升級模塊;其中, 所述請求發送模塊用于向升級服務器發送軟件升級請求后,發送數據接收通知; 所述數據接收校驗模塊用于在接收到所述數據接收通知后,進入升級軟件接收狀態,并在接收到升級軟件的分片信息和數據片后,對于每個接收的數據片分別分配子線程進行數據接收和校驗,并將校驗成功的數據片保存在內存中;在接收到所述數據接收判斷模塊發送的數據重收通知后,進入升級軟件重收狀態,對于每個接收的、由所述升級服務器重發的數據片分別分配子線程進行數據接收和校驗,并將校驗成功的數據片保存在所述內存中; 所述數據接收判斷模塊用于接收到所述數據接收通知后,進入升級軟件接收狀態;并在進入升級軟件接收狀態的設定時間段后,若根據所述分片信息確定出所述升級軟件的數據接收錯誤,則將數據錯誤或不完整的數據片的ID攜帶在數據接收錯誤通知信息中向所述升級服務器返回,并發送所述數據重收通知;若根據所述分片信息確定出所述升級軟件的數據接收成功,則向所述軟件升級模塊發送軟件升級通知; 所述軟件升級模塊用于接收到所述軟件升級通知后,根據所述分片信息對所述內存中保存的各數據片進行排序組裝得到升級軟件,根據得到的升級軟件進行升級。
10.如權利要求9所述的機頂盒,其特征在于,所述數據接收判斷模塊具體用于解析出接收的分片信息中記錄的數據片的個數、數據片的ID,將解析出的數據片的個數與所述內存中保存的數據片的個數進行比較;若比較結果為不相等,則判斷出所述升級軟件的數據接收錯誤,并根據解析出的數據片的ID確定出數據錯誤或不完整的數據片的ID,將確定出的數據片的ID攜帶在所述數據接收錯誤通知信息中向所述升級服務器返回后,發送所述數據重收通知;若比較結果為相等,則確定出所述升級軟件的數據接收成功,并向所述軟件升級模塊發送所述軟件升級通知。`
【文檔編號】H04N21/262GK103581710SQ201310517393
【公開日】2014年2月12日 申請日期:2013年10月28日 優先權日:2013年10月28日
【發明者】劉慶彬 申請人:青島海信寬帶多媒體技術有限公司