無線傳感器網(wǎng)絡(luò)技術(shù)及應(yīng)用(熊茂華 熊昕)十_第1頁
無線傳感器網(wǎng)絡(luò)技術(shù)及應(yīng)用(熊茂華 熊昕)十_第2頁
無線傳感器網(wǎng)絡(luò)技術(shù)及應(yīng)用(熊茂華 熊昕)十_第3頁
無線傳感器網(wǎng)絡(luò)技術(shù)及應(yīng)用(熊茂華 熊昕)十_第4頁
無線傳感器網(wǎng)絡(luò)技術(shù)及應(yīng)用(熊茂華 熊昕)十_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第10章無線傳感器網(wǎng)絡(luò)中間件技術(shù)10.1無線傳感器中間件體系結(jié)構(gòu)及功能10.2基于Agent的無線傳感器網(wǎng)絡(luò)中間件DisWare10.3DisWare中間件平臺(tái)軟件MeshIDE10.4無線多媒體傳感器網(wǎng)絡(luò)中間件技術(shù)10.5支持多應(yīng)用任務(wù)的WSN中間件的設(shè)計(jì)

10.1無線傳感器中間件體系結(jié)構(gòu)及功能

隨著中間件、網(wǎng)格、P2P等技術(shù)的出現(xiàn),分布式計(jì)算取得了很大的發(fā)展。中間件作為處于操作系統(tǒng)與應(yīng)用程序之間的系統(tǒng)軟件,通過對底層組件異構(gòu)性的屏蔽,提供一個(gè)統(tǒng)一的運(yùn)行平臺(tái)和友好的開發(fā)環(huán)境,并隨著技術(shù)的進(jìn)一步發(fā)展,具有了動(dòng)態(tài)重配置、可擴(kuò)展、上下文敏感等特征。無論是從節(jié)點(diǎn)的物理分布,還是從節(jié)點(diǎn)間協(xié)同處理及系統(tǒng)資源共享上來看,無線傳感器網(wǎng)絡(luò)都是一個(gè)分布式系統(tǒng),同樣適用分布式系統(tǒng)的處理方法,分布式計(jì)算中間件也是自然選擇。10.1.1通用的中間件的定義

1.無線傳感器網(wǎng)絡(luò)中間件的定義

中間件是介于操作系統(tǒng)(包括底層通信協(xié)議)和各種分布式應(yīng)用程序之間的一個(gè)軟件層。其主要作用是建立分布式軟件模塊之間互操作的機(jī)制,屏蔽底層分布式環(huán)境的復(fù)雜性和異構(gòu)性,為處于上層的應(yīng)用軟件提供運(yùn)行與開發(fā)環(huán)境。

無線傳感器網(wǎng)絡(luò)的中間件軟件設(shè)計(jì)必須遵循以下原則:

(1)由于節(jié)點(diǎn)能量、計(jì)算、存儲(chǔ)能力及通信帶寬有限,因此無線傳感器網(wǎng)絡(luò)中間件必須是輕量級的,且能夠在性能和資源消耗間取得平衡。

(2)傳感網(wǎng)環(huán)境較為復(fù)雜,中間件軟件應(yīng)提供較好的容錯(cuò)機(jī)制、自適應(yīng)和自維護(hù)機(jī)制。

(3)中間件軟件的下層支撐是各種不同類型的硬件節(jié)點(diǎn)和操作系統(tǒng)(TinyOS、MantisOS、SOS),因此,其本身須能夠屏蔽網(wǎng)絡(luò)底層的異構(gòu)性。

(4)中間件軟件的上層是各種應(yīng)用,因此,需要為各類上層應(yīng)用提供統(tǒng)一的、可擴(kuò)展的接口,以便于應(yīng)用的開發(fā)。

2.無線傳感器網(wǎng)絡(luò)中間件面臨的問題

設(shè)計(jì)和實(shí)現(xiàn)一個(gè)成功的中間件并非易事,必須面臨許多問題:

(1)由于節(jié)點(diǎn)的能量、計(jì)算、存儲(chǔ)能力和通信帶寬資源有限,因此中間件必須是輕量級的。另外,中間件也應(yīng)該提供優(yōu)化整個(gè)系統(tǒng)性能的資源分配機(jī)制,在性能和資源消耗之間取得平衡。

(2)WSN通常節(jié)點(diǎn)數(shù)目龐大,加上所處環(huán)境的限制,人工部署、維護(hù)也相對困難,所以中間件應(yīng)該提供容錯(cuò)、自適應(yīng)和自維護(hù)機(jī)制,執(zhí)行無干涉操作。

(3)在WSN中,可從應(yīng)用程序相關(guān)和網(wǎng)絡(luò)相關(guān)兩種角度看待QoS(QualityofService,服務(wù)質(zhì)量)。前者把QoS視為應(yīng)用程序相關(guān)的一些參數(shù),如覆蓋、活動(dòng)節(jié)點(diǎn)數(shù)、評估的精確性等,后者考慮底層通信網(wǎng)絡(luò)怎樣有效使用網(wǎng)絡(luò)資源處理QoS約束的傳感數(shù)據(jù)。所以中間件的設(shè)計(jì)也要提供合適的QoS機(jī)制,在性能、延時(shí)和能量使用之間達(dá)到平衡。

(4)數(shù)據(jù)收集和處理是WSN的核心功能,然而大部分應(yīng)用中都包含了冗余信息,為縮小通信開銷和能量消耗,一般對數(shù)據(jù)進(jìn)行聚合和融合后傳給用戶,支持此數(shù)據(jù)處理的中間件往往需要網(wǎng)絡(luò)節(jié)點(diǎn)注入應(yīng)用程序相關(guān)知識(shí)。

(5)必須能夠靈活支持網(wǎng)絡(luò)在任何時(shí)候、任何地方擴(kuò)展,并且要維護(hù)一個(gè)可以接受的性能級別。同時(shí)具備自適應(yīng)由設(shè)備故障、障礙物等因素引起的動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境,支持傳感網(wǎng)絡(luò)的健壯操作。

(6)為方便應(yīng)用開發(fā),中間件應(yīng)為開發(fā)者針對各種各樣的異構(gòu)計(jì)算設(shè)備提供一個(gè)統(tǒng)一的系統(tǒng)視圖,提供編程抽象或者系統(tǒng)服務(wù),單個(gè)節(jié)點(diǎn)設(shè)備僅保留最小功能。

(7)有些傳感器節(jié)點(diǎn)部署于相對惡劣的環(huán)境,使得類似拒絕服務(wù)的惡意攻擊和入侵變得更加容易。此外,無線通信介質(zhì)很容易受竊聽包的注入損害網(wǎng)絡(luò)功能。為保護(hù)信息的完整、可信,避免各種攻擊的成功,中間件應(yīng)根據(jù)WSN的特點(diǎn)提供新的安全機(jī)制。10.1.2無線傳感器網(wǎng)絡(luò)中間件體系

1.中間件軟件的層次

一個(gè)完整的無線傳感器網(wǎng)絡(luò)中間件軟件應(yīng)當(dāng)包含一個(gè)運(yùn)行時(shí)環(huán)境以支持和協(xié)調(diào)多個(gè)應(yīng)用。同時(shí),還將提供一系列標(biāo)準(zhǔn)化系統(tǒng)服務(wù),如數(shù)據(jù)管理、數(shù)據(jù)融合、應(yīng)用目標(biāo)自適應(yīng)控制等,以延長無線傳感器網(wǎng)絡(luò)的生命周期。無線傳感器網(wǎng)絡(luò)中間件軟件在其整個(gè)系統(tǒng)結(jié)構(gòu)中的位置如圖10.1所示。從圖中可以看出,中間件軟件位于底層硬件平臺(tái)、操作系統(tǒng)與上層應(yīng)用系統(tǒng)之間,它為下層提供不同類型的適配接口,并提供面向上層應(yīng)用的開發(fā)接口。圖10.1中間件軟件在無線傳感器網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)中的位置

2.無線傳感器網(wǎng)絡(luò)中間件的關(guān)鍵技術(shù)

無線傳感器網(wǎng)絡(luò)中間件的關(guān)鍵技術(shù)至少包含以下幾個(gè)方面:

(1)資源調(diào)度技術(shù):為用戶提供透明統(tǒng)一的資源管理接口,為應(yīng)用開發(fā)提供動(dòng)態(tài)資源分配和優(yōu)化。

(2)安全保護(hù)技術(shù):在保證無線傳感器網(wǎng)絡(luò)資源充分利用的基礎(chǔ)上,為節(jié)點(diǎn)及網(wǎng)絡(luò)提供安全保障。

