国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種無(wú)線傳感網(wǎng)節(jié)點(diǎn)設(shè)備的中間件平臺(tái)研究

2014-06-30 17:39趙敏超等
現(xiàn)代電子技術(shù) 2014年12期

趙敏超等

摘 要: 為屏蔽無(wú)線傳感網(wǎng)節(jié)點(diǎn)在應(yīng)用過程中底層軟硬件平臺(tái)的差異性,給上層應(yīng)用程序提供統(tǒng)一的接口,提出一種針對(duì)傳感網(wǎng)節(jié)點(diǎn)的中間件平臺(tái)架構(gòu)。該中間件平臺(tái)由軟硬件抽象層、網(wǎng)絡(luò)協(xié)議棧層、中間件管理器和應(yīng)用域中間件組成,采用模塊化、接口抽象和分層設(shè)計(jì)的思想,各層之間以服務(wù)原語(yǔ)的方式進(jìn)行交互。中間件平臺(tái)成功移植到STM32,MSP430,CC2530三種硬件平臺(tái)和μCOS?Ⅱ,F(xiàn)reeRTOS,OSAL三種軟件平臺(tái)上。實(shí)驗(yàn)證明該中間件平臺(tái)具有良好的移植性和可擴(kuò)展性。

關(guān)鍵詞: 無(wú)線傳感網(wǎng); 中間件平臺(tái); 服務(wù)原語(yǔ); 接口抽象; 節(jié)點(diǎn)設(shè)備

中圖分類號(hào): TN964?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)12?0011?04

Abstract: To shield the differences of hardware and software platforms for wireless sensor network node in the process of application and provide a unified interface for wireless sensor networks upper application, a middleware platform architecture for sensor network node is proposed in this paper, This middleware platform consists of hardware abstraction layer, network protocol stack layer, middleware manager and application domain middleware, The idea of modular, abstract interface and hierarchical design is adopted, The interaction among layers is conducted with service primitive mode, The middleware platform was successfully transplanted to STM32, MSP430 and CC2530 hardware platforms, and μCOS?Ⅱ, FreeRTOS and OSAL software platforms, Experiment shows that the middleware platform has good portability and scalability,

Keywords: wireless sensor network; middleware platform; service primitive; abstract interface; node device

0 引 言

無(wú)線傳感器網(wǎng)絡(luò)是當(dāng)前國(guó)內(nèi)和國(guó)外備受關(guān)注的、多學(xué)科交叉的熱門研究方向,被認(rèn)為是將對(duì)21世紀(jì)產(chǎn)生巨大影響力的技術(shù)之一[1?2]。而中間件技術(shù),在過去的20年里,在分布式計(jì)算領(lǐng)域,也得到了比較深入的研究和發(fā)展,目前應(yīng)用技術(shù)已經(jīng)接近成熟,并形成了一系列的成果,例如CORBA技術(shù)、消息中間件技術(shù)、J2EE應(yīng)用服務(wù)器、Web Service和面向服務(wù)的體系結(jié)構(gòu)(Service?Oriented Architecture,SOA)的中間件[3?4]。

無(wú)線傳感器中間件技術(shù)作為一種能解決傳感網(wǎng)大范圍應(yīng)用中產(chǎn)生的異構(gòu)性、兼容性等問題的新技術(shù),能夠提供標(biāo)準(zhǔn)化服務(wù),適應(yīng)資源和應(yīng)用需求動(dòng)態(tài)變化的自適應(yīng)策略和機(jī)制,是當(dāng)前的一大研究熱點(diǎn)。傳感網(wǎng)中間件提供的程序接口定義了一個(gè)相對(duì)穩(wěn)定的高層應(yīng)用環(huán)境,不管底層網(wǎng)絡(luò)、硬件和操作系統(tǒng)存在多少差異,只要對(duì)中間件進(jìn)行升級(jí),并保持中間件對(duì)外接口定義不變,便可以給用戶提供一個(gè)統(tǒng)一的運(yùn)行平臺(tái),有利于加快傳感網(wǎng)大規(guī)模產(chǎn)業(yè)化進(jìn)展步伐。但目前,無(wú)線傳感器網(wǎng)絡(luò)中間件的研究仍處于初始階段,現(xiàn)有的傳感網(wǎng)中間件對(duì)物與物間關(guān)系及服務(wù)的可管理性支持較弱,并且缺乏統(tǒng)一的數(shù)據(jù)處理接口,難以與多個(gè)應(yīng)用程序連接,其發(fā)展面臨著諸多挑戰(zhàn)[5?7]。

本文主要以“新一代寬帶無(wú)線移動(dòng)通信網(wǎng)”國(guó)家科技重大專項(xiàng)課題下“支持多傳感網(wǎng)應(yīng)用的中間件平臺(tái)研發(fā)”子課題為背景,設(shè)計(jì)并實(shí)現(xiàn)了一種輕量級(jí)的傳感網(wǎng)節(jié)點(diǎn)設(shè)備的中間件平臺(tái)框架,包括硬件抽象層、操作系統(tǒng)抽象層、網(wǎng)絡(luò)協(xié)議、中間件管理器及應(yīng)用域中間件,其中中間件管理器又由服務(wù)原語(yǔ)解釋器、管理中間件及通用中間件服務(wù)組件構(gòu)成。

1 現(xiàn)有傳感網(wǎng)中間件的分析

目前,基于傳感網(wǎng)的中間件大概可以分為以下5類:

(1) 基于數(shù)據(jù)庫(kù)的中間件??梢园颜麄€(gè)無(wú)線傳感器網(wǎng)絡(luò)看成是一個(gè)分布式的數(shù)據(jù)庫(kù),通過該方法把網(wǎng)絡(luò)抽象虛擬實(shí)體,屏蔽系統(tǒng)分布式問題。用戶可以使用類似SQL的命令對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問。此類中間件典型的有TinyDB,Cougar,SINA等。

(2) 自適應(yīng)中間件。該方法大多采用跨層優(yōu)化機(jī)制,采用前攝或者后攝反射方法使用網(wǎng)絡(luò)環(huán)境的動(dòng)態(tài)變化,以滿足傳感網(wǎng)的QoS需求。此類中間件相關(guān)的有Milan和TinyCubus開發(fā)的中間件架構(gòu)。

(3) 基于元組空間的中間件。元組空間是一個(gè)共享存儲(chǔ)模型,數(shù)據(jù)被表示為稱為元組的基本數(shù)據(jù)結(jié)構(gòu),通過對(duì)元組的讀、寫實(shí)現(xiàn)進(jìn)程的協(xié)同。此類中間件有TinyLime,Agilla等。

(4) 事件驅(qū)動(dòng)中間件。應(yīng)用程序通過指定感興趣的某種狀態(tài)的變化,使得節(jié)點(diǎn)一旦檢測(cè)到此事件就立即向應(yīng)用程序發(fā)送通知。這種基于事件的通信模式,通常采用publish/subscribe機(jī)制。此類中間件典型的有DSWare,Impala。

(5) 基于虛擬機(jī)的中間件。虛擬機(jī)通過屏蔽底層硬件資源和軟件系統(tǒng)的異構(gòu)性,來(lái)提供靈活的編程接口。但是在指令解釋開銷和資源占用開銷直接常常存在矛盾。典型的有Mat,MagnetOS和SensorWare等[8?10]。

由于無(wú)線傳感器網(wǎng)絡(luò)自身資源受限、數(shù)量龐大、網(wǎng)絡(luò)拓?fù)鋭?dòng)態(tài)變化等特點(diǎn),使得傳感網(wǎng)中間件的研究困難重重,上述的各種傳感網(wǎng)中間件在可靠性、自適應(yīng)性、可擴(kuò)展性等性能上也都有自身的缺點(diǎn)。

2 傳感網(wǎng)節(jié)點(diǎn)設(shè)備中間件平臺(tái)整體架構(gòu)

中間件框架整體架構(gòu)如圖1所示。

如圖1所示,框架的最底層是硬件,包括了主控芯片在內(nèi)的各種芯片和電路;之上是嵌入式操作系統(tǒng)抽象層及硬件抽象層,這兩層可以合成為傳感網(wǎng)中間件平臺(tái)的支撐軟件,因?yàn)槠渖纤械膽?yīng)用,都會(huì)最后調(diào)用這些抽象接口。網(wǎng)絡(luò)協(xié)議棧,實(shí)現(xiàn)傳感網(wǎng)網(wǎng)絡(luò)協(xié)議,完成網(wǎng)絡(luò)組網(wǎng)、路由管理、鄰居管理等功能;中間件管理器處于上層應(yīng)用和下層接口之間,起到一個(gè)承上啟下的作用,包括服務(wù)原語(yǔ)解釋器,管理中間件和功能組件三部分;最上面的應(yīng)用域中間件是直接面向應(yīng)用程序的,它根據(jù)傳感網(wǎng)的應(yīng)用領(lǐng)域及范圍(包括智能家居、智能交通等在內(nèi)的多個(gè)應(yīng)用領(lǐng)域),抽象出一些特定功能的接口,這一層的應(yīng)用層事實(shí)上是偽應(yīng)用層,而真正意義上的應(yīng)用層是通過調(diào)用該層的接口,來(lái)間接調(diào)用服務(wù)組件的功能,從而實(shí)現(xiàn)具體功能。

3 傳感網(wǎng)節(jié)點(diǎn)中間件實(shí)現(xiàn)

3.1 中間件支持軟件

中間件平臺(tái)的支持軟件包括操作系統(tǒng)抽象層和硬件抽象層兩部分。

3.1.1 操作系統(tǒng)抽象層

傳感網(wǎng)節(jié)點(diǎn)運(yùn)行環(huán)境位于操作系統(tǒng)之上,該環(huán)境主要是為了屏蔽不同OS的差異性,為上層程序提供統(tǒng)一的運(yùn)行平臺(tái),以方便應(yīng)用程序的移植和擴(kuò)展。傳感網(wǎng)節(jié)點(diǎn)的運(yùn)行環(huán)境主要分為兩大類:一種是虛擬機(jī)機(jī)制,另一種是操作系統(tǒng)抽象層。

但是虛擬機(jī)機(jī)制對(duì)節(jié)點(diǎn)的內(nèi)存資源和計(jì)算能力要求較高,不太適合在傳感網(wǎng)中普遍使用,并且現(xiàn)有的傳感網(wǎng)虛擬機(jī)基本以特定的操作系統(tǒng)為基礎(chǔ),很多也只處于實(shí)驗(yàn)室研究階段,在成熟度和執(zhí)行效率方面還有待改進(jìn)和完善?,F(xiàn)階段該方法是一種比較切實(shí)可行的實(shí)現(xiàn)方法。傳統(tǒng)的應(yīng)用程序支持跨平臺(tái)的方法是采用在應(yīng)用程序中加入條件編譯的方法,沒有將與平臺(tái)無(wú)關(guān)和相關(guān)的部分隔離起來(lái),如果需要移植到新的操作系統(tǒng)上,就要改寫代碼,代碼重用率低。而OSEL則是在各操作系統(tǒng)之上,提供了一層API接口,應(yīng)用程序直接使用該API接口,無(wú)需關(guān)心底層接口,這樣在移植的時(shí)候,應(yīng)用程序不用修改,使得應(yīng)用程序與操作系統(tǒng)本身無(wú)關(guān),增加了代碼重用率,提高了開發(fā)速度,降低了開發(fā)成本。操作系統(tǒng)抽象層的實(shí)現(xiàn),主要是提取不同嵌入式操作系統(tǒng)共性的功能,設(shè)計(jì)一個(gè)對(duì)上統(tǒng)一的調(diào)用接口??紤]到傳感網(wǎng)節(jié)點(diǎn)的資源限制,因此只選取必要的操作系統(tǒng)模塊進(jìn)行抽象,如任務(wù)相關(guān)、任務(wù)同步、內(nèi)存管理、電源管理等,操作系統(tǒng)抽象層內(nèi)容框架圖如圖2所示。

