(计算机软件与理论专业论文)组件式地理信息系统研究与应用.pdf_第1页
(计算机软件与理论专业论文)组件式地理信息系统研究与应用.pdf_第2页
(计算机软件与理论专业论文)组件式地理信息系统研究与应用.pdf_第3页
(计算机软件与理论专业论文)组件式地理信息系统研究与应用.pdf_第4页
(计算机软件与理论专业论文)组件式地理信息系统研究与应用.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机软件与理论专业论文)组件式地理信息系统研究与应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

哈尔滨工程大学硕士学位论文 摘要 组件式地理信息系统( 简称组件g i s ) 是适应软件组件化潮流的新一代 地理信息系统。微软组件对象模型对于软件工程产生了巨大的影响,变革了 传统的软件开发方式。将其应用于g i s 软件开发可以克服传统软件开发过程 中的诸多问题,具有无可比拟的优点。 在了解g i s 的基本理论及微软的组件对象模型的基础上,本文采用u m l 建模的方法对于g i s 系统特别是数据库部分进行了建模。很好的解决了数据 库建模过程中所遇到的两个关键阔题,空间矢量数据的关系化及对象模型到 关系模型的转换,并建立了完整的系统模型及空间类结构图。将当前流行的 基于组件的软件开发方法( c b d ) 应用于g i s 的开发,在需求分析、领域分 析及系统集成等方面依据组件式开发的特点提出了自己的基于组件的g i s 软 件开发过程模型。最后综合应用前面这些理论结果,详细论述了自主研发的 g i s 系统,包括矢量绘图系统和数据库系统。并介绍了地图显示组件的开发 方法和过程。 关键词:地理信息系统:组件对象模型;软件工程;u m l 建模;a t l 哈尔滨丁程人学硕上学位论文 a b s t t a c t c o m p o n e n tb a s e dg e o g r a p h i ci n f o r m a t i o ns y s t e m ( c o m 6 i s ) i san e w g e n e r a t i o ng i sw h i c hf i tt h et i d eo fc o m d o n e n t l i z a t i o n t h ec o m p o n e n t o b j e c tm o d e l ( c o m ) o fm i r c o s o f th a sm a k eg t e a tc o m p a c to nt h es o f t w a r e e n g i n e e r i n ga n dt r a n s f o r m e dt h et r a d i t i o n a ls o f t w a r ed e v e l o p m e n t p a t t e r n a p p i c a t i o no fc o mo nt h eg i ss o f t w a r ed e v e l o p m e n tc a n o v e r c o m em a n yp r o b l e m si nt h et t a d i t i o n a ls o f t w a r ed e v e l o p m e n ta n dh a s in c o m p a r a b l ea d v a n t a g e s a f t e ri n t r o d u c i n gt h eb a s i ct h e o r yo fg i sa n dc o m ,t h i sp a p e ru s e s t h em o d e li n gm e t h o db a s e do nu m lt ob u i1dt h eg i sm o d e la n ds p e c i a l l y t ob u il dd a t a b a s em o d e l t h e r ea r et w ok e yp r o b l e m si nt h ed a t a b a s e m o d e l i n gp r o c e s s e s ,w h i c ha r e ,b u i l d i n gr e l a t i o n s h i pf o rs p a c i a l v e c t o rd a t aa n dc h a n g i n gf r o mo b j e c tm o d e l t or e a t i o nm o d e l t h e m o d e li n gm e t h o di nt h i sp a p e rc a nr e s o l v et h e s et w op r o b l e m sw e l la n d b u i i dac o m p l e t es y s t e mm o d e la n ds t r u c t u r ed i a g r a mo fs p a c i a lc l a s s e s t h ep o p u la rm e t h o do fc o m p o n e n tb a s e ds o f t w a r ed e v e l o p m e n t ( c b d ) i s a p p l i e do ng i si nt h i sp a p e r a c c o r d i n gt ot h ep e c u l i a r i t yo fc o m p o n e n t s o f t w a r ed e v e l o p m e n ti nr e q u i r e m e n ta n a l y s i sa n df i e l da n a l y s i sa n d s y s t mi n t e g r a ti o n ,an e wc o m p o n e n tb a s e dg i ss o f t w a r ed e v e l o p m e n t m o d e li sp r e s e n t e d f i n a l l y ,w it ht h e s et h e o r yr e s u t s ,ag i ss o f t w a r e d e v e l o pp r o c e s si sf o r m u l a t e de x h a u s i r e y t h i ss y s t e m c o n t a ir l sv e c t o r d r a w i n gs u b s y s t e m a n dd a t a b a s es u bs y s t e m t h ed e v e l o p m e n tm e t h o da n d p r o c e s so fac o m p o n e n to fs h o w i n gm a p isp r e s e n t e d k e y w o r d :g i s :c o m ;s o f t w a r ee n g i n e e r i n g :u m l ;a t l 哈尔滨工程大学硕 :学位论文 第1 章绪论 1 1 地理信息系统基本概念 地理信息系统( g e o g r a p h i ci n f o r m a t i o ns y s t e m ,g i s ) 是集计算机科学、 空间科学、信息科学等为一体的多学科结合的新兴边缘科学。要理解什么是 g i s ,首先需要对g i s 的一些基本概念进行了解,包括地理信息及地理信息 系统等知识。 1 1 1 地理信息 地理信息是指与所研究的地理实体的空间地理分布有关的信息,包括数 量、质量、空间位置、空问分布特征、联系和规律等,它是对表达地理特征 与地理现象之间关系的地理数据的解释。而地理数据则是各种地理特征和现 象间关系的符号化表示,包括空间位置、属性特征及时域特征三部分。从地 理实体到地理数据,再到地理信息的发展,反映了人类认识的巨大飞跃。地 理信息的独特特征为: 1 ) 空间分布性 地理信息具有空间定位的特点,先定位后定性,并在区域上表现出分布 性的特点,其属性表现为多层次性。 2 ) 数据量大 地理信息既有空间特征,又有属性特征,另外地理信息还随着时间的变 化而变化,具有时| 自j 特征,因此其数据量很大。尤其是随着全球对地观测计 划的不断发展,我们每天都可以获得上万亿兆的关于地球资源,环境特征的 数据,这必然对数据处理与分析带来巨大压力。 3 ) 信息载体的多样性 描述地理实体的文字、数字、地图和影像等均可作为地理信息载体,而 纸质、磁盘、光盘等可作为物理介质载体。对于地图来说,它不仅是信息的 载体,也是信息的传播媒介。 1 1 2 地理信息系统 地理信息系统是2 0 世纪6 0 年代开始迅速发展起来的地理学研究技术, 啃尔滨:【程大学硕士学位论文 是多种学科交叉的产物。它是在计算机硬件、软件系统的支持下,以地理空 间数据库为基础,采集、储存、管理、分析和描述整个或部分地球表面( 包 括大气层在内) 与空间和地理分布有关的数据,为地理研究和地理决策服务 的空间信息系统。地理信息系统处理、管理的对象是多种地理空间实体数据 及其关系,包括空间定位数据、图形数据、遥感图像数据、属性数据等。用 于分析和处理在一定地理区域内分布的各种现象和过程,解决复杂的规划、 决策和管理问题n ,。 地理信息系统具有以下三个方面的特征: 1 ) 具有采集、管理、分析和输出多种地理空间信息的能力,具有空间性 和动态性; 2 ) 以地理研究和地理决策为目的,以地理模型方法为手段,具有区域空 间分析、多要素综合分析和动态预测能力,产生高层次的地理信息: 3 ) 由计算机系统支持进行空间地理数据管理,并由计算机程序模拟常规 的或专j 、j 的地理分析方法,作用于空问数据,产生有用信息,完成人类难以 完成的任务。 从外部来看,地理信息系统表现为计算机软硬件系统,而其内涵是由计 算机程序和地理数据组织而成的地理空间信息模型,是一个逻辑缩小的、高 度信息化的地理系统。 地理信息系统按用途和目的可分为基础信息系统( 用于国家和省级空间 数据基础设施和各种专、l k 地理信息系统) 、资源环境信息系统、城市地理信息 系统( 包括城市勘察、城市规划、城市管线、环卫和环保、土地管理、交通 等信息系统) 、土地信息系统以及其它各种专业地理信息系统。地理信息系统 按研究内容的不同可以分为综合性的与专题性的。同级的各种专题应用系统 集中起来,可以构成相应地域同级的区域综合信息系统。因此,在设计、建 立应用系统时应统一一规划、以减少重复浪费,提高数据的共享程度和实用性。 1 1 3 地理信息系统的组成 g i s 以其混合数据结构和独特的地理空问分析功能独树一帜。可以这样 通俗地来认识g s :g i s = c a d + d a t a b a s e + s p a t i a lo p e r a t i o n 。 硬件系统 2 哈尔滨上程大学硕七学位论文 地理信息系统的硬件系统一般由计算机与一些外围设备组成。计算机是 硬件系统的核心,用于数据和信息的处理、加工与分析。外围设备包括数据 的采集设备,如数字化仪、解析测图仪、扫描仪、测绘仪器及手写笔等。数 字化仪用来将地图转换成数字形式( 矢量格式) ,扫描仪用来扫描输入栅格数 据,或再经计算机矢量化处理后成为数字形式。解析测图仪可从遥感影像匕 采集空间数据。数据可以通过以上这些外围设备以计算机联机方式输入,也 可由数字测图部门直接提供。g i s 的输出和存储设备也是标准的计算机外围 设备。输出设备有绘图仪及高分辨率显示器等,而大容量硬盘、光盘则可用 来存储大量的空间地理数据。 软件系统 g i s 软件系统是g i s 的核心组成,它直接关系到g i s 的功能。按照g i s 对数据的采集、加工、管理、分析和表达,可将g i s 软件系统中与用户有关 的软件分为五个大子系统,即数据的输入和转换、图形及文本编辑,数据存 储与管理,空间查询与分析及数据输如与表达“,如图1 1 所示: 图1 1g i s 软件系统构成 1 ) 数据输入与转换子系统 g i s 的数据输入与转换子系统是把现有的外部数据( 如现有的地图、外 部测绘结果、遥感影像和文字资料等) 转换成与计算机兼容的便于g i s 系统 处理的内部格式的过程。通常,一个比较成熟的g i s 系统的数据输入与转换 功能可由一个单独的基础软件提供,也可直接包含在主操作系统中。此外, 在g i s 的数据输入过程中,可能还要使用包括数据库管理软件、计算机图形 处理包、c a d 类软件及图像处理软件等等。 2 ) 图形及文本编辑子系统 g i s 的图形编辑功能是最常用到的功能之一,无论在地图数据的输入过 程中还是在以后的编辑过程中都要经常用到。现在的g i s 软件一般都具有较 3 哈尔滨工程大学硕士学位论文 强的图形编辑功能,而且有些还提供了特色功能,例如超强的图形编辑捕捉 功能,有效提高了地图编辑的精度和速度m 。而文本编辑指的是属性数据的输 入与编辑,虽然也可在前述的数据输入与转换子系统中完成,但在图形编辑 系统中可直接参照图形输入数据,实现图形数据与属性数据的直接连接。 3 ) 空间数据存储与管理子系统 数据存储和管理涉及地理元素( 地物的点、线、面) 的位置、空间关系 以及属性数据如何构成和组织,使其便于计算机管理和系统用户理解等。空 间数据库的操作包括数据格式的选择与转换、数据查询及数据库连接操作等。 4 ) 空间查询与分析子系统 在g i s 的应用过程中,你可能会提出这样一些问题:距某点最近的加油 站的距离是多少? 在距某条河两岸5 0 0 米的沿线范围内的造纸厂数目有多 少? 年营业额超过l ,0 0 0 万元的公司的地理分布位置在哪里这些查询问 题都是g i s 系统独有的。 g i s 的空间查询与分析语言类似于数据库管理系统中的常用的s q l 查询 语言,它是对s q l 语言的补充和扩展,使之支持空间数据库。空间查询与分 析包括实体对象的属性及空间关系的查询分析。在g i s 系统中,空间查询与 分析一般是对一幅或多幅图件及其属性数据进行分析运算和指标量测,以一 幅或多幅新生成的图件作为分析结果。 5 ) 数据输出与表达子系统 g i s 的数据输出与表达是指将g i s 原始数据或经用户转换、查询、分析 及重新组织后的数据以地图、属性表格、统计图及文字等多种形式展示给用 户。其输出方式包括在计算机屏幕上显示、用绘图仪输出、经网络传输给其 他用户或将结果存储于磁盘或光盘中。 图i 2 即展示了地理信息系统基本组成及数据流程。 4 哈尔滨工程大学硕士学位论文 图1 2 地理信息系统基本组成和数据流程 1 1 4 地理信息系统的主要研究内容 1 ) 输入。地理数据如何有效地输入到g i s 中是一项琐碎、费时、代价昂 贵的任务,大多数的地理数据是从低质地图输入g i s 。常用的方法是数字化 和扫描。数字化的主要问题是低效率和高代价;扫描输入则面临另一个问题, 扫描得到的栅格数据如何变换成g i s 数据库通常要求的点、线、面、拓扑关 系属性等形式m 。就这一领域目前的研究进展而言,全自动的智能地图识别短 期内没有实现的可能。因而,交互式的地图识别是矢量化方法的一种较为现 实的途径,市场上已有多种交互式矢量化软件出售。 目前在g i s 的输八方面遥感数据正变得越来越重要,但通过对遥感图像 者一 哈尔滨1 程大学硕士学位论文 的解释来采集和编译地理信息则较为困难。因此,g i s 中开始大量融入图像 处理技术来解决这问题。 2 ) 存储。g i s 中的数据分为栅格数据和矢量数据两大类,如何在计算机 中有效存储和管理这两类数据是g i s 的基本问题。在计算机高速发展的今天, 尽管微机的硬盘容量己达到g b 级,但计算机的存储器对灵活、高效地处理地 图这类对象仍是不够的。地理数据存储是g i s 中最低层和最基本的技术,它 直接影响到其他高层功能的实现效率,从而影响整个g i s 的性能。 3 ) 地理数据的操作和分析。g i s 中对数据的操作提供了对地理数据有效 管理的手段。对图形数据( 点、线、面) 和属性数据的增加、删除、修改等基 本操作大多可借鉴c a d 和通用数据库中的成熟技术。有所不同的是g i s 中图 形数据与属性数据紧密结合在一起,形成对地物的描述,对其中一类数据的 操作势必影响到与之相关的另一类数据,因而操作带来的数据一致性和操作 效率问题是g i s 数据操作的主要问题。 地理数据的分析功能,即空间分析,是g i s 得以广泛应用的重要原因之 一。通过g i s 提供的空间分析功能,用户可以从己知的地理数据中得出隐含 的重要结论,这对于许多应用领域是至关重要的。 4 ) 输出。将用户查询的结果或是数据分析的结果以合适的形式输出是 6 i s 问题求解过程的最后一道工序。这方面的技术主要包括:数据校证、编 辑、图形整饰、误差消除、坐标变换、出版印刷等。 1 2 地理信息系统的发展现状和趋势 g i s 始于6 0 年代的加拿大与美国,尔后各国相继投入了大量的研究工作。 自8 0 年代末以来,特别是随着计算机技术的飞速发展,地理信息的处理、分 析手段日臻成熟,己广泛地应用于环境、资源、石油、电力、土地、交通、 公安、急救、航空、市政管理、城市规划、经济咨询、灾害损失预测、投资 评价、政府管理和军事等与地理坐标相关的几乎所有领域。但是,随着信息 技术尤其是计算机技术的快速发展,数字地球( d i g i t a le a r t h ) 的提出与实施, 以及g i s 的应用的不断深入和拓广,g i s 正处于急剧变化与发展之中,并对 g i s 提出了许多新的要求。 6 哈尔滨工程大学硕士学位论文 1 2 1 地理信息系统的发展现状 目前世界上应用的g i s 系统软件大致分为三个层次: 基础软件平台,以计算机硬件和系统软件为基础,是衡量一个国家 g i s 研究与发展和软件水平的标志,是g i s 软件产业首先要发展的; 应用软件开发平台; 应用软件系统; 其中应用软件开发平台是我们平时常用的,已达数百种,它们设计的思 路不同,功能各异,但是大都可以进行二次开发。国外较著名的有a r c f l n f o , g e o m e d i a ,m a p l n f o 等,国内较著名的有m a p g i s ,g e o s t a r 和s u p e r m a p 等。 在空间数据库管理方面,目前存在几种模式:一种是g 1 s 软件商自行开 发面向对象数据库管理系统,如l a s e rs c a n 公司的g a d ,或是在关系数据 库管理系统基础上开发的空间数据管理模块,如e r s i 公司的s d e ;另一种 模式是数据库软件商直接在关系数据库管理系统之上扩展的空间数据管理功 能,如o r a c l e 、i n f o r m i x 等软件的可选模块都己具有管理空间数据的能力。 在开发语苦和开发模式方面,对g i s 软件影响较为深刻的技术是组件对 象模型。软件厂商己由原来向用户提供系统转为提供组件。用户则可以根据 组件自行组装成一个系统,还可以根据需要开发自己的组件。一些大的g i s 软件商可以向用户提供相应的控件,如e s r i 的m a p o b j e c t 、m a p l n f o 的m a p x 、 b l u e m a r b l e 的g e o o b j e c t ,以及国内如武汉测绘科技大学的g e o s t a r 、中国地 质大学的m a p g i s 、超图公司的s u p e r m a p 和赣夕公司的m a p e n g i n e 等等。 1 2 2 地理信息系统的发展趋势 目前进行的研究主要有以下几个方向:空间数据库系统及空间查询处理、 三维地理信息系统( 3 d g i s ) 基础研究、组件式地理信息系统的研究与应用、 空蚓数据模型及空间数据体系结构、g p s 与g i s 的结合、g i s 应用技术、数 字地球对象模型基础研究。在可预见的未来,o i s 的发展趋势可归纳如下“: 1 ) g i s 的硬件正向着廉价、体积小、高效、功能强和标准化的方向发展。 2 ) 地理信息系统要处理的数据量和数据格式的种类大大增加,g i s 软件 的功能越来越强。 3 ) 地理信息系统的用户越来越多,应用面越来越广,从个人系统向企业 7 哈尔滨工程人学硕士学位论文 级系统发展,从桌面系统向客户机服务器和网络化方向发展。目前,在国内 外己经有大量的研究人员在从事w e b g i s 研究工作。 4 ) 组件化的g i s 将得到更大的发展。随着g i s 软件的功能的不断强大, 其软件规模和复杂性也在不断增强,组件化g i s 基于标准的组件式g i s 平台, 各组件之间不仅能自由、灵活地重组,而且具有可视化的界面和标准的接口, 将在g i s 的软件应用中发挥更大的作用。 5 ) 空间数据库系统是g i s 未来的发展方向。空间数据库系统采用单一 的数据模型管理空间数据和属性数据,它是数据库技术与计算机空间图形技 术相结合的产物。空间数据库管理系统( s d b m s ) 以空问数据为研究对象, 空间数据库中不仅存贮地理要素的位置、形状和大小的坐标信息,也存贮地 理要素之间的拓扑关系。 6 ) 随着3 dg i s 技术的发展,地理信息系统将从二维空间走向多维空间, 信息处理能力将会大大增强。 7 ) g i s 与r s 、g p s 和专家系统( e x p e r ts y s t e m ,简称e s ) 相结合将大 大拓展地理信息系统的应用范围。 8 ) g i s 的智能化与建立空问决策支持系统是g i s 应用软件的发展趋势。 1 3 组件式g i s 1 3 1 产生背景 近年来,组件技术正变得越来越成熟,已深刻的影晌了软件开发方式。 在组件技术的概念模式下,软件系统可以被视为相互协同工作的对象集合, 其中每个对象都会提供特定的服务,发出特定的消息,并且以标准形式公布 出来,以便其他对象了解和调用。组件间的接口通过一种与平台无关的语言 i d l ( i n t e r l a c ed e f i n el a n g u a g e ) 来定义,接口是固定不变而且是与客户程序 二进制兼容的,使用者可以直接调用执行模块来获得对象提供的服务。也就 是蜕,在组件对象中增加新功能后,并不需要重新编译这个对象已有的客户 程序,甚至通过另外的接口增加新功能后,组件对象仍然继续支持旧的接1 2 1 。 这对于组件软件重用以及解决版本问题都是十分重要的。早期的类库,提供 的是源代码级的重用,只适用于比较小规模的开发形式;而组件则封装得更 加彻底,更易于使用,并且不限于c + + 之类的语言,可以在各种开发语言和 s 4 哈尔滨工程大学硕士学位论文 开发环境中使用。 传统g i s 开发有诸多缺点,主要是: 1 ) 采用专门设计的开发语言。例如,a r c i n f o 采用a m l ,加上庞大的 函数、命令库,使得普通的开发技术人员难以掌握,延长了应用产品的开发 周期。 2 ) 空间数据管理和数据库管理系统通常均壹接由g i s 厂商提供,这也 是传统g i s 软件价格昂贵的个重要原因。这种情况一方面大大提高了应用 开发与系统建设的成本,另4 方面也限制了用户根据应用需要和各种数据库 t 具的优劣,选择利用数据库工具的机会。 3 ) 传统g i s 系统与m i s 系统和多媒体开发工具的衔接都不甚方便,其 数据交换通过d d e 等间接方式实现,影响了m 1 s 系统对空间地理信息的利 用。 由于组件式技术的这些优点,因此将组件式技术结合面向对象技术应用 丁:g i s 歼发中必定会为传统的g i s 带米全新的开发方式,为g i s 所面临的多 种问题提供全新的解决思路。这种新型的地理信息系统我们称之为组件式 g i s ,它基于标准的组件式平台,各个组件之间不仅可以进行自由、灵活的 重组,而且具有可视化的界面和使用方便的标准接口。当今流行的组件式平 台主要有m i c r o s o f t 的c o m ( c o m p o n e n to b j e c tm o d e l ,组件对象模型) d c o m ( d i s t r i b u t e dc o m p o n e m o b j e c tm o d e l ,分布式组件对象模型) 和o m g 的 c o r b a ( c o m m o n 0 b j e c tr e q u e s tb r o k e r a r c h i t e c t u r e ,公共对象请求代理体 系结构) ,而c o m d c o m 占据市场领导地位。基于c o m d c o m 微软又推 出了a c t i v e x 技术,a c t i v e x 控件是当今可视化程序设计中应用最为广泛的标 准组件,新一代的组件式g i s 也大都是a c t i v e x 控件或者其前身o l e 控件。 我们将使用c o m j d c o m 标准开发出来的地理信息系统软件称之为c o m g i s ( 组件式地理信息系统) 。c o m g i s 的基本思想是把g i s 的各大功能模块划分 为几个控件,每个控件完成不同的功能。各个g i s 控件之间,以及g i s 控 件与其它非g i s 控件之间,可以方便地通过可视化的软件开发工具集成起来, 形成最终的g 1 s 应用。控件如同堆各式各样的积木,他们分别实现不同的 功能( 包括g i s 和非g i s 功能) ,根据需要把实现各种功能的“积木”搭建 起来,就构成应用系统。 9 哈尔滨工程大学硕士学位论文 1 3 2 组件式g i s 的优点 使用组件技术进行g i s 丌发可以完全避免传统开发方式所面临的困难。 并且所开发出的系统具有极大的优越性: 1 ) 小巧灵活、价格便宜 由于传统g i s 结构的封闭性,往往使得软件本身变得越来越庞大;不同 系统的交互性差,系统的开发难度大。在组件模型下,各组件都集中地实现 与自己最紧密相关的系统功能,用户可以根据实际需要选择所需控件,最大 限度地降低r 用户的经济负担。组件化的g 1 s 平台集中提供空间数据管理能 力,并且能以灵活的方式与数据库系统连接。在保证功能的前提下,系统表 现得小巧灵活,而其价格仅是传统g i s 开发工具的十分之一,甚至更少。这 样,用户便能以较好的性能价格比获得或开发g i s 应用系统。 2 ) 无须专门g i s 开发语言 传统g i s 往往具有独立的二次开发语言,不仅学习困难,而且开发往往 受到限制,难以处理复杂问题。而组件式g 1 s 建立在严格的标准之上,刁i 需 要额外的二次开发语言,只需按照通用的组件标准( c o m d c o m 或c o r b a ) 开发接口实现g i s 的基本功能函数。这有利于减轻g i s 软件开发者的负担, 而且增强了g i s 软件的可扩展性。 3 ) 强大的g i s 功能 新的g i s 组件都是基于3 2 位系统平台的,采用进程内直接调用的形式, 所以无论是管理大量数据的能力还是处理速度方面均不比传统g i s 软件逊 色。小小的g i s 组件完全能提供拼接、裁剪、叠合、缓冲区等空间处理能力 和丰富的空间查询与分析能力。 4 ) 二次开发简捷,町直接嵌入m i s 开发环境 对于广大开发人员来讲,就可以自由选用他们熟悉的开发工具进行二次 开发。而且g 1 s 组件提供的a p 形式非常接近m i s 工具的模式,开发人员可 以像管理数据库表一样熟练地管理地图等空间数据,无须对开发人员进行特 殊的培训。 在组件式技术的使用过程中,人们逐渐认识到这一技术背后的实质性内 容和它在软件开发中所扮演的重要角色。组件技术将以前所未有的方式提高 1 0 哈尔滨工程大学硕士学位论文 软件产业的生产效率,这一点已逐步成为软件开发人员的共识。传统的 c l i e n t s e r v e r 结构、群件、中间件等大型软件系统的构成形式,都将在组件 的基础上重新构造。由于组件技术的出现,软件产业的形式也将会有所改变。 大量组件生产商会涌现出来,并推出各具特色的组件产品;软件集成商则利 用适当的组件快速生产出用户需要的某些应用系统;大而全的通用产品将逐 步减少:很多相对较为专业,但用途广泛的软件都将以组件的形式组装和扩 散到一般的软件产品中。 g i s 软件也像其他软件一样,以组件式技术为契机已经或正在发生着革 命性的变化。由过去厂家提供了全部系统或者具有二次开发功能的软件,过 渡到提供组件由用户自己再开发的方向上来。组件式g i s 已成为当今g i s 发 展的潮流。 1 4 课题的内容、目的及意义 地理信息系统作为3 s ( g p s ,r s ,g i s ) 的技术基础,随着人们对空间 信息需求的增长,正在得到日益广泛的应用。然而国外成型的商用地理信息 系统软件价格昂贵且各自存在缺陷,利用g 1 s 专业开发工具进行g i s 系统开 发时,除了前面提到的开发方式的不足外还存在着一些不可克服的缺点,如 系统可扩展性差、规模较为庞大且对软硬件要求高、没有系统自主版权等。 而组件式g i s 系统可较好的解决以上问题,因此探索组件式g i s 系统开发具 有重大意义。 本课题来源于黑龙江省专项资金资助项目组件式地理信息系统平台 的开发与应用。主要目的是探索具有自主知识产权的地理信息系统平台的开 发方法。一般来说,对于一些大型的g i s 系统开发项目,如一个地区的综合 信息管理系统等,因为其图形平台、容量、可靠性等各方面的要求,一般易 于选择己经成熟的g i s 系统开发工具来组织开发。而对于一些小型的g i s 系 统,特别是一些定位导航、数据管理、决策研究、辅助设计等具体应用为主 的系统,或者在某个行业中需要推广使用的实用系统,因为这些系统对g i s 的功能要求不是很高,实现基本的g i s 功能即可。可考虑采用自主研发的道 路,在开发的过程中,不断地探索和完善开发技术,开发出具有独立自主版 权的软件产品。 哈尔滨_ 程大学硕士学位论文 1 5 本文内容及章节安排 开发自主知识产权的地理信息系统软件是一种积极的探索和有益的尝 试,但同时也具有相当的难度。本文首先论述了开发所必须的理论研究,并 在此基础上详细介绍了系统开发所作的工作。 第二章介绍了课题的相关背景知识,微软的组件对象模型基本理论。理 解这些内容是进行组件开发的基础,最后探讨了本课题中所使用到的基于 c o m 的a c t i v e x 技术。 第三章采用统一建模语言u m l 建立了g i s 数据库及系统整体模型,建 立了较完整的系统模型,并解决了数据库建模过程中应重点解决的问题。 第四章针对当前基于组件的软件开发方法c b d ,在g i s 方向进行了具体 应用。将c b d 应用于g i s 软件开发,提出了基于组件的g i s 软件开发模型。 第五章首先通过对于多个g i s 平台的研究结果提出了一个通用的二维 g i s 系统应具有的结构,然后详细论述了所开发的系统及采用a t l 设计的地 图显示组件。 最后,对全文进行了总结。 1 2 哈尔滨 程大学硕士学位论文 第2 章组件对象模型c o m c o m 的全称为c o m p o n e n to b j e c tm o d e l 组件对象模型,是微软于 1 9 9 3 年提出的一种二进制和网络标准,在这种标准的基础上可以创建一种以 组件为发布单元的对象模型,使模型中各个组件按照统一的方式进行通讯和 交互。c o m 不仅为组件的交互提供了规范,而且也提供了组件实现交互的环 境。这种交互规范是不依赖于特定的实现语言的,即不管组件是采用何种语 言来开发的以及相互交互的组件位于何种操作系统中( 但是系统必须支持 c o m ) ,都可以完成他们之间的交互。 2 1 为什么要使用c o m 随着各种计算机应用技术的发展,软件在现代社会的运行中发挥了越来 越重要的作用,同时应用软件和系统软件的规模也越来越庞大,这就向开发 人员提出了新的挑战。在各种传统的编程模式存在各种各样的缺陷和面向对 象方法也无能为力的情况下,人们提出了基于组件的程序设计方法。 2 】1 软件业面临的问题 随着计算机硬件和软件的飞速发展,计算机应用的功能愈来愈强大,实 现的方式也更加灵活,软件应用的平台也可以从功能强大的i n t e r n e t 服务器 到掌上电脑、手机等,开发工具更是多种多样。对于这些,我们在享受其带 来的方便之余也不得不面临如下一些问题: 现代软件应用规模大而复杂,开发周期长,维护困难而且成本高, 扩展性差; 软件中都集成了很多的功能,这些功能很难单独的升级和替换; 各个应用之间不能集成,一个应用的数据和功能不能为另一个使用, 即使它们都使用同样的语言编写运行在同一个环境下; 应用之间交互的方式不统一,某些服务可以位于应用的同一个进程中, 也可能位于同一台机器另外的进程中,当然也可能是由网络中其他的服务器 进程来提供的,这就为开发带来了非常大的困难,开发人员必须分别处理这 些交互的方式。 1 3 哈尔滨工程大学硕士学位论文 ;= ;罱= = 鼍= 妻专;鼍= 罱= 鼍= ;= = = ;= = = = = = = ;= ;= = = = = = := = ;= = = 2 1 2 人们尝试过的解决方法 要解决这些问题,首先想到的是把庞大的应用程序分成多个模块,所有 模块保持一定的功能独立性,这些模块单独开发,然后再组合到一起得到完 整的应用系统。最初,开发人员使用函数库作为这些功能模块开发的主要形 式,各种功能模块通过一定的应用程序接口a p i ( a p p l i c a t i o np r o g r a m m i n 2 i n t e r f a c e ) 来实现其功能。在使用的时候只需要链接这些库,就可以调用其中 的函数。下图就说明了这样的个软件结构。 图2 1通过a p i 来访问不同的软件模块 我们经常使用的标准a p i 的例子包括用于执行各种w i n d o w s 系统功能的 w i n 3 2 a p i 和访问数据库所用到的o d b c a p i 等。在后者中不同的数据库厂 商都提供了自己的驱动程序来实现标准的a p i 函数。 这种使用a p i 函数的方法具有许多的缺陷,其中包括:a p i 的更新问题, 开发人员对于a p i 的任何改动都有破坏现有整个应用程序的可能;模块之间 的通信问题,不同开发人员创建的软件模块很难在这种方式下形成有效的交 瓦和通信;另外a p i 的开发语言也影响了访问这些a p i 的方式,比如使用 c + + 语言开发的a p i ,我们在v b 中调用就相当麻烦。 面向对象程序设计方法作为传统结构化程序设计方法的替代和发展,已 经获得了广泛的应用,它使开发人员可以按照现实世界中思考问题的方式来 编写应用程序。但是,仍然存在极大的缺点,不适应大规模的软件开发。 面向对象设计方法的重要特性就是重用性,它允许开发者在不同的工程 中实现代码的共享。在程序开发的时候,对软件的不同功能和结构进行抽象, 实现一系列的对象,由这些对象来提供方法和数据来实现整个应用程序。并 且提供了继承等机制来对对象的功能进行扩展。但是这种重用是低层次( 代 码) 的重用,它要求使用对象的客户程序必须和对象使用同样的编程语言, 比如j a v a 类库只能由j a v a 程序中使用。并且一旦类库的版本得到升级的话, 1 4 哈尔滨工稃大学硕士学位论文 整个的应用程序必须重新编译。 2 1 3 组件化程序设计 针对日益复杂的分布式应用,简单代码重用的面向对象程序设计方法已 经力不从心,这种情况下出现了一种在更高层次上实现重用的设计思想 组件化程序设计。这种编程思想将应用程序分成不同的模块,每个模块保持 一定的独立性,相互之间通过接口来完成,模块不再是简单的代码集合,而 是一个自给自足的组件。这些组件可以单独开发、单独编译,甚至单独测试。 最终他们组合到一起就可以实现整个应用程序的功能。与其他的程序设计方 法相比,从技术角度上来说组件式开发具有以下一些优点: 1 ) 使软件的升级更加灵活:当系统的外部软硬件环境发生变化或者用户 需求更改之后,并不需要对整个应用程序的所有组件进行重新开发,只需要 修改或替换受影响的组件即可,在保持原有接口的情况下,可以不影响其他 组件的使用。 2 ) 适应业务规则的变化:在进行程序开发的时候,涉及到业务处理的规 则会不断的发生变化,这样我们可以将不同的业务规则放置在组件中实现。 一旦业务发生变化,只需要发布新的组件即可,同时可以将程序的错误限制 在组件的内部,使程序的调试和测试更加方便。 3 ) 实现了二进制代码的重用:组件的重用是在二进制代码基础上的,可 以实现一次编写,一次编译,到处运行。任何程序都可以根据自己的需要使 用公用的组件。 组件化程序设计不同于传统的结构化程序设计和面向对象程序设计,它 是位于两者之上的,更加注重系统的全局。但是在具体实现某一个组件时, 我们依然需要结构化程序设计和面向对象程序设计作为基础,尤其是后者。 2 2c o m 的结构和特性 在c o m 规范中,c o m 对象和c o m 接口是两个最为重要的概念”。它 们直接的关系也是最为密切的,c o m 对象依靠相应的c o m 接口对外提供服 务,并且把服务功能的外部实现封装起来:而c o m 接口只是一些成员函数 的集合,这些成员函数的具体实现是依靠相应的c o m 对象来完成的。c o m 对象可以实现一个或多个c o m 接口,并且c o m 对象还要能够实现接口查询、 1 5 哈尔滨工程大学硕士学位论文 引用计数等管理功能。 2 2 1 c o m 对象与c o m 接口 c o m 是面向对象的软件模型,因而对象是它的一个基本因素之一。c o m 对象不同于c + + 中类的概念,对象是某个类的一个实例,而类则是一组相关 的数据和功能组合在一起的一个定义。使用对象的应用( 或另一个对象) 称 为客户,有时也称为对象的用户。 c o m 规范的核心内容是c o m 接口的定义。从实现的角度来讲,c o m 接口就是包含了一系列函数的数据结构,通过这一数据结构,客户代码可以 调用对象的功能,其中的函数也被称为接口成员函数。按照习惯,接口名常 以“i ”为前缀,例如“i u n k n o w n ”。对象通过接口成员函数为客户提供各种 形式的服务。 在c o m 模型中,对象本身对于客户来说是不可见的,客户请求服务时, 只能通过接口进行。客户通过一个唯一标识符来获得接口的指针,再通过接 口指针,客户就可以调用其相应的成员函数。至于具体功能如何实现,则完 全由对象的接口内部实现。所以,在c o m 模型中,对象通过接口为客户提 供服务,接口是它与外界进行交互的唯一途径,而对于客户来说,他只与接 口打交道。因此,封装特性是c o m 对象的基本特性。 一般来说,接口是不变的,只要客户期望的接口在组件对象中还存在, 他就可以使用该接口所提供的服务。对象可以支持多个接口,因此对组件对 象的升级可以通过增加接口的办法实现,这样得到的新接口可以不影响老接 口的使用。新客户可使用新增的接口,老客户可以在不更新代码的情况下继 续使用老的接口。 为了避免冲突,客户采用一个1 2 8 比特位的全局唯一标识符g u i d ( g l o b a lu n i q u ei d e n t i f i e r ) 来标识c o m 对象及其接口w 。g u i d 是一个随机 数,同i p 地址的标识方法不同,它不是由专门的机构来统一产生的,而是由 系统根据空间( 比如网卡的地址) 和时间来随机产生的。由于其特殊的产生 方法,几乎完全可以保证一个标识对象的全球唯一性。特别的,将标识c o m 对象的g u i d 称为c l s i d ( c l a s si d e n t i f i e r ,类标识符或类i d ) ,将标识接口 的g u i d 称为l i d ( i n t e r f a c ei d e n t i f i e r ,接口标识符) 。客户程序通过c l s i d 1 6 哈尔滨工程大学硕士学位论文 来进行对象的创建和初始化工作,通过l i d 来查询接口,进而获得接口指针。 在使用c o m 接口时,客户程序得到一个指向接口数据结构的指针,这 一数据结构我们称为虚函数表( v i r t u a lf u n c t i o n t a b l e ,简称v t a b l e ) ,指向它的 指针称为p v t a b l e 。在v - t a b l e 中每一项为4 个字节的函数指针,分别与函数的 对象具体实现连接起来。通过这种方式,客户只要获得了接口指针,就可以 调用对象的实际功能了”。 对于一个接口来说虚函数表v t a b l e 是确定的,因此接口的成员函数个数 及先后顺序都是不变的,其中的成员函数指针的顺序和参数、返回值也是确 定的。而这些信息都是定义在二进制级别的,因此不管使用何种编程语言, 只要能够实现图2 2 所示的接口的内存结构就可以定义接口了。1 。 图2 2 接口的内存结构 2 2 2c o m 的特性 c o m 作为组件之间的通信接口标准,应用面向对象的思想,实现了组件 的二进制重用。与传统的程序设计实现相比,c o m 具有如下特性”1 : 1 ) 面向对象特性 c o m 是面向对象的规范。c o m 对象是其中的基本要素,c o m 组件为 c o m 对象提供了活动的空间,而c o m 对象以接口的形式提供服务。c o m 组件、c o m 对象和c o m 接口之间的相互关系如图2 3 所示。 ic o m 组件 磊 磊 l 午什 图2 3c o m 组件、c o m 对象和c o m 接口之间的相互关系 对象本身对于客户来讲是不可见的,完全通过接口的成员函数来提供服 1 7 哈尔滨工程大学硕士学饨论文 务的。客户请求服务时,只能通过接口来完成。首先客户根据c o m 对象的 c l s i d 来创建该对象,然后得到指向c o m 对象某个接口的指针。c o m 规范 中规定通过c o m 对象菜一个接口可以得到其他任意接口。客户可以通过刚 才得到的接口指针和某个己知接口的i i d 来获得另r 一个接口指针,再通过该 接口指针就可以调用其接口成员函数了。这样,c o m 就把组件功能的内部实 现完全封装在c o m 对象中,客户得到就只有接口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论