多数据源空间数据库引擎的研究与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1多数据源空间数据库引擎的研究与实现

廖湖声、王晋强、郑玉明、徐琨

(北京工业大学计算机学院北京100022)

摘要:本文介绍一个中间件系统:面向分布式地理信息系统的多数据源空间数据库引擎。该系统采用三层C/S结构,符合OpenGIS互操作规范,支持数据共享和功能共享,能够用于空间数据库系统集成,支持面向互联网的GIS软件的开发。

关键词:空间数据库,互操作,OpenGIS,多源空间数据无缝集成

中图法分类号:TP311

1 引言

随着计算机网络技术和数据库技术的迅速发展,地理信息系统也经历了主机-终端系统、桌面工作站系统、局域网分布式系统,到目前的基于互联网的应用信息系统的发展历程;而其应用范围也从面向专业领域扩展到诸如“数字地球”等面向社会的信息基础设施,成为社会化的应用信息系统。

社会化的地理信息系统(GIS,Geographic Information System)目的在于提供一种开放式的地理信息获取手段,使得人们能够根据需要获取来自任何计算平台的地理信息。这对在不同软硬件平台上共享地理信息资源提出了很高的要求。因此,最大限度地实现地理信息资源的共享和互操作,提供开放式的地理信息服务就成为目前地理信息系统发展的主要方向。

本文在分析研究OpenGIS互操作协议的基础上,介绍了一个符合OpenGIS规范的空间数据库引擎SDB,为多数据源空间数据库系统的开发提供一个可伸缩的中间件。

2 互操作性与OpenGIS

在GIS应用系统中,空间数据库提供了包括空间数据的数据存储、数据维护、空间数据查询和空间分析等服务功能。为了使得跨平台的分布式GIS应用系统能够有效地利用这些功能,必须解决数据共享、互操作性和开放性等问题。

分布式GIS应用系统应该能够集成各种GIS软件组件,并且共享网络中各种软件系统提供的空间数据协同处理和空间分析功能。在OpenGIS规范中提出了由点、线、面和几何对象复合体组成的几何对象模型,围绕着这些几何对象,规定了DCOM组件接口和CORBA对象接口,并且将这些几何对象作为操作对象提供了空间关系运算和空间分析基本运算的服务接口。在符合规范的DCOM组件和CORBA对象之间,双方的几何对象将能够在协同工作。

分布式应用系统通常采用客户服务器结构,要求多个用户能够共享空间数据库所提供的数据以及各种服务功能;同时,作为组件化GIS的成员,这些数据和服务也应该能够为不同的分布式应用系统所共享。计算机网络技术的发展使得在整个互联网范围实现这种共享成为可能。然而,地理空间数据及其处理有其自身的特点,不同应用系统往往采用不同的数据格式与表示形式,各种数据处理在不同系统中往往也具有不同的应用接口与通信协议。

在空间数据管理方面,OpenGIS为支持抽象数据类型的DBMS系统制定了面向SQL语言的互操作规范,提出作为基本数据类型的几何对象。为了实现数据共享,规范中规定了三种地理空间数据的管理方案:①二进制数据存储②范式表③扩展SQL,分别用于GIS数据存储和不同GIS软件之间的数据传输与数据交换;同时,围绕几何数据对象模型中的各种几何对象,为空间数据管理软件规定了一组空间关系和空间分析基本操作,作为功能共享的基本支持。这些协议为组成分布式GIS系统的各种软件组件和空间数据库提供了实现数据共享和

1本文得到北京市教委科技发展计划的资助。作者简介:廖湖声,男,48岁,教授,博士生导师,主要研究软件自动化、编译技术和空间数据库;王晋强,男,28岁,硕士研究生;郑玉明,男,56岁,副教授;徐琨,男,23岁,硕士研究生。

功能共享的基础。

