什么是Web服务? Archi结构,类型,示例

⚡ 智能摘要

Web 服务为客户端和服务器应用程序通过万维网进行通信提供了一种标准化的媒介。本资源解释了 Web 服务的工作原理、其 SOAP 和 RESTful 类型、WSDL 和 UDDI 组件、架构角色以及关键特性。

  • 🌐 核心定义: Web 服务是一个独立的软件模块,它执行已定义的任务,并通过 Web 在客户端和服务器之间进行通信。
  • 📨 XML消息传递: Web 服务以 XML 格式交换数据,通常封装在通过标准 HTTP 发送的 SOAP 消息中,因此任何语言都可以使用它们。
  • 🧱 关键零件: 一个功能完善的 Web 服务依赖于 SOAP 进行消息传递,WSDL 描述服务,以及 UDDI 来发布和发现服务。
  • 👥 Archi结构角色: 该架构定义了三个角色——提供者、请求者和代理——它们通过注册表发布、查找和绑定服务。
  • ⚙️ 核心特点: Web 服务基于 XML,松耦合,支持同步或异步调用,支持 RPC,并允许丰富的文档交换。

Web服务 Archi质地

什么是网络服务?

网络服务 是 WWW(万维网)上客户端和服务器应用程序之间进行通信的标准化媒介。Web 服务是旨在执行特定任务集的软件模块。

  • 云计算中的Web服务可以通过网络进行搜索,并进行相应的调用。
  • 当被调用时,Web 服务将能够向调用该 Web 服务的客户端提供功能。

Web 服务如何运作?

Web 服务的工作原理

上图非常简单地展示了 Web 服务的实际工作方式。客户端将通过向托管实际 Web 服务的服务器发出请求来调用一系列 Web 服务。

这些请求是通过所谓的远程过程调用(RPC)发出的。远程过程调用(RPC)是指对相关 Web 服务托管的方法发出的调用。

举个例子, Amazon 提供通过 amazon.com 在线销售的产品价格的 Web 服务。前端或表示层可以是 .Net 或 Java但是,这两种编程语言都能够与网络服务进行通信。

Web 服务设计的主要组成部分是在客户端和服务器之间传输的数据,即 XML。 XML(可扩展标记语言) 是 HTML 的对应物,也是一种易于理解的中间语言,可被许多编程语言理解。

因此,当应用程序之间相互通信时,它们实际上是使用 XML 进行通信的。这为使用各种编程语言开发的应用程序提供了一个通用的通信平台。

Web 服务使用一种称为 SOAP(简单对象访问协议)的协议在应用程序之间发送 XML 数据。数据通过普通 HTTP 发送。从 Web 服务发送到应用程序的数据称为 SOAP 消息。SOAP 消息只不过是一个 XML 文档。由于文档是用 XML 编写的,因此调用 Web 服务的客户端应用程序可以用任何编程语言编写。

为什么需要 Web 服务?

现代商业应用使用各种编程平台来开发基于 Web 的应用程序。有些应用程序可能使用多种平台开发。 Java还有一些使用 .Net,另一些则使用 Angular JS、Node.js 等。

这些异构应用程序之间通常需要某种形式的通信。由于它们使用不同的开发语言编写,因此很难确保应用程序之间通信的准确性。

这正是 Web 服务发挥作用的地方。Web 服务提供了一个通用平台,允许基于各种平台构建多个应用程序。 编程语言 具有相互沟通的能力。

Web服务的类型

网络服务主要分为两大类:

  1. SOAP 网络服务。
  2. RESTful Web 服务.

为了使 Web 服务完全正常运行,必须包含某些必要的组件。无论使用何种开发语言编写 Web 服务,这些组件都必须存在。让我们更详细地了解这些组件。

SOAP(简单对象访问协议)

SOAP 是一种与传输方式无关的消息传递协议。它基于以 SOAP 消息形式传输 XML 数据。每条消息都包含一个 XML 文档。XML 文档的结构遵循特定的模式,而内容则没有固定的模式。Web 服务和 SOAP 的最大优势在于,所有数据都通过 HTTP(标准的 Web 协议)传输。

以下是 SOAP 消息的组成内容:

  • 每个 SOAP 文档都需要有一个根元素,称为元素。根元素是 XML 文档中的第一个元素。
  • “信封”又分为两部分。第一部分是标题,第二部分是正文。
  • 标头包含路由数据,该数据基本上是告诉 XML 文档需要发送到哪个客户端的信息。
  • 正文将包含实际消息。

