1. 存档地球空间数据在线服务协议
地球空间存档数据在线服务协议: OGC数据互操作协议和海洋科学领域广泛采用的OPe NDAP协议。
用于获取数据的OGC协议包括网络地图服务 (WMS) (de la Beaujardiere,2004),网络要素服务 (WFS) (Vretanos,2004),网络覆盖服务 (WCS) (Evans,2003),以及Web目录服务 (CSW) (Nebert and Whiteside,2004)。WMS、WFS、WCS被分别设计成通过可互操作的接口,以栅格地图 (如JPEG图像),要素类型 (如气象台数据),以及覆盖数据 (如空间影像) 来获取地理空间数据。
a. 网络目录服务 (CSW)
网络目录服务 (Catalogue Servicefor Web,CSW) 访问接口包含7个用于客户端对服务进行访问的操作 (operation),包括: Get Capabilities、Describe Record、Get Domain、Get Records、Get Record By Id、Harvest与Transaction。其中Get Capabilities、Describe Record、Get Records与Get Record By Id为OGC网络目录服务实现的必选操作,其余为可选操作。这7种操作分为3类。第一类是基本服务操作 (service operations),基本服务操作是所有OGC Web Services系列服务都包含的操作,客户端可以借助于基本服务操作获取一个OGC网络服务的功能描述,基本服务操作只包含Get Capabilities操作; 第二类是查询操作,包含Describe Record、Get Domain、Get Records与Get Record By Id,客户端借助于查询操作获得OGC网络目录服务的元数据信息模型以及从OGC网络目录服务中搜索信息; 第三类是管理操作,包含Harvest与Transaction,用于对服务中的信息进行增加、删除或修改。
Get Capabilities操作使得客户端可以在运行时 (runtime) 动态获得目标OGC网络目录服务的元数据信息。一个成功Get Capabilities操作的返回是一个包含目标服务元数据信息的XML文档。该文档包含Service Identification、Service Provider、Operations Metadata以及Filter_ Capabilities四个部分。Service Identification包含与该OGC网络目录服务实现有关的元数据信息,比如服务名称、版本、关键字等; Service Provider描述了服务提供者的信息;Operations Metadata详细地描述了服务接口元数据,包含每一个操作的访问地址、访问方法、参数等; Filter_ Capabilities包含该服务所支持的过滤功能,即搜索功能。
Describe Record操作使得客户端可以在运行时动态获得网络目录服务所采用的元数据信息模型。利用Get Capabilities操作,客户端可以获得网络目录服务元数据信息模型中所包含的所有类型,而利用Describe Record操作,客户端可以获得元数据信息模型中每一种类型的详细定义。
客户端可以利用Get Domain操作在运行时获得某一元数据记录元素数值的允许范围。通常情况下Get Domain返回的取值范围要比该元素数据类型所定义的取值范围要小。
Get Records操作是网络目录服务最主要的操作。在资源发现的通用模型中所包含的最主要方法包含两个操作: 搜索 (search) 与呈现 (present)。OGC网络目录服务规范中定义的Get Records操作,基于HTTP协议的“请求-返回”模式将搜索与呈现两种操作融合在一起。客户端在Get Records操作的请求中指定搜索的目标元数据类型、搜索条件以及元数据结果返回形式,对网络目录服务进行查询。
Get Record By Id是资源搜索通用模型中的呈现操作,它用于从网络目录服务中获取由某一标识 (identifier) 所代表的元数据记录。
Transaction操作用于创建、修改和删除目标网络目录服务中的元数据记录。ransaction操作采用“推 (push)”的方式在目标网络目录服务中创建新的元数据记录。而Harvest操作采用“拉 (pull)”的方式提取指定地理空间信息的元数据信息并注册到网络目录服务中。客户端只在Harvest的请求中指定目标地理空间信息的访问位置,网络目录服务本身负责解析目标地理空间信息并得到其元数据信息。Harvest操作分为同步 (synchronous)与异步 (asynchronous) 两种方式。当客户端采用同步方式请求Harvest操作时,目标网络目录服务在收到请求后立即开始处理,并在处理结束后返回结果给客户端,在此期间客户端一直处于等待状态; 而当客户端采用异步方式请求Harvest操作时,目标网络目录服务在收到请求后立即返回给客户端确认消息,客户端在收到确认消息后就停止等待状态,之后网络目录服务可以安排时间进行处理,并在处理结束后按照事先在Harvest请求中指定的方式通知客户端。当有大量的地理空间信息需要被注册到目标网络目录服务中时,宜采用异步方式调用Harvest操作以避免客户端的长时间等待。
表2-3列出了OGC网络目录服务中所有7种操作所支持以及首选的HTTP通信以及数据信息编码方法。
表2-3 操作所支持以及首选的HTTP通信以及数据信息编码方法
b. 网络地图服务 (WMS)
网络地图服务 (Web Map Service,WMS) (NRA,2005) 规范规定了一个服务行为,即从地理信息动态制作具有地理参照系的地图。这里的“地图 (map)”是指地理信息作为适合在电脑屏幕上输出的数字图像文件的图示表达,一个“地图 (map)”并不是数据本身。由WMS产生的地图通常是以PNG,GIF或JPEG等图片格式显示,偶尔也可以作为多比例尺矢量图形 (Scalable Vector Graphics,SVG) 中的基于矢量的图形元素来显示,或者还可以是网络计算机图形元数据文件 (Web CGM) 格式。
WMS规范规定了检索一个服务器所需要进行的各种操作,包括提供地图的描述、检索一幅地图和向服务器查询显示在地图上的要素等。它适用于图形格式地图的图示化再现,但不适用于获取要素本身的数据或者覆盖的数据值。
Web地图服务定义了Get Capabilities、Get Map、Get Feature Info三种操作。Web地图服务操作可以通过在标准的web浏览器窗口中以统一资源定位符 (URLs) 的形式输入请求来调用。例如: 当请求一幅地图时,URL中应指出什么信息会显示在地图上,所期望的坐标参考系统是什么,输出图像的宽度和高度等等。当两个或更多的图层由相同的地理参数和输出尺寸产生时,可将两幅图精确的重叠产生一幅合成图。支持透明背景的图像格式(如GIF或PNG格式) 的使用允许下面的图层可见。而且,可以从不同的服务器请求地图。因此,Web地图服务支持分布式的地图服务器网络,用户可以从中制作自定义的地图。
(1) Get Capabilities: 在Web地图服务中,Get Capabilities操作是必选的,其目的是为了获得服务元数据。服务元数据是一些可以机读 (或者人读) 的关于服务器信息内容及可接收的请求参数值的描述。调用Get Capabilities操作需要用到的参数如表2-4所示。
表2-4 Get Capabilities操作的参数描述
(2) Get Map操作: Get Map也是必选操作。它返回一幅具有指定的地理和空间参数定义的地图。当接收到一个Get Map请求时,WMS必须满足请求或发布服务异常。调用Get-Map操作需要用到的参数如表2-5所示。
表2-5 Get Map操作参数描述
(3) Get Feature Info操作: Get Feature Info是一个可选的操作。它仅仅支持那些定义或继承了属性queryable为“1”的那些层。对于其他层,客户端不能发送Get Feature Info请求。如果一个WMS不支持该请求而又遇到了它,则应该以一个适当格式化的服务异常(XML) 响应 (code =Operation Not Supported)。
Get Feature Info操作用于向WMS的客户端提供更多的关于此前返回给地图请求的地图图像中的各要素。对于Get Feature Info来说,规范的应用情形是用户看到了地图请求的响应,然后用户可选择该地图上的一点 (I,J),并据其查询更多的信息。基本操作使用户能够指定所要查询的像素、查询的是哪个 (些) 层以及返回信息需要什么格式。由于WMS协议是无状态的,Get Feature Info请求为WMS详细说明,用户正在通过包含原来的Get Map请求中几乎全部 (除VERSION和REQUEST外) 的参数浏览的是哪幅地图。根据Get Map请求中的空间坐标信息 (BBOX,SRS,WIDTH,HEIGHT) 以及用户选择的I,J位置,WMS就可以返回关于该位置更多的信息。WMS如何决定所返回的更多信息是关于什么的、或返回的是什么信息的实际参数留给WMS提供者解决。调用Get Feature Info操作需要用到的参数如表2-6所示。
表2-6 Get Feature Info操作的参数描述
c. 网络要素服务 (WFS)
网络要素服务 (Web Feature Service,WFS) (John SKinnebrew,2010) 规范允许用户从多重Web要素服务中对以地理标记语言 (Geography Markup Language,GML) 编码的地理空间信息进行检索和更新。如果说Web地图服务返回的是图层级的地图影像, Web要素服务返回的则是要素级的GML编码。Web要素服务定义了一系列对地理要素数据进行访问和操作的接口,通过这些接口,网络的使用者或者服务可以对分布在不同地方的地理数据 (在这里指地图上的要素信息) 进行整合使用和管理,并且,Web要素服务支持在使用HTTP协议的分布式计算平台上对地理要素和元素进行创建、更新、删除、查询和发现等事务操作,是对Web地图服务的进一步深入。
地理要素的概念在OGC抽象规范中定义并在Open GIS地理标记语言 (GML) 实现规范中解释,即地理要素的状态是被一组属性来描述的,每个属性可以被看成 (名字,类型,值) 对,每个属性的名字和类型由地理要素的类型决定 (Alexandre Robin,2010)。地理要素至少有一个属性是被几何赋值的。这意味着要素是可以被定义为根本没有几何属性的。地理要素的几何属性被限定为OGC的简单几何属性。一个简单的几何属性的坐标被定义为二维坐标,并且曲线的描述来自线性内插。在二维空间参考系统中定义的传统的0,1和2维几何要素表现为点、线和面。另外,OGC的几何模型允许geometries是其他geometries的集合。最后,GML允许要素具有复杂属性或全部属性都是非几何属性。
另外,WFS规范提供了两种方法对WFS请求进行编码,第一种方法使用XML作为编码语言,第二种方法是使用“名值对”对请求中的可变参数编码。一个“名值对”的例子如下: “REQUEST=Get Capabilities”,其中“REQUEST”是关键字,“Get Capabilities”是值。两种编码方法的请求得到的应答或是异常报告都是相同的。
WFS定义了Get Capabilities、Describe Feature Type、Get Feature、Get Gml Object、Transac-tion和Lock Feature等六个操作,根据实现的操作不同,WFS又分为基本WFS和事务WFS两种: 基本WFS可以实现Get Capabilities,Describe Feature Type和Get Feature操作,它被认为是只读的web要素服务; 事务WFS可以支持基本WFS要素服务的所有操作,并且它可以实现其他事务操作。以下分别介绍这6个操作:
(1) Get Capabilities操作: 返回Web要素服务性能描述文档 (用XML描述),从该性能描述文档中可以看出Web要素服务为哪些要素类型提供服务以及每个要素类型支持哪些操作等。调用该操作的参数如表2-7所示。
表2-7 WFS服务Get Capabilities操作参数
(2) Describe Feature Type操作: 该操作的功能是生成一个由Schema描述的WFS所能提供服务的要素类型。Schema定义了如何编码WFS所期望的输入要素实例以及输出时如何生成一个要素实例。调用该操作的参数如表2-8所示。
表2-8 Describe Feature Type操作参数
(3) Get Feature操作: Get Feature操作允许从Web要素服务取得要素。Get Feature请求是由WFS处理的,并且一个包含结果的XML文档会被返回客户端。调用该操作的参数如表2-9所示。
表2-9 Get Feature主要操作参数
(4) Get Gml Object操作: 该操作允许通过ID来查询要素和元素,以XML文档的形式返回结果。
(5) Transaction操作: 该操作用来描述应用于被访问的要素实例的数据转换操作。当一个事务被完成时,WFS将产生一个XML响应文档来描述事务的完成状态。
(6) Lock Feature操作: 由于网络连接的无状态性,不同客户端对要素进行的事务操作可能会产生一些不一致性,Lock Feature操作则提供了一个确保一致性的“锁”机制,即当一个事务处理数据时,其他的事务不能对此数据进行修改。
d. 网络覆盖服务 (WCS)
网络覆盖服务 (Web Coverage Service,WCS) (Mike Botts,2007) 规范是OGC组织提出的一个执行规范,目的是为了在互联网上提供通用的覆盖数据访问方法和尽可能地提高互操作能力。WCS主要面向地理影像和数字高程模型数据,它将包含地理位置值的地理空间数据作为“覆盖 (coverage)”在网络上相互交换。网络覆盖服务定义了Get Ca-pabilities、Describe Coverage Type和Get Coverage三种操作,其描述见表2-10。
表2-10 WCS的三个操作描述表
在WCS服务中,最重要的就是获取覆盖数据的Get Coverage接口,在调用该接口中要用到的参数如表2-11所示。
表2-11 Get Coverage操作的参数描述
续表
e.OPe NDAP协议
如图2-17所示,OPe NDAP协议定义了传输科学数据的客户端和服务器端之间交互的接口。它提供了复杂的数据类型可以定义栅格、时序、文本数据,允许用户自定义数据类型,具有较强的灵活性和较大的包容性。它已经广泛地应用在海洋,气象和气候数据服务。
图2-17 基于OPe NDAP协议的DODS系统
f.ECHO协议
ECHO (Earth Observation System Clearing HOuse) 是NASA地球科学数据和信息系统建立的元数据交换中心和预订的代理者。ECHO是一个基于可扩展标记语言XML和网络服务技术的开放系统。ECHO为地球观测行业提供SOA环境的中间件解决方案,目前ECHO提供的服务包括数据提供者 (data partners) 服务 (Havinga等, 2003)、服务请求者 (client partners) 服务 (Yao和Gehrke,2002) 和服务提供者(service partners) 服务 (Madden,2005),数据提供者负责建立符合ECHO元数据模型的元数据,通过ECHO协议注册到服务代理 (data pools),服务请求者通过ECHO网络服务得到元数据。
ECHO元数据模型是基于地球观测系统数据和信息核心系统 (ECS) 科学数据模型(Carlo Curino,2005) 发展而来的。数据提供者负责产生符合ECHO数据模型的元数据XML格式文件,这些元数据文件用于描述数据提供者数据的增加、删除和改变。ECHO系统使用3种元数据结构即Collection、Granule和Browse。一个Collection是一个文件或Granule集合。一个Granule可能含有几个Browse图像,图2-18给出了Collection、Granule和Browse三者的这种含有关系。
图2-18 三者含有关系图
Collection: 一组来自相同资源的科学数据,如一个模型组或机构。Collections包含它所属的所有Granules一般信息和描述元数据模型中不存在的额外数据的模板。Collection包括一般信息 (如ECHOItem Id、Data Set Id等)、操作信息 (如Insert Time、Last Update等)、处理信息 (如Processing Center、Processing Level Id等)、Granule信息 (如Total Gran-ules、Size MBTotal Granules等)、空间信息 (如Spatial等)、时间信息 (如Temporal等)、平台信息 (如Platform等)、附加信息 (如Additional Attributes等)、在线资源 (如Online-Access URLs、Collection Online Resources等)、算法信息 (如Algorithm Package等) 等等。ECHO 10.0中规定Collection信息必选元素Data Set Id、Description、Insert Time、Last Up-date、Long Name、Orderable、Short Name、Version Id 和 Visible,可选元素Archive Center、Online Access URLs、Online Resources、Spatial、Temporal等32大项。
Granule: 能够独立管理的最小数据集合。Granules有自己的元数据模型并且支持所属Collection定义的额外属性相关的值。Granule包含的元素和层次关系如图2-19,根元素为Granule URMetadata,是顶层。
如图2-19所示,Granule包含: 一般信息 (如ECHOItem Id、Granule URL等)、操作信息 (如Insert Time、Last Update等)、Collection信息 (如Collection Metadata等)、Data Gran-ule信息 (如Data Granules等)、空间信息 (如Spatial Domain Container等)、时间信息 (如Range Data Time、Single Data Time等)、轨道信息 (如Orbit Calculated Spatial Domain等)、测量信息 (如Mearsured Parameter等)、平台信息 (如Platform等)、附加信息 (如Additiona-l Attributes等)、Browse Products信息、在线资源 (如Online Access URLs、Granule Online Re-sources等) 等等。ECHO10.0中规定Granule信息必选元素包含Granule URL、Insert Time、Last Update、Collection和Orderable,可选元素包含Additonal Attributes、Cloud Cover、Data-Granule、Input Granlue、Online Access URLs、Online Resources、Platforms、Spatial和Temporal等21大项。
图2-19 ECHO Granule元素及其层次关系图
Browse是提供相关Granule或Collection元数据项目高级别浏览的图像。Browse图像不是空间的,主要用于数据发现和交叉参考其他的Granules和Collections。它的元素较少,有Provider Browse Id、Insert Time、Last Update、Delete Time、Browse Image File Name、Browse-Image File Size。
2. 实时地球空间数据在线观测服务协议
a. 传感器观测服务 (SOS)
传感器观测服务 (Sensor Observation Service,SOS) 提供一系列API用来管理传感器的部署和传感器数据的检索。通过传感器观测服务得到的测量数据对现在使用的地空空间系统做出了贡献。传感器观测服务有三个必需的核心接口: Get Observation、Describe Sensor和Get Capabilities。Get Observation操作通过特定的时空查询条件获得传感器的观测数据或测量数据; Describe Sensor操作获得以Sensor ML或TML编码的传感器详细描述信息; Get-Capabilities操作可获得特定服务实例的元数据,包含identification、provider、operation metadata、filter_ capabilities和contents等元素。同时也定义了一些可选择的非必备的操作。如有两个提供事务处理操作Register Sensor和Insert Observation,还有六个增强的操作Get Result、Get Feature Of Interest、Get Feature Of Interest Time、Describe Feature Of Interest、De-scribe Observation Type和Describe Result Model。结合其他OGC规范一起使用,传感器观测服务提供了一个广泛的互操作能力,用来发现、绑定和查询实时的、历史档案或模拟环境的数据或者一个或多个的传感器和传感器平台的观测数据。
传感器观测服务的操作包括四个方面: 核心性、可增强性、事务性和完整性。其中必须有的核心操作: Get Capabilities、Describe Sensor和Get Observation。传感器观测服务的完整性方面是指实现所有这些操作: 核心性、可增强性和事务性。传感器观测服务操作必须在符合超文本传输协定 (HTTP) 的分布式计算平台 (DCP) 上实施和使用。
(1) Get Capabilities
Get Capabilities操作目的是使用户可以检索并获得关于一个特定的服务实例的原数据。
(2) Describe Sensor
Describe Sensor是一个从目录中检索得到传感器特性元数据的操作。通过Describe Sen-sor操作可以从传感器观测服务中获得使用Sensor ML或TML编码的传感器特征的详细信息。传感器特征包括从感应器观测得出的列表和定义。
(3) Get Observation
Get Observation是查询传感器系统和检索观测数据的操作。当传感器观测服务接受到一个Get Observation的请求时,传感器观测服务首先将验证这个请求,或者返回一个错误报告。Get Observation的请求消息包含一个或较多的单元用来约束一个SOS中要检索的观测数据。每个Get Observation操作的查询单元必须有service和version两个属性。version属性在服务联编过程中必须符合服务器和客户端之间特定的服务接口版本。而service属性被明确的指定为“SOS”。Get Observation的响应可以概括为O&M观测、一个观测集中的元素或者一个观测集。
(4) Register Sensor
Register Sensor操作作为事务处理操作配置的一部分允许用户端向SOS注册一个新的传感器系统。新注册的传感器观察数据才能被插入到那些已经在SOS注册的传感器中。Register Sensor是事务处理操作配置的一个命令。
(5) Insert Observation
Insert Observation操作允许用户端为传感器系统插入新的观察数据。这是对SOS执行插入操作的一个请求。这个请求由以下参数约束: 由Register Sensor操作得到的ID (用来识别传感器和观察类型) 和观察编码例如: O&M。Insert Observation操作是事务配置文件必备的。
(6) Get Observation By Id
Get Observation By Id操作是用来返回一个观测的ID。该ID可以由客户端之前的操作获得。ID有可能来自一个XML文件中的一个链接或是从Insert Observation操作中获得。
(7) Get Result
操作的目的是使得客户端能够不断地获得来自同一组传感器的数据,而不必发送请求和接收包含除了一个新的时间标签外大量的相同数据。一个普通的用例是为客户端不断地从一个或多个传感器上请求实时数据。这个操作支持用例并可以生成用例,生成用例所需带宽要比完全调用Get Observation小很多。包含此操作的目的是为了支持从一个节点请求数据的数据中心,该节点可以直接通过一个低带宽的连接如3G无线连接和传感器进行通讯。Get Result操作依赖于一个O&M模板的产生,模板的ID用于并发的Get Result调用,而不是发送一个复制的Get Observation 的XML文档。而响应仅包含O&M观察的结果部分,因为其他的组件已通过引用包含在模板中。
(8) Get Feature Of Interest
Get Feature Of Interest操作返回一个从SOS能力文档获取的feature Of Interest。对Get Fea-ture Of Interest请求的响应是一个GML特性实例。
(9) Get Feature Of Interest Time
Get Feature Of Interest Time返回一个时间段,该时间段是SOS对于一个给定的重要特征返回数据的时间。对于Get Feature Of Interest Time请求的响应是一个初始的GML时间,它列出了一个或多个从重要特性观测的可用的时间段。
(10) Describe Feature Type
Describe Feature Type操作返回一个Get Capabilities广播中指定GML的功能的XML schema。这可以用来获取一个观察特征和兴趣的类型描述。
(11) Describe Observation Type
Describe Observation Type操作返回的是XML模式,该模式描述了一个特别现象返回的观察类型。它允许SOS列出能够传送的一组观测类型 (默认情况下该值是om: Observa-tion)。这些都是特定的观测类型,其中一个或其他标准的属性被深入研究或受到限制或者另外的属性被添加。比如说: om: Measurement是一个结果类型为“gml: Measure Type”的特例。它可能是一个定义了制定应用范围的观测类型。
(12) Describe Result Model
Describe Result Model操作返回的是结果元素模式,该模式是当客户机对于给定Result-Name的请求给出结果模式。“generic”om: Observation的结果类型为“xs: any Type”,因此直到一个实例被接受客户机才能够知道结果是什么样的模型,或者通过检查一个在<result>元素中的xsi: type属性的值,或仅仅通过为一个带有schema Location文档或上下文声明的命名空间中出现的子元素。为了能够使用它,Describe Result Model操作的结果显示给客户机结果将包含什么。一个类似的结论应用于其他的有soft-typed结果的观测类型,也即是Common Observation,Complex Observation,Complex Measurement。结果元素的合格的名称能够从Describe Observation Type返回的模式中获得。
b. 传感器规划服务 (SPS)
传感器规划服务 (Sensor Planning Service,SPS) 操作可以划分为信息和功能操作。信息操作包括获取能力操作 (Get Capabilities)、描述任务操作 (Describe Tasking)、结果路径描述操作 (Describe Result Access) 和获取状态操作 (Get Status)。其中,获取能力操作、结果路径描述操作和获取状态操作提供SPS用户需要知道的信息,而任务描述操作提供了设备管理系统需知的描述任务的信息。功能操作包括获取可行性操作、任务提交、更新及取消操作。SPS接口指定了八个用户请求而由SPS服务器执行的操作,这些操作分别是:
(1) Get Capabilities操作 (强制的)
允许用户请求和接收SPS服务的元数据信息,元数据信息描述了指定服务所能提供的能力,包含服务标志信息 (Service Identification)、提供者信息 (Service Provider) 和操作元数据信息 (Operations Meta Data)。
(2) Describe Tasking操作 (强制的)
允许用户发送一个必要的消息,这个消息由用户选择并面向SPS服务器支持的设备,为任务请求作准备。服务器将返回关于所有的为执行一个任务的操作时用户需设置的所有的参数。
(3) Get Feasibility操作 (可选的)
可行性操作为用户提供一个任务请求的可行性信息反馈。取决于SPS构建的设备类型,SPS服务功能就像检查请求参数是否有效一个简单,而且和某些商业规则是一致的,或者他可能是一个复杂的运行机制,需使用平台装置在指定的位置、时间、方位、校准下执行一个特定任务。
(4) Submit操作 (强制的)
任务提交操作提交给设备用户的任务请求信息。请求复杂度取决于所配置的设备,可以是一个简单的设备更改操作,也可以是一个复杂任务操作。
(5) Get Status操作 (可选的)
获取状态操作使用户接收一个任务请求的当前状态的消息。
(6) Update操作 (可选的)
更新操作允许用户更新以前提交的任务。
(7) Cancel操作 (可选的)
取消操作允许用户取消以前提交的任务。
(8) Describe Result Access操作 (强制的)
结果路径描述操作使用户检索到在哪里以及如何获取由设备获取的数据。服务器响应将包括链接到下列任意一种OGC网络服务器,如SOS,WMS,GVS或者WFS。
c. 传感器警告服务 (SAS)
传感器警告服务 (Snesor Altering Service,SAS) 定义了一系列的API用来判断传感器数据是否出现异常并把这种异常发送到客户的操作。通过传感器警告服务得到的信息使用户得以及时、准确、快速地获取传感器观测目标地区的异常情况,帮助决策者提高决策水平和质量,辅助用户做出科学、正确的响应。SAS提供了7个强制性操作,即Get Ca-pabilities、Advertise、Subscribe、Renew Advertisement、Cancel Advertisement、Subscribe、Re-new Subscription、Cancel Subscription。Get Capabilities操作可获得特定服务实例的元数据,包括Service Identification、Service Provider、Operations Metadata、Contents等元素。Advertise操作可以发布该操作允许生产者为发布的信息的类型,包括service、version、Feature Of In-terest、Operation Area、Alert Frequency (广播的频率)、Desired Publication Expiration、Alert-Message Structure。Subscribe操作用来为用户定义数据过滤规则,包括Service、Version、Subscription Offering ID、Location、Result Filter (过滤运算)、Feature Of Interest Name、Resul-t Recipient (可以通过网络通知服务或XMPP-MUC来把结果发送给客户),返回的是Sub-scription ID、expires、Status、XMPPResponse。结合其他OGC规范一起使用,传感器警告服务提供了一个广泛的互操作能力,在灾害或灾难以及其他需要提防的危险发生之前,根据以往的总结的规律或观测得到的可能性前兆,向相关部门发出紧急信号,报告危险情况,以避免危害在不知情或准备不足的情况下发生,从而最大程度的减低危害所造成的损失的行为。
图2-20是SAS核心原理图:
图2-20 SAS核心原理图
传感器通过HTTP协议上发布它未来的传感数据的信息,并通过HTTP协议上接受到响应,利用可扩展通讯和表示协议 (XMPP) 去发布它的数据。然后SAS操纵与其相关的XMPP协议消息服务器,创建一个新的多用户集合 (MUC)。在本质上,一个SAS包含某种形式的查找表,以储存已经存在的MUC的信息。其次客户发送一个基于HTTP协议的预订需求,该需求的响应将会包含一个XMPP MUC的地址,然后加入使用XMPP规范的MUC中。进而传感器通过XMPP协议将数据发布到SAS中,然后SAS通过自带的数据过滤功能提取出用户感兴趣的数据,最后通过网络通知服务 (WNS) 或XMPP-MUC来把结果发送给客户。
SAS接口指明了10个接口,它们可以用于用户发送订阅信息和事件过滤及传感器通知用户等内容。这些操作是:
(1) Get Capabilities(www.xing528.com)
Get Capabilities操作目的是使SAS用户可以检索并获得关于一个特定的服务实例的元数据,它描述了传感器警告服务具备的能力,包括操作的元数据和服务的元数据。
(2) Advertise
该操作允许SAS用户为传感器警告服务声明需要发布的数据的信息。包括感兴趣区域的地理位置,数据格式,预警频率,预警过期有效期限。
(3) Subscribe
该操作允许SAS用户预订预警规则。包括预订地理区域位置,过滤规则,感兴趣区域名称,将结果发送给用户的方式。
(4) Cancel Advertisement
该操作允许SAS用户删除广播。
(5) Renew Advertisement
该操作允许SAS用户重新恢复广播。
(6) Cancel Subscription
该操作允许SAS用户删除一项预订信息。该操作返回指定取消预订的ID以及取消操作的状态 (Success火灾Failure)。
(7) Renew Subscription
该操作允许SAS用户重新恢复一项订购信息。该操作返回一个新的预订ID。
d. 网络通知服务 (WNS)
网络通知服务 (Web Notification Service,WNS) 是客户可以与服务进行异步消息交换的服务,该服务可以用于请求处理有显著延时时。HTTP等同步传输协议为服务提供了发送请求以及接收请求响应的基本功能,HTTP是一种可靠的传输协议。通过每次传输到达或失败的确认,HTTP可以确保每个请求包的传递。例如,在简单的WMS里,用户在发送请求后会接收到可视化图形信息或错误消息。但是当服务变复杂时,基本的请求/响应机制需要增加延时/失败信息。例如,中期或长期的操作要求支持用户和相应服务以及两个服务之间的异步通信机制。WNS满足这种需要,它将基于HTTP的请求信息转发给使用任意通信协议的请求接收端。例如,使用email、短消息服务 (Short Message Service, SMS)、即时消息 (Instant Messaging,IM)、自动电话留言或传真等。WNS可以作为一个传输转化器: 它可以在输入和输出消息协议之间进行转化。它与SAS不同,并不是一个主动预警服务。在SAS的接收者需要使用其他协议进行消息接收时可以使用WNS。
SWE中至少两个服务可以使用WNS,SPS允许用户定制传感器任务或获取某种传感器数据集请求的可行性。任务定制和可行性研究都是长期过程。SPS使用WNS将原始查询结果转发给用户。SAS的客户端并不能访问网络时,SAS使用WNS来进行消息的传递。
WNS可以看做是一个消息传输服务。它并不关心消息的具体内容,被传递的消息对WNS而言就是一个“黑盒子”。
WNS模型包括两种不同的通信模式。即,单向通信 (one-way-communication) 和双向通信 (two-way-communication)。前者将消息发送给客户端而不需要任何响应。后者在对客户端传递消息的同时需要接收异步响应。
WNS通知的客户可以是一个用户或者是一个OGC服务。无论哪种情况,客户都需要先在WNS上进行注册,WNS返回一个registration ID。这个ID是每个WNS实例唯一标识符,用于WNS标识消息的接收方。
提供一种不使用SOAP时支持异步通信的机制,WNS中规定了如何指出服务支持的通信协议,服务支持的消息格式、服务从客户端请求通信终端信息的方式以及封装消息、增加自动处理消息内容需要的元数据的方式。
WNS使用了两种消息容器 (container) 来交换消息。Notification Message用于one-way通信,而Communication Message用于two-way通信。但需要回复消息时,消息的发送者可以使用Communication Message。接收端应该知道需要哪种回复消息,建立相应的Reply Mes-sage并将其送回给给定的Callback URL。
One-way通信不支持返回值和out类型参数,但能解决一些传统同步阻塞调用模型浪费服务器端资源、降低系统吞吐率、容易因服务器之间调用形成回路而导致的死锁等所难以解决的问题。Two-way方法指客户端和服务器端分别向对方发出one-way调用。客户端发送调用后不必阻塞等待应答而继续执行其他操作。服务端完成服务后,通过向客户端发送一个对应的one-way调用返回结果。这种方法不利用多线程而又能提高系统吞吐率,但该方法增加了服务端设计的复杂性,要求把应用和逻辑分割开来。
WNS接口包括8种操作:
(1) Get Capabilities操作 (必需的)
允许客户端请求和接收描述特定服务的元数据文档。该操作还支持服务的版本请求。
(2) Register操作 (必需的)
该操作允许客户使用其通信终端进行注册。
(3) Unregister操作 (必需的)
允许客户取消注册。
(4) Do Notification操作 (必需的)
允许客户发送消息到WNS。
(5) Get Message操作 (必需的)
如果收到所选择的传输协议的限制时,允许客户检索没有使用WNS传输的消息。
(6) Get WSDL操作 (可选的)
该操作允许客户请求和接收服务器接口的WSDL定义。
(7) Update Single User Registration操作 (可选的)
允许单个客户使用新的通信终端更新注册。
(8) Update Mullti User Registration操作 (可选的)
允许多个客户使用新的通信终端更新注册。
e. 传感器事件服务 (SES)
传感器事件服务 (Sensor Event Service,SES),是OGC于2008年颁布的一项Web service规范草案,它是传感器警告服务SAS (Sensor Alerting Service) 的替代版本。SES提供了一系列的API,用来管理用户订阅信息并实现异常事件的监测与通知。传感器事件服务有6个强制性操作,分别是Get Capabilities、Describe Sensor、Subscribe、Get Current-Message、Renew、Unsubscribe。Get Capabilities操作可获得特定服务实例的元数据,包含identification、provider、operation metadata、filter_ capabilities和contents等元素。同时也定义了一些非必需的操作如两个可中止的预订管理者操作 (Pause Subscription、Resume-Subscription)、三个网络基础通知中的Pull Point操作 (Create Pull Point、Get Messages、De-stroy Pull Point)、两个加强型操作 (Notify、Register Publisher) 和两个注册管理者操作 (Re-new Registration、Destroy Registration)。结合其他OGC规范一起使用,传感器观测服务提供了一个广泛的互操作能力,帮助用户主动按需获取感兴趣区域数据,辅助用户做出科学,合理,高效的决策。
SES的原理: 传感器注册到SES中,通过SES提供的Register Publisher这个接口来完成。用户向SES订阅事件信息,Sensors观测获得数据后,把观测事件发布到SES中后, SES利用过滤机制对事件进行过滤,然后得到满足用户需要的事件或新生成的事件,最后通知用户获取事件。
图2-21 SES原理图
SES事件过滤在SES原理中扮演着重要的角色。SES事件过滤分为三个等级:
(1) Filters (过滤器) 种类一。
第一种 (强制性): 利用XPath来定义过滤规则。XPath就是选择XML文件中节点的方法,通过XPath规则来选取满足需要的节点。
(2) Filters (过滤器) 种类二。
第二种 (选择性): 利用一组操作符,如逻辑、空间、时间、算法操作符,通过对观测数据的运算处理,得到合适的满足要求的数据,如将一天里的每个整点的温度去平均值得到的就是第二种过滤模式产生的数据,通常这种方法得到的数据是新的数据。
(3) Filters (过滤器) 种类三。
第三种 (选择性): 这里过滤的事件流而不是单个的事件。通过过滤事件流得到新的事件。
SES提供的操作:
(1) Get Capabilities
Get Capabilities操作目的是使用户可以检索并获得关于一个特定的服务实例的原数据。
(2) Describe Sensor operation
Describe Sensor是一个从目录中检索得到描述传感器或传感器从的特性元数据的操作。通过Describe Sensor操作可以从传感器观测服务中获得使用Sensor ML或TML编码的传感器特征的详细信息。传感器特征包括从感应器观测得出的列表和定义。
(3) Subscribe operation
Subscribe操作可以向SES提交订阅的信息,包括事件过滤的规则,事件过滤模式的选择,是简单模式,还是复杂模式,抑或时间模式,还是重复性模式。以及SES发送通知的端点地址。
Subscribe操作返回的是SES发送通知的地址。通过这个地址,当SES监听到通知产生的时候,SES会把通知发送给这个地址,用户通过这个通知来获取相应的数据。
(4) Get Current Message operation
Get Current Message操作可以获取关于当前的状态的消息。
(5) Renew operation
更新操作可以更新当前的预订内容。
(6) Unsubscribe operation
解除预订操作可以取消当前预订内容。
(7) Pause Subscription operation
中止预订操作可以中止当前预订,即中止一个SES的运作流程。
(8) Resume Subscription operation
继续预订操作可以将一个中止了的预订的SES的运作流程重新运行。
(9) Get Messages operation
获取消息的操作。
(10) Notify operation
通知操作,将消息发送给端点地址。
(11) Register Publisher operation
提供一个接口,将数据提供者注册到SES中。
(12) Renew Registration operation
更新注册操作,使注册了数据提供者全部注册到SES里。
(13) Destroy Registration operation
销毁注册操作,删除SES里的注册信息。
3. 传感器数据处理接口协议
a. 网络处理服务 (WPS)
网络处理服务 (Web Processing Service,WPS) 定义了有助于地理空间处理的发布以及客户端发现、绑定这些空间处理的标准化接口。WPS中的“processes”包括作用于各种空间参考数据上的算法、模型等。WPS可以通过Web提供各种GIS处理功能。它可以提供简单的计算 (如缓冲区计算),也可以进行复杂的计算,例如气候模型的产生。这种接口规范提供了一种机制来标识计算需要的空间参考数据,初始化计算,并对计算结果进行管理以便客户可以对其进行访问。WPS的处理对象包括各种矢量和栅格数据。
WPS规范允许服务提供者暴露Web可访问处理,以一种无需客户对输入数据和处理执行的物理处理接口或API有所了解。WPS接口标准化了空间处理以及输入输出描述的方式。由于WPS提供了一个通用接口,它可以用于包装其他已有的或将制定的可提供地理空间处理OGC服务。因此,原则上看,基于WPS接口的实施没有任何限制。
WPS规定了描述和通过Web使能地理空间处理的通用机制,以及地理空间处理所需要和产生的数据输入的描述机制。
WPS为客户提供了访问作用于空间参考数据上的预编程计算和/或算法模型。服务所需的数据在网络上进行传递或者从服务器端获取。数据可以使用影像数据格式或数据交互标准如GML。技术可以是简单的,也可以是复杂的。
实现网络上进行地理空间处理需要大量开发支持原子地理空间操作的Web服务,以及先进的建模能力。为了减少所需的编程工作,帮助新服务的实施和采用,标准化调用处理的方式也很重要。
WPS接口定义了3个操作,这些操作都是服务器端必须实施的。包括: Get Capabili-ties,Describe Process,Excute等操作。其中,Get Capabilities操作允许客户请求并接收WPS服务元数据以及所有可访问处理服务的XML文档。而Describe Process操作允许客户请求并接收允许在服务实例上的处理的具体信息,包括输入要求,可接收的格式以及产生的输出信息。Excute操作则允许客户使用输入参数值,运行WPS实施的特定处理,返回产生的输出结果。
WPS具有中间件性质,允许把已有的软件接口进行包装后作为Web服务发布在网络上。WPS可以作为一种中间件来实施时包括: 一个用于唯一标识处理的OGC URN,一个处理Describe Process请求响应的引用,以及一个描述处理以及操作实施的人类可读文档(即capabilities文件) 或是一个描述处理操作的WSDL文件。这使得客户可以选择是否使用HTTP或SOAP架构方法。
b. 网络覆盖处理服务 (WCPS)
网络覆盖处理服务 (Web Coverage Processing Service,WCPS) 支持地理空间影像数据 (geospatial coverage data) 的检索和处理。OGC WCS中Coverage是“表示空间变化现象的数字化地理空间信息”,WCPS以WCS的Coverage模型为基础,定义了如何在Web上描述、请求以及传输多维网格Coverage数据,目前仅限于等距网格 (equally spaced grid)。
WCPS可以采用KVP/ HTTP GET,XML / HTTP POST,XML SOAP等形式进行编码,提供了访问原始或经过处理后的地理空间Coverage信息的方法,有利于客户端进行图形渲染、科学模型输入以及其他客户端应用。同时,WCPS不仅包括WCS的全部功能还对其进行了扩展。WCPS可以使用表达式语言构成任何复杂性的请求,例如请求多值的Coverage结果。
WCPS与WCS的不同之处主要在于以下2个操作: Get Capabilities 和Process Coverage。
Get Capabilities操作类似WCS中所规定的,该请求将返回一个XML文档描述服务并简要介绍服务器端所能提供的数据集。此外,Get Capabilities响应还将返回WCPS的特定处理服务能力给用户。
WCS Get Coverage操作允许从coverage集中检索一个coverage,并且可能通过在空间、时间、波段等数据维上进行子集再分割,以及坐标转换等操作进行数据修改。而WCPS的Process Coverage通过更强大的处理能力扩展了WCS的功能。一方面包括更细化的coverage处理基元,另一方面,允许嵌套功能应用,因此,可以允许非常复杂的请求服务。客户可以选择是否基于coverage的象元坐标或者时空坐标来表达Process Coverage请求。Process-Coverage的响应是数据项的有序序列。一个数据项可以是一个coverage或者是任何其他处理表达式的结果。Process Coverage操作返回结果可以是存储在服务器上的原始coverage或经处理后产生的coverage或者二者的组成要素,请求的响应结果可以直接返回给客户端或通过缓存的URL进行下载。
WCPS基元以及嵌套能力形成了一种表达式语言。这种抽象语言就是WCPS语言(WCPS language)。一个WCPS表达式就是一个coverage List Expr (评价编码的coverage的列表),每个WCPS请求都只包含一个coverage List Expr元素,多个coverage可以被嵌套其中来进行多个coverage数据的融合。coverage List Expr元素处理coverage列表,首先依次检查每个coverage是否满足某个谓词,如果谓词判断为真则被选择; 每个被选中的coverage被处理,处理结果添加到结果列表中。如果没有异常发生,最后,结果列表将作为Process Coverage响应返回,或者返回出错信息。通常一个流程表达式可能产生一个影像或标量数据。
WCPS提供了coverage语言,允许通过功能组合表达复杂的操作。请求可以依次处理一或多个coverage,并可以额外合并任意数量的coverage,例如叠置等操作。WCPS请求由客户组合并交由服务器端进行评价。虽然瘦客户可能使用用户输入作为参数来组合预定义的表达式片段,但是肥客户或另外的服务器可以允许更灵活的请求复合方式。
4. 自适应观测数据服务接口协议
(1) 决策支持系统 (DSS) 和事件目标监视服务 (EGMS) 之间采用FTP,HTTP, WCS-T,WFS-T协议,实现地学数据请求和处理结果的反馈;
(2) EGMS和传感器与数据规划服务 (DSPS) 之间采用传感器规划服务 (SPS) 规范进行交互;
(3) DSPS和地球观测中的存档系统通过网络目录服务规范 (CSW)、地球观测数据交换中心 (ECHO) 协议或THREDDS协议进行数据的预订;
(4) DSPS和地球观测中的传感器网络系统通过SPS进行传感器观测的规划;
(5) DDRS通过网络覆盖服务 (WCS) 或网络要素服务 (WFS) 去获得地球观测中存档系统的数据;
(6) DDRS通过传感器观测服务 (SOS) 去获得地球观测传感器网络系统的观测值;
(7) DPMS通过WFS、WCS、CSW协议通过DDRS服务部件获得数据;
(8) DPMS通过WPS服务提供状态服务,对DSS系统进行状态初始化;
(9) DPMS通过WCS或WFS为DSS系统提供数据;
(10) CENS通过WNS协议与DSS、DPMS、EGMS、DSPS和DDRS进行消息传递;
(11) DPMS通过WCS或WFS协议与EGMS进行交互。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。