(3)異構(gòu)系統(tǒng)通信技術(shù):在具有不同介質(zhì)、不同電氣特性、不同協(xié)議的無線傳感器網(wǎng)絡(luò)業(yè)務(wù)間,屏蔽底層操作系統(tǒng)的復(fù)雜性,實(shí)現(xiàn)無縫通信與交互。

(4)分布式管理技術(shù):在高層交互實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)分布式信息處理和控制,構(gòu)建面向網(wǎng)絡(luò)的能量管理、拓?fù)涔芾怼?shù)據(jù)管理等。

3.無線傳感器網(wǎng)絡(luò)中間件體系

典型的無線傳感器網(wǎng)絡(luò)中間件軟件體系結(jié)構(gòu)見圖10.2,它主要分為四個(gè)層次:網(wǎng)絡(luò)適配層、基礎(chǔ)軟件層、應(yīng)用開發(fā)層和應(yīng)用業(yè)務(wù)適配層。其中,網(wǎng)絡(luò)適配層與基礎(chǔ)軟件層組成無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)嵌入式軟件的體系結(jié)構(gòu);應(yīng)用開發(fā)層和基礎(chǔ)軟件層組成無線傳感器網(wǎng)絡(luò)應(yīng)用支撐結(jié)構(gòu),支持應(yīng)用業(yè)務(wù)的開發(fā)與實(shí)現(xiàn)。圖10.2無線傳感器網(wǎng)絡(luò)中間件軟件體系結(jié)構(gòu)

1)網(wǎng)絡(luò)適配層

在網(wǎng)絡(luò)適配層中,網(wǎng)絡(luò)適配器實(shí)現(xiàn)對網(wǎng)絡(luò)底層(無線傳感器網(wǎng)絡(luò)基礎(chǔ)設(shè)施和操作系統(tǒng))的封裝。

2)基礎(chǔ)軟件層

基礎(chǔ)軟件層包含各種無線傳感器網(wǎng)絡(luò)中間件組件,具備靈活性、模塊性和可移植性。該層具體包括以下組件:

(1)網(wǎng)絡(luò)中間件組件:完成無線傳感器網(wǎng)絡(luò)接入、網(wǎng)絡(luò)生成、網(wǎng)絡(luò)自愈合、網(wǎng)絡(luò)連通性服務(wù)等。

(2)配置中間件組件:完成無線傳感器網(wǎng)絡(luò)的各種配置工作,如路由配置、拓?fù)浣Y(jié)構(gòu)調(diào)整等。

(3)功能中間件組件:完成無線傳感器網(wǎng)絡(luò)各種應(yīng)用業(yè)務(wù)的共性功能,提供功能框架接口。

(4)管理中間件組件:為網(wǎng)絡(luò)應(yīng)用業(yè)務(wù)實(shí)現(xiàn)各種管理功能,如資源管理、能量管理、生命期管理等。

(5)安全中間件組件:為應(yīng)用業(yè)務(wù)實(shí)現(xiàn)各種安全功能,例如安全管理、安全監(jiān)控、安全審計(jì)等。

3)應(yīng)用開發(fā)層

(1)應(yīng)用框架接口:提供無線傳感器網(wǎng)絡(luò)的各種功能描述和定義,具體的實(shí)現(xiàn)由基礎(chǔ)軟件層提供。

(2)開發(fā)環(huán)境:是無線傳感器網(wǎng)絡(luò)應(yīng)用的圖形化開發(fā)平臺(tái),建立在應(yīng)用框架接口基礎(chǔ)上,為應(yīng)用業(yè)務(wù)提供更高層次的應(yīng)用編程接口和設(shè)計(jì)模式。

(3)工具集:提供各種特制的開發(fā)工具,輔助無線傳感器網(wǎng)絡(luò)各種應(yīng)用業(yè)務(wù)的開發(fā)與實(shí)現(xiàn)。

4)應(yīng)用業(yè)務(wù)適配層

應(yīng)用業(yè)務(wù)適配層對各種應(yīng)用業(yè)務(wù)進(jìn)行封裝,解決基礎(chǔ)軟件層的變化和接口的不一致性問題。10.1.3無線傳感器網(wǎng)絡(luò)中間件設(shè)計(jì)方法

1.無線傳感器網(wǎng)絡(luò)中間件設(shè)計(jì)方法分類

WSN中間件支持應(yīng)用程序的設(shè)計(jì)、部署、維護(hù)及執(zhí)行。為了更好地實(shí)現(xiàn)這些目標(biāo),需要在任務(wù)與網(wǎng)絡(luò)的有效交互、任務(wù)分解、各節(jié)點(diǎn)間協(xié)同、數(shù)據(jù)處理、異構(gòu)抽象等方面提供各種機(jī)制。目前圍繞這些目標(biāo),提出了不同的設(shè)計(jì)方法。在有的文獻(xiàn)中提出WSN分布式處理分為單節(jié)點(diǎn)控制和網(wǎng)絡(luò)級分布式控制兩個(gè)層面,根據(jù)這一觀點(diǎn)并結(jié)合WSN中間件的底層編程范式,可把現(xiàn)有WSN中間件方法分為虛擬機(jī)(VirtualMachine)、基于數(shù)據(jù)庫(Database)、基于元組空間(TupleSpace)和事件驅(qū)動(dòng)(EventDriven)以及自適應(yīng)(Adaptive)中間件五類。基于數(shù)據(jù)庫和自適應(yīng)中間件通常使用耦合的通信范式(通常為異步通信方式),基于元組空間和事件驅(qū)動(dòng)中間件通?;诒容^靈活的去耦通信范式(通常為異步通信方式),如圖10.3所示。圖10.3中間件設(shè)計(jì)方法分類

2.中間件設(shè)計(jì)方法分析

根據(jù)上述分類方法,下面對每類中間件設(shè)計(jì)方法進(jìn)行介紹、分析,并根據(jù)可擴(kuò)展性、可靠性、自適應(yīng)性等對幾種典型設(shè)計(jì)方法進(jìn)行比較。

1)基于虛擬機(jī)的中間件

采用虛擬機(jī)的方法具有靈活性高、程序員開發(fā)方便等優(yōu)點(diǎn)。通常通過屏蔽底層硬件資源和系統(tǒng)軟件間的異構(gòu)性來提供靈活方便的編程接口。典型例子如Mate、MagnetOS、SensorWare等。

Mate、SensorWare和MagnetOS分別使用字節(jié)代碼包、Tcl腳本和Java對象,均可支持代碼的移動(dòng),進(jìn)行任務(wù)的遷移。Mate能夠?qū)SN的變化提供更好的自適應(yīng)和交互性,同時(shí)可以使用字節(jié)代碼包進(jìn)行網(wǎng)絡(luò)協(xié)議或算法的更新,使網(wǎng)絡(luò)能夠動(dòng)態(tài)、靈活和方便地重新配置,但對于復(fù)雜應(yīng)用,指令解釋開銷較大。MagnetOS使用Java虛擬機(jī),可解決WSN的異構(gòu)性問題,自動(dòng)地分割和分配應(yīng)用程序代碼到網(wǎng)內(nèi)各個(gè)節(jié)點(diǎn),減少了通信開銷,系統(tǒng)的Java實(shí)現(xiàn)也使開發(fā)變得更加簡單,但使用Java虛擬機(jī)技術(shù)時(shí)系統(tǒng)開銷非常大,對于資源有限的WSN不大實(shí)用。SensorWare使用輕量級、移動(dòng)控制腳本語言,方便應(yīng)用開發(fā),通過腳本在節(jié)點(diǎn)間的復(fù)制和遷移能夠方便地實(shí)現(xiàn)分布式算法在網(wǎng)內(nèi)的部署,并且實(shí)現(xiàn)代碼非常小(不足180?KB),適用于多個(gè)傳感節(jié)點(diǎn)平臺(tái)。此類中間件方法支持的開發(fā)語言非常重要,語言越復(fù)雜,對開發(fā)人員要求越高。另一方面,如果支持像腳本語言這樣的語言,對編程人員來說開發(fā)相當(dāng)容易,但對實(shí)質(zhì)功能表述相對較弱,所以要在簡單性和功能的表述性之間做個(gè)平衡。

2)基于數(shù)據(jù)庫的中間件

此方法把整個(gè)網(wǎng)絡(luò)看做一個(gè)分布式數(shù)據(jù)庫,用戶使用類似SQL的查詢命令獲取所需的數(shù)據(jù)。查詢通過網(wǎng)絡(luò)分發(fā)到各個(gè)節(jié)點(diǎn),節(jié)點(diǎn)判定感知數(shù)據(jù)是否滿足查詢條件,決定數(shù)據(jù)的發(fā)送與否。典型例子如Cougar、TinyDB和SINA等。

