首页 励志故事 服务历史消息怎么查看

服务历史消息怎么查看

时间:2022-01-20 励志故事 版权反馈
【摘要】:Web Services是一个网络环境下支持多台计算机交互操作的软件系统。图4.9 SOA结构图Web服务技术的核心是各种Web服务技术标准。Web Services的核心技术主要有HTTP、XML、WSDL、SOAP和UDDI/ebRIM。目前OASIS正对其实施标准化工作。运行在不同端系统上的客户程序和服务器程序通过交换HTTP消息彼此交流。
核心技术_网络地理信息系统

4.2.2 Web Services核心技术

网络服务(Web Services)技术,作为面向服务体系架构的一种实现,极大地推动了空间信息共享与应用服务的发展。Web Services是一个网络环境下支持多台计算机交互操作的软件系统。它提供标准的接口使得不同的软件系统之间能够进行互操作,因而不同的组织提供的网络服务可以组合实现用户的请求。

img40

图4.9 SOA结构图

Web服务技术的核心是各种Web服务技术标准。各项Web服务技术规范和协议共同构成了建立和使用Web服务的协议栈。由于不同的技术厂商和标准化组织对于Web服务的理解有所差异,因此所提出的Web服务架构栈也不尽相同。Web Services主流的标准主要有SSL、HTTP、WSDL、UDDI等,见图4.10。Web Services的核心技术主要有HTTP、XML、WSDL、SOAP和UDDI/ebRIM。WSDL用来描述Web Services的编程接口,UDDI/ebRIM用来注册Web Services的描述信息,其他应用程序可以通过UDDI/ebRIM来查找到需要的服务,SOAP则是提供应用程序和网络服务之间的通信手段。

img41

图4.10 Web Services主流的标准

此外,为扩展Web服务能力,已经或正在开发一些新的标准。这些标准通常冠以WS字头(Web Service的简称),例如,WS安全(WS-Security)定义了如何在SOAP中使用XML加密或XML签名来保护消息传递。可作为HTTPS保护的一种替代或扩充。WS信赖性(WS-Reliability)是一个来自OASIS的标准协议,用来提供可信赖的Web服务间消息传递。WS可信赖消息(WS-ReliableMessaging)同样是一个提供信赖消息的协议,由Microsoft,BEA和IBM发布。目前OASIS正对其实施标准化工作。WS寻址(WS-Addressing)定义了在SOAP消息内描述发送/接收方地址的方式。WS事务(WSTransaction)定义事务处理方式。

4.2.2.1 HTTP

超文件传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络传输协议(W3C,2011a)。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。目前的应用除了HTML网页外还被用来传输超文本数据,例如:图片、音频文件(MP3等)、视频文件(rm、avi等)、压缩包(zip、rar等),基本上只要是文件数据均可以利用HTTP进行传输。

HTTP是一个客户端和服务器端请求和应答的标准(TCP)。通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如“HTTP/1.1200OK”,和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其他一些信息。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。

HTTP在Web的客户程序和服务器程序中得以实现。运行在不同端系统上的客户程序和服务器程序通过交换HTTP消息彼此交流。HTTP定义这些消息的结构以及客户和服务器如何交换这些消息。HTTP/1.1协议规范定义了8种用于操作与获取资源的方式,包括OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE与CONNECT。目前OGC规范定义的空间信息服务所支持的HTTP操作包括GET和POST,表4.1列出了GET和POST方法在HTTP/1.1协议规范中的语义描述。

表4.1 HTTP/1.1 GET与POST方法语义描述

img42

