地理信息系统开发关键技术研究

时间:2022-07-23 10:29:43

地理信息系统开发关键技术研究

【摘要】为了提高地理信息系统的开放性、可重用性及其分布式的特点,本文指出了现阶段地理信息系统的缺陷,提出了利用面向对象的组件技术、基于Agent思想的分布式策略以及知识管理相关模式来促进地理信息系统的高效开发和简便应用,最后,在上述技术的基础上,开发了高效的地理信息系统。

【关键词】GIS;COM;软件工程;ATL

1.引言

地理信息系统(Geographic Informa—tion System,简称GIS)[1]是一种采集、输入、存储、管理、检索、分析、描述和显示空间信息的计算机系统,是分析和处理地理空间数据的通用技术,是信息技术的一个重要组成部分,它也是一门集计算机科学、信息科学、数学和统计科学、现代地理学、测绘遥感学、环境科学、城市科学、空间科学和管理科学为一体的新兴边缘学科[1—3]。

GIS开发属于软件工程开发范畴,由于GIS的空间信息管理属性及其应用模式,增加了GIS开发的难度和复杂度,现阶段GIS的缺陷主要表现在:

1)采用效率不高的开发语言。例如MFC并不全面支持GIS的COM组件开发,且加上庞大的命令、函数库,使得开发难度增加,产品开发周期增长。

2)空间数据库及其知识管理系统通常由GIS厂商提供,这导致了GIS系统价格的昂贵。

3)传统GIS与多媒体开发工具及多地域协作的链接均不甚方便,数据交换不直接,直接影响通讯效率。

本文针对以上GIS的缺陷,提出了面向对象思想的组件技术、基于Agent思想的GIS技术及知识管理技术来开发简便、有效的GIS系统。

2.基于面向对象思想的组件技术

GIS设计需考虑问题较多,涉及面较广,系统开发时,大多采用模块化的设计方法。其中模块化的程序设计方法指的是把要共用的功能或相近的功能划分模块,以模块化的思想设计GIS。此时,整个GIS通过若干个互相关联的过程调用不同的模块构成。每一模块拥有自己的数据及实现方法,有利于系统维护和后续开发,同时,各模块可以通过调用当前模块或相关联模块来达到改变系统状态的目的。

然而上述模块化的设计思想也存在一定的问题:在开发过程中,模块内方法可任意修改;作数据以及对它们的松耦合管理方式使得程序结构是基于实现方法而不是数据本事;无法实现安全、保密的数据访问等。面向对象的系统设计很好地解决了以上难题。面向对象的程序设计中,进行相关交互的是对象而不是模块,网络中的对象拥有自己的状态,且每个对象对自己的数据、构造、方法等。同时,面向对象的设计方法还有如下的优点:设计和相关代码可以重用,开发速度大幅度增加,代码质量得以提高,系统维护及其可修改性也得到了较客观的改善。综上,利用面向对象的思想,集成了模块化思想的优点,且弥补了模块化的缺陷,其更突出的优秀特性在于其可封装性、可继承性及其多态性,这些优点促进了面向对象思想的推广,使其得以在GIS设计过程中被广泛应用。

当GIS较为复杂、预处理命令较多或区域较分散时,单纯利用面向对象技术已不能满足其精确、多输入多输出和分批处理的要求,于是本文采取了组件技术及基于Agent的分布式GIS技术,前者将和面向对象技术联合应用,并在本章后续内容中继续介绍,后者指的是利用Agent技术,实现分布式GIS的设计,以实现其多地域和多命令输入输出的要求,并将在第二章详述。

近年来,随着科技的进步,组件技术也得到了长远的发展,并深刻影响了软件工程的开发模式。与面向对象思想结合后,软件工程系统可以被视为若干协同工作的对象的组合,其中每个对象都提供特定的数据以及服务,接收和发送特定的消息,且以国际标准形式进行输送和公布,以供其他对象的调用。