Cougar、TinyDB和SINA均提供了一個(gè)分布式數(shù)據(jù)庫查詢接口,用戶可以使用熟悉的數(shù)據(jù)庫查詢風(fēng)格,方便使用,并在能量節(jié)約上均提供了相應(yīng)的機(jī)制;TinyDB建立和維護(hù)一個(gè)擴(kuò)展樹,查詢廣播到葉子節(jié)點(diǎn),葉子節(jié)點(diǎn)根據(jù)查詢條件決定是否轉(zhuǎn)發(fā)到父節(jié)點(diǎn),在父節(jié)點(diǎn)進(jìn)行處理和融合,減小了通信開銷,節(jié)約能量;Cougar通過把查詢分發(fā)到各節(jié)點(diǎn)來最小化數(shù)據(jù)搜集和計(jì)算帶來的能量開銷;SINA使用基于屬性的命名機(jī)制和位置感知機(jī)制,傳輸協(xié)議利用位置信息限制了地理位置鄰近的相似信息的重復(fù)發(fā)送,節(jié)約了能量。此外,SINA支持分層的簇結(jié)構(gòu),方便了網(wǎng)絡(luò)的擴(kuò)展。但這幾種方法在可靠性、移動(dòng)性等方面支持相對較弱。

3)自適應(yīng)中間件

在自適應(yīng)編程范式中,自適應(yīng)可分為前攝和反射兩種方法。前攝方法可由應(yīng)用具體指定QoS需求,根據(jù)這些需求主動(dòng)調(diào)整網(wǎng)絡(luò)相關(guān)參數(shù)??墒褂梅瓷浜颓皵z相結(jié)合的方法來更好地調(diào)控網(wǎng)絡(luò),獲取更理想的QoS級別。反射方法通常是根據(jù)網(wǎng)絡(luò)環(huán)境的變化而被動(dòng)地作出反應(yīng),如網(wǎng)絡(luò)拓?fù)?、?jié)點(diǎn)功能等發(fā)生變化時(shí),調(diào)整某些參數(shù),來滿足一定的QoS需求。

Milan使用前攝的方法影響網(wǎng)絡(luò)。Milan獲取基于狀態(tài)變化的特殊圖形表示QoS需求,基于這些信息Milan進(jìn)行如何控制網(wǎng)絡(luò)和節(jié)點(diǎn)平衡應(yīng)用資源,延長應(yīng)用程序生存期的決策。有的文獻(xiàn)提出了一個(gè)自治框架,此框架可以根據(jù)設(shè)備的歷史信息作出決策,而不是決策執(zhí)行后才作出相應(yīng)的反應(yīng)。根據(jù)應(yīng)用程序指定的策略和設(shè)備的能力,動(dòng)態(tài)地下載融合、定位、容錯(cuò)等策略到合適設(shè)備。TinyCubus開發(fā)了通用重配置系統(tǒng)架構(gòu),提供一組標(biāo)準(zhǔn)的、自適應(yīng)的管理組件,根據(jù)系統(tǒng)參數(shù)和應(yīng)用程序需求進(jìn)行最佳選擇,是前攝和反射的結(jié)合。此類方法大多采用跨層優(yōu)化機(jī)制,采用前攝或者反射方法適應(yīng)網(wǎng)絡(luò)環(huán)境的動(dòng)態(tài)變化,滿足相應(yīng)的QoS需求,具有良好的自適應(yīng)性,但異構(gòu)性、通用性和移動(dòng)性支持仍需進(jìn)一步研究。

4)基于元組空間中間件

WSN大部分采用無線通信技術(shù),由于帶寬有限、易受干擾,所以請求應(yīng)答的同步通信模式具有很大的局限性,引入具有去耦合機(jī)會(huì)主義風(fēng)格的通信范式——元組空間,更具靈活性。所謂元組空間就是一個(gè)共享存儲(chǔ)模型,數(shù)據(jù)被表示為稱為元組的基本數(shù)據(jù)結(jié)構(gòu),通過對元組的讀、寫和移動(dòng)實(shí)現(xiàn)進(jìn)程的協(xié)同。元組空間通信范式在時(shí)空上都是去耦的,不需要節(jié)點(diǎn)的位置或標(biāo)志信息,非常適合具有移動(dòng)特性的WSN,并具有很好的擴(kuò)展性,但它的實(shí)現(xiàn)對系統(tǒng)資源要求也相對較高。

TinyLime是基于Lime的數(shù)據(jù)共享中間件,結(jié)合WSN需求修改和擴(kuò)展了Lime中間件,增加了對移動(dòng)性的支持。

5)基于事件驅(qū)動(dòng)的中間件

節(jié)點(diǎn)一旦檢測到事件的發(fā)生就立即向相應(yīng)程序發(fā)送通知。應(yīng)用程序也可指定一個(gè)復(fù)合事件,只有發(fā)生的事件匹配了此復(fù)合事件模式才通知應(yīng)用程序。這種基于事件通知的通信模式通常采用publish/subscribe機(jī)制,可提供異步的、多對多的通信模型,非常適合大規(guī)模的WSN。

3.中間件方法比較

表10.1所示為幾種典型的中間件的性能比較。

從表10.1中可見,現(xiàn)有中間件產(chǎn)品都或多或少存在一些缺陷和不足,并且在QoS支持和兼容性等方面支持均很有限。基于這些考慮,就很有必要設(shè)計(jì)一種更為合理和具有一定通用性的中間件框架。表10.1幾種典型的中間件性能比較

10.2基于Agent的無線傳感器網(wǎng)絡(luò)中間件DisWare

移動(dòng)Agent的運(yùn)行環(huán)境即移動(dòng)Agent平臺(tái)能實(shí)現(xiàn)對Agent代碼空間的分配和管理,并能扮演虛擬機(jī)的角色運(yùn)行多種功能的移動(dòng)Agent指令,在運(yùn)行時(shí)對Agent執(zhí)行資源進(jìn)行管理。移動(dòng)Agent平臺(tái)支持在單個(gè)節(jié)點(diǎn)上運(yùn)行多個(gè)相互協(xié)作的Agent,并且Agent和Agent之間可以通過訪問平臺(tái)提供的公用內(nèi)存資源的方式進(jìn)行相互交流,還能夠在運(yùn)行中間件的節(jié)點(diǎn)間相互遷移。10.2.1DisWare體系結(jié)構(gòu)

DisWare兼容Agilla,支持異構(gòu)無線傳感器網(wǎng)絡(luò)操作系統(tǒng),由無線傳感器網(wǎng)絡(luò)應(yīng)用支撐層、無線傳感器網(wǎng)絡(luò)基礎(chǔ)設(shè)施、基于無線傳感器網(wǎng)絡(luò)應(yīng)用業(yè)務(wù)層的一部分共性功能,以及管理、信息安全等部分組成。目前大多無線傳感器網(wǎng)絡(luò)的應(yīng)用系統(tǒng)直接構(gòu)建于網(wǎng)絡(luò)節(jié)點(diǎn)硬件及其嵌入式操作系統(tǒng),整個(gè)基礎(chǔ)軟件體系結(jié)構(gòu)包括節(jié)點(diǎn)嵌入式操作系統(tǒng)和蘊(yùn)含于具體應(yīng)用系統(tǒng)的各基本功能軟件,這些都是無線傳感器最底層的東西,越是底層就越復(fù)雜,在應(yīng)用開發(fā)時(shí)會(huì)面臨許多問題,如操作系統(tǒng)的多樣性,繁雜的網(wǎng)絡(luò)功能設(shè)計(jì)、管理,復(fù)雜多變的網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)分散處理帶來的不一致性問題和安全問題等,而無線傳感器網(wǎng)絡(luò)的應(yīng)用系統(tǒng)面臨著許多共性問題,進(jìn)行提煉、抽象后將可以形成可復(fù)用的組件,這些組件以及特定模型和接口就構(gòu)成了DisWare整個(gè)體系結(jié)構(gòu)模型,如圖10.4所示。圖10.4DisWare體系結(jié)構(gòu)模型在該體系結(jié)構(gòu)模型中,DisWare具有可擴(kuò)展的結(jié)構(gòu),通過底層系統(tǒng)Agent抽象與集成、基于Agent的框架接口,Agent可以在多異構(gòu)操作系統(tǒng)和硬件平臺(tái)基礎(chǔ)上靈活地在Agent實(shí)現(xiàn)的組件庫中選擇已有的組件開發(fā)和運(yùn)行無線傳感器網(wǎng)絡(luò)應(yīng)用系統(tǒng),并在工作引擎的判斷和分析下,對環(huán)境信息和系統(tǒng)決策進(jìn)行篩選與判斷,而且每個(gè)Agent可密切地與外界環(huán)境及其他Agent進(jìn)行信息交互,使自己的建模模塊和規(guī)劃模塊及時(shí)調(diào)整,使之更加適應(yīng)環(huán)境的變化。在基于中間件的無線傳感器網(wǎng)絡(luò)系統(tǒng)中,面向Agent的編程模型使Agent之間以及Agent和環(huán)境之間的交互來決定整個(gè)系統(tǒng)的運(yùn)作,Agent可根據(jù)需求在統(tǒng)一的框架下選取合適的功能模塊接到Agent內(nèi)核上,構(gòu)成需要的Agent。在DisWare體系結(jié)構(gòu)中,工作引擎是基于Agent的無線傳感器網(wǎng)絡(luò)中間件的核心,在底層系統(tǒng)Agent抽象與集成的基礎(chǔ)上,通過基于Agent的框架接口為無線傳感器網(wǎng)絡(luò)應(yīng)用的開發(fā)、維護(hù)、部署等提供支持;Agent實(shí)現(xiàn)的無線傳感器網(wǎng)絡(luò)中間件組件庫由可選擇的組件組成,包括各種描述行為的算法組件、功能組件、各類其他可重復(fù)利用的服務(wù)應(yīng)用模塊以及獨(dú)立于應(yīng)用的虛擬機(jī)組件。使用Agent構(gòu)建DisWare能夠提供更高的魯棒性和可靠性,基于Agent的抽象和方法也將為無線傳感器網(wǎng)絡(luò)提供易用的、有表現(xiàn)力的編程接口,其主要優(yōu)點(diǎn)如下:

