專利名稱:電子節(jié)目指南系統(tǒng)及其恢復(fù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種電子節(jié)目指南系統(tǒng)及其恢復(fù)方法。
背景技術(shù):
網(wǎng)絡(luò)電視(Internet Protocol TV,簡稱為IPTV),是一種利用寬帶有線電視網(wǎng)向 家庭用戶提供包括數(shù)字電視在內(nèi)的多種交互式服務(wù)的技術(shù),其實(shí)現(xiàn)交互式服務(wù)的關(guān)鍵是的 電子節(jié)目指南(ElectronicProgram Guide,簡稱為EPG)系統(tǒng)。IPTV所提供的各種業(yè)務(wù)的 索引及導(dǎo)航都是通過EPG系統(tǒng)來完成的。EPG系統(tǒng)作為IPTV業(yè)務(wù)的門戶系統(tǒng),主要完成和用戶的接口,完成用戶命令的解 析和交互并將結(jié)果發(fā)回給用戶,為最終用戶消費(fèi)提供指引,并使用戶最終享受到IPTV服 務(wù)。EGP的系統(tǒng)架構(gòu)是將所有的EPG內(nèi)容和用戶界面都存儲(chǔ)在EPG服務(wù)器中。EPG服 務(wù)器傳送信息至用戶IP機(jī)頂盒,用戶通過機(jī)頂盒實(shí)現(xiàn)交互式操作。IPTV的EPG需要存儲(chǔ)的內(nèi)容涉及到應(yīng)急數(shù)據(jù)、增量同步、全量同步、熱度節(jié)目/ Karaok同步、模板/專欄/專題同步、海報(bào)同步等,這些數(shù)據(jù)在經(jīng)過制作過統(tǒng)一存放在片庫 上。EPG每發(fā)動(dòng)一次同步,就需要到片庫上去下載上述內(nèi)容。在相關(guān)技術(shù)中,提供了兩種下 載方式第一種,片庫提供下載的方式是通過文件傳輸協(xié)議(FileTransfer Protocol,簡 稱為FTP),因此,當(dāng)大量的EPG服務(wù)器同時(shí)到片庫上下載內(nèi)容時(shí),會(huì)導(dǎo)致片庫上的FTP服務(wù) 器性能成為瓶頸。這種方式不建議采用。第二種,在申請?zhí)枮?01010211342. X的中國專利中提出了一種EPG系統(tǒng)(該系統(tǒng) 包括片庫和EPG服務(wù)器),在該系統(tǒng)中采用片庫中的服務(wù)器維護(hù)保存有資源文件的下載客 戶端(該下載客戶端在EPG服務(wù)器上)的索引信息(該索引信息是各個(gè)下載客戶端上的資 源信息),在需要下載某個(gè)資源文件時(shí),EPG獲取該索引信息并從保存有該資源文件的片庫 和/或其他EPG上下載(該方式也可以稱為是一種P2P實(shí)現(xiàn)方式)。對于第二種處理方式,如果片庫上用于提供索引信息的模塊發(fā)生故障重啟之后有 可能影響該系統(tǒng)的使用,對于該問題,在該專利文件以及相關(guān)技術(shù)中并沒有提供相應(yīng)的解 決方案。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種電子節(jié)目指南系統(tǒng)及其恢復(fù)方法,以至少解決上 述問題。根據(jù)本發(fā)明的一個(gè)方面,提供了一種電子節(jié)目指南系統(tǒng)的恢復(fù)方法,包括片庫上 的服務(wù)器向下載客戶端發(fā)送重新上報(bào)請求消息;接收到所述重新上報(bào)請求消息的下載客戶 端向所述服務(wù)器上報(bào)其本地保存的資源文件的信息;所述服務(wù)器使用接收到的下載客戶端 上報(bào)的資源文件的信息重新生成索引信息,其中,所述索引信息用于向需要下載資源文件的電子節(jié)目指南EPG服務(wù)器上的下載客戶端提供保存有所述資源文件的下載客戶端的信 肩、ο進(jìn)一步地,在所述服務(wù)器向所述下載客戶端發(fā)送所述重新上報(bào)請求消息之前,還 包括所述服務(wù)器中的所述節(jié)點(diǎn)索引模塊DTS_S_RM重啟,其中,所述DTS_S_RM維護(hù)內(nèi)存中 的所述索引信息。進(jìn)一步地,在所述服務(wù)器向下載客戶端發(fā)送所述重新上報(bào)請求消息包括所述服 務(wù)器接收到所述下載客戶端發(fā)送的心跳消息;所述服務(wù)器向發(fā)送所述下載客戶端發(fā)送所述 重新上報(bào)請求消息。進(jìn)一步地,上述方法還包括所述下載客戶端接收其所在的EPG發(fā)送的用于執(zhí)行 下載任務(wù)的命令,獲取并根據(jù)所述索引信息從所述服務(wù)器和/或其他下載客戶端上下載所 述下載任務(wù)對應(yīng)的資源文件;所述下載客戶端記錄每個(gè)下載任務(wù)的狀態(tài),在所述下載客戶 端重新啟動(dòng)之后,根據(jù)重啟前記錄的所述每個(gè)下載任務(wù)的狀態(tài)繼續(xù)執(zhí)行該下載任務(wù)。進(jìn)一步地,上述方法還包括所述下載客戶端對已經(jīng)下載完成的文件在磁盤上保 持一個(gè)文件列表索引;在所述下載客戶端重啟之后,將所述文件列表索引讀入內(nèi)存。進(jìn)一步地,上述方法還包括所述服務(wù)器中的內(nèi)容管理模塊DTS_S_SM維護(hù)所述片 庫中的資源文件;所述資源維護(hù)模塊記錄每一次對資源文件的處理動(dòng)作,在所述資源維護(hù) 模塊重啟之后,根據(jù)所述記錄重新執(zhí)行未完成的處理動(dòng)作。進(jìn)一步地,上述方法還包括所述服務(wù)器中的靜態(tài)節(jié)點(diǎn)模塊DTS_S_SP維護(hù)所述片 庫中的資源文件的索引,并對向所述服務(wù)器請求資源文件的下載客戶端提供所述索引;所 述靜態(tài)節(jié)點(diǎn)模塊在磁盤上保存所述索引,并在重啟之后重新將所述磁盤上保存的所述索引 讀入到內(nèi)存中,向下載客戶端提供內(nèi)存中的所述索引。根據(jù)本發(fā)明的另一方面,還提供了一種電子節(jié)目指南系統(tǒng),包括片庫和電子節(jié)目 指南EPG服務(wù)器,所述片庫上的服務(wù)器包括節(jié)點(diǎn)索引模塊DTS_S_RM,所述節(jié)點(diǎn)索引模塊包 括維護(hù)單元,用于維護(hù)的索引信息,其中,所述索引信息用于向需要下載資源文件的所述 EPG服務(wù)器上的下載客戶端提供保存有所述資源文件的下載客戶端的信息;發(fā)送單元,用 于向下載客戶端發(fā)送重新上報(bào)請求消息,其中,所述重新上報(bào)請求消息用于請求下載客戶 端向所述服務(wù)器上報(bào)其本地保存的資源文件的信息;所述維護(hù)單元還用于使用接收到的下 載客戶端上報(bào)的資源文件的信息重新生成索引信息。進(jìn)一步地,所述發(fā)送模塊,用于在所述節(jié)點(diǎn)索引模塊DTS_S_RM重啟之后向所述下 載客戶端發(fā)送所述重新上報(bào)請求消息,其中,所述DTS_S_RM用于維護(hù)內(nèi)存中的所述索引文 件。進(jìn)一步地,所述下載客戶端包括下載單元,用于接收其所在的EPG發(fā)送的用于執(zhí) 行下載任務(wù)的命令,獲取并根據(jù)所述索引信息從所述服務(wù)器和/或其他下載客戶端上下載 所述下載任務(wù)對應(yīng)的資源文件記錄單元,所述下載客戶端記錄每個(gè)下載任務(wù)的狀態(tài),在所 述下載客戶端重新啟動(dòng)之后,根據(jù)重啟前記錄的所述每個(gè)下載任務(wù)的狀態(tài)調(diào)用所述下載模 塊繼續(xù)執(zhí)行該下載任務(wù)。進(jìn)一步地,所述服務(wù)器還包括內(nèi)容管理模塊DTS_S_SM用于維護(hù)所述片庫中的資 源文件;所述資源維護(hù)模塊還用于記錄每一次對資源文件的處理動(dòng)作,在所述資源維護(hù)模 塊重啟之后,根據(jù)所述記錄重新執(zhí)行未完成的處理動(dòng)作。
進(jìn)一步地,所述服務(wù)器還包括靜態(tài)節(jié)點(diǎn)模塊DTS_S_SP用于維護(hù)所述片庫中的資 源文件的索引,并對向所述服務(wù)器請求資源文件的下載客戶端提供所述索引;所述靜態(tài)節(jié) 點(diǎn)模塊還用于在磁盤上保存所述索引,并在重啟之后重新將所述磁盤上保存的所述索引讀 入到內(nèi)存中,向下載客戶端提供內(nèi)存中的所述索引。通過本發(fā)明,采用片庫上的服務(wù)器向下載客戶端發(fā)送重新上報(bào)請求消息;接收到 該重新上報(bào)請求消息的下載客戶端向服務(wù)器上報(bào)其本地保存的資源文件的信息;服務(wù)器使 用接收到的下載客戶端上報(bào)的資源文件的信息重新生成索引信息,其中,索引信息用于向 需要下載資源文件的電子節(jié)目指南EPG服務(wù)器上的下載客戶端提供保存有資源文件的下 載客戶端的信息。解決了片庫上用于提供索引信息的模塊發(fā)生故障重啟之后有可能影響該 系統(tǒng)使用的問題,進(jìn)而提高了系統(tǒng)的可靠性。
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā) 明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中圖1是根據(jù)本發(fā)明實(shí)施例的電子節(jié)目指南系統(tǒng)的恢復(fù)方法的流程圖;圖2是根據(jù)本發(fā)明實(shí)施例的片庫上的服務(wù)器的結(jié)構(gòu)框圖;圖3是根據(jù)本發(fā)明實(shí)施例的下載客戶端的結(jié)構(gòu)框圖;圖4是根據(jù)本發(fā)明實(shí)施例的EPG系統(tǒng)的示意圖;圖5是根據(jù)本發(fā)明實(shí)施例的EPG系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施例方式下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的 情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。以下實(shí)施中的電子節(jié)目指南系統(tǒng),包括片庫和EPG服務(wù)器,片庫包括服務(wù)器(可 以稱為DTS服務(wù)器,簡稱為DTS_S,其中,DTS是分布式傳輸系統(tǒng)Distributed Transform System的縮寫),EPG服務(wù)器包括下載客戶端(可以稱為DTS客戶端,簡稱為DTS_C)。EPG 服務(wù)器用于向DTS_C發(fā)送下載文件的命令;DTS_S用于向DTS_C提供索引信息,其中,索引 信息為保存有該文件的下載客戶端的信息;DTS_C用于接收EPG服務(wù)器發(fā)送的下載命令和 從DTS_S上獲取索引信息,并從索引信息指示的保存有該文件的DTS_C和/或片庫上下載 文件。圖1是根據(jù)本發(fā)明實(shí)施例的電子節(jié)目指南系統(tǒng)的恢復(fù)方法的流程圖,如圖1所示, 該流程包括如下步驟步驟S102,服務(wù)器向下載客戶端發(fā)送請求消息(該請求消息也可以成為重新上報(bào) 請求消息);步驟S104,接收到請求消息的下載客戶端向服務(wù)器上報(bào)其本地保存的資源文件的 fn息;步驟S106,服務(wù)器使用接收到的下載客戶端上報(bào)的資源文件的信息重新生成索引 信息,其中,索引信息用于向需要下載資源文件的下載客戶端提供保存有該資源文件的下 載客戶端的信息。
6
通過上述步驟,可以在服務(wù)器上的索引信息丟失或損壞之后,采用服務(wù)器向下載 客戶端發(fā)送請求消息的方式實(shí)現(xiàn)了索引信息的重建,從而保證了該服務(wù)器的可靠運(yùn)行。優(yōu)選地,在實(shí)施時(shí),服務(wù)器在該索引文件丟失或損壞之后可以向其管理的所有的 下載客戶端主動(dòng)發(fā)送消息,然后在根據(jù)上報(bào)的資源信息生成索引文件。當(dāng)然,為了維護(hù)方 便,可以采用下載客戶端定期向服務(wù)器發(fā)送心跳消息,該心跳消息在服務(wù)器重啟期間會(huì)丟 掉,而當(dāng)該服務(wù)器重啟成功后,該心跳消息被服務(wù)器接收后,向DTS_ C發(fā)送一個(gè)請求消息 (例如,重置消息),DTS_C在接收到該請求消息后,會(huì)重新將本地的資源上報(bào)給服務(wù)器。優(yōu)選地,在實(shí)施時(shí),可以由服務(wù)器中的節(jié)點(diǎn)索引模塊(DTS_S_RM)維護(hù)內(nèi)存中的索 引信息,由于該索引信息是保存在內(nèi)存中的,那么該DTS_S_RM重啟之后,索引信息就丟失 了,這樣在重新生成索引信息之后,再放置于內(nèi)存中即可。當(dāng)然,該索引信息也可以放置在 磁盤中,在這樣的處理方式中,由于DTS_C的資源信息上報(bào)消息的字節(jié)數(shù)比較多,因此DTS_ C在成功上報(bào)一次后,就只上報(bào)自身資源的變化信息。由于DTS_C在下載過程中不斷的有資 源變化比較頻繁,會(huì)導(dǎo)致頻繁的寫磁盤,因此,該文件也是有損壞的可能的,如果磁盤中的 索引信息損壞或丟失,那么將重新生成的索引信息放置于磁盤中即可。在另外一個(gè)實(shí)施例中,服務(wù)器還可以包括其他的模塊,在該實(shí)施例中服務(wù)器包括 內(nèi)容管理模塊(DTS_S_SM)、節(jié)點(diǎn)索引模塊(DTS_S_RM)、靜態(tài)節(jié)點(diǎn)模塊(DTS_S_SP)。需要 說明的是,以下實(shí)施例中的這三個(gè)模塊的重啟之后的解決方式均是一種優(yōu)選的實(shí)施方式, DTS_S_ SM和DTS_S_SP在重啟之后也可以采用其他的方式進(jìn)行處理,只要DTS_S_RM采用圖 1中的步驟重新生成了索引信息,就不影響該服務(wù)器的使用。下面分別對此進(jìn)行說明。DTS_S_SM:其對片庫上的相關(guān)目錄進(jìn)行監(jiān)控,其能夠?qū)崟r(shí)檢測到文件的添加和刪 除事件,并通知DTS_S_RM有文件變化情況;DTS_S_RM 其主要是提供點(diǎn)索引信息,即需要下載的文件在分別在哪些節(jié)點(diǎn)上面 (包括 DTS_S_SP 禾口 DTS_C);DTS_S_SP 其主要功能是接收DTS_S_RM的上線消息以及接收DTS_C的數(shù)據(jù)請求消 息,并將數(shù)據(jù)回復(fù)給DTS_C。對于該三個(gè)模塊,也可以使每個(gè)模塊對應(yīng)一個(gè)進(jìn)程。為了達(dá)到更好的監(jiān)控目的,可 以設(shè)置一個(gè)監(jiān)控進(jìn)程,使三個(gè)進(jìn)程都與監(jiān)控進(jìn)程之間保持心跳,監(jiān)控進(jìn)程在一段時(shí)間內(nèi)沒 有接收到心跳,則認(rèn)為該進(jìn)程已經(jīng)掛死,會(huì)重啟該進(jìn)程。雖然各個(gè)進(jìn)程能夠被監(jiān)控進(jìn)程重新 拉起,但是由于P2P傳輸?shù)奶攸c(diǎn),在進(jìn)程重啟后業(yè)務(wù)如果不進(jìn)行一定的恢復(fù)機(jī)制,則業(yè)務(wù)有 可能無法正常運(yùn)行。例如,對于DTS_S_SM,需要關(guān)注其重啟后如何能夠?qū)⑵錄]有完成的上線 任務(wù)繼續(xù)上線,能夠?qū)⑽赐瓿傻膾呙枞蝿?wù)繼續(xù)掃描;對于DTS_S_RM,需要關(guān)注其在重啟后 如何能夠重新獲取DTS_C的索引信息,從而能夠繼續(xù)為DTS_C提供索引服務(wù);對于DTS_S_ SP,需要關(guān)注其中重啟后如何能夠恢復(fù)文件的索引信息,從而能夠繼續(xù)DTS_C提供數(shù)據(jù)服 務(wù)。DTS_S_RM上述已經(jīng)進(jìn)行過說明,在此不再贅述。下面對DTS_S_SM和DTS_S_SP進(jìn)行說 明。需要說明的是,對DTS_S_SM和DTS_S_SP的優(yōu)選實(shí)施方式可以單獨(dú)的實(shí)施也可以一起 實(shí)施。例如,DTS_S_SM維護(hù)片庫中的資源文件;DTS_S_SM記錄每一次對資源文件的處理 動(dòng)作,在DTS_S_SM重啟之后,根據(jù)之前的記錄重新執(zhí)行未完成的處理動(dòng)作。又例如,DTS_S_SP維護(hù)片庫中的資源文件的索引,并對向服務(wù)器請求資源文件的
7下載客戶端提供索引;DTS_S_SP在磁盤上保存索引,并在重啟之后重新將磁盤上保存的索 引讀入到內(nèi)存中,向下載客戶端提供內(nèi)存中的索引。通過上述實(shí)施例,服務(wù)器任一個(gè)模塊都可能會(huì)重啟的情況下,設(shè)計(jì)了保證內(nèi)容上 線成功的機(jī)制,保證了 EPG服務(wù)器能夠穩(wěn)定的下載文件,確保EPG服務(wù)器的內(nèi)容同步成功。當(dāng)然對于EPG系統(tǒng)而言,服務(wù)器相對于EPG是個(gè)黑盒子,其所作的自恢復(fù)機(jī)制EPG 服務(wù)器感受不到,最后EPG服務(wù)器感受到就是分布式文件傳輸系統(tǒng)文件下載成功,這樣保 證了 EPG文件內(nèi)容同步的可靠性。在保證了服務(wù)器的可靠性的情況下,更優(yōu)的可以考慮 DTS_C的重啟處理。DTS_C (接收到下載指令,將需要下載的文件下載到EPG指定的目錄下面,下載完 成后向EPG返回確認(rèn)消息)需要考慮,在重啟后如何能夠?qū)⒅貑⑦^程中沒有完成的下載任 務(wù)繼續(xù)下載,如何將下載結(jié)果返回給EPG,如何將已下載文件的信息導(dǎo)入到其內(nèi)存索引中。在另外一個(gè)實(shí)施例中,下載客戶端接收其所在的EPG發(fā)送的用于執(zhí)行下載任務(wù)的 命令,獲取并根據(jù)索引信息從服務(wù)器和/或其他下載客戶端上下載該下載任務(wù)對應(yīng)的資源 文件;下載客戶端記錄每個(gè)下載任務(wù)的狀態(tài),在下載客戶端重新啟動(dòng)之后,根據(jù)重啟前記錄 的每個(gè)下載任務(wù)的狀態(tài)繼續(xù)執(zhí)行該下載任務(wù)。即,DTS_C對于已經(jīng)下載的文件,會(huì)保持一個(gè) 文件列表索引,該文件列表索引同時(shí)也會(huì)寫到磁盤上。當(dāng)DTS_C重啟后,會(huì)從該文件中讀出 文件列表索引到內(nèi)存中,該恢復(fù)機(jī)制的作用主要用在兩個(gè)方面一是EGP在進(jìn)行增量同步 時(shí),需要將服務(wù)器的文件列表和本地的比較,找到更新的文件,DTS_C只下載更新的文件,從 而避免了重復(fù)下載;二是DTSJ^f文件列表在內(nèi)存中索引,可以將本地下載的文件對其他 DTS_C提供服務(wù)。在另外一個(gè)實(shí)施例中,提供了一種電子節(jié)目指南系統(tǒng),該系統(tǒng)用于實(shí)現(xiàn)上述實(shí)施 例及其優(yōu)選實(shí)施方式,該系統(tǒng)包括片庫和電子節(jié)目指南EPG服務(wù)器,圖2是根據(jù)本發(fā)明實(shí) 施例的片庫上的服務(wù)器的結(jié)構(gòu)框圖,如圖2所示,下面對此進(jìn)行說明。該服務(wù)器包括節(jié)點(diǎn)索引模塊DTS_S_RM22,該模塊包括維護(hù)單元222,用于維護(hù)的索引信息,其中,索引信息用于向需要下載資源文件的 EPG服務(wù)器上的下載客戶端提供保存有資源文件的下載客戶端的信息;發(fā)送單元224,用于 向下載客戶端發(fā)送重新上報(bào)請求消息(例如,可以在維護(hù)單元222維護(hù)的索引信息損壞或 丟失的情況下發(fā)送該消息),其中,該重新上報(bào)請求消息用于請求下載客戶端向服務(wù)器上報(bào) 其本地保存的資源文件的信息;維護(hù)單元222還用于使用接收到的下載客戶端上報(bào)的資源 文件的信息重新生成索引信息。優(yōu)選地,發(fā)送模塊,用于在DTS_S_RM重啟之后向所述下載客戶端發(fā)送重新上報(bào)請 求消息,其中,DTS_S_RM用于維護(hù)內(nèi)存中的索引文件。需要說明的是,該模塊重啟能夠?qū)е?索引信息的丟失。圖3是根據(jù)本發(fā)明實(shí)施例的下載客戶端的結(jié)構(gòu)框圖,如圖3所示,該結(jié)構(gòu)包括下 載單元32、記錄單元34,下面對此進(jìn)行說明。下載單元32,用于接收其所在的EPG發(fā)送的用于執(zhí)行下載任務(wù)的命令,獲取并根 據(jù)索引信息從服務(wù)器和/或其他下載客戶端上下載該下載任務(wù)對應(yīng)的資源文件記錄單 元34連接至下載單元32,下載客戶端記錄每個(gè)下載任務(wù)的狀態(tài),在下載客戶端重新啟動(dòng)之 后,根據(jù)重啟之前記錄的每個(gè)下載任務(wù)的狀態(tài)調(diào)用下載模塊繼續(xù)執(zhí)行該下載任務(wù)。
8
優(yōu)選地,服務(wù)器還包括DTS_S_SM用于維護(hù)片庫中的資源文件;該模塊還用于記 錄每一次對資源文件的處理動(dòng)作,在重啟之后,根據(jù)之前的記錄重新執(zhí)行未完成的處理動(dòng) 作。優(yōu)選地,服務(wù)器還包括DTS_S_SP用于維護(hù)片庫中的資源文件的索引,并對向服 務(wù)器請求資源文件的下載客戶端提供索引;該模塊還用于在磁盤上保存索引,并在重啟之 后重新將磁盤上保存的索引讀入到內(nèi)存中,向下載客戶端提供內(nèi)存中的索引。通過上述的服務(wù)器和下載客戶端,實(shí)現(xiàn)了 P2P的分布式文件傳輸系統(tǒng)自恢復(fù)機(jī) 制,從而保證了 EPG文件每次同步的成功性。在下面的實(shí)施例中,對整個(gè)EPG系統(tǒng)的恢復(fù)進(jìn)行了說明,圖4是根據(jù)本發(fā)明實(shí)施例 的EPG系統(tǒng)的示意圖,圖5是根據(jù)本發(fā)明實(shí)施例的EPG系統(tǒng)的結(jié)構(gòu)框圖,下面結(jié)合圖4和圖 5進(jìn)行說明。(1)當(dāng)DTS_C掛掉后的處理機(jī)制DTS_C在進(jìn)行下載時(shí),對其下載任務(wù)的各種信息進(jìn)行記錄,該記錄保存在內(nèi)存中的 同時(shí),并寫到磁盤上。當(dāng)DTS_C掛掉時(shí),其下載任務(wù)可能出于多種狀態(tài)準(zhǔn)備下載,正在下 載,已經(jīng)完成,下載失敗四種狀態(tài)。0了5_(在重啟后,會(huì)自動(dòng)從文件里讀取下載任務(wù)狀態(tài),對 于準(zhǔn)備下載的任務(wù),DTS_C要開始下載,對于下載完成的任務(wù),DTS_C要向EPG發(fā)送回復(fù)消 息,并進(jìn)行一些清理操作。對于正在下載和下載失敗的任務(wù),DTS_C要重新進(jìn)行下載??赡?會(huì)有下載任務(wù)還沒有完成,這樣對于未完成的會(huì)繼續(xù)完成。對于正在下載的任務(wù),還需要記 錄下載的進(jìn)度,這樣在DTS_C重啟后,會(huì)從斷掉的地方重新進(jìn)行下載,避免了重復(fù)下載。EPG和DTS_C采用異步通訊的方式,EPG每發(fā)送一個(gè)下載指令后,會(huì)將該指令的相 關(guān)信息放入到自身的列表中,而DTS_C在接收到EPG的下載指令后,會(huì)將該下載指令放入到 DTS_C的隊(duì)列中,這樣DTS_C在重啟后繼續(xù)下載時(shí),能夠?qū)⑾螺d結(jié)果回復(fù)給EPG,EPG在接收 到回復(fù)消息后,會(huì)在自身的列表中將相應(yīng)的記錄刪除。DTS_C對于已經(jīng)下載的文件,會(huì)保持一個(gè)文件列表索引,該文件列表索引同時(shí)也會(huì) 寫到磁盤上。當(dāng)DTS_C重啟后,會(huì)從該文件中讀出文件列表索引到內(nèi)存中,該恢復(fù)機(jī)制的作 用主要用在兩個(gè)方面一是EGP在進(jìn)行增量同步時(shí),需要將服務(wù)器的文件列表和本地的比 較,找到更新的文件,DTS_C只下載更新的文件,從而避免了重復(fù)下載;二是DTS_C將文件列 表在內(nèi)存中索引,可以將本地下載的文件對其他DTS_C提供服務(wù)。(2) DTS_S_SM掛掉后的處理機(jī)制對于每次上線任務(wù),DTS_S_SM都有記錄,DTS_S_SM會(huì)把該信息寫入到磁盤文件 中,當(dāng)一個(gè)上線任務(wù)收到成功返回消息后,會(huì)將相應(yīng)的記錄從磁盤文件中刪除。當(dāng)DTS_S_SM 重啟后,會(huì)將沒有完成的上線任務(wù)重新完成,同時(shí)重新掃描磁盤,生成新的上線任務(wù)。(3) DTS_S_RM掛掉后的處理機(jī)制DTS_S_RM又稱為索引服務(wù)器,其上主要存儲(chǔ)的是各個(gè)DTS_C的資源信息,這些信 息存放在DTS_S_RM的內(nèi)存中。由于DTS_C&資源信息上報(bào)消息的字節(jié)數(shù)比較多,因此DTS_ C在成功上報(bào)一次后,就只上報(bào)自身資源的變化信息。DTS_C的資源信息存儲(chǔ)在DTS_S_RM 的內(nèi)存中,由于DTS_C在下載過程中不斷的有資源變化比較頻繁,如果DTS_S_RM把內(nèi)存中 的資源信息寫成磁盤文件會(huì)導(dǎo)致頻繁的寫磁盤,因此DTS_C的資源信息在DTS_S_RM—直保 存在內(nèi)存中。這樣當(dāng)DTS_S_RM重啟后,該信息全部丟失,從而使得DTS_S_RM無法為DTS_C
9提供索引服務(wù),因此在DTS_S_RM重啟成功后,DTS_C要向DTS_S_RM重新上報(bào)資源信息。鑒 于DTS_C在運(yùn)行過程中會(huì)定期向DTS_S_RM發(fā)送心跳消息,該心跳消息在DTS_S_RM重啟期 間會(huì)丟掉,而當(dāng)DTS_S_RM重啟成功后,該心跳消息被DTS_S_RM接收后,DTS_S_RM會(huì)利用鏈 接向DTS_C發(fā)送一個(gè)重置消息,DTS_C在接收到該重置消息后,會(huì)重新將本地的資源上報(bào)給 DTS_S_RM0(4) DTS_S_SP掛掉后的處理機(jī)制DTS_S_SP在接收到DTS_S_RM轉(zhuǎn)發(fā)過來的上線消息后,會(huì)把文件列表信息保存在 內(nèi)存中,當(dāng)DTS_C向DTS_S_SP請求數(shù)據(jù)時(shí),DTS_S_SP首先,先檢查自身的內(nèi)存索引中是否有 該文件索引,如有的話,則根據(jù)文件索引中的文件目錄和文件名到該目錄下進(jìn)行文件數(shù)據(jù) 讀取。因此當(dāng)DTS_S_SP重啟后,該索引信息丟失了,則DTS_S_SP就無法為DTS_C提供數(shù)據(jù) 服務(wù)。因此本發(fā)明在DTS_S_SP在每次接收到文件上線消息后,會(huì)將內(nèi)存的數(shù)據(jù)存放到磁盤 上,當(dāng)DTS_S_SP重啟后,會(huì)解析該文件,將以前保存的文件列表索引重新讀入到內(nèi)存中,從 而可以繼續(xù)恢復(fù)為DTS_C提供數(shù)據(jù)服務(wù)。在DTS_S_SP重啟過程中,由于DTS_S_SP的數(shù)據(jù) 提供是應(yīng)DTS_C&請求而回復(fù)的,因此DTS_C表現(xiàn)出來的現(xiàn)象是發(fā)出去的數(shù)據(jù)包沒有回復(fù), 在這種情況下,DTS_C會(huì)超時(shí)重發(fā)數(shù)據(jù)請求消息,等DTS_S_SP重啟成功后,DTS_C能夠自動(dòng) 恢復(fù)下載。綜上所述,通過以上實(shí)施例,解決了片庫上用于提供索引信息的模塊發(fā)生故障重 啟之后有可能影響該系統(tǒng)使用的問題,進(jìn)而提高了系統(tǒng)的可靠性。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用 的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成 的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ) 在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示 出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或 步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種電子節(jié)目指南系統(tǒng)的恢復(fù)方法,其特征在于,包括片庫上的服務(wù)器向下載客戶端發(fā)送重新上報(bào)請求消息;接收到所述重新上報(bào)請求消息的下載客戶端向所述服務(wù)器上報(bào)其本地保存的資源文件的信息;所述服務(wù)器使用接收到的下載客戶端上報(bào)的資源文件的信息重新生成索引信息,其中,所述索引信息用于向需要下載資源文件的電子節(jié)目指南EPG服務(wù)器上的下載客戶端提供保存有所述資源文件的下載客戶端的信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述服務(wù)器向所述下載客戶端發(fā)送所 述重新上報(bào)請求消息之前,還包括所述服務(wù)器中的所述節(jié)點(diǎn)索引模塊DTS_S_RM重啟,其中,所述DTS_S_RM維護(hù)內(nèi)存中的 所述索引信息。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述服務(wù)器向下載客戶端發(fā)送所述重 新上報(bào)請求消息包括所述服務(wù)器接收到所述下載客戶端發(fā)送的心跳消息; 所述服務(wù)器向發(fā)送所述下載客戶端發(fā)送所述重新上報(bào)請求消息。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括所述下載客戶端接收其所在的EPG發(fā)送的用于執(zhí)行下載任務(wù)的命令,獲取并根據(jù)所述 索引信息從所述服務(wù)器和/或其他下載客戶端上下載所述下載任務(wù)對應(yīng)的資源文件;所述下載客戶端記錄每個(gè)下載任務(wù)的狀態(tài),在所述下載客戶端重新啟動(dòng)之后,根據(jù)重 啟前記錄的所述每個(gè)下載任務(wù)的狀態(tài)繼續(xù)執(zhí)行該下載任務(wù)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括所述下載客戶端對已經(jīng)下載完成的文件在磁盤上保持一個(gè)文件列表索引; 在所述下載客戶端重啟之后,將所述文件列表索引讀入內(nèi)存。
6.根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的方法,其特征在于,還包括 所述服務(wù)器中的內(nèi)容管理模塊DTS_S_SM維護(hù)所述片庫中的資源文件;所述資源維護(hù)模塊記錄每一次對資源文件的處理動(dòng)作,在所述資源維護(hù)模塊重啟之 后,根據(jù)所述記錄重新執(zhí)行未完成的處理動(dòng)作。
7.根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的方法,其特征在于,還包括所述服務(wù)器中的靜態(tài)節(jié)點(diǎn)模塊DTS_S_SP維護(hù)所述片庫中的資源文件的索引,并對向 所述服務(wù)器請求資源文件的下載客戶端提供所述索引;所述靜態(tài)節(jié)點(diǎn)模塊在磁盤上保存所述索引,并在重啟之后重新將所述磁盤上保存的所 述索引讀入到內(nèi)存中,向下載客戶端提供內(nèi)存中的所述索引。
8.一種電子節(jié)目指南系統(tǒng),包括片庫和電子節(jié)目指南EPG服務(wù)器,其特征在于 所述片庫上的服務(wù)器包括節(jié)點(diǎn)索引模塊DTS_S_RM,所述節(jié)點(diǎn)索引模塊包括維護(hù)單元,用于維護(hù)的索引信息,其中,所述索引信息用于向需要下載資源文件的所述 EPG服務(wù)器上的下載客戶端提供保存有所述資源文件的下載客戶端的信息;發(fā)送單元,用于向下載客戶端發(fā)送重新上報(bào)請求消息,其中,所述重新上報(bào)請求消息用 于請求下載客戶端向所述服務(wù)器上報(bào)其本地保存的資源文件的信息;所述維護(hù)單元還用于使用接收到的下載客戶端上報(bào)的資源文件的信息重新生成索引fn息ο
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述發(fā)送模塊,用于在所述節(jié)點(diǎn)索引模塊DTS_S_RM重啟之后向所述下載客戶端發(fā)送 所述重新上報(bào)請求消息,其中,所述DTS_S_RM用于維護(hù)內(nèi)存中的所述索引文件。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述下載客戶端包括下載單元,用于接收其所在的EPG發(fā)送的用于執(zhí)行下載任務(wù)的命令,獲取并根據(jù)所述 索引信息從所述服務(wù)器和/或其他下載客戶端上下載所述下載任務(wù)對應(yīng)的資源文件;記錄單元,所述下載客戶端記錄每個(gè)下載任務(wù)的狀態(tài),在所述下載客戶端重新啟動(dòng)之 后,根據(jù)重啟前記錄的所述每個(gè)下載任務(wù)的狀態(tài)調(diào)用所述下載模塊繼續(xù)執(zhí)行該下載任務(wù)。
11.根據(jù)權(quán)利要求8至10中任一項(xiàng)所述的系統(tǒng),其特征在于,所述服務(wù)器還包括 內(nèi)容管理模塊DTS_S_SM用于維護(hù)所述片庫中的資源文件;所述資源維護(hù)模塊還用于記錄每一次對資源文件的處理動(dòng)作,在所述資源維護(hù)模塊重 啟之后,根據(jù)所述記錄重新執(zhí)行未完成的處理動(dòng)作。
12.根據(jù)權(quán)利要求8至10中任一項(xiàng)所述的系統(tǒng),其特征在于,所述服務(wù)器還包括 靜態(tài)節(jié)點(diǎn)模塊DTS_S_SP用于維護(hù)所述片庫中的資源文件的索引,并對向所述服務(wù)器請求資源文件的下載客戶端提供所述索引;所述靜態(tài)節(jié)點(diǎn)模塊還用于在磁盤上保存所述索引,并在重啟之后重新將所述磁盤上保 存的所述索引讀入到內(nèi)存中,向下載客戶端提供內(nèi)存中的所述索引。
全文摘要
本發(fā)明公開了電子節(jié)目指南系統(tǒng)及其恢復(fù)方法,該方法包括片庫上的服務(wù)器向下載客戶端發(fā)送重新上報(bào)請求消息;接收到重新上報(bào)請求消息的下載客戶端向服務(wù)器上報(bào)其本地保存的資源文件的信息;服務(wù)器使用接收到的下載客戶端上報(bào)的資源文件的信息重新生成索引信息,其中,索引信息用于向需要下載資源文件的電子節(jié)目指南EPG服務(wù)器上的下載客戶端提供保存有資源文件的下載客戶端的信息。通過本發(fā)明提高了系統(tǒng)的可靠性。
文檔編號(hào)H04N7/08GK101980502SQ20101050983
公開日2011年2月23日 申請日期2010年10月15日 優(yōu)先權(quán)日2010年10月15日
發(fā)明者季健 申請人:中興通訊股份有限公司