组件间通过与平台无关的中间语言IDL(Interface Define Language)来定义,该接口固定不变,且与客户程序兼容,开发人员可通过直接调用相关模块来获取对象服务,换句话说,应用面向对象的组件思想,在组件对象中添加了新功能、新数据或新方法时,组件对象仍可以支持旧接口,增加了程序的可适应性、可修改性和可扩充性。

由于面向对象思想组件技术的优点,将其应用到GIS开发将带来全新的开发模式,为现今GIS开发所面临的问题提供灵活的解决思路。这种基于面向对象组件形式的GIS,基于标准的组件平台,各组件对象间不仅可以进行灵活重组、调用,还可开发全新的可视化界面和标准接口。现今流行的组件式平台主要是微软公司推出的COM组件模型(Component Object Model)和DCOM组件模型(Distributed Component Object Model,分布式组件对象模型)[5],它们占据了市场的领导地位。基于COM组件技术,Microsoft又大力推出ActiveX控件技术[5]。ActiveX控件技术是现今可视化的程序设计中,应用最广泛的标准组件技术。

目前,Microsoft推出了三种不同的开发COM组件的方式,分别是采用COMSDK、MFC和ATL,其中基于COMSDK开发工作量较大,MFC无法完全兼容COM组件,ATL(Active Template Library,活动模板库)[5],以其简洁、有效的优点全面地支持了COM组件的开发。ATL的这种特性促使其在COM组件开发中获得了长足的优势,开发者可以把注意力集中于相关的逻辑上,另外,它摆脱了大量的冗余代码,使系统开发更简练。综上,ATL在面向对象的组件开发技术中占有较大优势,本文GIS开发将利用ATL、分布式角色Agent等技术,使其更有效,更易满足客户需求。

3.基于Agent思想的分布式GIS

在GIS设计过程中,采用基于角色Agent模型来对不同区域、不同目的的面向对象模块进行控制与管理,该模型分为GIS Agent模版和GIS Agent实例两部分[6]。前者针对GIS实施人员建立,定义每个Agent的行为及其特征参数、检索规则等,并定义各个Agent间逻辑关系;后者详细定义各参数、实施人员、文档节点等的ID标识,以及各Agent间关联关系、触发关系等。当触发条件满足时,Agent启动相应GIS信息收集、处理和可视化程序,引导各Agent完成GIS的相关任务。当任务完成时,Agent实例将返回服务器,并带回命令执行中的相关数据,包括可视化效果、操作人员、输入输出值等。

为了实现以上所述的功能,Agent实例需对数据库中大量数据进行分类和封装,该过程遵循第一章所述的分层和模块化思想,即各执行角色Agent根据需要组织和封装数据,并接受上级Agent调度和管理。其中,Agent数据分为自定义的数据和用户的数据,前者与具体应用场景相关,后者描述该Agent的基本属性和与其他Agent相关联的参数和流程等。

基于Agent的GIS设计执行过程主要分为服务器派遣、维护以及GIS输入输出实施层的管理。前者指服务器及内嵌于该服务器的Agent对相关信息提供、任务派遣和数据动态存储;后者指移动服务器为Agent实例提供运行环境。

为实现以上功能,本文提出了基于分布式Agent的GIS开发功能模型。该模型分为服务器层和GIS信息层,两者通过网络实现了互联,它包含:(1)服务器层 主要功能是实现GIS服务器端的业务逻辑关系,接收和存储来自实例Agent的实时动态数据,并提供了运行环境和维护Agent实例间的逻辑关系,负责Agent实例触发、管理和销毁。(2)实现层 其主要功能是为Agent实例提供了运行环境,并提供了相关读写设备。在GIS Agent实例化时,服务器向Agent实例传递了信息规则、操作人员、命令符、技术文件、检索规则、可视化原则等相关信息,并设置了各GIS Agent实例的触发和回收条件,向Agent实例传输了信息标识。当命令执行完成时,从Agent实例把信息标识和查询结果传递给服务器,由服务器完成数据更新和存储,并向其他的Agent实例相关信息,并在客户需求服务器进行查询结果的可视化显示。

4.知识管理技术

4.1 知识管理概念及框架