(1)DisWare將不是被動(dòng)對象的組合,Agent間以及Agent和環(huán)境間的交互決定了整個(gè)系統(tǒng)的運(yùn)作。

(2)Agent的控制流比對象更具有地域性。在DisWare中,Agent具有明確的分工,控制流只能影響相應(yīng)的Agent。Agent可以利用建模模塊、規(guī)劃模塊進(jìn)行判斷和分析,對環(huán)境信息進(jìn)行篩選和判斷,減少了控制流的影響。

(3)DisWare中每個(gè)Agent可以密切地與外界環(huán)境和其他Agent進(jìn)行信息交互,使自己的建模模塊和規(guī)劃模塊及時(shí)調(diào)整,使之更加適應(yīng)環(huán)境的變化。

(4)DisWare具有可擴(kuò)展的結(jié)構(gòu),Agent結(jié)構(gòu)中有很多功能模塊接口,通過這些接口,Agent可以靈活地應(yīng)用已有的面向?qū)ο蟪绦蚝痛a,具有很好的兼容性。

(5)Agent內(nèi)核和功能組件能夠分離,可根據(jù)需求在統(tǒng)一的框架下選取合適的功能組件接到Agent內(nèi)核上,構(gòu)成需要的Agent。

DisWare以基于Agent的計(jì)算和以Agent為主體的高層交互解決無線傳感器網(wǎng)絡(luò)異構(gòu)性,以面向Agent的編程模型實(shí)現(xiàn)易用的、有表現(xiàn)力的編程接口,通過基于Agent的框架接口和符合應(yīng)用需求的、自治模塊化的Agent組件來滿足架構(gòu)于具有不同介質(zhì)、不同電氣特性、不同協(xié)議的基礎(chǔ)網(wǎng)絡(luò)和業(yè)務(wù)應(yīng)用之間的無線傳感器網(wǎng)絡(luò)應(yīng)用系統(tǒng)構(gòu)建需求。10.2.2

DisWare中間件

如圖10.5所示,基于Agent的無線傳感器網(wǎng)絡(luò)中間件DisWare系統(tǒng)實(shí)現(xiàn)方案是在TinyOS與MantisOS等基礎(chǔ)上,分別實(shí)現(xiàn)DisWare工作引擎和Agent錯(cuò)誤處理組件、Agent指令管理組件、Agent管理組件、Agent指令底層實(shí)現(xiàn)組件、Agent環(huán)境管理組件、Agent鄰居信息管理組件、Agent元組空間管理組件、Agent網(wǎng)絡(luò)通信組件等,具體實(shí)現(xiàn)過程是不一樣的,但其設(shè)計(jì)目的都是為了屏蔽原有操作系統(tǒng),并在原有操作系統(tǒng)之上進(jìn)行擴(kuò)展,構(gòu)建基于Agent的框架接口,提供相同的指令集。應(yīng)用程序?qū)娱_發(fā)者不需要在TinyOS平臺(tái)下使用nesC語言進(jìn)行編程,也不需要在MantisOS平臺(tái)下采用C語言進(jìn)行編程,可以使用統(tǒng)一的Agent指令編寫無線傳感器網(wǎng)絡(luò)應(yīng)用程序,也可以使用面向Agent的編程模型來編寫基于Agent的無線傳感器網(wǎng)絡(luò)應(yīng)用程序代碼,再通過Agent代碼編譯系統(tǒng)轉(zhuǎn)換為Agent程序指令代碼。在DisWare系統(tǒng)中,Agent包含狀態(tài)、代碼和堆棧等共有的特性,狀態(tài)控制著Agent的整個(gè)生命周期;代碼部分與狀態(tài)緊密相連,狀態(tài)影響代碼部分的運(yùn)行,代碼也可以修改Agent的狀態(tài);堆棧用于模擬虛擬存儲(chǔ)器,負(fù)責(zé)存放代碼執(zhí)行時(shí)所產(chǎn)生的臨時(shí)數(shù)據(jù)。Agent所在節(jié)點(diǎn)具有一些基本的參數(shù)信息,如位置屬性、鄰居信息等,同時(shí)支持多個(gè)Agent的運(yùn)行,并維護(hù)一個(gè)鄰居信息列表。Agent可以在節(jié)點(diǎn)之間進(jìn)行遷移,遷移時(shí)Agent的狀態(tài)和代碼以及部分Agent資源都隨著Agent移動(dòng)到目的節(jié)點(diǎn)。但是節(jié)點(diǎn)的基本屬性(如位置及鄰居信息列表等)不會(huì)隨著Agent遷移而遷移。另外,Agent與Agent之間可以實(shí)現(xiàn)交流和協(xié)作,主要是通過申請共享的元組空間來完成的,對TinyOS和MantisOS,該元組空間大小均是事先預(yù)分配的。圖10.5基于Agent的無線傳感器網(wǎng)絡(luò)中間件DisWare系統(tǒng)實(shí)現(xiàn)方案在基于Agent的無線傳感器網(wǎng)絡(luò)中間件DisWare系統(tǒng)實(shí)現(xiàn)方案中,DisWare面向Agent的編程模型及其JAL編程框架的有關(guān)實(shí)現(xiàn)體現(xiàn)在Agent代碼編譯系統(tǒng)上。該系統(tǒng)與JAL編譯器功能相似,但它并不是將JAL源代碼編譯為Java源程序,而是將基于Agent的應(yīng)用程序代碼源文件編譯為Agent程序指令代碼。在具體實(shí)現(xiàn)中,DisWare基于Agent的應(yīng)用程序代碼源文件與JAL源程序編寫方法相同,所包括的文件有X.event、X.plan、X.bel、X.cap、X.agent(X為文件名)等,其中X.event為事件類源文件,X.plan為規(guī)劃類源文件,X.bel為信念類源文件,X.cap為能力類源文件,X.agent為Agent類源文件。經(jīng)過Agent代碼編譯系統(tǒng)編譯后生成的程序指令代碼文件與Agilla的Agent源程序格式相同,因?yàn)镈isWare基于Agent的框架接口采用了Agilla基本指令集,所產(chǎn)生的文件為X.ma。

10.3DisWare中間件平臺(tái)軟件MeshIDE

無線傳感器網(wǎng)絡(luò)集成開發(fā)平臺(tái)MeshIDE是面向DisWare中間件所開發(fā)的輔助中間件平臺(tái)軟件,它利用Eclipse插件開發(fā)的優(yōu)越性,在Eclipse環(huán)境下采用Java語言編制并通過插件方式來運(yùn)行,具有很高的獨(dú)立性及可移植性。同時(shí),MeshIDE具有多擴(kuò)展點(diǎn),使得擴(kuò)展用戶需求工作變得簡單易行。本節(jié)將詳細(xì)介紹中間件平臺(tái)軟件MeshIDE。10.3.1無線傳感器網(wǎng)絡(luò)集成開發(fā)平臺(tái)MeshIDE概述