本文采用接口參數(shù)歸一化和適當(dāng)缺省的方法,僅對(duì)任務(wù)相關(guān)、任務(wù)間同步、系統(tǒng)時(shí)鐘相關(guān)和內(nèi)存管理相關(guān)的接口進(jìn)行抽象,考慮篇幅限制,在此僅列出任務(wù)相關(guān)的接口抽象:

●RTOS_TaskCreate(void (*task)(void *p_arg), void *p_arg, uint32 *ptos, uint8 prio)

●RTOS_TaskDelete(uint8 prio)

●RTOS_TaskSuspend(uint8 prio)

●RTOS_TaskResume(uint8 prio)

3.1.2 硬件抽象層

中間件平臺(tái)的硬件抽象層位于硬件驅(qū)動(dòng)層之上,與傳感網(wǎng)節(jié)點(diǎn)相關(guān)的基礎(chǔ)硬件主要有射頻部分、模數(shù)轉(zhuǎn)換部分、LED燈、串口等。

硬件抽象層的實(shí)現(xiàn)方法同樣采取接口參數(shù)的歸一化與適當(dāng)缺省,以串口部分為例,抽象接口如下所示:

●HAL_SerialInit(uint32 baud_rate)

●HAL_SerialReadByte(void)

●HAL_SerialWriteByte(char c)

●HAL_SerialReadStr(void)

●HAL_SerialWriteStr(char *p)

3.2 網(wǎng)絡(luò)協(xié)議棧層

現(xiàn)有的傳感網(wǎng)網(wǎng)絡(luò)協(xié)議有UC Berkeley研發(fā)的TinyOS中的網(wǎng)絡(luò)協(xié)議、Colorado大學(xué)研發(fā)的Mantis OS中的網(wǎng)絡(luò)協(xié)議、California大學(xué)研發(fā)的SOS中的網(wǎng)絡(luò)協(xié)議、Swedish Institute of Computer Science研發(fā)的Contiki以及Yonsei大學(xué)研發(fā)的RETOS中的網(wǎng)絡(luò)協(xié)議等[11],以上網(wǎng)絡(luò)協(xié)議都有各自的特點(diǎn)和作用,為兼容以后出現(xiàn)的各種協(xié)議,本網(wǎng)絡(luò)協(xié)議層采用如圖3所示結(jié)構(gòu)。

該層由網(wǎng)絡(luò)接口層、轉(zhuǎn)移解釋層和具體協(xié)議組成。網(wǎng)絡(luò)接口層用以抽象出網(wǎng)絡(luò)協(xié)議的共性接口,使上層應(yīng)用可以屏蔽底層具體網(wǎng)絡(luò)協(xié)議的差異,使用統(tǒng)一的網(wǎng)絡(luò)接口來(lái)調(diào)用不同的網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)相應(yīng)功能,這里設(shè)計(jì)的數(shù)據(jù)發(fā)送接口為:MIDWARE_NET_SEND(ID,PROTOCOL,LEN,TYPE,DATA/CMD),其中參數(shù)ID為傳感網(wǎng)節(jié)點(diǎn)的ID號(hào),PROTOCOL為需要使用的網(wǎng)絡(luò)協(xié)議類型,LEN為數(shù)據(jù)包長(zhǎng)度,DATA/CMD為數(shù)據(jù)包內(nèi)容或者網(wǎng)絡(luò)命令,而TYPE的值決定了該內(nèi)容為網(wǎng)絡(luò)數(shù)據(jù)還是網(wǎng)絡(luò)命令;轉(zhuǎn)義解釋層位于網(wǎng)絡(luò)接口層和具體網(wǎng)絡(luò)協(xié)議之間,它是用來(lái)解釋網(wǎng)絡(luò)層接口傳入的各類參數(shù),然后轉(zhuǎn)抽象為具體,選擇某一種具體的網(wǎng)絡(luò)協(xié)議進(jìn)行操作,該層的設(shè)計(jì)核心是找到一種有效的方法,使得能夠通過網(wǎng)絡(luò)層接口的PROTOCOL形參名字快速而準(zhǔn)確地找到相應(yīng)網(wǎng)絡(luò)協(xié)議的執(zhí)行函數(shù)接口,即從網(wǎng)絡(luò)協(xié)議字符串到網(wǎng)絡(luò)函數(shù)接口的映射過程,本文采用的是一種基于字符串的散列查找法;底層網(wǎng)絡(luò)協(xié)議可以依據(jù)具體的應(yīng)用場(chǎng)景,采用已有的傳感網(wǎng)網(wǎng)絡(luò)協(xié)議,或者自己設(shè)計(jì)新的網(wǎng)絡(luò)協(xié)議,然后植入該框架。

3.3 中間件管理器的設(shè)計(jì)

