已阅读5页,还剩55页未读, 继续免费阅读
(地图制图学与地理信息工程专业论文)基于net的gis组件开发技术研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 组件式g i s 是新一代g i s 软件开发技术,它以其良好的可重用性为用户提供方便、高效的g i s 功能支持。本文以g i s 组件开发技术方法研究为核心,研究了组件技术的相关理论及g i s 组件开发 方法,设计了g i s 组件的体系结构及空间数据存储结构,开发了一个小型的基于n e t 平台的g i s 组件伽n o b j e c t s ,完成了组件数据访问、地图显示、空间查询、等值线绘制以及空间数据转换 等功能模块的实现,最后应用t r a n o b j e c t s 开发上海市南汇区水情自动测报g i s 系统。 本文研究了以下几个方面内容: 1 ) 在对组件技术进行分析研究的基础上,比较了两种主流的组件开发技术:c o m 组件技术 和n e t 组件技术。 2 ) 根据t r a n o b j e c t s 的需求与设计原则,设计一种空间数据存储结构,并对t r a n o b j e e t s 体系结 构进行划分。 3 ) 在n e t 平台上利用g d i + 绘图技术开发t r a n o b j e e t s ,并对t r a n o b j e c t s 的数据访问模块、地 图显示模块、空间查询模块和等值线绘制模块中相关算法进行了研究。 4 ) 为了实现本文空间数据与g i s 常用数据格式相互共享,解决数据互操作,开发了空间数据库 与e s r i 的s h a p e f i l e 之间的相互转换模块。 5 ) 研究提高t r a n o b j e e t s 运行效率的方法,并在t r a n o b j e e t s 中采用空间索引、双缓存技术、图 形路径和屏幕内重绘四种方法。 6 ) 应用t r a n o b j e e t s 开发上海市南汇区水情自动测报g 1 s 系统。 关键词:g i s ;t r a n o b j e c t s ;组件技术;n e t 组件;g d i + :空间数据;空间索引 东南大学硕士学位论文 a b s t r a c t c o m p o n e n t sg e o g r a p h yi n f o r m a t i o ns y s t e mi st h en e wg e n e r a t i o no fg i ss o f t w a r ed e v e l o p m e n t t e c h n o l o g y 1 tp r o v i d e sc o n v e n i e n ta n de f f i c i e n tf u n c t i o n so f g l sf o ru s e r sd e p e n d i n go ni t sg o o dr e l l t h e c o r ec o n t e n to ft h i sp a p e ri st h et e c h n o l o g ym e t h e do ft h ed e v e l o p m e n to ft h eg i sc o m p o n e n t c o n d u c t r e s e a r c ho nt h er e l e v a n tt h e o r yo ft h ec o m p o n e n tt e c h n o l o g ya n dt h ed e v e l o p m e n tm e t h o do ft h eg i s c o m p o n e n la n dt h e nd e s i g nas p e c i f i cs t o r i n gs t r u c t u r ef o rs p a t i a ld a t aa n ds y s t e ms t r u c t u r eo ft h eg i s c o m p o n e n t a n dd e v e l o pag i sc o m p o n e n t - t r a n o b j e c t sb a s e do n n e t , w h i c hc o n t a i nt h ec o m p o n e n t d a t aa c c e s s i n g , m a pd i s p l a y , s p a t i a li n q u i r y , i s o l i n ed r a w i n ga n ds p a t i a ld a t ac o n v e r s a t i o n f i n a l l yt h e t r a n o b j e c t sa p p l i e st od e v e l o pt h ew a t e rc o n d i t i o na u t o m a t i cf o r e c a s t i n gg i sf o rt h en a n h u id i s t r i c to f s h a n g h a i t h i sr e s e a r c hc o n t a i n ss i xe m p h a s e s : 1 ) t w ok i n d so fm a i ng i sc o m p o n e n tt e c h n o l o g yh a v eb e e nc o m p a r e db a s e do nt h er e s e a r c ha n d a n a l y s i so nc o m p o n e n tt e c h n o l o g y :c o mc o m p o n e n tt e c h n o l o g ya n d n e tc o m p o n e n tt e c h n o l o g y 2 、as p e c i f i cs t o r i n gs t r u c t u r ef o rs p a t i a ld a t ah a sb e e nd e s i g n e da c c o r d i n gt ot h er e q u i r e m e n t sa n d p r i n c i p l e so f t r a n o b j e c t s a n dt h es y s t e ms t r u c t u r eo f t r a n o b j e c t sh a sb e e nc l a s s i f i e d 3 1t r a n o b j e c t sh a sb e e nd e v e l o p e do n n e tp l a t f o r mb yu s i n gg d i + g r a p h i c st e c h n o l o g y a n ds o m e a r i t h m e t i cr e s e a r c hh a sb e e nd o n eo nd a t aa c c e s s i n gc o m p o n e n t , m a pd i s p l a yc o m p o n e n t , s p a t i a i i n q u i r yc o m p o n e n ta n dl s o l i n ed r a w i n gc o m p o n e n to f t r a n o b j e c t s 4 1i no r d e rt oa c h i e v et h ea i mo f m u t u a ls h a r i n go f d a t af o r m a t sb e t w e e ns p a t i a ld a t ai nt h i sp a p e ra n d c o m m o nd a t a , a n dr e s o l v et h ep r o b l e mo fm u t u a lo p e r a t i o no fd a t a , w e v ed e v e l o p e dac o n v e r t e rm o d u l e b e t w e e ns p a t i a ld a t a b a s ea n de s r is h a p e f i l e 5 ) b e s i d e st h er e s e a r c ho fi m p r o v i n gt h ee f f i c i e n c yo ft r a n o h j e c t s ,w ea l s oc o m m i to u r s e l v e st o a d o p t i n gf o u rm e t h o d si nt r a n o b j e c t s ,s u c ha ss p a t i a li n d e x , d u a lc a c h i n gt e c h n o l o g y , g r a p h i c s p a t ha n d r e f r e s hi nt h es c r e e n 6 1a c c o r d i n gt ot r a n o b j e c t s , w ed e v e l o pw a t e rc o n d i t i o na u t o m a t i cf o r e c a s t i n gg i s k e yw o r d s :g i s ;t r a n o b j e c t s ;c o m p o n e n tt e c h n o l o g y ;n e tc o m p o n e n t ;g d i + ;s p a t i a ld a t a ;s p a t i a l i n d e x i l 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。 尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过 的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我 一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 研究生签名:蕉盏盏 日期:丝塑:2 :; 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印 件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质 论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包括 刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办理。 研究生签名:擞导师签名: 日期:丝塑: 第一章绪论 1 1 立题背景及意义 第一章绪论 组件式软件技术已经成为当今软件技术的潮流之一( 比尔盖茨,1 9 9 7 ) ,为了适应这种技术潮 流,地理信息系统( 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 ) 软件像其他软件一样,已经或正在 发生着革命性的变化。即由过去厂家提供了整个系统或者具有二次开发功能的软件,过渡到提供组 件由用户自己再开发的方向上来( 徐冠华,1 9 9 7 ) 。传统g i s 虽然在功能上已经比较成熟,但是由于 这些系统大多是基于十多年前的软件技术开发的,属于独立封闭的系统。同时,g i s 软件变得日益 庞大,用户难以掌握,费用昂贵,严重阻碍了g i s 的普及和应用。组件式g 1 s 的出现为传统g i s 面 i 临的多种问题提供了全新的解决思路。 组件式g i s 的基本思想是把g i s 的各大功能模块划分为几个控件,每个控件完成不同的功能。 各个g i s 控件之间,以及g i s 控件与其它非o i s 控件之间,可以方便地通过可视化的软件开发工具 集成起来,形成最终的g i s 应用( 宋关福,1 9 9 8 ) 。 组件式g i s 是使用了面向对象技术和组件技术的g i s 开发工具,与传统g i s 软件设计模式相比, 具有以下几方面的优点p j : 1 ) 二次开发成本低:组件式g i s 提供实现空间数据的采集、存储、管理、分析和模拟等功能, 至于其他非g i s 功能可以使用专业厂商提供的专门组件,从而降低g i s 软件开发成本。另一方面, 组件式o l s 本身又可以划分为多个控件,分别完成不同功能,用户可以根据实际需要选择所需控件, 从而降低了用户的经济负担。 2 ) 二次开发简捷:g i s 应用开发者不必掌握额外的g i s 开发语言,只需熟悉基于w i n d o w s 平 台的通用集成开发环境,以及组件式g i s 各个控件的属性、方法和事件,就可以完成应用系统的开 发和集成。 3 ) 高效无缝的系统集成:g i s 软件的开发往往需要对空间数据、空间处理功能与各种专业应用 模型进行集成。组件式g i s 不依赖于某一种开发语言,可以嵌入到通用的开发环境中实现g i s 功能, 专业模型则可以使用这些通用开发环境来实现,也可以插入其他的专业性模型分析组件。 4 ) 强大的o i s 功能:新的g i s 组件都是基于3 2 位系统平台的,采用进程内直接调用形式,所 以无论是管理海量数据的能力还是处理速度方面均不比传统g i s 软件逊色。 5 ) 可扩展性:在组件式软件技术背后,有一个十分庞大的组件资源库,用户可以从不计其数的 组件中挑选所需要的组件与组件式g i s 一起集成应用系统,极大地扩展了g i s 的功能。 6 ) 大众化的g i s :组件式技术已经成为业界标准,用户可以像使用其他a c t i v e x 控件一样使用 组件式g i s 控件,使非专业的普通用户也能够开发和集成g i s 应用系统,推动了g i s 大众化进程。 目前组件式g i s 大多是基于微软的组件对象模型( c o m p o n e n to b j e c tm o d e l ,简称c o m ) 技术 东南大学硕士学位论文 进行设计的。开发人员为了准确无误地调用组件,须对c o m 组件进行跟踪,从而要求组件在操作 系统的注册表中进行注册,当用户的业务逻辑规则发生变化时,必须更改组件及其接口,这样开发 人员就必须重新编译所有相关的动态链接库( b y n a m i cl i n kl i b r a r y ,简称d l l ) ,重新对组件进行 注册,如此就会出现组件的版本冲突问题,也就是d l lh e l l ( 动态链接库地狱) ,此外,开发人员在 设计组件的过程中,不得不编写涉及组件对象生存期、内存管理、安全性维护等代码,这些问题严 重影响到组件开发的效率以及组件的维护。 微软n e t 技术的出现很好地解决了这些问题,在n e t 采用的通用语言运行时( c o m m o n l a n g u a g er u n t i m e ,简称c l r ) 的环境下,组件对象具有自我描述功能,从而不再需要外部类型库 对组件进行描述,也无须在系统注册表中注册组件,并且同一n e t 组件的多种版本能够在同一系统 中并行运行,不会有任何相互影响,因此不会引起组件版本的冲突,此外,c l r 能提供对组件对象 生存期、内存分配、安全性维护的自动管理,从而也就不需要开发人员编写这些繁琐的代码,大大 提高了软件系统开发的效率。由此可见,从c o m 组件到n e t 组件,组件模型已经发生了本质上的 变化,n e t 架构下组件模型相对以前的c o m 具有明显的优势例。 微软n e t 技术是一项新的软件开发技术,在n e t 环境下,组件的产生、编译及其最终的部署 都发生了很大的变化。另外,在n e t 平台上开发g i s 组件仍处在一个发展阶段。因此,作者在n e t 平台上研究开发一个g i s 组件,具有一定的理论和实践意义。 1 2 国内外研究概况 经过半个世纪的发展,g i s 正在形成完鹑的技术体系并逐步建立起了理论体系,其应用也己形 成了个多层次和不同尺度的格局,成为信息产业的重要组成部分。g i s 技术的发展,在软件设计 模式上经历了集成式g i s 、模块化g i s 、核心式g i s ,发展到组件式g i s 的过程。与传统g 1 s 相比, 组件式g i s 具有成本低、开发简捷、无缝集成、功能强大、无限扩展、易于推广、可视化界面等优 点。 近年来,国内外各大g i s 厂商都积极推出各自的g i s 组件平台。国外推出的g i s 组件平台在功 能和系统稳定性方面相对比较成熟,其代表作当属全球最大g i s 厂商e s r i 推出的a r c o b j e c t s 、a r e g i s e n g i n e 、m a p o b j e c t s 和著名的桌面g i s 厂商m a p l n f o 公司推出的m a p x ,另外还有i n t e r g r a g h 公司的 g e o m e d i a o b j e c t s 、德国西门予s i c a d 、g e o m a t i e s 公司的s i c a d o p e n m e 。国产g i s 组件平台性 能和可靠性较过去也有了较大的提高,并在各个领域的实际应用中积累了不少经验,完全可以充当 中小型系统的支撑平台。如北京超图地理信息技术有限公司的s u p e r m a po b j e c t s 、武汉中地信息工 程有限公司的m a p g i s 和武汉武大吉奥信息工程技术有限公司的g e o m a p 等。 然而上述g i s 组件都是基于微软c o m 技术设计开发的。直到2 0 0 5 年底,北京超图地理信息技 术有限公司率先发布了基于n e t 技术的大型全组件式g i s 平台s u p e r m 印o b j e c t s n e t ,从而 标志着g i s 组件开发技术已经进入n e t 技术时代。 1 3 目标及论文组织 2 第一章绪论 1 3 1 研究目标 本文研究的目标是在n e t 平台上利用最新的图形设备接口( g r a p h i cd e v i c ei n t e r f a c e ,简称 g d i + ) 构建一个具有自主知识产权的g 1 s 组件胁n o b j e c 协,然后应用该组件开发上海市南汇区 水情自动测报g i s 系统。 1 3 2 论文组织 论文共分七章,各章内容简要如下: 第一章分析本文的研究背景及研究意义,总结组件式g i s 开发模式的优势,并分析目前国内外 组件式g i s 的研究概况,最后阐述本文的研究目标。 第二章首先分析了组件的产生背景及组件的特点和优势,然后介绍两种主流的g i s 组件技术: c o m 组件技术和n e t 组件技术,并对这两种组件技术进行了比较分析。 第三章对t r a n o b j e c t s 进行总体设计。首先阐述组件的需求分析及设计原则,然后设计出一种空 间数据存储结构,并从功能和层次两个层面上对本文组件的体系结构进行划分,最后对组件的开发 平台进行了简要的分析。 第四章研究t r a n o b j e c t s 的数据访问模块、地闰显示模块、空间查询模块、等值线绘制模块和数 据转换模块的设计和实现过程,并对各模块的难点算法进行深入的研究。 第五章研究提高组件性能的实现过程。本章重点研究了空间索引、双缓存技术、图形路径绘图 和屏幕内绘图四种提高组件性能方法的实现过程。 第六章为t r a n o b j e c t s 在实际工程中的应用,阐述作者负责开发的上海市南汇区水情自动测报 g i s 系统的实现过程。首先简要概括系统的需求,并设计出系统的功能架构,然后对空间数据库和 水情数据库作了详细的设计,最后介绍系统的主要功能。 第七章结语部分,包括研究工作的总结以及今后的展望。 3 东南大学硕j :学位论文 第二章组件技术 组件技术是当今解决软件重用的最有效和最前沿的技术,已在整个软件工业界彳寻到了迅速应用 和发展f ”。本章将对组件产生的背景以及组件的特点和优势进行简要分析,并比较目前两种主流的 g i s 组件开发技术:c o m 组件技术和n e t 组件技术,从而为本文在理论与技术方面的研究做好准 备。 2 。1 组件产生的背景 在计算机软件发展的早期,一个应用系统往往是一个单独的用户程序,但随着应用的日益复杂, 程序变得越来越庞大。而且一旦系统的某个版本完成以后,在下一个版本出来之前,应用程序不会 再有所改变。而对于庞大的程序来说,更新版本的周期很长,在两个版本之间,如果由于操作系统 发生了变化,或者硬件平台有了变化,则应用系统就很难适应这样的变化。所以这类单体的应用程 序已经不能满足计算机软硬件的发展需求。 从软件模型角度来考虑,一个很自然的想法就是把一个庞大的应用程序分成多个模块,每一个 模块保持一定的功能独立性,在系统工作时,通过相互之间的接1 2 完成实际的任务。我们把每一个 这样的模块称为组件,一个设计良好的应用系统往往被先分成一些组件,这些组件可以单独开发, 单独编译,甚至单独调试和测试。当所有的组件开发完成后,把它们组合在一起就得到了完整的应 用系统。当系统的外界软硬件环境发生变化或者用户的需求有所更改时,并不需要对所有的组件进 行修改,而只需对受到影响的组件进行修改,然后重新组合得到新的升级软件。下面的例子体现了 这样的一个升级过程。 假设在一个由五个组件构成的应用系统中,在应用系统版本的使用过程中,由于软件环境发生 了变化,其中组件1 和组件3 受到了影响,于是,在保持原有组件的基础上,对组件1 和组件3 进 行了修改或更换,分别得到组件l 和组件3 。把修改后的组件和其他的组件合在一起得到了新的应 用系统。它可以运行在新的软件环境下。于是我们在不修改组件2 ,4 ,5 的情况下,完成了软件的 一次升级1 3 】o 从上面的例子我们可以看出,组件化结构为我们带来了极大的好处,大家所熟悉的面向对象的 系统开发方法同面向组件的编程方法从认识论的角度是一致的,把程序中的模块抽象出来作为组件, 而构成环境发生变化后,用户可以通过重新组合组件来应对环境的变化。 2 。2 组件的特点及优势 2 2 1 组件的特点 可以认为组件是一个独立单元,它能够完成一套特定的功能,并可定义明确的接口。除此之外, 4 第二章组件技术 组件还具有以下特点1 3 1 : 1 ) 二进制标准。软件组件需要用于二进制级,为使其他公司使用第三方组件销售商的产品,第 三方组件销售商不必发行自己的专用源代码。 2 ) 与语言无关性。市场上有许多用于开发软件的语言,一个组件应该能被这些语言所使用和创 建。 3 ) 位置透明性。基于组件的解决方案的目标之一,是使客户程序与组件能够交互作用,不论组 件放在哪里都一样。 4 ) 版本兼容。组件必须可以在不妨碍己有客户的情况下被升级。 2 2 2 运用组件的优势 运用组件具有的优势有 3 1 : 1 ) 可管理性。将一个产品分成许多组件的集合,可使设计者将一个复杂的单一问题分成较小的 可管理问题的集合。 2 ) 规模经济。组件是独立的单元,理论上能够相互独立的实施。如果接口各方面均己明确定义, 多个开发者能够并行的实施单个组件。 3 ) 明确的相关性。组件将关于如何完成一个任务的实施细节隐藏起来,只露出定义明确的接口, 在实施细节中的任何错误都是孤立的。错误可以被隔离,调试方便。 4 ) 二次开发周期短,现成易得,降低了开发费用。许多公司已经做好了现成的组件,可以直接 买过来用。开发用户可以只编写“胶水”,或将这些组件放在一起形成应用程序的逻辑框架。 5 ) 容易维护。组件的源代码只保存在一个组件里,集中和模块化的方法使得组件容易维护,使 用起来无需费心,使用组件的开发者只需要知道它能做什么,不需要知道它怎么做。开发者能集中 精力改善组件的界面和功能,而不是关心基础代码的内部结构。 6 ) 表现如一。每个组件只有一套源代码,无论何处使用,表现一样。 7 ) 安全性增强。组件是完全编译的,将敏感或者专用的事务逻辑放在这些组件内比放在脚本上 更安全,因为脚本是可以被用户看到的。 2 3 c o m 组件技术 目前存在的组件技术有很多种,微软公司的c o m d c o m ( d i s t r i b u t e d c o m p o n e n t o b j e c t m o d e l ) n e t ,o m g ( 对象管理组织) 的c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ,公共对象 请求代理) ,s u n 公司推出的j a v a b e a n e j b ( e n t e r p r i s ej a v ab e a n ) 等。g i s 组件的开发主要是采用 c o m 组t l :技术,在n e t 上构建g i s 组件仍处于发展阶段。 2 3 1c o m 简介 c o m 是个开放的组件标准,有很强的扩充和扩展能力f 3 】。开发c o m 的目的是为了使应用程序 更易定制,更加灵活。m i c r o s o f t 的许多技术,如a c t i v e x ,d i r e c t x 以及o l e 等都是基于c o m 技术 5 东南大学硕 :学位论文 建立起来的。 c o m 规范是一套为组件架构设置标准的文档,提供了一种编写与语言无关的能够按面向对象 a p i 形式提供服务的组件方法。c o m 具有一个被称作c o m 库的a p i ,它提供了对所有客户及组件 都非常有用的组件管理服务。c o m 库可以保证对所有组件的大多数重要的操作都可以按相同的方式 完成。c o m 库中的大多数代码均可以支持分布式或网络化的组件。c o m 组件是以w i n 3 2 动态链接 库( d l l ,o c x ) 或可执行文件( e x e ) 的形式发布的可执行代码。遵循c o m 规范编写的组件将 能够满足对组件架构的需求。 c o m 所含的概念并不止是在m i c r o s o rw i n d o w s 操作系统下才有效。它实际上像结构化编程及 面向对象编程方法那样,也是一种编程方法。在任何一种操作系统中,开发人员均可以遵循c o m 规范利用组件开发工具来编写c o m 组件。 2 3 2c o m 的内容 c o m 内容比较复杂,主要包括p j : 1 ) 接口:c o m 对象间互相调用的一组语义相关的接1 2 1 ,每个接口有一个1 2 8 位的唯一标识 ( g u l d ) 。所有的接口皆直接或间接的从i u n k o w n 接口继承而来,i u n k o w n 接口包括q u e r y i n t e r f a c e 、 a d d r e f 和r e l e a s e 。 2 ) c o m 对象:即c o c l a s s 实例,提供接e l 的具体服务。c o c l a s s 是一个或多个c o m 接口的实 现。对c o m 对象的调用是通过一个指向其接口的指针实现的。c o m 服务器是一个程序或库,包含 c o m 对象,并向客户提供服务。 3 ) 类工厂( c l a s sf a c t o r y ) :用于创建、注册c o m 对象的特殊对象,为实例化c o c l a s s 提供一 种标准机制。对c o c l a s s 进行实例化是通过调用全局w i n d o w sa p i 函数c o g e t c l a s s o b j e c t 或 c o c r e a t e l n s t a n c e 实现的。 4 ) 类型库( t y p e l i b r a r y ) :一个二进制资源文件,包含c o m 服务器中对象与接口的类型信息, 可以从m i d i 或o d l 转换而来。 5 ) a u t o m a t i o n 服务器扩展:a u t o m a t i o n 代表一个应用程序控制另一个应用程序中对象的能力。 a u t o m a t i o n 服务器是指实现i d i s p a t c h 接口的对象,i d i s p a t c h 在i u n k n o w n 的基础上增加了 g e t l d s o t n a m e s ,g e t t y p e l n f o ,g e t t y p e l n f o c o u n t 以及i n v o k e 接口。 2 4 n e t 组件技术 在n e t 平台中,组件以集合( a s s e m b l y ) 的形式出现,集合提供了标识、作用域、安全和版本 管理。集合由清单( m a n i f e s t ) 、元数据( m e t a d a t a ) ,中间语言( i l ) 代码和资源组成。清单描述了 集合的名称、版本、地区信息,集合中的类型列表。元数据描述了集合内定义的类型,包含接口、 类、基类、方法签名、属性、事件、成员变量等。代码以中间语言的形式进行存储。资源中包含了 只读存储的数据,比如字符串、图标、图片和声音。元数据描述集合静态的特性,中间语言描述集 合的动态特性。 6 第二章组件技术 元数据为n e t 组件提供了丰富的自我描述特性,可以在代码运行时通过反射( r e f l e c t i o n ) 机制 从元数据中获得组件类型等重要信息。反射还能在获得类型信息的基础上,在代码运行时进行类型 的动态创建与方法的动态调用,甚至动态创建并执行中间语言代码。动态调用为n e t 组件提供了迟 绑定功能,它使得组件在运行时的配置变得极为方便。 2 5c o m 组件与n e t 组件的比较 n e t 架构下的组件模型和c o m 有根本的区别。举例来说,c o m 实现了一个引用计数方案, 每次引用一个对象时,计数器递增。当一个对象引用超出作用域或被释放时,计数器递减,当引用 计数减少到零时就终止这个对象。微软声称在引用计数方面的开销太大,以至于不能在n e t 中实现 它,所以放弃了引用计数转而使用垃圾收集。c o m 组件与n e t 组件的区别主要有以下几个方面: ( 1 ) n e t “运行时” n e t 架构的核心技术是n e t 运行时”,或更准确地说,是“通用语言运行时”( c o m m o nl a n g u a g e r u n t i m e ,简称c l r ) 。通用语言运行时在组件运行时,负责管理内存分配、启动和中止线程和进程、 强化安全系数,同时还负责调整任何该组件涉及到的其它组件的配置。n e t 组件的客户不必关心对 象的生命期,一切由c l r 来管理,而c o m 对象的客户必须小心地管理对象的生命期。 c o m 组件和n e t 架构下运行在c l r 中的组件的根本差别在于:c o m 组件是。不受控”的, 而n e t 组件是“受控”的。n e t 编译器对源代码进行编译,产生中间字节码,这些字节码也叫做 受控代码,它不是机器语言,不能直接运行。在运行的时候,n e t 的实时( j u s ti nt i m e ,简称j i t ) 编译器将中间码编译为针对特定c p u 的机器码,然后再运行。在c l r 中运行的受控代码带来很多 好处,包括跨语言集成、跨语言异常处理和简化的组件相互作用模型。 而基于c o m 的遗留代码是以针对特定c p u 的机器码形式存在的,不需要经过这些步骤,也不 需要任何j 1 t 编译器就能直接运行。但这种代码是非受控的,代码编写者必须负责处理一切。 ( 2 ) n e t 集合 在n e t 架构中,集合的概念代替了原来的组件概念,集合可以认为是受管理的组件。集合运行 在c l r 中,其代码的生成自然以受控的中间码形式出现。除了中间码以外,n e t 编译器还产生一 种用于描述代码的元数据,这种元数据在集合中以清单的形式存在。元数据是对组件的自我描述, 在代码中定义或涉及的类型和成员都在元数据中被描述。通过元数据,c l r 可以知道组件涉及到哪 些类型、哪些资源。c l r 在处理方法调用、装载模块时都将参考元数据中的信息。在元数据中也包 含集合的版本号。有了这样的组件一一集合,再也不会出现d l lh e l l 等类似的问题,所以说集合 是n e t 的版本控制技术的基础。集合技术的出现使得开发人员和管理人员可以在不同应用程序之间 严格地实行版本依赖管理,因为集合具有自我描述性,而不再依赖注册表。在n e t 平台下,所有的 程序安装将变为拷贝,严重的注册表垃圾问题将不存在,可以实现真正的无副作用安装。另外,由 于集合成为可以使用的组件的最小单位,所以在n e t 地安全领域也有非常重要的作用。 ( 3 ) 其它区别 从c o m 组件模型到n e t 组件模型的其他变化总结如下: 7 东南大学硕士学位论文 c l r 中组件的概念更为纯粹。在c o m 中,标识组件的方式有很多种,对象、类、动态连接 库都可以表示组件;而在c l r 中,组件是很单纯的概念一一集合。 在c o m 中,对于每一种类型都采用1 2 8 比特的g u i d 进行定义,而在c l r 中为了更好地 确保唯一性,采用了1 2 8 字节的公钥和在局部范围内是保持唯一的类型名称来提供全球唯一标识。 当一个客户端应用程序调用某集合时,在客户应用程序中存有一个“位的公钥h a s h 值,从而能确 保被调用的集合是正确的集合。 在c o m 编程中,需要在i d l 中定义类型信息,然后再利用一种具体的语言去实现。对于 c l r ,只有一种元数据交换格式存在,开发人员可以在任何一种语言中定义并实现该类型。 元数据是完全可扩展的。任何语言都可以扩展c l r 的类型信息。 在c o m 中存在两种类型系统,i u n k o w n 型和v a r i a n t :在c l r 中所有的类型都来自 s y s t e m o b j e c t 。 在c l r 中允许出现接口的多继承。 c o m 组件基于接口进行通信,而n e t 组件直接通信,不通过中间接口查询。 c o m 组件每次可以而且只能注册一个版本( 如果它拥有二进制兼容性) ,n e t 组件可以并 存,并且同一组件可以有多个版本。 总而言之,从c o m 到n e t ,组件模型已经发生了本质上的变化,n e t 架构下组件模型的先进 性也是显而易见的。 2 6 本章小结 组件技术成为提高软件生产率与质量、减少软件开发周期和降低成本的关键因素,并对软件的 发展起到了巨大的推动作用,这一点己成为软件开发人员的共识。本章对组件的产生背景及组件的 特点和优势进行了简要的分析和讨论,并比较目前两种主流的组件技术:c o m 组件技术和n e t 组 件技术。通过本章的研究,对组件技术有了深入的理解,并为后面章节研究在n e t 平台上开发g i s 组件提供一个理论基础。 8 第三章t r a n o b j e c t s 的总体设计 第三章t r a n o b j e c t s 的总体设计 本文开发的g i s 组件t r a f l o b j e c t s ,提供了小巧、灵活的g i s 内核,供g i s 软件开发人员使 用,其目标是使软件设计人员能够快速、高效地开发出具有g i s 功能及自己专业特色的应用软件。 本章将对t r a n o b j c c t s 进行总体设计,是t r a n o b j e c t s 开发过程中的一个至关重要的阶段,需要在详 实的系统分析的基础上为t r a n o b j e e t s 制定开发流程,并在各种技术和实施方法中权衡利弊,精心设 计,最终勾画出组件的详细设计方案。 3 1t r a n o b j e c t s 需求分析 任何组件都是为解决特定问题而设计的,需要解决的问题就是一种需求,需求分析就是将需要 解决的问题系统化、规范化,在开发者和用户之间达成一种共识。在研究目标的指导下,通过对 a r e g i se n g i n e ,m a p o b j c c t s 等常用g 1 s 组件功能的具体分析,本文设计的t r a n o b j e c t s 能够完成的 功能框架如图3 1 所示。 压雨田 地 图 浏 览 分 层 显 不 分 级 显 不 图 层 管 理 地 图 注 记 哥 蠢 暑 葛 符 号 化 点 专 题 图 制 作 点 击 查 询 图 形 范 围 查 询 o 广_ 查 询 要 素 编 辑 空 间 量 算 图3 1t r a n o b j e e t s 的功能框架 1 ) 地图浏览:包括放大、缩小、漫游和全图显示等; 2 ) 分层显示:显示具有多图层的地图,如道路、河流和边界线等; 3 ) 分级分类显示:对不同等级的道路、行政区划等进行分级分类显示; 4 ) 图层管理:包括图层的添加、删除、显示状态控制和图层间关系调整: 5 ) 地图注记:通过字段值对地图进行无压盖注记; 6 ) t r u e t y p e 符号化点:通过调用t r u e t y p c 字体实现点状符号的设置; 7 ) 专题地图制作:实现柱状专题图的制作; 8 ) 点击查询:通过点击空间对象查询其对应的属性信息; 9 ) 图形范围查询:查询给定图形范围内的空间要素及其相应的属性信息; 1 0 ) s q l 查询:通过输入s q l 表达式查询地图对应的要素; 1 1 ) 要素编辑:地图要素的简单编辑,包括要素的添加、删除和属性的更新 1 2 ) 空间量算:包括距离量算和面积量算; 9 缓 冲 区 分 析 等 值 线 绘 制 东南大学硕上学位论文 1 3 ) 缓冲区分析:实现缓冲区查询; 1 4 ) 等值线绘制:通过点图层高程字段值绘制等值线并实现等值线图的填充。 3 2t r a n o b j e c t s 总体设计原则 ( 1 ) 采用n e t 相关技术 t r a n o b j e c t s 是在n e t 平台上开发的,另外在实际应用d p n e t 平台已经成为应用系统开发的主 流。因此,作者在充分考虑到系统兼容性等因素,决定采用n e t 平台的g d i + 绘图技术和a d o n e t 数据库连接技术来开发t r a n o b j e c t s 。 ( 2 ) 优化组件性能 大量开发实践证明,采用高效的算法并精心优化代码,可以使软件整体效率有较大改善。因此, 组件式软件并不是传统软件的简单“包装”,尤其是对于空间分析模块,在算法上要充分考虑其先进 性,通常数据访问和地图显示模块是整个平台的基础模块,其性能关系到其他组件乃至整个组件系 统的效率、稳定性和适用范围。 ( 3 ) 合理的功能模块划分 组件式g i s 通常包括三种不同层次的组件:基础组件、高级通用组件、行业性组件。 基础组件面向空间数据管理,管理基本的数据交互,并能以灵活的方式与数据库系统连接。 高级通用组件由基础组件构造而成,面向通用功能,简化用户开发过程,如显示工具组件、选 择工具组件、编辑工具组件、属性浏览器组件等等,它们之间的协同控制消息都被封装起来,这级 组件经过封装后,使二次开发更为简单。 行业性组件抽象出行业应用的特定算法,固化到组件中,进一步加速开发过程。 因此,设计组件式g 1 s ,首先要区分清楚基础组件、高级通用组件、行业性组件的功能,以便 根据用户需求发布相应的单元。既要体现出组件式软件重用的优势,同时也要符合g i s 软件开发的 习惯。 ( 4 ) 支持流行g i s 数据格式 一个g i s 平台所能支持的数据文件的数目和种类,也就是其数据共享能力,是其竞争力的重要 体现。目前数据共享的主要方法主要有三种:o p e n g i s 互操作模式、直接数据访问模式、数据转换 模式。 o p e n g i s 互操作模式需要每个不同格式的宿主软件都按照统一的规范实现数据访问接e l ,用户 必须同时拥有这两个g 1 s 软件,并且同时运行,才能完成数据互操作,在短时间内难以实现。 直接数据访问是指在一个g i s 软件中实现对其他软件数据格式的直接访问,用户可以使用单个 g i s 软什存取多种数据格式。但是,一旦其他数据文件的格式发生改变,则其至因为没有将该数据 保存为系统能识别的内部格式的备份,而无法继续再使用该数据。 因此,t r a n o b j e c t s 提供了独立运行的数据转换软件,把流行的g i s 数据直接转换为本系统所定 义的格式,一劳永逸。 1 0 第三章t r a n o b j c c t s 的总体设计 3 3t r a n o b j e c t s 的体系结构 t r a n o b j e c t s 体系结构描述了组件是由哪些模块构成的,以及各模块之间的关系。t r a n o b j e c t s 总 体设计的目的之一就是导出组件的体系结构,以此为框架,进行更详细的设计活动。下面将从功能 划分和层次划分两个层面来描述t r a n o b j e c t s 的体系结构。 ( 1 ) t r a n o b j e c t s 的功能划分 t r a n o b j e c t s 从功能上划分如图3 2 所示- 地图控件 数 据 访 问 模 块 地 图 显 不 模 块 空 间 查 询 模 块 等 值 线 绘 制 模 块 地 图 编 辑 模 块 数 据 转 换 模 块 图3 2t r a n o b j e c t s 的功能结构 t r a n o b j e c t s 是由数据访问模块、地图显示模块、空间查询模块、等值线绘制模块、地图编辑模 块和数据转换模块组成的一个小型的g i s 组件。各部分功能描述及设计要求如下: 1 ) 数据访问模块 g i s 软件绝大多数操作是以空间数据为操作对象,空间数据访问十分频繁,因此数据访问模块 是整个g i s 软件的基础。数据访问模块以封装好的数据访问对象来实现对地图数据的访问和连接并 可供其他模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中同步学习导与练 地理 八年级下册 配粤教人民版 第六单元能力拓展训练营
- 玻璃采光顶施工方案模板
- 护理:疼痛管理的新思路
- 2026年天基算力网服务空天陆海智能体应用
- 2026年地区特定默认值申请条件与证明材料准备
- 2026年“数据要素价值释放年”背景下数商生态培育的战略机遇
- 2026北师大版数学八年级下册第4章因式分解1 因式分解教案
- 2026年托幼一体化从试点扩面向提质增效转型战略前瞻
- 电力控制设备相关行业投资方案
- 安全文化建设:提升整体护理水平
- 2026年司法协理员考试题及答案
- 2026年宁夏财经职业技术学院单招综合素质考试题库附答案详解(能力提升)
- 2026年四川艺术职业学院单招综合素质考试题库附参考答案详解(满分必刷)
- 套期保值业务管理制度
- 2026年世界水日节约用水主题班会
- 2026山东铁路投资控股集团有限公司招聘80人笔试参考题库及答案解析
- 初中数学新课程标准(2024年版)
- 中药灌肠疗法课件
- 市政绿化养护及市政设施养护服务方案(技术方案)
- 班级多媒体管理员工作职责
- 克服压力(认知行为自助手册)
评论
0/150
提交评论