1、技术篇第一章 Web 地理信息服务,尹章才,技术篇,XML是Web 1.0的网络语言html的升级版本,也是Web 2.0的基础语言,因而XML是连接Web 1.0和Web 2.0的重要桥梁,也是Web 2.0技术的基础。XML已经是网络数据及其互操作公共协议的基础,基于XML的多种内容格式和基于这些格式的互操作/通信协议,包括RSS、PDF、Ajax、GeoRSS、KML以及大量的微格式等扩展了2.0网站的功能,其中Ajax、RSS是Web 2.0的核心技术。这就意味着,XML是Web 2.0的重要技术和理念基础,因此中篇将进一步分析由XML延伸和发展的上述相关技术。,第一章 Web 地理信
2、息服务,网络服务是Web 2.0的重要技术基础和实现方式,网格、云计算等都是基于网络服务的。其中,XML是网络服务的基础语言。,1.1 Web服务,集成和互操作一直是GIS发展的热点问题在互联网时代背景下产生的Web服务技术可直接将各种组织、应用程序、服务及设备链接起来,实现在不同平台间以一致的方式交换和描述数据,为实现空间地理信息共享、互操作和集成提供了新的解决方案。,1.1 Web服务,Web服务的设计理念就是把各种应用程序包装在一个黑盒中,将与程序开发相关的细节隐藏起来,再将其所具备的功能或服务以标准的接口公布出来。Web服务可以在任何提供相应功能服务的机器上加以实现和发布,可以将异构的
3、应用进行整合,而不管这些应用系统在设计建设时使用何种程序设计模型、程序语言、操作系统、平台。,1.1.1 核心定义,Web服务(Web Service)是一种面向服务的架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。,一、Web服务的概念,根据W3C的定义,Web服务应当是一个软件系统,用以支持网络间不同机器的互动操作。网络服务通常是许多应用程序接口(API)所组成的,它们通过网络,例如国际互联网(Internet)的远程服务器端,执行客户所提交服务的请求。,C/S+XMLWeb 服务,尽管W3C的定义涵盖诸多相异且无法介分的系统,不过通常我们指有关于主从式架
4、构(C/S)之间根据SOAP协议进行传递XML格式消息。,XML Web服务,XML Web服务体系,无论定义还是实现,Web服务过程中会由服务器提供一个机器可读的描述(通常基于WSDL)以辨识服务器所提供的Web服务。虽然WSDL不是SOAP服务端点的必要条件,但目前基于Java的主流Web服务开发框架往往需要WSDL实现客户端的源代码生成。一些工业标准化组织,比如WS-I,就在Web服务定义中强制包含SOAP和WSDL。,XML Web服务体系结构,Web Service体系结构基于服务提供者、服务注册中心和服务请求者之间的交互。服务提供者在服务注册中心发布Web服务描述语言WSDL;服务
5、请求者使用注册中心的UDDI注册服务来搜索其所需Web服务,并通过SOAP将该Web服务和本部门的当前应用绑定,实现空间数据与操作的共享。,二、关键技术,Web服务建立在XML、WSDL、SOAP和UDDI等协议和标准之上,具有完好的封装性、松耦合、使用协约的规范性、使用标准协议规范、高度可集成能力等特点。,SOAP,简单对象访问协议(SOAP,全写为Simple Object Access Protocol)是一种标准化的通讯规范,主要用于Web服务中。SOAP的出现是为了简化网页服务器(Web Server)在从XML数据库中提取数据时,无需花时间去格式化页面,并能够让不同应用程序之间透过
6、HTTP通讯协定,以XML格式互相交换彼此的数据,使其与编程语言、平台和硬件无关。,SOAP,SOAP标准由IBM、Microsoft、UserLand和DevelopMentor在1998年共同提出,并得到IBM,莲花(Lotus),康柏(Compaq)等公司的支持,于2000年提交给万维网联盟(World Wide Web Consortium;W3C),目前 ,SOAP 1.1 版是业界共同的标准,属于第二代的XML协定(第一代具主要代表性的技术为XML-RPC以及WDDX)。,SOAP,用一个简单的例子来说明 SOAP 使用过程,一个 SOAP 消息可以发送到一个具有 Web Serv
7、ice 功能的 Web 站点。例如,一个含有房价信息的数据库,消息的参数中标明这是一个查询消息,此站点将返回一个 XML 格式的信息,其中包含了查询结果(价格,位置,特点,或者其他信息)。由于数据是用一种标准化的可分析的结构来传递的,所以可以直接被第三方站点所利用。,WSDL,WSDL(Web服务描述语言,Web Services Description Language)是为描述Web服务发布的XML格式,或公共接口。,WSDL功能,WSDL描述web服务的三个基本属性:服务做些什么?服务所提供的操作(方法);如何访问服务?数据格式以及访问服务操作的必要协议;服务位于何处?由特定协议决定的网
8、络地址,如URL。,UDDI,一个用来发布和搜索WEB服务的协议,应用程序可借由此协议在设计或运行时找到目标WEB服务。UDDI是统一描述、发现和集成(Universal Description, Discovery, and Integration)的缩写。它是一个基于XML的跨平台的描述规范,可以使世界范围内的企业在互联网上发布自己所提供的服务。UDDI是OASIS发起的一个开放项目,它使企业在互联网上可以互相发现并且定义业务之间的交互。,UDDI业务注册三元件,白页:有关企业的基本信息,如地址、联系方式以及已知的标识; 黄页:基于标准分类的目录; 绿页:与服务相关联的绑定信息,及指向这些
9、服务所实现的技术规范的引用。这些标准由这些组织制订:W3C负责XML、SOAP及WSDL;OASIS负责UDDI。,三、Web 服务基本特征,就技术角度而言,Web服务是对象/组件技术在Inetmet上的延伸,它具备以下特征:1)完好的封装性Web服务具备良好的封装性,对于服务使用者而言,他能且仅能看到该Web服务所提供的接口。,2)松散藕合,当一个Web服务的实现发生变更的时候,只要其调用界面不变,对服务的调用者不会有任何影响。也就是说,只要Web服务的调用接口不变,Web服务的实现的任何变更对服务调用者来说都是透明的,甚至是当Web服务的实现平台从J2EE迁移到了.NET或者是相反的迁移流
10、程,服务的用户都可以对此一无所知。,3)使用标准协议规范,Web服务使用开放的标准协议进行描述、传输和交换。这些协议具有完全免费的规范,以便由任意方进行实现。4)高度可集成能力Web服务是可组合的,可以用简单的服务构建更复杂的服务。由于Web服务采取简单的、易理解的标准协议作为服务接口描述和协同描述规范,完全屏蔽了不同软件平台的差异,从而可以在不同平台间进行互操作,实现了在当前环境下最高的可集成性。,5)Web服务是比组件更高层的架构(抽象),Web服务并不是面向对象方法和基于组件方法建立企业应用的替代品,而是一种比组件技术更高层的抽象。组件技术通常是多个组件一起共同提供企业所需的某项功能,而
11、Web服务通常针对企业范围内一个处理流程提供整体的业务解决方案。Web服务由组件构成,一个(或几个)组件会暴露在服务接口中。,1.1.2 使用方式,一、远程过程调用二、面向服务体系结构三、表述性状态转移,远程过程调用(Remote Procedure Call,RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。,一、远程过程调用RPC,RPC信息传递,远程过程调用是一个分布式计算的C/S的例子,它简单而又广受欢迎。远程过程调用总是由客户端对
12、服务器发出一个执行若干过程请求,并用客户端提供的参数,执行结果将返回给客户端。,RPC信息传递,由于存在各式各样的变体和细节差异,对应地派生了各式远程过程调用协议,而且它们并不互相兼容。为了允许不同的客户端均能访问服务器,许多标准化的 RPC 系统应运而生了,其中大部分采用接口描述语言(Interface Description Language,IDL),方便跨平台的远程过程调用。,RPC在Web服务中的应用,通常,在WSDL中对RPC接口进行定义(类似于早期的XML-RPC)。尽管最初的Web服务广泛采用RPC方式部署,但针对其过于紧密之耦合性的批评声也随之不断。这是因为RPC式Web服务
13、实质上是利用一个简单的映射,以把用户请求直接转化成为一个特定语言编写的函数或方法。如今,多数服务提供商认定此种方式在未来将难有作为,在他们的推动下,WS-I基本协议集(WS-I Basic Profile,WS是Web Service的简称)已不再支持远程过程调用。,二、面向服务架构,服务面向服务面向服务架构,服务(Service),服务是整个SOA实现的核心。SOA的基本元素是服务。SOA 指定一组实体(服务提供者、服务消费者、服务注册表、服务条款、服务代理和服务契约),这些实体详细说明了如何提供和消费服务。这些服务是可互操作的、独立的、模块化的、位置明确的、松耦合的,并且可以通过网络查找其
14、地址。,面向服务(Service Oriented),SO 是一组模式和实践惯例,用于开发单个服务和解决方案它们利用了服务模型,因而能够在不同系统之间集成。服务封装其操作系统和专用协议的特性,允许使用标准协议和极传统的接口访问其业务逻辑和信息。在稳定的接口背后,可以持续升级和改进实现,而不会对使用该服务的解决方案产生负面影响。,什么是“SOA”,SOA=Service(服务)+体系结构(Architecture),面向服务架构(SOA),一种体系结构风格,它将应用程序的不同功能单元服务(service),通过服务间定义良好的接口和契约(contract)联系起来。接口采用中立的方式定义,独立于
15、具体实现服务的硬件平台、操作系统和编程语言,使得构建的系统中的服务可以使用统一和标准的方式进行通信。这种具有中立的接口定义的特征称为服务之间的松耦合。,面向服务架构(SOA),W3C将服务定义为:服务提供者完成一组工作,为服务使用者交付所需的最终结果。,面向服务架构(SOA),三种角色:服务提供者(Service Provider)服务请求者(Service Requestor)服务目录 (Service Registry)三个操作发布(Publish)查找(Find)绑定(Bind),面向服务的架构,一个组件模型;将应用程序的不同功能单元(服务)通过这些服务之间定义良好的接口和契约联系起来。
16、,软件架构的发展与演化,系统(程序) = 算法 + 数据结构 (1960s )系统 = 子程序 + 子程序 (1970s )系统 = 对象 + 对象关联机制 (1980s )系统 = 软构件 + 连接件 (1990s )系统 = 服务 + 服务连接件 (2000s),SOA- RPC,SOA是一种“如何将软件组织在一起”的抽象概念,依赖于用 XML 和 Web 服务实现并以软件的形式存在的更加具体的观念和技术。作为与RPC方式的最大差别,SOA方式更加关注如何连接服务而不是特定某个实现的细节。,SO-OO,SO是对OO的补充SO是为服务的整合而生SO把互联作为首要的目标SO是松耦合而OO是紧耦
17、合,Service-Web Service,共同点-都利用SOAP,XML,WSDL等标准协议-都具有自治、平台实现无关性等特性差异-Service是Web Service在SOA领域的后继标准-Web Service只提供了基于Http的传说通道和request/response的消息交互模式,而Service是传输中立,协议中立和格式中立的-Service比Web Service更成熟,更能够满足企业需求。,三、表述性状态转移,表述性状态转移式(Representational state transfer,REST)Web服务类似于HTTP或其他类似协议,它们把接口限定在一组广为人知的标
18、准动作中(比如HTTP的GET、PUT、DELETE)以供调用。可以通过WSDL来描述SOAP消息内容,通过HTTP限定动作接口;或者完全在SOAP中对动作进行抽象。,REST究竟何物?,REST):表述性状态转移,分布式超媒体软件的一种架构风格。源自2000年Roy Thomas Fielding的博士论文。一套简单的设计原则、一种架构风格(或模式),不是一种具体的标准或架构。基于使用HTTP、URI等现有的广泛流行的协议和标准,并由几个核心抽象概念支撑。对Web的本质回归:一种真实描述Web的方式,不被特定时期的特定应用程序概念歪曲。提供区分良好实践和糟糕实践的途径:判断特定实践是否与We
19、b架构一致。,回顾Web,Internet,Web1.0核心组件,HTTP(HypertextTransferProtocol):超文本传输协议。一种基于文档的轻量级网络协议,建立在可靠性和扩展性高的TCP/IP协议基础之上。URL(Uniform Resource Locator):通用资源定位符,一种文档地址的表示方案,是Web1.0的关键。例:http:/ /user/doc.html 指定协议 定位符,对应域名系统对应大部分文件系统层次结构HTML(Hypertext Markup Language):超文本标识语言,一种基于标签的简单文档格式,主要显示静态网页内容。,Web1.0-
20、Web2.0的转变,Web1.0的误区:对大多数用户而言,Web不过是一个只读文件仓库!Web2.0颠覆用户错误观念:Web不再是简单的文档仓库!Web是双向的!重新审视Web作为全球信息空间的概念, Web2.0更加丰富的含义:“Web数据”和“平台化的Web”。底层基础设施未变化,真正的区别:使用基础设施的方式。网站就是Web服务,Web作为分布式编程平台具备极大的潜力。,细看HTTP与URI,HTTP:信封里的文档,HTTP协议的形象理解:信封格式有严格标准,不关心里面内容。,HTTP请求,方法(method):表示客户端希望服务器如何处理该信封。有GET、POST、PUT、DELETE
21、、HEAD、OPTION、TRACE和CONNECT八个方法。,URI=URL+URN,URI(Uniform Resource Identifier):通用资源标识符,它被设计充当可用位置和持久名称。URL提供资源定位方法,依赖于命名和位置机制。URN(Uniform Resource Name)需要是全球惟一的,并且在资源不存在或不再可用时依然保持不变。URI可为定位器、名称,或两者兼具,取决于标识符分配中的持久性和命名机构对其关注程度。不论在哪里都可以对URI作出一致的解释,通常没有必要刻意区分它们。,REST抽象概念与设计原则,资源,URI规范(RFC 2396)指出:“资源可以是任何
22、有标示的东西”;“并非所有的资源都是通过网络能够获取的”。任何事物,只要有被引用的必要,就是一个资源(resource)。它可以是一个实物,也可以是一个抽象的概念。通常一个资源是某个可以存放在计算机上并体现为比特流的事物。在Web中,可以这样认为资源是URI标示的东西。,表示,资源和表示不是一码事。Web上获取的不是资源,而是资源的表示。对于给定的资源,可以有很多不同的表示。,52,表示,表示,表示,HTML,XML,Flash,Text,资源,表示,标识符(URI),状态,在客户-服务端模式下,让客户端维护应用状态,并确保服务端向服务器发出的请求都包含理解请求所需的全部信息,而服务器不应该维
23、护该状态。REST式解决方案是使用URI。每个概念上独立的资源都可使用单个URI,不希望通过Cookie或隐藏在有效负载的参数来提供额外信息。例:查看john在某网站2008-10-10的所有文档资料http:/ GET创建一个新资源:向一个新URI发送HTTP PUT,或向一个已有的URI发送HTTP POST修改已有资源:向已有URI发送HTTP PUT删除已有资源:HTTP DELETE两个辅助操作接口:获取的一个只包含元数据的表示:HTTP HEAD查看一个资源支持那些HTTP方法:HTTP OPTIONS安全性与幂等性:GET和HEAD请求是安全的GET、HEAD、PUT和DELET
24、E请求是幂等的,1.2 基础Web地理信息服务,开放地理信息系统协会(OpenGISConsortium OGC)致力于为地理信息系统间的数据和服务互操作提供统一它是一个非盈利的志愿的国际标准化组织,引领着空间地理信息标准及服务的发展,基于Web服务的空间数据互操作实现规范,通过国际标准化组织(ISO/TC211)或技术联盟(如OGC)制定空间数据互操作的接口规范,GIS软件商开发遵循这一接口规范的空间数据的读写函数,可以实现异构空间数据库的互操作。OGC和ISO/TC211共同推出了基于Web服务(XML)的空间数据互操作实现规范WMS,WFS,WCS。,1.2.1 网络地图服务WMS,作为
25、OGC基于Web地图服务的互操作规范,WMS(Web Map Server)凭借其简单明了的请求方式和丰富的响应信息,为在互联网上实现多源异构地理空间数据的集成、共享、互操作和应用提供了一条简捷高效的途径。WMS能动态整合与可视化在线的数据源,而不受格式、数据模型、坐标系以及软件商家的限制。,WMS的地图格式,WMS定义了用来在Internet上得到地图图像的服务接口,其所生成的地图是以诸如:PNG、GIF、JPEG、SVG或WebCGM(Web Computer Graphics Metafile)的格式存在为不同来源地理信息的融合与服务的共享提供了基础。,WMS的三个操作,“GetCapa
26、bilities()”返回服务层元数据;“GetMap()”返回一定地理范围和维度的地图,用户提供所需地图的边界范围、图像大小、格式、错误处理等信息;“GetFeatureInfo()”是可选的,它返回地图中指定要素的属性信息,用户提供所作用的图层和点位置的坐标对(x, y)。,WMS的交互,标准的网络浏览器通过发送URLs(Uniform Resource Locators)请求来激活这些操作,不同操作对应的URLs内容不同。 一般URL包括:地图显示那些信息、地图反映地球的那部分、所使用的坐标参考系、输出的图像高度和宽度等。具有相同参数的两个或多个地图,通过叠加能产生复合地图。同样,单个地
27、图可以来自于不同的服务器,从而实现网络分布式地图服务。,WMS的图层与样式,WMS通过图层组织地理信息,并提供有限的用于显示图层的预定义样式。WMS所呈现的地图可以被定义为一系列的样式化图层(Styled Layers)。每个图层可以认为是符号化的要素。一幅地图是由大量的这些图层按照一定的次序构成的。,WMS的图层与样式,用户通过增加或减少图层,能定义复杂或简单的地图。每个样式化的图层本身表示了“图层”和“样式”的特定融合。理论上讲,图层定义了一系列的要素和定义如何符号化这些要素的样式。WMS仅仅支持指定的图层和样式,并不包括地理要素的自定义符号化机制。,WMS示例,1.2.2 网络要素服务W
28、FS,Web要素服务(WFS, Web Feature Server)标准描述了使用HTTP协议通过网络访问要素服务的规范,是数据访问服务接口之一。WMS允许客户端重叠显示来自Internet的多个WMS的地图图像。 类似地,Web要素服务允许客户端从多个WFS中使用GML编码的地理空间数据,这叫聚合。,XML-WFS-必要条件,实现WFS的必要条件:接口必须用XML定义;GML必须被用来在接口中表达要素;一个最小化的WFS必须可以使用GML表达要素;谓语或过滤语言将使用XML定义;用来存储要素的数据库对客户端应用应该是不透明的,它们对数据的唯一查看方法应通过WFS接口;使用XPath表达式子
29、集引用特性。,WFS操作,GetCapabilities,一个WFS必须可以描述它的能力,特别地,必须指出它可以为哪些要素类型提供服务以及每个要素类型支持哪些操作。DescribeFeatureType,WFS必须可以在请求中描述它可以提供服务的任何要素的结构。,WFS操作,GetFeature,WFS必须可以为一个获取要素实例的请求提供服务。客户端可以规定获取要素的哪些特性,并且可以使用空间和非空间的查询限制条件。Transaction,WFS可以为事务请求提供服务。一个事务请求是由修改要素的操作组成的,即对地理要素的创建、修改和删除操作。LockFeature,WFS可以处理在一个事务期间
30、对一个或多个要素类型实例上锁的请求,这就保证了可序列化的事务被支持。,WFS 分类,WFS 分类:基本WFS和事务WFS。基本WFS可以实现GetCapabilities,DescribeFeatureType和GetFeautre操作,它被认为是只读的WFS;事务WFS可以支持所有的WFS操作。,WFS示例,1.2.3 网络覆盖服务,网络覆盖服务(WCS, Web Coverage Service)是空间数据互操作的一个重要组成部分。WCS面向空间影像数据,将包含地理位置值的地理空间数据作为“覆盖”在网上进行交换。,WCS操作,GetCapabilities()返回描述服务和数据集的XML文
31、档,包括对特定的服务器能力的描述(如对服务器提供的覆盖的简单描述);DescribeCoverageType()允许客户端请求由具体的WCS服务器提供的任一覆盖层的完全描述,包括提供的覆盖的时空范围、参考坐标系、数据格式、插值方法等;GetCoverage()是在GetCapabilities确定什么样的查询可以执行、什么样的数据能够获取之后执行的,它使用通用的覆盖格式如GML等来返回地理位置的值或属性。,1.3 Web地理信息服务关系,GIS可视化是根据样式规则、符号系统对地理要素进行的符号化,其中地理要素与地图符号之间的关联可以通过人工建立或由样式规则推理自动匹配。GIS可视化与Web 服
32、务的结合推动了Web地理服务的发展。,发展历程1:图示表达机制,图示表达机制的表达规范、表达规则和表达服务,分别对应于GIS可视化的符号、样式和符号化,这意味着,图示表达规范可以看成是GIS可视化的抽象与标准化定义。,发展历程2: WMS/SLD,WMS/SLD包括定义的图层、定义样式和表达服务,其中WMS是预定义的图层和样式,而SLD则是在预定义基础上可以进行自定义图层和样式。其中,图层、样式、表达服务分别对应于GIS可视化的DLM、符号与样式、符号化;WMS/SLD的样式可看成是图示表达规范的表达规范与表达规则的复合,这意味着,WMS/SLD是图示表达在基于XML的Web 服务框架下的实现
33、模型。,发展历程3:符号表示管理服务,SMS (Symbology Management Service OGC 05-112r1)是WMS数据与功能的进一步分离及基于Web 服务链的集成。WMS的图层、表达服务对应于SMS的WFS、FPS(Feature Portrayal Service),而WMS的样式分离为SMS的符号资源(Symbol URI)和样式服务(可通过OGC Catalog Service for Web, CS-W获得)。,基础实验平台简介,1、最好的平台:自己搭建系统- 自由修改,数据齐全,适合研究2、较好的平台:利用现有系统3、公认的平台: GeoServer,4、凑合的平台:自己写代码模拟- 灵活方便,简单易行,但不具有说服力5、最不好的平台:用他人写的模拟器 - 手到擒来,但自由度太小,极易受他人置疑推荐实验方式:3、公认的平台,问 题?,