摘要:為了解決傳感器網(wǎng)絡和Internet之間的互聯(lián)以及應用問題,提出了面向服務的體系結(jié)構(gòu)。該體系結(jié)構(gòu)將傳感器網(wǎng)絡應用的接口和交互作為一種網(wǎng)頁服務進行封裝。這樣用戶可以通過HTTP來查找、定位和喚醒這些服務。將傳感器網(wǎng)絡按功能分為核心服務集合和輔助服務集合。通過應用層的接口來調(diào)用傳感器網(wǎng)絡的功能,為應用開發(fā)者提供一個統(tǒng)一的標準,不需要考慮底層的實現(xiàn),加強了應用開發(fā)的通用性和開發(fā)速度。描述了該體系結(jié)構(gòu)的實驗環(huán)境,并與典型應用場景相結(jié)合,融合核心服務和輔助服務。研究顯示,該體系結(jié)構(gòu)可以促進傳感器網(wǎng)絡應用的快速發(fā)展,有著廣闊的發(fā)展前景。
關鍵詞:傳感器網(wǎng)絡;面向服務;體系結(jié)構(gòu)
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2008)05-1474-03
0引言
微電子系統(tǒng)和通信技術(shù)的發(fā)展使得現(xiàn)階段可以生產(chǎn)一種新的計算設備,一種無限的、電池供電的、靈敏的傳感器節(jié)點。這些傳感器節(jié)點具有信號采集、信號傳輸和計算功能。典型的例子是美國Berkley開發(fā)出的集成了處理器、存儲器、電源和射頻收發(fā)的節(jié)點Motes,其大小僅有2×4×1 cm。雖然每個單獨節(jié)點的能力有限,但是通過成千上萬的節(jié)點所組成的傳感器網(wǎng)絡卻可以完成大型工作。為了能充分地使用傳感器網(wǎng)絡,人們在各個領域應用了傳感器網(wǎng)絡。例如環(huán)境監(jiān)測、地震監(jiān)測、醫(yī)療和工業(yè)監(jiān)測、智能家居等。傳感器網(wǎng)絡為人類對物理世界的監(jiān)測提供了前所未有的空間范圍[1]。同時,一個關鍵的問題也隨之產(chǎn)生,即是現(xiàn)在的傳感器網(wǎng)絡一般均是相互獨立的,為了能將傳感器網(wǎng)絡的作用進一步擴大并與現(xiàn)階段已經(jīng)普及的Internet相互融合,就需要一種結(jié)構(gòu)框架,使得獨立的傳感器網(wǎng)絡之間能夠相互聯(lián)系、相互通信。現(xiàn)階段很多的工作[2,3]主要集中在從傳感器節(jié)點到匯聚節(jié)點的數(shù)據(jù)收集和融合上。但是如何將傳感器網(wǎng)絡內(nèi)部的數(shù)據(jù)傳送到外部其他網(wǎng)絡的研究卻很少有人涉及。對于從眾多的傳感器網(wǎng)絡中直接按需查找出數(shù)據(jù)沒有現(xiàn)成的方法。另一個關鍵問題是傳感器網(wǎng)絡的應用開發(fā)與網(wǎng)絡的應用環(huán)境是緊密聯(lián)系的。這種過于緊密的聯(lián)系使得傳感器網(wǎng)絡的開發(fā)有一定的特殊性。不同的任務和要求,往往就需要傳感器網(wǎng)絡有不同的接口。但是一些主要的接口是非常通用的。這些問題減緩了傳感器網(wǎng)絡到實際應用的進程,也可能在相同的硬件平臺上產(chǎn)生了多個不同的應用并且互不兼容。本文提出了一種面向服務的體系結(jié)構(gòu)。該體系結(jié)構(gòu)主要處理來自不同網(wǎng)絡的數(shù)據(jù)命名、數(shù)據(jù)查找和運行管理以及數(shù)據(jù)過濾和融合。對于其他網(wǎng)絡而言,傳感器網(wǎng)絡被封裝成Web服務,像一些典型的Web服務一樣,傳感器網(wǎng)絡通過HTTP來進行信息定位、綁定和交換。
現(xiàn)階段SOA(service oriented architecture)[4,5]在應用集成中被廣泛關注,IBM、Microsoft、Oracle等均在從事這方面的研究[6]。為了將無線傳感器網(wǎng)絡集成到Internet中,仍然還有很多工作需要去做。文獻[7,8]中提出Agimone,一種支持集成傳感器網(wǎng)絡到IP網(wǎng)絡的中間件。M. Gaynor等人[9]提出了融合無線傳感網(wǎng)絡和網(wǎng)格。但是所有的研究工作均是集中于傳感器網(wǎng)絡僅僅充當數(shù)據(jù)生產(chǎn)者。本文的工作更進一步將傳感器網(wǎng)絡抽象為一種服務,將其封裝為一種Web服務。傳感器網(wǎng)絡除了承擔數(shù)據(jù)產(chǎn)生者的角色以外,還能響應外部網(wǎng)絡的命令,使得傳感器網(wǎng)絡如同其他Web服務一樣可以按需輸入和輸出。傳感器網(wǎng)絡的另一種高層抽象是以數(shù)據(jù)中心為方法,如TinyDB[1,10]、Cougar[11]等,其思想是將傳感器網(wǎng)絡看做一個分布式數(shù)據(jù)庫。但是,本文的目標和所涉及范疇與此不同。本文的目標是定義一種通用服務接口,使所有類型的應用可以通過該接口訪問傳感器網(wǎng)絡,而不用考慮該服務在傳感器網(wǎng)絡中如何實現(xiàn)。所以TinyDB和Cougar可以看做本文提出的服務接口的組件或者是實現(xiàn)技術(shù)。所有的操作均可以映射成一系列的查詢或請求,而這些查詢或請求服務能用基于數(shù)據(jù)中心的方法實現(xiàn)。
1傳感器網(wǎng)絡和協(xié)議棧
1.1傳感器網(wǎng)絡
傳感器網(wǎng)絡性質(zhì)如下:實時性;自組織網(wǎng)絡;不可信通信鏈接;由于節(jié)點可能失效,能允許網(wǎng)絡拓撲動態(tài)改變。
1.2協(xié)議棧
因為傳感器網(wǎng)絡使用的協(xié)議棧必須具有能量感知、數(shù)據(jù)融合、適應不可靠鏈路等功能,所以該協(xié)議棧必須在傳統(tǒng)的物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層、傳輸層和應用層組成的基礎之上,并且同時包含能量管理、移動管理和任務管理功能[3]。其中物理層主要解決一種簡單但健壯的數(shù)據(jù)和信息調(diào)制、發(fā)送和接收技術(shù);數(shù)據(jù)鏈路層必須能感知并能盡量減少鄰居節(jié)點廣播時的信道沖突;網(wǎng)絡層主要解決路由問題,為傳輸層提供路由選擇依據(jù)。按傳感器網(wǎng)絡應用的要求,傳輸層維護數(shù)據(jù)流;應用層的功能主要集中在處理傳感器網(wǎng)絡基站和應用之間的交互。傳感器網(wǎng)絡協(xié)議棧如圖1所示。
1.3傳感器網(wǎng)絡應用層
雖然現(xiàn)在無線傳感器網(wǎng)絡已經(jīng)應用到很多領域,但是傳感器網(wǎng)絡的應用層仍然存在著大量的未開發(fā)區(qū)域。很多應用需要傳感器網(wǎng)絡可與Internet互訪,并且可以很容易地集成到其他現(xiàn)有的應用系統(tǒng)中。一個明確的應用層體系結(jié)構(gòu)可以幫助設計獨立于硬件和協(xié)議棧底層協(xié)議的應用。面向服務體系結(jié)構(gòu)起源于對分布式計算和Web技術(shù)的研究。應用層的核心功能包括傳感節(jié)點管理、任務分配、數(shù)據(jù)傳播和查詢。傳感器網(wǎng)絡的核心功能可以作為Web服務進行封裝,通過HTTP對傳感器網(wǎng)絡的這些功能進行查詢、綁定和喚醒等。
2傳感器網(wǎng)絡的面向服務體系結(jié)構(gòu)
2.1面向服務體系結(jié)構(gòu)
SOA基于Web服務,在Internet時代,是軟件開發(fā)的主要技術(shù)之一。在本文的體系結(jié)構(gòu)中,軟件開發(fā)者或服務供應者可以將其軟件作為服務,以標準的服務注冊過程來注冊該服務。服務使用者能夠?qū)λ璺者M行信息查詢、綁定和交換。服務供應者、注冊機構(gòu)和服務使用者的關系如圖2所示。
2.2核心服務
傳感器網(wǎng)絡中,最明顯和最直接的需求就是提供良好的通信服務,使傳感器采集的數(shù)據(jù)能夠通過傳感器網(wǎng)絡到達外部網(wǎng)絡中。另外,還需要一些其他服務,如定位服務和計劃管理服務。通過將這些服務融合在一起,應用就可以從傳感器網(wǎng)絡得到其所需的數(shù)據(jù)。
下面列出了一些核心服務。這些服務在通常的應用中均會使用到,也是本文提出的體系結(jié)構(gòu)所必須提供的接口。
a)查詢服務。該服務允許應用獲得數(shù)據(jù)和傳感器網(wǎng)絡的狀態(tài)。事實上,查詢是一系列的應用行為,需要由一組傳感器產(chǎn)生的環(huán)境信息。為了對傳感器網(wǎng)絡進行有效查詢,應用將規(guī)定一些傳感器節(jié)點參數(shù):
(a)設置:按規(guī)定創(chuàng)建參數(shù)和設置查詢實例。
(b)更新:使用新參數(shù)更新查詢實例。
(c)寫請求:初始化一個查詢實例并獲得一些參數(shù)。
(d)讀反應:當數(shù)據(jù)有效時,獲得查詢實例的結(jié)果。
(e)停止查詢:停止和釋放查詢實例。
b)定位服務。該服務提供傳感器節(jié)點在網(wǎng)絡中的空間位置信息。傳感器網(wǎng)絡中一般使用節(jié)點位置作為一個關鍵參數(shù),如在查詢中,應用位置規(guī)定節(jié)點的范圍。位置信息由一個二元組來定義。按位置不同,傳感器節(jié)點被劃分在不同區(qū)域中。區(qū)域的形狀可以是方型、球型、圓柱型或其他更為復雜的類型。另外,一個區(qū)域可以包含或交疊于另一個區(qū)域。一個節(jié)點可能屬于一個或者多個區(qū)域。區(qū)域還可能包含層次結(jié)構(gòu)。定位服務的基本操作包括:設置定位服務實例;更新,使用新參數(shù)更新定位服務實例;獲取當前或者是指定節(jié)點的位置信息;獲取區(qū)域信息,包含當前或者指定節(jié)點的區(qū)域列表;獲取區(qū)域節(jié)點信息,即指定區(qū)域中的節(jié)點列表。
c)計劃管理服務。傳感器節(jié)點可能有不同的數(shù)據(jù)計劃,如它們可能有著不同的功能和目標,采集不同的環(huán)境屬性信息。這就需要提供的服務能管理不同計劃,使它們可以有效地工作。計劃管理服務將維護一個倉庫。其中包含了網(wǎng)絡和節(jié)點的計劃列表,同時也需要考慮這些計劃是否被網(wǎng)絡所支持。計劃管理服務將管理以下概念:(a)屬性。不同傳感器節(jié)點將有不同的計劃。當有新節(jié)點加入或當有節(jié)點失效時,傳感器網(wǎng)絡的屬性將被更新。(b)組織。指出某組節(jié)點的擁有者。當在同一區(qū)域,節(jié)點執(zhí)行同樣的功能,但是使用者和任務不同時,使用組織來區(qū)分節(jié)點是很有必要的。組織也可能是由一或多層結(jié)構(gòu)組成。
這些服務的基本功能有:(a)設置計劃管理服務實例。(b)當新節(jié)點加入或者節(jié)點失效時,更新計劃管理服務。(c)獲取屬性信息,即當前或指定節(jié)點的計劃。(d)獲取組織信息,即當前或指定節(jié)點的擁有者。(e)按屬性獲取節(jié)點,即獲取具有某一共同屬性的節(jié)點列表。(f)按組織獲取節(jié)點,即按指定的所有者獲取節(jié)點列表。
2.3體系結(jié)構(gòu)的輔助服務
除了核心服務之外,還可能需要一些其他服務。其中包括數(shù)據(jù)過濾、融合、緩存等。過濾服務主要是過濾從傳感器網(wǎng)絡發(fā)送到Internet上的數(shù)據(jù)。一般來說,應用僅僅只對其中的部分數(shù)據(jù)感興趣。例如,應用僅僅需要傳感器采集到的溫度大于30℃的信息,這時過濾服務將發(fā)揮作用。
一些服務需要向不同的傳感器網(wǎng)絡或數(shù)據(jù)源查詢信息,融合服務就可以用來匯聚這些數(shù)據(jù)。例如,融合服務先將數(shù)據(jù)存儲在數(shù)據(jù)庫中,然后對這些數(shù)據(jù)進行合并。融合服務的數(shù)據(jù)源可以是傳感器網(wǎng)絡、一些數(shù)據(jù)庫系統(tǒng)或系統(tǒng)中存在的其他服務。當數(shù)據(jù)從傳感器網(wǎng)絡發(fā)送到應用時,可以在數(shù)據(jù)庫系統(tǒng)中臨時緩存。
2.4通知機制
由于傳感器網(wǎng)絡的特性,當異常事件發(fā)生時,應用需要獲得通知。如此就可以避免傳感器節(jié)點不間斷地監(jiān)聽傳感器網(wǎng)絡。對于能量受限的節(jié)點,可以節(jié)省大量的能量,避免節(jié)點過早死亡。通知機制非常有必要,主要是以Web服務為主。這里使用WS-Notification。
WS-Notification是一系列規(guī)范,它制定了在Web服務環(huán)境中創(chuàng)建事件驅(qū)動系統(tǒng)的標準流程。它們是與Web服務資源框架(Web services resource framework,WSRF)一起開發(fā)的(后者提供了一種在無狀態(tài)環(huán)境中使用狀態(tài)的方法),但是它們也可以在普通的Web服務中使用。WSN包括三個規(guī)范:
a)WS-BaseNotification。解決基本的功能,它定義了NotificationProducers、 NotificationConsumers、通知和訂閱,并將它們?nèi)诤显谝黄稹K€描述了暫停訂閱和恢復訂閱的過程,以及控制訂閱長度的方法。
b)WS-Topics。當用戶訂閱一個NotificationProducer時,該訂閱就與一個特定的主題或多個主題關聯(lián)在一起。這個文檔就解釋了用來定義和創(chuàng)建多個主題所使用的結(jié)構(gòu)。
c)WS-BrokeredNotification。在有些情況下,創(chuàng)建通知的實體并不能管理各種訂閱。這個文檔定義了創(chuàng)建一個發(fā)布者的過程;發(fā)布者可以簡單地創(chuàng)建一些消息,并通過一個單獨的 NotificationBroker來發(fā)布這些消息。
使用WS-Notification,客戶端按其從Web服務上所需的數(shù)據(jù)注冊特定的興趣,如當溫度大于30℃時,計算平均溫度。當數(shù)據(jù)從傳感器網(wǎng)絡采集過來時,應用將使用規(guī)定的興趣進行檢查。如果滿足這些興趣,那么數(shù)據(jù)將被應用繼續(xù)處理;否則將丟棄。通過WS-Notification框架,數(shù)據(jù)產(chǎn)生者與數(shù)據(jù)消費者之間的緊密聯(lián)系被打破了。遵循通知框架的接口,應用能獨立發(fā)展所需功能,所以可以保證整個系統(tǒng)的可重用性。
3實驗環(huán)境和特定的應用場景
3.1實驗環(huán)境
實驗是基于Visual Studio.NET和MicaZ傳感器節(jié)點的。傳感器網(wǎng)絡可以采集溫度、濕度和光強度等信息,并通過串口與計算機相連接。由Crossbow提供的串行軟件將轉(zhuǎn)換在傳感器網(wǎng)絡與計算機之間的串行通信,按不同的Web服務和實例將這些通信綁定到基于并行共享的套接字中。
在第三部分列出的核心服務和輔助服務已經(jīng)實現(xiàn)。WS-Notification是基于WSRF.NET[5]的。這些服務用WSDL(Web service description language)描述,并且注冊到UDDI(universal description,discovery,and integration)服務注冊中心,集成到Microsoft Windows 2003。JUDDI服務注冊中心在Linux平臺上運行。JUDDI是開源UDDI注冊中心的實現(xiàn)。應用客戶端可以根據(jù)對所需服務的描述,通過在UDDI注冊機構(gòu)查詢來發(fā)現(xiàn)合適的服務,通過SOAP來綁定和交換服務信息。圖3是按照本文提出的體系結(jié)構(gòu)開發(fā)的基于傳感器網(wǎng)絡的環(huán)境監(jiān)測應用。
3.2環(huán)境監(jiān)測應用場景
環(huán)境監(jiān)測的應用場景非常具有通用性,如在煤礦安全、智能家具、工業(yè)控制等方面,均可以歸結(jié)為一種環(huán)境監(jiān)測。該應用場景的實現(xiàn)原理如圖4所示。
3.3實驗數(shù)據(jù)
環(huán)境監(jiān)測應用的實驗結(jié)果如表1所示。
實驗一共使用了20個節(jié)點,按所設定的溫度、濕度和亮度進行測試,測試的次數(shù)為30次。表1中的計算結(jié)果為30次結(jié)果的平均值。其他的核心功能和輔助功能也進行了相應的測試,由于是功能上的實現(xiàn),本文未能給出具體的實驗數(shù)據(jù)。
4結(jié)束語
本文提出了一種面向服務的體系結(jié)構(gòu)。該體系結(jié)構(gòu)提出了傳感器網(wǎng)絡與Internet的應用接口。相信通過在應用層定義面向服務的體系結(jié)構(gòu),不僅能按實際情況方便地開發(fā)出適當?shù)膽茫⑶乙灿兄趯F(xiàn)實世界的信息轉(zhuǎn)換到計算機應用中。
本文的某些概念也可以引入到其他類型的應用中。例如,計劃管理服務同樣可以用到多媒體網(wǎng)絡的應用開發(fā)中。同時,該體系結(jié)構(gòu)也還存在一些需要進一步研究的問題。例如,如何對服務進行限制,以保護傳感器網(wǎng)絡的數(shù)據(jù)安全性;如何控制和審計服務的使用等,這些都將是以后的研究方向。
參考文獻:
[1]MADDEN S,F(xiàn)RANKLIN M J,HELLERSTERIN J M,et al.TAG: a tiny aggregation service for Ad hoc sensor networks[C]//Proc of the 5th Annual Symposium on Operating Systems Design and Implementation.2002.
[2]HILL J,SZEWCZYK R,WOO A,et al.System architecture for networked sensors[C]//Proc of Int’l Conf on Architectural Support for Programming Languages and Operating Systems. Cambridge, MA: ACM Press,2000.
[3]AKYILDIZ I F,SU W.Wireless sensor networks:a survey[J].Computer Networks,2002,38:393-422.
[4]YAN Xin-qing,LI Wen-feng,CHEN Ding-fang.The architecture and application of Web services[J].Journal of Wuhan University of Technology,2002,4.
[5]HUMPHREY M,GAWOR J,BESTER J,et al.State and events for Web services:a comparison of five WS-Resource framework and WS-Notification implementations[C]//Proc of the 14th IEEE International Symposium on High Performance Distributed Computing (HPDC-14).
[6]KRAFZIG D,BANKE K,SLAMA D.Enterprise SOA:service-oriented architecture best practices[M].[S.l.]:Prentice Hall PTR,2004.
[7]HACKMANN G,F(xiàn)OK C L,ROMAN G C,et al.Agimone:middleware support for seamless integration of sensor and IP networks[R].Wa-shington DC:Washington University in St Louis,2006.
[8]BRANCH J W,DAVIS J S,SOW D M,et al.Sentire:a framework for building middleware for sensor and actuator networks[C]//Proc of the 3rd Int’l Conf on Pervasive Computing and Communication Workshops.2005.
[9]GAYNOR M,MOULTON S,WELSH M,et al.Integrating wireless sensor networks with the grid[J].IEEE Internet Computing,2004,8(4):32-39.
[10]WOO A,MADDEN S,GOVINDAN R.Networking support for query processing in sensor networks[J].Communications of the ACM,2004,47(6):47-52.
[11]GEHRKE J,MADDEN S.Query processing in sensor networks[J].IEEE Pervasive Computing, 2004,3(1):46-55.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”