概念——都有哪些 Web 服务方式

本文内容

  • 定义
  • Web 服务方式
  • 相关概念

Web 服务是一种面向服务架构的技术,通过标准 Web 协议提供服务,保证不同平台的应用服务可以交互。根据 W3C 定义,Web 服务(Web service)应当是一个软件系统,用以支持网络不同机器的互操作性。网络服务通常是许多应用程序接口(API)组成,它们通过网络的远程服务器,执行客户所提交的请求。

定义


核心定义

没有某个独立文档包含一切相关内容,无法给出一个“绝对全面和准确”的定义,因此,采用模块化方式给出对 Web 服务的描述。各方给出的核心定义可能稍有出入,但通常包括:

  • SOAP - 一个基于 XML 可扩展消息信封格式,需同时绑定一个传输用协议。这个协议通常是 HTTP 或 HTTPS,也可以是 SMTP 或 XMPP。
  • WSDL - 一个 XML 格式文档,用以描述服务端口访问方式和使用协议的细节。通常用来辅助生成服务器和客户端代码及配置信息。
  • UDDI - 一个用来发布和搜索 Web服务的协议,应用程序可借由此协议在设计或运行时找到目标 Web 服务。

W3C 负责 XML、SOAP 及 WSDL;OASIS 负责 UDDI。

协议集

为提高 Web 服务间的互操作性,WS-I 特别发布了 Web 服务协议集(Profile),通常以 WS(Web Service)开头。协议集包含一系列特定版本的核心定义(如 SOAP 和 WSDL),及其使用的限制与约束。WS-I 还发布用于部署协议集兼容Web 服务的测试工具及相关用例。

以下是一个 WS 系列追加标准的不完全列表:

  • WS 安全(WS-Security)- 定义如何在 SOAP 中使用 XML 加密或 XML 签名来保护消息传递。可作为 HTTPS 一种替代或扩充。
  • WS 信赖性(WS-Reliability)- 一个来自 OASIS 标准协议,用来提供可信赖 Web 服务间消息传递。
  • WS 可信赖消息(WS-ReliableMessaging)- 同样是一个提供信赖消息的协议,由 Microsoft、BEA 和 IBM 发布。目前 OASIS 正对其实施标准化工作。
  • WS 寻址(WS-Addressing)- 定义在 SOAP 消息内描述发送/接收方地址的方式。
  • WS 事务(WS-Transaction)- 定义事务处理方式。

W3C 制定了不少 WS 追加定义,但近来开始受到质疑。一些人呼吁 W3C 作为网络和语义定义者,应当把精力放在核心网络本身,而不是为 Web 服务改换版本。特别是,2007 年 2 月企业级 Web 服务论坛上,对 W3C 不再充当 Web 服务定义者的诉求开始表面化。此外,OASIS 对 Web 服务扩展实施了许多标准化工作,包括 Web 服务资源框架以及 WSDM。

Web 服务方式


Web 服务有三种手段:远程过程调用(RPC),面向服务架构(SOA)以及表述性状态转移(REST)。

  • 远程过程调用(RPC)- 为 Web 服务提供一个分布式函数/方法接口供用户调用。这是一种较传统的方式。通常,在 WSDL 中对 RPC 接口进行定义(类似于早期的XML-RPC)。本质上,RPC 方式利用一个简单映射,把用户请求直接转化成一个特定语言编写的函数/方法。

现在,该方式已不在使用。

  • 面向服务架构(SOA)- 现在,业界比较关注的是遵从面向服务架构(Service-oriented architecture,SOA)来构建 Web 服务。该方式中,通讯是由消息驱动,而不再是某个动作(方法调用)。这种 Web 服务也称为“面向消息的服务”。

