3.1.1. Web服务的产生及优势 #
WebGIS在90年代初产生之后迅速发展,但早期的Web应用系统和软件,包括WebGIS,大都是仅能独立使用的网站,这种系统在内部结构和外部开放方面都逐渐显示出其局限(黄晓斌,2002),难以充分发挥WebGIS的潜力。
局限1:系统之间缺乏良好的互操作性
每一个WebGIS是孤立的、封闭的系统,不同的系统之间无法互相调用对方的功能和共享信息, 不能进行互操作。 如图3. 1所示,假设系统A的某一个功能正是系统B所需要的,但因为系统A是封闭的, 没有对外提供基于Web的编程接口,无论是系统B的客户端还是服务器端,均无法调用系统A的功能。 反之亦然,系统A也不能调用系统B。
局限2:系统内部耦合度较强,应用模式不够灵活
每个系统都是作为“独立解决方案”来开放的,系统中各个模块之间的接口是紧密的和局部的。 当系统需要改进时,这种高度耦合的结构在源程序更改和系统维护上的代价比较高,不够灵活。
随着信息社会的发展,越来越多的现实应用需要调用、组合、或套嵌其他 WebGIS系统所提供的功能和信息, 因此,如何使WebGIS变得开放,使不同的系统之间能够进行互相调用就变得非常重要。 在90年代后期,这不仅是WebGIS领域面临的问题和需求,也是整个信息技术行业的需求, 当时的Microsoft、OraCle、IBM、万维网联盟(W3C)等机构都展开了对这方面的探索, 研究发布了 Web服务技术。
近年来,Web服务的技术不断改进,其定义也发生了变化。 早期Web服务的定义大都涉及S0AP、XML和WSDL技术(参见第3.3.1节), 现在SOAP已经不再是实现Web服务的唯一方式, REST风格的Web服务(参见第3. 3.2节)扩 展了Web服务的概念。
Web服务是一种运行于Web服务器上的程序,它们具有可以被别的程序通过互联网协议(主要是 HTTP )来调用的编程接口。
Web服务技术代表了分布式计算的重要进展,它用远程服务器上的功能来代替本地计算机上的功能。 可以这样理解Web服务:桌面软件由一系列共同运行的本地程序构成, 假定这些程序分布和运行于不同的Web服务器中,但它们之间仍然能够通信, 并作为一个整体进行工作一这就是Web服务的初衷。
对Web网页和Web服务的比较有助于理解Web服务。 Web服务与一般 的网页不同:
网页是供人理解和阅读的,主要采用HTML格式, 它包含内容和样式(字体大小和颜色、页面的布局……)等。
Web服务是一种基于Web的编程组件,它是供客户计算机程序来调用的。 它的结果主要采用XML或JSON等计算机程序能自动解析的格式,而不是供人直接阅读的。
完整的Web服务体系有三个部分:提供者、使用者和门户网站。 服务提供者和使用者不必知道对方的存在。 提供者可以把自己的Web服务信息注册登记到门户网站中,而使用者可以查询到这个门户网站,找到需要的服务, 然后使用这些服务(图3.2)。 Fig. 3.1 Web服务体系的三个组成部分及其相互关系 # 
Web服务继承了 Web程序和开发接口这两者的特性,与传统计算方式比,具有以下优势:
开放性
Web服务可以和Web上其他计算机软件交互,供其他系统调用,进行功能和信息的交换和共享,打破了早期Web应用孤立封闭的局限。
独立于编程语言和操作系统
Web服务是以Web为平台,以 HTTP 协议被远程调用的,它不和调用它的客户端程序一起编译。 一个Web服务不管是使用什么编程语言开发的(如 Java、.NET或C++等)、部署在什么样的操作系统上(如Windows、Linux或MacOS等)、运行在什么样的Web应用服务器里(如IIS或Apache/Tomcat等), 都能一样地被客户机所调用。 客户机在调用一个Web服务时也没有被绑定任何编程语言, 开发者可以自由选择.NET、Java、Python、JavaScript、Flex 或Silverlight 等开发语言。
松散耦合式的可集成性
客户软件和它所调用的Web服务不必运行在一个机器上,两者不必一定依赖对方而存在。 当一个客户机对某一个Web服务不满意或者这个Web服务不能使用时,客户机可以用其他Web服务来代替它。 只要这两个Web服务的接口相同,客户机仅需要指向这个新的Web服务的URL,而无需做其他改动。 从Web服务提供者的角度讲,他可以改变或更新Web服务,如从J2EE迁移到.NET或者是相反的迁移, 只要保持Web服务的接口不变,这些改变对调用者都是透明的,调用者不需要做任何改动(柴晓路,2002)。 这种松散耦合的特点便于进行灵活的组合和套嵌,满足用户的业务需要。
发布和更新的统一性
当Web服务更新或发布新的版本时,只需要在服务器端更新,每个客户端程序调用到的自然是最新的Web服务, 这样就不必到每个客户端分别进行软件包的安装和更新。 这是Web服务优于桌面组件技术的一个重要方面。
3.1.2. 地理空间Web服务的影响 #
目前,Web服务已经成为GIS的核心,它的出现对地理空间产业产生了很大的影响, 为实现地理空间信息共享、互操作和跨部门协同合作提供了一个优秀的解决方案。
(1)是WebGIS产品分化和新市场形成的加速器
以Web服务为中心,地理信息界发布了新的产品或新的功能, 来实现地理资源的制作(author)、服务的发布(publish )、服务的发现(discovery)和使用 (use)这一系列的工作流程。 这在Esri ArcGIS产品系列表现得非常显著(图3. 3)。
服务器产品,如ArcGIS Sever可以发布多种地理空间Web服务, ArcGIS Online提供多样的基于云的服务。
客户端产品,如ArcGIS Online在线地图浏览器、ArcGIS Explorer、 基于Flex和 Silverlight 的 ArcGIS 客户端、基于 iPhone/iPad、 Android 和 Windows Phone 等的移动客户端等, 让用户不用编程就能够调用自己或别人的Web服务。另夕卜,ArcGIS Server 的 Web服务提供了基于? {£81’、扣¥38(31^1;、1?161、8办61’-light、iOS、Android、Windows Phone等开发接口, 允许开发者灵活地综合 Web服务,快捷地进行二次开发。
地理信息门户网站,如ArcGIS. com、ArcGIS Portal以及GeoportalSever, 便于提供者把自己的服务注册到门户中,便于使用者到门户网站中查询和发现自己需要的Web服务。
这些产品的分化提供了新的市场和新的生存点如下所述。 Fig. 3.2 Web服务是WebGIS的核心,WebGIS产品分化为支持地理空间Web服务的创作、发布、注册、查询和使用的多种产品 # 
在服务器方面:如果你拥有大量的数据,你可以成为数据和地图服务的提供者。 如果你具有独特的分析模型,你可以将它们作为专业地理处理服务发布。 这些服务可以是免费的,也可以按次使用收费。
在客户端方面:如果你擅长开发,你可以选择开发Web服务的桌面客户端或手机客户端, 在所支持的服务类型或可用性等方面显示出自己的优势。
在门户网站方面:你可以收集一定区域、一定专题或者符合一定标准的Web服务, 把这些信息编目发布,并让需要这些服务的人们能查询。
(2)是GIS融入主流信息系统的基本组件
在地理Web服务之前,GIS与其他信息系统的集成往往要在“本地”实现,即把地理数据复制到本地, 把GIS软件安装到本地,对GIS功能的调用很复杂也很有局限, 这些原因多年来一直把GIS限制在一个小圈子里,阻碍着GIS与主流信息系统的无缝集成。 地理Web服务隐藏了上述复杂性,其他的信息系统, 如企业资源计划(ERP)和客户关系管理(CRM)系统,可以灵活方便地调用和集成远程的地理Web服务, 从中获得地图、数据和地理分析功能。 Web服务的开放性和灵活性将大大地拓宽GIS的市场。
(3)是实现互操作的一种新途径
GIS应用的挑战之一就是如何实现互操作,即让不同GIS软件厂商的产品能够一起工作。 在Web服务技术以前,互操作主要在数据格式层面完成,也就是采用标准机构所制定的交换格式。 不同厂家的软件需要能够输入、输出这些格式或直接读写这些数据格式。 这种方法往往牵涉到数据的复制和本地软件的安装等,是脱节的和不灵活的。
Web服务使得GIS界可以把互操作提升到基于Web服务的层面,超越数据转换和转换工具的安装这些层面(Bacharach, 2005)。 地理信息标准机构,如开放地理空间信息联盟(OGC )和国际标准化组织(ISO ),与时俱进, 制定了一系列的Web服务标准。 严格遵循这些标准,不同厂商的服务器和客户端之间就可以交叉使用,不必到考虑这些服务是哪家公司的产品发布的, 也不必考虑是哪家公司的客户端在使用这些服务(参见第3. 3节)。
(4)是实现空间数据基础设施一个重要架构
空间数据基础设施(SDI)指的是地理信息的采集、处理、存储、发布、利用和保护所必需的技术、政策、标准和人力资源的总称。 建设区域、国家、全球空间基础设施的关键是标准、共享、协作和协调。 Web服务体系在服务提供者和信息使用者之间建立了一个动态交流和集成的方式,是构建空间基础设施的关键。地理数据等信息可以把数据留在原有单位中,由他们进行数据维护,通过Web服务进行共享,当数据更新时,Web服务也随之更新,保证了 Web服务的现势性。 例如,一个地方政府可以不断地维护和更新其土地记录,同时把这些信息通过Web服务共享给其他单位。 一个公共设施部门可以直接利用这个地图服务作为底图,而不需要去把其地图的原始数据复制安装到本地。 另一方面,这个公共设施部门也可以把自己的基础设施信息以Web服务的方式共享给其他政府部门, 以便市政府利用该信息进行土地利用规划和审批等业务需要。 这种协同方式为不同机构之间的地理信息共享和协作提供了一个新的、灵活的技术框架(Dangermond, 2008 ) 。