《Web GIS原理与应用开发》读书笔记(1)

第一章 Web GIS 概述

以下均掺杂个人理解
书目:Web GIS 原理与应用开发 —— 刘光 曾敬文 曾庆丰 著

1.1 GIS的发展

20世纪60年代,世界上第一个地信系统:加拿大地理信息系统(CGIS)

发展历程

  1. 1970-1980年,大量试验开发阶段
  2. 1980-1990年,商业开发和运作阶段
  3. 1990-2000年:以用户为主导的阶段

现阶段GIS的地位采集管理分析空间数据,共享全球信息资源,为政府管理提供决策、科学研究和实施可持续发展战略的工具和手段

内涵的变化:狭义的地理信息系统(管理地理信息的计算机系统)更广泛的空间信息系统(Spatial Information System),形成了地球信息科学(GeoInformation)

技术发展

  1. 第一代:单机单用户(如同单机游戏一般)
  2. 第二代:引用网络,实现了多级多用户,C/S结构(用户们在局域网内共享数据)

    C/S(Client-Server模式):每人一个客户端,与服务器传递数据

  3. 第三代:引入互联网技术,实现较低层次的B/S结构,中间件技术与空间数据库

    B/S(Browser-Server模式):大家通过浏览器共同访问一个页面,与服务器传递数据

  4. 第四代:引入Web服务,分布式互操作与数据/服务集成

此处可参阅该博客:https://blog.csdn.net/orangel...

1.2 Web GIS 及其发展

在之前的地理信息系统中,各GIS软件的数据模型、数据组织结构不同,给数据共享带来了巨大的困难

  • 数据模型、数据组织结构不同:不同类型的文件内部,对空间属性的表达不同

Web GIS是一个交互式的分布式的动态的地理信息系统

  • 交互式的:并非只是展示数据,允许用户更新数据。用户请求,服务器返回相应的结果
  • 分布式的:不同的数据、程序分别放在不同的服务器上,可以很好地解决数据异构问题
  • 动态的:实时从服务器获取数据,并非加载本地静态数据

Web GIS的基本思想:在互联网上提供地理信息服务

1.2.1 传统Web GIS 的不足

与传统相比,分布式地理信息系统优点:更广泛的访问范围平台独立性低系统成本更简单的操作

  • 平台独立性:不依赖运行环境,如用户浏览空间数据并不需要在本地安装空间数据库

新一代GIS的重要发展方向:分布式可互操作性

1.2.2 从Web站点发展为Web服务

xml的出现,帮助web服务构建了一个通用的、与平台和语言无关的技术层

OGS:Open Geospatial Consortium,开放地理空间信息联盟

OGS规则由server到service的转变

  • server

image.png

  • service

《Web GIS原理与应用开发》读书笔记(1)_第1张图片

1.2.3 从SOA发展为REST

SOAP:Simple Object Access Protocol,简单对象访问协议

  • 在XML-RPC(Remote Procedure Call,远程过程调用)基础上,使用标准的XMl描述了RPC的请求信息(URI/方法/参数/返回值)
  • 优点:跨语言,非常适合异步通信和C/S结构(松耦合)
  • 缺点:必须在运行时做很多检查

REST:Representation State Transfer,表达性状态转移

  • 与SOAP相比,使用URL替换一个对象
  • 优点:轻量、可读性好、不需要其他类库支持
  • 缺点:URL可能很长、不容易被解析

1.2.4 从三层架构发展到多层架构

  • 三层架构

《Web GIS原理与应用开发》读书笔记(1)_第2张图片

  • 四层架构

《Web GIS原理与应用开发》读书笔记(1)_第3张图片

  • 多层架构

《Web GIS原理与应用开发》读书笔记(1)_第4张图片

混搭:整合网络上多个资料来源或功能

1.2.5 从Web GIS 1.0 到 2.0

重要变换:

  1. 从静态的二维地图 -> 动态的二维全球性地图
  2. 文件传输FTP -> 使用Web服务
  3. 使用了混搭技术

1.3 Web服务

1.3.1 Web服务的重要性

1.3.1.1 从数据共享的角度看
  • 可以提供大量的数据
  • 节省人力、物力、时间
  • 促进GIS发展
  • 便于实现规范化和统一化
  • 加强空间信息的管理
  • 为数字地球奠定基础

3个主要概念(角色):空间信息资源(空间信息提供者)、空间信息的获取与处理(空间信息处理软件)、空间信息应用(用户)

空间信息共享要解决的问题

  • 可达性:用户能够获取到数据
  • 互操作性:不同的GIS之间可以互相操作,对数据有相同的理解
  • 易用性:要方便获取、方便使用

技术方面(由低层到高级):数据格式转换 -> 通过API直接获取 -> 基于DBMS集成 -> 基于Web Services集成

1.3.1.2 从软件复用的角度看

Web服务是服务的松散集合,可以方便的发布,可以进行查找和调用

