《WebGIS开发实践手册》1.3.2 GIS应用服务器
GIS应用服务器是WebGIS架构的核心组件,负责接收地图请求并动态地生成地图图片或地理信息并返回给客户端,当然,它是怎么开发和如何工作的原理并不是本书关心的内容。用户只需要知道:根据GIS服务器的访问规则,编写普通的Web应用程序页面,就是我们所理解的WebGIS开发的全过程了。
常见的GIS服务器有多种,下面是其中比较著名的几种:
l ArcIMS
ArcIMS是一个通过Web发布动态地图、GIS数据和服务的解决方案,它为GIS的Web发布提供了一个高伸缩性的框架,以此满足从Intranet到Internet级的访问要求。除了Web页面以外,ArcGIS Desktop、移动和无线设备都可以访问ArcIMS的服务。通过ArcIMS,用户能够产生易用的、面向任务的GIS程序,能够使用工业标准的Web开发环境发布自定义的应用程序。
但由于ArcIMS的核心组件并非ArcObjects,它与ESRI的产品策略和技术路线并不一致,因此,ESRI将逐渐降低对ArcIMS的支持力度[1],可以预见,ArcIMS将逐渐被ArcGIS Server所取代,就如同MapObjects被ArcGIS Engine取代一样。
尽管如此,作为一种结构清晰,交互简单的GIS服务器,我们对其是非常推崇的。ArcIMS能够满足目前大部分应用的需求,即使要产生瓦片式GIS,也有办法通过TileCache等工具实现,并且,目前大部分电子地图网站仍然是使用ArcIMS作为其GIS服务器。对于WebGIS的学习者而言,ArcIMS的开发过程也是最简洁和最清晰的。
l ArcGIS Server
作为ArcIMS的未来替代者,ArcGIS Server已经出过多个版本了,它是一个完整的服务器端GIS产品,用于构建集中管理、支持多用户的企业级GIS应用的平台。ArcGIS Server提供了丰富的GIS功能和服务。它不仅包括地图,还拥有大量的GeoProcessing服务。
开发人员使用ArcGIS Server可以构建Web应用、Web服务和其它运行在标准的.NET和J2EE Web服务器上的企业应用。ArcGIS Server也可以通过桌面应用以C/S(Client/Server)的方式访问。
此外,ArcGIS Server能够产生地图瓦片(Map Tile),提供瓦片式GIS服务;它也支持WMS和WFS标准,同时还提供Rest服务。
在其定制开发方面,除了传统的ASP.NET和JSP开发外,ArcGIS Server还提供了丰富的轻量级API,如JS和Flex客户端,能够实现非常绚丽的客户端应用效果。
l GeoServer
与ArcIMS和ArcGIS Server这两个商业软件不同,GeoServer[2]是一个由Java编写的开源GIS服务器,其底层基于开源GIS工具集Geotools[3],允许用户显示、共享和编辑地理数据。由于一开始就考虑到互操作性,因此它支持任何使用了公开标准的空间数据。
作为一个社区驱动的项目,GeoServer的开发、测试和技术支持全部由来自世界各地的个人和机构志愿者负责,它完全实现了OGC的WFS、WCS和WMS等标准。
l MapServer
MapServer[4]是一个使用C语言编写的开源地理数据渲染引擎,用于在Web上发布空间数据和在与地图程序进行交互。MapServer目前是OSGeo[5]的一个项目,它由世界各地大约20多名开发人员在进行维护。它诞生于1990年代中期的明尼苏达大学,使用MIT许可证[6],该程序能够运行在主要操作系统之上(Windows、Linux和Mac OS X)。
MapServer拥有强大的制图功能,支持包括PHP、Python、Perl、Ruby、Java和.NET在内的开发环境。当然,它也完全支持WMS、WFS、WMC、WCS等OGC标准。
MapServer支持的数据类型也相当广泛,如ESRI Shapefiles、PostGIS、ArcSDE、Oracle Spatial和MySQL等,同时,它也通过Proj.4这一组件提供超过1000种以上的动态地图投影来满足用户的需求。
[1] 尽管如此,ArcGIS9.3中仍然包含了ArcIMS9.3
[2] GeoServer项目URL:http://geoserver.org/display/GEOS/Welcome
[3] http://geotools.codehaus.org/
[4] MapServer项目URL:http://mapserver.org/
[5] 开源地理空间基金会http://www.osgeo.org/
[6] MIT许可证:http://zh.wikipedia.org/wiki/MIT%E8%A8%B1%E5%8F%AF%E8%AD%89