基于三层C_S结构的城市地质环境信息系统.pdf
2006 年年 11 月月 November 2006 261 计计 算算 机机 工工 程程 Computer Engineering 第第 第第21期期 Vol 32卷卷 .32 No.21 开发研究与设计技术开发研究与设计技术 文章编号文章编号10003428200621026103文献标识码文献标识码A 中图分类号中图分类号TP311 基于三层基于三层 C/S 结构的城市地质环境信息系统结构的城市地质环境信息系统 孙亚琴孙亚琴1,唐 卫,唐 卫1,陈锁忠,陈锁忠1,霍 姣,霍 姣2 (1. 南京师范大学地理信息科学江苏省重点实验室,南京 210097;2. 山东胜利油田高级人才培训中心计算机系,东营 257000) 摘摘 要要分析了传统 C/S 结构、B/S 结构、三层 C/S 结构各自的优缺点,并进一步分析了基于 GIS 的地质环境信息系统采用三层 C/S 体系 结构开发的必要性。同时以义乌市城市地质环境信息系统的开发为例,采用面向对象的开发方法和组件式技术,从分析、建模、设计、编 码等各个角度对基于三层 C/S 体系结构的地质环境信息系统进行了阐述。 关键词关键词三层体系;地质环境;GIS;面向对象 Urban Geo-enviromental Ination System Based on Three-tiered C/S Architecture SUN Yaqin1, TANG Wei1, CHEN Suozhong1, HUO Jiao2 1. Jiangsu Provincial Key Laboratory of Geographic Ination Science, Nanjing Normal University, Nanjing 210097; 2. Department of Computer, Advanced Training Center of Shandong Shengli Oil Field, Dongying 257000 【【Abstract】】This paper compares three-tiered architecture with common C/S architecture and B/S architecture, and analyses the importance that urban geo-environmental ination system based on GIS is developed on three-tiered C/S architecture. The system adopts the object-oriented development and component technology. At the same time, with the example of the application of Yiwu City, the paper introduces urban geo-environmental ination system from many aspects, such as analysis, design, model and code. 【【Key words】】Three-tiered architecture; Geological environment; GIS; Object-oriented 1 概述概述 随着经济的发展,人类活动对地质环境的破坏日益严 重,出现了地下水资源枯竭、矿山环境恶化、地质遗迹遭到 破坏等地质环境问题。地质环境问题的加剧,严重影响了人 民群众生命财产的安全,成为社会经济可持续发展的障碍, 已经引起了各级政府的高度重视。但是,传统的地质环境管 理方法存在着数据资料的管理混乱、信息化程度低、数据共 享性差等许多方面的不足,难以适应当前对地质环境科学高 效管理的迫切需求。 提高地质环境的管理水平, 建立基于GIS 技术的地质环境信息系统已是当务之急,也是今后地质环境 工作的一个重要发展方向与数字国土的一项重要内容。在地 质环境信息系统建设方面,国内外已对此进行了研究,比如 陈辉依据国内外相关信息化发展的趋势,结合国内地质环境 工作的实际情况,提出了未来几年地质环境信息化建设的发 展思路和总体战略构想[1];武健强等在ArcInfo上定制开发了 基于二层C/S结构的“苏锡常地区地质环境信息系统”[2];戴 福初等在GIS支持下对地质环境进行了评价[3]。 GIS是集空间信息和属性信息管理于一体的技术,空间 信息具有关系复杂、非结构化、数据量大、随时间变化以及 多源异构等特点[4]。同时随着网络技术和分布式计算技术的 发展,信息系统的应用从桌面转向企业级。企业级应用具有 用户数多、数据量大、业务多变、对可扩展性和安全性要求 较高等特点,使得系统体系结构的设计成为系统成败的关 键[5]。目前,GIS在Web上的应用还受到很多条件的制约,很 多GIS功能无法在Web上实现,所以本系统采用了三层C/S体 系结构。 本文阐述了基于三层C/S体系结构的地质环境信息系 统的优点和必要性。 2 几种体系结构的比较几种体系结构的比较 2.1 传统的传统的C/S结构结构 在传统的C/S结构的应用体系中,在客户端上运行了大 部分服务,如数据访问规则、业务规则、合法性校验等。每 一个客户端都存在数据引擎,并且每个客户端与数据库服务 器建立独立的数据库连接。基于该种结构的应用系统的优势 有开发周期较短,能适应中小型应用系统的要求。但是, 随着数据容量特别是空间数据和客户端数量的不断增加, 该结构显示出了诸多缺陷,主要体现在以下几个方面 1可扩充性对于数据库服务器端,每建立一个数据连 接,就会占用大量的系统资源,当数据连接达到一定数量时, 服务器的响应与处理速度将大打折扣。 2可维护性基于传统C/S结构的应用系统,业务规则 通常置于客户端应用程序中。如果业务规则发生变化,就必 须修改或升级客户端应用程序。 3可重用性采用传统C/S结构,数据库访问、业务规 则等都固化在客户端应用程序中。如果客户另外提出了B/S 的应用需求,则需要在Web服务器中重新进行数据库访问、 业务规则、合法性校验等编码,而所做的工作与客户端应用 程序中的功能完全重复,从而加大了工作量。 2.2 B/S结构结构 B/S结构对用户的技术要求比较低,对客户端的配置要 基金项目基金项目国家自然科学基金资助项目40471101 作者简介作者简介孙亚琴1976-, 女,博士生, 主研方向 地理信息系统; 唐 卫,博士生;陈锁忠,博士、教授; 霍 姣,硕士 收稿日期收稿日期2006-02-25 E-mailsyq_innj 求也较低,而且界面丰富、客户端维护量小、程序分发简单、 容易进行跨平台布置,尤其适合信息发布类应用。但是,B/S 结构在客户端对大容量数据进行深层分析、汇总、批量输入 输出的工作中出现困难, 尤其难以实现图形图像等复杂应用, 对于需要与本地资源进行交互的操作极不方便。而GIS的空 间数据量庞大,因而B/S结构很难适用于基于GIS的办公、 空间决策、数据管理等系统。目前在B/S结构下,只能实现 一些GIS的基本操作,很难实现一些复杂的GIS功能。 2.3 三层三层C/S结构结构 所谓三层结构, 是在客户端与数据库之间加入了一个 “中 间层” ,也叫组件层。三层结构的应用程序将业务规则、数据 访问、合法性校验等工作放到了中间层处理。客户端一般不 直接与数据库交互,而是通过COM/DCOM通信与中间层建 立连接,再经由中间层与数据库进行交互。这样的好处是 1由于数据访问是通过中间层进行的,客户端不再与数 据库直接建立数据连接,因此,建立在数据库服务器上的连 接数量将大大减少。 2可维护性得以提高。因为业务规则、合法性校验存在 于中间层,所以当业务规则发生改变时,只需更改中间层服 务器上的某个组件,而客户端应用程序不需做任何处理。 3良好的可重用性。如果需要开发B/S应用,则不必重 新进行数据访问、业务规则等的开发,可以直接在Web服务 器端调用现有的中间层。 4事务处理更加灵活。可以在数据库端、组件层、COM 管理器中进行事务处理。 由于城市地质环境信息系统要管理大量的空间数据,进 行空间分析、图形处理和基于GIS的建模,B/S结构和传统 的C/S结构不能满足以上的需求,因此采用了“三层C/S体 系结构”来实现义乌市城市地质环境信息系统。 3 基于基于GIS的城市地质环境信息系统的城市地质环境信息系统 3.1 系统建设的目标系统建设的目标 系统首先依据现有的行业规范和国家标准, 对数据进行 分类、编码,实现地质资料的数字化存储,再利用GIS技术 实现对区内地质环境信息的管理。在此基础上实现地质环境 分析、评价、预测等功能,为当地的地质环境保护、社会的 可持续发展服务。 下面以义乌市城市地质环境信息系统为例, 介绍系统三层体系结构的实现。该系统采用组件式GIS软件 ArcObject、Visual Studio.NET开发环境, 数据库采用Oracle9i 为基础进行开发。 3.2 数据组织数据组织 城市地质环境数据库包括空间数据库和属性数据库。空 间数据库建设按地物特征采用点、线、面3种要素进行存储, 具体由5个专题库组成 1基础地形数据库包括行政区、居民地、交通、水系、 地貌等图素; 2基础地质数据库包括区域地质图、构造纲要图、剖 面图、基岩分布图、地层综合柱状图; 3第4系地质数据库 包括地貌类型图、 沉积相分区图、 剖面图、地层综合柱状图等; 4地下水数据库包括第I、II、III承压含水层综合水 文地质图、观测井分布图、地下水类型图、环境水文地质分 区图、地下水富水区段分布图; 5地质环境数据库包括地质灾害分布图、区域地质环 境系统稳定性分区图、GPS控制点图等。 考虑到义乌地区地质环境资料不仅数据量大、 种类繁多, 而且有些数据是动态的如地下水监测数据,为了保持系统 平衡和维护方便,系统中的属性数据可分为内部属性和外部 属性分别进行存储和管理。内部属性数据也就是GIS自身所 管理的属性数据,它和空间数据用公共码进行链接,从而实 现数据的一致性,有利于数据的更新和维护。外部属性多为 历史积累的业务数据、文档、图片等数据。这种类型的数据 具有数据量大、使用频率较低、更新频率高的特点,采用关 系型数据库进行维护, 同时为了满足GIS的查询和分析需要, 把它们和地理实体进行唯一标识码UID连接, 从而实现在系 统中的调用。 3.3 系统架构系统架构 为了提高系统灵活性,满足用户业务不断变化的需求, 我们采用组件式软件开发方法,在业务上将系统划分为水文 地质、工程地质、地质灾害和地质环境4 大模块;在系统内 部功能实现上将系统划分为相对独立的功能组件,相互之间 基于接口进行通信。 系统整体架构为三层C/S结构,包括数据层、业务逻辑 层和用户界面层。分别负责实现数据访问、业务逻辑、用户 交互等功能。该系统的系统架构如图1。 数据层 业务逻辑层 用户界面层 数据访问组件 系统管理组件 三维建模组件 城市工程 地质管理 城市水文 地质管理 城市地质 灾害管理 城市生态 环境管理 义乌市城市地质环境中心数据库 ArcSDE ADO.NET 空间数 据访问 属性数 据访问 地质环境 基础资料管理 COM/DCOM 剖面组件 专题制图组件 图图1 义乌市城市地质环境信息系统的系统架构义乌市城市地质环境信息系统的系统架构 1数据层 城市地质环境信息系统中不仅包含属性数据,而且还包 含大量的空间数据。数据层的作用是从永久存储中读取、写 入、删除对象。数据层使得业务逻辑层对具体数据库的依赖 降低,提高数据库访问的透明性及系统的灵活性。本系统中 数据层的属性数据管理的解决方案为ADO.NET; 在空间数据 管理中,采用ESRI公司的ArcSDE。 ArcSDE支持3种形式的数据访问方式1嵌入式的 ArcObjects组件库;2ArcSDE客户端API;3直接数据库连 接。ArcSDE客户端API访问接口不是以面向对象的形式提 供,这与地质环境管理信息系统采用面向对象的编程模式相 冲突。利用直接数据库连接的方式虽然有较高的数据库访问 性能,但难以直接处理空间数据。综合以上因素,在本系统 中采用嵌入式的GIS组件库开发的方式, 以充分发挥ArcSDE 的功能,而且用面向对象的接口提供访问界面。 2业务逻辑层 业务逻辑层是应用系统的核心,负责整个系统中业务逻 辑的实现。该层负责处理用户输入的信息,根据输入信息实 262 现对数据库的操作,并将操作的结果反馈给用户。 本系统的业务逻辑层主要由数据访问、三维建模、模型 库和系统管理等几个模块组成。在业务逻辑组件中,加入了 大量的业务规则,如钻孔、开采井、地质灾害点等的统一编 号必须为10位数字等。 为了区分逻辑与数据本身,本文提出了2种不同的组件 类型。 1数据访问逻辑组件该组件从数据库中检索数据并把 实体数据保存回数据库中。该组件还包含实现数据相关操作 所需的所有业务逻辑。 2业务实体组件用来表示钻孔、地质灾害点等地质环 境中的业务实体。在应用程序中表示这种业务实体的方法很 多,例如XML、DataSet、面向对象的自定义类等。本系统用 XML来表示业务实体, 以下示例显示了如何将一个泥石流点 用XML表示 <xml version“1.0“> <Disaster xmlns“urbanGeologic Environment“> <DisasterId>33078204001</DisasterId> <DisasterName>马交塘泥石流</DisasterName> <DisasterGrad>中等</DisasterGrad> <DevelopStep>发展期</DevelopStep> </Disaster> 3用户界面层 采用基于三层体系结构的设计模式,界面程序员只需引 入相应的COM组件,就能以自己的意图来设计界面,图2 是义乌市城市地质环境信息系统的应用界面。 图图2 城市地质环境信息系统应用界面城市地质环境信息系统应用界面 3.4 功能模块设计功能模块设计 在系统的功能设计上充分利用ArcGIS已有的功能,结 合地质环境的专业需求进行扩展,图3示出了义乌市城市地 质环境信息系统功能结构。 城市地质环境信息系统 地质环境基础数 据管理子系统 工程地质管理 子系统 水文地质管理 子系统 地质灾害管理 子系统 生态环境管理 子系统 数据管理模型库空间分析图表显示专题制图 图图3 义乌市城市地质环境信息系统功能结构义乌市城市地质环境信息系统功能结构 1水文地质子系统 该子系统的功能主要有通过对各类水文地质、地下水 动态及开采井等基础信息的收集处理,建立相应的数据库系 统,可实现基于GIS的资料查询、自动生成图表等功能;基 于模板的钻孔卡片和剖面的自动生成功能;地下水动态曲线 和实时等值线自动生成功能;地下水资源评价模型与GIS紧 密集成,可提供地下水位预警预报机制,从而为加强义乌市 地下水资源管理工作,合理配置调度地下水资源提供数据服 务和决策依据。 2工程地质子系统 建立地下空间可视化模型, 以使在数据充足的典型地段, 能够根据钻孔数据进行三维地质建模, 对模型进行旋转视图、 切割和切挖等操作, 并能够显示模型内部结构的构造信息产 状、地下水水位、岩性等。该工程地质管理子系统主要由工 程地质资料管理模块、工程地质勘察规划管理模块和地下空 间可视化模块组成。 3城市地质灾害管理子系统 该子系统的功能主要有地质灾害点的图形管理,图形 操作及量算;地质灾害已发点和隐患点的空间定位;地质灾 害点的空间分布图自动生成;地质灾害的查询、统计、分析; 专题图的自动生成;统计报表和各类专题图的输出。 4生态环境子系统 该子系统以遥感影像为主要数据源,从中提取生态环境 专题信息。同时结合气候、水文、地形、地貌等自然地理因 子,综合利用生态环境现状调查所获得的地面统计数据。该 子系统实现了对生态环境信息的输入、处理、分析等功能, 并能够对调查结果进行综合查询与可视化输出。 4 结论结论 本文所阐述的基于三层C/S体系结构的城市地质环境 信息系统,综合了B/S结构和传统C/S结构的优点,适合基 于GIS的大型城市地质环境信息系统空间数据量大、模型集 成过程复杂等特点的开发需求,适合于企业级用户的需要。 该系统具有一般GIS系统的功能特点,同时又具有较强的专 业特色。系统开发所采用的面向对象的技术和组件式的开发 方法不仅使得系统开发过程更易于控制,系统稳定性、质量 得以提高,而且对于其它领域分析问题的方法、思路都颇为 有益。 参考文献参考文献 1 陈 辉. 地质环境信息化战略浅析[J]. 国土资源信息化, 2003, 3 3-7. 2 武健强, 于 军, 余 勤. 苏锡常地区地质环境信息系统的设计 与实践[J]. 地质与勘探, 2002, 386 66-69. 3 戴福初, 张晓晖, 李 军等. 地理信息系统GIS支持下的地质环境 评价[J]. 工程地质学报, 2000, 84 426-432. 4 杜 鹃, 关泽群. 空间信息网格的框架体系和关键技术[J]. 地理 空间信息, 2005, 32 27-29. 5 陈 昕, 闾国年. 基于三层结构的企业级 GIS 中数据对象的构建 方法的研究[J]. 地球信息科学, 2001, 32 48-52. 263