SOA Web 服务得到大部分主要软件商及业界的支持和肯定。它与 RPC 方式的最大差别是,SOA 更关注如何去连接服务,而不是特定某个实现细节。WSDL 定义了联络服务的必要内容。

  • 表述性状态转移式(Representational state transfer,REST)- REST Web 服务类似于 HTTP 或其他类似协议,接口是在一组广泛使用的标准以供调用,如 HTTP GET、PUT、POST、DELET。该方式关注与那些稳定的资源交互,而不是消息或动作。

REST 可以通过 WSDL 来描述 SOA 消息内容,通过 HTTP 动作,或者完全在 SOA 中对动作进行抽象。

相关概念


  • SOAP(简单对象访问协议,Simple Object Access Protoco)- 是一种标准化的通讯规范,主要用于 Web 服务(Web service)。SOAP 是为了简化 Web 网页服务器,从 XML 数据库中提取数据时,无需格式化页面,并能够让不同应用程序通过 HTTP 协议,用 XML 文件通信,与具体编程语言、平台和硬件无关。此标准由 IBM、Microsoft、UserLand 和 DevelopMentor 于 1998 年共同提出,并得到 IBM、Lotus、Compaq 等公司的支持,于 2000 年提交给 W3C。SOAP 是第二代的 XML 协议。第一代的主要是 XML-RPC 和 WDDX。
  • WSDL(Web 服务描述语言,Web Services Description Language)- 是为了描述 Web 服务发布的 XML 格式。WSDL 读作 "wiz-dəl"。WSDL 描述 Web 服务的公共接口。这是一个基于 XML 的关于如何与 Web 服务通讯和使用的服务描述,也就是说,描述与目录中列出的 Web 服务进行交互时需要绑定的协议和信息格式。通常采用抽象语言描述该服务支持的操作和信息,使用的时候再将实际的网络协议和信息格式绑定给该服务。
  • UDDI(统一描述、发现和集成,Universal Description, Discovery, and Integration)- 它是一个基于 XML 跨平台的描述规范,可以使世界范围内的企业在互联网上发布自己所提供的服务。UDDI 是 OASIS 发起的一个开放项目,它使企业在互联网上可以互相发现并且定义业务之间的交互。UDDI 业务注册包括三个元件:白页,有关企业的基本信息,如地址、联系方式以及已知的标识;黄页,基于标准分类的目录;绿页,与服务相关联的绑定信息,及指向这些服务所实现的技术规范的引用。UDDI 是核心的 Web 服务标准之一。它通过简单对象存取协议进行消息传输,用 Web 服务描述语言描述Web服务及其接口使用。
  • BPEL4WS(网络服务业务流程执行语言,Business Process Execution Language for Web Services)- 是 2002 年 8 月由 Microsoft、IBM 和 BEA 联合发布,用于商业流程描述的规范化、标准化,该语言中包含多种网络服务,并能将系统内部和业务伙伴间的信息交换标准化。该流程执行语言是从 WSFL 和 XLANG 脱胎而来的,继而发展为 BPEL。
  • WCF(Windows Communication Foundation )- 是由微软发展的一组资料通讯的应用程程序开发接口,是 .NET 框架的一部分,由 .NET Framework 3.0 开始引入,与 WPF(Windows Presentation Foundation)和WWF(Windows Workflow Foundation)并列为新一代 Windows 操作系统和 WinFX 的三个重大的应用程序开发库。在.NET Framework 2.0 及之前版本中,微软发展了 Web Service(SOAP with HTTP communication)、.NET Remoting(TCP/HTTP/Pipeline communication)和 Winsock 等,但它们的设计方法不同,彼此之间也有重叠,如可用 .NET Remoting 开发 SOAP、HTTP 。对开发人员,不同的选择会有不同的程序设计模型,必须要重新学习。同时,服务导向架构(Service-Oriented Architecture)开始流行,因此,Microsoft 重新审视了这些通讯方法,设计了一个统一的模型,这就是 WCF。
原文地址:https://www.cnblogs.com/liuning8023/p/2587247.html