GIS设计的关键和核心在于对相关知识信息的存储、查询以及可视化输出,本文将以上内容统称为知识管理,概括地说,知识管理(Knowledge Management,KM)是一种保证知识的沉淀、共享、和挖掘的过程和方法,它以提高企业业绩为目的,大大促进了知识、管理和技术的组合。

知识管理的基础在于对GIS所处理知识的分类与整合。从知识层次说,GIS知识可分为个人、团队、企业和外部环境层次;根据知识识别特征,可分为显性和隐形知识;根据行业分类,可以分为公安、社区、应用、城市综合、商业分析等GIS知识等。这些分类各有特点,在实际应用中,应根据具体要求具体分析。在本文中,GIS的知识管理分类如表1所示。

为了更清晰地说明知识管理的体系机构,本文将对其进行系统建模。该模型主要包括描述、过程和功能模型,为了描述知识管理体系结构,需要对知识管理进行体系结构建模。描述模型主要表现了GIS知识管理的层次性,表达了知识的静态逻辑性,反应了知识的结构。过程模型表示GIS知识管理体系为响应外部命令请求,进行的一系列内部活动,是动态的状态调整或信息查询。功能模型指的是在相应过程执行完成后,知识管理体系所能达到的目标,是知识管理的需求的响应。

知识管理四部模型框架如图1所示。

4.2 GIS开发中知识管理技术

GIS开发中的知识管理可以描述为一个面向对象的知识模块对外部命令的响应,它的作及被输出对象是知识,其目的是以最优的形式完成对知识的输入输出、查询及更新。

GIS知识管理包括对知识基础、技术、过程、战略及客户等的管理,而上文知识管理体系结构则充分概括了GIS知识管理开发所需要的技术,详细的说,包括了GIS领域软件工程、数据库技术、文档技术、复用驱动技术和经验工程技术等方法,也只有充分利用了上述技术,结合相应的专家系统,才能进行正确有效的知识管理,更好地进行GIS的知识开发。

除此之外,GIS知识管理对象还宝矿力显性的软件工程知识和专家系统知识、相关实践知识等隐形知识。对于这些知识,应进行需求分析、知识查询获取、组织共享、应用创新和可视化输出等,在这个过程中,需要对GIS开发的过程和效果进行评估,如发现问题,则进行改善,从而不断完善企业流程,不断提高服务质量,提升企业的竞争力,更好地满足客户需求。图2显示了知识管理技术的内容。

5.平台展示

本文利用以上技术开发了新型GIS系统,登陆界面如图3所示,知识管理界面如图4所示,最终可视化显示北京某区虚拟社区地理情况如图5所示。其中,GIS知识包括了经验库、模板库、专家库、规则库和与案例库,其主要包括GIS分析、设计、实现、管理和维护等。

GIS平台主要功能包括系统登录、知识查询、知识管理和虚拟社区等。

6.结束语

本文为解决传统GIS的代码冗余、效率不高、知识管理混乱、无法很好地完成分布式协作等问题,提出了面向对象的组件技术、基于Agent思想的分布式协作技术以及相关的知识管理技术,创建了高效、全新、有效的GIS系统。

参考文献

[1]巩慧,赵文吉.GIS的发展方向.WORLD GEOLOGY, 1999,18(1):60—63

[2]Peng Z,Nerber D D.An Internet—Based GIS Data Access System.Journal of Urban and Regional System,1997(1):20—30.

[3]Buelher K,Mckee L.The Open GIS Guide:Introduction to Interoperability Geoprocessing,Massachusetts:The OGC Press,1996:96—100.

[4]龚健雅.地理信息系统基础软件吉奥之星NT版的总体设计思想和关键技术[J].武汉测绘科技大学学报,1997,22(3):18—190.

[5]Sara Ferris.Talking About GIS.CADalyst,2004,21(9):12— 13.

[6]朱庆,李德仁,龚健雅等.数码城市GIS的设计与实现[J].武汉大学学报(信息科学版),2001,26(1):8—11.

上一篇:视频技术在防汛指挥系统中的应用 下一篇:论信息时代工程造价的管理控制