APP下载

Sensor Web的SOS服务研究与实现

2014-04-29李丽萍王长胜陈崇毅

计算机时代 2014年4期

李丽萍 王长胜 陈崇毅

摘 要: 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