摘 要分析了几种网络计算模式的特点,针对客户机/服务器模式设计了一个地理信息系统(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 数据库访问方式的比较
基于程序的访问数据库的几种方法如下.
(1)专用的数据库访问工具.如Power Builder,Delphi等,它偏向于对数据库中数据的管理和显示,具有限的计算功能.既不适于用它来开发GIS应用系统,也难以将它们的数据操纵功能与现有的GIS应用系统紧密结合.
(2)嵌入数据库语言的常规语言.各数据库厂家为了让用户程序能直接访问自已的数据库,基本上都提供了专有的面向C语言的预编译头和静态库,如Sybase公司的OPEN CLIENT和ORACLE的PRO*C.
(3)开放数据库互连性应用编程接口(open database connectivity application programming interface,简称ODBCAPI)[2,3].它是微软(Microsoft)公司提出的数据库访问形式.它通过确保所有的应用系统遵循标准的调用层接口,提供对特定数据源命令进行解释的驱动程序来保持应用系统的互用性.这样的应用系统是开放的,只要有相应数据源的ODBC的驱动,它就无需改变代码而可访问相应的数据库.
在确定访问数据库的方式时,ODBCAPI的开放性的优势是不言而喻的,但这种方式在效率上不如第二种访问形式.应说明的是:ODBC SQL语法分为3层,即最小层、核心层和扩展层,尽管目前的大型数据库都能支持到扩展层,但为了保证应用系统的开放性,在具体编程实现时,尽量只使用最小层和核心层的语法.
4 某电信局配线系统的实现
客户机为MAPGIS/ODBC/WINDOWS 95,服务器为SQL SERVER/WINDOWS NT,要访问的相关表中记录约为13万条.要求从地理底图上选中某一DP,在数据库中寻找出从这一DP到配线架的可用通路,并在数据库中作相应配线修改.如图3所示. 结果表明:(1)程序实现了MAPGIS访问网络数据库的功能;(2)客户机和服务器均为PC机(主频166MHz),每次操作反应时间为数秒,换机观察,发现服务器的性能是整个网络计算的瓶颈.
5 结论
(1)C/S模式为目前网络平台GIS的首选,将GIS功能与数据库访问分层实现有利于保护现有的开发成果;(2)将数据请求层放在客户端和以ODBC作为数据库的访问方式保证了应用系统的开放性,其访问可跨越数据系统和操作系统平台;(3)实例表明,应用系统的反应速度更多取决于服务器的性能,而不是ODBC的效率.
参考文献
1
http://www.esri.com/base/common/userconf/proc96/TO100/PAP094/P94A.HTM.1998.4
2
http://www.microsoft.com/odbc/start.htm.1998.4
3 Signor R, Creamer J, Stegman M O;侯雪萍译.开放式数据库互连ODBC方案集粹.北京:电子工业出版社,1995. 12