当客户端向网络目录服务发送请求时,有两种方式对请求所包含的信息进行编码:关键字/数值(Key Value Pair,KVP)和XML。KVP适合对较为简单的数据信息进行编码,而XML则适合于简单或者复杂的数据信息。对于HTTP GET方法,由于所有的请求信息都包含在请求统一资源标识符(Uniform Resource Identifier,URI)中,所以所采用的信息编码方式只有KVP。而对于HTTP POST方法来说,其Request URI只包含所请求目标服务的基本URI,所有的请求信息作为载荷(payload)附加到HTTP POST请求中。HTTP POST的载荷可以包含大量的数据信息,所以HTTP POST方法可以采用简单的KVP方式对数据信息进行编码(对应于HTTP POST方式的application/x-www-form-urlencoded),也可以采用XML方式对较为复杂的数据信息进行编码。

4.2.2.2 XML

可扩展标记语言(EXtensible Markup Language,XML)是W3C为了补充超文本标记语言(HyperText Markup Language,HTML)的不足而制定的一种类似于HTML的标记语言(W3C,2011b)。所以,和HTML一样,XML也是来自于标准通用标记语言(Standard Generalized Markup Language,SGML)。XML继承了SGML的扩展性、文件自我描述特性以及强大的文件结构化功能。

XML是当前最热门的网络技术之一,其结合了HTML和SGML的优点并消除了它们的缺点。用户可以自己定义XML的标记,每个标记可以具有明确的语义,所以XML的结构嵌套可以复杂到任何程度,具有良好的结构化特性和扩展性。XML还具有自我描述的特性,适合数据交换和共享,具有很强的开放性。XML把数据和表达分离,因而同一个数据可以有不同的表达。XML具有良好的交互性,它可以在客户机上进行操作,不需要与服务器交互,极大地减轻了服务器的负担。XML与应用程序和操作系统的无关性,确保了结构化数据的统一。XML是基于开放标准的一种网络可用语言,可以实现互操作。

在XML标准的基础上,为了定位XML结构中的元素、属性等,W3C进一步制订了XPath规范(W3C,1999),该规范为以下规范奠定了基础:

●XSLT(可扩展样式表语言转换Extensible Stylesheet Language Transformations):

 将XML原本的树状结构转换为另外一种树状结构;

●XML Link(XLink):一种能在XML文档中建立超文本链接的语言;

●XML Pointer(XPointer):让超文本链接指向XML文档中特殊的部分;

●XML Query:查询XML数据源的规范。

4.2.2.3 SOAP

SOAP是Internet中交换结构化信息的轻量级机制,基于HTTP协议,用于实现异构应用系统之间的信息交换和互操作(Mitra,2001)。SOAP本身并没有定义应用程序语义,而是通过提供有标准组件的包装模型和对模型中用特定格式编码的数据进行重编来实现表示程序应用语义,这使得SOAP能用于从消息传递到远程过程调用的各种系统。

SOAP组成部分包括三个:封装结构、编码规则——XML、RPC机制。封装结构定义了一个整体的框架,描述消息中包括内容、内容属性和由谁处理这些内容等信息。编码规则定义了用来交换应用程序数据类型的一系列机制,支持XML Schema中定义的全部简单数据类型及结构和数组。RPC机制定义了远程过程调用和应答的协定。

一个SOAP消息通常是由一个强制信封(SOAP Envelope)、一个可选的消息头(SOAP Header)、一个强制的消息体(SOAP Body)构成(表4.2)。其中SOAP Envelope表示SOAP消息XML文档的顶级元素;SOAP Header是为了支持在松散环境下通信方如SOAP发送者、SOAP接受者或者是一个或多个SOAP的传输中介)之间尚未预先达成一致的情况下为SOAP消息增加特性通用机制;SOAP Body是提供消息的容器。

表4.2 典型SOAP消息结构示例

img43

HTTP协议绑定定义了在HTTP上使用SOAP的规则。SOAP请求/响应自然地映射到HTTP请求/协议模型。如表4.3所示,HTTP请求和响应消息的Content-Type标头都必须设为text/xml(在SOAP1.2中是application/soap+xml)。对于请求消息,它必须使用POST作为动词,而URI应该识别SOAP处理器。SOAP规范还定义了一个名为SOAPAction的新HTTP标头,所有SOAP HTTP请求(即使是空的)都必须包含该标头。SOAPAction标头旨在表明该消息的意图。对于HTTP响应,如果没有发生任何错误,它应该使用200状态码,如果包含SOAP错误,则应使用500。