中間件管理器的設(shè)計(jì)是本中間件平臺(tái)較為核心的部分,它起著承上啟下的作用,上接應(yīng)用層,為應(yīng)用層提供一系列的接口,應(yīng)用層通過服務(wù)原語(yǔ)的形式,調(diào)用接口,實(shí)現(xiàn)相關(guān)的功能;下接底層軟硬件抽象層和網(wǎng)絡(luò)協(xié)議棧,通過相關(guān)接口,直接調(diào)用底層相關(guān)功能,實(shí)現(xiàn)從應(yīng)用層功能調(diào)用到底層硬件實(shí)現(xiàn)的作用。中間件管理器采用模塊化設(shè)計(jì),是一個(gè)功能獨(dú)立并且結(jié)構(gòu)完整的功能模塊,具有很好的移植性和可擴(kuò)展性。上述提到的服務(wù)原語(yǔ)是一種在同一開放系統(tǒng)中,(N+1)實(shí)體向N實(shí)體請(qǐng)求服務(wù)時(shí),服務(wù)用戶和服務(wù)提供者之間進(jìn)行交互的交互信息[12],服務(wù)原語(yǔ)有4種類型,4種基本原語(yǔ)解釋如下:

(1) 請(qǐng)求(Request):用戶實(shí)體要求服務(wù)做某項(xiàng)工作:源(N+1)實(shí)體→源(N)實(shí)體

(2) 指示(Indication):用戶實(shí)體被告知某事件發(fā)生:目的(N)實(shí)體→目的(N+1)實(shí)體

(3) 響應(yīng)(Response):用戶實(shí)體表示對(duì)某事件的響應(yīng):目的(N+1)實(shí)體→目的(N)實(shí)體

(4) 確認(rèn)(Confirm):用戶實(shí)體收到關(guān)于它的請(qǐng)求的答復(fù):源(N)實(shí)體→源(N+1)實(shí)體

中間件管理器采用模塊化設(shè)計(jì)方案,共由三部分組成:中間件服務(wù)原語(yǔ)解釋器、中間件執(zhí)行器和通用中間件服務(wù)模塊。其中中間件服務(wù)原語(yǔ)解釋器用于接受應(yīng)用層最原始的服務(wù)原語(yǔ)命令字符串,然后解析命令,并翻譯成中間件執(zhí)行器能識(shí)別的語(yǔ)句。中間件執(zhí)行器接收已經(jīng)被翻譯過后的命令,根據(jù)命令類型,選擇相應(yīng)的功能實(shí)現(xiàn)接口進(jìn)行調(diào)用,執(zhí)行相關(guān)的操作。通用中間件服務(wù)模塊部分,是一個(gè)服務(wù)組件的容器,包含了傳感網(wǎng)相關(guān)的一系列具體功能組件,包括節(jié)點(diǎn)的定位服務(wù)、傳感探測(cè)模塊、統(tǒng)計(jì)服務(wù)、安全管理等,也可根據(jù)需要進(jìn)行組件的擴(kuò)充。中間件管理器結(jié)構(gòu)圖如圖4所示。

整個(gè)中間件管理器的軟件執(zhí)行流程圖如圖5所示,其中GIMD為服務(wù)組件標(biāo)識(shí)碼,每個(gè)服務(wù)組件都有惟一的一個(gè)標(biāo)識(shí)碼跟它相匹配;SignalCode是命令解釋器經(jīng)過對(duì)上層命令進(jìn)行翻譯和解釋之后傳遞給中間件執(zhí)行器的值,代表該項(xiàng)服務(wù)是某個(gè)服務(wù)組件里面的一種具體類型的請(qǐng)求或者返回確認(rèn)。

3.4 應(yīng)用域中間件

無(wú)線傳感網(wǎng)根據(jù)應(yīng)用領(lǐng)域劃分,可以分為智能家居、智能交通、智能電網(wǎng)等多個(gè)領(lǐng)域,而傳感網(wǎng)中的服務(wù)組件則是由數(shù)量相對(duì)比較穩(wěn)定的一些具備基本功能的功能模塊組成。應(yīng)用域中間件根據(jù)各應(yīng)用領(lǐng)域的不同,按照各自的需求特點(diǎn),提出屬于自己功能需求,而每一種功能需求都會(huì)調(diào)用單個(gè)或者多個(gè)基本的服務(wù)組件。應(yīng)用域中間件與中間件管理器中的通用中間件服務(wù)組件模塊的關(guān)系如圖6所示。

如圖6所示,某一應(yīng)用域的一種功能接口,可以同時(shí)跟一個(gè)或者多個(gè)通用中間件服務(wù)組件相關(guān)聯(lián),而不同功能接口之間,也可以同時(shí)共享同一個(gè)服務(wù)組件。

4 結(jié) 語(yǔ)

