專利名稱:視頻點(diǎn)播系統(tǒng)中處理會(huì)話的接入實(shí)體及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻點(diǎn)播領(lǐng)域,特別涉及一種視頻點(diǎn)播系統(tǒng)中處理會(huì)話的接入實(shí)體及方法。
背景技術(shù):
當(dāng)前主流的視頻點(diǎn)播系統(tǒng)中的實(shí)體之間的會(huì)話是基于傳輸控制協(xié)議(TCP, Transmission Control Protocol)實(shí)現(xiàn)的。用戶通過數(shù)字電視接收終端點(diǎn)播節(jié)目,這里的數(shù)字電視接收終端為數(shù)字電視接收終端,可以為機(jī)頂盒等,數(shù)字電視接收終端與網(wǎng)絡(luò)側(cè)的媒體接入平臺(tái)(MAP,Media Access Platform)建立TCP連接。數(shù)字電視接收終端通過所建立的TCP連接向MAP發(fā)送建立(SETUP)請(qǐng)求消息建立會(huì)話,MAP接收到SETUP請(qǐng)求消息后為該請(qǐng)求申請(qǐng)視頻服務(wù)器(VS,Video Server)等資源。資源申請(qǐng)成功后,MAP與所選定的VS 建立TCP連接并在TCP連接上發(fā)送SETUP請(qǐng)求消息建立會(huì)話,請(qǐng)求VS為數(shù)字電視接收終端提供視頻。VS接收到該SETUP請(qǐng)求消息后,數(shù)字電視接收終端就可以為通過MAP與VS進(jìn)行會(huì)話交互,點(diǎn)播VS提供的視頻。在VS提供視頻的過程中,數(shù)字電視接收終端與MAP、MAP與 VS之間的會(huì)話都要通過分別建立的TCP連接進(jìn)行,當(dāng)會(huì)話結(jié)束后所建立的TCP連接才會(huì)斷開。
對(duì)于數(shù)字電視接收終端與MAP之間的會(huì)話,不同的數(shù)字電視接收終端與MAP要分別建立不同的TCP連接,無法建立一個(gè)TCP連接實(shí)現(xiàn)不同數(shù)字電視接收終端與MAP之間的會(huì)話。對(duì)于MAP與VS之間的會(huì)話,按照上述方案,也需要為不同的會(huì)話建立不同的會(huì)話連接。為了實(shí)現(xiàn)與數(shù)字電視接收終端或VS之間的不同會(huì)話,MAP就需要建立一組或幾組線程分別建立與數(shù)字電視接收終端及VS之間的TCP連接,這樣對(duì)于MAP與VS之間的通信,一個(gè)線程就需要管理多個(gè)不同的會(huì)話,當(dāng)有多個(gè)會(huì)話要進(jìn)行,也就是通過不同的TCP連接進(jìn)行消息收發(fā)時(shí),MAP的線程就需要輪循地向承載這些信息交互的套接字口(socket)寫數(shù)據(jù)或讀數(shù)據(jù)并處理,具體示意圖如圖1所示。圖1為現(xiàn)有技術(shù)提供的視頻點(diǎn)播系統(tǒng)承載會(huì)話的 TCP連接結(jié)構(gòu)示意圖。在圖1中,MAP具有N個(gè)線程,每個(gè)線程管理了多個(gè)TCP連接,這多個(gè) TCP連接包括與機(jī)頂盒(STB)之間的TCP連接以及與VS之間的TCP連接,每個(gè)TCP連接上承載一個(gè)會(huì)話。當(dāng)某個(gè)會(huì)話進(jìn)行時(shí),MAP管理承載該會(huì)話的TCP連接的線程,會(huì)輪詢到該會(huì)話相關(guān)信息交互的socket寫數(shù)據(jù)或讀數(shù)據(jù),處理該會(huì)話。
在上述方案中,在為數(shù)字電視接收終端提供視頻播放時(shí),MAP分別與STB和VS分別建立一個(gè)會(huì)話,就需要分別建立與STB和VS之間的TCP連接。如果對(duì)于基于下一代點(diǎn)播系統(tǒng)(NG0D,Next Generation On Demand),網(wǎng)絡(luò)側(cè)又新增很多實(shí)體,其中相當(dāng)于MAP的會(huì)話管理器(SM,Session Manager)需要與導(dǎo)航服務(wù)器(NS,Navigation Server)、邊緣資源管理器 (ERM, Edge Resource Manager)、點(diǎn)播資源管理器(0DRM, On Demand Resource Manager)、 網(wǎng)絡(luò)資源管理器(NRM, Network Resource Manager)、加密資源管理器(EnRM, Encryption Resource Manager及推流服務(wù)器(SS,Mreaming Server)分別建立會(huì)話,這時(shí)就需要7個(gè) TCP連接。如果MAP及VS采用LINUX系統(tǒng),一個(gè)進(jìn)程可以建立65535個(gè)TCP連接,端口最大數(shù)目為65535,但是一部分是保留的,所以實(shí)際上可以建立的TCP連接數(shù)目遠(yuǎn)遠(yuǎn)少于65535, 對(duì)于MAP最多也就只能支持幾千個(gè)會(huì)話,這將嚴(yán)重影響MAP的并發(fā)性能。另外,當(dāng)MAP的線程在處理TCP連接時(shí),采用的是輪循地向套接字口 socket寫數(shù)據(jù)或讀數(shù)據(jù)并處理,處理完后再切換處理另一個(gè)TCP連接的socket進(jìn)行寫數(shù)據(jù)或讀數(shù)據(jù)并處理,這樣切換會(huì)浪費(fèi)很多時(shí)間,無疑會(huì)增加MAP的負(fù)擔(dān),降低性能。
由于視頻點(diǎn)播系統(tǒng)的接入實(shí)體,諸如MAP或NGOD中的SM在建立TCP連接時(shí)的性能比較低,所以就需要在網(wǎng)絡(luò)側(cè)多部署多臺(tái)同一類型的接入實(shí)體,增加了成本以及增加了維護(hù)費(fèi)用。
為了解決上述視頻點(diǎn)播系統(tǒng)的接入實(shí)體在建立TCP連接時(shí)出現(xiàn)的問題,可以采用傳輸控制協(xié)議(UDP,User Datagram Protocol)傳輸會(huì)話的信息,如圖2所示,圖2為現(xiàn)有技術(shù)提供的視頻點(diǎn)播系統(tǒng)承載會(huì)話的UDP通道結(jié)構(gòu)示意圖,比如當(dāng)MAP與VS之間建立會(huì)話時(shí),不建立TCP連接,而是通過UDP進(jìn)行會(huì)話的建立。即在MAP上設(shè)置處理UDP消息線程組, 由該線程組建立與VS之間的UDP通道,通過該UDP通道進(jìn)行會(huì)話相關(guān)消息交互。但是,這種方式也存在缺點(diǎn)UDP是一種不可靠的傳輸層協(xié)議,如果視頻點(diǎn)播系統(tǒng)出現(xiàn)網(wǎng)絡(luò)阻塞或不穩(wěn)定,就會(huì)出現(xiàn)會(huì)話相關(guān)消息丟失的情況,影響數(shù)字電視接收終端點(diǎn)播視頻的穩(wěn)定性,為了解決這個(gè)問題,就需要在以UDP進(jìn)行會(huì)話消息交互的視頻點(diǎn)播系統(tǒng)的接入實(shí)體設(shè)置重傳機(jī)制,進(jìn)行信息交互的檢測(cè)和重傳,這無疑增加了以UDP進(jìn)行信息交互的視頻點(diǎn)播系統(tǒng)的接入實(shí)體的實(shí)現(xiàn)難度和復(fù)雜度。
因此,在數(shù)字電視接收終端進(jìn)行視頻點(diǎn)播過程中,如何在保證點(diǎn)播視頻穩(wěn)定性的前提下,提高視頻點(diǎn)播系統(tǒng)中的接入實(shí)體的并行處理會(huì)話能力,成為了一個(gè)亟待解決的問題。發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種視頻點(diǎn)播系統(tǒng)中處理會(huì)話的接入實(shí)體,該接入實(shí)體能夠在保證點(diǎn)播視頻穩(wěn)定性的前提下,提高視頻點(diǎn)播系統(tǒng)中的接入實(shí)體的并行處理會(huì)話能力。
本發(fā)明還提供一種視頻點(diǎn)播系統(tǒng)中處理會(huì)話的方法,該方法能夠在保證點(diǎn)播視頻穩(wěn)定性的前提下,提高視頻點(diǎn)播系統(tǒng)中的接入實(shí)體的并行處理會(huì)話能力。
為達(dá)到上述目的,本發(fā)明實(shí)施的技術(shù)方案具體是這樣實(shí)現(xiàn)的
一種視頻點(diǎn)播系統(tǒng)中處理會(huì)話的方法,接入實(shí)體設(shè)置連接池,該連接池中,與視頻服務(wù)器之間至少建立一個(gè)傳輸控制協(xié)議TCP連接,所述視頻服務(wù)器為至少一個(gè),該方法包括
接入實(shí)體接收數(shù)字電視接收終端發(fā)送的視頻點(diǎn)播請(qǐng)求,根據(jù)所述請(qǐng)求確定為該請(qǐng)求提供視頻服務(wù)的視頻服務(wù)器;
在連接池中選擇與所確定視頻服務(wù)器之間的一個(gè)TCP連接,通過所選定的TCP連接將所述請(qǐng)求轉(zhuǎn)發(fā)給所確定視頻服務(wù)器。
所述選擇與所確定視頻服務(wù)器之間的一個(gè)TCP連接的過程為
根據(jù)所確定視頻服務(wù)器標(biāo)識(shí),在連接池中找到具有相同的所述標(biāo)識(shí)的視頻服務(wù)器,從找到的視頻服務(wù)器與接入實(shí)體之間的多個(gè)TCP連接中選擇一個(gè)TCP連接使用,所述選擇的TCP連接為當(dāng)前負(fù)載連接最輕的TCP連接。
所述將所述請(qǐng)求轉(zhuǎn)發(fā)給所確定視頻服務(wù)器之后,還包括
接收所確定視頻服務(wù)器處理后返回的視頻點(diǎn)播響應(yīng),該響應(yīng)是通過所述所選定的 TCP連接發(fā)送給接入實(shí)體的;
通過與所述數(shù)字電視接收終端建立的TCP連接,將接收到的視頻點(diǎn)播響應(yīng)發(fā)送給數(shù)字電視接收終端。
在所述在連接池中選擇與所確定視頻服務(wù)器之間的一個(gè)TCP連接之前,還包括
判斷在連接池中是否存在與所確定視頻服務(wù)器之間的TCP連接,如果是,執(zhí)行在連接池中選擇與所確定視頻服務(wù)器之間的一個(gè)TCP連接的步驟;如果否,在連接池中與所確定視頻服務(wù)器之間建立至少一個(gè)TCP連接后,執(zhí)行在連接池中選擇與所確定視頻服務(wù)器之間的一個(gè)TCP連接的步驟。
所述通過所選定的TCP連接將所述請(qǐng)求轉(zhuǎn)發(fā)給所確定視頻服務(wù)器,及所述該響應(yīng)是通過所述所選定的TCP連接發(fā)送給接入實(shí)體的過程是對(duì)所述選定的TCP連接的套接字 socket進(jìn)行會(huì)話交互數(shù)據(jù)的讀寫處理,處理過程為
在接入實(shí)體上設(shè)置兩組線程,一組線程用于對(duì)該選定的TCP連接的socket進(jìn)行會(huì)話交互數(shù)據(jù)的讀處理,接收視頻點(diǎn)播請(qǐng)求回應(yīng);另一組線程用于對(duì)該選定的TCP連接的 socket進(jìn)行會(huì)話交互數(shù)據(jù)的寫處理,發(fā)送視頻點(diǎn)播請(qǐng)求。
該方法還包括接入實(shí)體定時(shí)檢測(cè)連接池中的建立的TCP連接,當(dāng)檢測(cè)到TCP連接異常時(shí)重新進(jìn)行連接,或者將異常的TCP連接所承載的會(huì)話遷移到連接池中的其他TCP連接上,所述其他TCP連接與所述異常的TCP連接所連接到的視頻服務(wù)器相同。
所述遷移到連接池中的其他TCP連接上的會(huì)話相關(guān)消息通過實(shí)時(shí)流傳輸協(xié)議 RTSP的SETPARAMETER方法發(fā)送給與所述其他TCP連接的視頻服務(wù)器。
一種視頻點(diǎn)播系統(tǒng)中處理會(huì)話的接入實(shí)體,包括會(huì)話管理模塊、視頻服務(wù)器資源管理模塊和連接池,其中,
會(huì)話管理模塊,用于接收數(shù)字電視接收終端發(fā)送的視頻點(diǎn)播請(qǐng)求,發(fā)送給視頻服務(wù)器資源管理模塊;根據(jù)視頻服務(wù)器資源管理模塊選擇的所確定視頻服務(wù)器,從連接池中獲取到與所確定視頻服務(wù)器之間的一個(gè)TCP連接,通過所選擇的TCP連接將視頻點(diǎn)播請(qǐng)求發(fā)送給所確定視頻服務(wù)器;
視頻服務(wù)器資源管理模塊,用于根據(jù)會(huì)話管理模塊發(fā)送來的所述請(qǐng)求,確定為所述請(qǐng)求提供視頻服務(wù)的視頻服務(wù)器,通知會(huì)話管理模塊;
連接池,用于與視頻服務(wù)器之間建立至少一個(gè)TCP連接,所述視頻服務(wù)器為至少一個(gè),選擇與所確定視頻服務(wù)器之間的一個(gè)TCP連接后,反饋給會(huì)話管理模塊。
會(huì)話管理模塊,還用于建立與所述數(shù)字電視接收終端之間的TCP連接,從所述所確定視頻服務(wù)器接收到通過所選擇的TCP連接發(fā)送的視頻點(diǎn)播響應(yīng)后,通過所建立的與數(shù)字電視接收終端之間的TCP連接,將該視頻點(diǎn)播響應(yīng)轉(zhuǎn)發(fā)給所述數(shù)字電視接收終端。
連接池包括初始化模塊、視頻服務(wù)器連接建立和銷毀模塊及socket資源管理模塊,其中,
初始化模塊,用于啟動(dòng)連接池運(yùn)行所需要的資源,包括管理連接池的線程啟動(dòng)及連接池的資源申請(qǐng);
視頻服務(wù)器連接建立和銷毀模塊,用于在socket資源管理模塊的指示下建立和銷毀與視頻服務(wù)器之間的至少一個(gè)TCP連接,存儲(chǔ)在socket資源管理模塊中的緩沖池;
socket資源管理模塊,用于從緩沖池中選擇與所確定視頻服務(wù)器之間的一個(gè)的 TCP連接,如果選擇到,檢測(cè)是否可用,如果可用,反饋給會(huì)話管理模塊;如果不可用或沒有選擇到,指示視頻服務(wù)器連接建立和銷毀模塊建立與所確定視頻服務(wù)器之間的TCP連接。
所述連接池線程定時(shí)檢測(cè)視頻服務(wù)器資源,該視頻服務(wù)器資源由所述視頻服務(wù)器資源管理模塊管理,當(dāng)檢測(cè)到有新的視頻服務(wù)器注冊(cè)到接入實(shí)體時(shí),建立與該視頻服務(wù)器之間的TCP連接,將該連接放置到緩沖池中,由所述socket資源管理模塊處理;
當(dāng)檢測(cè)到有視頻服務(wù)器注銷時(shí),刪除緩沖池中接入實(shí)體與注銷的視頻服務(wù)器之間的所有TCP連接。
所述socket資源管理模塊定期檢測(cè)緩沖池中所有的TCP連接狀態(tài),當(dāng)所檢測(cè)的 TCP連接所承載的會(huì)話數(shù)為0或出現(xiàn)異常,指示視頻服務(wù)器連接建立和銷毀模塊斷開該TCP 連接。
所述會(huì)話管理模塊,還用于設(shè)置兩組線程,一組線程用于對(duì)從socket資源管理模塊中的緩沖池選定的TCP連接的socket進(jìn)行會(huì)話交互數(shù)據(jù)的讀處理,接收視頻點(diǎn)播請(qǐng)求回應(yīng);另一組線程用于對(duì)從socket資源管理模塊中的緩沖池選定的TCP連接的socket進(jìn)行會(huì)話交互數(shù)據(jù)的寫處理,發(fā)送視頻點(diǎn)播請(qǐng)求。
該接入實(shí)體還包括IP QAM資源管理模塊,用于當(dāng)會(huì)話管理模塊與數(shù)字電視接收終端之間建立以TCP連接的會(huì)話后,從IP QAM資源管理模塊中申請(qǐng)IP QAM資源,為數(shù)字電視接收終端請(qǐng)求的視頻點(diǎn)播申請(qǐng)IP QAM資源。
由上述方案可以看出,本發(fā)明在視頻點(diǎn)播系統(tǒng)的接入實(shí)體設(shè)置連接池,在該連接池中,與當(dāng)前提供視頻服務(wù)的視頻服務(wù)器之間建立至少一個(gè)TCP連接,所述當(dāng)前提供視頻服務(wù)的視頻服務(wù)器為至少一個(gè)。當(dāng)接收到數(shù)字電視接收終端的視頻點(diǎn)播時(shí),從該連接池中選擇與所確定提供視頻服務(wù)的視頻服務(wù)器之間的其中一個(gè)TCP連接進(jìn)行會(huì)話交互。這樣, 在視頻點(diǎn)播過程中,采用可靠的傳輸層協(xié)議建立TCP連接進(jìn)行會(huì)話交互,保證了點(diǎn)播視頻的穩(wěn)定性。由于接入實(shí)體從該連接池中選擇與所確定提供視頻服務(wù)的視頻服務(wù)器之間的其中一個(gè)TCP連接進(jìn)行會(huì)話交互,也就是預(yù)先建立的TCP連接并不是針對(duì)每一個(gè)會(huì)話建立,所以該TCP連接可以在不同的時(shí)間段處理不同的會(huì)話,使得多個(gè)會(huì)話可以共用一個(gè)TCP連接, 增大了接入實(shí)體所支持的最大會(huì)話數(shù),從而提高視頻點(diǎn)播系統(tǒng)中的接入實(shí)體的并行處理會(huì)話能力。
圖1為現(xiàn)有技術(shù)提供的視頻點(diǎn)播系統(tǒng)承載會(huì)話的TCP連接結(jié)構(gòu)示意圖2為現(xiàn)有技術(shù)提供的視頻點(diǎn)播系統(tǒng)承載會(huì)話的UDP通道結(jié)構(gòu)示意圖3為本發(fā)明實(shí)施例提供的視頻點(diǎn)播系統(tǒng)中處理會(huì)話的方法流程圖4為本發(fā)明實(shí)施例提供的視頻點(diǎn)播系統(tǒng)中處理會(huì)話的接入實(shí)體結(jié)構(gòu)示意圖5為本發(fā)明又一實(shí)施例提供的視頻點(diǎn)播系統(tǒng)中處理會(huì)話的方法流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
本發(fā)明為了保證點(diǎn)播視頻在進(jìn)行會(huì)話交互時(shí)的穩(wěn)定性,不造成會(huì)話交互信息丟失,所以接入實(shí)體和提供視頻服務(wù)的視頻服務(wù)器之間的會(huì)話交互仍然采用TCP連接。為了提高視頻點(diǎn)播系統(tǒng)中的接入實(shí)體的并行處理會(huì)話能力,本發(fā)明在視頻點(diǎn)播系統(tǒng)的接入實(shí)體設(shè)置連接池,在該連接池中,與當(dāng)前提供視頻服務(wù)的視頻服務(wù)器之間建立至少一個(gè)TCP連接,所述當(dāng)前提供視頻服務(wù)的視頻服務(wù)器為至少一個(gè)。當(dāng)接收到數(shù)字電視接收終端的視頻點(diǎn)播時(shí),從該連接池中選擇與所確定提供視頻服務(wù)的視頻服務(wù)器之間的其中一個(gè)TCP連接進(jìn)行會(huì)話交互。
這樣,接入實(shí)體從該連接池中選擇與所確定提供視頻服務(wù)的視頻服務(wù)器之間的其中一個(gè)TCP連接進(jìn)行會(huì)話交互,也就是預(yù)先建立的TCP連接并不是針對(duì)每一個(gè)會(huì)話建立,所以該TCP連接可以在不同的時(shí)間段處理不同的會(huì)話,使得多個(gè)會(huì)話可以共用一個(gè)TCP連接, 增大了接入實(shí)體所支持的最大會(huì)話數(shù),從而提高視頻點(diǎn)播系統(tǒng)中的接入實(shí)體的并行處理會(huì)話能力。
在本發(fā)明中,從中選擇一個(gè)TCP連接使用,所述選擇的TCP連接為當(dāng)前負(fù)載連接最輕的TCP連接,負(fù)載是目前該TCP連接上已存在的會(huì)話數(shù),會(huì)話數(shù)越多負(fù)載越重。
在本發(fā)明中,接入實(shí)體可以為MAP或SM,視頻服務(wù)器可以為VS,SS, NS,ERM,ODRM, NRM 或 EnRM 等。
在本發(fā)明中,數(shù)字電視接收終端包括但不限于機(jī)頂盒、網(wǎng)際協(xié)議電視IPTV或一體機(jī)等。
圖3為本發(fā)明實(shí)施例提供的視頻點(diǎn)播系統(tǒng)中處理會(huì)話的方法流程圖,在視頻點(diǎn)播系統(tǒng)的接入實(shí)體設(shè)置連接池,該連接池中,與當(dāng)前提供視頻服務(wù)的視頻服務(wù)器之間建立至少一個(gè)TCP連接,所述當(dāng)前提供視頻服務(wù)的視頻服務(wù)器為至少一個(gè),其具體步驟為
步驟301、接入實(shí)體接收到數(shù)字電視接收終端發(fā)送的視頻點(diǎn)播請(qǐng)求;
在該步驟后,接入實(shí)體為數(shù)字電視接收終端建立會(huì)話,即和數(shù)字電視接收終端之間建立TCP連接;
步驟302、接入實(shí)體確定為該請(qǐng)求提供視頻服務(wù)的視頻服務(wù)器;
在該步驟中,如何確定為現(xiàn)有技術(shù),這里不再贅述;
步驟303、接入實(shí)體在連接池中選擇與所確定視頻服務(wù)器之間的一個(gè)TCP連接后, 通過所選定的TCP連接將該視頻點(diǎn)播請(qǐng)求轉(zhuǎn)發(fā)給該視頻服務(wù)器處理;
在該步驟中,選擇過程為根據(jù)所確定視頻服務(wù)器標(biāo)識(shí),在連接池中找到具有相同視頻服務(wù)器標(biāo)識(shí)的視頻服務(wù)器,從找到的視頻服務(wù)器與接入實(shí)體之間的多個(gè)TCP連接中選擇一個(gè)TCP連接使用,可以選擇當(dāng)前未進(jìn)行會(huì)話交互的TCP連接使用,也可以選擇當(dāng)前負(fù)載連接最輕的TCP連接;
在該步驟中,當(dāng)該視頻服務(wù)器處理后,返回視頻點(diǎn)播響應(yīng),該響應(yīng)通過步驟303的 TCP連接發(fā)送給接入實(shí)體,接入實(shí)體接收到后,通過與數(shù)字電視接收終端建立的TCP連接, 將視頻點(diǎn)播響應(yīng)發(fā)送給數(shù)字電視接收終端,數(shù)字電視接收終端就可以點(diǎn)播視頻了。
在該方法中,在執(zhí)行步驟303之前,還包括
接入實(shí)體確定在連接池中存在與所確定視頻服務(wù)器之間的TCP連接,如果是,執(zhí)行步驟303 ;如果否,則與所確定視頻服務(wù)器之間建立至少一個(gè)TCP連接后,再執(zhí)行步驟 303。
在該方法中,接入實(shí)體的連接池中與當(dāng)前提供視頻服務(wù)的視頻服務(wù)器之間建立至少一個(gè)TCP連接,是動(dòng)態(tài)建立的,對(duì)于其中一個(gè)當(dāng)前提供視頻服務(wù)的視頻服務(wù)器,所建立的 TCP連接數(shù)目是根據(jù)數(shù)字電視接收終端數(shù)目及接入實(shí)體的系統(tǒng)并發(fā)能力建立的。當(dāng)其中一個(gè)當(dāng)前提供視頻服務(wù)的視頻服務(wù)器的多個(gè)TCP連接達(dá)到可承載上限時(shí),具體的上限值根據(jù)會(huì)話數(shù)量及網(wǎng)絡(luò)狀況確定,也可以增加建立TCP連接來滿足會(huì)話需要;當(dāng)然,相反情況時(shí), 也可以斷開已有的一部分TCP連接。
在本發(fā)明中,如果采用一個(gè)線程對(duì)一個(gè)TCP連接的socket進(jìn)行會(huì)話交互數(shù)據(jù)的讀和寫都進(jìn)行處理,也就是對(duì)承載在該TCP連接的消息進(jìn)行收發(fā)處理。當(dāng)會(huì)話交互比較多時(shí), 就會(huì)有很多的會(huì)話交互數(shù)據(jù)的讀和寫處理。當(dāng)該線程對(duì)一個(gè)TCP連接的socket進(jìn)行會(huì)話交互數(shù)據(jù)進(jìn)行讀處理時(shí),就無法再進(jìn)行寫處理,反之依然,這會(huì)影響接入實(shí)體對(duì)數(shù)字電視接收終端的視頻點(diǎn)播請(qǐng)求處理的反應(yīng)度。因此,在本發(fā)明中,當(dāng)接入實(shí)體通過所選定的TCP連接將該視頻點(diǎn)播請(qǐng)求轉(zhuǎn)發(fā)給該視頻服務(wù)器時(shí),采用的方法是對(duì)該選定的TCP連接的socket 進(jìn)行會(huì)話交互數(shù)據(jù)的寫處理,在處理過程中,設(shè)置兩組線程,一組線程用于對(duì)該選定的TCP 連接的socket進(jìn)行會(huì)話交互數(shù)據(jù)的讀處理,也就是接收消息,另一組線程用于對(duì)該選定的 TCP連接的socket進(jìn)行會(huì)話交互數(shù)據(jù)的寫處理,也就是發(fā)送消息。這樣,對(duì)于一個(gè)TCP連接可以同時(shí)進(jìn)行攜帶會(huì)話交互數(shù)據(jù)的消息發(fā)送和接收,提高處理效率。
在本發(fā)明中,由于多個(gè)會(huì)話會(huì)采用一個(gè)TCP連接,如果該TCP連接異常斷開,就會(huì)影響該TCP連接所承載的所有會(huì)話。這樣,就對(duì)視頻點(diǎn)播系統(tǒng)中的連接穩(wěn)定性及連接異常斷開后的補(bǔ)救措施要求很高。因此,在本發(fā)明中,接入實(shí)體定期對(duì)連接池中所建立的每一條 TCP連接進(jìn)行檢測(cè),當(dāng)檢測(cè)到TCP連接異常時(shí)就重新進(jìn)行連接,或者將異常的TCP連接所承載的會(huì)話遷移到其他TCP連接上,該其他TCP連接與異常的TCP連接所連接到的視頻服務(wù)器相同,從而保證會(huì)話的正常運(yùn)轉(zhuǎn)。在這時(shí),接入實(shí)體還需要通知視頻服務(wù)器,會(huì)話遷移到哪個(gè)TCP連接上,保證視頻服務(wù)器可以通過所遷移的TCP連接向接入實(shí)體發(fā)送會(huì)話相關(guān)消息。在這里,通知可以通過實(shí)時(shí)流傳輸協(xié)議(RTSP,Real Time Streaming Protocol)中的 SETPARAMETER方式建立,具體地,就是接入設(shè)備向視頻服務(wù)器發(fā)送攜帶遷移的TCP連接信息和會(huì)話信息的消息。
采用的SETPARAMETER消息格式為
SET_PARAMETER rtsp ://streamingserver32. comcast. com :554RTSP/1. 0
CSeq :36394 // 序列號(hào)
Content-Type text/parameters // 內(nèi)容類型文本
Content_Length :40// 內(nèi)容長(zhǎng)度
Session_groups :SM1. SGl SM2. SG2 SM3. SG3 //TCP 連接信息和會(huì)話信息。
圖4為本發(fā)明實(shí)施例提供的視頻點(diǎn)播系統(tǒng)中處理會(huì)話的接入實(shí)體結(jié)構(gòu)示意圖,包括會(huì)話管理模塊、視頻服務(wù)器資源管理模塊和連接池,其中,
會(huì)話管理模塊,用于接收數(shù)字電視接收終端發(fā)送的視頻點(diǎn)播請(qǐng)求,發(fā)送給視頻服務(wù)器資源管理模塊選擇所確定視頻服務(wù)器,從連接池中獲取到與所確定視頻服務(wù)器之間的一個(gè)TCP連接,通過所選擇的TCP連接將視頻點(diǎn)播請(qǐng)求發(fā)送給所確定視頻服務(wù)器;
視頻服務(wù)器資源管理模塊,用于確定為數(shù)字電視接收終端發(fā)送的視頻點(diǎn)播請(qǐng)求提供視頻服務(wù)的視頻服務(wù)器,通知會(huì)話管理模塊;
連接池,用于與視頻服務(wù)器之間建立至少一個(gè)TCP連接,所述視頻服務(wù)器為至少一個(gè),選擇與所確定視頻服務(wù)器之間的一個(gè)TCP連接后,反饋給會(huì)話管理模塊。
在該結(jié)構(gòu)中,會(huì)話管理模塊,還用于建立與數(shù)字電視接收終端之間的TCP連接,當(dāng)從視頻服務(wù)器接收到通過所選擇的TCP連接發(fā)送的視頻點(diǎn)播響應(yīng)后,通過所建立的與數(shù)字電視接收終端之間的TCP連接,將該視頻點(diǎn)播響應(yīng)轉(zhuǎn)發(fā)給數(shù)字電視接收終端。
具體地,初始化模塊,用于啟動(dòng)連接池運(yùn)行所需要的資源,包括管理連接池的線程啟動(dòng)及連接池的資源申請(qǐng);
視頻服務(wù)器連接建立和銷毀模塊,用于在socket資源管理模塊的指示下建立和銷毀與視頻服務(wù)器之間的至少一個(gè)TCP連接,存儲(chǔ)在socket資源管理模塊中的緩沖池;
socket資源管理模塊,用于從緩沖池中選擇與所確定視頻服務(wù)器之間的一個(gè)的 TCP連接,如果選擇到,檢測(cè)是否可用,如果可用,反饋給會(huì)話管理模塊;如果不可用或沒有選擇到,指示視頻服務(wù)器連接建立和銷毀模塊建立與所確定視頻服務(wù)器之間的TCP連接。
在該接入實(shí)體中,socket資源管理模塊還包括緩沖池,用于存儲(chǔ)視頻服務(wù)器連接建立和銷毀模塊建立和銷毀與視頻服務(wù)器之間的至少一個(gè)TCP連接。
在該接入實(shí)體,所述連接池線程定時(shí)檢測(cè)視頻服務(wù)器資源,該視頻服務(wù)器資源由所述視頻服務(wù)器資源管理模塊管理,當(dāng)檢測(cè)到有新的視頻服務(wù)器注冊(cè)到接入實(shí)體時(shí),建立與該視頻服務(wù)器之間的TCP連接,將該連接放置到緩沖池中,由所述socket資源管理模塊處理;
當(dāng)檢測(cè)到有視頻服務(wù)器注銷時(shí),刪除緩沖池中接入實(shí)體與注銷的視頻服務(wù)器之間的所有TCP連接。
在該接入實(shí)體中,所述socket資源管理模塊定期檢測(cè)緩沖池中所有的TCP連接狀態(tài),當(dāng)所檢測(cè)的TCP連接所承載的會(huì)話數(shù)為0或出現(xiàn)異常,指示視頻服務(wù)器連接建立和銷毀模塊斷開該TCP連接。
在該接入實(shí)體中,所述會(huì)話管理模塊,還用于設(shè)置兩組線程,一組線程用于對(duì)從 socket資源管理模塊中的緩沖池選定的TCP連接的socket進(jìn)行會(huì)話交互數(shù)據(jù)的讀處理, 接收視頻點(diǎn)播請(qǐng)求回應(yīng);另一組線程用于對(duì)從socket資源管理模塊中的緩沖池選定的TCP 連接的socket進(jìn)行會(huì)話交互數(shù)據(jù)的寫處理,發(fā)送視頻點(diǎn)播請(qǐng)求。
在接入實(shí)體中,當(dāng)基于邊緣解調(diào)器(IP QAM, Internet Protocol Quadrature Amplitude Modulation)的模式下時(shí),還包括IP QAM資源管理模塊,用于當(dāng)會(huì)話管理模塊與數(shù)字電視接收終端之間建立以TCP連接的會(huì)話后,從IP QAM資源管理模塊中申請(qǐng)IP QAM 資源,為點(diǎn)播的視頻申請(qǐng)IP QAM資源,這是現(xiàn)有技術(shù),這里不再贅述。
圖5為本發(fā)明又一實(shí)施例提供的視頻點(diǎn)播系統(tǒng)中處理會(huì)話的方法流程圖,假設(shè)數(shù)字電視接收終端為機(jī)頂盒,接入實(shí)體為MAP,在MAP的連接池中與當(dāng)前提供視頻服務(wù)的視頻服務(wù)器之間建立至少一個(gè)TCP連接,所述當(dāng)前提供視頻服務(wù)的視頻服務(wù)器為至少一個(gè),其具體步驟為
步驟501、機(jī)頂盒向MAP發(fā)送點(diǎn)播視頻請(qǐng)求;
步驟502、MAP接收到后,其會(huì)話管理模塊建立會(huì)話,也就是建立與該機(jī)頂盒之間的連接;
步驟503、MAP中的會(huì)話管理模塊向MAP中的IP QAM資源管理模塊請(qǐng)求分配IP QAM資源;
步驟504、MAP中的IP QAM資源管理模塊返回為機(jī)頂盒分配的IP QAM資源;
步驟505、MAP中的會(huì)話管理模塊向MAP中的視頻服務(wù)器資源管理模塊請(qǐng)求分配視頻服務(wù)器;
步驟506、MAP中的視頻服務(wù)器資源管理模塊將所分配的視頻服務(wù)器標(biāo)識(shí)返回給 MAP中的會(huì)話管理模塊,具有該視頻服務(wù)器標(biāo)識(shí)的視頻服務(wù)器就是所確定視頻服務(wù)器;
步驟501 步驟506的過程都是現(xiàn)有技術(shù),這里不再贅述;
步驟507、MAP中的會(huì)話管理模塊根據(jù)所確定視頻服務(wù)器標(biāo)識(shí)向連接池申請(qǐng)TCP連接;
步驟508、MAP中的連接池將所選擇的與所確定視頻服務(wù)器之間的一個(gè)TCP連接, 發(fā)送給MAP中的會(huì)話管理模塊;
步驟509、MAP中的會(huì)話管理模塊通過所選定的TCP連接將該視頻點(diǎn)播請(qǐng)求轉(zhuǎn)發(fā)給該確定的視頻服務(wù)器處理;
步驟510、該確定的視頻服務(wù)器通過所選定的TCP連接返回點(diǎn)播視頻響應(yīng)給MAP中的會(huì)話管理模塊;
步驟511、MAP中的會(huì)話管理模塊通過與機(jī)頂盒之間的TCP連接返回點(diǎn)播視頻響應(yīng)。
從上述方案可以看出,在點(diǎn)播視頻系統(tǒng)中,本發(fā)明的接入實(shí)體與視頻服務(wù)器之間的TCP連接承載多個(gè)會(huì)話,有效節(jié)省了接入實(shí)體的有限TCP連接數(shù)量,提高了接入實(shí)體的并發(fā)會(huì)話處理數(shù)。本發(fā)明提供的斷開TCP連接機(jī)制,提高了點(diǎn)播視頻系統(tǒng)的穩(wěn)定性。本發(fā)明對(duì)于同一 TCP連接承載的會(huì)話,接收消息和發(fā)送消息采用不同的線程處理,提高消息的響應(yīng)效率,從而提高用戶的體驗(yàn)度。
由于提高了接入實(shí)體的并發(fā)會(huì)話處理數(shù),所以在相同數(shù)字電視接收終端的情況下,降低了使用的接入實(shí)體數(shù)量,降低了運(yùn)營(yíng)商采購成本,本發(fā)明提高了整個(gè)視頻點(diǎn)播系統(tǒng)的維護(hù)性,可以廣泛推廣。
以上舉較佳實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種視頻點(diǎn)播系統(tǒng)中處理會(huì)話的方法,其特征在于,接入實(shí)體設(shè)置連接池,該連接池中,與視頻服務(wù)器之間至少建立一個(gè)傳輸控制協(xié)議TCP連接,所述視頻服務(wù)器為至少一個(gè), 該方法包括接入實(shí)體接收數(shù)字電視接收終端發(fā)送的視頻點(diǎn)播請(qǐng)求,根據(jù)所述請(qǐng)求確定為該請(qǐng)求提供視頻服務(wù)的視頻服務(wù)器;在連接池中選擇與所確定視頻服務(wù)器之間的一個(gè)TCP連接,通過所選定的TCP連接將所述請(qǐng)求轉(zhuǎn)發(fā)給所確定視頻服務(wù)器。
2.如權(quán)利要求1所述的方法,其特征在于,所述選擇與所確定視頻服務(wù)器之間的一個(gè) TCP連接的過程為根據(jù)所確定視頻服務(wù)器標(biāo)識(shí),在連接池中找到具有相同的所述標(biāo)識(shí)的視頻服務(wù)器,從找到的視頻服務(wù)器與接入實(shí)體之間的多個(gè)TCP連接中選擇一個(gè)TCP連接使用,所述選擇的 TCP連接為當(dāng)前負(fù)載連接最輕的TCP連接。
3.如權(quán)利要求1所述的方法,其特征在于,所述將所述請(qǐng)求轉(zhuǎn)發(fā)給所確定視頻服務(wù)器之后,還包括接收所確定視頻服務(wù)器處理后返回的視頻點(diǎn)播響應(yīng),該響應(yīng)是通過所述所選定的TCP 連接發(fā)送給接入實(shí)體的;通過與所述數(shù)字電視接收終端建立的TCP連接,將接收到的視頻點(diǎn)播響應(yīng)發(fā)送給數(shù)字電視接收終端。
4.如權(quán)利要求1、2或3所述的方法,其特征在于,在所述在連接池中選擇與所確定視頻服務(wù)器之間的一個(gè)TCP連接之前,還包括判斷在連接池中是否存在與所確定視頻服務(wù)器之間的TCP連接,如果是,執(zhí)行在連接池中選擇與所確定視頻服務(wù)器之間的一個(gè)TCP連接的步驟;如果否,在連接池中與所確定視頻服務(wù)器之間建立至少一個(gè)TCP連接后,執(zhí)行在連接池中選擇與所確定視頻服務(wù)器之間的一個(gè)TCP連接的步驟。
5.如權(quán)利要求3所述的方法,其特征在于,所述通過所選定的TCP連接將所述請(qǐng)求轉(zhuǎn)發(fā)給所確定視頻服務(wù)器,及所述該響應(yīng)是通過所述所選定的TCP連接發(fā)送給接入實(shí)體的過程是對(duì)所述選定的TCP連接的套接字socket進(jìn)行會(huì)話交互數(shù)據(jù)的讀寫處理,處理過程為在接入實(shí)體上設(shè)置兩組線程,一組線程用于對(duì)該選定的TCP連接的socket進(jìn)行會(huì)話交互數(shù)據(jù)的讀處理,接收視頻點(diǎn)播請(qǐng)求回應(yīng);另一組線程用于對(duì)該選定的TCP連接的socket 進(jìn)行會(huì)話交互數(shù)據(jù)的寫處理,發(fā)送視頻點(diǎn)播請(qǐng)求。
6.如權(quán)利要求1、2或3所述的方法,其特征在于,該方法還包括接入實(shí)體定時(shí)檢測(cè)連接池中的建立的TCP連接,當(dāng)檢測(cè)到TCP連接異常時(shí)重新進(jìn)行連接,或者將異常的TCP連接所承載的會(huì)話遷移到連接池中的其他TCP連接上,所述其他TCP連接與所述異常的TCP連接所連接到的視頻服務(wù)器相同。
7.如權(quán)利要求6所述的方法,其特征在于,所述遷移到連接池中的其他TCP連接上的會(huì)話相關(guān)消息通過實(shí)時(shí)流傳輸協(xié)議RTSP的SETPARAMETER方法發(fā)送給與所述其他TCP連接的視頻服務(wù)器。
8.一種視頻點(diǎn)播系統(tǒng)中處理會(huì)話的接入實(shí)體,其特征在于,包括會(huì)話管理模塊、視頻服務(wù)器資源管理模塊和連接池,其中,所述會(huì)話管理模塊,用于接收數(shù)字電視接收終端發(fā)送的視頻點(diǎn)播請(qǐng)求,發(fā)送給視頻服務(wù)器資源管理模塊;根據(jù)視頻服務(wù)器資源管理模塊選擇的所確定視頻服務(wù)器,從連接池中獲取到與所確定視頻服務(wù)器之間的一個(gè)TCP連接,通過所選擇的TCP連接將視頻點(diǎn)播請(qǐng)求發(fā)送給所確定視頻服務(wù)器;所述視頻服務(wù)器資源管理模塊,用于根據(jù)會(huì)話管理模塊發(fā)送來的所述請(qǐng)求,確定為所述請(qǐng)求提供視頻服務(wù)的視頻服務(wù)器,通知會(huì)話管理模塊;所述連接池,用于與視頻服務(wù)器之間建立至少一個(gè)TCP連接,所述視頻服務(wù)器為至少一個(gè),選擇與所確定視頻服務(wù)器之間的一個(gè)TCP連接后,反饋給會(huì)話管理模塊。
9.如權(quán)利要求8所述的接入實(shí)體,其特征在于,所述會(huì)話管理模塊,還用于建立與所述數(shù)字電視接收終端之間的TCP連接,從所述所確定視頻服務(wù)器接收到通過所選擇的TCP連接發(fā)送的視頻點(diǎn)播響應(yīng)后,通過所建立的與數(shù)字電視接收終端之間的TCP連接,將該視頻點(diǎn)播響應(yīng)轉(zhuǎn)發(fā)給所述數(shù)字電視接收終端。
10.如權(quán)利要求8或9所述的接入實(shí)體,其特征在于,所述連接池包括初始化模塊、視頻服務(wù)器連接建立和銷毀模塊及socket資源管理模塊,其中,所述初始化模塊,用于啟動(dòng)連接池運(yùn)行所需要的資源,包括管理連接池的線程啟動(dòng)及連接池的資源申請(qǐng);所述視頻服務(wù)器連接建立和銷毀模塊,用于在socket資源管理模塊的指示下建立和銷毀與視頻服務(wù)器之間的至少一個(gè)TCP連接,存儲(chǔ)在socket資源管理模塊中的緩沖池;所述socket資源管理模塊,用于從緩沖池中選擇與所確定視頻服務(wù)器之間的一個(gè)的 TCP連接,如果選擇到,檢測(cè)是否可用,如果可用,反饋給會(huì)話管理模塊;如果不可用或沒有選擇到,指示視頻服務(wù)器連接建立和銷毀模塊建立與所確定視頻服務(wù)器之間的TCP連接。
11.如權(quán)利要求10所述的接入實(shí)體,其特征在于,所述連接池線程定時(shí)檢測(cè)視頻服務(wù)器資源,該視頻服務(wù)器資源由所述視頻服務(wù)器資源管理模塊管理,當(dāng)檢測(cè)到有新的視頻服務(wù)器注冊(cè)到接入實(shí)體時(shí),建立與該視頻服務(wù)器之間的TCP連接,將該連接放置到緩沖池中,由所述socket資源管理模塊處理;當(dāng)檢測(cè)到有視頻服務(wù)器注銷時(shí),刪除緩沖池中接入實(shí)體與注銷的視頻服務(wù)器之間的所有TCP連接。
12.如權(quán)利要求10所述的接入實(shí)體,其特征在于,所述socket資源管理模塊定期檢測(cè)緩沖池中所有的TCP連接狀態(tài),當(dāng)所檢測(cè)的TCP連接所承載的會(huì)話數(shù)為0或出現(xiàn)異常,指示視頻服務(wù)器連接建立和銷毀模塊斷開該TCP連接。
13.如權(quán)利要求10所述的接入實(shí)體,其特征在于,所述會(huì)話管理模塊,還用于設(shè)置兩組線程,一組線程用于對(duì)從socket資源管理模塊中的緩沖池選定的TCP連接的socket進(jìn)行會(huì)話交互數(shù)據(jù)的讀處理,接收視頻點(diǎn)播請(qǐng)求回應(yīng);另一組線程用于對(duì)從socket資源管理模塊中的緩沖池選定的TCP連接的socket進(jìn)行會(huì)話交互數(shù)據(jù)的寫處理,發(fā)送視頻點(diǎn)播請(qǐng)求。
14.如權(quán)利要求8所述的接入實(shí)體,其特征在于,該接入實(shí)體還包括IPQAM資源管理模塊,用于當(dāng)所述會(huì)話管理模塊與數(shù)字電視接收終端之間建立以TCP連接的會(huì)話后,從IP QAM資源管理模塊中申請(qǐng)IP QAM資源,為數(shù)字電視接收終端請(qǐng)求的視頻點(diǎn)播申請(qǐng)IP QAM資源。
全文摘要
本發(fā)明公開了一種視頻點(diǎn)播系統(tǒng)中處理會(huì)話的接入實(shí)體及方法,在視頻點(diǎn)播系統(tǒng)的接入實(shí)體設(shè)置連接池,在該連接池中,與視頻服務(wù)器之間建立至少一個(gè)TCP連接,所述視頻服務(wù)器為至少一個(gè)。當(dāng)接收到數(shù)字電視接收終端的視頻點(diǎn)播時(shí),從該連接池中選擇與所確定提供視頻服務(wù)的視頻服務(wù)器之間的其中一個(gè)TCP連接進(jìn)行會(huì)話交互。采用可靠的傳輸層協(xié)議,保證了點(diǎn)播視頻的穩(wěn)定性。由于預(yù)先建立的TCP連接并不是針對(duì)每一個(gè)會(huì)話建立,所以該TCP連接可以在不同的時(shí)間段處理不同的會(huì)話,使得多個(gè)會(huì)話可以共用一個(gè)TCP連接,增大了接入實(shí)體所支持的最大會(huì)話數(shù),從而提高視頻點(diǎn)播系統(tǒng)中的接入實(shí)體的并行處理會(huì)話能力。
文檔編號(hào)H04N21/643GK102523531SQ20111040549
公開日2012年6月27日 申請(qǐng)日期2011年12月8日 優(yōu)先權(quán)日2011年12月8日
發(fā)明者華海亮, 徐小龍 申請(qǐng)人:深圳市同洲視訊傳媒有限公司