伴随地理空间信息服务技术的发展及网络服务共享与互操作需求的增长,一些流行的OGC数据访问协议应运而生,例如网络地图服务 (WMS)、网络要素服务 (WFS) 及网络覆盖服务 (WCS)。它们分别被用以访问以栅格地图编码的地理数据 (如JPEG图片)、要素 (如气象站数据) 和网格 (如航空影像数据)。设计地理网络服务目录CSW (Nebert和Whiteside,2005) 的目的就是用于发现和发布网络中的共享地理数据和服务。数据和服务的元数据被注册在目录中,以便用户通过查找CSW发现、绑定和激活这些服务。随着现代网络技术的发展,网络服务互操作规范也在不断发展和完善,版本不断推陈出新,每种新的实现规范都在前一个版本基础上作了许多改进和补充,这同时也造成了各个不同版本实现规范及其对应的信息模型间出现了版本差异。这些版本差异主要表现在信息模型结构、元素及对象定义、元素及属性命名等方面,因而导致了只有那些被服务器支持的服务实例才能被请求成功,而当前多版本服务只能通过版本协商机制来解决。
版本协商机制是OGC网络服务实现规范定义的一个多版本网络服务请求实现的方法,也是目前网络服务中不同版本服务请求得以实现的唯一方法。网络服务实现规范规定: 客户端请求的特定服务实例中使用的版本号必须等于这个实例已经申明支持的版本号。一个服务实例可能支持许多不同版本服务,客户端则可以根据协商规则来发现这些不同版本服务并进行请求。通过版本协商机制让一个客户端和一个服务实例共同决定双方都同意的规范的版本号。版本协商在服务请求时通过Get Capabilities操作完成,并遵照下面的规则。
所有的能力文档中都必须包含协商的版本号,为了响应一个包含版本号的Get Capabi lities请求,网络服务器必须响应输出与这个版本号一致的版本,或者在请求的版本号没有被服务实例支持时,双方协商确定一个版本。如果请求中没有申明的版本号,服务器必须响应一个它能理解的最高版本号,并标记相应的响应。版本协商的过程如下:
(1) 如果服务器实现了请求的版本号,服务器必须发送这个版本号。
(2) 如果客户端请求一个未知的版本号,即请求的版本号高于服务器能理解的最低的版本号,服务器必须发送低于请求版本号的最高版本号。
(3) 如果客户端发送的版本号低于服务器所能理解的所有版本号,服务器必须发送一个它能理解的最低版本号。
(4) 如果客户端不能理解服务器传递的新版本号,它可能停止与服务器通信,或者发送一个带有客户端能理解的新版本号请求,但这个版本号必须小于服务器发送的版本号(如果服务器已经响应了一个低版本号)。
(5) 如果服务器已经响应了一个比较高的版本号 (因为请求中的版本号低于任何服务器能理解的版本号),并且客户端不能理解这个版本号,客户端可能发送一个新的带有高于服务器发送的版本号的版本号。(www.xing528.com)
上述处理过程不断重复,直到双方接受一个都能理解的版本号,或者客户端终止与服务器的通信。
例如,服务器支持的版本号为1、2、3、4和5。客户端能理解的版本号为1、3、4和6。当客户端请求版本6时,服务器响应版本5。当客户端请求版本4时,服务器响应版本4,双方都能理解,协商成功。
再如,服务器支持版本号4、5和8。客户端能理解的版本号为2,客户端请求版本2时,服务器响应的最低版本为4,客户端不能接受这个版本号,于是协商失败,通信终止。通过这些例子可知,利用版本协商机制在一定的程度上为实现多版本网络服务访问提供了一个可以通信的方法,但它只能在用户请求的版本号服务器支持的情况下才能实现用户准确版本请求,在多数情况下只能协商返回一个非用户请求的版本号服务响应结果,而且在很多情况下,协商会出现失败从而导致服务请求失败。可见,版本协商机制可靠性差,无法保证用户的访问要求。
当前,在网络服务器中注册的各种服务实例,我们可以把它们分成三种类型: 同种类型同种版本的服务、同种类型不同版本的服务和不同类型的服务; 或者称它们为同一版本同质服务、不同版本同质服务及异质服务。同版本同质服务具有相同信息模型和模式,不同版本同质服务具有相同信息模型不同模式,异质服务具有不同信息模型和模式。针对这三种服务,设计三种类型方法来实现服务的统一访问。即对于同版本同质服务采用直接的请求和响应派遣 (a.Dispatch),对于同质不同版本服务采用动态模式映射 (b.Translate),对于异质服务采用信息模型融合 (c.Fusion) 的方法实现服务统一访问。图6-1是三种服务统一访问方法示意图。
图6-1 服务统一访问三种方法
对于同种类型相同版本的服务请求可以直接派遣给服务器实现服务请求,对不同版本同种类型服务的统一访问包括: 不同版本间的模式匹配及不同文档间的信息提取与转换两个步骤。第一阶段表示为一系列内部模式对应关系的高级规范转换成一系列两个模式间设计选择的映射,设计选择包括数据的层次组织及模式约束 (如外键约束); 在第二阶段,这些映射转换成对源模式通过产生数据填充到目的模式的查询 (SQL、XQuery和 XSLT)。映射算法的一个重要特点是考虑到目的模式的约束条件从而保证产生的数据将不会违反目的模式完整性。对异质服务,即不同类型的服务,除了模式转换请求外,在模式转换前还要对响应的不同信息模型进行融合,例如O&M result Model和 GML WCS简表或GML要素简表间的融合,从一个SOS产生的实时观测的元数据在CSW服务器中注册成一个“ob-ject Type”。如果观测结果是覆盖信息,元数据“WCSCoverage”产生; 如果观测结果是要素信息,“WFSLayer”元数据产生。“WCSCoverage”包含数据集名称、地理范围、数据格式、空间参考和分辨率信息。“WFSLayer”包含数据集名称、要素类型、地理范围、空间参考信息。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。