1 / 52

第七章 分布式 GIS

《GIS 设计与实现 》. 第七章 分布式 GIS. 分布式 GIS 是 GIS 发展的必然方向,而分布式 GIS 的设计与实现相对于一般 GIS 在内容上和方法上都具有一定的特殊性,因此,这一部分将重点介绍分布式 GIS 的设计方法和实现内容以及步骤等。. 教学提纲. 一、分布式 GIS 概述 二、分布式 GIS 的基本开发模式. 退出. 一、分布式 GIS 概述. (一) 分布式 GIS 定义 (二) 分布式 GIS 的技术基础 (三) 分布式 GIS 的产生和发展. 返回. 分布式 GIS 定义. 分布式计算实现途径:

chika
Download Presentation

第七章 分布式 GIS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 《GIS设计与实现》 第七章 分布式GIS

  2. 分布式GIS是GIS发展的必然方向,而分布式GIS的设计与实现相对于一般GIS在内容上和方法上都具有一定的特殊性,因此,这一部分将重点介绍分布式GIS的设计方法和实现内容以及步骤等。

  3. 教学提纲 一、分布式GIS概述 二、分布式GIS的基本开发模式 退出

  4. 一、分布式GIS概述 (一)分布式GIS定义 (二) 分布式GIS的技术基础 (三) 分布式GIS的产生和发展 返回

  5. 分布式GIS定义 • 分布式计算实现途径: • 直接反映现实世界的分布性 • 为了充分利用系统资源,提高软件效率而人为引入 • 客户/服务器模式:分布式软件系统是基于客户/服务器模式的,该模式是网络环境下最先进的计算模式,分布式子系统之间的关系实质上是信息和系统功能的提供者和接受者之间的关系,该模型自然体现了这种关系

  6. 分布式GIS建设意义: GIS 信息在本质上是分布的,将分布式技术引入GIS领域,建立分布式GIS是解决地理资源和信息异地分布、实现资源共享的有效途径;同时,分布式GIS在很大程度上可以提高系统的执行效率 • 分布式GIS定义:分布式GIS 是通过分布式计算实现异地资源和信息共享、提高系统执行效率的GIS系统

  7. 分布式GIS分类 • 客户/服务器模式:它的客户端和服务器端分别由相应的硬软件以及数据库构成,在网络协议的支持下,客户端实现对数据的透明存取和对功能调用的透明访问。该模式的分布式GIS可以进入实用阶段 • 全分布式GIS:它的各子系统具有完备的数据库及GIS软件和其它应用软件,在网络中,各子系统同时扮演客户和服务器的角色,在网络上传输的只是客户端的请求和服务器处理产生的数据。全分布式GIS 中,各子系统的硬软件环境和拥有的数据都很可能不一样,它们有着各自的特点,同时,它们之间又有着密切的联系和互补性。但是,由于对等式网络的网络负荷极大,只适合于小型网络,加上软件体系结构的限制,真正意义上的分布式处理尚未成熟

  8. 客户/服务器模式的分布式GIS特性 • 位置透明性 • 平台独立性 • 数据结构透明 • 各数据库管理系统有独立性 • 分布式的查询 • 客户/服务器模式 返回

  9. 分布式GIS的技术基础 分布式GIS的实现需要一定的软、硬件支持。硬件主要是必须提供一个合理的、高效的网络环境,包括微机、服务器、网线、集线器以及一些常用的外部设备,如扫描仪、打印机等。软件需要从操作系统、数据库管理系统到分布计算等方面提供一系列的分布式环境,以实现分布式处理。

  10. 分布式操作系统(DOS) • 描述: DOS从上个世纪八十年代开始在实验室小规模采用,到目前为止,已有一些比较完善的分布式系统推出,如CDCS、Amoeba、V核、Locus等。 • 分类:从整体逻辑结构上分,可以分为五种类型:内核式、集成式、客户/服务器式、中央式、分散式。 • DOS与网络操作系统(NOS)异同点:都是基于网络的操作系统,但透明性概念不同。虽然NOS可以提供一定程度的透明性,但是DOS提供更多的透明性,例如访问透明性(不分本地和远程资源)、并发透明性(虽然多用户共享资源,但是用户不知道其它用户的存在)、位置透明性(资源位置对用户透明)、移植透明性(资源位置的移动对用户透明)等等。

  11. NOS和DOS特征比较 返回

  12. 数据库管理系统分类 按控制方式数据库管理系统可以分为: • 集中式管理系统:将所有事务都由一个称为中心计算机的节点进行管理 • 分布式管理系统:将数据库技术和网络技术结合起来应用,每个节点都保持系统的一个副本来管理和监督各节点及系统事务,是一种分布式的处理模式

  13. 分布式数据库系统 • 逻辑上是一个整体的数据根据一定的规则和要求存放在网络的各个节点上,有不同的物理位置,但是,对用户而言,数据存储的位置是透明的,用户不需要知道数据存储的具体位置就可以对数据进行访问和操作。分布式数据库管理系统负责对分布式数据库系统进行建立、查询、更新和维护 • 在分布式数据库系统中,各节点均存放一定的数据,建立局部数据库,并采用局部数据库管理系统进行管理

  14. 分布式数据库系统分类 根据各局部数据库所采用的数据模型是否相同,可以将分布式数据库系统分为: • 同构分布式数据库系统:所有节点只允许采用相同类型的数据模型,如果所有节点的计算机类型也相同,这样的分布式数据库系统则为完全同构的 • 异构分布式数据库系统:所有节点可以采用不同的数据模型,异构分布式数据库系统在实现分布式处理上更有难度,需要进行数据模型和数据语言的转换和映射工作 返回

  15. 分布对象计算发展历史 分布式计算技术源于二十世纪七十年代,早期的研究主要集中于分布式操作系统,其后随着分布计算环境的开发和应用的发展转向分布式计算平台。二十世纪八十年代以后,随着面向对象理论的日渐成熟和面向对象技术的迅速发展,尤其是采用面向对象模型设计和开发的大型软件系统的成功应用,人们对面向对象技术逐渐由争论和观望发展到承认和应用。传统的纯分布处理技术和面向对象技术以及客户/服务器技术相结合形成了一种全新的分布式计算平台模型——分布对象计算。

  16. 分布式对象 分布对象计算可以看作面向对象技术向异构分布计算平台和客户/服务器环境的扩展和应用,其核心是分布式对象(Distributed Object)。它是一个可以存在于网络中任何地方的独立实体,远程客户可以通过发送消息来调用它拥有的方法。一个客户调用一个分布式对象与创建该对象所用的程序语言和编译器无关,即分布式对象是独立于平台的,客户无需知道被调用对象的位置或者其所在的操作系统。 分布式对象具有面向对象(Object-Oriented,简称OO)语言中对象的全部特征:封装性、继承性和多态性。这就保证了在分布对象计算环境中进行软件开发具有OO技术的所有优势,包括先期成果的继承性、模块性、软件可维护性、开发周期短等。

  17. 组件 组件是一个在整个分布式系统中可以即插即用的独立对象,在完成其功能的过程中,它可以跨越网络、应用、语言、工具和操作系统。按照分布式对象的封装方式,一个分布式对象就是一个组件,是完成系统一部分功能的一个独立的分布式单元

  18. 分布对象系统框架标准 • OMG(Object Management Group)的CORBA(Common Object Request Broker Architecture) • Microsoft 的COM(Component Object Model)/DCOM(Distributed Component Object Model)/COM+ • SUN的EJB(Enterprise Java Beans)

  19. 三种分布对象系统框架的差异 • 由于CORBA本身是由标准制定组织提出的,所以它从一开始就是平台中立,目前已得到800多个厂商的支持;而DCOM原本由Microsoft一家提出,只限于Win32平台,只是随后又将其扩展到其它平台,所以DCOM的跨平台特性受到初始设计的局限。 • CORBA与其它分布计算平台和协议的互操作性(连接性)好,如GIOP(General Inter-ORB Protocol)提供了不同对象请求代理(Object Request Broker ,简称ORB)之间的连接,互联网ORB间协议(Internet Inter-ORB Protocol ,简称IIOP)则是GIOP在TCP/IP网络上的实现;而DCOM因本身的局限性,目前还不支持与其它分布计算平台之间的互操作。

  20. EJB是对上述两种分布式核心技术的演进而产生的,JavaEJB是对上述两种分布式核心技术的演进而产生的,Java 的平台无关性、安全性、面向对象的设计等使它一诞生就 得到了广泛的关注和认可。基于Java服务器端组件模型, EJB框架提供了诸如远程访问、安全、交易、持久性和生 命期管理等多种支持分布对象计算的服务。 返回

  21. 分布式GIS的产生机制 • 客户/服务器技术的发展为分布式GIS提供了技术基础。客户/服务器模式为很多当地小型计算机与少数功能强大的服务器之间提供了协调功能;客户/服务器计算可以把数个应用流组合起来,进行一个大型复杂任务;客户/服务器模式提供了分布式处理能力 • 客户/服务器处理模式是网络GIS较先进和成熟的处理模式。网络GIS的处理模式可分为集中式模式、主从式模式和分布式模式。其中,客户/服务器模式(广义)虽然本质上属于主从式模式,但是,已部分实现了分布式处理的功能;而且目前商业化的GIS产品大多都支持客户/服务器模式

  22. 社会化GIS的发展要求分布式GIS作为其技术支撑。社会化GIS在技术上具有基于网络环境、分布式计算和开放性等特征,它处理的信息在本质上是分布式的,而且部门内数据的共享方式不仅是文件传输的方式,还应是基于应用进程通讯的方式,这要求系统采用分布式计算模式来进行设计社会化GIS的发展要求分布式GIS作为其技术支撑。社会化GIS在技术上具有基于网络环境、分布式计算和开放性等特征,它处理的信息在本质上是分布式的,而且部门内数据的共享方式不仅是文件传输的方式,还应是基于应用进程通讯的方式,这要求系统采用分布式计算模式来进行设计

  23. 网络处理模式对比

  24. 分布式GIS发展阶段 从体系结构上分,分布式GIS经历了三个发展阶段: • Client/Server结构(C/S)。它是一种数据和功能模块分开存储的两层结构,在客户(Client)端进行业务处理,存放功能模块,在服务器(Server)端管理数据库。这种结构初期开发成本低,但是后期维护和升级成本高,适用于部门的管理信息系统,能较好的实现资源共享和用户管理。 • Brower/Server结构(B/S)。它是一种高度集中的分布式处理模式,数据和事务处理模块均存放在服务器(Server)端,使用通用的浏览器(Brower)作为客户端应用的执行环境,可以实现丰富的功能,而不需在客户端进行任何软件的安装和维护工作。B/S结构顺应“瘦客户端”的应用需求,适用于大规模集成应用,具有较高的安全性。

  25. 分布式GIS发展阶段(续) • 多层结构。它是一种较为先进和高效的分布式GIS体系结构,可以很好地实现数据和功能的共享,具有较高的系统效率,以三层结构较为常见。三层结构主要是指客户端、应用服务器和数据服务器,客户端提供逻辑表示层,通过调用、组合应用服务器的功能组件来完成相应的业务;应用服务器存储相关的业务功能组件,供客户端调用,并提供与数据服务器的接口;数据服务器管理数据库。这种体系结构具有较好的可伸缩性,升级费用小、移植性好、功能模块的重用性高,是分布式GIS发展的主要方向。

  26. 数据库 数据库 数据库 功能组件 数据管理 业务管理 逻辑表达 数据管理 服务器 服务器 数据管理 数据服务器 应用服务器 业务管理 逻辑表达 逻辑表达 客户端 浏览器 客户端 B/S结构 C/S结构 三层结构 三种体系结构示意图 返回

  27. 二、分布式GIS的基本开发模式 (一) 基于数据共享的分布式GIS (二) 基于分布式计算的WebGIS (三) 基于CORBA的分布式GIS 返回

  28. 基于数据共享的分布式GIS • 目标:为了在不同GIS平台、不同的操作平台、不同的数据结构的环境下实现数据共享。 • 核心:分布式数据库和分布式数据库管理系统。 • 关键问题:由于它跨GIS平台、跨操作系统平台、跨数据结构等特性,要在各个局部数据库之间实现对分布式数据源的透明性访问,就必须解决不同格式的数据源的相互访问和互操作问题。这是基于数据共享的分布式GIS的关键问题

  29. 局部数据管理系统GIS应用软件 站点1 局部数据库 分布式操作系统 站点3 站点2 局部数据库 局部数据库 局部数据管理系统 GIS应用软件 局部数据管理系统 GIS应用软件 基于数据共享的分布式GIS结构图

  30. 异构数据源互访和互操作解决方法 • 交换数据格式 • 空间数据引擎 • 开放式GIS

  31. 交换数据格式 • 这是一种较传统的数据共享和互操作方法,可以一定程度上解决GIS平台差异所造成的数据共享难的问题。一些通用的商业化的GIS软件平台通常都提供数据的交换格式,以实现该平台数据与其它GIS软件平台数据的互访,如MapInfo的mif格式、AutoCAD的dxf格式等。利用交换格式进行数据的共享主要是通过各软件提供的导入导出功能来实现,如MapInfo软件能够通过导入的方法将dxf格式的数据转换成MapInfo所支持的数据格式,使得AutoCAD数据能够被MapInfo所使用。 • 采用交换格式进行数据格式的转换,是一个有损转换的过程,存在语义损失,也即这是一个不可逆的转换过程。 返回

  32. 空间数据引擎 • 基本思路:由数据提供者(即数据文件或是数据库模块)提供访问的接口,采用组件技术设计一组跨平台、跨语言的ActiveX控件,作为数据提供者与用户之间交流的桥梁,提供一组供用户访问底层数据库的高级接口,实现用户对数据库的透明访问。目前,IT界已有ODBC、OLE DB、JDBC等解决方案。 • 优势:可以实现多种数据格式的一致性直接访问,不存在数据的损失。

  33. 特点: • GIS用户在访问和使用数据时不需要考虑数据格式 • GIS用户可以访问的数据具有透明性,用户可以象操作本地数据一样操作远程数据 • 可以进行多源数据的综合分析,不需要进行数据的转换

  34. 局部数据库 站点1 GIS应用软件 数据库接口 空间数据引擎 站点3 站点2 GIS应用软件 GIS应用软件 局部数据库 局部数据库 数据库接口 数据库接口 空间数据引擎访问数据流程 返回

  35. 开放式GIS • OGC为了促进地理信息的共享和GIS互操作,加快地理空间信息标准化建设步伐,提出了建设开放式地理数据模型的方案,并指出开放式地理数据模型应该包括统一的地理要素定义、空间属性、语义属性和与其它地理要素的关系,以及地理数据模式等元数据的定义和表示等内容。 • 通过建立开放式的地理数据模型,一定程度上可以消除不同GIS软件之间的数据结构和语义上的差异,但是要实现GIS用户之间的分布式处理,还需要GIS平台、网络层、应用层等相关技术的支持 。

  36. 开放式GIS主要技术内容 • 在应用层中实现互操作。目前,该层次实现互操作普遍使用的技术是中间件技术。好的中间件支持各种通信协议、各种通信服务模式、传输各种数据内容、支持数据格式转换、流量控制等,可以跨越网络、应用语言和操作系统等限制。 • GIS软件平台的开放。其主要任务是要将Open GIS的规范和协议纳入GIS软件平台的开发接口和协议中,以统一的、无缝的形式提供遵循Open GIS的应用程序开发接口。 • 基于Internet的开放式GIS。它不仅要求对异构数据的无缝操作,而且要求有专门的地理空间对象表示语言来实现地理空间对象在Internet上的表达。 返回

  37. 基于分布式计算的WebGIS的产生 基于数据共享的分布式GIS模型通常应用于局域网,在局域网中,因为带宽充足、软硬件环境可控制、多层结构可以很好地配合等特点,构建的分布式GIS配置灵活、管理简单、升级容易。而在Internet环境下,面临的是有限的带宽和完全异构的未知的软硬件环境,在这种条件下采用基于数据共享的分布式GIS模式来实现Internet上的地理信息共享和互操作,达到分布式处理的目的,是十分困难的。

  38. 基于以上情况,OGC提出建立开放式的GIS的目标就是使得GIS用户能够在互联网上透明地访问任何地理数据和使用任何地理数据的处理和分析方法,而要实现这个目标的关键就是要使得GIS模型及其功能的实现与它内部所采用何种数据模型和数据格式脱离关系,也就是GIS模型和它的功能的实现是跨数据模型和数据格式的,因而基于分布式计算的分布式GIS应运而生。基于以上情况,OGC提出建立开放式的GIS的目标就是使得GIS用户能够在互联网上透明地访问任何地理数据和使用任何地理数据的处理和分析方法,而要实现这个目标的关键就是要使得GIS模型及其功能的实现与它内部所采用何种数据模型和数据格式脱离关系,也就是GIS模型和它的功能的实现是跨数据模型和数据格式的,因而基于分布式计算的分布式GIS应运而生。

  39. 一般WebGIS建设方案 通常的Web计算采用Client/Server结构,数据以及主要的应用程序存放在服务器端,在客户端进行用户交互和提供少量的计算,服务器和客户端通过协议进行数据通信。一般WebGIS就是将这种结构应用于GIS,在WebGIS的服务器端存储大量地理信息数据,而客户端通过向服务器端发送服务请求,服务器端对服务请求进行分析处理后将结果返回客户端。

  40. 服务器: 海量数据存储; 空间数据处理 客户端: 用户交互; 少量数据存储 发送空间数据处理请求 返回请求的数据和数据处理结果 WebGIS的C/S结构模型

  41. WebGIS的C/S结构模型的改进 考虑到地理信息数据量大、网络带宽有限等特点,进行地理数据的网络传输应考虑尽可能降低网络负载,即减少数据传输量。在以上模型的基础上减少数据传输量主要可以从两方面着手: • 服务器端。提供空间数据的索引,可以过滤掉一部分的数据请求 • 客户端。提供一定的缓存存储以往的数据,从而避免数据的重复传输。 这些手段虽然可以部分缓解WebGIS大量数据传输的问题,但是并没有从根本上解决它

  42. 基于分布式计算的WebGIS • 主要特征:服务器和客户端分担空间信息处理功能。 • 服务器端和客户端高效传输地理信息的主要策略有: • 合理分布空间信息处理功能。耗用时间短而数据抽取率高的分布在客户端;耗用时间长而数据抽取率低的分布在服务器端,以便充分利用服务器端运算速度快、存有大量数据的优势。 • 采用多种数据传输方式,以便降低数据传输量。将空间数据的显示和输出分成四个步骤:选择空间数据、生成显示序列、地图成形和地图显示。每一步骤都对应了相应的空间处理过程,根据这些空间处理过程在C/S结构中的位置,可以采用不同的数据传输方式。

  43. 基于分布式计算的GIS的数据传输方式 根据实际需要,可以有三种数据传输方式进行选择: • 以JPEG或GIF等图像格式传输地图图像。客户端只进行地图的浏览,而把空间数据的选取、生成显示元素序列、地图成形过程放在服务器端完成。这是一种廋客户模式,在该模式下,客户端主要通过公共网关接口来动态访问服务器端的地理空间数据和GIS功能。 • 传输图形元素。服务器端完成空间数据的选取和进行编码、生成显示要素序列的工作,在客户端进行通过Java Applet、ActiveX来生成和显示地图。在该模式下,既采用了CGI技术来访问服务器端的地理空间数据和GIS功能;同时,在客户端又有GIS插件完成相应的GIS功能,地理空间信息处理功能分布在客户端和服务器端,具有分布式WebGIS的特点。

  44. 数据传输方式(续) • 传输空间数据。在服务器端只执行查询,完成空间数据选取工作,在客户端采用Java Applet、ActiveX等设计插件完成后续的工作。这是一种胖客户模式,在该模式下,采用插件方式(Plug-in)将服务器的部分GIS功能设计成能与网络浏览器交换信息的专门GIS软件模块,转移到客户端,缓解了CGI方式下可能的网络拥挤堵塞问题,而且也增加了网络浏览器处理地理空间信息的能力,是一种较成熟和高效的分布式WebGIS模式 返回

  45. CORBA • 概念:CORBA既非语言,也不是产品,而是OMG推出的关于异构计算环境的互操作规范或标准。 • 特征: • CORBA的每一个应用,都作为一个对象来看待,对象间可互相调用对方声明的服务。 • CORBA允许客户以动态或静态方式调用服务器组件,其中动态调用需CORBA提供的名字或交易服务器的支持。ORB互操作问题,由IIOP协议解决。 • CORBA还提供了较为完善的安全服务(如:认证、授权、加密、安全域、审核等),并有相应安全界面及管理界面。

  46. 客 户 对象工具实现 动态调用接口 IDL 存根 ORB 接口 IDL 骨架 动态骨架接口 对象适配器 ORB核心 CORBA概念模型 图中的ORB有助于对象找到网络里的其它对象,允许不同厂商提供的对象请求代理协同工作。尽管不同公司提供的产品具有并不一致的服务和工具,但作为核心的ORB应当是能互操作的,它相当于对象通信器,传送请求、返回结果,此外还有性能监控、负载平衡和容错功能。

  47. CORBA的核心组成部分 • OMG的对象管理体系结构( Object Management Architecture,简称OMA )。它是OMG组织的产物,被用于描述CORBA的体系结构。它由四个部分组成: • 基本组件ORB提供了分布式对象及其管理的基础底层操作 • 针对分布对象管理、用于开发者的附加服务,这些服务为多数分布式对象所需 • 由许多应用程序提供的服务集成,称为公共对象工具(Common Object Facilities) • 各种应用对象所组成的分布式应用本身

  48. ORB。它提供了分布式对象的基本底层操作和管理,其它技术多依赖于它,因此是各厂商分布对象平台产品的关键。CORBA进程与服务器的守护进程均可通过ORB的库调用进行连接。另外ORB支持动态调用接口(Dynamic Invocation Interface,简称DII)及动态骨架接口(Dynamic Skeleton Interface,简称DSI)

  49. CORBA的核心组成部分(续) • 接口定义语言 (Interface Definition Language,简称IDL)。它定义了包含服务器组件调用方法函数的接口。 IDL编译器根据IDL接口定义产生客户端的存根及服务器的骨架。前者描述了客户端如何进行调用,后者则用于描述服务器端请求的接口,因此,客户端到服务器端的映射是自动的,完全符合接口定义。每个CORBA对象有一个用IDL定义的接口,通过接口才可以实现对象的互相访问。IDL的接口操作有名字、参数、返回值,支持许多基本数据类型,包括:结构、序列、数组、联合体等

  50. CORBA的核心组成部分(续) • IIOP 。它是一种信息处理协议,允许ORB跨Internet域进行通信。典型的IIOP分组对目标对象标识、调用操作及传递到对象上的参数加以编码传送。象IDL一样,IIOP反映了互操作标准化的一种尝试。IIOP支持7种消息类型:请求、回答、取消请求、定位请求、定位回答、关闭连接以及消息错误

More Related