無線傳感器網(wǎng)絡(luò)集成開發(fā)平臺(tái)MeshIDE包括兩大部分:第一部分是面向nesC的無線傳感器網(wǎng)絡(luò)集成開發(fā)平臺(tái)MeshIDEforTinyOS,它是面對無線傳感器網(wǎng)絡(luò)軟件開法語言nesC的開發(fā)平臺(tái),解決了使用nesC語言進(jìn)行無線傳感器網(wǎng)絡(luò)編程的問題;第二部分是面向DisWare中間件的無線傳感器網(wǎng)絡(luò)集成開發(fā)平臺(tái)MeshIDEforDisWare,主要為中間件代理編程提供平臺(tái),解決了支持的中間件控制語言編程的問題。

由于該插件是用Java編制的,所以平臺(tái)的可移植性比較好,能夠在多種平臺(tái)下運(yùn)行。同時(shí),Eclipse本身定義了工作環(huán)境的許多擴(kuò)展點(diǎn),用戶可以擴(kuò)展和平臺(tái)并行的功能,以增大平臺(tái)對無線傳感器網(wǎng)絡(luò)中間件的支持能力。在面向nesC的無線傳感器集成開發(fā)平臺(tái)MeshIDEforTinyOS中,用戶可以方便地新建應(yīng)用項(xiàng)目,具有平臺(tái)定制的編輯器,提供特定于應(yīng)用程序的語義,更方便地實(shí)現(xiàn)用戶編程。該平臺(tái)為用戶提供節(jié)點(diǎn)代碼的導(dǎo)入、編寫、開發(fā)、運(yùn)行和編譯等功能。MeshIDEforTinyOS平臺(tái)除了提供了良好的用戶開發(fā)界面之外,還實(shí)現(xiàn)了可視化燒寫,無需用戶打開Cygwin,只需選定相應(yīng)選項(xiàng)即可完成通過串口燒寫代碼入節(jié)點(diǎn)的功能。面向中間件的無線傳感器集成開發(fā)平臺(tái)MeshIDEforDisWare給用戶提供了一個(gè)真正的無線傳感器網(wǎng)絡(luò)代理平臺(tái),支持DisWare中間件,提供一組DisWare功能開發(fā)透視圖,主要包括開發(fā)DisWare功能層次視圖、功能程序編輯環(huán)境、管理控制視圖及提供各種擴(kuò)展應(yīng)用接口等。在平臺(tái)中,可以很好地運(yùn)行基于DisWare中間件的應(yīng)用程序,可以直接調(diào)用該平臺(tái),該平臺(tái)集控制向?qū)?、代碼編輯、控制視圖于一體,提供了良好的圖形界面和輔助編輯器,方便了用戶基于無線傳感器網(wǎng)絡(luò)中間件的編程,具有普通平臺(tái)的擴(kuò)展特性,同時(shí)又兼有無線傳感器網(wǎng)絡(luò)中間件代理編程功能,是新型的無線傳感器網(wǎng)絡(luò)中間件代理平臺(tái)。下面主要簡單介紹MeshIDEforTinyOS集成開發(fā)平臺(tái)10.3.2無線傳感器網(wǎng)絡(luò)集成開發(fā)平臺(tái)MeshIDEforTinyOS

無線傳感器網(wǎng)絡(luò)集成開發(fā)平臺(tái)MeshIDEforTinyOS使用項(xiàng)目方式管理nesC應(yīng)用開發(fā),并提供了定制的nesC文本編輯器。

1.優(yōu)點(diǎn)

無線傳感器網(wǎng)絡(luò)集成開發(fā)平臺(tái)MeshIDEforTinyOS主要具有以下三個(gè)優(yōu)點(diǎn):

(1)可縮短無線傳感器網(wǎng)絡(luò)軟件開發(fā)流程。一般的無線傳感器網(wǎng)絡(luò)軟件開發(fā)沒有定制的nesC編輯器,采用Cygwin的命令行方式進(jìn)行代碼編譯發(fā)布,開發(fā)效率低。MeshIDEforTinyOS使用項(xiàng)目開發(fā)模式,具有定制的nesC編輯器,可以方便地實(shí)現(xiàn)用戶編程。MeshIDEforTinyOS能夠?qū)崿F(xiàn)代碼在平臺(tái)中直接進(jìn)行編譯發(fā)布,簡化了用戶測試代碼的過程。

(2)具有可視化代碼編譯和發(fā)布功能。一般的無線傳感器網(wǎng)絡(luò)軟件開發(fā)用命令行在模擬Unix的Cygwin環(huán)境下進(jìn)行編譯和發(fā)布,而MeshIDEforTinyOS能直接在平臺(tái)上執(zhí)行代碼編譯發(fā)布過程。

(3)具有良好的用戶界面和可用性。無線傳感器網(wǎng)絡(luò)集成開發(fā)平臺(tái)MeshIDEforTinyOS是構(gòu)建于Eclipse平臺(tái)上的,具有良好的用戶界面和可用性,對于熟悉Eclipse的應(yīng)用程序開發(fā)人員更加容易上手。

2.平臺(tái)設(shè)計(jì)目標(biāo)和功能

傳感器網(wǎng)絡(luò)按其功能抽象成五個(gè)層次,包括基礎(chǔ)層(傳感器集合)、網(wǎng)絡(luò)層(通信網(wǎng)絡(luò))、中間件層、數(shù)據(jù)處理和管理層以及應(yīng)用開發(fā)層。其中,無線傳感器網(wǎng)絡(luò)的中間件DisWare作為應(yīng)用程序員和無線傳感器網(wǎng)絡(luò)硬件之間的橋梁,而面向nesC的集成開發(fā)平臺(tái)MeshIDE

forTinyOS需要為應(yīng)用程序員提供一個(gè)友好的集成開發(fā)平臺(tái),產(chǎn)生節(jié)點(diǎn)代碼的統(tǒng)一編譯格式,并完成代碼編輯、編譯和發(fā)布處理功能。

MeshIDEforTinyOS在Eclipse平臺(tái)環(huán)境上,利用插件開發(fā)的方法實(shí)現(xiàn)了一個(gè)項(xiàng)目生成向?qū)?。該平臺(tái)是一個(gè)具有代碼編輯功能的、多視圖的集成開發(fā)平臺(tái),能形成一個(gè)友好的交互式的用戶平臺(tái)界面,并能向用戶提供一些有效的信息。另外,需要將MeshIDE插件程序與TinyOSCygwin環(huán)境結(jié)合起來,實(shí)現(xiàn)在Eclipse平臺(tái)下進(jìn)行代碼編譯的功能,即Make的過程能提供將編譯好的代碼發(fā)送到傳感器節(jié)點(diǎn)上的功能。

3.項(xiàng)目生成和屬性

1)項(xiàng)目生成

MeshIDEforTingOS平臺(tái)提供了一個(gè)項(xiàng)目(Project)生成向?qū)?,能夠生成?/p>

個(gè)MeshIDE項(xiàng)目,并能同時(shí)生成相關(guān)文檔與文件;同時(shí),該平臺(tái)還提供了一個(gè)應(yīng)用(Application)的生成向?qū)?,能夠生成一組nesC的樣本(Sample)文件。生成Project向?qū)r(shí),除了可以定義項(xiàng)目名稱等屬性外,還對應(yīng)該項(xiàng)目生成一個(gè)目標(biāo)(Target),顯示在MakeOptionforTinyOS視圖當(dāng)中。此外,還需制作一個(gè)項(xiàng)目的首選項(xiàng),提供修改nesC文件修改染色的選項(xiàng)和自定義doc模板的功能。

2)代碼的編輯與管理

代碼的編輯與管理主要由編輯器來完成,最基本的功能有代碼的編輯、打開與保存。為了增強(qiáng)代碼的可讀性,可為編輯器增加代碼分區(qū)、括號配對、不同區(qū)域、不同性質(zhì)單詞(Token)配色標(biāo)記等功能,實(shí)現(xiàn)了一個(gè)詞法分析的功能。

3)代碼的編譯與發(fā)布

為完成代碼的編譯和發(fā)布,需建立TinyOSEnvironment模塊,這個(gè)模塊可以對TinyOSCygwin進(jìn)行操作。直接通過視圖中的按鈕來選擇編譯或發(fā)布的功能,不必通過打開Cygwin來將代碼燒寫到傳感器節(jié)點(diǎn)中,實(shí)現(xiàn)可視化燒寫。除平臺(tái)中的Make視圖看到項(xiàng)目對應(yīng)的Target之外,還需提供可以修改生成哪類節(jié)點(diǎn)、對應(yīng)哪類節(jié)點(diǎn)、對應(yīng)發(fā)布的端口號等選項(xiàng),這些選項(xiàng)和TinyOSCygwin節(jié)點(diǎn)發(fā)布功能中的選項(xiàng)是完全對應(yīng)的,在菜單欄中也提供了一個(gè)彈出的Cygwin窗口按鈕,可以直接啟動(dòng)Cygwin,給熟悉Cygwin的高級用戶提供代碼發(fā)布和一些其他高級操作。