下图显示了通过 SOAP 进行通信的一个简单示例。

SOAP 协议

我们将在本章中详细讨论 SOAP 教程.

WSDL(Web 服务 Descript离子语言)

如果找不到网络服务,则无法使用该服务。 调用 Web 服务的客户端应该知道 Web 服务实际位于何处。

其次,客户端应用程序需要了解 Web 服务实际执行的操作,以便调用正确的 Web 服务。这可以通过 WSDL(Web 服务定义文档)来实现。 DescriptWSDL 文件是一个基于 XML 的文件,它主要告诉客户端应用程序 Web 服务的功能。通过使用 WSDL 文档,客户端应用程序可以了解 Web 服务的位置以及如何使用它。

Web 服务示例

下面给出了 WSDL 文件的 Web 服务示例。

<definitions>
   <message name="TutorialRequest">
      <part name="TutorialID" type="xsd:string"/>
   </message>

   <message name="TutorialResponse">
      <part name="TutorialName" type="xsd:string"/>
   </message>

   <portType name="Tutorial_PortType">
      <operation name="Tutorial">
         <input message="tns:TutorialRequest"/>
         <output message="tns:TutorialResponse"/>
      </operation>
   </portType>

   <binding name="Tutorial_Binding" type="tns:Tutorial_PortType">
      <soap:binding style="rpc"
         transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="Tutorial">
         <soap:operation soapAction="Tutorial"/>
         <input>
            <soap:body
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:Tutorialservice"
               use="encoded"/>
         </input>

         <output>
            <soap:body
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:Tutorialservice"
               use="encoded"/>
         </output>
      </operation>
   </binding>
</definitions>

关于上述 Web 服务的 WSDL 声明示例,需要注意的重要方面如下:

  1. WSDL 定义中的 message 参数用于定义 Web 服务执行的每个操作的不同数据元素。因此,在上面的 Web 服务示例中,我们可以在 Web 服务和客户端应用程序之间交换两条消息:一条是“TutorialRequest”操作,另一条是“TutorialResponse”操作。TutorialRequest 包含一个名为“TutorialID”的元素,其类型为字符串。类似地,TutorialResponse 操作包含一个名为“TutorialName”的元素,其类型也为字符串。
  2. – 这实际上描述了Web服务(在本例中称为Tutorial)可以执行的操作。此操作可以接收两条消息:一条是输入消息,另一条是输出消息。
  3. 此元素包含所使用的协议。在本例中,我们将其定义为使用 HTTP 协议 (http://schemas.xmlsoap.org/soap/http)。我们还指定了操作主体的其他详细信息,例如命名空间以及消息是否需要编码。

我们将在本文中详细讨论“WSDL”。 教程.

普遍 Descript发现和集成 (UDDI)

UDDI 是描述、发布和发现特定服务提供商提供的 Web 服务的标准。它提供了有助于托管 Web 服务信息的规范。

现在我们在上一个主题中讨论了 WSDL 以及它如何包含有关 Web 服务实际执行的操作的信息。但是客户端应用程序如何找到 WSDL 文件以了解 Web 服务提供的各种操作?因此,UDDI 就是这个问题的答案,它提供了一个可以托管 WSDL 文件的存储库。因此,客户端应用程序将完全访问 UDDI,它充当包含所有 WSDL 文件的数据库。

就像电话簿包含特定人员的姓名、地址和电话号码一样,UDDI 注册中心也将包含网络服务的相关信息。以便客户端应用程序知道它在哪里可以找到。

Web 服务优势

我们已经了解了Web服务最初出现的原因,即提供一个平台,使不同的应用程序能够相互通信。但让我们来看看Web服务的优势,以及为什么使用Web服务如此重要。

  1. 在网络上公开业务功能 Web 服务是一段托管代码单元,它为客户端应用程序或最终用户提供某种功能。此功能可以通过 HTTP 协议调用,这意味着它也可以通过互联网调用。如今,所有应用程序都运行在互联网上,这使得 Web 服务更加实用。这意味着 Web 服务可以位于互联网上的任何位置,并根据需要提供必要的功能。
  2. 应用程序之间的互操作性 Web 服务允许各种应用程序相互通信,并共享数据和服务。所有类型的应用程序都可以相互通信。因此,您现在无需编写只能被特定应用程序理解的特定代码,而是可以编写所有应用程序都能理解的通用代码。
  3. 每个人都理解的标准化协议 – Web 服务使用标准化的行业协议进行通信。所有四个层(服务传输层、XML 消息传递层、服务层) Description 和服务发现层)在 Web 服务协议栈中使用定义完善的协议。
  4. 降低沟通成本 – Web 服务使用 SOAP over HTTP 协议,因此您可以使用现有的低成本互联网来实现 Web 服务。

