什么是Web服务?



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

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

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

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

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

总而言之,完整的Web服务因此是任何服务,其:

  • 可通过Internet或私有(内联网)网络访问

  • 使用标准化的XML消息系统

  • 不受任何特定操作系统或编程语言的限制

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

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

Web服务的组件

基本的Web服务平台是XML + HTTP。所有标准的Web服务都使用以下组件:

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

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

  • WSDL(Web服务描述语言)

所有这些组件都在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消息以获取账户注册过程的结果。

广告