申晨,葉德建
?
基于業務云的商用VOD視頻點播系統
申晨,葉德建
摘 要:隨著商用VOD視頻點播系統的普及和大規模發展,傳統的基于“終端—服務器”模式的商用VOD視頻點播系統在運營、升級、管理和維護等方面出現了諸多問題。為了解決這些工業界現實存在的問題,提出了一種新的基于業務云的商用VOD視頻點播系統的解決方案,并且進行了實現。經過實際的項目測試及性能分析,測試了該解決方案的可行性及各項性能指標,實驗結果表明該系統可以很好的解決傳統商用VOD視頻點播系統所帶來的弊端,并且性能表現良好。
關鍵詞:商用視頻點播系統(VOD);業務云;云運營;云升級;云運維
體,上海,201203
葉德建(1976-),男,復旦大學軟件學院,復旦大學網絡信息安全審計與監控教育部工程研究中心,副教授,研究方向:網絡多媒體,上海,201203
商用VOD視頻點播系統是指面向企業、政府、組織及大客戶群體銷售的視頻點播系統,例如酒店視頻點播系統等。近年來,智能電視(Smart TV)及智能機頂盒(Smart STB)日漸普及,商用VOD視頻點播系統的用量也隨之呈現井噴式發展。傳統的商用VOD視頻點播系統在項目擴展及運營過程中,面臨著許多實際問題,這些問題在一定程度上阻礙了行業的發展。
隨著云技術的不斷發展與成熟,出現了越來越多的私有云及行業領域細分云。商用VOD視頻點播業務云的出現,有效的改善了行業現狀,促進了行業得良性發展。利用業務云端強大的計算性能及存儲能力,可以簡化項目自有服務器的壓力,并且提高系統計算效率、增強系統轉碼能力。云技術的介入及其線性可擴展的優勢也便于商用VOD視頻點播系統增值服務的開發與部署,也讓視頻點播系統的遠程管控及終端的自動化運維成為可能。因此,基于業務云設計并實現一個可以解決傳統商用VOD視頻點播系統弊端的新系統就顯得尤為重要。本文基于實際的行業需求,對傳統商用VOD視頻點播系統架構進行了改進,設計并實現了一個具有三層架構的基于業務云的商用VOD視頻點播系統,并且提供了商用VOD視頻點播系統終端頁面模塊化、云升級、云運營及云運維解決方案。
傳統商用VOD視頻點播系統采用“終端-服務器”的架構模式。終端主要包括基于多種操作系統的智能電視及智能機頂盒,服務器端主要由直播服務器、點播服務器、EPG服務器、后臺管理服務器、轉碼服務器、資源管理服務器等部分組成。系統架構示意圖如圖1所示:

圖1 傳統商用VOD視頻點播系統架構示意圖
采用傳統的商用VOD視頻點播系統解決方案,各個項目之間相互獨立,對于新項目的擴展,需要采用架構層面的復制來實現新項目的運營。并且每個項目擁有自己單獨的管理系統,需要有專門的系統管理員負責日常管理及維護。因此,傳統商用VOD視頻點播系統在項目數量迅速增長,系統應用場
景日漸豐富,個性化定制需求逐漸遞增的發展趨勢下,出現了很多亟待解決的問題,具體描述如下:
(1)項目運營成本高
由于各個項目需要進行單獨的本地化運營,無法提供統一的入口遠程進行集中管理,所以提供運營服務的系統提供商需要定期派遣專業人員到項目實施現場提供服務。對于運營中需求變更的情況,由于系統模塊化較差,系統內部組件耦合度高,因此項目修改維護復雜度高、代價大、項目靈活性差。
(2)終端升級難度大
傳統的商用VOD視頻點播系統,采用人工方式記錄各個項目終端的版本情況,非常不利于版本控制及版本管理,當終端需要升級維護時,通常需要依靠人工升級維護的方式完成。因此,終端升級成本高、周期長,終端版本管理混亂,項目之間可能有較大版本差異,不利于整體用戶體驗的提升。
(3)個性定制周期長
針對不同的項目及應用場景,通常會有個性化定制的需求,一般包括終端界面的定制,播放資源的定制等。傳統系統中,每個項目都擁有自己獨立的數據庫及后臺管理系統,針對不同的個性化定制項目,大部分的開發工作都需要重新完成。導致項目的個性化定制開發周期長、成本高,已有的開發積累不能很好的被復用。
(4)項目部署實施難
基于傳統的商用VOD視頻點播系統解決方案,新項目的實施和部署,需要在實施現場按照已有的系統架構進行復制。需要為每個項目重復配置服務器環境,重復搭建用以支撐視頻點播業務的多種服務。但由于系統的個性化定制、硬件差異等原因,配置及部署經常面臨許多特異性的問題,給項目的實施部署帶來較大的難度,提升了項目實施部署的復雜性。
(5)資源轉碼耗時多
傳統的商用VOD視頻點播系統,每個項目需要利用自有服務器完成音頻及視頻的轉碼工作。不同項目的服務器性能差異較大,對于酒店等盈利性行業來說,搭建的服務器性能一般,有些甚至性能較差。而對于視頻點播系統來說,視音頻資源轉碼是比較常見的操作,由于服務器性能的原因,通常視音頻資源轉碼需要消耗較長的時間,并且CPU占用率很高。
根據上述分析,為了解決工業界面臨的這些實際問題。在滿足傳統商用VOD視頻點播系統的功能性需求之上,基于業務云的商用VOD視頻點播系統還需要實現各項系統需求如表1所示:

表1 商用VOD視頻點播系統需求概述
3.1 系統架構
基于業務云的商用VOD視頻點播系統的系統架構示意圖如圖2所示:

圖2 基于業務云的商用VOD視頻點播系統架構示意圖
從圖2中可以看出,該系統采用“終端—小前端—業務云”的三層架構模式。簡化了原來部署在各個項目中服務器的工作,將大量的復雜計算移至性能更高的業務云端進行,業務云端將最終結果推送至小前端。基于業務云的商用VOD視頻點播系統不需要為每個項目設置單獨的系統管理員,新系統擁有統一的入口實現集中運營,提供運營服務的系統提供商可以通過這個統一的入口遠程為所有項目提供云運營服務。
3.2 模塊劃分
基于業務云的商用VOD視頻點播系統模塊圖如圖3所示:

圖3 基于業務云的商用VOD視頻點播系統模塊圖
終端主要由業務支撐模塊集與平臺支持模塊集組成。其中,業務支撐模塊集以界面繪制模塊為中心,輔以Json解析模塊、資源下載模塊、播放控制模塊以及用戶交互模塊組成。平臺支持模塊集主要包括升級檢測模塊、用戶認證模塊、狀態上傳模塊三大核心模塊,擴展模塊留用于未來業務的擴展。業務云端對于終端透明,終端僅在局域網內與小前端交互,如果業務需要終端對接云端,則通過小前端中轉服務器轉發實現。
小前端主要包括靜態資源服務器、直播服務器、中轉服務器以及本地資源中心4部分。靜態資源文件服務器主要用于同步直播頻道列表、同步點播列表、下載點播片源、同步界面和素材以及提供資源和流媒體服務;直播服務器主要用于在項目本地基于廣電或電信提供直播源;中轉服務器主要作為終端與業務云端的中轉模塊使用,用以輔助實現云升級及日志上傳,并且可以提供實時天氣推送、匯率查詢、航班動態查詢等服務;本地管理中心主要用于實現個性化的管理服務,同時還可用于對接PMS酒店管理系統從而增強終端客房管控功能。
業務云端主要包括云運營中心、云資源中心以及云運維中心三部分。云運營中心提供終端界面編輯服務及云升級服務;云資源中心提供云轉碼服務及資源管理服務;云運維中心提供日志收集服務及大數據處理服務。模塊與模塊之間松散解耦和的設計可以方便增值業務的擴展,同時也可以簡化開發的復雜程度,提高開發效率及代碼復用率。
4.1 終端的設計與實現
目前,主流的終端應用開發模式有3種:原生應用開發模式、網頁應用開發模式、混合式應用開發模式。原生應用使用系統原生控件,主要的優點是用戶操作響應快、應用運行流暢、動畫及效果豐富,因此用戶體驗良好,但是開發難度較大、門檻較高、開發成本居3種模式之首;網頁應用基于Web網頁進行開發,開發難度較小、入門簡單、開發快捷、后期維護靈活度高,但是用戶體驗依賴于網絡質量,可能會出現卡頓及閃屏的情況,影響用戶體驗;混合式應用對于導航、工具條等用戶常用控件使用原生系統控件進行開發,而內容呈現部分則基于Web網頁進行開發,由于混合式應用在保障基本的用戶體驗基礎上,還可以保證后期維護的靈活度,因此一直被廣泛推廣及使用,但其弊端就是應用內部可能會出現較大的用戶體驗差異。商用VOD視頻點播系統終端內容呈現以圖片、音頻和視頻為主,如果選用混合式應用開發模式,當切換效果及動畫變得復雜而精細時,這種差異會被放大,用戶體驗不佳。因此,為了最大程度的保證用戶體驗質量,本文設計的基于業務云的商用VOD視頻點播系統終端開發將采用原生應用開發模式,并且原生應用結合本系統設計的基于Json的界面模塊化可以極大的降低終端界面的開發維護成本。
針對商用VOD視頻點播系統的行業需求,首先對系統終端界面進行了抽象,以皇庭世紀項目為例,終端界面抽象后的結果如圖4所示:

圖4 終端界面抽象結構圖
可以將所有的界面抽象為樹狀層級結構,從抽象結構圖中可以看出,該系統終端界面擁有3個層級。經過實際的項目統計分析,只有極少數的項目存在四級頁面,并且四級頁面是所有項目界面樹的最大深度。因此,可以將商用VOD視頻點播系統的終端界面抽象為歡迎頁面、視頻播放頁面、音頻播放頁面、一級頁面、二級頁面、三級頁面和四級頁面這樣7類界面。
我們為每類頁面設計實現了不同的主題模板以供選擇,如果現有主題模板無法滿足新的個性化需求時,則進行新的迭代設計與開發,完成的新模板可被所有項目共享復用。終端應用以View為單位進行開發,每個View代表某個主題模板的某類頁面。應用運行時,每個View對應單獨的Json文件,頁面素材、頁面文本內容及頁面邏輯跳轉關系從該Json文件中解析獲取。因此,終端可以通過解析對應的Json文件完成頁面的繪制,借助Json文件與頁面模板化實現了終端界面的模塊化。基于終端界面模塊化的個性化定制,無需編程,只需進行簡單的頁面配置,業務云端會自動生成Json文件以供終端解析。
如前文所述,只需讓終端應用擁有統一的可配置入口,用于從小前端獲取歡迎頁面的Json文件,通過解析該文件即可完成歡迎頁面的界面繪制,并且解析出該頁面可跳轉至的中英文功能頁面(一級頁面)的Json文件URL地址,以此類推完成整個應用界面層級的樹狀展開。當前頁面只能解析繪制下一級頁面,即父元素只包含子元素信息,跳轉鏈由上至下無法倒轉。因此,應用運行中,需要使用一個頁面棧來維護頁面的回溯,以響應用戶的返回或后退操作。
4.2 小前端的設計與實現
小前端本著簡單的設計原則,盡可能將所有的復雜計算、邏輯支持及數據庫操作移至業務云端實現。這樣做一方面可以利用業務云端強大的計算能力提升效率,另一方面可以降低小前端服務器配置的性能要求,并且方便實施與部署。因此,本文基于業務云的商用VOD視頻點播系統小前端不使用數據庫,主要用作緩存服務器來使用。
小前端靜態資源文件服務器主要用于存儲支持VOD視頻點播業務的靜態文件及向下層終端提供資源下載服務。其靜態文件結構主要包括Main文件、已轉碼的音頻文件、已轉碼的視頻文件3部分。其中Main文件夾包括main.json文件、resource_list.json文件及json文件夾和resource文件夾。main.json文件為終端入口json文件,終端啟動時會通過配置好的地址獲取該文件完成歡迎頁面的繪制;resource_list.json文件用于資源業務云端絕對地址與小前端相對地址的映射;json文件夾用于存儲其他各級頁面的json文件;resource文件夾用于存儲終端需要的圖片資源及背景視頻或背景音頻資源。
此外,該服務器還要用于支撐小前端自身的更新及升級,已實現的小前端版本控制臺如圖5所示:

圖5 小前端版本控制臺截圖
從圖5中可以看出,小前端靜態資源版本控制包括Main版本控制、Music版本控制和Video版本控制3部分。將音頻及視頻單獨進行版本控制緣于兩方面原因:第一,音頻、視頻文件較大,下載同步需要時間較長;第二,音頻、視頻文件需要支持增量下載及更新,而Main文件中的Json文件采用直接替換的方式完成更新。具體的更新方式是小前端每隔1小時(時間間隔可配置)向業務云端云運營中心發送查詢更新及小前端升級請求,業務云端會返回Json格式的查詢結果,如果返回結果中的status code的值為201,則代表當前小前端需要更新,然后從Json文件中解析相應的下載地址完成對應資源的下載。小前端需要保證更新操作的原子性,對于Main文件,json數據不增量,有更新時全部替換更新,需要更新時,新版本下載完成并校驗正確后將原有文件刪除。圖片資源和背景視頻資源需要先按照名字和大小檢驗本地資源的有效性,然后判定是否更新。對于視頻及音頻文件,增量下載的內容下載完成并校驗正確后才可并入原有版本。升級操作的原子性可以保證該系統在任一時刻均有可用版本用以向終端正常的提供服務。
小前端中轉服務器主要用于終端與業務云端的中轉服務,可以輔助實現終端的云升級并且將終端日志匯總上傳至云端。該服務器每隔5分鐘向云端查詢終端版本,若發現終端版本有更新,則將新的終端應用安裝文件下載至本地,以供終端升級使用。并且小前端會從云端得到終端版本需求信息,該需求信息包含終端Mac地址及特定版本號,該文件用于特定終端的定制升級。終端請求升級時會攜帶自有版本號及Mac地址,如果查詢到該終端擁有特定版本號,則將其與終端自有版本號進行比對,如果不相同則向終端返回升級信息;如果該終端沒有特定版本號,則將其自有版本號與當前小前端最新的終端版本號進行比對,如果不相同則向終端返回升級信息。具體的終端升級流程將在下一部分進一步闡述。由于大多數終端無法連接互聯網,所以終端需要先將其狀態信息及日志通過狀態上傳模塊上傳至該中轉服務器,然后由中轉服務器匯總后上傳至云端。
小前端直播服務器主要用于對接廣電或電信提供的直播源,通過HLS協議規范為終端提供直播服務,此部分與傳統的商用VOD視頻點播系統差異不大。小前端本地管理中心主要用于實現項目的個性化定制需求及對接PMS酒店管理系統,便于終端提供客房點餐、一鍵退房等服務,并且可以擴展終端的客房控制功能。
4.3 業務云端的設計與實現
本文基于業務云的商用VOD視頻點播系統主要依托清鶴ClearTV VOD業務云實現,ClearTV VOD業務云是一種流媒體行業細分云,為商用VOD視頻點播系統提供云計算及存儲等相關服務。
(1)云升級
由于終端數量龐大,并且分散在項目各地,因此對于終端版本的控制、管理及升級是一項十分重要的工作,并且這也是云運營的基礎。基于業務云的商用VOD視頻點播系統可以實現遠程終端版本管控及云升級。
已實現的云升級控制臺如圖6所示:

圖6 云升級控制臺截圖
其主要功能如下:第一,通過云升級控制臺可以查看所有終端當前版本情況,并且以餅圖及詳細列表的方式展示在控制臺中。第二,可以通過云升級控制臺上傳新版本的apk文件(以Android終端為例)至業務云端。第三,可以查看所有終端升級日志并且可以根據Mac地址設置終端定制升級版本號。第四,可以查看所有可用終端應用版本并且對其進行管理。
終端升級流程圖如圖7所示:

圖7 終端升級流程圖
終端在開機時會自動運行升級檢測模塊,該模塊會構造升級檢測地址,默認即為小前端的中轉服務器。而后終端會通過HTTP GET方式向小前端發送查詢版本更新請求,請求中主要包含交互協議版本、項目標識、實體類型、終端標識、當前版本號等字段。小前端的返回信息為Json格式或帶有Redirect URL的重定向,Json消息主要包含status code、version、upgradeFileURL、errInfo4個字段,其中status code字段用于升級判斷。當status code的值為200時,代表終端無需升級,則可忽略其他字段;當status code的值為4XX時,代表無法升級,錯誤信息會在errInfo字段中給出;當status code的值為201時,代表需要更新,version字段為新的版本號,升級文件地址在upgradeFileURL列表里,可逐個進行下載嘗試。
(2)云運營
如前文所述,該系統進行了界面的模塊化,所以各個項目運營過程中,不再需要通過編碼方式為每個項目單獨編寫頁面。而是通過統一的入口對各個項目的頁面進行配置,云端會自動生成相應的Json文件,同步至小前端以供終端下載繪制。皇廷世際項目的歡迎頁面配置截圖如圖8所示:

圖8 頁面配置截圖
用戶只需要為該頁面設置素材即可。配置頁面左側的頁面樹對應前文已經闡述過的終端界面的樹形層級結構,頁面的邏輯關聯會按照頁面樹的結構填入生成的Json文件中。
采用這樣的云運營方式,云端需要解決對于Json文件的管理問題。解決方案有以下3種:第一種,不使用數據庫,云端直接對生成的Json文件進行存儲和管理;第二種,云端使用MongoDB數據庫對Json文件進行存儲及管理;第三種,云端使用MySQL來存儲分化后的Json數據,即用多張表來映射出一個較為復雜的嵌套的Json數據,需要時再合成Json文件。第一種方式雖然簡單直接,但是修改困難,并且可靠性不高;第二種方式的欠缺主要在于MongoDB對數據存儲的精確性以及對事務等傳統的SQL型業務的支持方面。所以,本系統最終選擇第三種解決方案來支撐商用VOD視頻點播系統的云運營業務。
對于項目部署之后的運營任務,主要集中在資源的管理及終端維護方面,采用這樣的運營方案,各個項目不再需要單獨進行資源維護,運營商通過云端入口上傳資源,并且通過圖5展示的版本控制臺發布新的版本即可,各個項目的小前端會定期到云端進行同步。終端維護方面,通過云升級的方式可以遠程完成對于各項目終端的升級維護工作。云運營的實現可以極大的節約人力成本開銷并且可以提升運營效率。
(3)云運維
商用VOD視頻點播系統的云運維中心目的在于:通過對于各項既定指標的統計與分析,幫助運維人員發現上線系統可能存在的問題,并進行可能的修復操作,增強系統的魯棒性,保障產品的用戶體驗質量;通過用戶行為數據的統計與分析,挖掘出提升產品價值的有用信息,幫助開發人員完善系統的設計及研發,提升產品的用戶體驗質量。
通過分析實際項目的歷史工程維護記錄,并且結合商用VOD視頻點播的業務特征,我們將商用VOD視頻點播系統的統計與分析需求分為終端狀態信息、故障問題信息、用戶行為信息3類。3類信息的具體統計分析需求如表2所示:

表2 商用VOD視頻點播系統運維統計分析需求

態 沉默終端 終端離線時長排行啟動頻率 終端日啟動次數排行故障問題錯誤事件總數 當日錯誤事件總數及趨勢錯誤事件類別 錯誤事件類別統計及日志錯誤事件頻率 錯誤事件發生頻率排行錯誤終端排行 終端發生錯誤事件次數排行用戶行為頁面瀏覽排行 功能使用統計片源播放排行 片源播放統計
其中終端狀態信息用于收集終端狀態,通過終端狀態趨勢可以分析出各版本系統的使用狀態;通過沉默終端分析,可以發現可能存在的用戶流失;通過終端日啟動頻率可以及早發現由于終端故障導致的頻繁自動重啟問題。故障問題的反饋可以用于發現系統問題及監測系統健康狀況,通過按日統計的錯誤事件總數趨勢分析,可以得知系統當前的運行狀況及健康程度;對于高頻錯誤事件的統計,利于開發人員進行系統修復;對于高頻錯誤終端的統計,利于工程運維人員進行項目故障排查及修復。對于用戶行為的統計和分析,可以得知系統熱門功能以及熱門片源等信息,有助于系統功能的提升與改進及內容的推送。
所有未連接互聯網的終端通過狀態上傳模塊將各類型信息按照約定的格式發送給小前端,小前端匯總之后上傳至云端。數據由云端處理之后將統計分析結果返回給工程運維及開發人員。皇廷世際項目云運維統計分析結果截圖如圖9所示:

圖9 云運維統計分析結果截圖
本文設計的基于業務云的商用VOD視頻點播系統已經實際應用于司馬臺景區酒店項目,針對前文提出的該行業亟待解決的問題,逐項對比了基于業務云的系統與傳統系統的差別,對比結果如表3所示:

表3 系統對比結果
測試及終端性能測試3部分內容。
5.1 系統功能性測試
系統功能性測試選用定性測試法,根據系統需求,提煉出了表4中的指標,依托司馬臺項目進行測試,結果如表4所示:

表4 系統功能性測試結果
可以看出,該系統可以滿足商用VOD視頻點播系統的行業需求,并且終端用戶體驗良好。
5.2 系統穩定性測試
系統穩定性測試主要采用與傳統商用VOD視頻點播系統對比的方式進行,選擇活躍終端數量在100至110的兩類系統作為測試樣本,連續15天統計系統每日錯誤總數的數量。測試結果如圖10所示:

圖10 系統穩定性測試結果
通過圖10的結果可以看出,該系統的錯誤事件發生數量基本與傳統商業VOD視頻點播系統相近,并且還略優于傳統系統,故基于業務云的商用VOD視頻點播系統穩定性符合行業要求。
5.3 終端性能
以Android終端為例,本文通過CPU占用率及內存占用率測試了終端性能,其結果如圖11所示:

圖11 終端性能測試結果
終端空閑狀態指除去資源使用測量軟件外不運行其他任何軟件,通過對比空閑狀態及傳統商用VOD視頻點播系統與基于業務云的商用VOD視頻點播系統可以看出,新系統內存占用率不高,CPU占用率略高可能和頻繁的Json解析有關。總體來說,基于業務云的商用VOD視頻點播系統終端穩定運行時資源消耗率不高,符合行業要求。
針對目前商用VOD視頻點播系統在運營、升級、運維等方面存在的實際問題,本文提出了一種基于業務云的商用VOD視頻點播系統解決方案,并且進行了實現。實際的項目應用測試表明,該方案可以很好的降低項目部署成本及運營成本,極大的節約人力資源開銷。性能測試表明,該系統穩定性良好,終端運行流暢,性能符合行業要求,并且能夠實現系統的云運營、云升級及云運維。
參考文獻
[1] 沈建強, 耿兆豐, 鄒軒. 視頻點播系統的設計與實現[J].計算機工程,2006,32(2):209-211.
[2] 郭珍珍. 視頻點播系統的軟件設計和實現[D]. 杭州電子科技大學,2014.
[3] Chang S-F, Eleftheriadis D., Anastassiou D.,.Jacobs S, Kalva H., and Zamora. Columbia's J. VOD and Multime -dia Research Testbed With Heterogeneous Network Support-Journal on[J] Multimedia Tools and Applications, 1997, 5(2):171-184.
[4] Chang C.K., Chiao-Chuan Shih, Nguyen T.T.. A popularity-based data allocation scheme for a VOD server. Computer Software and Applications Conference, 1996. COMPSAC'96., Proceedings of 20th International 21-23 Aug.1996:62-67[C].
[5] 呂慰欣. 大規模交互式VOD系統中關鍵技術的研究[D].華中科技大學,2006.
Design of Commercial VOD System Based on Industry-specific Cloud
Shen Chen, Ye Dejian
(Software School, Fudan University, Shanghai Fudan University, Shanghai 201203, China)
Abstract:With the popularity and development of commercial VOD(video on demand ) system, the traditional commercial VOD system based on “client-server” mode has many problems in operation, upgrade, management and maintenance. Therefore, a new solution to commercial VOD system based on Industry-specific cloud is proposed in order to solve these problems and the system has been implemented. The feasibility of the solution and the performance of the system has been tested by actual project testing and performance analysis. The experimental results show that the system can solve the problems of the traditional system and meet industrystandards.
Key words:Commercial Video on Demand System; Industry-specific Cloud; Loud-operation; Cloud-upgrade; Cloud-maintenance
收稿日期:(2015.12.14)
作者簡介:申 晨(1991-),男,復旦大學軟件學院,復旦大學網絡信息安全審計與監控教育部工程研究中心,碩士研究生,研究方向:網絡多媒
基金項目:工信部電子發展基金
文章編號:1007-757X(2016)02-0014-06
中圖分類號:TP311
文獻標志碼:A