Web服务 Archi质地

每个框架都需要某种架构来确保整个框架按预期运行。同样,在 Web 服务中, Web服务 Archi质地 由以下三个不同的角色组成:

  1. Provider – 提供商创建网络服务,并将其提供给想要使用该服务的客户端应用程序。
  2. 请求者 – 请求者就是需要联系 Web 服务的客户端应用程序。客户端应用程序可以是 .Net、 Java或者任何其他基于语言的应用程序,它通过 Web 服务寻求某种功能。
  3. 经纪人 – 代理程序实际上就是提供对 UDDI 访问权限的应用程序。如前所述,UDDI 使客户端应用程序能够找到 Web 服务。

下图展示了服务提供者、服务请求者和服务注册中心之间的交互方式。

Web服务 Archi质地

  1. 发布 – 服务提供商通过经纪商(服务注册机构)的发布接口通知经纪商网络服务的存在,以便客户可以访问该服务。
  2. 找到最适合您的地方 – 请求者咨询经纪人以查找已发布的网络服务。
  3. 捆绑 – 请求者通过从代理(服务注册中心)获取的有关 Web 服务的信息,可以绑定或调用 Web 服务。

Web 服务特性

Web 服务具有以下特殊的行为特征:

  1. 它们是基于 XML 的 Web 服务使用 XML 在表示层和数据传输层来表示数据。由于 XML 是所有人都能理解的通用语言,因此使用 XML 可以消除任何网络、操作系统或平台方面的依赖关系。
  2. 松耦合 – 松耦合意味着客户端和 Web 服务彼此不绑定,这意味着即使 Web 服务随着时间的推移而发生变化,也不应该改变客户端调用 Web 服务的方式。采用松耦合的架构往往会使软件系统更易于管理,并允许不同系统之间更简单地集成。
  3. Sync同步或异步功能 – Sync同步性是指客户端与服务执行的绑定。在同步操作中,客户端实际上会等待 Web 服务完成操作。一个例子可能是正在执行数据库读写操作的场景。如果从一个数据库读取数据,然后将其写入另一个数据库,则必须按顺序执行操作。异步操作允许客户端调用服务,然后并行执行其他功能。这是确保在执行特定操作时不会停止其他服务的常见且可能是最受欢迎的技术之一。
  4. 能够支持远程过程调用 (RPC) – Web 服务使客户端能够使用基于 XML 的协议调用远程对象上的过程、函数和方法。远程过程公开 Web 服务必须支持的输入和输出参数。
  5. 支持文档交换 – XML 的主要优势之一是它不仅能以通用方式表示数据,还能表示复杂文档。这些文档可以简单到表示当前地址,也可以复杂到表示整本书。

常见问题

人工智能模型通常以 Web 服务的形式交付,因此应用程序通过 HTTP 发送数据,并以 XML 或 JSON 格式接收预测结果。人工智能还可以监控 Web 服务流量、检测异常情况并自动生成客户端代码,从而使集成更快、更可靠。

是的。AI 工具可以生成 WSDL 定义、建议端点结构、创建测试用例并验证 SOAP 或 REST 响应。开发人员仍然应该审查输出结果,以确保其符合要求。trac部署前,ts 和安全规则均已正确无误。

SOAP 是一种严格的、基于 XML 的消息传递协议,内置了安全性和事务处理标准。REST 是一种架构风格,使用简单的 HTTP 方法,通常使用 JSON。SOAP 适用于正式的企业系统,而 REST 更轻量级,更常用于 Web API。

WSDL(Web 服务 DescriptWSDL(Web服务定义语言)是一个XML文件,它描述了Web服务的功能、位置以及调用方式。客户端应用程序读取WSDL来了解可用的操作和消息格式。

总结一下这篇文章: