已阅读5页,还剩57页未读, 继续免费阅读
(计算机应用技术专业论文)基于gis的应用程序开发框架的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕士学位论文摘要 摘要 在g i s 应用领域日趋广泛化的背景下,如何提高g i s 软件开发的效率,保证 软件质量,是迫切需要解决的问题,软件复用是一种有效的手段。框架是设计复 用和代码复用的结合。从软件复用角度出发,g i s 开发框架方面已经有了许多相 关工作,然而却没有一套将地图、业务数据访问和权限结合在一起的解决方案, 本文旨在实现这一集成化目标。 本文介绍了应用程序框架和g i s 开发框架的发展现状,提出了本文g i s 应用 程序开发框架的目标,集成传统g i s 功能、权限控制、数据中心,并兼顾开发模 式的可选性。在比较了组件式、软件总线式、插件式框架方案的优缺点基础上, 将插件机制引入组件框架,结合m v c 模式,形成了本文的g i s 集成开发框架。传 统应用程序难以预先获取系统功能的清单信息,视图与功能控制高度耦合,为了 将权限集成到系统中,采取在功能执行前进行权限认证的方法,或者根据权限静 态生成系统u i 的方法。本文的框架通过将视图与数据、控制分离,将系统初始 化过程划分为插件载入,根据插件生成界面u i 两个阶段。在插件生成u i 过程通 过权限动态控制,不同权限用户将见到不同u i 的g i s 系统。 本文详细阐述了g i s 应用程序开发框架的设计思想、总体结构和模块实现。 最后以一个简单的示例,给出了基于该框架的开发流程。 关键词:g i s ,软件复用,a d f ,权限,数据中心 a b s t r a c t i nt h ec o n t e x to fg i sb e i n ga p p l i e di n t oaw i d er a n g eo fd o m a i n s ,h o wt oi m p r o v e t h ee f f i c i e n c yo fg i ss o f t w a r ed e v e l o p m e n ta n da s s u r a n c eo fs o f t w a r eq u a l i t yi sa n u r g e n tp r o b l e m ,s o f t w a r er e u s ei sa ne f f e c t i v ei n s t r u m e n t f r a m e w o r k i sac o m b i n a t i o n o fd e s i g nr e u s ea n dc o d er e u s e f r o mt h es o f t w a r er e u s ep o i n to fv i e w , an u m b e ro f r e l a t e dw o r ka b o u tg i sd e v e l o p m e n tf r a m e w o r kh a sa l r e a d yb e e nc o n d u c t e d ,y e tn o i n t e g r a t e ds o l u t i o no fm a p s ,o p e r a t i o nd a t aa c c e s sa n dp e r m i s s i o n sw a sp o s t e d ,a n di t i st h em a j o ri d e a o ft h i sp a p e r t h i sp a p e rd e s c r i b e st h es t a t eo ft h ea r t , p o s t st h ef o l l o w i n gt a r g e t s ,i n t e g r a t i o no f t r a d i t i o n a lg i sf u n c t i o n s ,a c c e s sc o n t r o l ,d a t ac e n t e r s ,t a k i n gt h eo p t i o n a ld e v e l o p m e n t m o d e li n t oa c c o u n t i nc o m p a r i n gt h ea d v a n t a g e sa n dd i s a d v a n t a g e so ft h e c o m p o n e n t b a s e d ,s o f t w a r e b u s ,p l u g - i nf r a m e w o r k , i n t r o d u c e st h ep l u g i nm e c h a n i s m i n t ot h ec o m p o n e n t sf r a m e w o r k ,a n dc o m b i n e dw i t hm v cp a t t e r n ,f o r m i n ga n i n t e g r a t e dg i sa p p l i c a t i o nd e v e l o p m e n tf r a m e w o r k p r e a c q u i s i t i o no fs y s t e mf e a t u r e s i sd i f f i c u l ti nt r a d i t i o n a la p p l i c a t i o n s ,h i g hd e g r e eo fc o u p l i n go fv i e w s ,d a t aa n d c o n t r o l ,r e s u l t e di na u t h e n t i c a t i o nb e f o r ee x e c u t i o no ff u n c t i o n ,o rs t a t i cg e n e r a t i o no f s y s t e mu ia c c o r d i n gt op e r m i s s i o n s t h r o u g ht h es e p a r a t i o nb e t w e e nv i e wa n dd a t a , c o n t r o l ,s y s t e mi n i t i a l i z a t i o np r o c e s si sd i v i d e di n t op l u g - i nl o a d i n g ,a n dg e n e r a t i o no f u it w os t a g e s i nt h ep r o c e s so fu ig e n e r a t i o nd y n a m i cc o n t r o lt h r o u g hp e r m i s s i o n s m a k e si tp o s s i b l et h a td i f f e r e n tu s e r ss e ead i f f e r e n tu io ft h eg i ss y s t e m t h i sp a p e rd e s c r i b e si nd e t a i lt h eg i sa p p l i c a t i o nd e v e l o p m e n tf r a m e w o r k ,d e s i g n i d e a ,t h eo v e r a l ls t r u c t m ea n dm o d u l e si m p l e m e n t a t i o n f i n a l l yas i m p l ee x a m p l ei s g i v e nt os h o wt h ea p p l i c a t i o nd e v e l o p m e n tp r o c e d u r eb a s e d o nt h ef r a m e w o r k k e y w o r d s :g i s ,s o f t w a r er e u s a g e ,a d f ,a u t h o r i t y ,d a t ac e n t e r 浙江大学硕七学位论文 图目录 图目录 图2 1n e tf r a m e w o r k 体系结构示意图9 图2 2软总线结构示意图【2 0 1 。1 2 图2 3 c 2 体系结构示意图【2 1 1 1 3 图2 4插件框架总体结构图1 6 图3 1组件式框架结构图。2 1 图3 2 软总线式框架结构图。2 3 图3 3插件式框架结构图。2 3 图3 4a d f 应用系统总体结构图2 6 图3 5 框架模块结构图。2 8 图3 6框架系统初始化流程3 3 图4 1插件契约类图3 4 图4 2 宿主应用程序类图:3 7 图4 3u i 工厂类结构图。3 8 图4 4插件管理类图结构。3 8 图4 5 主窗体及相关对象关系图3 9 图4 6 权限配置工具。4 2 图4 7对象树配置流程4 3 图4 8 权限a u t h o x - 类图。4 4 图4 9t o n n c l i e n t m a n a g e r 类图4 5 图5 1应用系统主界面4 8 图5 2插件功能展示4 9 图5 3 地理对象服务5 0 图5 4权限服务5 0 图5 5数据中心服务51 i v 浙江大学硕士学位论文 表目录 表目录 表1 1 国外和国内g i s 发展史2 表2 1 各种框架优缺点比较1 4 表2 2 g i s 框架优缺点比较16 表3 1两种开发模式比较2 0 表3 2 g i s 应用程序开发框架方案比较2 5 v 浙江大学硕士学位论文 第1 章绪论 1 1 课题研究背景 第1 章绪论 地理信息系统是2 0 世纪6 0 年代发展起来的一门综合性学科。第一个g i s 系 统是加拿大g i s 系统( c g i s ) ,是g i s 之父r o g e rf t o m li n s o n 主导实旌的土地 利用管理系统。经过4 0 多年的发展,今天我们看到g i s 已经在各个领域中发挥 作用,并已经进入产业化发展轨道。在g i s 产业化发展过程中,如何提高软件生 产质量和效率,已经成为重要的研究课题。 1 1 1g i s 发展概述 从g i s 出现至今的4 0 多年发展历史中,随着研究的深入和技术的进步,g i s 这一术语也发展出了不同的两层含义:地理信息系统和地理信息科学【l 】。前者主 要是从技术层面来看待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 方面的知识水平影响着这些过程的实施。g i s 系统重要 的功能就在于,使不具有专业g i s 知识的人员也能通过软件工具得到想要的空间 知识。 世界g i s 发展大致经历了四个阶段,内涵和外延逐步丰富;国内g i s 起步晚了 2 0 年,但是发展也相当迅速,并且在政府大力倡导下已经向产业化方向发展。国 外和国内g i s 发展的大致过程【2 】,如表1 i 所示。 浙江大学硕十学位论文 第1 章绪论 表1 1国外和国内g i s 发展史 国外g i s 发展国内g i s 发展 2 0 世纪6 0 年代起步阶段 特点:主要关注空间 数据的地学处理 2 0 世纪7 0 年代 巩固阶段准备阶段 特点:主要关注地理特点:可行性实验 信息的管理 2 0 世纪8 0 年代突破阶段试验起步阶段 特点:数据存储、处特点:理论研究、规范探讨、 理;空间数据库软件开发 2 0 世纪9 0 年代社会化阶段发展阶段 至今特点:与i n t c r n e t 结特点:应用领域驱动,大规模 合;数据共享,系统应用 互操作 近1 0 年来的发展,g i s 已经在各行业中得到应用【3 】。在土地利用【4 】【5 】,电力调 配【6 】,交通运输【7 】【8 】,环境保护【9 】,邮政管理【1 0 】,应急指挥【1 1 】,城市规划【1 2 】,教育, 电子警务等各个领域都发挥出重要作用。通过对这些领域应用案例的分析,可以 发现g i s 首先是对现有资源的整合展示,如将土地资源利用状况,电网设备的空 间位置,物流车辆、公交车辆、警务人员的当前位置,反映在软件系统中,使相 关管理人员可以直观地掌握现有资源、人员的分布情况。 g i s 对现有数据的空间分析功能,为用户提供了有价值的信息,例如土地覆 盖变化的特征、过程和趋势,物流车辆、公交车辆的线路安排是否合理,以及其 2 浙江大学硕士学位论文 第l 章绪论 它信息得以在系统中反映,为管理人员的决策分析提供了信息保障。 在资源利用方面,g i s 与遥感( r s ) 技术结合,用于反映土地资源利用的变化 特征、过程和趋判4 】:直观地反映土地覆盖发生变化的位置、大小、类型、范围 和分布信息【5 1 。通过描述电网各种设备的空间位置信息,以及设备间的拓扑关系, g i s 在配电网中促进了规范化生产管理( 6 1 。 在辅助管理方面,g i s 与g p s 整合,在物流配送、交通监管上起着重要作用。 无论是运输车辆还是人员,携带了g p s 设备,即可将准确的位置信息实时或准实 时地反馈回中心系统,使中心管理人员能有效把握人员、交通设备的工作状况。 来自不同领域的需求,每次都要按照软件工程中传统的瀑布模型来开发系 统,费时费力,而且效果也不一定好。如何能够在尽可能短的时间内,利用已有 g i s 系统的成果,为新领域g i s 项目的开发提供帮助,已经成为亟待解决的问题, 而且这也是软件工程一直的研究内容。 1 1 2 软件工程发展趋势 软件工程作为一门独立学科已经过了4 0 多年的发展,从解决最初的“软件 危机,到使软件开发工程化,软件生产工业化,研究和实践都取得了长足进步。 2 0 世纪8 0 年代中期至9 0 年代,软件复用成为软件工程领域研究和实践的重要课 题。【1 3 】在此之前,软件复用就已经存在于软件工程领域的研究和实践中,并且 随着软件抽象层次的提高而加大粒度。最早的汇编语言程序设计是指令级别的复 用:结构化程序设计方法和语言的出现,复用上升到了函数级别;而面向对象程 序设计语言的诞生不仅是对客观世界的一种拟人化【”】抽象,而且也使得软件复用 到了对象一级,是对同类客观实体的数据和操作的复用。 随着对更粗粒度的复用技术的研究和实践,构件技术进入人们的视野,构件 是一组相关对象的集成体,内部对象之间的关系对外透明,外部可见的只是一组 接口,使得软件更加模块化。构件是一种复用理念,围绕这种理念的实践形成了 如微软的c o m 家族的组件技术,s u n 系列的j a v ab e a n 这样的具体技术。 设计模式是在特定环境中用于解决一般性设计问题的类和对象的描述,是在 浙江大学硕士学位论文第l 章绪论 设计层次上的抽象【1 4 1 。设计模式的引入,是复用技术发展历程中的重要一步,之 前的复用是停留在软件开发或者说是代码级别,然而设计模式是软件设计层面的 复用,是解决同类问题的方法上的复用。 软件工程从早期关注算法和数据结构,转向了对软件体系结构的研究,然而 这方面理论研究成果丰富却没有统一的理论模型支持,至今都没有统一的定义, 同时在应用方面的研究也比较欠缺。从研究内容的分歧,形成了学院派和实用派 两个研究学派。【1 5 】 设计最终都要落实到编码开发,怎么样更好地使用好设计复用,是软件工程 领域需要研究的问题。框架正是介于代码级和设计层复用之间的桥梁,也是将体 系结构理论研究落实到应用开发实践中的有效方法。 框架是体系结构的具体实现,体系结构解决的是应用系统的设计问题,不关 注具体实现方式。框架是具体应用系统的骨架程序,是系统半成品,与实现平台、 编程语言都有着密切关联,受它们的制约。一种语言下实现方式在别的语言环境 下不一定能以同样方式实现。 1 1 3 项目实际需要 早在2 0 0 0 年以前,浙江大学智能软件实验室就开始了g i s 项目的研究和开 发,之后形成了自己的g i s 开发平台,还在平台之上形成了通用开发框架,运用 于多个项目实践,这些项目实践使得开发平台和框架不断得到发展和完善。 同时,用户也对g i s 系统提出了新的需求,如不同用户要求具有不同的系统 使用权限,系统应支持大量业务类数据的管理等等。这些新需求,直接导致了数 据总线和权限组件的产生。 现有的应用系统开发,是基于通用框架和数据总线、权限组件之上的开发。 三者关系松散,甚至可以说完全独立,“分而治之 的策略,排除了这三者间的 耦合关系,但是在更高的应用层,却产生了高度耦合的危险,因为应用开发要兼 顾三个模块,变得相当复杂。使得应用开发人员陷入了功能实现这一细枝末节, 无暇顾及系统架构的设计。 4 浙江大学硕士学位论文第l 章绪论 因此,梳理现有各个模块,整合这些资源,为二次开发提供一个简单、好用 的应用程序开发框架,变得非常迫切。 1 2 国内外研究现状 组件技术的兴起,组件之间互操作性的研究进展,高度的复用,使得基于组 件的软件开发受到软件开发人员的青睐。基于组件的框架结构的研究也越来越多 t 1 6 1 1 1 7 1 。同时设计模式也在框架中得到广泛使用,形成了以模式为主体结构的框架 f 1 8 】。文献f 1 9 】更提出了框架是组件和模式组合而来的观点。随着软件体系结构的 研究成为软件工程领域的重点,框架的研究也将重心放在了软件的架构上 【2 0 】f 2 1 】瞄】。提出了“软件总线”概念,出现了软件总线产品【2 3 】【2 4 】,以及在此基础 上的软件体系结构【2 4 】。近年来,面向服务的体系结构( s o a ) 成为软件系统新的 解决方案,基于s o a 的应用程序框架也成为了框架研究的内容【2 5 1 。除了基础软 件结构的研究,研究人员也开始注意到权限【2 6 】网、工作流【2 6 】等问题的研究。 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 框架的发展也形成了基于组件的框架结构 【2 8 】1 2 9 】。设计模式也为构建具有灵活性和扩展性的g i s 框架发挥了重要作用。从软 件结构入手,研究使g i s 系统能以更灵活的方式组织系统功能,并且还能通过配 置选择系统的功能组成,形成了插件式的框架结构【3 0 】【3 1 1 。 1 3 本文工作与创新 本文创新点在于,将g i s 系统功能全面纳入权限范畴,使得不同用户只能在 权限规定范围内使用系统功能,为系统安全性提供了保障;同时,通过对现有软 件框架、g i s 框架体系结构的分析和研究,提供了基于插件式,又不局限于插件 开发方式的新框架;在c s 、b s 开发模式的比较分析之下,在框架设计和实现 浙江大学硕士学位论文第l 章绪论 过程中,以m v c 设计模式为指导,使视图与数据、控制分离,为兼容两种开发 模式做了有益的探索。 本文的研究内容具体包括以下几个方面: 对g i s 发展现状,发展趋势的学习和研究。 对软件复用,多层软件体系架构的研究,以及对框架相关技术、设计模 式的学习和研究。 对插件技术相关文献的学习和研究,把握插件技术工作原理,将插件机 制引入框架。 对权限、数据中心技术的研究,为的是提供一个结合权限和数据中心的 功能强大的集成开发框架。 对c s 和b s 开发模式的比较分析,探索能够支持两种模式的框架结构。 1 4 本文组织结构 本章绪论介绍了应用程序发展过程中出现的通用框架开发技术,概述了g i s 发展过程出现的面向g i s 的开发框架技术,进而分析它们的优缺点,以此论证了 本文将要阐述的面向g i s 的,集成了权限、数据中心,并考虑支持c s 、b s 两 种开发模式的二次开发框架的意义。本文第2 章首先介绍了应用程序框架相关的 技术,以及通用的应用程序开发框架,然后重点分析了已有的g i s 开发框架,并 在此基础上,结合当前的应用需求,分析了当前g i s 开发框架存在的不足之处。 在第3 章中,介绍了g i s 开发框架的来源,阐述了该框架期望中的整合现有 资源的目标,并分析比较了3 种设计方案的优缺点,最后给出了改进的方案,以 及开发框架的总体结构和详细模块设计。 第4 章详细介绍了开发框架的实现,深入讨论了框架层的统一接口的定义及 具体的实现。 第5 章介绍了基于框架的应用系统开发流程,实现了一个简单的地图应用, 并通过三类插件的开发案例,测试了开发框架的可用性。 第6 章对本文工作做了总结,并对g i s 应用开发框架的发展做了些思考。 6 浙江大学硕士学位论文 第2 章g i s 应用程序开发框架概述 第2 章g i s 应用程序开发框架概述 框架是可以被应用程序开发人员个性化定制的应用程序的骨架,框架的另一 种定义是可以被表示为一组抽象类和它们的实例间的交互方式的系统的全部或 部分可重用的设计【1 9 1 。g i s 应用程序开发框架( g i sa d f ) 是在g i s 领域应用程 序的骨架,为开发人员提供设计和代码级的重用。应用程序开发框架产生的一个 重要原因,是为了软件复用,在软件工程发展过程中,已经有多种软件复用技术 被使用,组件技术,设计模式,框架都是在不同层次上对软件技术的一种抽象。 2 1 框架相关 2 1 1c o m 微软的c o m ( c o m p o n e n to b j e c tm o d e l ) 是一组软件规范,用于创建可重用 软件组件,为w i n d o w s 应用程序提供统一的、可扩展的面向对象通信协议 3 2 1 。 不同c o m 组件链接在一起能够构建复杂应用系统。c o m 组件以其先天优势,可 以方便的使用w i n d o w s 操作系统提供的各种服务。c o m 代表的是一个技术家族, 包括了c o m + ,分布式c o m ( d c o m ) ,以及a c t i v e x 控件。 c o m ,是一种以组件为发布单元的对象模型,这种模型既提供了组件之间进 行交互的规范,又提供了实现交互的环境。c o m 是一个二进制标准,它详细地 规定了一个c o m 组件所应具有的内存结构,c o m 对象之间的交互完全基于对此 内存结构的操作,因此可以在很大程度上屏蔽了编程语言的差异。c o m 技术提 供的这种语言无关性,使得不同的软件开发商只需遵守c o m 规范,就可以选择 合适的编程语言来开发自己的组件。 a c t i v e x 技术是在网络应用程序发展下推动形成,是基于c o m 的技术集合, 除了c o m 本身的特点,还增加了网络处理功能,支持t c p i p 、h t t p 等网络协 议。使用时需要将a c t i v e x 控件下载到客户端浏览器。 d c o m 派生于a c t i v e x ,继承了后者的功能之外,具备了另外两方面的特点, 7 浙江大学硕士学位论文 第2 章g i s 应用程序开发框架概述 第一满足“瘦客户端”理念,只要在服务器内存放一份d c o m 部件,不同客户 端无需下载,直接通过网络来访问这一d c o m 部件。第二符合软件工程模块化 思想,将大型系统中处理相同工作的部分单独形成专门的软件模块,系统其它部 分只需要调用该组件,这样对系统维护升级产生的好处是,无需对整个系统进行 修改,只用对其中的某些组件进行升级,有效提高了系统的灵活性。 c o m 技术在w i n d o w s 系统上优势明显,但是缺点同样明显,跨平台限制制 约了它的使用,使得其它组件技术得以在操作系统多样化的市场环境下生存发 展。 c o r b a 是o m g 组织推出的分布式计算规范,该规范的实现具有语言无关 性,允许用不同编程语言实现分布式对象,并且提供了分布式对象间的通信机制。 c o r b a 除了独立于各种编程语言,还独立于不同的操作系统和网络环境。因而 一度在业界得到i b m 、b e a 等在内的厂商的支持。 c o r b a 体系结构主要分对象请求代理( o r b ) 、公共对象服务、公共设施3 个层次。o r b 位于最底层,是c o r b a 标准的核心部件,起到“软总线 作用, 为分布式系统规定了标准化通信接口。公共服务则提供了公共的事务并发控制、 安全等服务。 c o r b a 技术具有良好的开放性和互操作性,但是技术体系复杂,发展相对 缓慢。【3 3 】 n e t f r a m e w o r k 是新一代分布式计算平台,以提供一致的面向对象的编程环 境,提供一个安全、高性能的代码执行环境为目标。n e t 框架包括公共语言运行 时( c l r ) 和框架类库两部分。c l r 是框架的基础,在执行时负责内存管理、线 程管理、远程处理等核心服务。框架类库包含了丰富的类型集合,支持用于创建 控制台程序、g u i 程序、w e b 应用、w 曲服务等,提供对本地和远程资源的访问能 8 浙江大学硕士学位论文第2 章g i s 应用程序开发框架概述 力,对数据库的操作能力。n e t 框架的体系结构如图2 1 所示。 图2 1n e tf r a m e w o r k 体系结构示意图 n e t 框架的优点在于提供了一个简单、一致的编程模型,有效提高了应用 系统的开发效率。复杂的内存管理由运行时统一管理,程序集的引入对d i i 版本 实施了有效的控制,避免了d i i 陷阱【3 4 】的出现。 n e t 框架的最主要缺点是只能在w i n d o w s 系统使用。其次,由于运行时负 责了框架类库与底层系统的交互,使得上层应用难以直接操作底层系统。另 外,n e t 框架类库丰富同时又是相当复杂,对于程序员而言容易上手,但是要创 建出复杂高效的应用系统,也不是那么容易的事。 2 1 4 设计模式 设计模式是在特定环境中用于解决一般性设计问题的类和对象的描述,是在 一定层次上的抽象【1 4 】。面向对象语言为程序员提供了广泛的编程选择,但不是每 一种编程实践都是良好的。设计模式提出了一些通用的设计原则,使得程序员在 进行系统设计的时候,采取较优的策略。例如针对接口编程,而不是针对实现编 程;优先用对象组合,而不是继承【1 4 1 。 设计模式与框架有共性也有差异。设计模式给出的是特定环境下一类问题的 9 浙江大学硕士学位论文 第2 章g i s 应用程序开发框架概述 可重用解决方案,框架具有类似的目的,事实上如s m a l l t a l k 8 0 3 5 】开发框架即代 表了m v c 模式。而一般一个框架都会使用到多种设计模式,因为框架是介于代 码层和设计层之间的重用技术的体现。设计模式比框架抽象,因为模式需要通过 程序来表现,而框架本身就是程序,框架是组件与模式结合的产物【1 9 1 。 设计模式是设计层的抽象,可复用的是一种设计理念,但是应用系统的设计 开发最终要交付能有效运行的程序,将一种好的设计理念付诸实践需要不菲的成 本。框架是已经成型的程序结构,合理运用了设计模式的框架,是对这种编程实 践的复用,可有效避免不同程序员因对设计理念理解上的差异带来的不同结果。 2 1 5o rm a p p i n g g i s 。系统处理的是空间和非空间的数据,数据量比一般信息系统更大。对数 据的访问管理也是g i s 框架层需要着重考虑的问题之一。传统方式是通过 a d o n e t 直接访问数据库,给开发人员增加了复杂性。目前一般都是采用数据访 问层屏蔽数据访问的细节,对应用开发人员提供面向对象方式的访问接口。在数 据访问层采用的技术就是对象关系映射技术( o rm a p p i n g ) ,h i b e r n a t e 就是这一 技术的典型应用。 2 1 6 文件数据的b 1 0 b 存储 文件数据的数据库存取是信息管理系统中经常会遇到的问题,g i s 系统除了 文件数据存取之外许多空间数据也通过b 1 0 b 方式存储,如空间对象的索引信息, 地理对象的坐标信息。文件数据格式种类繁多,不规则,大小变化很大,与传统 文本数据统一存放于数据库比较困难。传统做法是将文件存储在文件系统,而将 文件路径保存在数据库,这会带来数据一致性难以维护,并且迁移复杂易出错的 问题,所以将文件数据纳入数据库统一管理具有现实意义。 目前多种数据库产品都已经支持大数据字段,如s q ls e r v e r2 0 0 0 中i m a g e 类型,o r a c l e 中b l o b 类型,通过开辟独立的对用户不可见的存储页,而在对用户 可见的字段中存储了数据页的指针方式有效解决了数据库对文件数据的支持。 1 0 浙江大学硕士学位论文第2 章g i s 应用程序开发框架概述 a d o n e t 对以b l o b 方式存储文件数据提供了支持,可以通过存储过程和直接以 s q l 语句方法进行。大数据块存储如果只执行一次数据库事务,会因为文件过大 而消耗太多内存资源,将大文件数据以二进制流分块读取到缓冲区,然后提交数 据库,可以有效解决这一问题。 在局域网环境下的实验数据表明,存储数据库效率在块大小为5 1 2 m 时最高。 总共时间的9 8 以上都是花在数据库连接,执行数据库事务上。7 0 多m 的文件 存储时间在1 0 s 左右,而一般1 m 左右的文件可以在1 s 之内完成存储。g i s 框架 中,运用o rm a p p i n g 技术将这些数据,以面向对象方式与普通数据一样管理, 增强了系统的数据一致性,更利于数据迁移,同时使得g i s 系统能够与多媒体播 放组件结合,丰富应用系统的功能。 2 2 通用开发框架 2 0 世纪8 0 年代以来,软件复用和构件技术成为软件工程研究和实践的新课 题【1 3 】。软件复用最初就是通过组件来实现的,由此形成的开发框架已得到应用 0 6 1 1 7 】【2 0 】。在组件技术基础上,结合计算机体系结构中的总线思想,“软总线” 2 3 1 1 2 4 1 的概念被提出,并用于应用程序开发框架。在w e b 开发领域,m v c 这一设计模 式得到广泛运用【1 8 1 ,产生了多个w e b 开发框架【1 7 1 。 2 2 1 组件式 组件技术的发展,有利于软件分工,使得软件开发也向着工业化方向发展, 打破传统的软件开发模式。新的开发方式下,有专门的组件开发人员,专注于可 复用组件的设计开发和测试;应用程序集成人员,负责选取合适的组件,集成到 一个应用系统中,系统测试通过后,交付给最终用户使用。类似于流水线式的开 发方式,减少了软件项目的开发时间。 人们在享受组件技术带来的便利的同时,不得不承担潜在的风险。专业的组 件开发人员需要丰富的专业领域知识,才能开发出满足需求的组件。用户需求的 多变性已经是软件行业的常识。在变化的用户需求面前,怎么保证一次开发的组 浙江大学硕士学位论文第2 章g i s 应用程序开发框架概述 件能够满足用户需求。因此,组件开发者始终都会面临辛辛苦苦开发的组件库过 时的风险。集成人员作为组件的客户,也将遇到这样的情况,组件库市场产品众 多,然而却没有适合自己的部件。同时,应用系统来自于不同生产者,开发过程 的不一致性,难以保证每个组件都有很好的容错性、稳定性,这会导致集成人员 需要花费额外的精力在每个组件的功能测试上。用户需要承担的风险在于两方 面,一是软件产品能否满足需求,二是用户对软件产品的可控性差。第二点指的 是,软件产品由来自不同厂商的组件,经由集成开发商集成而来,一旦软件出现 未达到需求的情况,需要更长的时间确定出责任人,并进行改进。这一过程基本 不受用户控制,而在软件业竞争激烈的现状下,这种不可控制性无疑会对企业的 竞争地位产生严重的损害。【3 6 】 2 2 2 软总线 开发一个独立于使用环境的组件不是件容易的事,然而组件独立性对于系统 稳定性却是相当重要【3 7 1 。一方面强调组件之间的独立性,另一方面又要满足组件 之间的互操作性,这似乎是一对矛盾。然而,已经有许多相关研究和实践取得了 成果。如通过独立的中介传递组件之间的消息:基于代理的软件开发方式目标在 于组件之间的完全独立性【2 4 】。 软件总线概念由来己久,是一种连接不同软件组件的机制,类似于硬件体系 结构中的总线,提供了标准的通信规范,遵循这种规范的组件可以相互通信。【2 4 】 软件总线提供了组件之间数据和控制的共享机制。软件总线的实现技术有 t o o l t a l k ,s o f i b e n c h ,c o r b a 。【2 1 】也已经有软件总线产品,如p o l y l i t h 2 3 、b a r t 【2 4 】。 图2 2 所示是文献 2 0 】中描述的软总线结构。 图2 2软总线结构示意图【2 0 】 1 2 浙江大学硕士学位论文第2 章g i s 应用程序开发框架概述 b a r t 软件总线解决了消息传递、数据共享和数据转换问题。数据共享是通过 发布订阅机制实现。一个组件将数据发布到总线,感兴趣的组件可以订阅该数据。 消息传递是通过匿名方式多点传播,将一个组件的消息发送到总线上,连接在总 线上的组件可以选择接收消息。b a r t 支持同步和异步两种消息机制。同步消息, 可以通过c a l l b a c k 方式反馈回消息发送组件。 2 2 3 基于组件和消息 c a l i f o r n i a 大学rn t a y l o r 等人研究指出,用户交互软件在应用软件中占了 很大比重,而u i 领域的重用技术仅限于工具包技术。他们设计了一种被称为c 2 的g u i 软件架构( 见图2 3 ) 。组件和连接器构成了该体系结构,组件之间只能通 过连接器进行通信;连接器主要负责消息路由、广播,次要职责是消息过滤。设 计原则是:底层独立性,基于消息的通信,多线程,没有共享地址空间的假定, 实现独立于体系结构。c 2 体系结构的目标在于同时满足:借助通知的隐式调用, 进程间和进程内的消息机制,领域特性的体系层次,多语言和多进程支持。连接 器的性质类似于软件总线,t o o l t a l k ,s o f l b e n c h ,c o r b a 也可以作为它的实现技 术。 图2 3c 2 体系结构示意图【2 1 】 浙江大学硕士学位论文 第2 章g i s 应用程序开发框架概述 可扩展性和性能之间的平衡是软件系统设计过程中经常需要考虑的因素。c 2 体系结构具有良好的可扩展性,基于该体系所做的实验也呈现了该体系具有不错 的性能。但是如作者所说,这些实验性的软件系统都是小规模系统,当系统规模 增长时,是否仍然具有良好的性能,还需要进一步实验。 上面三种结构的框架的优缺点如表2 1 所示。 表2 1各种框架优缺点比较 特点优点 不足 框架 组件式代码复用;容易实组件不符合需求;容易过时; 现;模块化;利于分组件之间消息机制难以控制 工;组件产品丰富 软总线式 设计复用代码复用较差;实现难度大 基于组件和消设计复用;考虑了组系统规模较大时性能还不确 息件间消息机制;良好定 的扩展性 2 3g i s 开发框架 2 3 1 组件式 组件式g i s 框架是指将与地图相关的模块封装成组件,而将其它业务功能封 装成与之独立的组件或功能模块,组件和功能模块提供公共接口给外部访问,面 向对象语言实现的框架程序,通过调用两者的公共接口实现交互,从而实现g i s 的功能。 组件式g i s 具有高度灵活性,可以在g i s 组件基础上开发出个性化的应用系 统。丰富的g i s 组件,为应用开发提供了广泛的选择。常见的g i s 组件有e s r i 1 4 浙江大学硕士学位论文第2 章g i s 应用程序开发框架概述 公司的m a p o b j e c t s ,m a p l n f o 公司的m a p x ,国内的s u p e r m a po b j e c t s 【2 8 1 。 组件式g i s 不足之处在于,业务功能模块与g i s 组件之间的相互独立性不够, 导致系统稳定性不够,系统的维护升级需要涉及比较多的模块。组件式g i s 中的 数据一致性维护比较复杂 2 9 1 。g i s 组件操作的足空间数据,而业务模块需要存取 业务数据,两部分数据一般会以不同数据库存储,但是需要进行关联才能以地图 方式展现业务功能。因而,两部分数据的任何改变不是孤立的,需要进行数据的 同步。一旦对任何一个模块接口的调用没有正常结束,就需要有一种机制保证其 它模块不会单独对数据做出修改。 2 3 2 插件式 许多常用的软件都使用插件式框架体系结构,如o f f i i c e 、a u t o c a d 、v s n e t 、 e c l i p s e ,尤以e c l i p s e 的框架结构著名,由于其开源、可扩展性,全球成千上万爱 好者和商业软件公司都基于它开发了多种类型的插件,使e c l i p s e 的功能变得越发 丰富和强大,反过来也促进了自身的发展。 使用插件式框架机制的原因有- - :无需重新编译和发布对程序功能进行扩 展:不需要在源码环境下增加新功能;能够灵活适应业务逻辑的不断变化和新规 则的加入。如文献3 1 1 所言,使软件随着用户实际需求实现“生长”。【3 1 】 文献【3 1 】中介绍的g i s 开发框架,分为插件引擎、宿主程序、插件三个模块。 插件引擎的设计,包括框架契约、插件容器、插件动态加载和插件分类。契约设 计用到了接口。插件容器的实现使用了集合,泛型机制以及聚合技术。插件动态 加载使用反射技术,插件分类使用了类型转换( 强制转换、i s 关键字、a s 关键字) 和拆箱操作。框架宿主程序由一组基本的静态界面,插件u i 对象的动态生成程 序,以及各种u i 对象与插件对象间的事件处理程序构成。其中的事件处理运用 了委托和事件机制,将各种u i 对象的事件与插件对象的处理方法进行绑定的原 理。 该框架存在的问题有,菜单不支持多级;工具项、菜单项与对应的命令插件 对象的对应关系仅通过字符串形式的名字来实现;插件加载过程是根据插件类型 浙江大学硕士学位论文第2 章g i s 应用程序开发框架概述 名称解析。这样做的结果是,不允许同名插件的存在,这就给插件开发人员带来 很大的困扰,因为插件开发框架目标在于一个比较长的时间周期内,为各个应用 系统开发人员提供完整、统一的开发模型和编程框架,不同应用系统开发人员开 发的插件不能保证都足类型名唯一的,也没有理由让开发人员在开发新插件时必 须先查阅已有的插件库,以保证不破坏插件唯一性。同时也给系统调试运行增加 了麻烦,同名不同功能,也会使调试人员困惑不已。插件之间的通讯作为一个难 点,也是该框架没有支持的。如图2 4 所示是插件框架的总体结构示意图。 图2 4插件框架总体结构图 上述两类g i s 框架的特点总结如表2 2 所示。 表2 2g i s 框架优缺点比较 特点优点 不足 框架 组件式 代码复用:灵活性大二次开发复杂;扩展性不 够:没有考虑权限 插件式 二次开发方便;扩展性插件间通讯复杂;业务模 好;与权限结合灵活块需要结合权限系统 2 4 存在的问题与不足 一般的g i s 开发框架只把注意力放在g i s 方面,而地理空间信息的管理与权 1 6 浙江大学硕士学位论文第2 章g i s 应用程序开发框架概述 限是不可分割的。限制不被授权的用户使用g i s 系统的数据编辑功能,是基本的 要求。作为信息系统家族的成员,g i s 系统还需要管理大量非空间数据,框架如 果只是提供了地图相关的编程模型,对于应用开发者来说,离最终的应用系统的 完成还有很长一段路要走。那么g i s 开发框架是否可以往前多走几步,为应用开 发人员承担部分工作? 本文就针对这些问题与不足,对现有g i s 开发框架提出改进方案。 2 5 本章小结 本章首先介绍了应用程序框架相关的几种技术,研究了通用的应用程序开发 框架的体系结构,然后重点分析了已有的2 种g i s 开发框架,并在此基础上,结 合当前的应用需求,分析了当前g i s 开发框架存在的不足之处。 浙江大学硕士学位论文第3 章6 i s 开发框架的设计 第
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国珍香胶囊市场调查研究报告
- 2025年中国牛奶提取液市场调查研究报告
- 2025年中国液压杆端轴承市场调查研究报告
- 2025年中国泡沫塑料包装箱市场调查研究报告
- 2025年中国段差模市场调查研究报告
- 2025年中国医用卫生口罩市场调查研究报告
- 产后抑郁的识别与干预
- 手术患者的心理评估
- 小儿肠炎的护理案例分析
- 新生儿常见问题及处理方法
- spss基础教案(2025-2026学年)
- 退伍保密课件
- 2025中国热带农业科学院热带生物技术研究所第一批招聘23人笔试试题(第1号)附答案解析
- 全基因组选择育种课件
- 乡镇人大培训课件
- 2025年全国汽车驾驶员(高级)职业技能考试题库(含答案)
- 2025年高考湖北卷物理真题(原卷版)
- 江苏省南通市2025年中考数学试卷附真题答案
- 2026公务员考试题及答案 行测 真题
- 危险性较大的分部分项工程安全管理规定(37号令及31号文)
- 高中英语新教材必修课文全文及翻译
评论
0/150
提交评论