Web 服务——定义、工作、类型、应用程序
Web 服务是一组规则或指南,可通过万维网(即互联网)实现不同应用程序之间的通信。在 Web 服务之前,还有其他技术,但其中一些具有依赖项,例如 EJB(企业Java bean),它允许应用程序仅在应用程序使用Java时进行通信,这些依赖项使通信变得困难。 Web 服务会删除这些依赖项。
在当今世界,应用程序是在各种编程语言上开发的,例如Java、 Python、 PHP等。这些异构应用程序需要在它们之间发生通信。由于它们是用不同的编程语言开发的,因此很难确保它们之间的有效通信。这就是 Web 服务出现的地方,Web 服务提供了一种独立于语言的通信方式,这意味着使用Java的应用程序可以与使用Python的其他应用程序进行通信。因此,Web 服务帮助我们在现有程序中调用其他程序的功能。
为什么应用程序需要通信
在工作时,某些应用程序可能需要使用其他应用程序提供的服务或功能。要使用该服务或功能,应用程序需要相互通信。让我们考虑一个餐厅的例子,当您访问餐厅并要求食物(服务)时,服务员会将订单带到厨房并从厨房为您提供准备好的食物。在这里,服务员就像网络服务,它允许您(.ie 客户端)与厨房(.ie 应用程序)进行通信。
下图显示了ICICI银行ATM如何使用SBI银行提供的服务访问ICICI银行ATM无法直接访问的客户数据库的另一个示例。
Web 服务如何工作?
Web 服务使用请求-响应方法在应用程序之间进行通信。对于任何通信,我们都需要一种所有人都可以理解的媒介和通用格式,在 Web 服务的情况下,媒介是互联网,通用格式是 XML(可扩展标记语言)格式,因为每种编程语言都可以理解 XML标记语言。
客户端是从称为服务提供者的服务器请求某些服务的客户端。请求通过通用 XML 格式的消息发送,响应该请求,服务提供商将使用通用格式(即 XML)的消息进行响应。
Web 服务组件
1. SOAP:如上所述,SOAP 代表简单对象访问协议。它是说明应用程序之间的通信将如何发生的协议。
2. WSDL:它代表Web Services Description Language,它是包含不同软件之间通信规则的XML文档。它定义了:
- 从其他系统请求该服务的系统如何访问该服务
- 服务名称是什么
- 访问该服务所需的具体参数是什么,返回类型是什么
- 访问数据时出现任何问题时会显示哪些错误消息。
3. UDDI:通用描述、发现和集成是 UDDI 的完整形式。它是一个目录,为我们提供了特定类型数据需要联系哪些软件的详细信息。
网络服务的类型
Web服务主要有两种类型:
1. SOAP Web 服务: SOAP 代表简单对象访问协议。这些协议基于 XML,它是一种轻量级的数据交换语言。这些协议独立于语言,可以在任何平台上运行。
SOAP 支持有状态和无状态操作。有状态意味着服务器跟踪从客户端收到的每个请求的信息。而无状态意味着每个请求都包含有关客户端状态的足够信息,因此服务器无需费心保存客户端的状态,从而提高了通信速度。
许多公司,如 IBM、Microsoft 正在将 SOAP 实现到他们的系统中。
2. RESTful web services:代表Representational State Transfer。它们还与语言和平台无关,并且与 SOAP 相比速度更快。如今,RESTful Web 服务比 SOAP 更常用。他们将数据视为资源。 RESTful Web 服务以 JSON 格式或 XML 格式返回数据。这些 Web 服务创建对象并发送对象的状态以响应客户端的请求,这就是为什么称为 Representational State Transfer。
网络服务的特点
以下是 Web 服务的特点:
- Web 服务是基于 XML 的,因为它们使用 XML 作为数据交换的标准语言,因为 XML 允许使用每种编程语言和操作系统对数据进行灵活的编码和解码。
- Web 服务是粗粒度的。这意味着它们具有更广泛的功能和操作范围。它更便宜,并且在一个粗粒度服务中提供了更细粒度的服务。
- Web 服务支持 RPC(远程过程调用)。使用 RPC 样式的 Web 服务是同步的,这意味着客户端必须在请求之后等待响应。 RPC 允许程序调用远程对象上的过程和函数。
- Web 服务允许与系统松散耦合,这意味着系统每周彼此关联。 Web 服务不关心通信过程中涉及的系统的状态。
- Web 服务是同步和异步的。在同步 Web 服务中,客户端将等待响应,直到服务器发送响应。通过 RPC 通信提供同步 Web 服务。在异步 Web 服务中,客户端不会等待响应,同时它可以继续进行其他操作处理。