傳感網(wǎng)節(jié)點(diǎn)設(shè)備是整個(gè)傳感網(wǎng)應(yīng)用中占據(jù)數(shù)量最多的工作單元,而相應(yīng)的傳感網(wǎng)節(jié)點(diǎn)中間件用來(lái)屏蔽底層硬件、網(wǎng)絡(luò)平臺(tái)復(fù)雜性及異構(gòu)性,是減小用戶高層應(yīng)用需求與網(wǎng)絡(luò)復(fù)雜性差異的一種軟件平臺(tái)。傳統(tǒng)的中間件技術(shù)雖然已得到比較深入的研究和發(fā)展,但是因?yàn)閭鞲芯W(wǎng)自身計(jì)算能力、存儲(chǔ)能力、應(yīng)用場(chǎng)景等獨(dú)特性質(zhì),使得直接移植已有的傳統(tǒng)中間件到傳感網(wǎng)節(jié)點(diǎn)中間件中變得困難重重。而現(xiàn)有的傳感網(wǎng)中間件技術(shù)的研究也處于初始階段,在可移植性、可擴(kuò)展性、實(shí)現(xiàn)方式的簡(jiǎn)潔性等方面也都存在缺陷。為此,本文提出一種基于接口抽象、分層設(shè)計(jì)和模塊化的傳感網(wǎng)節(jié)點(diǎn)中間件框架,該框架由軟硬件抽象層、網(wǎng)絡(luò)協(xié)議棧層、中間件管理器和應(yīng)用域中間件四部分組成,以輕量級(jí)的方式實(shí)現(xiàn)。該中間件平臺(tái)已經(jīng)成功運(yùn)行于STM32,MSP430和CC2530三種硬件平臺(tái)和μCOS?Ⅱ,F(xiàn)reeRTOS和OSAL三種軟件平臺(tái),并在實(shí)驗(yàn)室的智能家居演示系統(tǒng)中得到初步應(yīng)用。實(shí)驗(yàn)證明,該中間件框架具有較好的可移植性和可擴(kuò)展性,對(duì)無(wú)線傳感網(wǎng)的廣泛使用有著積極的促進(jìn)作用。

參考文獻(xiàn)

[1] 孫利民,李建中,陳渝,等.無(wú)線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.

[2] 張為.無(wú)線傳感器網(wǎng)絡(luò)應(yīng)用研究[J].信息通信,2013,27(9):94?95.

[3] 丁博,王懷民,史殿習(xí).普適計(jì)算中間件技術(shù)[J].計(jì)算機(jī)科學(xué)與探索,2007(3):241?253.

[4] 吳泉源.網(wǎng)絡(luò)計(jì)算中間件[J].軟件學(xué)報(bào),2013,24(1):67?76.

[5] 陰躲芬,龔華明.一種基于無(wú)線傳感器的擴(kuò)展型中間件框架[J].計(jì)算機(jī)與現(xiàn)代化,2012,28(7):116?119.

[6] 王汝傳,孫力娟,沙超,等.無(wú)線傳感器網(wǎng)絡(luò)中間件技術(shù)[J].南京郵電大學(xué)學(xué)報(bào):自然科學(xué)版,2010,30(4):36?40.

[7] 羅娟,顧傳力,李仁發(fā).基于角色的無(wú)線傳感網(wǎng)絡(luò)中間件研究[J].通信學(xué)報(bào),2011,32(1):79?86.

[8] 李仁發(fā),魏葉華,付彬,等.無(wú)線傳感器網(wǎng)絡(luò)中間件研究進(jìn)展[J].計(jì)算機(jī)研究與發(fā)展,2008,45(3):383?391.

[9] MADDEN S R, FRANKLIN M J, HELLERSTEIN J M, TinyDB: An acquisitional query processing system for sensor networks [J]. ACM Transactions on Database Systems, 2005, 30(1): 122?173.

[10] MARRN P J, MINDER D, LACHENMANN A, et al, Tiny

Cubus: A flexible and adaptive framework for sensornetworks [C]// Proceeedings of the Second European Workshop on Wireless Sensor Networks, Istanbul, Turkey: [s.n.], 2005: 278?289.

[11] 謝鳴.無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn)操作系統(tǒng)網(wǎng)絡(luò)協(xié)議棧研究與分析[D].杭州:浙江大學(xué),2008.

[12] 向渝,汪文勇,楊挺.無(wú)線傳感器網(wǎng)絡(luò)能量管理體系和服務(wù)原語(yǔ)研究[J].電子科技大學(xué)學(xué)報(bào),2007,36(6):1382?1385.

3.3 中間件管理器的設(shè)計(jì)

中間件管理器的設(shè)計(jì)是本中間件平臺(tái)較為核心的部分,它起著承上啟下的作用,上接應(yīng)用層,為應(yīng)用層提供一系列的接口,應(yīng)用層通過服務(wù)原語(yǔ)的形式,調(diào)用接口,實(shí)現(xiàn)相關(guān)的功能;下接底層軟硬件抽象層和網(wǎng)絡(luò)協(xié)議棧,通過相關(guān)接口,直接調(diào)用底層相關(guān)功能,實(shí)現(xiàn)從應(yīng)用層功能調(diào)用到底層硬件實(shí)現(xiàn)的作用。中間件管理器采用模塊化設(shè)計(jì),是一個(gè)功能獨(dú)立并且結(jié)構(gòu)完整的功能模塊,具有很好的移植性和可擴(kuò)展性。上述提到的服務(wù)原語(yǔ)是一種在同一開放系統(tǒng)中,(N+1)實(shí)體向N實(shí)體請(qǐng)求服務(wù)時(shí),服務(wù)用戶和服務(wù)提供者之間進(jìn)行交互的交互信息[12],服務(wù)原語(yǔ)有4種類型,4種基本原語(yǔ)解釋如下:

(1) 請(qǐng)求(Request):用戶實(shí)體要求服務(wù)做某項(xiàng)工作:源(N+1)實(shí)體→源(N)實(shí)體

(2) 指示(Indication):用戶實(shí)體被告知某事件發(fā)生:目的(N)實(shí)體→目的(N+1)實(shí)體

(3) 響應(yīng)(Response):用戶實(shí)體表示對(duì)某事件的響應(yīng):目的(N+1)實(shí)體→目的(N)實(shí)體

(4) 確認(rèn)(Confirm):用戶實(shí)體收到關(guān)于它的請(qǐng)求的答復(fù):源(N)實(shí)體→源(N+1)實(shí)體

