GIS访问网络数据库中若干技术问题的探讨
摘 要分析了几种网络计算模式的特点,针对客户机/服务器模式设计了一个地理信息系统(GIS)访问数据库的结构框架——客户端分为GIS功能层和数据库请求层两层,服务器存放数据,并将此结构与ESRI公司的空间数据库引擎(SDE)作了对比;通过比较几种数据库访问的程序实现方式,认为ODBCAPI在开放性方面是良好的.最后给出的MAPGIS实例表明:采用上述设计思路的应用系统不但利用了原有MAPGIS的研究成果,实现了GIS访问网络数据库的功能,而且还具有良好的开放性.
关键词 地理信息系统,数据库访问,空间数据库引擎(SDE),C/S模式,ODBC.
引言
近年来,网络技术得到迅速的发展,这就为信息资源的共享提供了技术上的可能.作为信息密集型的地理信息系统(GIS)上升到网络平台可谓适逢其时.但从目前的应用情况来看,除了国外极少的公司拥有网络版的GIS之外,在国内还处于试验研制的阶段.因此,尽快地研制出我国自主版权的网络GIS的原型和产品,并在技术手段上达到国际先进水平,是摆在我们面前的一项迫切的任务.
1 网络计算的几种模式及特点
(1)传统的集中式.这是一种主机-终端模式,所有的计算任务和数据管理任务都集中在主机上,终端只是主机输入/输出设备的延长.这种模式的优点是容易管理,缺点是对主机的性能要求很高,也浪费了作为终端的计算机的计算能力,并且从性能价格比来看,在购置费用相当的情况下,一台主机的性能往往比不上几台计算机所组成网络的性能;因此这种模式已逐渐退出主流.
(2)客户机/服务器(client/server,简称C/S)模式.一般说来,在这种模式下,服务器只集中管理数据,而计算任务分散在客户机上,客户机和服务器之间通过网络协议来进行通讯.客户机向服务器发出数据请求,服务器将数据传送给客户机进行计算,计算完毕,计算结果可返回给服务器.这种模式的优点充分利用了客户机的性能,使计算能力大大提高;另外,由于客户机和服务器之间的通讯是通过网络协议进行的,是一种逻辑的联系,因此物理上在客户机和服务器两端是易于扩充的.它是目前占主流的网络计算模式.
(3)浏览器/服务器(browser/server)模式.在这种模式下,用户端只需一通用的浏览器,如Netscape或Explore,便代替了形形色色的各种应用软件.服务器则为Web服务器.浏览器和服务器之间通过TCP/IP这一通讯协议进行连接.浏览器发出数据请求,由Web服务器向后台取出数据并计算,将计算结果返回给浏览器.这种模式的优点是:由于用户端所用软件只是一个简单的浏览器,用户基本上无需培训,用户端软件也无需维护;软件的升级与修改只在服务器端进行,对用户透明;服务器与浏览器可处于不同的操作系统平台.其缺点为:Web动态技术不够成熟,各种标准有待统一,如各厂家发布的动态协议互不支持、浏览器之争等.总之,它是一种先进的但发展还未成熟的技术.
基于以上的分析,应选择客户机/服务器模式作为GIS访问网络数据库的实现模式.
2 C/S模式下的GIS访问网络数据库的结构设计
设计在总体上分为C/S两层(见图1),以充分利用C/S模式的跨平台、易扩充、数据独立等优点.在client端又分两层来进行设计——GIS功能层和数据请求层,GIS功能层是GIS的功能实现部分,数据请求层是GIS的数据实现部分.数据请求层作为一中间层,起到数据转换的作用,对上是具有GIS特点的数据文件,对下是标准的数据库记录.这种分层设计的形式一方面充分利用了现有的单机版本GIS研究成果;另一方面,GIS功能层和数据请求层的开发可同时进行,只要接口标准不变,本层的变动不会影响到另一层.
Fig.1 The general framework of GIS accessing database based on C/S model
值得一提的是ESRI公司的空间数据库引擎(spatial database engine,简称SDE)的设计方案(见图2).它是目前国际上领先的GIS数据处理的网络计算模型.其数据的访问形式为:由用户的应用程序(user application)通过SDE应用编程接口(SDE API)向SDE服务器提出空间数据请求,SDE服务器内存放有空间对象模型,并依据空间对象的特点在本地完成空间数据的搜索,并将搜索结果通过网络向用户的应用程序返回.
对比图1和图2可以看出两者采用的都是C/S模式,并且都将GIS功能实现与数据请求进行分层处理;所不同的是面向数据库的数据请求实现的位置:图1在客户机端实现,图2在服务器端实现.在服务器端实现的主要优点为:(1)对于空间对象模型及相关的计算模式的升级可以只在服务器端实现,而且对客户机端透明;(2)由于SDE服务器与数据库ORACLE 7.2的结合非常紧密,因此数据的搜寻速度非常快.对于图1来说,把数据请求层放在客户机端,对数据库的依赖程度就不同于SDE服务器,后者对数据库的选型有极强的依赖性(目前SDE服务器只在ORACLE 7.2实现),相反,它是一种非常开放的结构,它所支持的服务器不但可跨数据库系统平台,而且还可跨操作系统平台.可以说,图1和图2两种设计模式的优缺点是相互对应的.
3 数据库访