表4.3 HTTP上使用SOAP的请求和响应

img44

4.2.2.4 WSDL

网络服务描述语言(Web Service Description Language,WSDL)是W3C通过的用于描述服务接口的一个规范(W3C,2007)。它可以描述一个网络服务可以做什么、如何调用该服务以及该服务在什么地方等内容。WSDL能够描述基于HTTP协议上的GET,POST和SOAP绑定,其中GET和POST绑定可以支持对OGC网络服务的描述。

WSDL文档包含了服务URL和命名空间、网络服务的类型、有效函数列表、每个函数的参数、每个参数的类型以及每个函数的返回值及数据类型等信息,其结构框架由XML Schema定义。WSDL文档中各元素之间的关系见图4.11(Dhesiaseelan,2004)。在抽象定义部分里,WSDL通过类型系统描述了网络发送和接收的消息,消息通常使用W3C的XML Schema(XML模式)来进行描述,另外消息交换模式(message exchange patterns)定义消息的序列和多重性。操作(operation)将消息交换模式与一个或多个消息(messages)关联到一起。而接口(interface)以独立于传输协议和交换格式的方式将这些操作组织起来。在概念描述的具体实施部分,绑定(bindings)指定了接口(interface)具体的消息交换格式和传输协议。服务端点(endpoint)将服务的网络地址和绑定关联在一起。最后,服务(service)将实现了一个共同接口的服务端点聚合起来。

img45

图4.11 WSDL文档各元素之间关系

4.2.2.5 UDDI和ebRIM

目前有两个主流服务注册模型:UDDI和ebRIM。

UDDI(Universal Discovery Description and Integration,统一描述、发现和集成)是一套基于Web的、分布式的、为Web服务提供的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web服务注册以使得别的企业能够发现的访问协议的实现标准(OASIS,2004)。UDDI标准定义了Web服务的发布与发现的方法。

UDDI标准包括了SOAP消息的XML Schema和UDDI规范API的描述。它们两者一起建立了基础的信息模型和交互框架,具有发布各种Web服务描述信息的能力。UDDI注册使用的核心信息模型由XML Schema定义。UDDI XML Schema定义了四种主要信息类型,它们是技术人员在需要使用合作伙伴所提供的Web服务时必须了解的技术信息。

(1)业务实体(BusinessEntity)。记录了有关提供服务的所有者信息和联系方式。这些信息包括了商业实体的名称和一些关键性的标识,以及该商业实体是属于哪个具体工业分类之类的分类信息,以及联络方法(包括Email,电话,URL)等信息。所有“businessEntity”中的信息支持“黄页”分类法。每个商业实体信息结构包含一个或多个业务服务。

(2)业务服务(BusinessService)。记录了所有者提供的一个或多个特定的服务。业务服务描述是由企业提供的经过分类的一组服务。它与绑定信息一起构成了“绿页”信息。

(3)绑定模块(BindingTemplate)。明确了服务的接入(访问)终端点。绑定信息包含了有关如何调用服务的说明,包括Web应用服务的地址、应用服务器和调用服务前必须调用的附加应用服务等。

(4)服务调用规范(TModel)。服务调用规范描述了UDDI技术信息,包括服务遵循的规范、行为、概念甚至共享的设计等。每个服务可以有一个或多个TModels来帮助描述服务的特性。因此服务的能力例如功能、输入、输出等可以使用相应的TModels来记录。

UDDI只针对服务注册,它的注册信息模型不足以满足数据注册的要求。OASIS ebXML注册信息模型(ebRIM)基于ISO 11179系列元数据注册标准提供了一套全面的机制来管理服务和数据的元数据,因此更为通用灵活。OGC已经实现并推荐基于ebRIM的目录服务实现规范(CSW)。该规范介绍了如何利用ebRIM来发布和查询空间信息。空间数据和服务的元数据信息注册在目录服务中。

