專利名稱:用于電子節目指南系統的用戶請求處理系統和處理方法
技術領域:
本發明涉及數字電視和交互式網絡電視系統,尤其涉及一種用于電子節目指南系 統的用戶請求處理系統和處理方法。
背景技術:
EPG是電子節目指南(Electronic Program Guide)的英文縮寫。在現代數字電視 和IPTV的系統中,各種業務的索引及導航都是通過EPG系統來實現的。EPG實際上就是數 字電視或IPTV系統的一個門戶子系統,其功能及性能對終端用戶的服務體驗影響很大。終端用戶利用EPG所提供的電子菜單,可以選擇自己喜歡的組播頻道、點播自己 喜愛的視頻節目、查詢IPTV或相關系統提供的各種在線信息以及選購各類附加的增值服 務。在現有IPTV系統中,EPG服務器都采用基于Web的架構。用戶機頂盒(STB)與EPG 服務器(EPG Server)之間采用HTTP協議進行交互,EPG Server作為服務器端,STB作為客 戶端,STB的請求命令以URL請求的方式到達EPG服務器端。EPG服務器根據其內在邏輯和 內部數據庫存放的內容信息,將服務響應以HTML頁面的形式返饋給STB端。一個EPG服務 器實例的概要框架如圖1所示,客戶端的請求首先發送到基于Tomcat環境的JSP/Java業 務應用程序,然后根據客戶端請求來檢索Xbase數據庫,獲得相關數據后反饋給客戶端,而 Xbase數據庫則通過業務管理接口模塊與后臺IPTV業務系統聯系,根據從后臺IPTV業務系 統獲取的信息來定期更新Xbase數據庫中的內容記錄。現有EPG系統的一個普遍問題是系統運行性能不佳,以上述系統為例,EPG服務器 中基于Tomcat的JSP/Java應用程序(或者說,Web表現層)在處理用戶請求時具有性能瓶 頸。有關測試及資料表明,即使沒有后端業務邏輯層和數據庫層的復雜操作,在2-3秒內, 這種Web表現層最多也只能處理600-800個用戶請求,難以滿足電信運營商IPTV網絡的客 戶需求。而且,在現有EPG系統中,查找數據只能對數據庫進行全面檢索,因此數據庫的操 作低效低速,進一步限制了系統的響應速度和容量。綜合上述因素,現有EPG系統的整體性 能低下,在2-3秒內只能完成100-200個用戶請求。此外,經過前期的發展,現有的EPG系統已經積累了大量的業務邏輯應用程序,如 重新從頭開發高性能的系統必然會導致原有系統的業務功能無法使用,從而造成資源的浪 費、整體開發周期以及開發成本的顯著增加。因此,有必要設計一種系統和方法,在保留現有系統業務功能的前提下,克服現有 EPG系統性能不佳的缺陷,從整體上提升EPG系統的性能。
發明內容
針對現有技術的缺陷,本發明的目的在于提出一種在無損現有EPG系統現有功能 的情況下、能夠大幅度提高EPG系統的用戶請求處理能力的系統和方法。
4
為實現上述目的,本發明提供了一種用于電子節目指南系統的用戶請求處理系 統,所述電子節目指南系統包括EPG現有業務邏輯模塊和數據庫,所述用戶請求處理系統 包括HTTP請求處理器、HTML頁面緩存器和應用接口模塊,其中,所述HTTP請求處理器用于 接收來自客戶端的HTTP請求,并用于將根據客戶請求生成的HTML頁面反饋給客戶端;所述 HTML頁面緩存器用于在頁面緩存區中緩存并管理生成的HTML頁面,并根據接收到的HTTP 請求在頁面緩存區中查找客戶請求的頁面;所述應用接口模塊用于將需要處理的HTTP請 求轉發到相關的業務邏輯模塊進行處理,并將業務邏輯模塊生成的HTML頁面寫入頁面緩 存區。優選地,所述HTML頁面緩存器還用于以預定的時間間隔在頁面緩存區中反復查 找客戶請求的HTML頁面,直到找到為止。優選地,當頁面緩存區飽和時,所述HTML頁面緩存器能夠根據被緩存頁面的熱門 度對頁面緩存區進行清理。優選地,所述用戶請求處理系統進一步包括HTTP請求集合器,所述HTTP請求集合 器用于,在所述HTML頁面緩存器未查找到客戶請求的頁面時,判斷所述請求是否正在被業 務邏輯模塊處理,并只將確實需要處理的請求轉發到業務邏輯模塊。優選地,所述HTTP請求集合器還用于對需要處理的HTTP請求進行分析,將對應于 相同HTML頁面的請求合并處理,以確保針對一個HTML頁面,有且只有一個請求被轉發到業 務邏輯模塊。優選地,所述用戶請求處理系統進一步包括數據對象緩存器,所述數據對象緩存 器用于在數據對象緩存區中緩存并管理從數據庫中查詢獲得的數據對象,并根據業務邏輯 模塊的請求在數據對象緩存區中查找相關的數據對象。優選地,所述數據對象緩存器采用循環方式對數據對象緩存區進行存儲,如果數 據對象緩存區存滿,則以新數據覆蓋舊數據。此外,本發明還提供了一種用于電子節目指南系統的用戶請求處理方法,包括以 下步驟接收來自客戶端的HTTP請求;根據接收到的HTTP請求在頁面緩存區中查找客戶請求的頁面;如果查找到客戶請求的頁面,則從頁面緩存區中取出頁面,并將所述頁面反饋給 客戶端;如果未查找到客戶請求的頁面,則將需要處理的HTTP請求轉發到相關的業務邏 輯模塊進行處理,并將業務邏輯模塊生成的HTML頁面寫入頁面緩存區。優選地,如果未查找到客戶請求的頁面,則以預定的時間間隔在頁面緩存區中反 復查找,直到找到為止。優選地,當頁面緩存區飽和時,根據被緩存頁面的熱門度對頁面緩存區進行清理。優選地,如果未查找到客戶請求的頁面,判斷所述HTTP請求是否正在被業務邏輯 模塊處理,在所述HTTP請求未被處理時,將所述HTTP請求轉發到業務邏輯模塊。優選地,在將需要處理的HTTP請求轉發給業務邏輯模塊之前,對所述HTTP請求進 行分析,將對應于相同HTML頁面的請求合并處理,以確保針對一個HTML頁面,有且只有一 個請求被轉發到業務邏輯模塊。
優選地,將從數據庫中查詢獲得的數據對象緩存在數據對象緩存區中,并根據業 務邏輯模塊的請求在數據對象緩存區中查找相關的數據對象。優選地,采用循環方式對數據對象緩存區進行存儲,如果數據對象緩存區存滿,則 以新數據覆蓋舊數據。在本發明的用戶請求處理方法和系統中,通過針對HTML頁面和數據內容的緩存 機制,提高了已產生的動、靜態HTML頁面和已尋獲數據的復用效率,避免了不必要的復雜 計算和緩慢的數據庫查詢,從而使EPG系統的性能整體上獲得大幅提升;而且,通過應用接 口模塊,實現了與現有系統中業務邏輯應用程序模塊的無縫對接,避免了重新開發系統業 務功能導致的人力和資源的浪費。相關的測試表明,本發明的用戶請求處理系統和方法可 以使現有EPG系統的性能提高5-10倍。
下面將結合附圖對本發明的具體實施例進行詳細的說明,其中圖1是一個現有EPG服務器實例的結構示意圖;圖2是本發明優選實施方式的用戶請求處理系統的結構示意圖;圖3是本發明優選實施方式的用戶請求處理方法的流程圖。
具體實施例方式圖2示意性地示出了根據本發明優選實施例的用于電子節目指南(EPG)系統的用 戶請求處理系統200的結構圖。該用戶請求處理系統200包括HTTP請求處理器201、HTTP 請求集合器202、HTML頁面緩存器203、數據對象緩存器204以及應用接口模塊206。HTTP請求處理器201從服務器網絡端口接收和處理來至STB客戶端的HTTP請求。 HTTP請求處理器通過異步編程模式和對網絡I/O的優化,能夠處理一萬個以上的并發HTTP 請求。HTTP請求處理器201從客戶端發來的HTTP請求中解析出的URL,并將該URL傳遞給 HTML頁面緩存器203,由HTML頁面緩存器以URL為關鍵詞在頁面緩存區中查找對應的頁 面。HTTP請求處理器201還用于將HTML頁面緩存器203查找到的頁面反饋給提出請求的 STB客戶端。HTML頁面緩存器203用于存儲客戶端曾經訪問過的頁面,也就是EPG服務器響應 最近收到的HTTP請求而產生的作為請求響應的動、靜態HTML形式的頁面。HTML頁面緩存 器203根據接收到的URL在頁面緩存區中查找客戶請求的頁面,并負責緩存以及管理由EPG 服務器產生的HTML頁面。優選地,HTML頁面緩存器203包括各種可讀寫的存儲器中用作 緩存區的部分或全部存儲單元。當在頁面緩存區未查找到客戶請求的頁面時,客戶的HTTP請求被傳遞給HTTP請 求集合器202。HTTP請求集合器202對接收到的請求進行分析、合并以及壓縮冗余請求,而 后將需要處理的請求經由應用接口模塊206轉發到現有EPG系統的業務邏輯模塊進行處 理。優選地,HTTP請求集合起202能夠智能地分析和處理客戶的HTTP請求,例如,根據請 求指向的URL地址,將同一時間/時段內來自不同用戶的對同一 URL地址的訪問請求合并 為一個請求,忽略同一時段內來自同一用戶的重復的訪問請求,從而避免了毫無意義的重 復處理和查詢,有效地提高了 EPG系統處理客戶請求的效率。
應用接口模塊206用于實現本發明的用戶請求處理系統200與現有EPG系統中現 有業務邏輯模塊的無縫對接,它將經過HTTP請求集合器202篩選的HTTP請求直接傳遞給 現有業務邏輯模塊,并將業務邏輯模塊產生的HTML響應頁面直接導入HTML頁面緩存器。在 本發明的優選實施例中,以開源JSP容器——Jetty 2. 0作為基礎進行改造,形成可與現有 的基于JSP的EPG業務層對接的JSP Web容器(1)簡化了 Jetty原有的HTTP請求接收和 處理流程,由于HTTP請求已經通過前端的HTTP請求處理器201和HTTP請求集合器202接 收和處理,因此改造后的JSP Web容器只需將處理后的HTTP請求直接傳遞給現有業務邏輯 模塊,由此克服了原JSP容器的流程效率不佳的缺陷;(2)簡化和重定向了 HTTP的響應輸 出,不再將產生的HTML頁面直接通過網絡I/O返回給客戶,而是將HTML頁面直接導入HTML 頁面緩存器203。數據對象緩存器204設置于現有EPG系統的業務邏輯模塊和數據庫之間,響應客 戶請求從數據庫查詢而獲得的數據對象被存儲于數據對象緩存區中,數據對象緩存器204 用于緩存和管理其中數據對象。優選地,所述數據對象緩存區存儲了訪問、使用頻度較高 (例如頻度大于設定值)的數據對象,因此,在直接訪問數據庫之前先在數據對象緩存區中 進行查詢,可以獲得大量訪問頻率高的數據對象,從而避免了大量復雜而慢速的數據庫直 接查詢。優選地,數據對象緩存器204可以包括各種可讀寫的存儲器中用作緩存區的部分 或全部存儲單元。由此可見,本發明的用戶請求處理系統200是獨立于任何EPG現有應用業務的,其 中,應用接口模塊206可以與現有EPG業務模塊共生于同一 EPG硬件平臺上,HTTP請求處 理器201、HTTP請求集合器202、HTML頁面緩存器203、數據對象緩存器204則取代現有EPG 系統中低效的通用Web容器,從而實現了本發明的用戶請求處理系統200與現有EPG業務 應用模塊的無縫結合。這樣,可以在完全無損EPG業務功能的情況下大幅度地提高系統運 行性能。圖3示出了根據本發明優選實施方式的用于EPG系統的用戶請求處理方法的流程 圖。在步驟301,接收來自客戶端的HTTP請求。所述客戶端設置在例如機頂盒的裝置 中,并通過各種適合的有線或無線網絡將用戶的請求發送至HTTP請求處理器。在步驟302,根據接收到的HTTP請求在頁面緩存區中查找客戶請求的頁面。查找 時,優選采用從客戶端發來的HTTP請求中解析出的URL作為關鍵詞進行查找。如果查找到客戶請求的頁面,則在步驟303從頁面緩存區取出HTML頁面,并將所 述頁面快速反饋給客戶端。如果未查找到客戶請求的頁面,則在步驟304判別所述請求的目標URL是否正由 后臺業務邏輯模塊處理,即,判別該請求是否為新請求。如果該請求未被后臺業務邏輯處 理,即,是新請求,則在步驟305將所述請求轉發到后續子系統進行處理。在本實施例中,具 體地,通過業務邏輯模塊對數據庫進行查詢。而且,由于設置有數據對象緩存器,當業務邏 輯模塊根據用戶請求進行查詢時,首先由數據對象緩存器在數據對象緩存區中進行查找, 如果尋獲欲查詢的數據對象,則無需對數據庫進行檢索。此外,可以針對EPG系統的一些基 本和重復使用量大的數據對象,如電視頻道數據、回看頻道數據、電視劇及電影點播數據, 在數據對象緩存區中設置基于翻頁頁面的緩存,即直接按照客戶端顯示頁面的形式存儲數
7據對象,從而可以實現快速索引。在步驟306,將通過業務邏輯模塊產生的HTML頁面直接寫入頁面緩存區。優選地, 同時通知HTTP請求集合器將已經處理的請求從HTTP請求集合器的任務列表中清除。優選 地,如不能在相關業務邏輯下或預定時間內找到相關的數據對象并生成客戶請求的響應頁 面,將根據具體情況將錯誤狀態碼發送給客戶端,錯誤狀態碼例如HTTP 4xx或5xx。優選 地,生成包含錯誤狀態碼的HTML頁面,并將其存入頁面緩存區。如果未在頁面緩存區中查找到客戶請求的頁面,則以預定時間間隔反復查詢頁面 緩存區,即步驟307。一旦經由業務邏輯模塊產生的HTML頁面被寫入頁面緩存區,則在步驟 308將找到的頁面發往客戶端。另外,雖然在圖3中未示出,但本發明的優選實施方式中還包括下列步驟當緩存區接近飽和時(例如緩存區存儲率大于或等于80%時可認為飽和),HTML 頁面緩存器可針對當前被緩存頁面的熱門度進行清理。熱門度高(例如,點擊率或被請求 率高)的頁面將盡量保存在緩存區中,而較冷門的頁面將被優先清除掉。優選地,還可以將 緩存頁面最近一次被請求訪問的時間作為清理緩存區的依據,與熱門度結合使用,從而更 有效地適應客戶的訪問需求來調節所緩存的HTML頁面。當后臺數據庫或EPG業務邏輯變化,EPG業務邏輯模塊將通過相關API向HTML頁 面緩存器發送有關通知,從而相關聯的頁面將會被從緩存區清除。數據對象緩存區被設計成循環式存儲,如果全被占滿,舊數據將從頭開始被新數
據覆蓋。當數據庫的原始數據發生更新及變動時,數據對象緩存區中相應數據將被清除。在上述的實施例中,本發明的系統并不包括EPG現有業務邏輯模塊和相關數據 庫,而是通過接口將需要處理的請求交由現有的業務邏輯模塊處理。然而,本領域技術人員 可以理解,本發明的系統可以包括自身的業務邏輯模塊或內置特定的業務邏輯,用以實現 現有業務模塊所不具備的功能。盡管本發明是通過上述的優選實施例進行描述的,但是其實現形式并不局限于上 述的實施方式。應該認識到在不脫離本發明主旨的情況下,本領域技術人員可以對本發明 做出不同的變化和修改。
權利要求
一種用于電子節目指南系統的用戶請求處理系統,所述電子節目指南系統包括業務邏輯模塊和數據庫,其特征在于,所述用戶請求處理系統包括HTTP請求處理器、HTML頁面緩存器和應用接口模塊,其中,所述HTTP請求處理器用于接收來自客戶端的HTTP請求,并用于將根據客戶請求生成的HTML頁面反饋給客戶端;所述HTML頁面緩存器用于在頁面緩存區中緩存并管理生成的HTML頁面,并根據接收到的HTTP請求在頁面緩存區中查找客戶請求的頁面;所述應用接口模塊用于將需要處理的HTTP請求轉發到相關的業務邏輯模塊進行處理,并將業務邏輯模塊生成的HTML頁面寫入頁面緩存區。
2.根據權利要求1所述的用戶請求處理系統,其特征在于,所述HTML頁面緩存器還用 于以預定的時間間隔在頁面緩存區中反復查找客戶請求的HTML頁面,直到找到為止。
3.根據權利要求2所述的用戶請求處理系統,其特征在于,當頁面緩存區飽和時,所述 HTML頁面緩存器能夠根據被緩存頁面的熱門度對頁面緩存區進行清理。
4.根據權利要求1所述的用戶請求處理系統,其特征在于,所述用戶請求處理系統進 一步包括HTTP請求集合器,所述HTTP請求集合器用于,在所述HTML頁面緩存器未查找到 客戶請求的頁面時,判斷所述請求是否正在被業務邏輯模塊處理,并只將確實需要處理的 請求轉發到業務邏輯模塊。
5.根據權利要求4所述的用戶請求處理系統,其特征在于,所述HTTP請求集合器還用 于對需要處理的HTTP請求進行分析,將對應于相同HTML頁面的請求合并處理,以確保針對 一個HTML頁面,有且只有一個請求被轉發到業務邏輯模塊。
6.根據權利要求1至5中任意一項所述的用戶請求處理系統,其特征在于,所述用戶請 求處理系統進一步包括數據對象緩存器,所述數據對象緩存器用于在數據對象緩存區中緩 存并管理從數據庫中查詢獲得的數據對象,并根據業務邏輯模塊的請求在數據對象緩存區 中查找相關的數據對象。
7.根據權利要求6所述的用戶請求處理系統,其特征在于,所述數據對象緩存器采用 循環方式對數據對象緩存區進行存儲,如果數據對象緩存區存滿,則以新數據覆蓋舊數據。
8.一種用于電子節目指南系統的用戶請求處理方法,所述電子節目指南系統包括業務 邏輯模塊和數據庫,其特征在于,所述方法包括以下步驟接收來自客戶端的HTTP請求;根據接收到的HTTP請求在頁面緩存區中查找客戶請求的頁面;如果查找到客戶請求的頁面,則從頁面緩存區中取出頁面,并將所述頁面反饋給客戶端;如果未查找到客戶請求的頁面,則將需要處理的HTTP請求轉發到相關的業務邏輯模 塊進行處理,并將業務邏輯模塊生成的HTML頁面寫入頁面緩存區。
9.根據權利要求8所述的用戶請求處理方法,其特征在于,所述方法進一步包括如果未查找到客戶請求的頁面,則以預定的時間間隔在頁面緩存區中反復查找,直到 找到為止。
10.根據權利要求9所述的用戶請求處理方法,其特征在于,所述方法進一步包括當頁面緩存區飽和時,根據被緩存頁面的熱門度對頁面緩存區進行清理。
11.根據權利要求8所述的用戶請求處理方法,其特征在于,所述方法進一步包括 如果未查找到客戶請求的頁面,判斷所述HTTP請求是否正在被業務邏輯模塊處理,在所述HTTP請求未被處理時,將所述HTTP請求轉發到業務邏輯模塊。
12.根據權利要求11所述的用戶請求處理方法,其特征在于,所述方法進一步包括 在將需要處理的HTTP請求轉發給業務邏輯模塊之前,對所述HTTP請求進行分析,將對應于相同HTML頁面的請求合并處理。
13.根據權利要求8至12中任意一項所述的用戶請求處理方法,其特征在于,所述方法 進一步包括將從數據庫中查詢獲得的數據對象緩存在數據對象緩存區中,并根據業務邏輯模塊的 請求在數據對象緩存區中查找相關的數據對象。
14.根據權利要求13所述的用戶請求處理方法,其特征在于,所述方法進一步包括 采用循環方式對數據對象緩存區進行存儲,如果數據對象緩存區存滿,則以新數據覆蓋舊數據。全文摘要
本發明提供了一種用于電子節目指南(EPG)系統的用戶請求處理系統和處理方法,該用戶請求處理系統包括HTTP請求處理器、HTML頁面緩存器和應用接口模塊,HTTP請求處理器接收來自客戶端的HTTP請求并將根據客戶請求生成的HTML頁面反饋給客戶端;HTML頁面緩存器在頁面緩存區中緩存并管理生成的HTML頁面,并根據接收到的HTTP請求在頁面緩存區中查找客戶請求的頁面;應用接口模塊將需要處理的HTTP請求轉發到相關的EPG現有業務邏輯模塊進行處理,并將業務邏輯模塊生成的HTML頁面寫入頁面緩存區。本發明能夠與現有EPG系統中業務邏輯應用程序無縫對接,同時充分利用數據和HTML內容緩存機制,增強了已尋獲數據或已產生的動、靜態HTML頁面的復用效率,可以將現有EPG系統的性能提高5-10倍。
文檔編號H04L29/08GK101882966SQ20091013642
公開日2010年11月10日 申請日期2009年5月7日 優先權日2009年5月7日
發明者盧晗曉, 王樂挺, 臧群, 趙泛舟 申請人:清流迅(北京)科技有限公司