SOAP WSDL UUDI REST SOA ESB WebService 之间的关系
SOA是一种通过松散耦合服务构建企业系统的架构思想,其核心实现技术是Web服务。Web服务主要分为两大流派:一是以SOAP、WSDL和UDDI为代表的传统Web服务协议栈,通过严格的XML标准定义通信、描述与发现机制;二是遵循REST架构风格的现代轻量级API,依托HTTP协议直接操作资源。在复杂的SOA环境中,ESB(企业服务总线)扮演着集成中枢的角色,负责各类服务间的消息路由、协议转换与协调管理,从而支撑起灵活的分布式系统。
博主博客
核心技术与标准: SOAP, WSDL, UDDI
架构风格: REST
- 架构概念与组件:SOA, ESB, Web Service
第一组:Web服务的“三驾马车”(SOAP, WSDL, UDDI)
在早期,这三者被共同称为“Web服务协议栈”,是实现SOA构想的具体技术标准。
-
SOAP(简单对象访问协议)
- 是什么:一种基于XML的通信协议规范,用于在Web上交换结构化的信息。它定义了消息的格式(信封结构),通常通过HTTP、SMTP等传输。
- 角色:通信协议。它规定了服务消费者和服务提供者之间“如何说话”。
-
WSDL(Web服务描述语言)
- 是什么:一种基于XML的语言,用于描述Web服务的功能接口。它就像一个服务的“说明书”或“API文档”,明确说明了:
- 服务在哪里(地址)。
- 服务提供了哪些方法(操作)。
- 调用这些方法需要传入什么参数(消息格式)。
- 返回的数据是什么样子。
- 角色:服务接口描述。它告诉外界这个服务“能做什么”以及“怎么调用”。
- 是什么:一种基于XML的语言,用于描述Web服务的功能接口。它就像一个服务的“说明书”或“API文档”,明确说明了:
-
UDDI(通用描述、发现与集成)
- 是什么:一个基于XML的、跨平台的注册中心标准,可以把它想象成Web服务的“电话黄页”或“应用商店”。
- 角色:服务注册与发现。服务提供者将他们的WSDL发布到UDDI注册中心,服务消费者则可以去UDDI查询并找到他们需要的服务。
它们三者的关系:
- 服务提供者编写一个Web服务(例如,一个查询天气的服务)。
- 为该服务创建一个WSDL文件,描述其接口。
- 将这个WSDL发布到UDDI注册中心。
- 服务消费者在UDDI中查找服务,获得WSDL。
- 根据WSDL的描述,服务消费者构建一个符合SOAP格式的请求,发送给服务提供者。
- 服务提供者返回一个符合SOAP格式的响应。
第二组:架构风格(REST)
- REST(表述性状态转移)
- 是什么:一种架构风格,而不是像SOAP那样的标准协议。它是一组设计原则和约束,利用Web的现有标准和协议(主要是HTTP)来构建分布式系统。
- 核心思想:将一切视为资源,通过统一的接口(HTTP方法:GET, POST, PUT, DELETE等)来操作资源。
- 与SOAP对比:REST通常更轻量(如使用JSON代替XML),更易于理解和缓存,并且与Web本身的工作方式高度一致。
REST与SOAP/WSDL的关系:
- 竞争与替代关系:RESTful API是现代Web开发中更流行的选择,它很大程度上取代了早期笨重的基于SOAP的Web服务,尤其是在公共API和移动应用后端领域。
- 描述语言:SOAP有官方的WSDL,而RESTful API通常使用 OpenAPI(Swagger) 规范作为其“说明书”。
第三组:宏观架构与组件(SOA, ESB, Web Service)
-
SOA(面向服务的架构)
- 是什么:一种宏观的软件架构设计范式或思想。它将应用程序的不同功能单元(称为“服务”)通过定义良好的接口和契约联系起来,使得这些服务可以被独立构建、部署和复用。
- 核心目标:实现企业内系统的松耦合集成和业务敏捷性。
- 它与技术的关系:SOA是一种思想,而Web服务(SOAP/WSDL/UDDI或RESTful)是实现这种思想的一种具体技术手段。你可以不用Web服务技术来实现SOA,但Web服务技术是实践SOA最普遍的方式。
-
ESB(企业服务总线)
- 是什么:一个核心的架构组件,是SOA理念的神经系统和“中间人”。
- 角色:ESB在服务消费者和服务提供者之间扮演中间层的角色,负责:
- 消息路由
- 协议转换(例如,将HTTP请求转换为JMS消息)
- 数据格式转换(例如,XML转JSON)
- 服务组合、安全、监控等。
- 它与SOA和Web服务的关系:在复杂的SOA环境中,ESB负责管理和连接各种Web服务(无论是基于SOAP的还是REST的),让它们能够协同工作,而无需彼此直接、紧耦合地连接。
-
Web Service(Web服务)
- 是什么:一个广义的术语,指任何通过Web(网络)提供的、供其他应用程序调用的服务。
- 具体形态:它既可以指基于 SOAP/WSDL 的“传统”Web服务,也可以指基于 REST 原则的 RESTful Web服务。
总结关系图
graph TD
A[SOA] --> B{"实现方式"}
B --> C["Web Service"]
C --> D["具体技术栈: SOAP/WSDL/UDDI"]
C --> E["架构风格: REST"]
F[ESB] --> A
F -.->|"连接与管理"| C
G[UDDI] -.->|"注册与发现"| H[WSDL]
H -.->|"描述"| I[SOAP]
I -->|"实现"| C
一句话概括它们的关系:
SOA 是一种构建松散耦合企业系统的架构思想,它常通过 Web服务 这种技术来实现。Web服务主要有两大流派:基于严格标准协议栈(SOAP/WSDL/UDDI)的“传统派”和基于REST架构风格的“现代派”。而在大型SOA系统中,ESB 则作为核心基础设施,负责将这些各式各样的服务连接、协调和管理起来。
SOAP WSDL UUDI REST SOA ESB WebService 之间的关系
https://blog.uso6.com/archives/soap-wsdl-uudi-rest-soa-esb-webservice-zhi-jian-de-guan-xi
评论