中間件管理器采用模塊化設(shè)計(jì)方案,共由三部分組成:中間件服務(wù)原語(yǔ)解釋器、中間件執(zhí)行器和通用中間件服務(wù)模塊。其中中間件服務(wù)原語(yǔ)解釋器用于接受應(yīng)用層最原始的服務(wù)原語(yǔ)命令字符串,然后解析命令,并翻譯成中間件執(zhí)行器能識(shí)別的語(yǔ)句。中間件執(zhí)行器接收已經(jīng)被翻譯過后的命令,根據(jù)命令類型,選擇相應(yīng)的功能實(shí)現(xiàn)接口進(jìn)行調(diào)用,執(zhí)行相關(guān)的操作。通用中間件服務(wù)模塊部分,是一個(gè)服務(wù)組件的容器,包含了傳感網(wǎng)相關(guān)的一系列具體功能組件,包括節(jié)點(diǎn)的定位服務(wù)、傳感探測(cè)模塊、統(tǒng)計(jì)服務(wù)、安全管理等,也可根據(jù)需要進(jìn)行組件的擴(kuò)充。中間件管理器結(jié)構(gòu)圖如圖4所示。

整個(gè)中間件管理器的軟件執(zhí)行流程圖如圖5所示,其中GIMD為服務(wù)組件標(biāo)識(shí)碼,每個(gè)服務(wù)組件都有惟一的一個(gè)標(biāo)識(shí)碼跟它相匹配;SignalCode是命令解釋器經(jīng)過對(duì)上層命令進(jìn)行翻譯和解釋之后傳遞給中間件執(zhí)行器的值,代表該項(xiàng)服務(wù)是某個(gè)服務(wù)組件里面的一種具體類型的請(qǐng)求或者返回確認(rèn)。

3.4 應(yīng)用域中間件

無(wú)線傳感網(wǎng)根據(jù)應(yīng)用領(lǐng)域劃分,可以分為智能家居、智能交通、智能電網(wǎng)等多個(gè)領(lǐng)域,而傳感網(wǎng)中的服務(wù)組件則是由數(shù)量相對(duì)比較穩(wěn)定的一些具備基本功能的功能模塊組成。應(yīng)用域中間件根據(jù)各應(yīng)用領(lǐng)域的不同,按照各自的需求特點(diǎn),提出屬于自己功能需求,而每一種功能需求都會(huì)調(diào)用單個(gè)或者多個(gè)基本的服務(wù)組件。應(yīng)用域中間件與中間件管理器中的通用中間件服務(wù)組件模塊的關(guān)系如圖6所示。

如圖6所示,某一應(yīng)用域的一種功能接口,可以同時(shí)跟一個(gè)或者多個(gè)通用中間件服務(wù)組件相關(guān)聯(lián),而不同功能接口之間,也可以同時(shí)共享同一個(gè)服務(wù)組件。

4 結(jié) 語(yǔ)

傳感網(wǎng)節(jié)點(diǎn)設(shè)備是整個(gè)傳感網(wǎng)應(yīng)用中占據(jù)數(shù)量最多的工作單元,而相應(yīng)的傳感網(wǎng)節(jié)點(diǎn)中間件用來(lái)屏蔽底層硬件、網(wǎng)絡(luò)平臺(tái)復(fù)雜性及異構(gòu)性,是減小用戶高層應(yīng)用需求與網(wǎng)絡(luò)復(fù)雜性差異的一種軟件平臺(tái)。傳統(tǒng)的中間件技術(shù)雖然已得到比較深入的研究和發(fā)展,但是因?yàn)閭鞲芯W(wǎng)自身計(jì)算能力、存儲(chǔ)能力、應(yīng)用場(chǎng)景等獨(dú)特性質(zhì),使得直接移植已有的傳統(tǒng)中間件到傳感網(wǎng)節(jié)點(diǎn)中間件中變得困難重重。而現(xiàn)有的傳感網(wǎng)中間件技術(shù)的研究也處于初始階段,在可移植性、可擴(kuò)展性、實(shí)現(xiàn)方式的簡(jiǎn)潔性等方面也都存在缺陷。為此,本文提出一種基于接口抽象、分層設(shè)計(jì)和模塊化的傳感網(wǎng)節(jié)點(diǎn)中間件框架,該框架由軟硬件抽象層、網(wǎng)絡(luò)協(xié)議棧層、中間件管理器和應(yīng)用域中間件四部分組成,以輕量級(jí)的方式實(shí)現(xiàn)。該中間件平臺(tái)已經(jīng)成功運(yùn)行于STM32,MSP430和CC2530三種硬件平臺(tái)和μCOS?Ⅱ,F(xiàn)reeRTOS和OSAL三種軟件平臺(tái),并在實(shí)驗(yàn)室的智能家居演示系統(tǒng)中得到初步應(yīng)用。實(shí)驗(yàn)證明,該中間件框架具有較好的可移植性和可擴(kuò)展性,對(duì)無(wú)線傳感網(wǎng)的廣泛使用有著積極的促進(jìn)作用。

參考文獻(xiàn)

[1] 孫利民,李建中,陳渝,等.無(wú)線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.

[2] 張為.無(wú)線傳感器網(wǎng)絡(luò)應(yīng)用研究[J].信息通信,2013,27(9):94?95.

[3] 丁博,王懷民,史殿習(xí).普適計(jì)算中間件技術(shù)[J].計(jì)算機(jī)科學(xué)與探索,2007(3):241?253.

[4] 吳泉源.網(wǎng)絡(luò)計(jì)算中間件[J].軟件學(xué)報(bào),2013,24(1):67?76.

