文章目录
1. UDDI协议
- 概述
- 统一描述、发现和集成协议
- Universal Description Discovery and Integration
- 作用:提供一种通用的方式来注册、发布和查找网络服务,并支持服务之间的集成和交互
UDDI 同时也是 Web服务集成的一个体系框架,包含了服务描述与发现的标准规范。 UDDI规范利用了 W3C和 Internet工程任务组织的很多标准作为其实现基础,如XML、HTTP和 DNS等协议。另外,在跨平台的设计特性中,UDDI 主要采用了已经被提议给W3C的 SOAP(Simple Object Access Protocol, 简单对象访问协议)规范的早期版本。
2. WSDL规范
2.1 概述
-
概念:
- Web Services Description Language
- Web服务描述语言
- 是一个用来描述Web服务,以及说明如何与Web服务通信的XML格式的语言
-
可描述Web服务的三个基本属性
- 服务做些什么——服务所提供的操作(方法)
- 如何访问服务——和服务交互的数据格式以及必要协议
- 服务位于何处——协议相关的地址,如 URL
-
WSDL文档的两种类型
- 服务接口 (Service Interface)
- 服务实现 (ServiceImplementations)
2.2 WSDL文档的基本结构
以服务接口文档为例,说明上图
- 类型(types)
- 定义了Web服务使用的所有数据类型集合
- 可被元素的各消息部件所引用
- 消息(message)
- 通信消息数据结构的抽象类型化定义
- 使用Types所定义的类型来定义整个消息的数据结构
- 操作(operation)
- 对服务中所支持操作的抽象描述
- 描述了一个访问入口的请求/响应消息对
- 端口类型(portType)
- 对于单个访问入口点类型所支持操作的抽象集合
- 绑定(binding)
- 特定端口类型的具体协议和数据格式规范的绑定。
- 接口(port)
- 协议/数据格式绑定与具体Web访问地址组合的单个服务访问点
- 服务(service)
- 代表端口的集合,以及相关服务访问点的集合
3. SOAP协议
- 概念
- 简单对象访问协议
- Simple Object Access Protocol
- 基于XML 的协议
- 是在分散或分布式的环境中交换信息的简单的协议
- 四个部分
-
SOAP信封 (Envelop)
- 定义消息内容、发送者、接受者、如何处理
-
SOAP编码规则 (Encoding Rules)
- 定义了一套编码机制,用于交换应用程序所定义的数据类型的实例
诠释:SOAP协议提供了一套机制,使得不同的应用程序可以定义它们自己的数据类型,并通过SOAP消息来交换这些数据类型的实例。
- 定义了一套编码机制,用于交换应用程序所定义的数据类型的实例
-
SOAP RPC表示 (RPC Representation)
- 远程过程调用和应答的协定
-
SOAP绑定 (Binding)
- 定义了一种使用底层传输协议来完成在节点间交换SOAP信封的约定
-
- 主要设计目标:简单性、可扩展性
4. REST规范
- REST概念:
- Representational State Transfer
- 表述性状态转移
- 是一种设计风格(而不是一个架构)
- 目的:让不同应用程序在任何网络环境下都可以进行信息的互相传递。
- RESTful
- 即REST 式的
- 是对遵循REST设计思想的一类架构设计或应用程序的统称
4.1 资源 (Resource)
- 概念:
- 互联网中一切暴露给客户端的事物都可以看做一种资源
- URL
- Uniform Resource Locator
- 统一资源定位符
- 作用:标识Web上的资源
- 一个资源可以设计多个URI
- 一个URI只能对应一种资源。
4.2 表述 (Representational)
- 概念:描述资源在 Web 中某一个时间的状态。
客户端和服务端借助的数据传递,可视为资源表述的交互
- 常用形式:HTML、JSON、XML、 纯文本等
4.3 状态转移 (State Transfer)
- 状态分类:
- 应用状态
- 概念:对某个时间内用户请求会话相关信息的快照,保存在客户端,由客户端自身维护
- 作用:和缓存配合降低服务端并发请求压力
- 资源状态
- 概念:在服务端保存,是对某个时间资源请求表述的快照
- 应用状态
- 状态转移还要借助HTTP方法来实现,如GET方法、 POST方法、 DELETE方法等
4.4 超链接
- 概念:通过在页面中嵌入链接和其他资源建立联系
REST在资源表述中可能会添加一些相关资源 URI, 将一些资源接口暴露给客户端,便于用户请求这些资源,实现资源状态转移。这些超链接是包含在应用状态中,由客户端维护保存,并不是服务端提前设定好的,是服务请求过程中添加进去,客户端对其解析提供给用户。