祥保庆,罗万明,阎保平
1.中国科学院计算机网络信息中心,北京 100190
2.中国科学院大学,北京 100049
面向生态环境监测的传感规划服务的研究与实现
祥保庆1,2,罗万明1,阎保平1
1.中国科学院计算机网络信息中心,北京 100190
2.中国科学院大学,北京 100049
近年来,传感技术的快速发展为生态环境监测奠定了坚实的硬件基础。在不同的生态环境监测传感系统之间,整合监测数据在采集、处理、存储过程以及通信协议上的差异,实现资源共享成为传感领域的一个重要问题。传感规划服务 (Sensor Planning Service,SPS) 是由开放地理信息联盟(Open Geospatial Consortium,OGC) 提出的一种开放标准,主要为用户规划请求并为传感资源规划任务,从而实现传感资源共享。本文将 SPS 服务应用于生态环境监测传感网,并且设计相应的客户端和服务端,验证了 SPS 服务应用于生态环境监测传感网的可行性。
传感技术;生态环境监测;资源共享;开放地理信息联盟;任务规划
随着人们对于生态环境问题的关注程度越来越高,许多地区都已经建立了用于生态环境观测的无线传感器网络[1]。这些生态环境监测传感系统利用各种各样的传感设备,在不破坏生态环境的前提下,获取了大量的生态观测数据。然而由于传感器网络中的观测设备、数据处理方式、数据格式以及通信协议等方面的不同,各种来自不同类型的传感器网络的数据只能被特定的应用访问,并且不能通过互联网直接互联到一起,这使得这些传感器网络成为了一个个信息“孤岛”[2-3]。Sensor Web 是由美国国家航空航天局的Kevin Delin 于 1997年首次提出,主要描述了一种无线传感器网络的协作架构。OGC 一直致力于 Sensor Web 的推广,并制定了一套 Sensor Web 标准框架(Sensor Web Enablement,SWE)[4]。SWE 规范包括下述七种:传感观测服务 (Sensor Observation Service,SOS)、传感规划服务 (Sensor Planning Service,SPS)、网络通告服务 (Web Notification Service,WNS)、传感警告服务 (Sensor Alert Service,SAS)、观测和测量 (Observation & Measurement,O&M)、传感建模语言 (Sensor Model Language,SensorML)、转换标记语言 (Transducer Markup Language,TML)。其中 SPS、SOS、SAS、WNS 是 SWE 的四大功能模型,即四大服务,O & M、SensorML、TML 是 SWE的信息模型[5]。SOS 直接和传感器网络交互来获取传感器观测数据[6]。SPS 连接用户和传感器网络,主要负责对用户请求进行可行性判定并为传感器网络规划任务。WNS 负责向用户发送观测请求任务的观测结果和相关的通知信息[7]。SAS 在特定情况下向用户提供告警服务[8]。这些 Web 服务相互协作,并结合O & M、SensorML 和 TML,向外部用户提供了对传感器网络的访问接口,使传感观测资源得到了有效地共享。
本文主要研究 SWE 框架下的 SPS 服务规范。在深入研究 SPS 标准的数据格式和交互规范的基础上,将该服务规范应用于黑河流域和青海湖自然保护区生态环境监测传感网中。生态环境监测传感网已经集成了符合 OGC 标准的 SOS 服务[9],主要用来检索生态环境监测传感网中的元数据和观测数据。本文以黑河流域和青海湖自然保护区生态环境监测传感网为应用示范,研究并设计 SPS 服务的体系结构,并以该体系结构为基础设计与实现 SPS 服务,并对该示范应用进行验证和总结。
作为 SWE 框架的重要组成部分,SPS 服务标准完成了自用户发出请求至任务提交结束等一系列交互过程。SPS 服务标准需要完成的操作包括:提供用户请求所必须的任务参数并负责对用户请求进行可行性判定、建立可行的传感器收集计划以及向传感器平台提交任务。它为用户屏蔽了传感器平台的底层实现,提供一种标准的服务接口,实现了传感观测资源的共享。
SPS规范定义了一系列标准接口,包含功能性操作和信息操作两类接口。信息操作主要包括:GetCapabilities、DescribeTasking、DescribeResultAccess、GetStatus,这些操作提供用户收集请求过程中所需要的信息。功能性操作包括:GetFeasibility、Submit、Update、Cancel。这些功能性操作在信息操作的基础上完成了用户观测请求过程的控制[10]。
作为用户与传感系统之间的桥梁,SPS 服务提供的接口完成了请求可行性判定、观测规划、任务提交等功能,其典型交互流程如图1所示:
其中,GetCapabilities、DescribeTasking、Submit三个接口操作是 SPS 服务的核心操作,GetFeasibility、GetStatus、Update、DescribeResultAccess、Cancel 五个接口操作是 SPS 服务的扩展操作,具体内容如下。
GetCapabilities 用于得到服务自身的信息,用户将根据服务自身的信息确定该服务对外提供的功能。服务自身信息包括 SPS 服务的版本号、标识信息、服务提供者的信息、所支持的操作及操作的参数描述等[11]。
服务器收到GetCapabilities 请求后的响应为CapabilitiesDocument,CapabilitiesDocument 包含的内容主要包括:
(1) ServiceIdenti fication:SPS 服务身份标识;
(2) ServiceProvider:服务提供方个人信息,包括作者名称、联系方式等个人信息;
(3) OperationsMetadata:元信息文档,即 SPS 服务自身功能的相关描述。主要包括 SPS 服务支持的操作以及操作需要输入的参数;
(4) Content:主要描述观测现象。每种观测现象对应某个传感器。
DescribeTasking 主要为发出请求的用户提供任务规划,是 SPS 服务相当重要的操作。该操作首先解析用户请求的参数,然后向传感器平台分配规划任务。用户发出的 DescribeTasking 请求描述如表2所示。
该接口的响应为 DescribeTaskingRequestResponse的结构描述如图2所示:
图1 SPS 服务典型交互过程Fig.1 The typical interaction process of Sensor Planning Service
表2 Describe Tasking 参数描述Table 2 Description of Describe Tasking parameters
图2 Describe Taskingt Response 结构Fig.2 The structure of Describe Tasking Response
Submit 操作用于提交已经完成规划的 SPS 任务请求,遵循 SPS 标准的规范,用户可以在以下两种方式中选择提交任务的方式:1、提供设备 ID 和相关的参数;2、只提供一个经过可行性判定的 ID。在Submit 操作后可以根据响应返回结果对任务进行查询状态、更新和取消等操作。请求参数如表3 所示:
Submit 接口要求的参数由用户填写,由 SPS 接收并进行参数值的有效性检测。
Submit 操作的响应 SubmitRequestResponse 包含以下内容:
(1) taskID:传感任务标识,用户可以根据该标识查询、取消或者更新该任务;
(2) Status:状态。如确认、拒绝、等待、请求不完整等状态;
(3) Description:包括字符串或者指向其它服务的引用,描述任务信息;
(4) estimatedToC:任务预判的完成时间;
(5) Alternative:任务执行的备用选择。
对任务进行可行性判定。根据用户发出的观测请求和 SPS 感知的传感信息(传感设备、传感器 Web 服务和相关算法)。GetFeasibility 请求参数如表4 所示:
Get Feasibility 的响应为 Get Feasibility Request Response,主要包含以下信息:
(1) ID:可行性结果标识;
(2) Feasibility:可行性结果,如可行、不可行、请求不完整等;
(3) Description:描述判定结果;
(4) Alternative:可行性判定未予通过的备选方案。
该接口用于获取任务提交后的状态。该接口所需的参数 taskID,通过用户提交 Submit 后的返回值得到。Task 的状态包括:待执行、未知、操作中、取消、已完成、延迟。
该接口用于任务更新。通过 taskID 选择之前提交的任务,并且添加想要修改的参数。Update 请求能否成功主要取决于该任务的当前状态,只有处于待执行和延迟的任务可以被更新。
表3 Submit 请求参数Table 3 The request parameters of Submit
表4 Get Feasibility 请求参数Table 4 The request parameters of Get Feasibility
Describe Result Access 接口为用户提供资源检索服务,用户可以通过 taskID 或 sensorID 来检索某个任务或某个传感器相关的观测数据。该接口的返回结果包含指向其他 OGC Web 服务的引用。
该接口通过 taskID 来取消选定任务,该任务应该处于已经提交尚未被执行的状态。
黑河流域生态水文传感器网络是在我国西北地区黑河流域上游八宝河流域和中游盈科灌区,以无线传感器网络为纽带,建立的自动化、智能化、时空协同的、各观测节点远程可控的生态水文传感器综合观测网络,用以全面提高黑河流域水文过程的综合观测能力和观测自动化水平[12]。传感器网络中目前有 55 套定制开发的适合于高寒地区野外部署、接口灵活且支持 IPv6 协议的无线传感器网络节点,搭载空气温湿度传感器和风速传感器等传感器,对黑河中游和上游的生态水文进行观察[13]。青海湖区域是我国重要的生态保护基地,青海湖国家级自然保护区是以野生水鸟及其栖息地保护为主要保护任务的保护区。自 2005年以来,为开展野生水鸟保护和行为研究,以及疫病预警和防治,中国科学院计算机网络信息中心与保护区管理局合作,共同建设了青海湖野外网络视频监控系统[14]。
生态环境监测系统在黑河流域和青海湖保护区生态水文传感器网络的基础上,遵循 OGC 相关规范,建立以生态环境监测为应用示范的面向生态环境监测的 Sensor Web 平台。此平台目前已经集成了遵循 OGC 规范的数据观测服务 (Sensor Observation Service,SOS) 和 Web 处理服务(Web ProcessingService,WPS)。本文在研究 SPS 服务规范的基础上,将 SPS 服务集成到生态环境监测系统中,从而实现传感资源的规划。
为了便于开发维护和保持较好的可扩展性,本文将 SPS 服务划分为4层,其架构图如图3所示。第一层是接口层,该层主要负责提供 SPS 服务对外的接口,接口层将会对用户请求的参数解析,参数解析完成以后将会被按照 SPS 规范进行封装并传递给业务层。第二层是业务层,本层检查用户请求的合法性,主要检查SPS服务中各个接口请求都要求的公共参数和请求内容是否为合法的 xml 格式,没有通过验证的请求将会被SPS服务返回异常信息,通过合法性验证的请求将按照请求的具体类型转发给下一层的服务层。第三层是服务层,服务层针对各个服务的要求,对请求的参数进行进一步检查,通过本层检查的请求将会被转发到数据持久层,针对数据持久层返回的结果,该层按照SPS规范将结果进行封装,封装完的结果将会返回给业务层。最后一层是数据持久层,持久层主要完成对传感器、传感任务相关的数据的增删改查。
图3 SPS 服务架构Fig.3 The architecture of Sensor Planning Service
按照上述总体设计,SPS 的核心接口操作和扩展接口操作在处理用户请求时,均将按照一致的处理流程完成一系列操作。下面主要介绍 DescribeTasking 接口的逻辑设计,其它接口的逻辑设计与该流程相似。
如图4所示,由于用户是以 xml 格式发送请求的,所以 SPS 服务在每个具体的接口操作中对请求数据进行了三次检查。用户发送的任务描述请求 DescribeTasking以xml文档的格式发送到SPS 服务,在接口层 SPS 服务首先对该请求进行第一次解析,按照 OGC 规范要求的数据格式对请求进行封装,封装失败将会返回失败信息通知用户。封装完成的请求以标准的 OGC 格式进行向下传递,SPS 服务将检查请求的参数和版本,在本文中,请求参数设置为“SPS”,由于最新的 OGC 规范中 SPS 服务的版本已经为2.0,本文也将版本号设置为2.0。通过版本和参数验证的请求,将被服务层接口调用,BasicSensorPlannerOperator 服务首先检查请求是否有额外需求,目前默认该请求不允许有额外的请求,从请求的 procedure 参数中获取任务 ID,继而去数据库中读取相应的信息。成功获取到的任务描述信息将同样以 xml 格式的形式返回给用户。
本文研究 SPS 服务规范最终的目的是集成到生态环境监测系统当中,由于 java 语言跨平台,一次编译,到处执行的优点,本系统将通过主要是使用 java 语言来实现。同时,为了节约开发成本,采用了 SpringMVC 框架来将服务的对外接口和内部实现解耦。PostgreSQL 数据库是对象关系型数据库,数据类型非常丰富,可靠性高,特别适合用来存储生态观测系统的相关数据,采用 PostgreSQL数据库存储 SPS 服务的数据为进一步的系统集成提供了便利。为了减少数据库的开发成本,采用了hibernate 框架完成数据持久化的工作。Tomcat 服务器是轻量级的 java web 服务器,能够满足本文研究的需要。
由于本文研究的SPS服务属于生态环境监测系统的一部分,为了方便对于该服务进行测试,在完成SPS 服务的服务端开发的同时,设计了前端的测试页面。在服务端,主要采取 Tomcat 服务器部署 SPS 服务,tomcat 服务器部署在 win7 系统下,前端主要使用 HTML 和 JavaScript 语言编写。打包的SPS服务可以部署在 linux下,从而得到良好的跨平台特性。
如图5所示,用户提交任务,请求观测 sensor_ID为 http://www.52north.org/sensor/cite/1 的观测数据。提交 submit 操作完成后,SPS服务返回生成为该任务生成的ID为 http://www.52north.org/sensor/cite/1/87bd100c-4729-46e3-a1e0-a99e67c2ed0d,根据sps 服务生成的任务 ID 查看任务状态,sps 服务返回的任务状态图6所示。
图4 DescribeTasking 逻辑流程Fig.4 The logic procedure of DescribeTasking
在图6中,可以看到返回的状态信息,<ns:task>参数指定了该状态信息属于 ID 为 http://www.52north.org/sensor/cite/1/87bd100c-4729-46e3-a1e0-a99e67c2ed0d 的任务,<ns:percentCompletion> 的值为90,说明该任务完成的进度为 90%,<ns:taskStatus>为 InExecution 表明该任务正在执行当中,尚未完成。
经测试,Submit 接口与其他六个接口均能按照预期设计实现相应功能,SPS 服务能够正常运行。可见,SPS 服务能够完成传感资源任务规划阶段的各个功能。基于 xml 格式的数据格式解决了不同传感资源的数据结构差异,使用 java 语言封装的 SPS 服务可以灵活地集成与传感观测系统当中,实现在不同平台下的可移植性。
图5 用户提交任务请求Fig.5 User submit task request
图6 客户端查询某个任务的状态Fig.6 Client retrieve the status of some task
本文通过对OGC标准框架 SWE中SPS规范的研究,将其应用到生态环境监测系统当中,实现了跨平台下的传感观测资源规划,从而提高了传感观测资源的可用性。在下一步的工作中,还需要对SPS服务进行进一步的规范和优化,比如XML数据格式虽然易于传输,但不利于大量数据情况下的用户阅读。如何高效地与生态环境监测系统的其它服务如SPS服务、WPS服务和WNS服务协同工作需要进一步明确交互接口和处理的逻辑优化。
[1]王建国.一种新型的传感器 WEB 标准-传感器 WEB 整合框架[J].小型微型计算机系统,2008,29(9): 1647-1651.
[2]郑重,陈能成,王伟,等.传感器观测服务原型系统的设计与实现[J].测绘信息与工程,2010,35(3):47-49.
[3]阳叶.基于SWE的传感观测服务的研究与设计[D].西安工业大学,2011.
[4]Botts M,Percival G,Reed C,et al.OGC®sensor web enablement: Overview and high level architecture[M]GeoSensor networks.Springger Berlin Heidelberge,2008:175-190.
[5]Simon Cox.Observations and Measurements(O&M)-XML Implementation[S].OGC,2011,OGC10-025rl.
[6]Arthur Na,Mark Priest.OpenGIS Sensor Observation Service Implementation Specification[S].OGC,2006,OGC06-009rl.
[7]Ingo Simonis,Andreas Wytzisk.Web Notification Service[S].OGC,Inc,2003,OGC03-008r2.
[8]Ingo Simonis,Johannes Echterhoff.OGC Sensor Alert Service Implementation Speci fication[S].OGC,Inc,2006,OGC06-028r5.
[9]柳婷,罗万明,阎保平.面向生态环境监测的传感器观测服务研究与应用[J].科研信息化技术与应用,2014,5(3): 78-86.doi:10.11871/j.issn.1674-9480.2014.03.010.
[10]王建国,许任杰.基于 SWE 的传感规划服务研究与实现[J].电子设计工程,2012,20(17):8-10.
[11]Ingo Simonis.OpenGIS Sensor Planning Service Implementation Specification[S].OGC,Inc,2007,OGC07-014r3.
[12]晋锐,李新,阎保平等.黑河流域生态水文传感器网络设计[J].地球科学进展,2012,27(9): 993-1105.
[13]宋东泽,罗万明,阎保平.一个生态传感网的 Web 处理服务平台[J].科研信息化技术与应用,2015,6(2): 37-46.Doi:10.1187/j.issn.1674-9480.2015.02.005.
[14]谢慕哲,罗泽,阎保平.视频鸟类行为研究中基于尺度不变特征变换的形态分类算法[J].科研信息化技术与应用,2014,5(3): 87-94.doi:10.11871/j.issn.1674-9480.2014.03.011.
The Study and Implementation of Sensor Planning Service for Ecological Environment Monitoring
Xiang Baoqing1,2,Luo Wanming1,Yan Baoping1
1.Computer Network Information Center,Chinese Academy of Sciences,Beijing 100190,China
2.University of Chinese Academy of Sciences,Beijing 100049,China
In recent years,the rapid development of sensor technology has laid a solid foundation for ecological environment monitoring.It is important to pay more attention on the integration of the collection,processing and storage of data as well as communication protocol between different ecological environment monitor systems,so as to realize resource sharing.Sensor Planning Service (SPS) is an open standard proposed by the Open Geospatial Consortium (OGC),and mainly for the user request andplanning sensing resources to realize the sensing task planning and resource sharing.In this paper,the SPS service is applied to the ecological environment monitor sensor network.With our corresponding client and server,we tested the feasibility of applying SPS services to the ecological environment monitor sensor network.
sensor technology; ecological environment monitoring; resource sharing; Open Geospatial Consortium;tasking planning
10.11871/j.issn.1674-9480.2017.02.006
2017年1月10日
祥保庆:中国科学院计算机网络信息中心,硕士研究生,主要研究方向为生态环境观测传感网络信息系统的理论与方法。
E-mail:1416398057@qq.com
罗万明:中国科学院计算机网络信息中心,副研究员,博士,主要研究方向为生态环境观测传感网络信息系统的理论与方法。
E-mail:lwm@cnic.cn
阎保平:中国科学院计算网络信息中心,研究员,博士生导师,主要研究方向为大规模数据共享技术、数据网格、下一代互联网技术、e-Science 应用。
E-mail:ybp@cnic.cn