李麗萍 王長勝 陳崇毅
摘 要: Sensor Web是NASA/Jet Propulsion Laboratory (JPL)的Kevin Delin首先提出并將其定義為被部署用來監控和探測新環境,內部能夠相互通信的分布式傳感器組成的網絡系統。自OGC提出Sensor Web的相關標準以來,傳感器監測服務SOS就是最基本最核心的服務規范。文章首先對SWE的傳感器觀測服務SOS核心操作進行介紹,然后設計了傳感器觀測服務SOS架構,并對每層作了說明,利用Java、Tomcat等技術對SOS的架構進行部署和測試。利用所部署的SOS架構中的核心操作可獲取實時或歷史的觀測數據。
關鍵詞: Sensor Web; SWE; OGC; 傳感器觀測服務(SOS)
中圖分類號:TP79 文獻標志碼:A 文章編號:1006-8228(2014)04-01-03
Abstract: The term "Sensor Web" was first used by Kevin Delin of NASA, to describe a novel wireless sensor network architecture where the individual pieces could act and coordinate as a whole. In this sense, the term describes a specific type of sensor network: an amorphous network of spatially distributed sensor platforms (pods) that wirelessly communicate with each other. Since the standards of Sensor Web is proposed by the open geospatial consortium, the observation service has become the most basic core service specification. The core operation of sensor observation service based on SWE is introduced in detail. The architecture of sensor observation service is designed, including emphasized and data interaction all of each level of the architecture. Finally, technology of java and tomcat to deploy and test the architecture, SOS architecture can be used to deploy the core operations or get real-time or historical observations.
Key words: Sensor Web; SWE; OGC; sensor observation service(SOS)
0 引言
海量信息時代,如何融合異構數據、整合數據、向傳感器指派任務、發布訂閱和接收預警,以及對傳感網絡進行管理、互操作等成為棘手的問題。構建一個平臺將異構傳感網絡系統集成在一起,發現數據、融合異構數據、整合數據成為傳感網絡發展的必然趨勢,Sensor Web[1-2]的概念由此被提出來。2005年OGC(Open Geospatial Consortium)提出了一種國際通用的Sensor Web規范——傳感器Web整合框架(SWE,Sensor Web Enablement),在該框架中描述了傳感器的接口、協議和編碼規范,可從遠程接入傳感器,打造一個“即插即用”的基于Web的傳感器網絡的標準平臺[3]。
SWE中定義了三種信息模型和四種服務規范,分別是觀測與測量[4](O&M,Observation & Measurement)、傳感器描述語言[5](SensorML)、Transducer語言[6](TML)、傳感器觀測服務[7](SOS)、傳感器規劃服務[8](SPS)、傳感器通知服務[9](WNS)和傳感器報警服務[10](SAS)或傳感器事件服務[11](SES)。2012年OGC又新出了SES,其中SES是SAS的增強版,也是用來提高給傳感器數據和測量值的發布/訂閱的訪問。在SWE所有服務中傳感器監測服務SOS是最基礎和最核心的服務,即SOS服務提供一個API來管理和部署監測傳感器和傳感器數據。本課題利用開源的相關軟件來實現Sensor Web的SOS架構。
1 SOS的核心操作
傳感器觀測服務SOS負責傳感器監測數據管理和傳感器的管理,其包含的核心操作有GetCapabilities、GetObservation、Describesensor、InsertObservation和RegisterSensor。前三個操作為必選,后兩者是SOS的交互操作。GetCapabilities用來獲取特定的歷史觀測的元數據,包含五個可選的參數,當SOS得到GetCapabilities請求并響應時,可獲取詳細的傳感器數據[7]。Describesensor用來獲取傳感器的詳細信息,一般以sensorML或TML編碼形式描述。GetObservation獲取傳感器歷史數據,請求響應結果有兩種:一是系統接受響應返回查詢結果,響應一般是O&M文檔;二是返回異常。
RegisterSensor操作允許向傳感器觀測服務中發送一個XML文檔來注冊新的傳感器,該用SensorML格式或TML格式編寫,內容包括一些傳感器元數據的信息等。InsertObservation是傳感器觀測插入新監測,傳感器數據需先請求SOS服務的元數據前新觀測結構才可被插入到SOS中。
2 SOS架構設計
Sensor Web的傳感器觀測服務SOS架構設計分為三層,如圖1所示,分別為數據訪問層、業務邏輯層和Web層。
數據訪問層(即最低層)封裝了對數據庫的訪問或者其他資源的來源。業務邏輯層提供核心操作組件RequestOperator,該層用于處理來自最低層的各種請求以便返回監聽類。Web層和客戶端是連接在一起的,提供一些SOS的瘦客戶端和胖客戶端,可從52north(http://www.52north.org/)上自行下載安裝。
2.1 數據訪問層設計
該層數據庫資源的來源非常龐雜,從簡單的文本文件到非常復雜的數據模型。為了用戶能夠使用不同的數據源,對于每個操作的數據訪問都是通過使用數據訪問對象(DAO)來實現。通過該格式用戶可輕松訪問現有的傳感器數據或源的DAO實現。普遍來說DAO主要分為兩種:一種是SOS請求的數據訪問對象類,主要是實現對數據庫訪問,該數據訪問對象來獲取傳感器監測服務SOS的核心操作DescribSensor、GetCapabilities、GetOberavtion等相關數據;另一種是插入數據訪問對象(InsertDAO)來插入一些新的傳感器、現象特征等。默認情況下,傳感器監測服務SOS使用作為PostGIS的數據庫存儲觀測值和相應的元數據。用戶也可以自行選擇其他數據庫例如SQL Server數據庫等。本課題數據庫采用開源相關數據庫。
2.2 業務邏輯層設計
傳感器去觀測服務SOS的業務邏輯層主要包含三類。
⑴ RequestOperator。該組件式業務邏輯層的核心組件,它接收來自表示層的請求或驗證請求并轉發,將請求發送到響應的OperationListener。
⑵ GetObservationListener。為監聽類的一種,定義了相應請求處理。
⑶ NewOperationListener。從底層得到對應每個SOS請求的監聽。
為支持每個Listener監聽操作,需在外部配置文件中定義。所有的Listener提供一個共同的接口,用戶若要支持一個額外的操作,需要做的就是實現該操作監聽,執行相應的DAO和添加監聽器的配置文件。業務邏輯層還包含幾個其他組分,例如成分解析/編碼響應等。
2.3 Web層
傳感器觀測服務SOS架構的Web層僅有一個Servlet,它處理HTTP請求和響應。如果想支持其他協議,則必須采用其他類通信取代這個Servlet,目前存在不同的客戶端實現SOS服務,例如52north的OX框架(見http://www.52north.org/oxf)的瘦客戶端和胖客戶端可以服務于傳感器的應用開發。
3 SOS架構的部署與測試
3.1 硬件與軟件要求
Windows XP操作系統、JDK1.6、52n-sos-3.1.1、Apache Jakarta Tomcat 5.5及更高、PostreSQL Version [8.4]、PostGIS Version [1.4]、Apache Maven [3.0]、IE 6.0或者以上。
3.2 部署Web
確保用戶的JDK1.6和maven的正確安裝,在安裝的過程中要注意正確配置環境變量,例如path變量、maven變量等。正確安裝開源的PostGIS、postreSQL和Tomact軟件。Tomcat正確安裝的結果如圖2所示,注意這里用的是IE瀏覽器而不可以用360瀏覽器。
在所有軟件正確安裝后,啟動所安裝的Tomcat和Postgres,用戶可從52north上下載52n-sos-3.1.1,用來部署web應用。假設本地SOS庫的目錄在D:\java\52north-sos。打開命令行并進入到此目錄下。輸入以下命令:Mvn -Pwith-deploy install部署開始,期間會自動下載文件到.m2\repository和52n-sos\52n-sos-service\target中。部署成功后的屏幕顯示如圖3所示,同時tomcat目錄下webapps文件夾會出現52nSOSv3.war和52nSOSv3文件夾。
3.3 實驗測試
在該實驗中,得知傳感器觀測服務SOS客戶端的URL即可通過IE訪問SOS服務。如在IE中輸入地址http://localhost:8080/52nSOSv3/testClient-v2.html,從“Request Examples”列表中選擇命令,如“GetCapabilities_allSections”,點擊Send,所響應的XML文檔信息如圖4所示。
單擊send,響應文檔如圖5所示。
4 結束語
傳感器觀測服務是SWE中最核心和最基礎的服務,如何構建一個SOS平臺以滿足用戶的SOS的核心操作,進而獲取實時或歷史觀測數據成為關鍵。該SOS架構的平臺只是在SWE框架中起中間件的作用,從SWE框架整體來說,和SWE框架的其他服務如傳感器規劃SPS服務,Web通知結合和交互還得作進一步研究和實現;隨著Sensor Web的發展,地球將披上一層電子皮膚,這層電子皮膚會以互聯網為骨架,無時無刻地監測著城市、瀕臨絕跡的動物、大氣層、船舶、高速公路上的交通,使人類更清楚地了解自然環境過程,了解我們星球的過去、現在和未來。
參考文獻:
[1] Botts Mike; Alex Robin (Oct. 2007). Bringing the Sensor Web
Together. Geosciences,pp:46-53
[2] Delin K A. The Sensor Web:A Macro-Instrument for Coordinated
Sensing.Sensors,2002.2:2702285
[3] Ingo Simonis. Sensor Web Enablement Architecture(OGC
06-021r4 Ver0.4) [EB/OL]. http://www.opengeospatial.org/ projects/groups/sensorweb,2008.
[4] Simon Cox. Open Geospatial Consortium Inc. Observations and
Measurements Part 1:Observation Schema(OGC 07-022r1,Ver1.0)[EB/OL].http://www.opengeospatial.org/standards/om,2007.
[5] Mike Botts, Alexandre Robin. Open Geospatial Consortium Inc.
OpenGIS(R) Sensor Model Languag (SensorML)Implementation Specification(OGC(R) 07-000, Ver1.0)[EB/OL].http://www.opengeospatial.org/standards/sensorml,2007.
[6] Steve Havens. Open Geospatial Consortium Inc. OpenGIS
Transducer Markup Language(TML) Implementation Specification.(OGC06-010r6 Ver1.0) [EB/OL]. http://www.Opengeospatial
[7] Arthur Na(IRIS Corp.),Mark Priest (3eTI).Geospatial ConsortiumInc.
Sensor Observation Service (OGC 06-009r6 Version:1.0) [EB/OL].http://www.opengeospatial.org/standards/sos,2007.
[8] Ingo Simonis, Phillip C. Dibner, Ecosystem AssociatesOpen.
GeospatialConsortium Inc. OpenGIS(R) Sensor Planning Service Implementation Specification (OGC 07-014r3 Ver1.0)[EB/OL].http://www.opengeospatial.org/standards/sps,2007.
[9] Ingo Simonis, Andreas Wytzisk. Geospatial Consortium Inc. Web
Notification Service (OGC 03-008r2 Ver1.0)[EB/OL].http://www.opengeospatial.org/projects/groups/sensorweb,2003.
[10] Ingo Simonis. Geospatial Consortium Inc. Web Alert Service
(OGC 06-028r3 Ver0.9)[EB/OL].http://www.Opengeospatialorg/projects/groups/sensorweb,2006.
[11] Ingo Simonis.Geospatial Consortium Inc. Web Alert Service
(OGC 08-133 Ver0.9)[EB/OL]ttp://52north.org/communities/sensorweb/ses/0.0.1/index.html