什么是 Web 服务?

不同的书籍和不同的组织对 Web 服务提供了不同的定义。 这里列出了其中一些。

  • 网络服务是任何可以通过互联网使用并使用标准化 XML 消息传递系统的软件。 XML 用于对与 Web 服务的所有通信进行编码。 例如,客户端通过发送 XML 消息来调用 Web 服务,然后等待相应的 XML 响应。 由于所有通信均采用 XML 格式,因此 Web 服务不依赖于任何一种操作系统或编程语言 — Java 可以与 Perl 通信; Windows 应用程序可以与 Unix 应用程序通信。

  • Web 服务是独立的、模块化的、分布式的动态应用程序,可以通过网络进行描述、发布、定位或调用,以创建产品、流程和供应链。 这些应用程序可以是本地的、分布式的或基于网络的。 Web 服务构建在 TCP/IP、HTTP、Java、HTML 和 XML 等开放标准之上。

  • Web 服务是基于 XML 的信息交换系统,它使用 Internet 进行直接应用程序到应用程序的交互。 这些系统可以包括程序、对象、消息或文档。

  • Web 服务是用于在应用程序或系统之间交换数据的开放协议和标准的集合。 用各种编程语言编写并在各种平台上运行的软件应用程序可以使用 Web 服务通过计算机网络(例如 Internet)交换数据,其方式类似于单个计算机上的进程间通信。 这种互操作性(例如,Java 和 Python 之间,或 Windows 和 Linux 应用程序之间)是由于开放标准的使用。

总而言之,完整的 Web 服务是指任何满足以下条件的服务: −

  • 可通过互联网或专用(内联网)网络使用

  • 使用标准化 XML 消息传递系统

  • 不依赖于任何一种操作系统或编程语言

  • 通过通用 XML 语法进行自描述

  • 可通过简单的查找机制发现

Web 服务的组件

基本的 Web 服务平台是XML + HTTP。 所有标准 Web 服务均使用以下组件工作 −

  • SOAP(简单对象访问协议)

  • UDDI(通用描述、发现和集成)

  • WSDL(网络服务描述语言)

所有这些组件都已在Web 服务架构一章中进行了讨论。

Web 服务如何工作?

Web 服务通过使用 HTML、XML、WSDL 和 SOAP 等开放标准实现各种应用程序之间的通信。 Web 服务需要以下帮助 −

  • 用于标记数据的 XML

  • 用于传输消息的 SOAP

  • 用于描述服务可用性的 WSDL。

您可以在 Solaris 上构建基于 Java 的 Web 服务,可以通过在 Windows 上运行的 Visual Basic 程序访问该服务。

您还可以使用 C# 在 Windows 上构建新的 Web 服务,这些服务可以从基于 JavaServer Pages (JSP) 并在 Linux 上运行的 Web 应用程序调用。

示例

考虑一个简单的帐户管理和订单处理系统。 会计人员使用 Visual Basic 或 JSP 构建的客户端应用程序来创建新帐户并输入新的客户订单。

该系统的处理逻辑是用 Java 编写的,驻留在 Solaris 计算机上,该计算机还与数据库交互以存储信息。

执行此操作的步骤如下 −

  • 客户端程序将帐户注册信息捆绑到SOAP消息中。

  • 此 SOAP 消息作为 HTTP POST 请求的正文发送到 Web 服务。

  • Web 服务解包 SOAP 请求并将其转换为应用程序可以理解的命令。

  • 应用程序根据需要处理信息,并使用该客户的新的唯一帐号进行响应。

  • 接下来,Web 服务将响应打包到另一个 SOAP 消息中,并将该消息发送回客户端程序以响应其 HTTP 请求。

  • 客户端程序解包 SOAP 消息以获取帐户注册过程的结果。