1.3.1.3 从系统集成的角度看
  1. 基于对象技术的RPC方法

    RPC:指应用程序对运行在远程计算机上的代码进行功能调用

    • COM组件(可随意替换的带有各类功能的组件,拥有允许同一台计算机上的客户端和服务器之间进行通信的接口)使用DCOM(客户端程序对象请求来自网络中另一台计算机上的服务器程序对象的接口)/COM+(拥有一些新功能的COM)
    • CORBA使用IIOP(可自行了解)
    • Java使用RMI(支持从一个java虚拟机(JVM)到另一个java虚拟机的调用)

    缺点:很难跨平台、同步调用阻塞

  2. 基于消息中间件技术的RPC方法

    中间件:可类比node中间件,node中间件是在函数与函数执行之间运行特定的命令,而此处中间件是在应用程序连接的两端运行特定的程序

    缺点:开放性仍然较低,提高开放性则需要提高成本等等(开放性:在程序原有的基础上继续拓展功能)

  3. SOAP风格的Web服务方法

    XML-RPC通过HTTP请求向RPC服务器提交请求,通过HTTP响应response获得RPC的调用结果。强调了XML和HTTP 的作用

    SOAP风格的Web服务奖应用逻辑封装起来。

    每个SOAP应用需要定义自己的接口,对于互操作性十分不利

  4. REST风格的Web服务方法

    REST解决了上述问题,更贴近WWW基础协议(通过URL请求和获取数据)

1.3.2 REST及REST风格的Web服务

1.3.2.1 REST

基础概念

  • 一切都被认为是一种资源,每个资源由URI标识
  • 操作包括获取、创建、修改和删除,对应HTTP请求是GET、POST、PUT、DELETE
  • 每个请求都是独立的,无状态
  • 响应的表现形式可以是JSON、XML或者HTML

重要约束

  • 客户/服务器:请求只能由客户端单方面发起
  • 无状态:会话状态由客户端负责
  • 缓存:为提高效率,响应内容会被缓存(开发时经常使代码修改无变化,因为显示的仍是缓存内容)
  • 统一接口:组件之间通过统一的接口通信
  • 分层系统:通过限制组件的行为将其分解为若干等级(如组件可以看到同级和子级看不到父级)
  • 按需代码(可选):支持通过下载执行一些代码
1.3.2.2 REST风格的Web服务

也称为REST风格的Web API

从三个方面定义资源:

  1. URI(URI:uniform resource identifier,资源的标识;URL:uniform resource locator,资源的定位,既能标识又能指明位置)
  2. 接受与返回的互联网媒体类型(JSON、XML、YAML等)
  3. 一系列请求方法(GET、POST、PUT、DELETE)

注意请求一组资源和一个资源时操作的区别

  • PUT

    • 一组资源:将一组资源替换为当前整组资源
    • 单个资源:替换/创建指定的资源,并将其追加到相应组
  • POST

    • 一组资源:在本组中创建追加一个新资源
    • 单个资源:把指定资源当做一个组,创建一个隶属于其的新元素

1.3.4 OGC的Web服务规范

OGC在空间信息Web服务方面制定了一系列规范,统称为OWS

  • 地理数据服务(Data Service)

    提供对空间数据的服务,主要有WFS(Web Feature Service,可进行增删改查)、WCS(Web Coverage Service,可以提供每一点的值),结果通常带有空间参照系

  • 描绘服务(Portraval Service)

    提供对地理空间信息进行可视化的能力。给定一个或多个输入,描绘服务会产生 渲染后的输出(地形透视图、注解图等等),主要有WMS(Web Map Service)

  • 处理服务(Processing Service)

    提供对地理空间数据进行操作的服务和增值服务,主要有WPS(Web Processing Service,网络处理服务)、Geocoder(地理编码服务)、Gazetter(地名词典服务)、Coordinate Transfer Service(坐标转换服务)等等

  • 目录服务(Catalog Services)

    提供各种服务、数据及相关资源的描述信息(元数据)集合的发布与查询,包括服务目录、样式目录、数据目录、设备目录等等

  • 编码(Encodings)

    所有OGC框架的编码规范都采用XML Schema来定义

    OGC的规范定义或计划定义的编码主要包括GML(Geography Markup Language,地理置标语言)、SLD(Styled Layer Descriptor,样式化图层描述符)以及Service Metadata(服务元数据)

  • 客户端应用(Client Application)

    地图显示、地图浏览等服务

1.4 自由及开源软件、开放规范与开放数据

OSGeo:Open Source Geospatial Foundation,国际地理空间开发基金会

FOSS:Free and Open Source Software,自由及开源软件

开放数据格式:KML(Keyhole Markup Language,Keyhole标记语言)、GeoJSON、TopoJSON;JPEG、PNG;ESRI Shapefile

开放规范:国际标准化组织(ISO)技术委员会211(TC211)是最主要的空间信息标准组织之一

你可能感兴趣的:(webgis)