摘要:為了解決傳感器網絡和Internet之間的互聯以及應用問題,提出了面向服務的體系結構。該體系結構將傳感器網絡應用的接口和交互作為一種網頁服務進行封裝。這樣用戶可以通過HTTP來查找、定位和喚醒這些服務。將傳感器網絡按功能分為核心服務集合和輔助服務集合。通過應用層的接口來調用傳感器網絡的功能,為應用開發者提供一個統一的標準,不需要考慮底層的實現,加強了應用開發的通用性和開發速度。描述了該體系結構的實驗環境,并與典型應用場景相結合,融合核心服務和輔助服務。研究顯示,該體系結構可以促進傳感器網絡應用的快速發展,有著廣闊的發展前景。
關鍵詞:傳感器網絡;面向服務;體系結構
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2008)05-1474-03
0引言
微電子系統和通信技術的發展使得現階段可以生產一種新的計算設備,一種無限的、電池供電的、靈敏的傳感器節點。這些傳感器節點具有信號采集、信號傳輸和計算功能。典型的例子是美國Berkley開發出的集成了處理器、存儲器、電源和射頻收發的節點Motes,其大小僅有2×4×1 cm。雖然每個單獨節點的能力有限,但是通過成千上萬的節點所組成的傳感器網絡卻可以完成大型工作。為了能充分地使用傳感器網絡,人們在各個領域應用了傳感器網絡。例如環境監測、地震監測、醫療和工業監測、智能家居等。傳感器網絡為人類對物理世界的監測提供了前所未有的空間范圍[1]。同時,一個關鍵的問題也隨之產生,即是現在的傳感器網絡一般均是相互獨立的,為了能將傳感器網絡的作用進一步擴大并與現階段已經普及的Internet相互融合,就需要一種結構框架,使得獨立的傳感器網絡之間能夠相互聯系、相互通信。現階段很多的工作[2,3]主要集中在從傳感器節點到匯聚節點的數據收集和融合上。但是如何將傳感器網絡內部的數據傳送到外部其他網絡的研究卻很少有人涉及。對于從眾多的傳感器網絡中直接按需查找出數據沒有現成的方法。另一個關鍵問題是傳感器網絡的應用開發與網絡的應用環境是緊密聯系的。這種過于緊密的聯系使得傳感器網絡的開發有一定的特殊性。不同的任務和要求,往往就需要傳感器網絡有不同的接口。但是一些主要的接口是非常通用的。這些問題減緩了傳感器網絡到實際應用的進程,也可能在相同的硬件平臺上產生了多個不同的應用并且互不兼容。本文提出了一種面向服務的體系結構。該體系結構主要處理來自不同網絡的數據命名、數據查找和運行管理以及數據過濾和融合。對于其他網絡而言,傳感器網絡被封裝成Web服務,像一些典型的Web服務一樣,傳感器網絡通過HTTP來進行信息定位、綁定和交換。
現階段SOA(service oriented architecture)[4,5]在應用集成中被廣泛關注,IBM、Microsoft、Oracle等均在從事這方面的研究[6]。為了將無線傳感器網絡集成到Internet中,仍然還有很多工作需要去做。文獻[7,8]中提出Agimone,一種支持集成傳感器網絡到IP網絡的中間件。M. Gaynor等人[9]提出了融合無線傳感網絡和網格。但是所有的研究工作均是集中于傳感器網絡僅僅充當數據生產者。本文的工作更進一步將傳感器網絡抽象為一種服務,將其封裝為一種Web服務。傳感器網絡除了承擔數據產生者的角色以外,還能響應外部網絡的命令,使得傳感器網絡如同其他Web服務一樣可以按需輸入和輸出。傳感器網絡的另一種高層抽象是以數據中心為方法,如TinyDB[1,10]、Cougar[11]等,其思想是將傳感器網絡看做一個分布式數據庫。但是,本文的目標和所涉及范疇與此不同。本文的目標是定義一種通用服務接口,使所有類型的應用可以通過該接口訪問傳感器網絡,而不用考慮該服務在傳感器網絡中如何實現。所以TinyDB和Cougar可以看做本文提出的服務接口的組件或者是實現技術。所有的操作均可以映射成一系列的查詢或請求,而這些查詢或請求服務能用基于數據中心的方法實現。
1傳感器網絡和協議棧
1.1傳感器網絡
傳感器網絡性質如下:實時性;自組織網絡;不可信通信鏈接;由于節點可能失效,能允許網絡拓撲動態改變。
1.2協議棧
因為傳感器網絡使用的協議棧必須具有能量感知、數據融合、適應不可靠鏈路等功能,所以該協議棧必須在傳統的物理層、數據鏈路層、網絡層、傳輸層和應用層組成的基礎之上,并且同時包含能量管理、移動管理和任務管理功能[3]。其中物理層主要解決一種簡單但健壯的數據和信息調制、發送和接收技術;數據鏈路層必須能感知并能盡量減少鄰居節點廣播時的信道沖突;網絡層主要解決路由問題,為傳輸層提供路由選擇依據。按傳感器網絡應用的要求,傳輸層維護數據流;應用層的功能主要集中在處理傳感器網絡基站和應用之間的交互。傳感器網絡協議棧如圖1所示。
1.3傳感器網絡應用層
雖然現在無線傳感器網絡已經應用到很多領域,但是傳感器網絡的應用層仍然存在著大量的未開發區域。很多應用需要傳感器網絡可與Internet互訪,并且可以很容易地集成到其他現有的應用系統中。一個明確的應用層體系結構可以幫助設計獨立于硬件和協議棧底層協議的應用。面向服務體系結構起源于對分布式計算和Web技術的研究。應用層的核心功能包括傳感節點管理、任務分配、數據傳播和查詢。傳感器網絡的核心功能可以作為Web服務進行封裝,通過HTTP對傳感器網絡的這些功能進行查詢、綁定和喚醒等。
2傳感器網絡的面向服務體系結構
2.1面向服務體系結構
SOA基于Web服務,在Internet時代,是軟件開發的主要技術之一。在本文的體系結構中,軟件開發者或服務供應者可以將其軟件作為服務,以標準的服務注冊過程來注冊該服務。服務使用者能夠對所需服務進行信息查詢、綁定和交換。服務供應者、注冊機構和服務使用者的關系如圖2所示。
2.2核心服務
傳感器網絡中,最明顯和最直接的需求就是提供良好的通信服務,使傳感器采集的數據能夠通過傳感器網絡到達外部網絡中。另外,還需要一些其他服務,如定位服務和計劃管理服務。通過將這些服務融合在一起,應用就可以從傳感器網絡得到其所需的數據。
下面列出了一些核心服務。這些服務在通常的應用中均會使用到,也是本文提出的體系結構所必須提供的接口。
a)查詢服務。該服務允許應用獲得數據和傳感器網絡的狀態。事實上,查詢是一系列的應用行為,需要由一組傳感器產生的環境信息。為了對傳感器網絡進行有效查詢,應用將規定一些傳感器節點參數:
(a)設置:按規定創建參數和設置查詢實例。
(b)更新:使用新參數更新查詢實例。
(c)寫請求:初始化一個查詢實例并獲得一些參數。
(d)讀反應:當數據有效時,獲得查詢實例的結果。
(e)停止查詢:停止和釋放查詢實例。
b)定位服務。該服務提供傳感器節點在網絡中的空間位置信息。傳感器網絡中一般使用節點位置作為一個關鍵參數,如在查詢中,應用位置規定節點的范圍。位置信息由一個二元組來定義。按位置不同,傳感器節點被劃分在不同區域中。區域的形狀可以是方型、球型、圓柱型或其他更為復雜的類型。另外,一個區域可以包含或交疊于另一個區域。一個節點可能屬于一個或者多個區域。區域還可能包含層次結構。定位服務的基本操作包括:設置定位服務實例;更新,使用新參數更新定位服務實例;獲取當前或者是指定節點的位置信息;獲取區域信息,包含當前或者指定節點的區域列表;獲取區域節點信息,即指定區域中的節點列表。
c)計劃管理服務。傳感器節點可能有不同的數據計劃,如它們可能有著不同的功能和目標,采集不同的環境屬性信息。這就需要提供的服務能管理不同計劃,使它們可以有效地工作。計劃管理服務將維護一個倉庫。其中包含了網絡和節點的計劃列表,同時也需要考慮這些計劃是否被網絡所支持。計劃管理服務將管理以下概念:(a)屬性。不同傳感器節點將有不同的計劃。當有新節點加入或當有節點失效時,傳感器網絡的屬性將被更新。(b)組織。指出某組節點的擁有者。當在同一區域,節點執行同樣的功能,但是使用者和任務不同時,使用組織來區分節點是很有必要的。組織也可能是由一或多層結構組成。
這些服務的基本功能有:(a)設置計劃管理服務實例。(b)當新節點加入或者節點失效時,更新計劃管理服務。(c)獲取屬性信息,即當前或指定節點的計劃。(d)獲取組織信息,即當前或指定節點的擁有者。(e)按屬性獲取節點,即獲取具有某一共同屬性的節點列表。(f)按組織獲取節點,即按指定的所有者獲取節點列表。
2.3體系結構的輔助服務
除了核心服務之外,還可能需要一些其他服務。其中包括數據過濾、融合、緩存等。過濾服務主要是過濾從傳感器網絡發送到Internet上的數據。一般來說,應用僅僅只對其中的部分數據感興趣。例如,應用僅僅需要傳感器采集到的溫度大于30℃的信息,這時過濾服務將發揮作用。
一些服務需要向不同的傳感器網絡或數據源查詢信息,融合服務就可以用來匯聚這些數據。例如,融合服務先將數據存儲在數據庫中,然后對這些數據進行合并。融合服務的數據源可以是傳感器網絡、一些數據庫系統或系統中存在的其他服務。當數據從傳感器網絡發送到應用時,可以在數據庫系統中臨時緩存。
2.4通知機制
由于傳感器網絡的特性,當異常事件發生時,應用需要獲得通知。如此就可以避免傳感器節點不間斷地監聽傳感器網絡。對于能量受限的節點,可以節省大量的能量,避免節點過早死亡。通知機制非常有必要,主要是以Web服務為主。這里使用WS-Notification。
WS-Notification是一系列規范,它制定了在Web服務環境中創建事件驅動系統的標準流程。它們是與Web服務資源框架(Web services resource framework,WSRF)一起開發的(后者提供了一種在無狀態環境中使用狀態的方法),但是它們也可以在普通的Web服務中使用。WSN包括三個規范:
a)WS-BaseNotification。解決基本的功能,它定義了NotificationProducers、 NotificationConsumers、通知和訂閱,并將它們融合在一起。它還描述了暫停訂閱和恢復訂閱的過程,以及控制訂閱長度的方法。
b)WS-Topics。當用戶訂閱一個NotificationProducer時,該訂閱就與一個特定的主題或多個主題關聯在一起。這個文檔就解釋了用來定義和創建多個主題所使用的結構。
c)WS-BrokeredNotification。在有些情況下,創建通知的實體并不能管理各種訂閱。這個文檔定義了創建一個發布者的過程;發布者可以簡單地創建一些消息,并通過一個單獨的 NotificationBroker來發布這些消息。
使用WS-Notification,客戶端按其從Web服務上所需的數據注冊特定的興趣,如當溫度大于30℃時,計算平均溫度。當數據從傳感器網絡采集過來時,應用將使用規定的興趣進行檢查。如果滿足這些興趣,那么數據將被應用繼續處理;否則將丟棄。通過WS-Notification框架,數據產生者與數據消費者之間的緊密聯系被打破了。遵循通知框架的接口,應用能獨立發展所需功能,所以可以保證整個系統的可重用性。
3實驗環境和特定的應用場景
3.1實驗環境
實驗是基于Visual Studio.NET和MicaZ傳感器節點的。傳感器網絡可以采集溫度、濕度和光強度等信息,并通過串口與計算機相連接。由Crossbow提供的串行軟件將轉換在傳感器網絡與計算機之間的串行通信,按不同的Web服務和實例將這些通信綁定到基于并行共享的套接字中。
在第三部分列出的核心服務和輔助服務已經實現。WS-Notification是基于WSRF.NET[5]的。這些服務用WSDL(Web service description language)描述,并且注冊到UDDI(universal description,discovery,and integration)服務注冊中心,集成到Microsoft Windows 2003。JUDDI服務注冊中心在Linux平臺上運行。JUDDI是開源UDDI注冊中心的實現。應用客戶端可以根據對所需服務的描述,通過在UDDI注冊機構查詢來發現合適的服務,通過SOAP來綁定和交換服務信息。圖3是按照本文提出的體系結構開發的基于傳感器網絡的環境監測應用。
3.2環境監測應用場景
環境監測的應用場景非常具有通用性,如在煤礦安全、智能家具、工業控制等方面,均可以歸結為一種環境監測。該應用場景的實現原理如圖4所示。
3.3實驗數據
環境監測應用的實驗結果如表1所示。
實驗一共使用了20個節點,按所設定的溫度、濕度和亮度進行測試,測試的次數為30次。表1中的計算結果為30次結果的平均值。其他的核心功能和輔助功能也進行了相應的測試,由于是功能上的實現,本文未能給出具體的實驗數據。
4結束語
本文提出了一種面向服務的體系結構。該體系結構提出了傳感器網絡與Internet的應用接口。相信通過在應用層定義面向服務的體系結構,不僅能按實際情況方便地開發出適當的應用,并且也有助于將現實世界的信息轉換到計算機應用中。
本文的某些概念也可以引入到其他類型的應用中。例如,計劃管理服務同樣可以用到多媒體網絡的應用開發中。同時,該體系結構也還存在一些需要進一步研究的問題。例如,如何對服務進行限制,以保護傳感器網絡的數據安全性;如何控制和審計服務的使用等,這些都將是以后的研究方向。
參考文獻:
[1]MADDEN S,FRANKLIN 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,FOK 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.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”