[5] 陰躲芬,龔華明.一種基于無(wú)線傳感器的擴(kuò)展型中間件框架[J].計(jì)算機(jī)與現(xiàn)代化,2012,28(7):116?119.

[6] 王汝傳,孫力娟,沙超,等.無(wú)線傳感器網(wǎng)絡(luò)中間件技術(shù)[J].南京郵電大學(xué)學(xué)報(bào):自然科學(xué)版,2010,30(4):36?40.

[7] 羅娟,顧傳力,李仁發(fā).基于角色的無(wú)線傳感網(wǎng)絡(luò)中間件研究[J].通信學(xué)報(bào),2011,32(1):79?86.

[8] 李仁發(fā),魏葉華,付彬,等.無(wú)線傳感器網(wǎng)絡(luò)中間件研究進(jìn)展[J].計(jì)算機(jī)研究與發(fā)展,2008,45(3):383?391.

[9] MADDEN S R, FRANKLIN M J, HELLERSTEIN J M, TinyDB: An acquisitional query processing system for sensor networks [J]. ACM Transactions on Database Systems, 2005, 30(1): 122?173.

[10] MARRN P J, MINDER D, LACHENMANN A, et al, Tiny

Cubus: A flexible and adaptive framework for sensornetworks [C]// Proceeedings of the Second European Workshop on Wireless Sensor Networks, Istanbul, Turkey: [s.n.], 2005: 278?289.

[11] 謝鳴.無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn)操作系統(tǒng)網(wǎng)絡(luò)協(xié)議棧研究與分析[D].杭州:浙江大學(xué),2008.

[12] 向渝,汪文勇,楊挺.無(wú)線傳感器網(wǎng)絡(luò)能量管理體系和服務(wù)原語(yǔ)研究[J].電子科技大學(xué)學(xué)報(bào),2007,36(6):1382?1385.

3.3 中間件管理器的設(shè)計(jì)

中間件管理器的設(shè)計(jì)是本中間件平臺(tái)較為核心的部分,它起著承上啟下的作用,上接應(yīng)用層,為應(yīng)用層提供一系列的接口,應(yīng)用層通過服務(wù)原語(yǔ)的形式,調(diào)用接口,實(shí)現(xiàn)相關(guān)的功能;下接底層軟硬件抽象層和網(wǎng)絡(luò)協(xié)議棧,通過相關(guān)接口,直接調(diào)用底層相關(guān)功能,實(shí)現(xiàn)從應(yīng)用層功能調(diào)用到底層硬件實(shí)現(xiàn)的作用。中間件管理器采用模塊化設(shè)計(jì),是一個(gè)功能獨(dú)立并且結(jié)構(gòu)完整的功能模塊,具有很好的移植性和可擴(kuò)展性。上述提到的服務(wù)原語(yǔ)是一種在同一開放系統(tǒng)中,(N+1)實(shí)體向N實(shí)體請(qǐng)求服務(wù)時(shí),服務(wù)用戶和服務(wù)提供者之間進(jìn)行交互的交互信息[12],服務(wù)原語(yǔ)有4種類型,4種基本原語(yǔ)解釋如下:

(1) 請(qǐng)求(Request):用戶實(shí)體要求服務(wù)做某項(xiàng)工作:源(N+1)實(shí)體→源(N)實(shí)體

(2) 指示(Indication):用戶實(shí)體被告知某事件發(fā)生:目的(N)實(shí)體→目的(N+1)實(shí)體

(3) 響應(yīng)(Response):用戶實(shí)體表示對(duì)某事件的響應(yīng):目的(N+1)實(shí)體→目的(N)實(shí)體

(4) 確認(rèn)(Confirm):用戶實(shí)體收到關(guān)于它的請(qǐng)求的答復(fù):源(N)實(shí)體→源(N+1)實(shí)體

中間件管理器采用模塊化設(shè)計(jì)方案,共由三部分組成:中間件服務(wù)原語(yǔ)解釋器、中間件執(zhí)行器和通用中間件服務(wù)模塊。其中中間件服務(wù)原語(yǔ)解釋器用于接受應(yīng)用層最原始的服務(wù)原語(yǔ)命令字符串,然后解析命令,并翻譯成中間件執(zhí)行器能識(shí)別的語(yǔ)句。中間件執(zhí)行器接收已經(jīng)被翻譯過后的命令,根據(jù)命令類型,選擇相應(yīng)的功能實(shí)現(xiàn)接口進(jìn)行調(diào)用,執(zhí)行相關(guān)的操作。通用中間件服務(wù)模塊部分,是一個(gè)服務(wù)組件的容器,包含了傳感網(wǎng)相關(guān)的一系列具體功能組件,包括節(jié)點(diǎn)的定位服務(wù)、傳感探測(cè)模塊、統(tǒng)計(jì)服務(wù)、安全管理等,也可根據(jù)需要進(jìn)行組件的擴(kuò)充。中間件管理器結(jié)構(gòu)圖如圖4所示。

整個(gè)中間件管理器的軟件執(zhí)行流程圖如圖5所示,其中GIMD為服務(wù)組件標(biāo)識(shí)碼,每個(gè)服務(wù)組件都有惟一的一個(gè)標(biāo)識(shí)碼跟它相匹配;SignalCode是命令解釋器經(jīng)過對(duì)上層命令進(jìn)行翻譯和解釋之后傳遞給中間件執(zhí)行器的值,代表該項(xiàng)服務(wù)是某個(gè)服務(wù)組件里面的一種具體類型的請(qǐng)求或者返回確認(rèn)。

3.4 應(yīng)用域中間件

