本申請(qǐng)根據(jù)35U.S.C.§119(e)要求于2014年4月2日提交且標(biāo)題為“Wireless Sensor Network”的美國(guó)專利申請(qǐng)61/973,962、于2014年2月28日提交且標(biāo)題為“Wireless Sensor Network”的臨時(shí)美國(guó)專利申請(qǐng)61/946,054以及于2014年8月20日提交且標(biāo)題為“Wireless Sensor Network”的實(shí)用新型美國(guó)專利申請(qǐng)14/463,738的優(yōu)先權(quán),這些申請(qǐng)的全部?jī)?nèi)容通過(guò)引用被結(jié)合于此。
背景技術(shù):
本說(shuō)明書(shū)涉及諸如用于安裝在商業(yè)或住宅處所的安全、入侵和報(bào)警系統(tǒng)的傳感器網(wǎng)絡(luò)的操作。
對(duì)于企業(yè)和房主來(lái)說(shuō),具有用于探測(cè)在其處所的報(bào)警狀況并且向安全系統(tǒng)的監(jiān)控站或者授權(quán)用戶發(fā)信號(hào)通知這種狀況的安全系統(tǒng)是常見(jiàn)的。安全系統(tǒng)常常包括被電或無(wú)線地連接到各種傳感器的入侵探測(cè)面板。那些傳感器類型可以包括運(yùn)動(dòng)探測(cè)器、相機(jī)和接近傳感器(例如,用來(lái)確定門或窗是否已經(jīng)被打開(kāi))。通常,這種系統(tǒng)從這些傳感器當(dāng)中的一個(gè)或多個(gè)傳感器接收非常簡(jiǎn)單的信號(hào)(電氣開(kāi)或關(guān)),以指示被監(jiān)控的特定狀況已經(jīng)改變或變得不安全。
技術(shù)實(shí)現(xiàn)要素:
但是,這種網(wǎng)絡(luò)一般在計(jì)算設(shè)備之間使用有線和無(wú)線鏈路的組合,其中無(wú)線鏈路用于端節(jié)點(diǎn)設(shè)備到集線器/網(wǎng)關(guān)連接。幾乎網(wǎng)絡(luò)中涉及到的所有設(shè)備都使用某種形式的簡(jiǎn)單軟件,但是在端節(jié)點(diǎn)和集線器/網(wǎng)關(guān)中,這種軟件的形式簡(jiǎn)單、在數(shù)據(jù)縮減和決策中涉及較少的先進(jìn)的能力,而且是相當(dāng)靜態(tài)的,這意味著軟件通常不會(huì)頻繁改變。但是,當(dāng)這些較低級(jí)別設(shè)備上的軟件被更新時(shí)(這種更新是不頻繁的),使用傳統(tǒng)的引導(dǎo)-加載方法。但是,這些引導(dǎo)-加載方法是耗時(shí)、耗能的,并且需要對(duì)被更新的設(shè)備進(jìn)行重新引導(dǎo),這會(huì)帶來(lái)安全/報(bào)警問(wèn)題。
根據(jù)一方面,聯(lián)網(wǎng)的傳感器系統(tǒng)包括:服務(wù)器設(shè)備的上層,服務(wù)器設(shè)備包括處理器設(shè)備和與處理器設(shè)備通信的存儲(chǔ)器。該系統(tǒng)還包括與一個(gè)或多個(gè)上層服務(wù)器設(shè)備通信的網(wǎng)關(guān)設(shè)備的中間層,以及包括全功能傳感器節(jié)點(diǎn)的下層設(shè)備,其中至少一些全功能傳感器節(jié)點(diǎn)包括執(zhí)行例程以提供節(jié)點(diǎn)傳感器功能的應(yīng)用層以及管理下層設(shè)備中的至少一些功能節(jié)點(diǎn)中的應(yīng)用層的應(yīng)用層管理器。
各方面還可以包括方法、計(jì)算機(jī)程序產(chǎn)品和系統(tǒng)。
一個(gè)或多個(gè)優(yōu)點(diǎn)可以從一個(gè)或多個(gè)上述方面提供。
網(wǎng)絡(luò)可以使用有線和無(wú)線鏈路的組合,優(yōu)選地在層之間是有線的,尤其是在中間和下層連接之間具有無(wú)線鏈路(例如,端節(jié)點(diǎn)設(shè)備到集線器/網(wǎng)關(guān))。網(wǎng)絡(luò)中所涉及的設(shè)備可以包括先進(jìn)能力區(qū)域,諸如數(shù)據(jù)縮減和決策,并且設(shè)備的能力是動(dòng)態(tài)可變的,這意味著軟件可以在無(wú)需傳統(tǒng)引導(dǎo)-加載方法的情況下被更新,這避免了被更新的設(shè)備必需的費(fèi)時(shí)、耗能和重新引導(dǎo),從而避免了當(dāng)這種傳感器和其它端節(jié)點(diǎn)設(shè)備被更新時(shí)潛在的安全/報(bào)警問(wèn)題。這使得能夠?qū)@種在數(shù)據(jù)縮減和決策方面具有先進(jìn)能力的傳感器和其它端節(jié)點(diǎn)設(shè)備進(jìn)行管理。
本發(fā)明的一個(gè)或多個(gè)實(shí)施例的細(xì)節(jié)在附圖和以下描述中闡述。本發(fā)明的其它特征、目的以及優(yōu)點(diǎn)從描述和附圖以及從權(quán)利要求書(shū)是顯而易見(jiàn)的。
附圖說(shuō)明
圖1是示例性聯(lián)網(wǎng)安全系統(tǒng)的示意圖。
圖2是通用應(yīng)用層管理器的框圖。
圖3是示出在應(yīng)用層管理器上的示例過(guò)程的框圖。
圖4是在應(yīng)用層管理器上的示例性狀態(tài)過(guò)渡的圖。
圖5和圖6是流程圖。
圖7是示例聯(lián)網(wǎng)安全系統(tǒng)的部件的框圖。
具體實(shí)施方式
本文所描述的是可以在各種背景下使用的網(wǎng)絡(luò)特征的例子,包括但不限于,安全/入侵和報(bào)警系統(tǒng)。示例安全系統(tǒng)可以包括被電或無(wú)線地連接到各種傳感器的入侵探測(cè)面板。那些傳感器類型可以包括運(yùn)動(dòng)探測(cè)器、相機(jī)和接近傳感器(例如,用來(lái)確定門或窗是否已經(jīng)被打開(kāi),以及其它類型的傳感器)。通常,這種系統(tǒng)從這些傳感器當(dāng)中一個(gè)或多個(gè)傳感器接收相對(duì)簡(jiǎn)單的信號(hào)(電氣開(kāi)或關(guān)),以指示被監(jiān)控的特定狀況已經(jīng)改變或變得不安全。
例如,典型的入侵系統(tǒng)可被設(shè)置為監(jiān)控建筑物中的入口門。當(dāng)門是安全的時(shí)候,接近傳感器感測(cè)到磁性接觸并產(chǎn)生電關(guān)閉電路。當(dāng)門被打開(kāi)時(shí),接近傳感器打開(kāi)電路,并向面板發(fā)送指示報(bào)警狀況已發(fā)生(例如,打開(kāi)的入口門)的信號(hào)。
數(shù)據(jù)收集系統(tǒng)在一些應(yīng)用,諸如家庭安全監(jiān)控,當(dāng)中變得越來(lái)越常見(jiàn)。數(shù)據(jù)收集系統(tǒng)采用無(wú)線傳感器網(wǎng)絡(luò)和無(wú)線設(shè)備,并且可以包括基于遠(yuǎn)程服務(wù)器的監(jiān)控和報(bào)告生成。如下面更詳細(xì)描述的,無(wú)線傳感器網(wǎng)絡(luò)一般使用計(jì)算設(shè)備之間的有線和無(wú)線鏈路的組合,其中無(wú)線鏈路通常用于最低級(jí)的連接(例如,端節(jié)點(diǎn)設(shè)備到集線器/網(wǎng)關(guān))。在示例網(wǎng)絡(luò)中,網(wǎng)絡(luò)的邊緣(無(wú)線連接的)層由具有特定功能的資源受限設(shè)備組成。這些設(shè)備可以具有小至中等數(shù)量的處理能力和存儲(chǔ)器,并且可以是電池供電的,因此要求它們通過(guò)將其大量時(shí)間花費(fèi)在睡眠模式下來(lái)節(jié)省能源。典型的模式是邊緣設(shè)備通常形成單個(gè)無(wú)線網(wǎng)絡(luò),其中在該單個(gè)無(wú)線網(wǎng)絡(luò)中每個(gè)端節(jié)點(diǎn)以集線器和輻條式體系架構(gòu)直接與其父節(jié)點(diǎn)通信。父節(jié)點(diǎn)可以是,例如,網(wǎng)關(guān)上的接入點(diǎn)或子協(xié)調(diào)器,其繼而連接到接入點(diǎn)或另一個(gè)子協(xié)調(diào)器。
現(xiàn)在參考圖1,示出了用于無(wú)線傳感器網(wǎng)絡(luò)(WSN)的示例性(全局)分布式網(wǎng)絡(luò)10拓?fù)?。在圖1中,分布式網(wǎng)絡(luò)10被邏輯地劃分成層或分層級(jí)別的集合12a-12c。
在網(wǎng)絡(luò)的上層或分層級(jí)別12a中部署運(yùn)行“云計(jì)算”范例的虛擬服務(wù)器和/或服務(wù)器14,這些服務(wù)器利用良好建立的聯(lián)網(wǎng)技術(shù),諸如互聯(lián)網(wǎng)協(xié)議,聯(lián)網(wǎng)到一起,或者可以是不使用互聯(lián)網(wǎng)或使用互聯(lián)網(wǎng)的部分的私有網(wǎng)絡(luò)。在那些服務(wù)器14上運(yùn)行的應(yīng)用利用各種協(xié)議通信,諸如對(duì)于網(wǎng)絡(luò)互聯(lián)網(wǎng)網(wǎng)絡(luò)的XML/SOAP、RESTful網(wǎng)絡(luò)服務(wù),以及諸如HTTP和ATOM的其它應(yīng)用層技術(shù)。分布式網(wǎng)絡(luò)10在設(shè)備(節(jié)點(diǎn))之間具有直接鏈路,如以下示出和討論的。
分布式網(wǎng)絡(luò)10包括第二邏輯劃分層或分層級(jí)別12b,在本文被稱為涉及定位于各個(gè)建筑物和結(jié)構(gòu)中的中心、方便位置處的網(wǎng)關(guān)16的中間層。這些網(wǎng)關(guān)16利用網(wǎng)絡(luò)編程技術(shù)與上層中的服務(wù)器14通信,不管服務(wù)器是獨(dú)立專用服務(wù)器和/或運(yùn)行云應(yīng)用的基于云的服務(wù)器。中間層網(wǎng)關(guān)16還被示為既具有局域網(wǎng)17a(例如,以太網(wǎng)或802.11)又具有蜂窩網(wǎng)絡(luò)接口17b。
分布式網(wǎng)絡(luò)拓?fù)溥€包括下層(邊緣層)12c設(shè)備集合,該下層(邊緣層)12c設(shè)備集合涉及全功能傳感器節(jié)點(diǎn)18(例如,包括無(wú)線設(shè)備的傳感器節(jié)點(diǎn),例如收發(fā)器或者在一些實(shí)現(xiàn)中僅僅是發(fā)送器或接收器,這在圖1中標(biāo)記為“F”)以及受限的無(wú)線傳感器節(jié)點(diǎn)或傳感器端節(jié)點(diǎn)20(在圖1中標(biāo)記為“C”)。在一些實(shí)施例中,在分布式網(wǎng)絡(luò)10的各方面中,有線傳感器(未示出)可以被包括。
如本文中所使用的,受限的計(jì)算設(shè)備20是比探測(cè)系統(tǒng)中的其它計(jì)算設(shè)備、傳感器具有基本上更不持久和易失性存儲(chǔ)器的設(shè)備。目前受限的設(shè)備的例子將是那些具有小于大約一兆字節(jié)閃存/持久性存儲(chǔ)器以及小于10-20千字節(jié)(KB)RAM/易失性存儲(chǔ)器的設(shè)備。這些受限的設(shè)備20以這種方式進(jìn)行配置;一般是由于成本/物理配置的考慮。
在典型的網(wǎng)絡(luò)中,網(wǎng)絡(luò)的邊緣(無(wú)線連接的)層由具有特殊功能的高度資源受限的設(shè)備組成。這些設(shè)備具有小至中等數(shù)量的處理能力和存儲(chǔ)器,并且常常是電池供電的,因此要求它們通過(guò)將大量時(shí)間花費(fèi)在睡眠模式下來(lái)節(jié)省能源。典型的模式是邊緣設(shè)備通常形成單個(gè)無(wú)線網(wǎng)絡(luò),其中在單個(gè)無(wú)線網(wǎng)絡(luò)中每個(gè)端節(jié)點(diǎn)以集線器和輻條式體系架構(gòu)直接與其父節(jié)點(diǎn)通信。父節(jié)點(diǎn)可以是,例如,網(wǎng)關(guān)上的接入點(diǎn)或子協(xié)調(diào)器,其又連接到接入點(diǎn)或另一個(gè)子協(xié)調(diào)器。
每個(gè)網(wǎng)關(guān)配備有物理地附連到那個(gè)接入點(diǎn)并且提供到無(wú)線網(wǎng)絡(luò)中的其它節(jié)點(diǎn)的無(wú)線連接點(diǎn)的接入點(diǎn)(全功能節(jié)點(diǎn)或“F”節(jié)點(diǎn))。圖1中所示的鏈路(由未編號(hào)的線示出)表示設(shè)備之間的直接(單跳網(wǎng)絡(luò)層)連接。(在圖1中所示的三層中每一層起作用的)正式聯(lián)網(wǎng)層使用一系列這些直接鏈路,連同在中間路由能力設(shè)備處使用的路由信息一起,經(jīng)網(wǎng)絡(luò)從一個(gè)設(shè)備向另一個(gè)設(shè)備發(fā)送消息(分段或不分段的)。
WSN 10對(duì)在下層設(shè)備18和20上運(yùn)行的應(yīng)用層實(shí)施狀態(tài)機(jī)方法。以下討論的是這種方法的特定實(shí)施的例子。狀態(tài)機(jī)中的狀態(tài)由協(xié)調(diào)執(zhí)行的函數(shù)集合組成,并且這些函數(shù)可以被個(gè)別刪除或替代或添加,以更改特定下層設(shè)備的狀態(tài)機(jī)中的狀態(tài)。
基于WSN狀態(tài)函數(shù)的應(yīng)用層使用允許各個(gè)函數(shù)的加載和執(zhí)行(在設(shè)備引導(dǎo)之后)而無(wú)需重新引導(dǎo)該設(shè)備(所謂的“動(dòng)態(tài)編程”)的邊緣設(shè)備操作系統(tǒng)(未示出,但諸如在上面提到的臨時(shí)申請(qǐng)中所公開(kāi)的)。在其它實(shí)現(xiàn)中,邊緣設(shè)備可以使用其它操作系統(tǒng),假定這種系統(tǒng)允許優(yōu)選地?zé)o需邊緣設(shè)備的重新引導(dǎo)就啟動(dòng)各個(gè)函數(shù)的加載和執(zhí)行(在設(shè)備引導(dǎo)之后)。
現(xiàn)在參考圖2,示出了應(yīng)用層管理器30的實(shí)施例。應(yīng)用層管理器30在應(yīng)用層管理器30不依賴于被更新的設(shè)備,例如設(shè)備18、20(圖1的下層12c)當(dāng)中的特定應(yīng)用解決方案或“業(yè)務(wù)”邏輯細(xì)節(jié)的意義上是通用的。應(yīng)用層管理器30在例如節(jié)點(diǎn)、例如設(shè)備18、20,上處理從函數(shù)到函數(shù)的“傳遞取舍(pass-off)”(目前操作的函數(shù)中的變化)。這些傳遞取舍是由在節(jié)點(diǎn)或設(shè)備18、20中執(zhí)行的實(shí)際狀態(tài)函數(shù)請(qǐng)求的。
應(yīng)用層管理器30利用過(guò)渡表(圖4)來(lái)完成這種“傳遞取舍”(目前操作的函數(shù)中的變化),其中過(guò)渡表充當(dāng)用于狀態(tài)函數(shù)的中央描述符。到應(yīng)用層管理器30的輸入包括經(jīng)由接口32來(lái)自網(wǎng)絡(luò)層的解析消息。應(yīng)用層管理器30包括經(jīng)由來(lái)自中斷接口34的處理器外圍中斷的基于中斷和輪詢的輸入和經(jīng)由接口36的輪詢傳感器/外圍輸入。
應(yīng)用層管理器30涉及充分表征輸入,以應(yīng)用規(guī)定配置、所存儲(chǔ)的數(shù)據(jù)和/或促成消息生成中的變化的規(guī)則38。應(yīng)用層管理器30具有規(guī)則38和配置管理器40,以及消息生成器/解析器42。應(yīng)用層管理器30使用網(wǎng)絡(luò)消息和基于傳感器/處理器外圍的輸入、本地?cái)?shù)據(jù)存儲(chǔ)44(用于過(guò)渡表)和列表、配置管理功能、規(guī)則集,以及報(bào)告生成能力,如圖所示。
邊緣應(yīng)用層體系架構(gòu)
參考圖3,示出了應(yīng)用模塊集合50,該應(yīng)用模塊集合50包括用于邊緣設(shè)備18和20(圖1)的應(yīng)用層50。應(yīng)用模塊集合50包括由應(yīng)用層管理器(圖4)管理的層52和不由應(yīng)用層管理器管理的層54。在這個(gè)實(shí)施例中,應(yīng)用層管理器與在WSN的邊緣處使用的這些其它固件模塊(例如,無(wú)線網(wǎng)絡(luò)模塊、EDFF,等等,未示出)分開(kāi),例如隔離,以便在應(yīng)用層代碼中應(yīng)用變化而不需要對(duì)這些其它模塊中的代碼進(jìn)行改變。此外,如圖所示,對(duì)運(yùn)動(dòng)ISR和運(yùn)動(dòng)濾波器的實(shí)時(shí)處理不由應(yīng)用層管理器處理,而是運(yùn)動(dòng)報(bào)告生成器和心跳生成器由應(yīng)用層管理器處理。
在圖3的例子中繪出的應(yīng)用模塊集合50包括由應(yīng)用層管理的函數(shù),例如,與堆棧56通信的運(yùn)動(dòng)報(bào)告生成器53a和心跳生成器53b。通過(guò)理解應(yīng)用層52的工作的細(xì)節(jié)而無(wú)需完全理解這些其它隔離的模塊的全部細(xì)節(jié),對(duì)應(yīng)用層52的改變是可能的。這是期望的,因?yàn)椴煌M的個(gè)人和/或系統(tǒng)可以被分派相應(yīng)模塊的編碼和維護(hù)的任務(wù)。而且,應(yīng)用層52以支持應(yīng)用層的部分(例如,個(gè)人的業(yè)務(wù)規(guī)則、報(bào)告、過(guò)濾器,以及其它功能)的升級(jí)而無(wú)需整個(gè)應(yīng)用層升級(jí)的通用方式被配置。
此外,圖3繪出了在應(yīng)用模塊集合中運(yùn)行并與如下闡述的過(guò)渡表交互的各種過(guò)程間的狀態(tài)圖。
現(xiàn)在參考圖4,示出了涉及應(yīng)用層管理器50(App_Mgr())的示例性情形,其中存在兩個(gè)狀態(tài)(具有函數(shù)A、B的狀態(tài)1,及具有函數(shù)D和E的狀態(tài)2)。過(guò)渡表支配狀態(tài)過(guò)渡。
過(guò)渡表示出,基于機(jī)器的當(dāng)前狀態(tài)以及其它輸入,有限半自動(dòng)機(jī)或有限狀態(tài)機(jī)將移動(dòng)到什么狀態(tài)(或者在非確定有限狀態(tài)自動(dòng)機(jī)的情況下是多個(gè)什么狀態(tài))。狀態(tài)表實(shí)質(zhì)上是一個(gè)真值表,其中一些輸入是當(dāng)前狀態(tài)并且輸出包括連同其它輸出一起的下一個(gè)狀態(tài)。狀態(tài)表是指定狀態(tài)機(jī)的幾種途徑之一,其它途徑是狀態(tài)圖和特征方程。
狀態(tài)1是正常狀態(tài)并具有入口點(diǎn),“Func A”。通常,狀態(tài)1執(zhí)行請(qǐng)求“Func B”的“Func A”,“Func B”請(qǐng)求“Func C”的執(zhí)行。在該例中,狀況發(fā)生(實(shí)際狀況是特定于實(shí)現(xiàn)的并且其細(xì)節(jié)對(duì)于理解下文不是必需的)。在這種發(fā)生狀況的情況下,當(dāng)“Func B”請(qǐng)求“Func D”而不是“Func C”的執(zhí)行時(shí),狀態(tài)1過(guò)渡到狀態(tài)2。狀態(tài)2可以存在僅一個(gè)周期(D-E-退出)或多個(gè)周期(D-E-D-E-...-退出)。但是,當(dāng)退出在這個(gè)例子中出現(xiàn)時(shí),它這樣做而不調(diào)用任何函數(shù)。缺省地,AppMgr的空閑函數(shù)運(yùn)行Func A,因?yàn)樗侨肟邳c(diǎn)函數(shù)。
應(yīng)用層模塊化
參考圖5,運(yùn)動(dòng)傳感器上的“典型”應(yīng)用60利用中斷例程處理運(yùn)動(dòng)傳感器的原始數(shù)據(jù),運(yùn)動(dòng)傳感器中斷服務(wù)路由直接調(diào)用維護(hù)其自己的狀態(tài)的運(yùn)動(dòng)過(guò)濾器并且,在適當(dāng)?shù)臅r(shí)候,聲明“運(yùn)動(dòng)事件”62。運(yùn)動(dòng)事件由運(yùn)動(dòng)報(bào)告生成器處理64(在或許一位的非確定性等待時(shí)間之后),其中運(yùn)動(dòng)報(bào)告生成器調(diào)用無(wú)線程序堆棧來(lái)將報(bào)告放到那個(gè)堆棧的傳出隊(duì)列中。運(yùn)動(dòng)報(bào)告生成器等待66ACK消息并在必要的情況下重新發(fā)送消息,直到接收到ACK。心跳消息68被周期性地生成并放到無(wú)線堆棧傳出消息隊(duì)列中,并等待ACK。(在輸送失敗后,心跳消息不被重新提交,但是在上次發(fā)送的結(jié)果從無(wú)線堆棧獲得之前不發(fā)送新的心跳消息)。
現(xiàn)在參考圖6,應(yīng)用層被配置成通過(guò)定義應(yīng)用層的不同部分并將其鏈接到一起來(lái)滿足模塊化的需求,使得各個(gè)部分經(jīng)無(wú)線鏈路可更新而不破壞整體應(yīng)用。應(yīng)用層實(shí)例化72用于應(yīng)用層“機(jī)器”的基本構(gòu)建塊的“對(duì)象”。該對(duì)象具有函數(shù)指針的陣列,其中每個(gè)函數(shù)充當(dāng)“保持器”,例如,跟蹤74哪個(gè)函數(shù)在機(jī)器中運(yùn)行(即,哪個(gè)陣列索引有效)的特定的狀態(tài)和特殊的管理函數(shù)(應(yīng)用層管理器30或“AppMgr”)的保持。
狀態(tài)過(guò)渡是通過(guò)當(dāng)前函數(shù)將函數(shù)控制傳遞76到下一個(gè)適當(dāng)函數(shù)來(lái)實(shí)現(xiàn)的,從而通過(guò)改變76這個(gè)索引(或者請(qǐng)求AppMgr改變?cè)撍饕?標(biāo)記進(jìn)入下一個(gè)狀態(tài)的入口(例如,圖4中的FuncD)。AppMgr對(duì)于駐留在各個(gè)狀態(tài)函數(shù)中而不是AppMgr中的“硬連線”業(yè)務(wù)邏輯是通用的,并且各個(gè)狀態(tài)是通過(guò)用從諸如網(wǎng)關(guān)的外部主機(jī)發(fā)送的對(duì)應(yīng)函數(shù)的新版本替換那個(gè)函數(shù)來(lái)改變的。因此,對(duì)被允許的狀態(tài)過(guò)渡進(jìn)行改變(或者添加新過(guò)渡或者刪除舊過(guò)渡)是通過(guò)利用新函數(shù)替換參與狀態(tài)改變的函數(shù)來(lái)實(shí)現(xiàn)的。
在一些實(shí)施例中,AppMgr被配置78為實(shí)際改變用于當(dāng)前狀態(tài)函數(shù)的當(dāng)前索引值,而在其它實(shí)施例中,舊函數(shù)直接激活80新函數(shù),而不使用AppMgr()作為中介。這是因?yàn)锳ppMgr具有被允許的過(guò)渡的映射82并且84檢查這種映射的違反(即,給定的函數(shù)試圖將控制傳遞到另一個(gè)函數(shù)并且在這樣做時(shí)進(jìn)行不允許的狀態(tài)過(guò)渡)。這有助于驗(yàn)證對(duì)狀態(tài)機(jī)行為的改變是有效的并且對(duì)狀態(tài)機(jī)行為的改變實(shí)際發(fā)生,因?yàn)殄e(cuò)誤消息將在錯(cuò)誤的狀態(tài)改變被函數(shù)請(qǐng)求時(shí)由AppMgr()生成86。否則,各個(gè)狀態(tài)是通過(guò)用對(duì)應(yīng)函數(shù)的新版本替換那個(gè)函數(shù)來(lái)改變的88。
示例應(yīng)用
令p_AppFunc[i]是指向第i個(gè)應(yīng)用函數(shù)的指針。令N_i是由AppMgr()維護(hù)的“當(dāng)前索引”值。N_i是全局變量,其從通過(guò)AppMgr()的一次通過(guò)到下一次保留其值。
AppMgr是由(EDFF)調(diào)度器執(zhí)行的根函數(shù),諸如在邊緣設(shè)備上運(yùn)行的操作系統(tǒng)中。AppMgr每隔幾毫秒完全通過(guò)運(yùn)行。每次AppMgr()運(yùn)行時(shí),AppMgr執(zhí)行由p_AppFunc[N_i]指向的函數(shù)。在一些實(shí)施例中,狀態(tài)機(jī)可被實(shí)現(xiàn)為數(shù)組的集合,而在更復(fù)雜的實(shí)現(xiàn)中,狀態(tài)機(jī)被實(shí)現(xiàn)為通過(guò)鏈接鏈表鏈接的函數(shù)的集合,以允許狀態(tài)機(jī)中數(shù)目不確定的狀態(tài)。
對(duì)于一些狀態(tài),可能只需要一個(gè)函數(shù)調(diào)用。即,p_AppFunc[N_i]將運(yùn)行一次,然后N_i將改變?yōu)椴煌闹?,比如N_k,使得在AppMgr()下次調(diào)用時(shí),將進(jìn)入不同的狀態(tài)(即,p_AppFunc[N_k]將運(yùn)行)。對(duì)于其它狀態(tài),對(duì)應(yīng)的函數(shù)可以在N_i改變之前運(yùn)行多次。單次運(yùn)行函數(shù)的例子將是報(bào)告的發(fā)送。多次運(yùn)行函數(shù)的例子將是作用于來(lái)自傳感器設(shè)備的原始數(shù)據(jù)的傳感器過(guò)濾器的活動(dòng)。
各種函數(shù)p_AppFunc[i]不僅決定何時(shí)它們應(yīng)當(dāng)請(qǐng)求AppMgr()進(jìn)行狀態(tài)變化,而且這些函數(shù)指示AppMgr()應(yīng)當(dāng)從哪些(一個(gè)或多個(gè))新函數(shù)(例如,N_i的哪些(一個(gè)或多個(gè))新值)中選擇,因?yàn)锳ppMgr()被配置為是相當(dāng)通用的并且因此所有的業(yè)務(wù)邏輯,包括狀態(tài)之間過(guò)渡的描述,都包含在p_AppFunc[]函數(shù)中。
同時(shí)動(dòng)作
兩個(gè)p_AppFunc[]函數(shù)需要在同時(shí)完成不同的任務(wù),例如,同時(shí)過(guò)濾來(lái)自兩個(gè)傳感器的數(shù)據(jù)(例如,消除開(kāi)關(guān)的抖動(dòng)和過(guò)濾來(lái)自加速計(jì)的數(shù)據(jù)。提供AppMgr的一種一般方法是一次運(yùn)行兩個(gè)狀態(tài)函數(shù)(每次通過(guò)AppMgr執(zhí)行這二者)。另一種方法保持AppMgr簡(jiǎn)單并且只需要應(yīng)用狀態(tài)具有彼此進(jìn)行調(diào)用的代碼并且因此彼此調(diào)用。即,當(dāng)p_AppFunc[N_i]的執(zhí)行終止時(shí),p_AppFunc[N_i]請(qǐng)求p_AppFunc[N_k]的執(zhí)行,反之亦然。實(shí)際上,這兩個(gè)應(yīng)用函數(shù)分割A(yù)ppMgr的時(shí)間和注意力,而無(wú)需AppMgr規(guī)劃時(shí)間分享。
p_AppFunc[]的各種版本在網(wǎng)關(guān)和云的可執(zhí)行代碼庫(kù)中被維護(hù),并且每個(gè)這種函數(shù)可以具有被用來(lái)區(qū)分函數(shù)的一個(gè)版本與另一個(gè)版本的ID號(hào)(并且在許多情況下,函數(shù)的代或版本的區(qū)別可以小但重要,因此得到完全正確的ID號(hào))。在給定函數(shù)的內(nèi)部,所請(qǐng)求的對(duì)不同函數(shù)或狀態(tài)的改變變得相對(duì)于代碼版本非常具體,因此由函數(shù)用來(lái)請(qǐng)求狀態(tài)改變(函數(shù)改變)的參數(shù)實(shí)際是新函數(shù)的ID號(hào)是合理的。
管理版本的簡(jiǎn)單途徑是給予應(yīng)用層狀態(tài)函數(shù)它們自己的文件類型。文件類型作為例如閃存中的文件索引中的字段之一被維護(hù),使得在引導(dǎo)期間AppMgr()的初始化過(guò)程在閃存中搜索那種類型的文件,并且產(chǎn)生函數(shù)指針的數(shù)組,其中索引i從0運(yùn)行到最大值i_max。
在這個(gè)初始化期間,AppMgr()將每個(gè)值i映射到函數(shù)p_AppFunc[i]和那個(gè)函數(shù)的對(duì)應(yīng)函數(shù)ID,并且產(chǎn)生對(duì)于每個(gè)函數(shù)ID示出對(duì)應(yīng)索引值i以及允許的狀態(tài)過(guò)渡的表(從當(dāng)前函數(shù)可獲得的函數(shù)的函數(shù)ID)。
例如,在當(dāng)前函數(shù)的操作過(guò)程中,例如,其函數(shù)ID為例如0x31C7的p_AppFunc[N_i],函數(shù)可以向AppMgr()返回為0x396B的返回值。這個(gè)返回值是運(yùn)行具有函數(shù)ID“0x396B”的函數(shù)p_AppFunc[]的請(qǐng)求。AppMgr()使用狀態(tài)表來(lái)確定運(yùn)行具有函數(shù)ID“0x396B”的p_AppFunc[]的請(qǐng)求是否是對(duì)函數(shù)ID 0x31C7允許的過(guò)渡,并且如果是的話,確定什么i值對(duì)應(yīng)于函數(shù)0x396B。如果它是有效的請(qǐng)求,則AppMgr()將N_i設(shè)置為等于對(duì)應(yīng)于函數(shù)ID“0x396B”的i的新值,并且在AppMgr()下一次執(zhí)行時(shí),新函數(shù)ID“0x396B”將運(yùn)行。
在AppMgr()的初始化和狀態(tài)表產(chǎn)生期間,簡(jiǎn)單的圖形分析算法運(yùn)行,以確保每個(gè)狀態(tài)是可獲得的(沒(méi)有狀態(tài)是孤立的)并確保所有狀態(tài)都是單個(gè)狀態(tài)機(jī)的一部分(即,不存在兩個(gè)更小的并且完全分開(kāi)的狀態(tài)集)。狀態(tài)表的有效性還要求沒(méi)有狀態(tài)過(guò)渡可以涉及到不存在的函數(shù)的過(guò)渡。
AppMgr()總是具有當(dāng)索引N_i不確定時(shí)運(yùn)行的主干(stem)狀態(tài)(空閑狀態(tài)),該主干狀態(tài)具有函數(shù)ID 0x0001。狀態(tài)機(jī)的初始化在第二狀態(tài)(初始化狀態(tài))下完成,其具有自己的通用函數(shù),具有函數(shù)ID 0x0000。在任何函數(shù)改變的任何時(shí)候(例如,通過(guò)一個(gè)或多個(gè)新函數(shù)的無(wú)線下載),AppMgr()將重新運(yùn)行函數(shù)0x0000,然后過(guò)渡到狀態(tài)函數(shù)0x0001。進(jìn)一步的需求是完整函數(shù)集中用戶提供的函數(shù)中一個(gè)且僅一個(gè)被識(shí)別為入口狀態(tài)。這是自動(dòng)被0x0001調(diào)用的狀態(tài)。從用戶提供的函數(shù)上那一點(diǎn)開(kāi)始請(qǐng)求狀態(tài)改變,作為其返回值的一部分。
返回到圖3的狀態(tài)圖和上面提到的表,下表現(xiàn)在利用上述示例應(yīng)用的狀態(tài)過(guò)渡來(lái)填充。
上面的例子對(duì)于概念的說(shuō)明是簡(jiǎn)單的。但是,也可以使用更復(fù)雜的應(yīng)用集合。例如,假設(shè)在一個(gè)節(jié)點(diǎn)中有兩個(gè)“狀態(tài)”–第一個(gè)狀態(tài)對(duì)應(yīng)于函數(shù)A、B和C在連續(xù)循環(huán)中的永久運(yùn)行,并且第二個(gè)狀態(tài)對(duì)應(yīng)于函數(shù)D和E在另一個(gè)永久循環(huán)中的運(yùn)行。在第一狀態(tài)(正常狀態(tài))下,函數(shù)A(“入口函數(shù)”)運(yùn)行至完成并向AppMgr()請(qǐng)求其運(yùn)行函數(shù)B。當(dāng)函數(shù)B完成后,它請(qǐng)求函數(shù)C,函數(shù)C又請(qǐng)求函數(shù)A。因?yàn)楹瘮?shù)A是入口函數(shù)并且循環(huán)A-B-C-A...是閉環(huán),所以函數(shù)D和E通常不會(huì)運(yùn)行。但是,在特殊條件下,假設(shè)函數(shù)B在它退出時(shí)請(qǐng)求函數(shù)D而不是C。于是函數(shù)D和E在循環(huán)(D-E-D-E...)中運(yùn)行,直到其中一個(gè)請(qǐng)求在第一個(gè)循環(huán)中的函數(shù)。以這種方式,函數(shù)或函數(shù)集對(duì)應(yīng)于狀態(tài),并且在每個(gè)狀態(tài)下操作的函數(shù)管理狀態(tài)過(guò)渡。
當(dāng)函數(shù)退出而沒(méi)有請(qǐng)求新的函數(shù)時(shí),AppMgr空閑將簡(jiǎn)單地再次運(yùn)行入口點(diǎn)函數(shù)。在一些情況下,對(duì)于非常簡(jiǎn)單的節(jié)點(diǎn),可能沒(méi)有入口函數(shù),在這種情況下,空閑函數(shù)將僅僅運(yùn)行其本身,直到事件啟動(dòng)的函數(shù)運(yùn)行。
返回去參考圖4,假想的(通用)情形,其中有兩個(gè)狀態(tài)(具有函數(shù)A、B和C的狀態(tài)1,以及具有函數(shù)D和E的狀態(tài)2)。狀態(tài)1是正常狀態(tài)并具有入口點(diǎn),F(xiàn)unc A。在特殊情況下,當(dāng)Func B請(qǐng)求Func D而不是Func C的執(zhí)行時(shí),狀態(tài)1過(guò)渡到狀態(tài)2。狀態(tài)2可以存在僅一個(gè)周期(D-E-退出)或多個(gè)周期(D-E-D-E-...-退出),但是在這個(gè)例子中當(dāng)退出發(fā)生時(shí),它這樣做而不調(diào)用任何函數(shù)。缺省地,AppMgr的空閑函數(shù)運(yùn)行Func A,因?yàn)樗侨肟邳c(diǎn)函數(shù)。
圖7示出了具有關(guān)于圖1至6所述的WSN的特征并且具有本文所述的各種功能的安全系統(tǒng)的例子。如圖7中所示,關(guān)聯(lián)處理從某些受限節(jié)點(diǎn)接收輸入(但這些節(jié)點(diǎn)也可以是全功能節(jié)點(diǎn))。這些輸入可以包括憑證信息和視頻信息,并且相關(guān)處理可以產(chǎn)生經(jīng)網(wǎng)絡(luò)發(fā)送的相關(guān)結(jié)果。背景管理處理從某些受限節(jié)點(diǎn)接收輸入(雖然這些節(jié)點(diǎn)也可以是全功能節(jié)點(diǎn)),例如,憑證信息以及視頻和分組信息,并且執(zhí)行背景處理,其結(jié)果經(jīng)網(wǎng)絡(luò)發(fā)送。網(wǎng)絡(luò)支持緊急出口指示器;緊急攝像頭以及分布式規(guī)則處理和規(guī)則引擎/消息處理的操作。范圍擴(kuò)展器與例如網(wǎng)關(guān)一起使用,并且,如圖所示,實(shí)時(shí)定位系統(tǒng)從不同傳感器(例如,受限的類型)接收輸入。經(jīng)由云計(jì)算配置到WSN的服務(wù)器接口以及一些網(wǎng)絡(luò)的部分可以作為子網(wǎng)運(yùn)行。
除了在傳感器的范圍之內(nèi)的區(qū)域中探測(cè)到某物的指示,傳感器還提供可被用來(lái)評(píng)估那個(gè)指示是什么的詳細(xì)附加信息,而無(wú)需入侵探測(cè)面板執(zhí)行對(duì)特定傳感器的輸入的大量分析。
例如,運(yùn)動(dòng)探測(cè)器可被配置為分析在房間內(nèi)移動(dòng)的溫暖主體的熱簽名,如果該主體是人或?qū)櫸锏脑?。那個(gè)分析的結(jié)果將是傳達(dá)關(guān)于探測(cè)到的主體的信息的消息或數(shù)據(jù)。因此,不同傳感器被用來(lái)以適當(dāng)?shù)慕M合來(lái)感測(cè)聲音、運(yùn)動(dòng)、振動(dòng)、壓力、熱、圖像等等,以探測(cè)在入侵探測(cè)面板處的真實(shí)或通過(guò)驗(yàn)證的報(bào)警條件。
辨別軟件可被用來(lái)區(qū)分是人的對(duì)象和是動(dòng)物的對(duì)象;其他面部辨別軟件可以內(nèi)置到相機(jī)中并被用來(lái)驗(yàn)證周邊入侵是辨別出的被授權(quán)的個(gè)人的結(jié)果。這種相機(jī)將包括處理器和存儲(chǔ)器和識(shí)別軟件,以處理由相機(jī)(捕獲的圖像)的輸入并產(chǎn)生元數(shù)據(jù),以傳達(dá)關(guān)于由相機(jī)捕獲的個(gè)體的辨別或缺乏辨別的信息。處理還可以作為替代地或另外地包括關(guān)于在由視頻相機(jī)捕獲/監(jiān)控的區(qū)域中的個(gè)體的特點(diǎn)的信息。因此,依賴于具體情況,信息將是從對(duì)到傳感器的、給出周邊入侵的特點(diǎn)的輸入執(zhí)行增強(qiáng)的分析的增強(qiáng)的運(yùn)動(dòng)探測(cè)器和視頻相機(jī)接收到的元數(shù)據(jù)或者是得自尋求建立對(duì)象的辨別的非常復(fù)雜的處理的元數(shù)據(jù)。
傳感器設(shè)備可以集成多個(gè)傳感器,以生成更復(fù)雜的輸出,使得入侵探測(cè)面板可以利用其處理能力通過(guò)建立環(huán)境的虛擬圖像或簽名以作出關(guān)于侵入的有效性的智能決策來(lái)執(zhí)行分析環(huán)境的算法。
存儲(chǔ)器存儲(chǔ)由入侵探測(cè)面板的處理器使用的程序指令和數(shù)據(jù)。存儲(chǔ)器可以是隨機(jī)存取存儲(chǔ)器和只讀存儲(chǔ)器的適當(dāng)組合,并且可以托管合適的程序指令(例如,固件或操作軟件)以及配置和操作數(shù)據(jù)并且可以被組織為文件系統(tǒng)或其他。所存儲(chǔ)的程序指令可以包括用于認(rèn)證一個(gè)或多個(gè)用戶的一個(gè)或多個(gè)認(rèn)證過(guò)程。存儲(chǔ)在面板的存儲(chǔ)器中的程序指令還可以存儲(chǔ)軟件組件,從而允許網(wǎng)絡(luò)通信和到數(shù)據(jù)網(wǎng)絡(luò)的連接的建立。軟件組件可以,例如,包括互聯(lián)網(wǎng)協(xié)議(IP)棧,以及用于各種接口的驅(qū)動(dòng)程序組件,包括接口和鍵盤。適于建立連接并跨網(wǎng)絡(luò)進(jìn)行通信的其它軟件組件對(duì)于普通技術(shù)人員將是顯而易見(jiàn)的。
存儲(chǔ)在存儲(chǔ)器中的程序指令,連同配置數(shù)據(jù)一起,可以控制面板的整體操作。
監(jiān)控服務(wù)器包括一個(gè)或多個(gè)處理設(shè)備(例如,微處理器)、網(wǎng)絡(luò)接口和存儲(chǔ)器(都未示出)。監(jiān)控服務(wù)器可以物理地采取機(jī)架安裝卡的形式并且可以與一個(gè)或多個(gè)操作者終端(未示出)通信。示例監(jiān)控服務(wù)器是SURGARDTMSG-System III Virtual,或類似的系統(tǒng)。
每個(gè)監(jiān)控服務(wù)器的處理器充當(dāng)用于每個(gè)監(jiān)控服務(wù)器的控制器,并且與每個(gè)服務(wù)器通信并控制整體操作。處理器可以包括存儲(chǔ)器,或者與其通信,其中存儲(chǔ)器存儲(chǔ)處理器可執(zhí)行指令,從而控制監(jiān)控服務(wù)器的整體操作。合適的軟件使每個(gè)監(jiān)控服務(wù)器能夠接收?qǐng)?bào)警并導(dǎo)致適當(dāng)?shù)膭?dòng)作發(fā)生。軟件可以包括合適的互聯(lián)網(wǎng)協(xié)議(IP)棧和應(yīng)用/客戶端。
中央監(jiān)控站的每個(gè)監(jiān)控服務(wù)器可以與IP地址和(一個(gè)或多個(gè))端口關(guān)聯(lián),它通過(guò)其與控制面板和/或用戶設(shè)備進(jìn)行通信,以處理報(bào)警事件等。監(jiān)控服務(wù)器地址可以是靜態(tài)的,并且因此總是對(duì)入侵探測(cè)面板識(shí)別監(jiān)控服務(wù)器中特定的一個(gè)。作為替代,動(dòng)態(tài)地址可以被使用,并且與通過(guò)域名服務(wù)解析的靜態(tài)域名相關(guān)聯(lián)。
網(wǎng)絡(luò)接口卡與網(wǎng)絡(luò)接口,以接收進(jìn)入的信號(hào),并且可以例如采取以太網(wǎng)網(wǎng)絡(luò)接口卡(NIC)的形式。服務(wù)器可以是計(jì)算機(jī)、瘦客戶端等等,接收到的代表報(bào)警事件的數(shù)據(jù)被傳遞到服務(wù)器,用于由人類操作員處理。監(jiān)控站還可以包括,或在數(shù)據(jù)庫(kù)引擎的控制下能訪問(wèn),包括數(shù)據(jù)庫(kù)的訂戶數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)可以包含對(duì)應(yīng)于到面板,就像由監(jiān)控站提供服務(wù)的面板,的各個(gè)訂戶設(shè)備/過(guò)程的條目。
本文描述的過(guò)程的全部或部分及其各種修改(以下稱為“過(guò)程”)可以至少部分地經(jīng)由計(jì)算機(jī)程序產(chǎn)品來(lái)實(shí)現(xiàn),用于由數(shù)據(jù)處理裝置,例如可編程處理器、計(jì)算機(jī)或多個(gè)計(jì)算機(jī)來(lái)執(zhí)行或者控制數(shù)據(jù)處理裝置的操作,其中計(jì)算機(jī)程序產(chǎn)品也就是有形地體現(xiàn)在一個(gè)或多個(gè)有形的物理硬件存儲(chǔ)設(shè)備中的計(jì)算機(jī)程序,該有形的物理硬件存儲(chǔ)設(shè)備為計(jì)算機(jī)和/或機(jī)器可讀存儲(chǔ)設(shè)備。計(jì)算機(jī)程序可以用任何形式的編程語(yǔ)言編寫(xiě),包括編譯或解釋語(yǔ)言,并且它可以以任何形式部署,包括作為獨(dú)立程序或作為模塊、組件、子例程或適合在計(jì)算環(huán)境中使用的其它單元。計(jì)算機(jī)程序可被部署成在一個(gè)計(jì)算機(jī)上或在一個(gè)站點(diǎn)的多個(gè)計(jì)算機(jī)上執(zhí)行或者跨多個(gè)站點(diǎn)分布并由網(wǎng)絡(luò)互連。
與實(shí)現(xiàn)過(guò)程相關(guān)聯(lián)的動(dòng)作可以由執(zhí)行一個(gè)或多個(gè)計(jì)算機(jī)程序以執(zhí)行校準(zhǔn)過(guò)程的功能的一個(gè)或多個(gè)可編程處理器來(lái)執(zhí)行。過(guò)程的全部或部分可被實(shí)現(xiàn)為專用邏輯電路,例如FPGA(現(xiàn)場(chǎng)可編程門陣列)和/或ASIC(專用集成電路)。
舉例來(lái)說(shuō),適于計(jì)算機(jī)程序的執(zhí)行的處理器包括通用和專用微處理器,以及任何類型的數(shù)字計(jì)算機(jī)的任何一個(gè)或多個(gè)處理器。一般而言,處理器將從只讀存儲(chǔ)區(qū)或隨機(jī)存取存儲(chǔ)區(qū)域或兩者接收指令和數(shù)據(jù)。計(jì)算機(jī)(包括服務(wù)器)的元件包括用于執(zhí)行指令的一個(gè)或多個(gè)處理器和用于存儲(chǔ)指令和數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)區(qū)域設(shè)備。一般而言,計(jì)算機(jī)還將包括一個(gè)或多個(gè)機(jī)器可讀存儲(chǔ)介質(zhì),諸如用于存儲(chǔ)數(shù)據(jù)的大容量存儲(chǔ)設(shè)備,例如磁、磁光盤或光盤,或者操作耦合到該一個(gè)或多個(gè)機(jī)器可讀存儲(chǔ)介質(zhì)便從該一個(gè)或多個(gè)機(jī)器可讀存儲(chǔ)介質(zhì)接收數(shù)據(jù),或?qū)?shù)據(jù)傳送到該一個(gè)或多個(gè)機(jī)器可讀存儲(chǔ)介質(zhì),或兩者兼有。
適于體現(xiàn)計(jì)算機(jī)程序指令和數(shù)據(jù)的有形物理硬件存儲(chǔ)設(shè)備包括所有形式的非易失性儲(chǔ)存器,舉例來(lái)說(shuō),包括半導(dǎo)體存儲(chǔ)區(qū)域設(shè)備,例如EPROM、EEPROM和閃存存儲(chǔ)區(qū)域設(shè)備;磁盤,例如內(nèi)部硬盤或可移動(dòng)盤;磁-光盤;及CD-ROM和DVD-ROM盤,以及易失性計(jì)算機(jī)存儲(chǔ)器,例如,諸如靜態(tài)和動(dòng)態(tài)RAM的RAM以及可擦除存儲(chǔ)器,例如閃存。
此外,附圖中繪出的邏輯流不要求所示出的特定次序或順序次序才能達(dá)到期望的結(jié)果。此外,可以提供其它動(dòng)作,或者動(dòng)作可以從所描述的流程被去除,并且其它組件可被添加到或從所描述的系統(tǒng)中去除。同樣,附圖中所繪出的動(dòng)作可以由不同的實(shí)體執(zhí)行或者被合并。
本文所述的不同實(shí)施例的元素可以組合,以形成未在上面具體闡述的其它實(shí)施例。元素可被排除在本文所述的過(guò)程、計(jì)算機(jī)程序、網(wǎng)頁(yè)等等之外,而不會(huì)不利地影響它們的操作。此外,各種獨(dú)立的元素可被組合成一個(gè)或多個(gè)個(gè)別的元素,以執(zhí)行本文所述的功能。
本文未具體描述的其它實(shí)現(xiàn)也在以下權(quán)利要求書(shū)的范圍之內(nèi)。