《系统架构设计师教程(第2版)》第15章-面向服务架构设计理论与实践-03-SOA主要协议和规范

本文主要是介绍《系统架构设计师教程(第2版)》第15章-面向服务架构设计理论与实践-03-SOA主要协议和规范,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1. UDDI协议
  • 2. WSDL规范
    • 2.1 概述
    • 2.2 WSDL文档的基本结构
  • 3. SOAP协议
  • 4. REST规范
    • 4.1 资源 (Resource)
    • 4.2 表述 (Representational)
    • 4.3 状态转移 (State Transfer)
    • 4.4 超链接

在这里插入图片描述

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, 将一些资源接口暴露给客户端,便于用户请求这些资源,实现资源状态转移。这些超链接是包含在应用状态中,由客户端维护保存,并不是服务端提前设定好的,是服务请求过程中添加进去,客户端对其解析提供给用户。


在这里插入图片描述

这篇关于《系统架构设计师教程(第2版)》第15章-面向服务架构设计理论与实践-03-SOA主要协议和规范的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1095827

相关文章

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

Java Spring 中的监听器Listener详解与实战教程

《JavaSpring中的监听器Listener详解与实战教程》Spring提供了多种监听器机制,可以用于监听应用生命周期、会话生命周期和请求处理过程中的事件,:本文主要介绍JavaSprin... 目录一、监听器的作用1.1 应用生命周期管理1.2 会话管理1.3 请求处理监控二、创建监听器2.1 Ser

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

Mybatis嵌套子查询动态SQL编写实践

《Mybatis嵌套子查询动态SQL编写实践》:本文主要介绍Mybatis嵌套子查询动态SQL编写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、实体类1、主类2、子类二、Mapper三、XML四、详解总结前言MyBATis的xml文件编写动态SQL

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事

MySQL 安装配置超完整教程

《MySQL安装配置超完整教程》MySQL是一款广泛使用的开源关系型数据库管理系统(RDBMS),由瑞典MySQLAB公司开发,目前属于Oracle公司旗下产品,:本文主要介绍MySQL安装配置... 目录一、mysql 简介二、下载 MySQL三、安装 MySQL四、配置环境变量五、配置 MySQL5.1

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1