專(zhuān)利名稱(chēng):一種多nvt事件處理方法、nvc及安防監(jiān)控平臺(tái)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)安防監(jiān)控技術(shù)領(lǐng)域,尤其涉及一種多NVT事件處理方法、NVC及安防監(jiān)控平臺(tái)。
背景技術(shù):
近年來(lái),隨著數(shù)字視頻監(jiān)控市場(chǎng)的發(fā)展,各安防企業(yè)生產(chǎn)的不同網(wǎng)絡(luò)監(jiān)控設(shè)備間的兼容性問(wèn)題越來(lái)越嚴(yán)峻,關(guān)于業(yè)界統(tǒng)一標(biāo)準(zhǔn)問(wèn)題的討論也越來(lái)越多。開(kāi)放性網(wǎng)絡(luò)視頻接口論壇(Open Network Video Interface Forum, Onvif)在2008年由Axis、Bosch和Sony三家企業(yè)聯(lián)合推出,是全球影響力最大的網(wǎng)絡(luò)視頻監(jiān)控行業(yè)標(biāo)準(zhǔn)組織,其目的是以公開(kāi)、開(kāi)放的原則共同制定開(kāi)放性網(wǎng)絡(luò)視頻監(jiān)控行業(yè)標(biāo)準(zhǔn)。Onvif標(biāo)準(zhǔn)為網(wǎng)絡(luò)監(jiān)控設(shè)備之間的信息交換定義通用協(xié)議,包括設(shè)備發(fā)現(xiàn)、實(shí)時(shí)視頻、音頻、元數(shù)據(jù)和控制信息等。網(wǎng)絡(luò)監(jiān)控設(shè)備對(duì)Onvif標(biāo)準(zhǔn)的遵循,使終端用戶(hù)、集成商和生產(chǎn)廠商能夠輕松地獲得更高的性?xún)r(jià)比、更靈活的解決方案、更大的市場(chǎng)擴(kuò)張機(jī)會(huì)以及更低的風(fēng)險(xiǎn)。在安防監(jiān)控平臺(tái)中,對(duì)前端網(wǎng)絡(luò)攝像機(jī)(在Onvif標(biāo)準(zhǔn)中簡(jiǎn)稱(chēng)NVT,Network VideoTransmitter)告警的采集、管理是一項(xiàng)重要組成部分。Onvif對(duì)告警的處理通過(guò)事件(event)方式實(shí)現(xiàn),NVT將其產(chǎn)生的告警(例如移動(dòng)偵測(cè),開(kāi)關(guān)量報(bào)警輸入)描述為事件并傳向后端設(shè)備(在Onvif標(biāo)準(zhǔn)中簡(jiǎn)稱(chēng)NVC, Network Video Client), NVC再對(duì)各類(lèi)事件分析處理并產(chǎn)生相應(yīng)聯(lián)動(dòng)。Onvif標(biāo)準(zhǔn)中提供了兩種事件處理接口,Basic NotificationInterface 和 Real-time Pull-Point Notification Interface。其中因?yàn)楦叩膶?shí)時(shí)性和更好的防火墻穿透能力,Pull-Point方式更受推薦。在Onvif標(biāo)準(zhǔn)的核心規(guī)范中對(duì)Pull-Point方式的工作過(guò)程進(jìn)行了描述:步驟1:NVC 使用 CreatePullPointSubscriptionRequest 向 NVT 注冊(cè)感興趣的事
件主題。步驟2:NVT評(píng)估注冊(cè)信息并向NVC返回注冊(cè)成功應(yīng)答CreatePullPointSubscriptionResponse或者注冊(cè)錯(cuò)誤信息。步驟3:NVC根據(jù)NVT返回的應(yīng)答中包含的代表其生成的SubscriptionManager的WS-EndpointReference 向 NVT 發(fā)送 PullMessages 請(qǐng)求。步驟4:當(dāng)NVT檢測(cè)到有事件發(fā)生時(shí),立即通過(guò)PullMessages應(yīng)答向NVC返回事件描述;如果指定時(shí)間內(nèi)未發(fā)生事件,返回超時(shí)。NVC在接收到應(yīng)答后可立即發(fā)起新的PullMessages 請(qǐng)求。步驟5:NVC使用UnSubscribeRequest向NVT注銷(xiāo)事件主題,NVT銷(xiāo)毀SubscriptionManager 并使用 UnSubscribeResponse 向 NVC 返回應(yīng)答。上述步驟描述了 NVC與NVT之間一對(duì)一的Pull-Point方式工作流程,但是實(shí)際應(yīng)用中仍存在幾點(diǎn)問(wèn)題:1.實(shí)際安防監(jiān)控平臺(tái)中,一臺(tái)NVC往往接入多路NVT(例如256路),而在Onvif標(biāo)準(zhǔn)中并未闡述如何對(duì)這種一對(duì)多的模型進(jìn)行有效的事件管理。
2.標(biāo)準(zhǔn)中描述的工作流程采用同步阻塞方式的網(wǎng)絡(luò)連接,NVC在發(fā)起PullMessages請(qǐng)求后阻塞等待NVT的應(yīng)答。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種多NVT事件處理方法、NVC及安防監(jiān)控平臺(tái),旨在解決現(xiàn)有的Onvif標(biāo)準(zhǔn)未涵蓋多路NVT的問(wèn)題。一方面,提供一種多NVT事件處理方法,所述方法包括:向前端網(wǎng)絡(luò)攝像機(jī)NVT注冊(cè)感興趣的事件主題;注冊(cè)成功后,創(chuàng)建一個(gè)事件注冊(cè)節(jié)點(diǎn),并將所述事件注冊(cè)節(jié)點(diǎn)加入事件注冊(cè)池中,所述事件注冊(cè)節(jié)點(diǎn)中包括:NVT事件主題、NVT事件服務(wù)地址、租約期限和NVT返回的代表其生成的 SubscriptionManager 的 WS-EndpointReference ;根據(jù)所述WS-EndpointReference 向 NVT 發(fā)送 PullMessages 連接請(qǐng)求;連接成功后,創(chuàng)建一個(gè)包含連接上下文信息的事件連接節(jié)點(diǎn),所述事件連接節(jié)點(diǎn)中包括連接套接字socket、NVT事件服務(wù)地址和代表NVT生成的SubscriptionManager的WS-EndpointReference,并將所述事件連接節(jié)點(diǎn)加入事件連接池中;以異步多路復(fù)用方式監(jiān)聽(tīng)事件連接池中的所有socket ;當(dāng)接收到NVT發(fā)送的事件消息時(shí),從接收到事件消息的socket上讀取所述事件消息并斷開(kāi)與NVT的PullMessages連接;對(duì)所述事件消息進(jìn)行處理;根據(jù)所述事件連接節(jié)點(diǎn)中包含的連接上下文信息重建與NVT的PullMessages連接;如果重建連接成功,則根據(jù)當(dāng)前的連接套接字socket更新事件連接池中相應(yīng)的事件連接節(jié)點(diǎn);如果重建連接失敗,則從事件連接池中刪除相應(yīng)的事件連接節(jié)點(diǎn)。另一方面,提供一種NVC,所述NVC包括:注冊(cè)單元,用于向前端網(wǎng)絡(luò)攝像機(jī)NVT注冊(cè)感興趣的事件主題;事件注冊(cè)池創(chuàng)建單元,用于注冊(cè)成功后,創(chuàng)建一個(gè)事件注冊(cè)節(jié)點(diǎn),并將所述事件注冊(cè)節(jié)點(diǎn)加入事件注冊(cè)池中,所述事件注冊(cè)節(jié)點(diǎn)中包括=NVT事件主題、NVT事件服務(wù)地址、租約期限和 NVT 返回的代表其生成的 SubscriptionManager 的 WS-EndpointReference ;連接請(qǐng)求單兀,用于根據(jù)所述WS-EndpointReference向NVT發(fā)送PullMessages連接請(qǐng)求;事件連接池創(chuàng)建單元,用于連接成功后,創(chuàng)建一個(gè)包含連接上下文信息的事件連接節(jié)點(diǎn),所述事件連接節(jié)點(diǎn)中包括連接套接字socket、NVT事件服務(wù)地址和代表NVT生成的SubscriptionManager的WS-EndpointReference,并將所述事件連接節(jié)點(diǎn)加入事件連接池中;監(jiān)聽(tīng)單元,用于以異步多路復(fù)用方式監(jiān)聽(tīng)事件連接池中的所有socket ;連接斷開(kāi)單元,用于當(dāng)接收到NVT發(fā)送的事件消息時(shí),從接收到事件消息的socket上讀取所述事件消息并斷開(kāi)與NVT的PullMessages連接;事件處理單元,用于對(duì)所述事件消息進(jìn)行處理;
第一連接重建單元,用于根據(jù)所述事件連接節(jié)點(diǎn)中包含的連接上下文信息重建與NVT 的 PullMessages 連接;事件連接節(jié)點(diǎn)更新單元,用于如果重建連接成功,則根據(jù)當(dāng)前的連接套接字socket更新事件連接池中相應(yīng)的事件連接節(jié)點(diǎn);事件連接節(jié)點(diǎn)刪除單元,用于如果重建連接失敗,則從事件連接池中刪除相應(yīng)的事件連接節(jié)點(diǎn)。再一方面,提供一種安防監(jiān)控平臺(tái),所述安防監(jiān)控平臺(tái)包括多個(gè)NVT和如上所述的 NVC。在本發(fā)明實(shí)施例中,通過(guò)創(chuàng)建事件注冊(cè)池對(duì)注冊(cè)事件統(tǒng)一管理,創(chuàng)建事件連接池對(duì)活躍PullMessages連接統(tǒng)一管理,很好地提出了以異步方式同時(shí)監(jiān)聽(tīng)多路NVT事件的模型。該方法工作于NVC端,通用、可靠,可對(duì)各類(lèi)遵循Onvif標(biāo)準(zhǔn)的前端網(wǎng)絡(luò)攝像機(jī)進(jìn)行事
件管理。
圖1是本發(fā)明實(shí)施例一提供的多NVT事件處理方法的實(shí)現(xiàn)流程圖;圖2是本發(fā)明實(shí)施例二提供的NVC的結(jié)構(gòu)框圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在本發(fā)明實(shí)施例中,通過(guò)創(chuàng)建事件注冊(cè)池對(duì)注冊(cè)事件統(tǒng)一管理,創(chuàng)建事件連接池對(duì)活躍PullMessages連接統(tǒng)一管理,很好地提出了以異步方式同時(shí)監(jiān)聽(tīng)多路NVT事件的模型。以下結(jié)合具體實(shí)施例對(duì)本發(fā)明的實(shí)現(xiàn)進(jìn)行詳細(xì)描述:實(shí)施例一圖1示出了本發(fā)明實(shí)施例一提供的多NVT事件處理方法的實(shí)現(xiàn)流程,以NVC為例進(jìn)行說(shuō)明,詳述如下:在步驟SlOl中,向前端網(wǎng)絡(luò)攝像機(jī)NVT注冊(cè)感興趣的事件主題。在本實(shí)施例中,后端設(shè)備N(xiāo)VC 調(diào)用 CreatePullPointSubscriptionRequest 向 NVT注冊(cè)感興趣的事件主題,如果注冊(cè)成功,則執(zhí)行步驟S102。在步驟S102中,注冊(cè)成功后,則創(chuàng)建一個(gè)事件注冊(cè)節(jié)點(diǎn),并將所述事件注冊(cè)節(jié)點(diǎn)加入事件注冊(cè)池中,所述事件注冊(cè)節(jié)點(diǎn)中包括=NVT事件主題、NVT事件服務(wù)地址、租約期限和 NVT 返回的代表其生成的 SubscriptionManager 的 WS-EndpointReference。在本實(shí)施例中,當(dāng)NVC 調(diào)用 CreatePullPointSubscriptionRequest 向 NVT 注冊(cè)感興趣的事件主題時(shí),如果注冊(cè)成功,則創(chuàng)建一個(gè)包含注冊(cè)信息的事件注冊(cè)節(jié)點(diǎn),然后將該事件注冊(cè)節(jié)點(diǎn)添加到事件注冊(cè)池中去。該事件注冊(cè)節(jié)點(diǎn)中包括的信息有=NVT事件服務(wù)地址、注冊(cè)事件主題、租約期限和NVT返回的代表其生成的SubscriptionManager的WS-EndpointReference0 NVC使用事件注冊(cè)池保存所有注冊(cè)成功的事件信息。
權(quán)利要求
1.一種多NVT事件處理方法,其特征在于,所述方法包括: 向前端網(wǎng)絡(luò)攝像機(jī)NVT注冊(cè)感興趣的事件主題; 注冊(cè)成功后,創(chuàng)建一個(gè)事件注冊(cè)節(jié)點(diǎn),并將所述事件注冊(cè)節(jié)點(diǎn)加入事件注冊(cè)池中,所述事件注冊(cè)節(jié)點(diǎn)中包括:NVT事件主題、NVT事件服務(wù)地址、租約期限和NVT返回的代表其生成的 SubscriptionManager 的 WS-EndpointReference ; 根據(jù)所述 WS-EndpointReference 向 NVT 發(fā)送 PullMessages 連接請(qǐng)求; 連接成功后,創(chuàng)建一個(gè)包含連接上下文信息的事件連接節(jié)點(diǎn),所述事件連接節(jié)點(diǎn)中包括連接套接字socket、NVT事件服務(wù)地址和代表NVT生成的SubscriptionManager的WS-EndpointReference,并將所述事件連接節(jié)點(diǎn)加入事件連接池中; 以異步多路復(fù)用方式監(jiān)聽(tīng)事件連接池中的所有socket ; 當(dāng)接收到NVT發(fā)送的事件消息時(shí),從接收到事件消息的socket上讀取所述事件消息并斷開(kāi)與NVT的PullMessages連接; 對(duì)所述事件消息進(jìn)行處理; 根據(jù)所述事件連接節(jié)點(diǎn)中包含的連接上下文信息重建與NVT的PullMessages連接;如果重建連接成功,則根據(jù)當(dāng)前的連接套接字socket更新事件連接池中相應(yīng)的事件連接節(jié)點(diǎn); 如果重建連接失敗,則從事件連接池中刪除相應(yīng)的事件連接節(jié)點(diǎn)。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 定期監(jiān)測(cè)事件注冊(cè)池和事件連接池; 如果事件注冊(cè)池中的事件注冊(cè)節(jié)點(diǎn)的剩余的租約期限小于設(shè)定閾值,則對(duì)所述事件注冊(cè)節(jié)點(diǎn)進(jìn)行續(xù)約; 對(duì)于已經(jīng)注冊(cè)但未連接的NVT事件主題,則重建與NVT的PullMessages連接; 如果連接成功,則創(chuàng)建事件連接節(jié)點(diǎn)并將所述事件連接節(jié)點(diǎn)加入事件連接池中。
3.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 監(jiān)測(cè)NVT是否重新上線; 如果有NVT重新上線,則嘗試對(duì)與該NVT關(guān)聯(lián)的事件續(xù)約并重建與該NVT的PullMessages 連接; 所述嘗試對(duì)與該NVT關(guān)聯(lián)的事件續(xù)約并重建與該NVT的PulIMessages連接具體包括: 遍歷事件注冊(cè)池;查找與該NVT關(guān)聯(lián)的事件注冊(cè)節(jié)點(diǎn); 對(duì)該事件注冊(cè)節(jié)點(diǎn)進(jìn)行續(xù)約; 如果續(xù)約成功,則直接根據(jù)該事件注冊(cè)節(jié)點(diǎn)中保存的WS-EndpointReference重建與該 NVT 的 PullMessages 連接; 如果續(xù)約失敗,則對(duì)該事件注冊(cè)節(jié)點(diǎn)中保存的NVT事件主題、NVT事件服務(wù)地址重新注冊(cè),如果注冊(cè)成功,則根據(jù)該NVT返回的代表其新生成的SubscriptionManager的WS-EndpointReference更新該事件注冊(cè)節(jié)點(diǎn),并根據(jù)該新生成的WS-EndpointReference重建與該NVT的PullMessages連接。
4.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 使用數(shù)據(jù)庫(kù)記錄所有注冊(cè)成功的事件的信息,當(dāng)NVC重新上線時(shí),根據(jù)所述數(shù)據(jù)庫(kù)中記錄的事件的信息重建事件注冊(cè)池和事件連接池。
5.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 注銷(xiāo)事件時(shí),先斷開(kāi)與NVT之間的PullMessages連接,再依次從事件連接池和事件注冊(cè)池中刪除相應(yīng)的節(jié)點(diǎn)。
6.一種NVC,其特征在于,所述NVC包括: 注冊(cè)單元,用于向前端網(wǎng)絡(luò)攝像機(jī)NVT注冊(cè)感興趣的事件主題; 事件注冊(cè)池創(chuàng)建單元,用于注冊(cè)成功后,創(chuàng)建一個(gè)事件注冊(cè)節(jié)點(diǎn),并將所述事件注冊(cè)節(jié)點(diǎn)加入事件注冊(cè)池中,所述事件注冊(cè)節(jié)點(diǎn)中包括=NVT事件主題、NVT事件服務(wù)地址、租約期限和 NVT 返回的代表其生成的 SubscriptionManager 的 WS-EndpointReference ; 連接請(qǐng)求單元,用于根據(jù)所述WS-EndpointReference向NVT發(fā)送PullMessages連接請(qǐng)求; 事件連接池創(chuàng)建單元,用于連接成功后,創(chuàng)建一個(gè)包含連接上下文信息的事件連接節(jié)點(diǎn),所述事件連接節(jié)點(diǎn)中包括連接套接字socket、NVT事件服務(wù)地址和代表NVT生成的SubscriptionManage r的WS-EndpointReference,并將所述事件連接節(jié)點(diǎn)加入事件連接池中; 監(jiān)聽(tīng)單元,用于以異步多路復(fù)用方式監(jiān)聽(tīng)事件連接池中的所有socket ; 連接斷開(kāi)單元,用于當(dāng)接收到NVT發(fā)送的事件消息時(shí),從接收到事件消息的socket上讀取所述事件消息并斷開(kāi)與NVT的PullMessages連接; 事件處理單元,用于對(duì)所述事件消息進(jìn)行處理; 第一連接重建單元,用于根據(jù)所述事件連接節(jié)點(diǎn)中包含的連接上下文信息重建與NVT的 PullMessages 連接; 事件連接節(jié)點(diǎn)更新單元,用于如果重建連接成功,則根據(jù)當(dāng)前的連接套接字socket更新事件連接池中相應(yīng)的事件連接節(jié)點(diǎn); 事件連接節(jié)點(diǎn)刪除單元,用于如果重建連接失敗,則從事件連接池中刪除相應(yīng)的事件連接節(jié)點(diǎn)。
7.如權(quán)利要求6所述的NVC,其特征在于,所述NVC還包括: 監(jiān)測(cè)單元,用于定期監(jiān)測(cè)事件注冊(cè)池和事件連接池; 續(xù)約單元,用于如果事件注冊(cè)池中的事件注冊(cè)節(jié)點(diǎn)的剩余的租約期限小于設(shè)定閾值,則對(duì)所述事件注冊(cè)節(jié)點(diǎn)進(jìn)行續(xù)約; 第二連接重建單元,用于對(duì)于已經(jīng)注冊(cè)但未連接的NVT事件主題,則重建與NVT的PullMessages 連接; 如果連接成功,則創(chuàng)建事件連接節(jié)點(diǎn)并將所述事件連接節(jié)點(diǎn)加入事件連接池中。
8.如權(quán)利要求6所述的NVC,其特征在于,所述NVC還包括: 上線監(jiān)測(cè)單元,用于監(jiān)測(cè)NVT是否重新上線; 第三連接重建單元,用于如果有NVT重新上線,則嘗試對(duì)與該NVT關(guān)聯(lián)的事件續(xù)約并重建與該NVT的PullMessages連接; 所述第三連接重建單元包括: 遍歷模塊,用于遍歷事件注冊(cè)池,查找與該NVT關(guān)聯(lián)的事件注冊(cè)節(jié)點(diǎn); 續(xù)約模塊,用于對(duì)該事件注冊(cè)節(jié)點(diǎn)進(jìn)行續(xù)約; 第一連接重建模塊,用于如果續(xù)約成功,則直接根據(jù)該事件注冊(cè)節(jié)點(diǎn)中保存的WS-EndpointReference 重建與該 NVT 的 PullMessages 連接; 第二連接重建模塊,用于如果續(xù)約失敗,則對(duì)該事件注冊(cè)節(jié)點(diǎn)中保存的NVT事件主題、NVT事件服務(wù)地址重新注冊(cè),如果注冊(cè)成功,則根據(jù)該NVT返回的代表其新生成的SubscriptionManager的WS-EndpointReference更新該事件注冊(cè)節(jié)點(diǎn),并根據(jù)該新生成的WS-EndpointReference 重建與該 NVT 的 PullMessages 連接。
9.如權(quán)利要求6所述的NVC,其特征在于,所述NVC還包括: 數(shù)據(jù)庫(kù)單元,用于使用數(shù)據(jù)庫(kù)記錄所有注冊(cè)成功的事件的信息,當(dāng)NVC重新上線時(shí),根據(jù)所述數(shù)據(jù)庫(kù)中記錄的事件的信息重建事件注冊(cè)池和事件連接池。
10.如權(quán)利要求6所述的NVC,其特征在于,所述NVC還包括: 事件注銷(xiāo)單元,用于注銷(xiāo)事件時(shí),先斷開(kāi)與NVT之間的PullMessages連接,再依次從事件連接池 和事件注冊(cè)池中刪除相應(yīng)的節(jié)點(diǎn)。
全文摘要
本發(fā)明適用于計(jì)算機(jī)安防監(jiān)控技術(shù)領(lǐng)域,提供了一種多NVT事件處理方法、NVC及安防監(jiān)控平臺(tái),所述方法包括向前端網(wǎng)絡(luò)攝像機(jī)NVT注冊(cè)感興趣的事件主題;注冊(cè)成功后,創(chuàng)建一個(gè)事件注冊(cè)節(jié)點(diǎn),并將其加入事件注冊(cè)池中,根據(jù)WS-EndpointReference向NVT發(fā)送連接請(qǐng)求;連接成功后,創(chuàng)建一個(gè)包含連接上下文信息的事件連接節(jié)點(diǎn),并將其加入事件連接池中;以異步多路復(fù)用方式監(jiān)聽(tīng)事件連接池中的所有socket;當(dāng)接收到NVT發(fā)送的事件消息時(shí),從接收到事件消息的socket上讀取所述事件消息并斷開(kāi)與NVT的連接;對(duì)所述事件消息進(jìn)行處理。本發(fā)明,很好地提出了以異步方式同時(shí)監(jiān)聽(tīng)多路NVT事件的模型。
文檔編號(hào)H04N7/18GK103107991SQ20131002162
公開(kāi)日2013年5月15日 申請(qǐng)日期2013年1月21日 優(yōu)先權(quán)日2013年1月21日
發(fā)明者胡冰, 梅海峰, 詹東暉 申請(qǐng)人:深圳遠(yuǎn)立科技有限公司