图4.12给出了ebRIM模型高层示意图。其顶层类是“RegistryObject”。它作为基础父类提供了注册对象最基本的元数据,同时它也提供了方法去获取为注册对象提供了额外元数据信息的相关对象。 “Slot”实例为“RegistryObject”实例提供了动态添加属性的方式。“Association”实例作为抽象类别“RegistryObject”的实例记录了信息登记模型中对象之间多对多的关系。一个具体的“Association”实例通过sourceObject与targetObject属性标识代表一个源“RegistryObject”与目标“RegistryObject”之间的关联。每个“Association”有一个属性“associationType”表明该“Association”的类型。“associationType”属性的值关联到规范AssociationType ClassificationScheme的一个Classification-Node实例。

每个“ClassificationScheme”实例也是“RegistryEntry”的实例,它提供了一种结构化的方式对“RegistryObject”实例进行分类或组织。“ClassificationScheme”的结构可以定义在目录注册模型内,也可以定义在目录注册模型外,因此相应的有两类的“ClassificationScheme”:内部(Internal)ClassificationScheme和外部(External)Classification-Scheme。“ClassificationNode”实例也是“RegistryObject”的实例,它用来定义internal ClassificationScheme的树状结构。该树状结构中每个节点是一个“ClassificationNode”,根节点是“ClassificationScheme”。通过“ClassificationNode”定义的分类树可以定义分类模式或者本体。

img46

图4.12 ebRIM模型图

“Classification”实例也是“RegistryObject”的实例。它可以用来对其他“RegistryObject”的实例进行分类。通过“Classification”实例,“RegistryObject”实例可以被分类成多个“ClassificationScheme”实例中的类别值。从这个意义上,一个“Classification”实例也可以理解为Association的一种特殊形式。根据“ClassificationScheme”是internal或者external,“Classification”也可以是internal或者external。一个internal Classification通过属性指向“ClassificationNode”的全局标志符(ID),而一个external Classification通过指定external ClassificationScheme中节点的唯一标识值(例如URI)间接表达了分类所属的节点。

服务元数据类型包含Service、ServiceBinding与SpecificationLink,用于注册管理服务元数据,包括网络服务(Web Services)以及其他类型的服务。Service类型用于描述服务的基本元数据信息。一个Service实例可能包含一个或多个ServiceBinding实例,用于描述该Service实例所提供的多个访问接口。一个ServiceBinding实例可能包含一个或多个SpecificationLink实例,用于指定描述如何通过该访问接口对服务进行访问的相关文档。

ebRIM提供了通用、标准的元数据类型使得网络目录服务可以描述管理通用资源信息元数据,同时提供了标准扩展方式以适应应用的需求。这些标准方式包括:

·通过继承已有的ebRIM类来引入新的元数据类别到ebRIM的树状类结构中,例如生成新的ExtrinsicObject类型,如图4.11中虚线部分新的类Dataset;

·对ebRIM类别增加属性“Slot”,如图4.11中虚线部分类Dataset对应的slots;

·通过增加Classification定义新的分类;

·定义新的Association,如图4.11中虚线部分新的关联operationsOn。

4.2.2.6 OWS服务

目前,OGC网络服务(OWS)与W3C基于SOAP的网络服务有些不同。大多数的OGC网络服务实现支持HTTP GET和HTTP POST请求,而不支持SOAP请求。网络注册服务CSW可以同时支持空间服务与空间数据的查询。基于ebRIM的CSW(Martell,2008)成为推荐的CSW实现规范之一。OWS遵循的也是SOA的发布—查找—绑定模式,它的服务查找、描述、绑定与W3C和OASIS中的UDDI、WSDL、SOAP相对应。OGC也正朝着结合W3C标准与OWS框架的方向研究,其中就有提供对OGC网络服务的WSDL描述。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