分布式系统的多样性要求基础GIS软件的开发者提供方便、多样的数据库接口,以满足各种GIS应用系统以及各种基础GIS软件的不同需求。组件化技术为合理地划分地理信息系统的功能提供了有利的条件。组件化GIS系统的开发需要应用层、空间分析层、数据组织层等各级组件来处理粒度不同的各种数据对象。不同的使用方式对数据组织可能有不同的要求,开发强调效率的系统可能需要干预低层的处理逻辑,而开发面向GIS最终用户的系统需要使用抽象层次较高的组件。为满足不同应用的需求,GIS组件和空间数据库都应该提供多层次的应用接口及其通信协议,支持多种系统设计策略的实现。

3 设计思想

OpenGIS为GIS组件互操作性的实现提供了基础,分布式GIS系统的开发需要各种合理规划的符合相应规范的GIS基础软件组件。SDB系统的设计充分考虑了这种需求。

为了满足互操作性的实现需求,SDB系统的应用接口设计符合面向SQL语言的OpenGIS规范,能够直接服务于采用OpenGIS解决方案的分布式应用系统,提供空间关系和空间分析的基本功能,并且允许在此基础上定义复杂的信息处理功能。

在空间数据管理方面,SDB系统利用各种全关系型商用数据库及其分布式处理机制,允许用户根据应用需求,定义各种空间数据表和拓扑关系表,充分利用低层商用数据库具有的已经成熟的众多特性。为了获得最大的数据共享性,在空间数据的数据组织和数据交换方面的系统设计中采用了OpenGIS的空间数据存储方案。

为了满足不同的应用需求,系统设计在客户和服务器两侧为应用系统提供了多级数据库接口。在客户端,允许应用程序直接访问空间数据库,也允许使用专用的客户组件。在服务器端,开发者能够在空间数据库上扩充新的功能满足特殊需求,进而实现GIS应用服务器。

由于SDB采用了符合OpenGIS规范的SQL接口,并且将空间数据保存在各种关系型数据库中,从而为各种采用OpenGIS解决方案的GIS软件和各种关系数据库之间建立了桥梁,使得可互操作的GIS软件能够利用各种关系数据库来管理空间数据。

4 系统结构

如图所示,SDB系统采用三层C/S结构,采用多种方式连接来自商业数据库的数据源,如ODBC、SQL Server DB-Library、Oracle OCI等。在此基础上,软件开发者可以根据应用需求采用多种方式来构造不同的GIS应用系统或基础软件:

a) 使用空间数据库的应用接口构造GIS客户应用程序。应用接口封装和扩展了SDB系统的引擎接口,以

图幅、图层等逻辑概念来组织数据,为用户提供了一个透明的、面向对象的数据访问接口。

b) 直接调用引擎接口来访问数据。当应用接口不能满足应用需求时,引擎接口为应用程序提供了一个更

为灵活的访问数据的方式。通过它,应用程序能更加直接地控制数据访问。

c) SDB空间数据库引擎负责处理客户请求,并根据请求配置数据访问接口,如ODBC、SQL Server

DB-Library、Oracle OCI、Oracle Spatial及ArcView Shape File等。客户应用在请求数据时并不需要了解数据的具体存储方式,支持对数据的透明存取以及多源数据的无缝集成。

SDB空间数据库引擎支持采用全关系化的商业数据库保存地理空间数据,提供特定的数据库接口保证其适用于各种数据库管理系统,为网络用户提供空间数据的共享。同时,采用OpenGIS推荐的空间数据组织方法,以求在数据格式的层次上保持系统的互操作性。另一方面,进一步扩充空间数据库引擎与各种商业数据库的专用接口,以及面向专用文件系统的接口,可以实现对各种空间数据存储的管理。

空间数据库引擎处于空间数据库系统的核心位置。它实现了空间数据和空间操作的抽象,使得客户程序与网络应用程序的开发者不必关心空间数据的存储格式以及空间操作的实现方法。开发者可以直接利用系统定义的点、线、面等几何对象,使用系统提供的GSQL语言来进行数据库查询和维护,使用符合OpenGIS规范的各种空间操作进行空间分析。

为支持空间数据库引擎的客户端应用开发,系统配备了两级接口,即引擎接口和应用接口,以C++类库的形式提供了面向对象的应用开发接口。为了实现客户端和空间数据库引擎的通信,SDB系统设计了一套会话层通信协议。

相关文档
最新文档