理论教育 WebGIS体系结构解析

WebGIS体系结构解析

时间:2023-08-23 理论教育 版权反馈
【摘要】:三层结构的WebGIS系统由浏览器和服务器端的地理信息发布服务组成。基于XML的WebGIS结构分为3层:资源层、应用层和客户层。图2-2基于XML的WebGIS体系结构2.2.1.3基于Web Service的体系结构传统的WebGIS都是面向数据的,即以Web为平台,集成和发布异构、多源空间数据。

WebGIS体系结构解析

2.2.1.1 传统的二层/三层体系结构

虽然实现WebGIS的方式很多,但其基本的体系结构还是客户机/服务器模式。它是一种分布式系统结构。客户机/服务器模式基于简单的请求/应答协议,即客户端向服务器提出信息处理的请求,服务器端收到请求并将请求解释后,根据请求执行相应操作,并将操作结构传递回客户端。在早期的WebGIS实现中,客户机/服务器模式是经常采用的一种方案。在这种结构中,客户端通常是同最终用户交互的应用软件系统,而服务器由一组协作过程构成,为客户端提供服务(张晶,2001)。

对于基于客户机的WebGIS而言,由客户机完成GIS分析、输出工作。GIS数据和分析工具最初放在服务器上,运行时下载到客户机,操作灵活。但是这种应用软件模式大都是基于“肥客户机”结构下的两层结构应用软件。客户端软件一般由应用程序及相应的数据库连接程序组成,服务器端软件一般是某种数据库系统。客户端软件的主要功能是处理与用户的交互、安装某种应用逻辑处理与数据库系统的交互;服务器端软件的主要功能是数据库系统根据客户端软件的请求进行数据库操作,然后将结果传送给客户端软件。二者之间的通讯主要是通过SQL语句。

两层结构应用软件的开发工作主要集中在客户端,客户端软件不但要完成用户交互和数据显示的工作,而且还要完成对应用逻辑的处理,及用户界面与应用逻辑位于同一个平台上,这样就带来两个突出的问题:系统的可伸缩性差和安装困难。

为了解决两层结构应用软件中存在的问题,人们又提出了三层应用软件结构。三层结构的特点是用户界面与应用逻辑位于不同的平台上,并且应用逻辑被所有的用户共享,这是与两层结构之间最大的区别。

三层结构的WebGIS系统由浏览器和服务器端的地理信息发布服务组成。浏览器与服务器端进行数据的传送,并在浏览器上显示相应的地理信息,服务器端按照客户端的请求从数据库中将响应信息单元传送的压缩信息由扩展控件进行解压。它通常由三部分组成:客户端的浏览器、中间层的Web服务器和后台的数据库服务器,所以该结构也被称为“浏览器/Web服务器/数据库”结构。

三层体系结构中的客户端是一个标准的Web浏览器,它负责与用户交互,向中间的Web服务器发出请求,解释Web服务器返回的数据并显示出来。中间层是Web服务器和服务器扩展程序,Web服务器接受浏览器传来的请求,同时激活服务器扩展程序并把请求信息传递给它,服务器扩展程序将请求信息转换成数据库能够接受的形式(SQL语句),再把它们送到数据库服务器。数据服务器接受查询请求后执行相应的操作,并把结果集返回给服务器扩展程序,服务器扩展程序把结果集进行GIS控件分析处理并转换成浏览器能够接受的形式(HTML)后传送给Web服务器,最后Web服务器把包含信息的HTML文档返回给客户端Web浏览器。

使用三层结构开发应用系统时,整个系统被分为不同的逻辑块,层次清晰,有利于软件的重用,提高开发效率。能够使“肥客户机”变为较“瘦”的客户机,将开发和管理的工作向服务器方转移,使数据分布处理成为可能,而且管理和维护变得相对简单。见图2-1。

图2-1 二层/三层的WebGIS体系结构

2.2.1.2 基于XML的体系结构

在传统的WebGIS体系结构中,服务器处理一部分请求,但不处理用户的所有请求,而是通过服务器向客户端发送一段运行在本地机上的客户程序。这个程序可以与用户交互,处理用户的一些请求,如地图的开窗、缩放等,所需的矢量数据直接向服务器申请。当客户发出一些复杂、高级的客户要求而客户端不能处理时,请求服务器端处理,这样达到负载平衡的目的。存在的一个问题是:不同系统在不同的环境中开发,有着自己的文化背景和技术背景,形成了自己的数据模型。如果想在一个WebGIS系统中浏览或整合其他系统的数据是很难的,甚至是不可能的(龙明等,2004)。

为了更好地解决地理空间数据的共享问题,在此基础上引入了XML进行数据表达,从而形成了基于XML的体系结构。如图2-2所示。

XML(eXtensible Markup Language,可扩展标记语言)是世界万维网协会(W3C)为适应网络发展而指定的用于描述复杂信息的结构化标记语言。本质上,它是一种元语言,是一种描述其他语言的语言。

基于XML的WebGIS结构分为3层:资源层、应用层和客户层。它在通用的结构上引入了XML,这样就需要在客户端和服务器端加入相应的处理XML的功能。

资源层是WebGIS的数据源,存储着地理空间数据。这些数据既可以是以XML编码的数据,也可以是非XML编码的一般数据。对于XML编码的数据,可以通过XML查询语言XQL对所需的数据进行检索,并以XML文档的形式返回给应用层。对于非XML编码的一般数据,则需要通过一般的SQL查询进行数据检索,检索结果经过XML转换引擎转换成XML文档,返回给应用层进行处理。

