面向服务的架构 (SOA)

2025年3月17日 | 阅读 3 分钟

面向服务的架构(SOA)是一种设计模式,旨在构建分布式系统,这些系统通过协议向其他应用程序提供服务。它仅仅是一个概念,不限于任何编程语言或平台。

什么是服务?

服务是一个定义良好、自包含的函数,它代表一个功能单元。一个服务可以从另一个服务交换信息。它不依赖于另一个服务的状态。它使用松耦合的、基于消息的通信模型与应用程序和其他服务进行通信。

服务连接

下图说明了面向服务的架构。服务消费者向服务提供者发送服务请求,服务提供者向服务消费者发送服务响应。服务连接对服务消费者和服务提供者都是可以理解的。

Service Oriented Architecture (SOA)

面向服务的术语

让我们看看一些重要的面向服务的术语

Service Oriented Architecture (SOA)
  • 服务 - 服务是由一个或多个已发布的接口定义的逻辑实体。
  • 服务提供者 - 它是实现服务规范的软件实体。
  • 服务消费者 - 它可以被称为请求者或客户端,它调用服务提供者。服务消费者可以是另一个服务或最终用户应用程序。
  • 服务定位器 - 它是充当注册表的服务提供者。它负责检查服务提供者接口和服务位置。
  • 服务代理 - 它是将服务请求传递给一个或多个附加服务提供者的服务提供者。

SOA 的特性

服务具有以下特性

  • 它们是松耦合的。
  • 它们支持互操作性。
  • 它们是位置透明的
  • 它们是自包含的。

面向服务的架构的组件

面向服务的架构堆栈可以分为两个部分 - 功能方面和服务质量方面。

Service Oriented Architecture (SOA)

功能方面

功能方面包含

  • 传输 - 它将服务请求从服务消费者传输到服务提供者,并将服务响应从服务提供者传输到服务消费者。
  • 服务通信协议 - 它允许服务提供者和服务消费者相互通信。
  • 服务描述 - 它描述了服务和调用它所需的数据。
  • 服务 - 它是一个实际的服务。
  • 业务流程 - 它代表与特定规则相关联的以特定顺序调用的服务组,以满足业务需求。
  • 服务注册表 - 它包含服务提供者用于发布其服务的数据描述。

服务质量方面

服务质量方面包含

  • 策略 - 它代表服务提供者制定并向消费者提供服务的协议集。
  • 安全 - 它代表识别和授权所需的协议集。
  • 事务 - 它提供了一致结果的保证。这意味着,如果我们使用一组服务来完成一个业务功能,那么要么所有服务都必须完成,要么一个都不完成。
  • 管理 - 它定义用于管理服务的属性集。

SOA 的优点

SOA 具有以下优点

  • 易于集成 - 在面向服务的架构中,集成是提供实现透明性的服务规范。
  • 管理复杂性 - 由于服务规范,复杂性被隔离,集成变得更易于管理。
  • 平台独立性 - 服务是平台独立的,因为它们可以通过通用语言与其他应用程序通信。
  • 松耦合 - 它有助于在不影响其他应用程序或服务的情况下实现服务。
  • 并行开发 - 由于 SOA 遵循基于层的架构,因此它提供了并行开发。
  • 可用 - SOA 服务可以很容易地提供给任何请求者。
  • 可靠 - 由于服务体积小,因此更容易测试和调试它们。
下一个主题Java Web 服务教程