本發(fā)明涉及安防領(lǐng)域,具體地說,涉及一種獲取、提供視頻資源的方法、客戶端和服務(wù)器。
背景技術(shù):
客戶端是安防領(lǐng)域的重要應(yīng)用程序。對(duì)于安裝有監(jiān)控設(shè)備的區(qū)域,可以通過客戶端進(jìn)行視頻巡邏、錄像回放等操作獲得監(jiān)控信息??蛻舳艘蕾嚪?wù)端數(shù)據(jù),但受到網(wǎng)絡(luò)狀態(tài)的影響,網(wǎng)絡(luò)通用資源標(biāo)識(shí)符(URI,Universal Resources Identifier)可用時(shí)能夠順暢的運(yùn)行;當(dāng)網(wǎng)絡(luò)URI不可用時(shí),客戶端的部分功能會(huì)受影響,甚至無法使用。
現(xiàn)有技術(shù)中出現(xiàn)了離線運(yùn)行數(shù)據(jù)的方案。在申請(qǐng)?zhí)枮?01110378887.4的專利申請(qǐng)文件中公開了一種離線運(yùn)行微件的方法及客戶端,可在URI不可用環(huán)境下運(yùn)行客戶端。但是僅支持小數(shù)據(jù)量的視頻資源,并未提供大數(shù)據(jù)量的檢索方案,對(duì)于500000級(jí)別的大數(shù)據(jù)檢索存在明顯的運(yùn)行緩慢問題。此外,該申請(qǐng)中的離線資源是根據(jù)URI來獲取,但只進(jìn)行了全量加載,在大數(shù)據(jù)背景下導(dǎo)致加載效率較低。
隨著安防行業(yè)的發(fā)展,監(jiān)控系統(tǒng)需要管理的設(shè)備越來越多,需要處理的數(shù)據(jù)量急劇增長(zhǎng),因此需要在大數(shù)據(jù)環(huán)境下提供一種高效可靠的獲取、提供視頻資源的方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是克服現(xiàn)有視頻監(jiān)控系統(tǒng)中存在的在客戶端加載視頻資源時(shí)效率較低的技術(shù)缺陷。
為此,本發(fā)明提供一種獲取視頻資源的方法,應(yīng)用于視頻監(jiān)控系統(tǒng),包括以下步驟:
檢測(cè)客戶端與服務(wù)器之間的網(wǎng)絡(luò)狀態(tài);
在網(wǎng)絡(luò)有效的狀態(tài)下,基于用戶操作請(qǐng)求獲取實(shí)時(shí)顯示的用戶界面數(shù)據(jù)來展示視頻資源,同時(shí)在后臺(tái)采用增量加載的方式在線獲取用于備份的資源數(shù)據(jù)并更新本地索引;
在網(wǎng)絡(luò)失效的狀態(tài)下,基于用戶操作請(qǐng)求從本地索引中檢索用戶界面數(shù)據(jù)來展示視頻資源。
在一個(gè)實(shí)施例中,在網(wǎng)絡(luò)有效的狀態(tài)下,基于用戶操作請(qǐng)求獲取實(shí)時(shí)顯示的用戶界面數(shù)據(jù)的步驟包括:
下載視頻資源組織樹的第一層級(jí)樹節(jié)點(diǎn),渲染初次展示的用戶界面;
發(fā)送組織查詢指令,所述組織查詢指令用于查詢當(dāng)前父節(jié)點(diǎn)的下一層級(jí)子節(jié)點(diǎn)資源;
接收并展示用戶所請(qǐng)求的子節(jié)點(diǎn)資源。
在一個(gè)實(shí)施例中,在網(wǎng)絡(luò)有效的狀態(tài)下,基于用戶操作請(qǐng)求獲取實(shí)時(shí)顯示的用戶界面數(shù)據(jù)的步驟包括:
發(fā)送資源檢索指令,所述資源檢索指令用于檢索視頻資源;
接收并展示與資源檢索指令匹配的視頻資源。
在一個(gè)實(shí)施例中,在后臺(tái)采用增量加載的方式在線獲取用于備份的資源數(shù)據(jù)并更新本地索引的步驟包括:
基于用戶權(quán)限和本地緩存數(shù)據(jù)的狀態(tài)下載用戶權(quán)限下的全部資源數(shù)據(jù);
接收服務(wù)器生成的時(shí)間戳,所述時(shí)間戳表示下載資源數(shù)據(jù)的最新時(shí)間;
請(qǐng)求從本地時(shí)間戳到當(dāng)前時(shí)間之間資源數(shù)據(jù)的增量,更新時(shí)間戳;
對(duì)本地資源數(shù)據(jù)進(jìn)行預(yù)處理并更新本地索引。
在一個(gè)實(shí)施例中,所述對(duì)本地資源數(shù)據(jù)進(jìn)行預(yù)處理的步驟包括:
對(duì)本地?cái)?shù)據(jù)資源中的字段進(jìn)行拆分建立元詞匯表;
根據(jù)元詞匯表創(chuàng)建或者更新本地索引。
在一個(gè)實(shí)施例中,在網(wǎng)絡(luò)失效的狀態(tài)下,基于用戶操作請(qǐng)求從本地索引中檢索用戶界面數(shù)據(jù)來展示視頻資源的步驟包括:
從本地索引中查詢視頻資源組織樹的第一層級(jí)樹節(jié)點(diǎn),渲染初次展示的用戶界面;
根據(jù)組織查詢指令在本地索引中查詢當(dāng)前父節(jié)點(diǎn)的下一層級(jí)子節(jié)點(diǎn)資源;
展示用戶所請(qǐng)求的子節(jié)點(diǎn)資源。
在一個(gè)實(shí)施例中,在網(wǎng)絡(luò)失效的狀態(tài)下,基于用戶操作請(qǐng)求從本地索引中檢索用戶界面數(shù)據(jù)來展示視頻資源的步驟包括:
對(duì)資源檢索指令中的關(guān)鍵字進(jìn)行拆分;
將拆分的關(guān)鍵字在所述元詞匯表中進(jìn)行匹配,得到符合資源檢索指令的元詞匯;
基于符合資源檢索指令的元詞匯在本地索引中檢索用戶界面數(shù)據(jù)。
根據(jù)本發(fā)明的另一方面,還提供一種提供視頻資源的方法,應(yīng)用于視頻監(jiān)控系統(tǒng),包括以下步驟:
在客戶端與服務(wù)器之間的網(wǎng)絡(luò)為有效的狀態(tài)下,基于用戶操作請(qǐng)求提供實(shí)時(shí)顯示的用戶界面數(shù)據(jù),同時(shí)采用增量加載的方式在線提供用于備份的資源數(shù)據(jù)。
在一個(gè)實(shí)施例中,基于用戶操作請(qǐng)求實(shí)時(shí)提供實(shí)時(shí)顯示的用戶界面數(shù)據(jù)的步驟包括:
提供視頻資源組織樹的第一層級(jí)樹節(jié)點(diǎn),用于渲染初次展示的用戶界面;
接收組織查詢指令,所述組織查詢指令用于查詢當(dāng)前父節(jié)點(diǎn)的下一層級(jí)子節(jié)點(diǎn)資源;
發(fā)送用戶所請(qǐng)求的子節(jié)點(diǎn)資源。
在一個(gè)實(shí)施例中,基于用戶操作請(qǐng)求提供實(shí)時(shí)顯示的用戶界面數(shù)據(jù)的步驟包括:
接收資源檢索指令,所述資源檢索指令用于檢索視頻資源;
在全部資源數(shù)據(jù)中檢索視頻資源;
發(fā)送與資源檢索指令匹配的視頻資源。
在一個(gè)實(shí)施例中,采用增量加載的方式在線提供用于備份的資源數(shù)據(jù)的步驟包括:
基于用戶權(quán)限和本地緩存數(shù)據(jù)的狀態(tài)發(fā)送用戶權(quán)限下的全部資源數(shù)據(jù);
生成并發(fā)送時(shí)間戳,所述時(shí)間戳表示下載資源數(shù)據(jù)的最新時(shí)間;
提供從本地時(shí)間戳到當(dāng)前時(shí)間之間資源數(shù)據(jù)的增量。
在一個(gè)實(shí)施例中,在所述基于用戶操作請(qǐng)求實(shí)時(shí)提供實(shí)時(shí)顯示的用戶界面數(shù)據(jù)的步驟之前還包括:
對(duì)全部資源數(shù)據(jù)進(jìn)行預(yù)處理,其中,對(duì)全部資源數(shù)據(jù)中的字段進(jìn)行拆分建立元詞匯表,根據(jù)元詞匯表創(chuàng)建或者更新全局索引。
在一個(gè)實(shí)施例中,所述在全部資源數(shù)據(jù)中檢索視頻資源的步驟包括:
對(duì)資源檢索指令中的關(guān)鍵字進(jìn)行拆分;
將拆分的關(guān)鍵字在所述元詞匯表中進(jìn)行匹配,得到符合資源檢索指令的元詞匯;
基于符合資源檢索指令的元詞匯在全局索引中檢索用戶界面數(shù)據(jù)。
根據(jù)本發(fā)明的另一方面,還提供一種客戶端,應(yīng)用于視頻監(jiān)控系統(tǒng),包括:
檢測(cè)單元,用于檢測(cè)客戶端與服務(wù)器之間的網(wǎng)絡(luò)狀態(tài);
第一數(shù)據(jù)獲取單元,其包括實(shí)時(shí)獲取模塊和備份數(shù)據(jù)下載模塊,在網(wǎng)絡(luò)有效的狀態(tài)下,所述實(shí)時(shí)數(shù)據(jù)獲取模塊基于用戶操作請(qǐng)求獲取實(shí)時(shí)顯示的用戶界面數(shù)據(jù)來展示視頻資源,所述備份數(shù)據(jù)下載模塊在后臺(tái)采用增量加載的方式在線獲取用于備份的資源數(shù)據(jù)并更新本地索引;
第二數(shù)據(jù)獲取單元,用于在網(wǎng)絡(luò)失效的狀態(tài)下,基于用戶操作請(qǐng)求從本地索引中檢索用戶界面數(shù)據(jù)來展示視頻資源。
根據(jù)本發(fā)明的另一方面,還提供一種服務(wù)器,應(yīng)用于視頻監(jiān)控系統(tǒng),包括實(shí)時(shí)數(shù)據(jù)提供模塊和備份數(shù)據(jù)提供模塊,其中,
在客戶端與服務(wù)器之間的網(wǎng)絡(luò)為有效的狀態(tài)下,所述實(shí)時(shí)數(shù)據(jù)提供模塊基于用戶操作請(qǐng)求提供實(shí)時(shí)顯示的用戶界面數(shù)據(jù),所述備份數(shù)據(jù)提供模塊采用增量加載的方式在線提供用于備份的資源數(shù)據(jù)。
與現(xiàn)有技術(shù)相比,本發(fā)明的實(shí)施例具有以下有益效果。
1、本發(fā)明的實(shí)施例通過預(yù)處理數(shù)據(jù),根據(jù)拆分的詞/短語表創(chuàng)建索引,再對(duì)檢索的關(guān)鍵字拆分,與詞/短語表進(jìn)行匹配,最后從索引中查找的方式檢索,大大提高了檢索的效率,能夠支撐更大數(shù)據(jù)規(guī)模的應(yīng)用。
2、本發(fā)明的實(shí)施例采用時(shí)間戳對(duì)比增量更新數(shù)據(jù)的方式,不必根據(jù)URI網(wǎng)絡(luò)全量更新數(shù)據(jù),可以減少數(shù)據(jù)傳輸,能夠縮短數(shù)據(jù)更新時(shí)間,從而提高數(shù)據(jù)更新效率。
3、本發(fā)明的實(shí)施例根據(jù)用戶的需要分級(jí)異步加載數(shù)據(jù),展示的數(shù)據(jù)遠(yuǎn)遠(yuǎn)少于同步展示的數(shù)據(jù)量,能夠提高界面渲染的效率。
4、本發(fā)明的實(shí)施例采用實(shí)時(shí)檢索和本地資源緩存的方式,并使其分別在前后臺(tái)并發(fā)運(yùn)行,前者保證了界面同步任務(wù)的實(shí)時(shí)性,后者確保了可用性和效率。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書 中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖說明
附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實(shí)施例共同用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
圖1a是根據(jù)本發(fā)明實(shí)施例一的在線獲取視頻資源的原理圖;
圖1b是根據(jù)本發(fā)明實(shí)施例一的離線獲取視頻資源的原理圖;
圖2是根據(jù)本發(fā)明實(shí)施例一的在線時(shí)客戶端獲取用戶界面數(shù)據(jù)的步驟流程圖;
圖3是根據(jù)本發(fā)明實(shí)施例一的在線時(shí)客戶端本地索引更新的步驟流程圖;
圖4是根據(jù)本發(fā)明實(shí)施例一的服務(wù)器或者客戶端進(jìn)行數(shù)據(jù)預(yù)處理的步驟流程圖;
圖5是本發(fā)明實(shí)施例一的離線時(shí)客戶端獲取用戶界面數(shù)據(jù)的步驟流程圖;
圖6是根據(jù)本發(fā)明實(shí)施例一的服務(wù)器或者客戶端進(jìn)行資源檢索的步驟流程圖;
圖7是根據(jù)本發(fā)明實(shí)施例一的在線時(shí)服務(wù)器提供用戶界面數(shù)據(jù)的步驟流程圖;
圖8是根據(jù)本發(fā)明實(shí)施例一的在線時(shí)服務(wù)器提供本地索引的步驟流程圖;
圖9是根據(jù)本發(fā)明實(shí)施例二的客戶端的結(jié)構(gòu)示意圖;
圖10a是根據(jù)本發(fā)明實(shí)施例二的實(shí)時(shí)數(shù)據(jù)獲取模塊的結(jié)構(gòu)示意圖;
圖10b是根據(jù)本發(fā)明實(shí)施例二的備份數(shù)據(jù)下載模塊的結(jié)構(gòu)示意圖;
圖11是根據(jù)本發(fā)明實(shí)施例二的第二數(shù)據(jù)獲取單元的結(jié)構(gòu)示意圖;
圖12是根據(jù)本發(fā)明實(shí)施例二的客戶端的結(jié)構(gòu)示意圖;
圖13a是根據(jù)本發(fā)明實(shí)施例二的實(shí)時(shí)數(shù)據(jù)提供模塊的結(jié)構(gòu)示意圖;
圖13b是根據(jù)本發(fā)明實(shí)施例二的備份數(shù)據(jù)提供模塊的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,以下結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)說明。
實(shí)施例一
本發(fā)明的實(shí)施例提供一種在大數(shù)據(jù)背景下的視頻監(jiān)控系統(tǒng)中高效獲取、提供視頻資源的方法。在大數(shù)據(jù)量的視頻監(jiān)控系統(tǒng)包括客戶端和服務(wù)器,根據(jù)客戶端和服務(wù)器之間的網(wǎng)絡(luò)狀態(tài)是否有效,客戶端可自動(dòng)判斷采用在線獲取和離線獲取方式加載視頻資源數(shù)據(jù)。
如圖1a所示,在網(wǎng)絡(luò)狀態(tài)有效時(shí)客戶端并行執(zhí)行用戶界面獲取和本地索引更新兩個(gè)流程。其中,用戶界面數(shù)據(jù)獲取流程是當(dāng)用戶在操作客戶端時(shí),獲取需要實(shí)時(shí)展示的數(shù)據(jù)的過程;本地索引更新流程指客戶端加載用戶有權(quán)限的所有數(shù)據(jù)的過程,該任務(wù)在客戶端后臺(tái)執(zhí)行,不影響用戶體驗(yàn)。
用戶界面數(shù)據(jù)獲取流程用于小數(shù)據(jù)量的加載,偏重適于實(shí)時(shí)性,適合于用戶界面數(shù)據(jù)獲取。本地索引更新流程用于大數(shù)據(jù)量(全量設(shè)備數(shù)據(jù)),使用后臺(tái)加載,當(dāng)用戶實(shí)時(shí)操作時(shí),不會(huì)對(duì)流暢性造成影響。
如圖1b所示,在網(wǎng)絡(luò)狀態(tài)失效時(shí)客戶端將會(huì)使用之前在本地索引更新流程中存儲(chǔ)到本地的索引執(zhí)行用戶界面獲取流程。
用戶登錄后首先檢測(cè)客戶端與服務(wù)器之間的網(wǎng)絡(luò)狀態(tài)?,F(xiàn)有技術(shù)中存在各種判斷網(wǎng)絡(luò)狀態(tài)有效與失效的方法,對(duì)于無線連接可利用網(wǎng)絡(luò)信號(hào)強(qiáng)度來判斷,而對(duì)于有線網(wǎng)絡(luò)還可測(cè)試帶寬等參數(shù)。在一個(gè)優(yōu)選示例中,若網(wǎng)絡(luò)URI不可用則判定網(wǎng)絡(luò)狀態(tài)為失效。
以下對(duì)在線時(shí)客戶端獲取視頻資源的方法進(jìn)行詳細(xì)說明。在網(wǎng)絡(luò)有效的狀態(tài)下,客戶端基于用戶操作請(qǐng)求獲取實(shí)時(shí)顯示的用戶界面數(shù)據(jù)來展示視頻資源,同時(shí)在后臺(tái)采用增量加載的方式在線獲取用于備份的資源數(shù)據(jù)并更新本地索引。其中,用于備份的資源數(shù)據(jù)最大為視頻監(jiān)控系統(tǒng)中的全局?jǐn)?shù)據(jù)。
下文所述的“資源”是指安防領(lǐng)域的設(shè)備,包括但不限于攝像機(jī),報(bào)警器,卡口設(shè)備等。“組織樹”是指用樹型結(jié)構(gòu)來管理和組織資源。
圖2顯示了在線時(shí)獲取用戶界面數(shù)據(jù)的流程圖。為了確保用戶界面僅需加載少量數(shù)據(jù)即可確保流暢使用,本實(shí)施例采用了分級(jí)異步加載的辦法。具體來說,用戶登錄客戶端,根據(jù)組織樹的展示順序,客戶端同步下載視頻資源組織樹的第一層級(jí)樹節(jié)點(diǎn)(步驟S201),渲染初次展示的最小數(shù)據(jù)量的用戶界面(步驟S202)。用戶展開組織樹節(jié)點(diǎn),客戶端發(fā)送組織查詢指令(步驟S203),所述組織查詢指令用于查詢當(dāng)前父節(jié)點(diǎn)的下一層級(jí)子節(jié)點(diǎn)資源??蛻舳苏{(diào)用服務(wù)器遠(yuǎn)程接口進(jìn)行 組織查詢(步驟S204),接收并展示用戶所請(qǐng)求的子節(jié)點(diǎn)資源(步驟S205)。
這樣以來,在用戶登錄之后客戶端渲染組織樹,只向服務(wù)器請(qǐng)求第一層級(jí)樹節(jié)點(diǎn)。在用戶展開父節(jié)點(diǎn)時(shí)再請(qǐng)求子節(jié)點(diǎn)數(shù)據(jù)。采用該方式后,在滿足展示需求基礎(chǔ)上可有效減少每次傳輸數(shù)據(jù)量。
此外,在步驟S203中用戶可檢索組織樹中的資源。為了在大量設(shè)備數(shù)據(jù)中快速定位到每層樹節(jié)點(diǎn)的數(shù)據(jù),服務(wù)器端需先對(duì)數(shù)據(jù)進(jìn)行預(yù)處理來創(chuàng)建索引,提高檢索的實(shí)時(shí)性。在進(jìn)行資源檢索時(shí),客戶端發(fā)送資源檢索指令(步驟S203),所述資源檢索指令用于檢索視頻資源??蛻舳苏{(diào)用服務(wù)器遠(yuǎn)程接口進(jìn)行資源檢索(步驟S204),接收并展示與資源檢索指令匹配的視頻資源(步驟S205)。
圖3顯示了在線時(shí)本地索引更新的流程圖??蛻舳瞬捎卯惒椒绞綇姆?wù)器加載所有有權(quán)限的組織和資源數(shù)據(jù),并從服務(wù)器得到該次加載任務(wù)最后一條的時(shí)間戳。對(duì)于二次登錄的客戶端采用本地時(shí)間戳和服務(wù)器時(shí)間進(jìn)行比對(duì),加載這一時(shí)間段變動(dòng)的組織和資源的方式,進(jìn)行增量加載。
如圖3所示,首先基于用戶權(quán)限和本地緩存數(shù)據(jù)的狀態(tài)從服務(wù)器下載用戶權(quán)限下的全部資源數(shù)據(jù)。在一個(gè)優(yōu)選的示例中,本地緩存數(shù)據(jù)的狀態(tài)包括是否存在本地緩存數(shù)據(jù),以及本地緩存數(shù)據(jù)是否過期。具體地,判斷用戶權(quán)限是否有變化(步驟S301),若有變化則異步下載用戶權(quán)限下的全部資源數(shù)據(jù)(步驟S302),并接收服務(wù)器生成的一個(gè)時(shí)間戳,所述時(shí)間戳表示客戶端下載資源數(shù)據(jù)的最新時(shí)間。若用戶權(quán)限沒有變化,則進(jìn)一步判斷是否存在本地緩存數(shù)據(jù)(步驟S303)。若不存在本地緩存數(shù)據(jù)則執(zhí)行異步下載步驟(步驟S302),若存在本地緩存數(shù)據(jù)則判斷時(shí)間戳是否過期(步驟S304),若已過期則執(zhí)行異步下載步驟(步驟S302),若未過期則向服務(wù)器請(qǐng)求從本地時(shí)間戳到當(dāng)前時(shí)間之間資源數(shù)據(jù)的增量,更新時(shí)間戳(步驟S305)。至此為止,客戶端已下載所有有權(quán)限的組織和資源數(shù)據(jù),可用于在離線情況下提供用戶界面數(shù)據(jù)。
客戶端在獲得組織和資源數(shù)據(jù)后,對(duì)本地資源數(shù)據(jù)進(jìn)行預(yù)處理并更新本地索引(步驟S306),完成與服務(wù)器的數(shù)據(jù)同步。需要說明的是,與現(xiàn)有的采用關(guān)鍵字到數(shù)據(jù)庫進(jìn)行遍歷查詢的方式不同,為了針對(duì)大數(shù)據(jù)量提供高效的檢索機(jī)制,本實(shí)施例提供一種根據(jù)元詞匯表創(chuàng)建索引的預(yù)處理方式。
如圖4所示,客戶端對(duì)本地?cái)?shù)據(jù)資源中的字段進(jìn)行拆分建立元詞匯表(步驟S401),根據(jù)元詞匯表創(chuàng)建或者更新本地索引(步驟S402),完成數(shù)據(jù)預(yù)處理。 其中,元詞匯是指對(duì)大數(shù)據(jù)中的字段進(jìn)行拆分得到的詞(短語)表。
圖5顯示了離線時(shí)獲取用戶界面數(shù)據(jù)的流程圖。由于客戶端在在線時(shí)已經(jīng)對(duì)本地資源數(shù)據(jù)進(jìn)行了同步并完成預(yù)處理,在離線時(shí)客戶端同樣可展示組織和搜索資源,達(dá)到和網(wǎng)絡(luò)URI可用相同的展示效果。具體來說,用戶登錄客戶端,根據(jù)組織樹的展示順序,客戶端向本地資源數(shù)據(jù)請(qǐng)求視頻資源組織樹的第一層級(jí)樹節(jié)點(diǎn)(步驟S501),渲染初次展示的最小數(shù)據(jù)量的用戶界面(步驟S502)。用戶展開組織樹節(jié)點(diǎn)(步驟S503),在已經(jīng)完成預(yù)處理的本地資源數(shù)據(jù)中進(jìn)行組織查詢(步驟S504),展示用戶所請(qǐng)求的子節(jié)點(diǎn)資源(步驟S505)。
此外,在步驟S503中用戶可檢索組織樹中的資源。在進(jìn)行資源檢索時(shí),客戶端發(fā)送資源檢索指令(步驟S503),所述資源檢索指令用于檢索視頻資源??蛻舳嗽谝呀?jīng)完成預(yù)處理的本地資源數(shù)據(jù)中進(jìn)行資源檢索(步驟S504),展示與資源檢索指令匹配的視頻資源(步驟S505)。
圖6所示為客戶端進(jìn)行資源檢索的步驟流程圖。首先對(duì)客戶端本地輸入的資源檢索指令中的關(guān)鍵字進(jìn)行拆分(步驟S601)。將拆分的關(guān)鍵字在所述元詞匯表中進(jìn)行匹配,得到符合資源檢索指令的元詞匯(步驟S602)?;诜腺Y源檢索指令的元詞匯在本地索引中檢索用戶界面數(shù)據(jù)(步驟S603),完成對(duì)本地資源數(shù)據(jù)的檢索。其中,元詞匯是指對(duì)大數(shù)據(jù)中的字段進(jìn)行拆分得到的詞(短語)表。
以下對(duì)網(wǎng)絡(luò)有效的狀態(tài)下服務(wù)器提供視頻資源的方法進(jìn)行說明。
在客戶端與服務(wù)器之間的網(wǎng)絡(luò)為有效的狀態(tài)下,服務(wù)器端基于用戶操作請(qǐng)求提供實(shí)時(shí)顯示的用戶界面數(shù)據(jù),同時(shí)采用增量加載的方式在線提供用于備份的資源數(shù)據(jù)。
為了在大量設(shè)備數(shù)據(jù)中快速完成檢索,服務(wù)器端需先對(duì)數(shù)據(jù)進(jìn)行預(yù)處理來創(chuàng)建索引,提高檢索的實(shí)時(shí)性。服務(wù)器進(jìn)行的數(shù)據(jù)預(yù)處理過程與圖4所示的客戶端的預(yù)處理過程類似,不同之處僅在于服務(wù)器對(duì)全部資源數(shù)據(jù)進(jìn)行預(yù)處理,其中,對(duì)全部資源數(shù)據(jù)中的字段進(jìn)行拆分建立元詞匯表,根據(jù)元詞匯表創(chuàng)建或者更新全局索引。
以下通過一個(gè)示例說明數(shù)據(jù)預(yù)處理和匹配檢索的過程。數(shù)據(jù)資源中的一個(gè)字段為“長(zhǎng)河路濱河路口”,在預(yù)處理過程中,將該字段拆分為長(zhǎng)、河、路、濱、口、長(zhǎng)河、濱河、路口、河路、路濱這些元詞匯,并對(duì)元詞匯表創(chuàng)建或者更新本地索引。
當(dāng)用戶輸入檢索關(guān)鍵字“濱河路口”時(shí),將檢索關(guān)鍵字拆分為河、路、濱、口、濱河、路口,在元詞匯表中進(jìn)行匹配,根據(jù)匹配成功的詞(短語)從索引中查找。
現(xiàn)有的檢索方式通常是采用關(guān)鍵字到數(shù)據(jù)庫進(jìn)行遍歷查詢,對(duì)于大量數(shù)據(jù)檢索效率較低。本實(shí)施例中的方法可以大大提高檢索的效率,能夠支撐更大數(shù)據(jù)規(guī)模的應(yīng)用。
如圖7所示,本實(shí)施例服務(wù)器采用了分級(jí)異步加載的辦法為客戶端提供用戶界面數(shù)據(jù)的步驟流程圖。具體來說,根據(jù)組織樹的展示順序,服務(wù)器同步提供視頻資源組織樹的第一層級(jí)樹節(jié)點(diǎn)(步驟S701),用于在客戶端渲染初次展示的最小數(shù)據(jù)量的用戶界面。接收客戶端發(fā)送的組織查詢指令(步驟S702),所述組織查詢指令用于查詢當(dāng)前父節(jié)點(diǎn)的下一層級(jí)子節(jié)點(diǎn)資源。發(fā)送用戶所請(qǐng)求的子節(jié)點(diǎn)資源(步驟S703)。
這樣以來在用戶登錄之后,服務(wù)器僅提供第一層級(jí)樹節(jié)點(diǎn),在用戶展開父節(jié)點(diǎn)時(shí)再請(qǐng)求子節(jié)點(diǎn)數(shù)據(jù)。采用該方式后可在滿足展示需求基礎(chǔ)上可有效減少每次傳輸數(shù)據(jù)量。
此外,在步驟S702中服務(wù)器可根據(jù)客戶端的資源檢索指令來檢索組織樹中的資源。在進(jìn)行資源檢索時(shí),服務(wù)器接收資源檢索指令(步驟S702),所述資源檢索指令用于檢索視頻資源。在全部資源數(shù)據(jù)中檢索視頻資源,發(fā)送與資源檢索指令匹配的視頻資源(步驟S703)。其中,在已完成預(yù)處理的全部資源數(shù)據(jù)中檢索視頻資源的步驟與圖6所示的客戶端的檢索過程類似。區(qū)別僅在于,對(duì)資源檢索指令中的關(guān)鍵字進(jìn)行拆分,將拆分的關(guān)鍵字在所述元詞匯表中進(jìn)行匹配,得到符合資源檢索指令的元詞匯,基于符合資源檢索指令的元詞匯在全局索引中檢索用戶界面數(shù)據(jù)。
以下對(duì)服務(wù)器采用增量加載的方式在線提供大數(shù)據(jù)量的資源數(shù)據(jù)的步驟進(jìn)行說明。如圖8所示,基于用戶權(quán)限和本地緩存數(shù)據(jù)的狀態(tài)發(fā)送用戶權(quán)限下的全部資源數(shù)據(jù)(步驟S801),生成并發(fā)送時(shí)間戳(步驟S802),所述時(shí)間戳表示客戶端下載資源數(shù)據(jù)的最新時(shí)間,提供從本地時(shí)間戳到當(dāng)前時(shí)間之間資源數(shù)據(jù)的增量(步驟S803)。如此以來,采用時(shí)間戳實(shí)現(xiàn)增量更新,所更新的數(shù)據(jù)量小于全量更新的數(shù)據(jù),且能夠同步變動(dòng)的數(shù)據(jù),其效率高于根據(jù)URI進(jìn)行全量加載。提高了更新的效率,縮短了更新時(shí)間。
本實(shí)施例合理地組合了實(shí)時(shí)檢索和本地資源緩存兩種方式,并使其分別在前后臺(tái)并發(fā)運(yùn)行。前者保證了界面同步任務(wù)的實(shí)時(shí)性,后者確保了可用性和效率。本實(shí)施例中對(duì)所需數(shù)據(jù)進(jìn)行分類,用于界面初次展示的最小數(shù)據(jù)(如組織樹第一層樹節(jié)點(diǎn))采用同步加載方式,對(duì)于用于網(wǎng)絡(luò)URI不可用時(shí)使用的本地?cái)?shù)據(jù)采用異步方式加載,可做到不影響用戶的正常使用,合理經(jīng)濟(jì)的加載數(shù)據(jù)。
實(shí)施例二
本發(fā)明的實(shí)施例提供一種客戶端,應(yīng)用于視頻監(jiān)控系統(tǒng)。如圖9所示,該客戶端主要包括檢測(cè)單元91、第一數(shù)據(jù)獲取單元92和第二數(shù)據(jù)獲取單元93。其中,第一數(shù)據(jù)獲取單元92包括實(shí)時(shí)數(shù)據(jù)獲取模塊921和備份數(shù)據(jù)下載模塊922。
檢測(cè)單元91用于檢測(cè)客戶端與服務(wù)器之間的網(wǎng)絡(luò)狀態(tài),其分別與第一數(shù)據(jù)獲取單元92和第二數(shù)據(jù)獲取單元93連接。在網(wǎng)絡(luò)有效的狀態(tài)下,實(shí)時(shí)數(shù)據(jù)獲取模塊921基于用戶操作請(qǐng)求獲取實(shí)時(shí)顯示的用戶界面數(shù)據(jù)來展示視頻資源,備份數(shù)據(jù)下載模塊922在后臺(tái)采用增量加載的方式在線獲取用于備份的資源數(shù)據(jù)并更新本地索引。在網(wǎng)絡(luò)失效的狀態(tài)下,第二數(shù)據(jù)獲取單元93基于用戶操作請(qǐng)求從本地索引中檢索用戶界面數(shù)據(jù)來展示視頻資源。
圖10a為實(shí)時(shí)數(shù)據(jù)獲取模塊921的結(jié)構(gòu)示意圖。實(shí)時(shí)數(shù)據(jù)獲取模塊921包括首層節(jié)點(diǎn)實(shí)時(shí)下載子模塊101、組織查詢指令發(fā)送子模塊102和子節(jié)點(diǎn)實(shí)時(shí)展示子模塊103。其中,首層節(jié)點(diǎn)實(shí)時(shí)下載子模塊101用于下載視頻資源組織樹的第一層級(jí)樹節(jié)點(diǎn),渲染初次展示的用戶界面。組織查詢指令發(fā)送子模塊102用于發(fā)送組織查詢指令,所述組織查詢指令用于查詢當(dāng)前父節(jié)點(diǎn)的下一層級(jí)子節(jié)點(diǎn)資源。子節(jié)點(diǎn)實(shí)時(shí)展示子模塊103用于接收并展示用戶所請(qǐng)求的子節(jié)點(diǎn)資源。
如圖10a所示,實(shí)時(shí)數(shù)據(jù)獲取模塊921還包括資源檢索指令發(fā)送子模塊104和視頻實(shí)時(shí)展示子模塊105。資源檢索指令發(fā)送子模塊104用于發(fā)送資源檢索指令,所述資源檢索指令用于檢索視頻資源。視頻實(shí)時(shí)展示子模塊105用于接收并展示與資源檢索指令匹配的視頻資源。
圖10b為備份數(shù)據(jù)下載模塊922的結(jié)構(gòu)示意圖。備份數(shù)據(jù)下載模塊922包括資源下載子模塊106、時(shí)間記錄子模塊107、增量請(qǐng)求子模塊108和本地?cái)?shù)據(jù)預(yù)處理子模塊109。其中,資源下載子模塊106用于基于用戶權(quán)限和本地緩存數(shù)據(jù)的狀態(tài)下載用戶權(quán)限下的全部資源數(shù)據(jù);時(shí)間記錄子模塊107用于接收服務(wù)器生成的時(shí)間戳,所述時(shí)間戳表示下載資源數(shù)據(jù)的最新時(shí)間;增量請(qǐng)求子模塊108用 于請(qǐng)求從本地時(shí)間戳到當(dāng)前時(shí)間之間資源數(shù)據(jù)的增量,更新時(shí)間戳;本地?cái)?shù)據(jù)預(yù)處理子模塊109用于對(duì)本地資源數(shù)據(jù)進(jìn)行預(yù)處理并更新本地索引。具體而言,對(duì)本地?cái)?shù)據(jù)資源中的字段進(jìn)行拆分建立元詞匯表,根據(jù)元詞匯表創(chuàng)建或者更新本地索引。
圖11為第二數(shù)據(jù)獲取單元93的結(jié)構(gòu)示意圖。第二數(shù)據(jù)獲取單元93主要包括首層節(jié)點(diǎn)本地查詢模塊111、子節(jié)點(diǎn)本地查詢模塊112和子節(jié)點(diǎn)本地展示模塊113。其中,首層節(jié)點(diǎn)本地查詢模塊111用于從本地索引中查詢視頻資源組織樹的第一層級(jí)樹節(jié)點(diǎn),渲染初次展示的用戶界面;子節(jié)點(diǎn)本地查詢模塊112用于根據(jù)組織查詢指令在本地索引中查詢當(dāng)前父節(jié)點(diǎn)的下一層級(jí)子節(jié)點(diǎn)資源;子節(jié)點(diǎn)本地展示模塊113用于展示用戶所請(qǐng)求的子節(jié)點(diǎn)資源。
如圖11所示,第二數(shù)據(jù)獲取單元93還包括關(guān)鍵字拆分模塊114,用于對(duì)資源檢索指令中的關(guān)鍵字進(jìn)行拆分;匹配模塊115用于將拆分的關(guān)鍵字在所述元詞匯表中進(jìn)行匹配,得到符合資源檢索指令的元詞匯;本地?cái)?shù)據(jù)檢索模塊116用于基于符合資源檢索指令的元詞匯在本地索引中檢索用戶界面數(shù)據(jù)。
本發(fā)明的實(shí)施例還提供一種服務(wù)器,應(yīng)用于視頻監(jiān)控系統(tǒng)。如圖12所示,該服務(wù)器包括實(shí)時(shí)數(shù)據(jù)提供模塊121、備份數(shù)據(jù)提供模塊122和資源數(shù)據(jù)預(yù)處理模塊123。其中,在客戶端與服務(wù)器之間的網(wǎng)絡(luò)為有效的狀態(tài)下,實(shí)時(shí)數(shù)據(jù)提供模塊121基于用戶操作請(qǐng)求提供實(shí)時(shí)顯示的用戶界面數(shù)據(jù),備份數(shù)據(jù)提供模塊122采用增量加載的方式在線提供用于備份的資源數(shù)據(jù)。資源數(shù)據(jù)預(yù)處理模塊123用于對(duì)全部資源數(shù)據(jù)進(jìn)行預(yù)處理,具體而言,對(duì)全部資源數(shù)據(jù)中的字段進(jìn)行拆分建立元詞匯表,根據(jù)元詞匯表創(chuàng)建或者更新全局索引。
圖13a為實(shí)時(shí)數(shù)據(jù)提供模塊121的結(jié)構(gòu)示意圖。實(shí)時(shí)數(shù)據(jù)提供模塊121包括首層節(jié)點(diǎn)實(shí)時(shí)提供子模塊1211、組織查詢指令接收子模塊1212和子節(jié)點(diǎn)資源發(fā)送子模塊1213。其中,首層節(jié)點(diǎn)實(shí)時(shí)提供子模塊1211提供視頻資源組織樹的第一層級(jí)樹節(jié)點(diǎn),用于渲染初次展示的用戶界面;組織查詢指令接收子模塊1212用于接收組織查詢指令,所述組織查詢指令用于查詢當(dāng)前父節(jié)點(diǎn)的下一層級(jí)子節(jié)點(diǎn)資源;子節(jié)點(diǎn)資源發(fā)送子模塊1213用于發(fā)送用戶所請(qǐng)求的子節(jié)點(diǎn)資源。
此外,實(shí)時(shí)數(shù)據(jù)提供模塊121還包括資源檢索指令接收子模塊1214,用于接收資源檢索指令,所述資源檢索指令用于檢索視頻資源;視頻資源檢索子模塊1215,用于在全部資源數(shù)據(jù)中檢索視頻資源;以及視頻資源發(fā)送子模塊1216,用 于發(fā)送與資源檢索指令匹配的視頻資源。其中,所述視頻資源檢索子模塊1215包括關(guān)鍵字拆分子模塊,用于對(duì)資源檢索指令中的關(guān)鍵字進(jìn)行拆分;匹配子模塊,將拆分的關(guān)鍵字在所述元詞匯表中進(jìn)行匹配,得到符合資源檢索指令的元詞匯;以及,全局?jǐn)?shù)據(jù)檢索模塊,基于符合資源檢索指令的元詞匯在全局索引中檢索用戶界面數(shù)據(jù)(圖中未示出)。
圖13b為備份數(shù)據(jù)提供模塊122的結(jié)構(gòu)示意圖。備份數(shù)據(jù)提供模塊122包括資源發(fā)送子模塊1221,基于用戶權(quán)限和本地緩存數(shù)據(jù)的狀態(tài)發(fā)送用戶權(quán)限下的全部資源數(shù)據(jù);時(shí)間戳生成子模塊1222,用于生成并發(fā)送時(shí)間戳,所述時(shí)間戳表示下載資源數(shù)據(jù)的最新時(shí)間;增量提供子模塊1223,用于提供從本地時(shí)間戳到當(dāng)前時(shí)間之間資源數(shù)據(jù)的增量。
雖然本發(fā)明所公開的實(shí)施方式如上,但所述的內(nèi)容只是為了便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬技術(shù)領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所公開的精神和范圍的前提下,可以在實(shí)施的形式上及細(xì)節(jié)上作任何的修改與變化,但本發(fā)明的專利保護(hù)范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。