(通信与信息系统专业论文)基于组件式gis电子地图数据库的研究.pdf_第1页
(通信与信息系统专业论文)基于组件式gis电子地图数据库的研究.pdf_第2页
(通信与信息系统专业论文)基于组件式gis电子地图数据库的研究.pdf_第3页
(通信与信息系统专业论文)基于组件式gis电子地图数据库的研究.pdf_第4页
(通信与信息系统专业论文)基于组件式gis电子地图数据库的研究.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(通信与信息系统专业论文)基于组件式gis电子地图数据库的研究.pdf.pdf 免费下载

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

文档简介

摘要 电子地图数据库是智能车辆定位导航系统的基础,电子地图数据库为智能车 辆定位导航系统提供了强大的数据平台,系统各项功能的实现均依赖于对数据库 的访问及其相关操作。电子地图为智能车辆定位导航系统提供了一个存放和管理 导航信息的可视化载体,可以客观、形象地实现车辆定位和导航的功能。 本文在详细研究m a p i n f o 公司g i s 软件m a p i n f op r o f e s s i o n a l 的基础上,在组 件式g i s 的环境下对电子地图进行开发和制作,并利用该公司最新的组件技术 m a p x5 0 实现电子地图的显示及其相关操作。论文围绕o r a c l e 的对象关系数据 库技术o 船d es p a t i a l ,利用o r a c l es p a t i a l 技术与m a p i n f op r o f e s s i o n a l 软件相 结合,实现了对电子地图空间数据存储和管理,保证了空间数据和属性数据的一 体化存储和操作的一致性,并对相应的空间数据共享问题进行了初步的探讨,作 出相应的技术总结和展望。 关键词:c o m 组件式g i s 空间数据库 m a p x a b s t t a c t t h ed i s t a lm a pd a t a b a s ei st h eb a s eo ft h eh t e l l i g e n tv e r d el o t m ga n d n a v i g a t i o ns y s t e m ( i v l n s ) t h ed a t a b a s eb a c k g r o u n da p p l i 略t h ei v l n sf o rt h e c o m p r c h c n s w ed a mn e e d e d t h er e a l i z a t i o no ff i l n c t i o 璐o ft h es y s t e ma hd e p e n do n t h ea c c e 鼹m gt 0a n dr e l a t e do p e m t i o n so nt h ed a t a b a s e t h ed i g i t a lm 印r y 锄笛a v i s i b l ec a 玎i e rt os t o r ea n dm a n a g et h en a v i g a t i o nm f o r m a t i o nt h u si tc a nr e a l i z et h e v e h i c l el o c a t i n ga n dn a v i g a t i o nf u n c t i o ne x t c m a l l ya n dv i s u a l l y am e t h o dt 0m a k ead i g i t a lm a pw 舔i n m ) d u c e di nt h i sp a p e ra f t e rap a r t i c u l 缸 s t u d yo ft h e f t w a r em a p l n f op r o f e s s i o n a lf r o mm a p l n f o t h ea u t h o r a l i z e d f i i n c t i o 璐o f 嘶l a y m g 锄ds o m er e l a t e do p c r a f i o n so nt h ed i 西t a lm a p 吣i n gt h el a t e s t t e c h n o l o g yo ft h ec o m p e n e n tm a p x5 0 ht h ep a p e r , am e t h o dw 舔i n t r o d u c e dt 0s t o r e a n dm a n a g e s p a f i a ld a mj nd i 萄t a lm a pu s i n go b j e c t r e l a f i o nt e c h n o l o g yo f o r a c | e - - o r a c l es p a t i a lc o m b i n e dw i t hm a p l n f op r o f e s s i o n a l a tt h es a m et i m ea p r i m a r yd i s c u s so n t h es h a r i n go fs p a t i a ld a mw 勰d o n e t h ep a p e r p u te m p h a s i so nt h c & s c u 鼹i o no ft h ed e i g no fs p a t i a ld a t a b a s e 璐i n go r a c l es p a t i a la n dh o wt oc o n s t r u d s p a t j a ld a t a b a s e 、一t hc o m v e p e n d i n go nm eo ot e c h n o l o g yw i t ht h ef u l la d v 锄m g e o fo r a c l es p a t i a la u t h o r 坳“z c dt h ea c c e s s i n ga n dm 锄a g e m e n t0 fs p a t i a ld a mi n o r a c l es p a t i a lw i 也m a p xas c h e m eo fs t o r i n gd i 百t a lm a pd a mi no r a c l es p a a lw a s d e s c r i b e di nd e t a i l a tt h ee n ds o m e 鲫衄i n 争u p sa n dp r o s p e c t sw e i eg i 、,c n k e y w o r d :c o mc o m g i s o r a d es p a t i a l m a p x 卢明 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别力以标注和致谢巾所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一f 司工作的同志对本研究所做 的任何贡献均己在论文中做了明确的说明并表示了谢意。 中淆学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:薹e 玺叁日期型! ! ! 兰 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电了科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。 ( 保密的论文在解密后遵守此规定) 本人签名:差亡鑫叁 导师签名:未型兰 第一章绪论 1 1 问题的提出 借助全球定位系统( g l o b a lp o s i t i o ns y s t e m ,g p s ) 系统,电子地图可以形象 生动地显示车辆位置,并可以与现代通信技术相结合,实时、客观地提供一个区 段道路的交通状况,为车辆规划最佳行驶路线,为交通指挥中心调度车辆提供决 策支持。这些功能赖以实现的基础是一个庞大的数据库系统,可以说,数据是电 子地图的血液。数据同时也是g i s 项目中最昂贵的部分,一般占整个系统建设成 本的5 0 8 0 l n 。电子地图数据中具有时空特性的交通信息和地理信息系统 ( 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 s ,g i s ) 的空间数据具有基本的一致性,因此可以 在g i s 环境下对电子地图进行开发,g i s 空间数据库的管理体系也为电子地图数 据库的开发提供了参考。一般来说数据库的集合存放应遵循最小冗余度原则、应 用程序对数据资源的共享原则、数据独立性原则和统一管理原则【刁。对于电子地图 空间数据库,按照统一管理原则,则要求用一个软件统一管理g i s 数据。因此如 何实现电子地图空间数据和属性数据的一体化存储以及空间数据库在不同应用程 序问的共享成为电子数据库所要优先解决的问题。 1 2 国内外研究发展状况1 3 h 8 】 众所周知,数据库技术是影响g i s 发展的关键技术,g i s 的核心是空间数据库。 由于g i s 既要管理空间数据,也要管理传统上由关系数据库处理的属性数据,g i s 从诞生起,就与数据库技术密不可分。当前数据库产品主要有关系型、面向对象 型、对象关系型三类。关系型数据库有强大的关系理论支持,无疑是数据库产品 中最成熟的。采用关系数据库管理g i s 数据有两种方式:一种是利用关系型数据 库来存储属性数据,而由于空间数据的特殊性,则以文件形式存储空间数据。通 过在空间数据文件和关系数据库中的属性数据之间建立关联为基础来构建应用系 统。这种两类数据分别存储的方式适用于单机的地学领域应用。随着g i s 应用向 分布式的管理系统领域的转移,空间数据的文件管理模式在实现数据共享、网络 通信、并发控制及数据的安全恢复机制等方面出现了难以解决的问题。另一种是 采用将宅间数据也存储的到关系型数据库中,但需要设计复杂的“实体关系”模 型( e r 模型) ,并在数据库中存放大量的表来管理各类空间实体,这样做,首先 会增大系统的复杂性,其次,由于地理信息的空间数据和属性数据通常不在一张 z薹! :塑堡苎鱼! ! 皇些望垫塑壁箜堕塞 表中,因而会割裂逻辑上为一个整体的地理数据,难以保持地理信息的数据一致 性。面向对象数据库是面向对象思想和数据库技术结合的产物,但到目前为止它 还没有统一可行的标准,而且与关系数据库不兼容,因而作为非主流数据库产品, 面向对象数据库还难以应用于g i s 应用开发。对象关系型数据库( 0 r d b m s ) 采用折中的方案,通过扩展传统的关系数据库,在不改变关系数据库核心的基础 上,允许在s q l 环境中,从外部进行扩展或从内部嵌入以支持对复杂对象的存储 和管理,既保留了原有关系数据库的理论和技术,又融合了面向对象的特征,所 以没有影响关系数据库的存储效率,因而很受欢迎。目前包括o r a c l e 、i n f o r m i x 、 i b m 等大型的关系数据库开发商都在自己的最新版本数据库产品中扩展面向对象 的机制和对象表示能力,形成了最近几年最大的数据库市场热点。o r d b m s 保留 了传统关系数据库的简便、实用、规范、高效的优点,同时又具有对象技术的各 种特征,更由于多年来关系型数据库( r d b m s ) 培育了成熟、坚实的用户基础, 丰富的数据资源和强大的市场惯性,目前o - r d b m s 已经成为商业化数据库的主 流产品。 目前,在空间数据管理方面,国内外各个g i s 厂家逐步从使用文件系统存储管 理空间数据向使用数据库管理方向的发展,并提出了众多解决方案。下面列表说 明一下目前国内外主要的g i s 软件及其数据库机制: 表1 1 国内主要g i s 软件及其数据库机制 g i s 软件名称g i s 软件厂商 数据库机制 s u p e r m a po b j e c t s北京超图地理信息技术采用第三代空间数据库引擎技术一 有限公司s d x + ,同时使用二级索引,扩展了数 据存储时的数据编码。支持多种数据 库,如o r a c l e 、s o l s e r v e r 、s y b a s e 等, 同时支持矢量和栅格数据。 m a p g i s 中地数码科技有限公司提供高性能的空间数据库管理功能,采 用c s 结构,动态外挂数据库的联接, 支持多媒体属性库管理,开放式系统标 准,可以完成空间叠加分析、b u f f e r 分析、属性分析与统计等。 g e o s t a r 武汉武大吉奥信息工程由关系数据库来管理属性数据,通过 技术有限公司o d b c 联接支持大型r d b m s 。如s o l s e r v e r 、s y b a s e 、o r a c l e 等。空间数据 管理模块支持对空间数据对象的存储、 存取管理,为系统开发者提供了一个多 用户的实时应用程序接口 表1 2 国外主要g i s 软件及其数据库机制 g i s 软件名称g l s 软件厂商数据库机制 a i se s r i枷i s 所集成的a r c s d e 的基本任务是作 ( 国际商业地理信息系统 为存储在砌) b m s 中空间数据的g i s 网关。 软件领域先导者) a r c s d e 作为一种服务器软件产品,采用 ( s 结构,可以为m m 的d b 2 通用数据库、 l n f o r m i x 动态服务器、o r a c l e 、s q ls e r v e r 等商业数据库管理地理信息 m 叩l n f o m a p i n f oc o r p o r a t i o n 利用m a p l n f os p a t i a l w a r e 实现在大型 ( 国际桌面地图系统软件 r d b m s ,如d b 2 、i n f o r m i x 、s o ls e r v e r 领域先导者) 中对空间数据的存储、管理和操作,实现 空间数据与传统属性数据的一体存储,确 保空间数据的可读取性、完整性、可靠性 和安全性;m a p l n f om a p x 支持与o r a c l e s p a t i a l 的完全读w ,支持o r a c l e 的 s d og e o m e i r y 空问数据格式,使用 o c i ( o r a c l ec a l li n t e r f a c e ) p r e - f e t e h 方法 提高访问性能。m a p x 同时还支持其他常 用的数据访问方法。 a u t o c a d a u t o d e s k ,l n c 可以对矢量图形和影像地图进行发布,建 m a p( 国际计算机辅助设计系 立数据金字塔结构,效率极高,可以对 统软件领域先导者) d w g 和s h p 格式直接发布,同时可以宜 接读取o r a c l e 空间数据 g - e m e d i a i n t e r g r a p hc o r p o r a t i o n支持企业数据的共享,支持矢量和栅格数 ( 国际数字摄影测量工作 据的工业标准包括o g - c 的网络规范 站系统领域先导者) w f s 、w m s 和g m l ,与m a p l n f o t a b 表 文件、o r a c l e1 0 9 ,9 f 兼容。 从各大g i s 软件的空间数据解决方案中可以总结出以下几点: 1 1 与现有的符合工业标准的商业数据库集成仍是空间数据库的近期解决方案,其 中首选o r a c l e 。 能同时管理g i s 中的空间数据及属性数据的空间数据库管理系统将成为下一 代g i s 软件的主要基础平台。 3 ) 空间数据结构、数据模型的标准化、实现各g i s 软件之间的空间数据共享势在 必行。 本文利用全球著名数据库厂商o r a c l e 公司提供的成熟产品技术- o r a c l e 数 据库系统内置模块一一o r a d es p a t i a l ,结合m a p l n f o 公司著名桌面软件系统 m a p l n f op r o f e s s i o n a l 完成电子地图属性数据和空间数据的一体化存储。在o r a c l e 对象关系型数据库中,o r a c l e 为空间数据的存储提供了一种完全开放、高度集成 的体系结构o 船c l es p a t i a l ,它通过对象数据类型s d og e o m e t r y ,实 现对空间数据的存取、索引、分析等操作。用这些几何对象进行组合,可以表示 非常复杂的几何对象 9 1 。在空间索引方面,o r a c l es p a t i a l 提供高效的索引机制, 支持四又树( q u a d - t r e e ) 和r 树( r t r e e ) 空间索引,这样就可以通过s q l 实现 对空间数据的存取、检索、空间分析等操作。目前,o r a c l es p a t i a l 支持的空间分 析功能主要有检索、关联、覆盖范围、缓冲区分析和最近地物查找等。利用o r a c l e s p a t i a l 提供的功能,可以实现空间数据和属性数据的一体化存储,通过在应用程 序中对o r a c l e 数据库的访问,实现在电子地图数据在不同应用程序间的共享。 1 3 论文研究的内容 本文在现有电子地图数据的基础上,基于组件式g i s 的基本概念,利用o r a c l e s p a t i a l 技术,构建了电子地图空间数据库。论文主要涉及c o m 、c o m g i s 、空间 数据库的基本概念和相关知识,g i s 的二次开发,电子地图的开发,g i s 二次开发 组件m a p x 的基本应用。在应用程序中实现了对o r a c l e s p a t i a l 空间数据库的访问, 实现空间数据的管理以及对空间数据的相关操作,并保证了对空间数据和属性数 据操作的一致性。 论文在分析电子地图空间数据概念模型的基础上,对空间数据库技术进行理论 性的概括和总结,这就需要对c o m g i s 、m a p x 控件、空间数据模型和存储结构的 主要内容做比较全面的了解并进行分析。最后,论文充分利用m a p l n f o 技术结合 o r a c l es p a t i a l 技术,实现了基于组件式g i s 的电子地图数据在数据库中的一体存 储、读取和操作。最后作者在空间数据共享方面进行了初步的探讨。 对空间数据的访问和空间数据的获取远远复杂于属性数据,目前常用的g i s 平台软件有很多种,它们存储空间数据方法各不相同,有文件存储也有数据库存 储,而且存储的格式和空间索引的构造方法也不同。因为时间关系,课题仅针对 特定的比较通用的数据库来实现空间数据的访问,在数据库访问的适应性方面并 没有开展工作。 1 4 论文的结构组成 论文共分为六章。 第一章:绪论 本章概述了论文研究的内容和意义,并对国内外相关技术的发展状况进行了分 析。 第二章:地理信息系统与组件对象模型 本章简要介绍了地理信息系统的相关概念和主要功能,分析了g i s 软件发展的 历程并大体介绍了c o m 的产生、发展过程及其基本概念。 第三章:组件式g i s 及g i s 二次开发 本章介绍了组件式g i s 的基本概念及应用型g i s 二次开发的方式。可以说本 章和第三章是论文的理论和应用的基础。 第四章:m a p l n f o 与电子地图 本章介绍了m a p l n f o 公司的桌面g i s 软件m a p i n f o p r o f e s s i o n a l 及其组件m a p x 技术,并在m a p l n f op r o f e s s i o n a l 中实现了电子地图的制作,利用m a p x 完成在应 用程序中对电子地图的显示及其相关操作。 第五章:组件式g i s 电子地图数据库的创建 本章在介绍了o r a c l es p a t i a l 空间数据库之后,利用o r a c l es p a t i a l 技术与 m a p l n f op r o f e s s i o n a l 相结合,完成空间数据库的创建,并利用m a p x 实现对空间 数据库的访问和对空间数据的相关操作。第四、五两章是论文的主要研究成果。 第六章:总结与展望 本章对论文工作进行了总结,并对后续工作进行了展望。 第二章地理信息系统与组件对象模型 2 1g i s 概述 地理信息系统( 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 s ,g i s ) 萌芽于2 0 世纪6 0 年 代,是计算机学、地理学、测量学、地图学等多门学科的综合。1 9 6 2 年加拿大测 量学家r o g e ret o m l i n s o n 提出利用计算机处理和分析大量的表示土地利用状况 的地图数据,并提出地理信息这一术语。1 9 6 3 年世界上第一个实用地理信息系统 加拿大地理信息系统( c g i s ) 的建立标志着地理信息系统的诞生l 堋。地理信 息系统的定义是与计算机软件和硬件的发展密不可分的,现在一般的观点认为g i s 已经步入由传统的技术驱动转向应用驱动的发展阶段,可以说地理信息系统是整 个地球或部分地区资源在计算机中的缩影,是空间数据的管理系统。 2 1 1g i s 的基本功能 地理信息系统作为地理信息自动处理与分析系统,其功能遍历数据采集、分析、 决策应用的全部过程。地理信息系统的基本功能可以归纳如下1 1 0 l1 1 1 1 : 1 1 数据采集: 数据采集主要用于获取数据,保证地理信息系统数据库中的数据在内容与空间 上的完整性,数值逻辑一致性与正确性等。 数据编辑: 数据编辑是指对地理信息系统中的空间数据和属性数据进行数据组织、修改 等。针对数据的不同,可分为空间数据编辑和属性数据编辑。其中对空间数据的 编辑是g i s 系统的特色,是利用g i s 软件工具,对现有的、已采用到的空间数据 进行处理和再加工的过程。 数据存储管理: 数据存储管理是建立地理信息系统数据库的关键步骤,涉及到空间数据和属性 数据的组织。数据存储和数据库管理涉及地理元素( 地物的点、线、面) 的位置、 空间关系以及如何组织数据,使其便于计算机处理和系统用户理解等。 钔空间查询与分析; 空间查询是地理信息系统以及许多其他自动化地理数据处理系统应具备的最 基本的分析功能。空间分析是地理信息系统的核心功能,也是地理信息系统与其 他计算机系统的根本区别。模型分析是在地理信息系统支持下,分析和解决现实 世界中与空间相关的东西,是地理信息系统应用深化的标志。基本的查询与空间 r 基于组件式g i s 电子地图数据库的研究 分析操作主要包括拓扑空间查询、拓扑叠加分析、缓冲区分析等。 5 1 可视化表现: 地理信息系统的可视化表现,就是将已经获取的各种地理空间数据,经过空间 可视化模型的计算机分析,转换成可以被人们的视觉感知的计算机二维( 或三维) 图形和图像。 2 1 - 2g i s 软件技术体系发展趋势 随着计算机硬件和软件技术的飞速发展,g i s 由最初的自然资源管理和规划这 一单一功能向各种实用的方向发展,不同专题、不同规模和不同类型的各具特色 的地理信息系统在全世界范围内纷纷付诸研制。到了2 0 世纪8 0 年代,g i s 逐步走 向成熟,并与卫星遥感技术结合,应用领域不断扩大,开始解决一些全球性问题, 同时涌现出一大批g i s 软件,如a r c a n f o 、g e n a m a p 、s p a n s 、m a p h f o ,e r d a s 、 m i c r o s t a t i o n 等。g i 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 和w e b g i s “。 ( 1 ) g i s 模块:在g i s 发展的早期阶段,由于受到技术的限制,g i s 软件只 是满足于一些功能要求的一些模块,没有形成完整的系统,各个模块之间不具备 协同工作的能力。这一阶段可以称为g i s 模块( g i sm o d u l e s ) 阶段。 ( 2 ) 集成式g i s :随着理论和技术的发展,各种g i s 模块走向集成,逐步形 成大型的g i s 软件包( g i s p a c k a g e ) ,称为集成式g i s ( i n t e g r a t e d g i s ) ,如e s r i 的a r c i n f o 、g e n a w a r e 的g e n a m a p 等均为集成式g i s 的典型代表。集成式g i s 是 g i s 发展的一个重要里程碑,其优点在于其集成了g i s 的各项功能,形成独立完 整的系统;而其缺点在于系统过于复杂、庞大,从而导致成本高,也难于与其他 应用系统集成。 ( 3 ) 模块化g i s :模块化g i s ( m o d u l a rg i s ) 的基本思想使把g i s 按照功能 划分为一系列模块,运行于统一的基础环境( 如m i c r o s t a t i o n ) 之上,代表软件为 l m t e r g r a p h 的m g e 尽管许多集成式g i s 软件也可以划分为几个模块,但模块化 g i s 软件的模块被有目的地划分得更细。模块化g i s 具有较大的工程针对性,便 于开发和应用,用户可以根据需求选择所需模块。但无论是集成式g i s 或是模块 化g i s ,都很难与管理信息系统( m a n a g e m e n ti n f o r m a t i o ns y s t e m ,m i s ) 以及专 业应用模型起集成高效、无缝的g i s 应用 ( 4 ) 核心式g i s :为解决集成式g i s 与模块式g i s 的缺点,人们提出了核心 式g i s ( c o r eg i s ) 概念。核心式g i s 被设计为操作系统的扩展。w 铀d o w s 系列操 作系统上的核心式g i s 提供了一系列动态链接库( d l l ) ,开发g i s 应用系统时可 以采用现有的高级编程语言,通过应用程序接口( a p i ) 访问内核所提供的g i s 功 能。除了一些基本的动态链接库以外,实现各种功能的动态链接库可以被拆卸和 重组,它提供了动态链接库一级的更底层的组件化方式,给用户提供较大的灵活 性。对数据库管理要求较高的用户甚至可以选择m i s 开发工具来构造g i s 应用, 为g i s 与m i s 的无缝集成提供了全新的解决思路。但是,由于核心式g i s 提供的 组件过于底层,给应用开发者带来一定难度,一般用户难以掌握,也不适应可视 化程序设计的潮流。目前还没有成熟的核心式g i s 商业软件。 ( 5 ) 组件式g i s :组件式g i s ( c o m g i s ) 的基本思想是把g i s 的各大功能模 块划分为几个组件,每个组件完成不同的功能。各个组件之间,以及g i s 组件与 其他非g i s 组件之问,都可以通过可视化的软件开发工具集成起来,形成最终的 g i s 基础平台以及应用系统。简单地说,c o m g i s 就是采用了面向对象技术和组件 式软件的g i s 系统( 包括基础平台和应用系统) 。目前最主要的组件式技术是组件 对象模型( c o p o n e n to b j e c tm o d e l ,c o m ) 。基于c o m ,m i c r o s o f t 推出了a c t i v c x 技术。a c t i v c x 控件已经成为当今可视化程序设计的标准控件。组件式g i s 代表着 当今g i s 发展的潮流,全球最大g i s 厂商e s r j 公司推出的m a p o b j c c t s 和著名的 桌面g i s 厂商m a p i n f o 公司推出的m a p x ,另外还有i n t e r g r a p h 公司的g e o m e d i a 和国内中科院地理所的a c t i v e m a p 等都是采用a c t i v e x 实现的。目前大多数g i s 软件公司都把开发组件式软件作为一个重要的发展战略。在组件模型下,可以以 较好的性价比获得或开发g i s 应用系统,可以在目前流行的各种开发工具上使用, 如v c 、v b 、d e l p h i 等。另外,利用g i s 组件不需要专门的编程语言,就可以很 容易实现强大的g i s 功能,大大加速了g i s 应用程序的开发。 ( 6 ) w e b g i s :w e b g i s 即g i s 技术与i n t c m c t i n t r a n c t 技术相结合,以适应大 量的应用从传统的c s ( 客户机服务器) 方式向b ,s ( 浏览器朋及务器) 方式转移 的趋势。目前基于w e b 的g i s 技术的代表系统及其解决方案有e s r i 公司m a p o b j e c ti n t e r a c tm a ps e r v e r ( i m s ) 和a r e v i e wi n t e m e tm a ps e r v e r ( i m s ) ,i n t e r g r a p h 公司的g e o m e d i a w e b m 印和m a p i n f o 公司的m a p x t r e m e 。对于国内软件,北京超 图s u p e r m a pi s 也提供了基于i n t e m e t i n t r a n e t 的分布式g i s 开发平台。目前有两套 不同的o b j e c tw e b 规范:c o r b a j a v a 和d c o m a c t i v e x ,这两套标准各有千秋, 相持不下。究竟选用何种规范来开发w e b g i s ,需要根据软件的设计目标来权衡各 方面的因素。 本文在c o m g i s 环境下完成了对电子地图空间数据库的设计、创建及访问。具 体的c o m g i s 技术将在论文的第三章作出迸一步的阐述。 2 2 组件对象模型 组件对象模型( c o m p o n e n to b j mm o d e l ,c o m ) 是微软开发的一种软件结构, 被广泛应用于创建基于组件的应用程序。c o m 对象是一些分散的组件,它们每一 个都拥有唯一的标识这些标识为其他组件获取它们的特性提供了接口。c o m 对 象完全是语言独立的,具有内在的进程间通信的能力,能够很容易的嵌入到面向 对象的程序设计中,因此c o m 比w i n 3 2d l l s 更具有通用性。c o m 于1 9 9 3 和 o l e 2 一起发布,主要是为了取代用于进程间通信机制d d e 的o l e 。a c t i v e x 技 术也是基于c o m 发展起来的。 2 2 1 组件概念的产生 在计算机应用的初期,程序非常简单,用“边做边改”的方法即可以处理程序 设计中的问题,不存在软件工程的概念。可是随着计算机应用的功能越来越强大, 软件的实现也越来也灵活,带给应用开发者、软件提供商和用户相应的问趔1 3 1 : 现代软件应用功能既强大又复杂:开发周期长,维护困难而且维护成本高, 难以扩展其他功能。 应用是单一集成的:它们集成了许多功能。而大多数功能无法单独升级或 替换。 应用不易被集成:即使两个应用用同一种语言编写并且运行在同一台机器 上,一个应用的数据和功能也不能用于另一个应用。 操作系统也有类似问题,模块化不充分,难以升级或替换其中的某项服务。 开发方式不统一:即使应用之间可以进行交互,由操作系统或通过网络提 供的服务方式也可能不一样。甚至,根据服务是来自同一进程空间( 通过 动态链接库) ,或是来自本地机器的另一进程空间,或是来自操作系统或 网络上的另一台机器。开发方式编程模型的变化非常大 要解决这些问题,一个很自然的想法是把一个庞大的应用程序分成多个模块, 每一个模块保持一定的功能独立性,单独开发这些模块,当所有的模块开发完成 后,把它们组合在一起就得到了完整的应用系统。最初开发者们使用函数库作为 访问一个模块功能的方法,这些库通过应用程序接口( a p i ) 实现其功能,只需要 链接这些库,就可以重用这些函数。这种使用a p i 的传统方法存在许多缺陷【”】: a p l 的更新:a p i 的更新对a p i 的创建者和想扩展a p i 的软件提供商都将 是个问题,创建者对a p i 的任何改动都会潜在地破坏现有程序,对a p i 的扩展会导致实现的不一致性。 版本问题:对于a p i 的多种不同版本的宣传和维护都是问题,而且作为 a p i 的创建者,又不能强迫开发人员去检测正确的版本。 模块问的通信:模块之间的通信面临极大的挑战,尤其是来自不同开发人 员创建的模块之间的通信。 实现语言:模块的开发语言极大地影响了通过a p i 访问模块的方式,如果 模块是用c + + 开发的,要在b a s i c 中使用将面临极大的困难。 长期以来,面向对象程序设计方法是解决传统软件开发问题的最好方案。面向 对象编程技术让开发者按照现实世界里人们思考问题的模式编写程序,面向对象 编程语言让开发者更好地利用代码直接表达现实中存在的对象。面向对象编程之 所以得到大规模的普及,是因为它允许开发者可以在完全不同的工程之间共享代 码,因此重用性是面向对象方法的重要特征。不仅如此,重用性也是软件产业发 展的重要基础。提供什么样的重用机制或者在哪个层次上提供重用,对于软件发 展有着不同的意义,因此可以把重用性作为衡量程序设计方法的一个重要指标。 应该看到,面向对象编程的重用仅限于程序源代码级别的重用,这仅仅是一种较 低层次的重用,真正的代码重用意味着代码必须以足够通用的方式为重建更大型 的代码而编写,而且还能够按照代码的工作方式得到定制。面向对象方法的重用 还存在另一个问题,它一般要求对象程序和使用对象的客户程序使用同样的编程 语言虽然面向对象方法己深入人心,但随着软件科学的不断发展,尤其是 i n t e m e t i n t r a n e t 的飞速发展,使软件应用置身于更加广阔的环境中,从面对应用软 件的跨语言、跨平台和互操作性提出了更商的要求。在这种情况下,面向对象方 法已难以适应现代分布式软件应用,于是组件化程序设计思想得到了迅速地发展。 按照组件化程序设计思想,同样是将单独的、庞大而复杂的应用程序分成多个 模块,但这里的模块不再是一个简单的代码集,而是一个功能相对独立的组件 ( c o m p o n e n t ) ,这些组件可以运行在同一机器上,也可以运行在局域网、广域网 甚至i n t e m e t 上的不同机器上。组件具有以下特点【1 3 1 : 组件是软件的基本单元,它具有一定的功能,可插用、可维护。 组件是软件开发中的一个可替换的单元,它封装了设计策略,并作为一个 大单元的一部分和其他组件结合起来。 组件是具有特定功能的,能够跨越进程边界,实现网络、语言、应用程序、 开发工具和操作系统的“即插即用”的独立的对象。 组件是指任何可被分离出来,具有标准化的、可重用的公开接口的软件。 使用组件技术开发软件产品具有许多优点和竞争优势1 1 3 1 : 组件易替换:在进行程序修改或版本升级时,只需要修改或替换相关的组 件,而不影响其他的程序组件。 适应业务需求更改:在组件软件中,可以将业务规则放在少数几个组件中, 当业务规则发生改变时,只需修改原组件或重新发布新组件即可。更新是 1 2茎王塑笪壅g 坚皇些鬯垫塑壁塑堡窒 局部的,程序中出错的机会也就限制在这个局部,使得程序的调试和测试 更为方便。 可实现二进制代码重用:组件之间可以在二进制级别上进行集成和重用, 这样一来只需用任何一种语言编写一次代码而实现多处应用。以后对这个 组件进行任何纠正和修改,不必改变使用这个组件的应用程序。 有助于并行开发:一个大应用系统由许多组件组成,这些组件的实现可以 并列进行,只要接口设计正确,则它们将能顺利配合。 将软件组件化并不是一件容易的事,尤其对于复杂的应用,要把应用分成一些 独立的组件,而且这种划分还要尽可能符合系统的应用逻辑和业务要求,可以说, 组件化程序设计更注重应用系统的全局,要求从应用系统全方位进行考察。它已 经逐渐成为软件开发技术的主流,并且是将来软件技术的必然趋势。 2 2 2 组件对象模型( c o m ) 简介 作者在前面已经提到,组件化程序设计方法的思想是将复杂的应用程序设计成 一些小的、功能单一的组件模块,组件之间可以跨进程、跨机器、跨语言甚至跨 操作系统平台进行通信。要实现这样的应用软件,组件程序之间必须要遵循严格 的规范,软件系统才能正常运行。当前提出的组件通信规范有三种:微软的组件 对象模型( c o m p o n e n to b j e c tm o d e l ,c o m ) 、对象管理组织的c o r b a 和s u n 公 司的j a v a b e a n s 。c o m 是一种二进制和网络标准,它允许任意两个组件互相通信, 而不管它们是在什么计算机上运行( 只要计算机是相连的) ,不管各个计算机运行 的是什么操作系统( 只要该操作系统支持c o m ) ,也不管该组件是用什么语言编 写的【1 3 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 对 象,而是通过一个全局标识符进行对象的创建和初始化工作。在c o m 规范中,这 个全局标识符是一个1 2 8 位的全局唯一标识符( g l o b a l l y u n i q u e i d e n t i f i e r ,g u l l ) ) , 它基本上可以保证c o m 对象的唯一性。c o m 接口和c o m 对象类似,也采用g u i d 进行标示。 接口是c o m 规范的另一个核心。接口是一组逻辑上相关的函数集合,其函数 也被称为接口成员函数。c o m 对象可以提供多个c o m 接口,通过每个接口的成 员函数为客户提供各式各样的服务。客户通过g u i d 获得接口的指针,再通过接 口指针,就可以调用相应的成员函数。 c o m 接口具有如下特性1 1 4 1 : 二进制特性:接口规范并不建立在任何编程语言的基础上,而是规定了二 进制的一级标准。任何语言只要有足够的数据表达能力,就可以对接口进 行描述。 接口不变性:接口是客户程序和组件程序之间的桥梁,因此接口应该保持 不变才能保证客户程序和组件程序两者独立开发结束后,它们的协作能力 达到预期的效果。 继承性:类似于c + + 中的类继承性,接口也可以继承发展,但接口继承和 类继承不同。类继承不仅是说明继承,也是实现继承,即派生类可以继承 基类的函数实现,而接口继承只是继承基接口的函数说明,并没继承实现。 多态性:多态性是面向对象系统的重要特征,c o m 对象也有多态性,其 多态性通过接口体现。 2 2 3a c t i v e x 、o l e 与c o m 在前文中作者提到绝大多数g i s 厂商都推出了基于a c t i v e x 技术的c o m g i s 组 件产品,现在简单介绍一下a c t i v e 技术及其与o l e 和c o m 之间的关系i t 4 1 。 a c t i v e x 不是一项孤立的技术,它与其他技术有着密切的联系。从某种程度上 说,a c i v e x 是建立在其他技术的基础之上,如果没有其他技术的支持,也就不可 能有a c t i v e x 。 微软的a c t i v e x 技术是遵循c o m 规程的,实际上是对象嵌入与链接( o l e ) 的最新版本,使o l e 接口加强了对数据和特性的管理,效率更高,而且更加便于 进行i n t e r n e t 互操作。作为针对i n t e m e t 应用开发的技术,a c t i v e x 被广泛应用于 w e b 服务器以及客户端的各个方面。同时,a c t i v e x 技术也被用于方便地创建普通 的桌面应用程序。 a c t i v e x 和c o m 的关系可以简单地描述如下;a c t i v e x 是建立在c o m 基础上 的,以简化之后的o l e ,加上网络支持,并使o l e 随时处于动态( a c t i v e x ) 以 处理信息。这种方式与o l e 链接或嵌入的文档有所不同。 o l e 开发于1 9 9 0 年初,其着眼点在于提供复合文档的处理,即在文字处理器 ( 如w o r d ) 中可方便地链接( l i n k ) 或嵌入( e m b e d ) 电子表格( 如e x c e l ) ,o l e ( o b j e c tl i n k i n ga n de m b e d d e d ) 的名称由此而来,其基础则根植于c o m 。 a c t i v e x 、o l e 和c o m 之间的关系可以用图2 1 表示。 图2 1a c t i v e x 、o l e 和c o m 关系示意图 其中,a c t i v e x 、0 l e 和c o m 的关系可以简单说明如下: c o m :规定对象的存储表示和操作方式,它们是a c t i v e x 技术的基础,其 设计目的在于解决不同系统( 平台) 、不同语言之间对象交互操作的问题。 o l e :提供对象之间交互的客户服务器结构,包括自动化

温馨提示

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

评论

0/150

提交评论