Web Service技术特点
Web Service 本质是基于网络的、跨平台的服务调用机制,核心目标是实现系统间松耦合集成(Loose Coupling Integration)。
1.标准化(Standards-Based)
Web Service 依赖一整套标准协议体系:
| 层级 | 标准 |
|---|---|
| 传输层 | HTTP / HTTPS / SMTP |
| 消息格式 | XML / JSON |
| 描述语言 | WSDL(Web Service Description Language) |
| 通信协议 | SOAP / REST |
| 注册发现 | UDDI |
特点:
- 强规范(尤其是 SOAP)
- 可被自动化工具解析(如生成客户端 stub)
2.跨平台 / 跨语言(Platform & Language Agnostic)
核心价值:
- Java、Python、Go、.NET 等系统可以互调
- Linux / Windows / Cloud / 容器环境均可运行
本质原因:
- 基于 HTTP + 文本协议(XML / JSON)
- 不依赖二进制协议(如 gRPC 的 protobuf)
3.松耦合(Loose Coupling)
系统之间仅依赖:
- 接口契约(WSDL / OpenAPI)
- 数据格式(XML / JSON)
不依赖:
- 内部实现
- 运行时环境
- 技术栈
结果:
- 可独立部署
- 可灰度升级
- 易于服务拆分(微服务基础能力)
4.自描述性(Self-Describing)
通过 WSDL / OpenAPI 描述:
- 方法
- 参数
- 返回值
- 调用方式
效果:
- 客户端可以自动生成代码(RPC 化)
- 减少人工对接成本
5.基于文本协议(Text-Based Messaging)
常见格式:
- XML(SOAP)
- JSON(REST)
优缺点:
| 优点 | 缺点 |
|---|---|
| 可读性强 | 体积大 |
| 易调试 | 解析性能较低 |
| 跨语言兼容好 | 带宽消耗高 |
6.可扩展性(Extensibility)
尤其在 SOAP 体系中:
- Header 可扩展(认证、事务、路由等)
- 支持 WS-* 标准(如 WS-Security、WS-Transaction)
7.服务(Service-Oriented)
Web Service 是 SOA(Service-Oriented Architecture)的核心实现方式之一:
- 服务提供者(Provider)
- 服务消费者(Consumer)
- 服务注册中心(Registry)
8.网络透明性(Network Transparency)
调用方式类似本地函数:
1 | Client → HTTP → Web Service → Response |
对调用方来说:
- 不关心远程细节
- 类似 RPC(但本质是 HTTP)
9. Web Service 架构流转
sequenceDiagram
participant Client
participant Service
participant Registry
Client->>Registry: 查询服务地址(可选)
Registry-->>Client: 返回服务描述(WSDL)
Client->>Service: 发送请求(SOAP/REST)
Service-->>Client: 返回响应(XML/JSON)
10. SOAP vs REST(核心差异)
| 维度 | SOAP | REST |
|---|---|---|
| 协议 | 严格协议 | 架构风格 |
| 数据格式 | XML | JSON/XML |
| 性能 | 较低 | 高 |
| 扩展性 | 强(WS-*) | 弱 |
| 易用性 | 复杂 | 简单 |
| 适用场景 | 金融/企业级 | Web/API/微服务 |