4.MeshIDEforTinyOS模塊設(shè)計(jì)

無線傳感器集成開發(fā)平臺(tái)MeshIDEforTinyOS插件主程序部分實(shí)現(xiàn)了在Eclipse平臺(tái)下用插件能夠開發(fā)nesC項(xiàng)目的用戶平臺(tái),它主要由下面幾個(gè)重要模塊組成。

1)項(xiàng)目生成向?qū)K

項(xiàng)目生成向?qū)K的功能是引導(dǎo)用戶輸入MeshIDEforTinyOS新的基本信息,并選擇開發(fā)所需要使用的節(jié)點(diǎn)環(huán)境??梢赃x擇創(chuàng)建新項(xiàng)目或打開一個(gè)已存在的項(xiàng)目。

2)編輯器模塊

編輯器模塊的功能是在透視圖中提供一個(gè)文本編輯區(qū)域,允許用戶在工作臺(tái)中編輯nesC代碼。同時(shí),它也可作為一般文本編輯器以普通文本的方式打開,如.project或makefile之類的ASCII碼文件。

3)透視圖模塊

透視圖在工作臺(tái)窗口內(nèi)部提供附加組織層。當(dāng)用戶在任務(wù)之間移動(dòng)時(shí),它們可以在透視圖之間進(jìn)行切換。透視圖定義視圖集合、視圖布局和用戶首次打開透視圖時(shí)使用的可視操作集。為了方便用戶使用MeshIDEforTinyOS進(jìn)行項(xiàng)目開發(fā),需提供一個(gè)MeshIDEforTinyOS任務(wù)的透視圖,其中包括編輯器和MakeOption視圖等。

4)編譯模塊

編譯模塊是進(jìn)行代碼編譯操作啟動(dòng)的模塊,它監(jiān)聽用戶單擊Make動(dòng)作,并獲取Make的參數(shù),通過IEnvironment接口與TinyOSEnvironment進(jìn)行信息交互。它主要包括MakeOption視圖中的Make、Install、Reinstall等按鈕和Make的各種參數(shù)選項(xiàng)下拉菜單。

5)配置模塊

配置模塊包括配置編譯環(huán)境的屬性頁和項(xiàng)目首選項(xiàng)兩部分。首選項(xiàng)擴(kuò)展點(diǎn)允許插件Eclipse首選項(xiàng)機(jī)制添加新的首選項(xiàng)作用域和指定要運(yùn)行的類,以便在運(yùn)行時(shí)初始化默認(rèn)首選項(xiàng)值。

5.TinyOSEnvironment編譯環(huán)境模塊設(shè)計(jì)

TinyOSEnvironment模塊的主要功能是與MeshIDEforTinyOS和TinyOSCygwin的環(huán)境進(jìn)行交互,提供代碼編譯和發(fā)布的功能。在編譯或發(fā)布代碼時(shí),將使用一個(gè)執(zhí)行模塊,通過使用操作系統(tǒng)進(jìn)程來操作TinyOSCygwin。這個(gè)執(zhí)行模塊同時(shí)通過執(zhí)行TinyOSCygwin來獲取相應(yīng)的平臺(tái)和Make操作的Extra選項(xiàng)信息。TinyOSEnvironment模塊主要包括環(huán)境模塊和執(zhí)行模塊。

1)環(huán)境模塊

環(huán)境模塊是MeshIDEforTinyOS與TinyOSEnvironment的接口,實(shí)現(xiàn)了meshIDE.ep包中的三個(gè)接口。通過這個(gè)模塊,可以實(shí)現(xiàn)MeshIDEforTinyOS和TinyOSEnvironment環(huán)境的信息交互。無論在編譯代碼、發(fā)布代碼或者在獲得節(jié)點(diǎn)編譯參數(shù)的過程中,都需要環(huán)境模塊和MeshIDEforTinyOS中的接口進(jìn)行數(shù)據(jù)傳遞,這些功能都是由該模塊實(shí)現(xiàn)的。

2)執(zhí)行模塊

執(zhí)行模塊的主要功能是執(zhí)行節(jié)點(diǎn)編譯和發(fā)布的具體操作,即主要用于執(zhí)行Make操作。該模塊控制了Make操作中的主要過程,提供異常處理和編譯信息返回。該模塊由編譯引擎啟動(dòng),用操作系統(tǒng)進(jìn)程TinyOSCygwin控制,發(fā)送編譯所需的命令行至TinyOSCygwin環(huán)境中進(jìn)行編譯和發(fā)布。

6.MeshIDEforTinyOS平臺(tái)運(yùn)行

MeshIDEforTinyOS集成開發(fā)環(huán)境作為Eclipse的插件在執(zhí)行開發(fā)任務(wù)時(shí)必須啟動(dòng)Eclipse平臺(tái)。MeshIDEforTinyOS集成在Eclipse當(dāng)中具有良好的用戶界面,對于熟悉Eclipse的開發(fā)人員更加容易熟悉其使用。在使用MeshIDEforTinyOS時(shí),需要打開MeshIDE透視圖。

1)創(chuàng)建MeshIDE工程

單擊“文件”→“新建”→“項(xiàng)目”,選擇MeshIDE

Wizard→New

MeshIDEProjectWizard。新建MeshIDE項(xiàng)目后,項(xiàng)目中自動(dòng)生成.project和makefile文件,注意不會(huì)生成.nc文件。用戶可自己創(chuàng)建nesC文件,也可從文件系統(tǒng)中導(dǎo)入一個(gè)nesC應(yīng)用。導(dǎo)入nesC文件到工程中的過程為:單擊“文件”→“導(dǎo)入”→“文件系統(tǒng)”,選擇路徑\DisWareNesC_vl.O\DisWare,將DisWare_NesC中的文件導(dǎo)入到該項(xiàng)目中。

2)查看項(xiàng)目屬性和首選項(xiàng)

在所建項(xiàng)目上右擊,在彈出的菜單中選擇“屬性”選項(xiàng),在屬性框中選擇MeshIDE-Environment,選擇項(xiàng)目所使用的環(huán)境。單擊“文件”→“窗口”→“首選項(xiàng)”,選擇MeshIDEEditorPreference可以調(diào)整MeshIDE的首選項(xiàng),其中包括基本選項(xiàng)、背景著色方案、文本著色方案和doc文本模板四個(gè)頁面。

10.4無線多媒體傳感器網(wǎng)絡(luò)中間件技術(shù)

10.4.1無線多媒體傳感器網(wǎng)絡(luò)概述

廣義上說,無線多媒體傳感器網(wǎng)絡(luò)涵蓋了傳統(tǒng)數(shù)值傳感器網(wǎng)絡(luò)(TraditionalScalarSensornetworks)、圖像傳感器網(wǎng)絡(luò)(ImageSensorNetworks)、音視頻傳感器網(wǎng)絡(luò)(AudioandVideosensorNetworks)、可視傳感器網(wǎng)絡(luò)(VisualSensorNetworks),以及以上單類型傳感器網(wǎng)絡(luò)的混合。無線多媒體傳感器網(wǎng)絡(luò)(WirelessMultimediaSensorNetworks,WMSN)能將信息量豐富的圖像、音頻、視頻等多媒體引入到傳感器網(wǎng)絡(luò)中對其進(jìn)行監(jiān)測、計(jì)算、存儲(chǔ),能與具有通信能力的多媒體傳感器節(jié)點(diǎn)(裝備有攝像頭、麥克風(fēng)和其他傳感器)通過自組織方式形成的分布式感知網(wǎng)絡(luò),具備協(xié)作感知、采集、處理和傳輸網(wǎng)絡(luò)覆蓋區(qū)域內(nèi)音頻、視頻、靜態(tài)圖像、數(shù)值數(shù)據(jù)等多媒體信息的能力。10.4.2無線多媒體傳感器網(wǎng)絡(luò)中間件的特點(diǎn)

無線多媒體傳感器網(wǎng)絡(luò)中間件是介于無線多媒體傳感器網(wǎng)絡(luò)操作系統(tǒng)(包括底層通信協(xié)議)和各種分布式應(yīng)用程序之間的一個(gè)軟件層。其主要作用是建立多媒體節(jié)點(diǎn)分布式軟件模塊之間互操作的機(jī)制,屏蔽節(jié)點(diǎn)底層分布式環(huán)境的復(fù)雜性和異構(gòu)性,為處于上層的多媒體節(jié)點(diǎn)應(yīng)用軟件提供運(yùn)行與開發(fā)環(huán)境。WMSN中間件應(yīng)具備以下特點(diǎn):