应用层用于响应客户层的请求,它从资源层取得以XML格式编码的数据,并根据客户端的情况将数据转换成栅格图像,或通过样式表将XML格式转换成Web矢量格式,如GML、VML、SVG等。

客户层用于显示后端发来的数据。由于XML是内容和格式分离的语言,因此对于XML文档在客户端浏览器上的显示,通常仅需要有相应的样式表(Style Sheet)即可。但由于地理空间数据具有复杂的图形特征,因此对于以XML形式编码的地理空间数据,通常需要以下两种方法来显示地图数据:一是构建专用的图形浏览器,采用如Plug—In方式;二是将XML文档转换成相应的Web图形格式(如VML,SVG,PGML等),在支持这些图形格式的浏览器中直接使用。而对于这个格式的转换,又可通过两种途径来实现:对于复杂的应用可以在服务器端通过程序进行转换;对于一些简单的应用采用XSL样式表可以在客户端动态进行转换。(www.daowen.com)

图2-2 基于XML的WebGIS体系结构

2.2.1.3 基于Web Service的体系结构

传统的WebGIS都是面向数据的,即以Web为平台,集成和发布异构、多源空间数据。大多数WebGIS的应用都是从一次性开发的角度实施的,不容易通过跨应用集成的方式来实现GIS的重用。这是由于各个GIS站点都有自己特有的基础架构,即使可以用CORBA或者DCOM来实现分布式的系统,在部署、更改和维护上的代价也是很高的,如果系统在开发前未留有相互调用的接口,更要改变系统的设计。传统的WebGIS缺乏统一的开放式架构,不能方便、迅速、动态地相互发现。可以说,Web Service的出现,将从根本上改变目前WebGIS的架构(马林兵等,2006)。

Web Service是使用标准技术实现的,公布并运行在因特网上的一些业务流程。应用Web Service的公司可以轻松地通过标准网络协议使用XML格式把应用程序连接到任何客户端(包括桌面应用程序、Web浏览器、移动设备和PDA)。与此相似的是,Web Service还可以把来自完全不同硬件平台(如大型机、应用服务器和Web服务器)的应用程序连接起来。另外,Web Service还支持在异构操作系统中实现互联。它还使开发人员创建的电子商务平台应用程序能够于世界上任何地方的任何客户、供应商和业务伙伴进行连接,并且这种连接与开发平台或编程语言无关。

Web Service中的服务是通过网络进行分布式计算的基本构造单元,一个服务接受使用SOAP(Simple Object Access Protocol)的调用,并有WSDL(Web Service Description Language)描述调用所需的具体信息。服务本身则通过UDDI(Universal Descripition Discovery and Integration)进行注册和发现。参见图2-3。

图2-3 基于Web Service的开放式WebGIS体系结构

Web Service具有十分广阔的应用前景,代表了一个具有革命性的、基于标准的框架结构,可以使各种在线的地理空间数据处理系统和目前广为流行的技术融合在一起。Web Service提供了和厂商无关的、可互操作的框架结构,来对分布式、异构的地理空间数据进行基于Web的数据发现、处理、集成、分析、决策支持和可视化表达。

Web Service是一个为地理空间数据处理应用建立网络连接的框架结构,或者说是将框架数据处理功能与其他信息应用系统如MIS和ERP系统集成的平台。可以把这个平台想象成一个自由市场,市场中的人可以是卖主,也可以是消费者。也就是说,Web Service的提供者既可以提供具有地理空间数据处理功能的服务,也可以是各种服务的使用者。从这种意义上讲,Web Service提供了一种开放式的、可互操作、动态链接的空间信息服务网络平台体系。

Web Service将使未来的地理空间数据处理系统和基于位置的服务有机地联系在一起。它是一个自我包含、自我描述、模块化的应用,可以用于数据的分布、访问以及通过Web来调用。一个Web Service可以被认为是一个“黑箱”,它屏蔽了操作的具体细节,通过提供一系列访问接口来提供地理空间数据服务。它可以以元数据的形式来描述所执行的操作,因此可通过Web搜索来获取这些服务的相关信息。

基于Web Service的开放式WebGIS一般提供下面5个基本的服务:

(1)地理数据服务(Data Service)。提供对空间数据的服务,主要有WFS(Web Feature Service网络要素服务)和WCS(Web Coverage Service网络覆盖服务)。地理数据服务返回的结果通常是带有空间参考系的数据。

(2)地理表现服务(Portrayal Service)。提供对空间数据的表现,主要有WMS(Web Map Service网络地图服务),其中地图可以由多个图层组合起来,可以用SLD(Styled Layer Descriptor)对地图进行描述,返回的结果通常是矢量图形或栅格图形。

(3)过程处理服务(Processing Service)。提供地理数据的查找、索引等服务,主要有Geocoder(地理编码服务)、Gazetter(地名索引服务)、Coordinate Transfer Service(坐标转换服务)等。

(4)发布注册服务(Registry)。提供对各种服务的注册服务,以便于服务的发现。其中包括数据类型、数据实例、服务类型、服务实例的注册服务。注册服务提供了各个注册项的登记、更新及查找服务。

(5)客户端应用(Client Application)。即客户端的基本应用,如地图的显示、地图浏览以及其他的增值服务。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