無(wú)線傳感網(wǎng)根據(jù)應(yīng)用領(lǐng)域劃分,可以分為智能家居、智能交通、智能電網(wǎng)等多個(gè)領(lǐng)域,而傳感網(wǎng)中的服務(wù)組件則是由數(shù)量相對(duì)比較穩(wěn)定的一些具備基本功能的功能模塊組成。應(yīng)用域中間件根據(jù)各應(yīng)用領(lǐng)域的不同,按照各自的需求特點(diǎn),提出屬于自己功能需求,而每一種功能需求都會(huì)調(diào)用單個(gè)或者多個(gè)基本的服務(wù)組件。應(yīng)用域中間件與中間件管理器中的通用中間件服務(wù)組件模塊的關(guān)系如圖6所示。

如圖6所示,某一應(yīng)用域的一種功能接口,可以同時(shí)跟一個(gè)或者多個(gè)通用中間件服務(wù)組件相關(guān)聯(lián),而不同功能接口之間,也可以同時(shí)共享同一個(gè)服務(wù)組件。

4 結(jié) 語(yǔ)

傳感網(wǎng)節(jié)點(diǎn)設(shè)備是整個(gè)傳感網(wǎng)應(yīng)用中占據(jù)數(shù)量最多的工作單元,而相應(yīng)的傳感網(wǎng)節(jié)點(diǎn)中間件用來(lái)屏蔽底層硬件、網(wǎng)絡(luò)平臺(tái)復(fù)雜性及異構(gòu)性,是減小用戶高層應(yīng)用需求與網(wǎng)絡(luò)復(fù)雜性差異的一種軟件平臺(tái)。傳統(tǒng)的中間件技術(shù)雖然已得到比較深入的研究和發(fā)展,但是因?yàn)閭鞲芯W(wǎng)自身計(jì)算能力、存儲(chǔ)能力、應(yīng)用場(chǎng)景等獨(dú)特性質(zhì),使得直接移植已有的傳統(tǒng)中間件到傳感網(wǎng)節(jié)點(diǎn)中間件中變得困難重重。而現(xiàn)有的傳感網(wǎng)中間件技術(shù)的研究也處于初始階段,在可移植性、可擴(kuò)展性、實(shí)現(xiàn)方式的簡(jiǎn)潔性等方面也都存在缺陷。為此,本文提出一種基于接口抽象、分層設(shè)計(jì)和模塊化的傳感網(wǎng)節(jié)點(diǎn)中間件框架,該框架由軟硬件抽象層、網(wǎng)絡(luò)協(xié)議棧層、中間件管理器和應(yīng)用域中間件四部分組成,以輕量級(jí)的方式實(shí)現(xiàn)。該中間件平臺(tái)已經(jīng)成功運(yùn)行于STM32,MSP430和CC2530三種硬件平臺(tái)和μCOS?Ⅱ,F(xiàn)reeRTOS和OSAL三種軟件平臺(tái),并在實(shí)驗(yàn)室的智能家居演示系統(tǒng)中得到初步應(yīng)用。實(shí)驗(yàn)證明,該中間件框架具有較好的可移植性和可擴(kuò)展性,對(duì)無(wú)線傳感網(wǎng)的廣泛使用有著積極的促進(jìn)作用。

參考文獻(xiàn)

[1] 孫利民,李建中,陳渝,等.無(wú)線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.

[2] 張為.無(wú)線傳感器網(wǎng)絡(luò)應(yīng)用研究[J].信息通信,2013,27(9):94?95.

[3] 丁博,王懷民,史殿習(xí).普適計(jì)算中間件技術(shù)[J].計(jì)算機(jī)科學(xué)與探索,2007(3):241?253.

[4] 吳泉源.網(wǎng)絡(luò)計(jì)算中間件[J].軟件學(xué)報(bào),2013,24(1):67?76.

[5] 陰躲芬,龔華明.一種基于無(wú)線傳感器的擴(kuò)展型中間件框架[J].計(jì)算機(jī)與現(xiàn)代化,2012,28(7):116?119.

[6] 王汝傳,孫力娟,沙超,等.無(wú)線傳感器網(wǎng)絡(luò)中間件技術(shù)[J].南京郵電大學(xué)學(xué)報(bào):自然科學(xué)版,2010,30(4):36?40.

[7] 羅娟,顧傳力,李仁發(fā).基于角色的無(wú)線傳感網(wǎng)絡(luò)中間件研究[J].通信學(xué)報(bào),2011,32(1):79?86.

[8] 李仁發(fā),魏葉華,付彬,等.無(wú)線傳感器網(wǎng)絡(luò)中間件研究進(jìn)展[J].計(jì)算機(jī)研究與發(fā)展,2008,45(3):383?391.

[9] MADDEN S R, FRANKLIN M J, HELLERSTEIN J M, TinyDB: An acquisitional query processing system for sensor networks [J]. ACM Transactions on Database Systems, 2005, 30(1): 122?173.

[10] MARRN P J, MINDER D, LACHENMANN A, et al, Tiny

Cubus: A flexible and adaptive framework for sensornetworks [C]// Proceeedings of the Second European Workshop on Wireless Sensor Networks, Istanbul, Turkey: [s.n.], 2005: 278?289.

[11] 謝鳴.無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn)操作系統(tǒng)網(wǎng)絡(luò)協(xié)議棧研究與分析[D].杭州:浙江大學(xué),2008.

[12] 向渝,汪文勇,楊挺.無(wú)線傳感器網(wǎng)絡(luò)能量管理體系和服務(wù)原語(yǔ)研究[J].電子科技大學(xué)學(xué)報(bào),2007,36(6):1382?1385.