(1)由于節(jié)點(diǎn)的能量、計(jì)算、存儲(chǔ)能力和通信帶寬資源有限,因此多媒體傳感器網(wǎng)絡(luò)中間件必須是輕量級的。另外,考慮到節(jié)點(diǎn)與網(wǎng)絡(luò)的實(shí)際資源調(diào)度情況,中間件也應(yīng)該提供優(yōu)化整個(gè)系統(tǒng)性能的資源分配機(jī)制,并在性能和資源消耗之間取得平衡。

(2)由于加入了多媒體傳感信息元素,使網(wǎng)絡(luò)的總體規(guī)模和節(jié)點(diǎn)個(gè)體的功能也都相應(yīng)得到了增強(qiáng),在很大程度上增加了網(wǎng)絡(luò)的部署、配置、維護(hù)的開銷。因此,面向無線多媒體傳感器網(wǎng)絡(luò)的中間件技術(shù)將為上層應(yīng)用提供更為強(qiáng)大的容錯(cuò)、自適應(yīng)和自維護(hù)能力。

(3)由于需要獲取連續(xù)、實(shí)時(shí)的多媒體數(shù)據(jù)流及多元信息的需要,相比一般的無線傳感器網(wǎng)絡(luò)而言,無線多媒體傳感器網(wǎng)絡(luò)對QoS有著更高的需求,因此,迫切要求中間件軟件能夠提供高效、可靠的QoS保障機(jī)制,以適應(yīng)網(wǎng)絡(luò)的具體需求。

(4)無線多媒體傳感器網(wǎng)絡(luò)的數(shù)據(jù)收集和處理能力需要更加完善和強(qiáng)大。多媒體傳感器網(wǎng)絡(luò)的中間件軟件需要在原有的無線傳感器網(wǎng)絡(luò)基礎(chǔ)上,進(jìn)一步實(shí)現(xiàn)節(jié)點(diǎn)與網(wǎng)絡(luò)冗余信息的壓縮,完善多類型傳感數(shù)據(jù)的融合與聚合機(jī)制,以達(dá)到減少網(wǎng)絡(luò)通信代價(jià)與降低能耗的目的。

(5)由于引入多媒體傳感器后的網(wǎng)絡(luò)不確定性因素將進(jìn)一步提高,因此面向無線多媒體傳感器網(wǎng)絡(luò)的中間件還需要進(jìn)一步加強(qiáng)網(wǎng)絡(luò)的自適應(yīng)能力,支持網(wǎng)絡(luò)的動(dòng)態(tài)擴(kuò)展,并提供容錯(cuò)性支撐,以保證多媒體傳感器網(wǎng)絡(luò)的健壯性和魯棒性。

(6)考慮到網(wǎng)絡(luò)節(jié)點(diǎn)的多樣性,為方便多媒體傳感器網(wǎng)絡(luò)的應(yīng)用開發(fā),中間件軟件還應(yīng)為開發(fā)者針對各種各樣的異構(gòu)計(jì)算設(shè)備提供一個(gè)統(tǒng)一的系統(tǒng)視圖,并提供多媒體節(jié)點(diǎn)編程抽象或者系統(tǒng)服務(wù),單個(gè)節(jié)點(diǎn)設(shè)備僅保留最小功能。

因此,只有構(gòu)建于強(qiáng)大而靈活的中間件之上的無線多媒體傳感器網(wǎng)絡(luò),才有最大可能屏蔽網(wǎng)絡(luò)底層細(xì)節(jié),使其在多類型數(shù)據(jù)傳感、短距離無線通信、自組織成網(wǎng)及多元數(shù)據(jù)協(xié)同處理等方面充分發(fā)揮技術(shù)優(yōu)勢。10.4.3基于Agent的無線多媒體傳感器網(wǎng)絡(luò)中間件體系結(jié)構(gòu)

多樣異構(gòu)的多媒體信息、大數(shù)據(jù)量的圖像和音視頻、復(fù)雜多樣的數(shù)據(jù)格式、高速流媒體傳輸需求、無線多媒體傳感器網(wǎng)絡(luò)節(jié)點(diǎn),以及網(wǎng)絡(luò)資源和能力嚴(yán)重受限都大大增加了無線多媒體傳感器網(wǎng)絡(luò)應(yīng)用系統(tǒng)開發(fā)的復(fù)雜度和難度。因此,必須開發(fā)靈活的、開放的,具有根據(jù)應(yīng)用需求和網(wǎng)絡(luò)狀態(tài)進(jìn)行自配置、自愈合和自適應(yīng)能力的無線多媒體傳感器網(wǎng)絡(luò)中間件?;贏gent的無線多媒體傳感器網(wǎng)絡(luò)反射中間件體系結(jié)構(gòu)的參考模型如圖10.6所示。在該模型中,基于Agent的無線多媒體傳感器網(wǎng)絡(luò)中間件具有反射型工作機(jī)制和可擴(kuò)展的結(jié)構(gòu),通過底層系統(tǒng)Agent抽象與集成、面向應(yīng)用的服務(wù)組件業(yè)務(wù)適配和面向Agent的應(yīng)用編程接口庫,Agent可以在無線多媒體傳感器網(wǎng)絡(luò)底層硬件和軟件基平臺(tái)上,靈活地在中間件提供的系統(tǒng)抽象與服務(wù)組件庫中選擇合適的組件開發(fā)無線多媒體傳感器網(wǎng)絡(luò)應(yīng)用系統(tǒng),并在工作引擎的反射工作模式的支持下,對網(wǎng)絡(luò)環(huán)境、應(yīng)用需求進(jìn)行判斷和分析,完成無線多媒體傳感器網(wǎng)絡(luò)中間件面對動(dòng)態(tài)環(huán)境和多樣應(yīng)用需求的自配置和自適應(yīng)優(yōu)化?;贏gent的無線多媒體傳感器網(wǎng)絡(luò)中間件系統(tǒng)抽象與服務(wù)組件庫由可選擇的組件組成,包括描述中間件和系統(tǒng)行為的算法組件、功能組件、多媒體數(shù)據(jù)處理服務(wù)組件、網(wǎng)絡(luò)資源管理服務(wù)組件及各類其他可重用的服務(wù)應(yīng)用模塊等。圖10.6基于Agent的無線多媒體傳感器網(wǎng)絡(luò)反射中間件體系結(jié)構(gòu)參考模型面向應(yīng)用的WMSN中間件反射工作模式與虛擬機(jī)組件抽象主要體現(xiàn)在以下三個(gè)方面:

1)面向應(yīng)用的WMSN中間件反射工作模式與虛擬機(jī)組件抽象

面向應(yīng)用的無線多媒體傳感器網(wǎng)絡(luò)中間件不僅需要保證節(jié)點(diǎn)和網(wǎng)絡(luò)的透明性,負(fù)責(zé)傳感器節(jié)點(diǎn)和網(wǎng)絡(luò)系統(tǒng)的資源管理、多媒體數(shù)據(jù)的處理、動(dòng)態(tài)環(huán)境的分析以及支持普遍適用的分布式應(yīng)用,還需要有一定的開放性,保證無線多媒體傳感器網(wǎng)絡(luò)中間件自身功能對網(wǎng)絡(luò)環(huán)境改變和多樣的無線多媒體傳感器網(wǎng)絡(luò)應(yīng)用需求具有自適應(yīng)能力,解決無線多媒體傳感器網(wǎng)絡(luò)大規(guī)模分布式環(huán)境中的可伸縮性、異構(gòu)性和動(dòng)態(tài)性問題。面向應(yīng)用的無線多煤體傳感器網(wǎng)絡(luò)中間件反射工作模式與虛擬機(jī)組件抽象將維護(hù)和操作中間件虛擬機(jī)內(nèi)部結(jié)構(gòu)的抽象和顯式表示,并根據(jù)網(wǎng)絡(luò)狀態(tài)和環(huán)境以及多樣的應(yīng)用需求對中間件自身進(jìn)行操作和推理,完成中間件反射形式的自適應(yīng)優(yōu)化。面向應(yīng)用的無線多媒體傳感器網(wǎng)絡(luò)中間件反射工作模式與虛擬機(jī)組件抽象將會(huì)基于Agent的結(jié)構(gòu)特點(diǎn)和本體論的理論構(gòu)建中間件虛擬機(jī)組件的元數(shù)據(jù)模型,使中間件能夠被形式化描述與理解,從而為中間件根據(jù)網(wǎng)絡(luò)環(huán)境和狀態(tài)以及應(yīng)用需求進(jìn)行形式化推理和反射自適應(yīng)優(yōu)化提供先決條件。

2)?WMSN中間件Agent運(yùn)行環(huán)境支撐技術(shù)

無線多媒體傳感器網(wǎng)絡(luò)中間件Agent運(yùn)行環(huán)境支撐技術(shù)提供支撐Agent運(yùn)行和基于Agen的中間件反射推理自適應(yīng)優(yōu)化的輕量級平臺(tái),主要包括Agent的運(yùn)行引擎、Agent管理、Agent上下文管理、Agent發(fā)送和接收、Agent通信與交互、基于Agent和上下文感知的反射推理技術(shù)。

3)?WMSN中間件基于Agent的編程模型與應(yīng)用開發(fā)方法

基于Agent的無線多媒體傳感器網(wǎng)絡(luò)編程模型包括全新的軟件設(shè)計(jì)框架和方法,將在開放、可擴(kuò)展、自適應(yīng)、自配置、自整合的無線多媒體傳感器網(wǎng)絡(luò)環(huán)境中,整合新的業(yè)務(wù)模型,根據(jù)分布式網(wǎng)絡(luò)特性,設(shè)計(jì)更符合實(shí)際的應(yīng)用軟件。在基于Agent的無線多媒體傳感器網(wǎng)絡(luò)編程模型中,無線多媒體傳感器網(wǎng)絡(luò)是由具有特定信念、期望、意圖和能力的Agent組成的,每一節(jié)點(diǎn)在部署后通過自身或與其他節(jié)點(diǎn)交互決策在特定情形下的行為。在無線多媒體傳感器網(wǎng)絡(luò)中,對應(yīng)于不同的應(yīng)用、網(wǎng)絡(luò)協(xié)議、算法及個(gè)體的能力,一些Agent能夠清晰地建立其世界模型,并對有關(guān)的模型進(jìn)行推理;另一些Agent的模型可能與硬件相聯(lián)系且分布于整個(gè)Agent的網(wǎng)絡(luò)體系結(jié)構(gòu)中??梢詫o線多媒體傳感器網(wǎng)絡(luò)的組成Agent視為由狀態(tài)、控制邏輯、感知器和效應(yīng)器四部分組成的。每個(gè)Agent都有自己的狀態(tài);每個(gè)Agent都擁有一個(gè)控制邏輯,即構(gòu)成自己的行為意識(shí),現(xiàn)有的無線多媒體傳感器網(wǎng)絡(luò)節(jié)點(diǎn)都是自治的計(jì)算實(shí)體;每個(gè)Agent都擁有一個(gè)感知器來感知環(huán)境,即根據(jù)環(huán)境的狀態(tài)來改變自己狀態(tài)的方法,無線多媒體傳感器網(wǎng)絡(luò)節(jié)點(diǎn)利用多媒體傳感器來感知環(huán)境信息,或者通過無線通信模塊接收控制消息和其他節(jié)點(diǎn)的環(huán)境信息;每個(gè)Agent都擁有一個(gè)效應(yīng)器作用于環(huán)境,即用來改變環(huán)境狀態(tài)的方法。10.5支持多應(yīng)用任務(wù)的WSN中間件的設(shè)計(jì)

隨著WSN應(yīng)用技術(shù)的不斷發(fā)展,系統(tǒng)的復(fù)雜性也不斷增加,呈現(xiàn)出一個(gè)WSN上承載多種應(yīng)用任務(wù)的趨勢,簡單的WSN應(yīng)用已不能滿足綜合應(yīng)用部署的需求。因此,需要設(shè)計(jì)并實(shí)現(xiàn)一種可支持多應(yīng)用任務(wù)同時(shí)運(yùn)行的中間件平臺(tái),動(dòng)態(tài)承載各種應(yīng)用任務(wù)。10.5.1多應(yīng)用任務(wù)的WSN中間件系統(tǒng)架構(gòu)設(shè)計(jì)

1.多應(yīng)用任務(wù)的WSN中間件系統(tǒng)模型

WSN系統(tǒng)通常包括硬件、操作系統(tǒng)和應(yīng)用程序。硬件包括感知模塊、MCU模塊和通信模塊。操作系統(tǒng)和應(yīng)用程序是軟件,而中間件是運(yùn)行在操作系統(tǒng)和應(yīng)用程序之間的一種系統(tǒng)軟件。多應(yīng)用任務(wù)的WSN中間件系統(tǒng)模型如圖10.7所示。

WSN中間件是由許多組件構(gòu)成的,它們?yōu)閼?yīng)用程序提供相應(yīng)的服務(wù)功能??梢允且粋€(gè)組件提供一個(gè)服務(wù),也可以是多個(gè)組件合起來提供一個(gè)服務(wù),或者一個(gè)組件提供多個(gè)服務(wù)。最后通過統(tǒng)一的應(yīng)用程序開發(fā)接口(API)提供給用戶。圖10.7多應(yīng)用任務(wù)的WSN中間件系統(tǒng)模型

2.系統(tǒng)架構(gòu)設(shè)計(jì)

在整個(gè)WSN系統(tǒng)中,WSN節(jié)點(diǎn)主要是為基站或網(wǎng)關(guān)實(shí)現(xiàn)數(shù)據(jù)的感知和采集功能,并且在整個(gè)WSN系統(tǒng)運(yùn)行中,可以為用戶消息提供相應(yīng)的支持。因此,可以在WSN節(jié)點(diǎn)上建立相應(yīng)的功能組件,協(xié)調(diào)完成中間件平臺(tái)的功能,為應(yīng)用任務(wù)的執(zhí)行提供服務(wù)。根據(jù)WSN中間件平臺(tái)的這些特點(diǎn),將中間件分成兩個(gè)子系統(tǒng):控制管理子系統(tǒng)和應(yīng)用運(yùn)行子系統(tǒng)。整體系統(tǒng)、各子系統(tǒng)以及子系統(tǒng)內(nèi)部各組件的架構(gòu)關(guān)系如圖10.8所示。圖10.8多應(yīng)用任務(wù)的WSN中間件的架構(gòu)設(shè)計(jì)多應(yīng)用任務(wù)的WSN中間件各組件的功能如下:

(1)消息接收組件:接收來自基站或網(wǎng)關(guān)的用戶消息,這些消息包括兩類:對節(jié)點(diǎn)進(jìn)行控制的節(jié)點(diǎn)級消息,對應(yīng)用任務(wù)進(jìn)行控制的應(yīng)用任務(wù)級消息。對這些消息進(jìn)行優(yōu)先級的劃分,分別是高優(yōu)先級和普通級。將高優(yōu)先級的消息直接發(fā)送給應(yīng)用管理組件,而將普通級的消息送入緩存排隊(duì),等待逐個(gè)處理。

(2)消息緩存組件:緩存普通級的消息,節(jié)點(diǎn)只有一個(gè)MCU,同一時(shí)間僅能處理一個(gè)消息,將陸續(xù)到達(dá)的消息進(jìn)行緩存,以保障消息的可靠處理,按照先來先服務(wù)的原則,等待應(yīng)用管理組件分發(fā)消息給應(yīng)用任務(wù),或進(jìn)行節(jié)點(diǎn)控制。

(3)應(yīng)用管理組件:負(fù)責(zé)對接收到的消息進(jìn)行處理與分發(fā)。收到高優(yōu)先級的消息時(shí),中斷當(dāng)前的處理工作,立即響應(yīng)高優(yōu)先級消息,其消息的分發(fā)方式是對應(yīng)用任務(wù)產(chǎn)生中斷處理請求。通過對狀態(tài)查詢組件進(jìn)行操作,可獲得整個(gè)節(jié)點(diǎn)的應(yīng)用任務(wù)信息,從而對節(jié)點(diǎn)和應(yīng)用任務(wù)進(jìn)行管理操作。

(4)消息分發(fā)組件:通過標(biāo)準(zhǔn)的應(yīng)用程序編程接口,將消息轉(zhuǎn)交給應(yīng)用任務(wù)。在應(yīng)用任務(wù)的開發(fā)過程中,必須事先引入接收中間件消息的接口。參數(shù)格式在中間件開發(fā)手冊中都已預(yù)先定義,使得消息可以準(zhǔn)確接收。

(5)應(yīng)用程序編程接口(API):中間件平臺(tái)必須為應(yīng)用任務(wù)提供統(tǒng)一、易用和標(biāo)準(zhǔn)的開發(fā)接口,以使應(yīng)用任務(wù)開發(fā)更為便利,提高開發(fā)效率。

(6)狀態(tài)查詢組件:為應(yīng)用管理組件提供當(dāng)前節(jié)點(diǎn)上應(yīng)用任務(wù)的狀態(tài)信息,通過查詢應(yīng)用任務(wù)信息表,獲得應(yīng)用任務(wù)的狀態(tài)。每一個(gè)應(yīng)用任務(wù)的啟動(dòng)、關(guān)閉和運(yùn)行都會(huì)在應(yīng)用任務(wù)信息表中保留狀

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論