📜  面向服务的架构

📅  最后修改于: 2021-10-20 12:10:25             🧑  作者: Mango

面向服务的体系结构 (SOA) 是一种体系结构方法,其中应用程序使用网络中可用的服务。在此架构中,通过互联网上的通信调用提供服务以形成应用程序。

  • SOA 允许用户将现有服务中的大量设施组合起来形成应用程序。
  • SOA 包含一组设计原则,用于构建系统开发并提供将组件集成到一致且分散的系统中的方法。
  • 基于 SOA 的计算将功能打包成一组可互操作的服务,这些服务可以集成到属于不同业务领域的不同软件系统中。

在面向服务的架构中有两个主要角色:

  1. 服务提供者:服务提供者是服务的维护者和提供一项或多项服务供他人使用的组织。为了宣传服务,提供者可以将它们与指定服务性质、如何使用服务、服务要求和收费的服务合同一起发布到注册表中。
  2. 服务消费者:服务消费者可以在注册中心定位服务元数据,开发绑定和使用服务所需的客户端组件。

服务可能会聚合从其他服务中检索到的信息和数据,或者创建服务工作流以满足给定服务消费者的请求。这种做法被称为服务编排。另一个重要的交互模式是服务编排,它是没有单点控制的服务的协调交互。

SOA 的组成部分:

SOA指导原则:

  1. 标准化的服务合同:通过一份或多份服务描述文件指定。
  2. 松散耦合:服务被设计为自包含组件,维护对其他服务的依赖最小化的关系。
  3. 抽象:服务完全由服务合同和描述文档定义。它们隐藏了它们的逻辑,这些逻辑封装在它们的实现中。
  4. 可重用性:设计为组件,可以更有效地重用服务,从而减少开发时间和相关成本。
  5. 自治:服务可以控制它们封装的逻辑,从服务消费者的角度来看,不需要知道它们的实现。
  6. 可发现性:服务由构成补充元数据的描述文件定义,通过这些文件可以有效地发现服务。服务发现为利用第三方资源提供了一种有效的手段。
  7. 可组合性:使用服务作为构建块,可以实现复杂的操作。服务编排和编排为组合服务和实现业务目标提供了坚实的支持。

SOA的优点:

  • 服务可重用性:在 SOA 中,应用程序由现有服务构成。因此,可以重用服务来制作许多应用程序。
  • 易于维护:由于服务彼此独立,因此可以轻松更新和修改,而不会影响其他服务。
  • 平台独立: SOA 允许通过组合从不同来源挑选的服务来制作复杂的应用程序,独立于平台。
  • 可用性:任何人都可以根据要求轻松使用 SOA 设施。
  • 可靠性: SOA 应用程序更可靠,因为它更容易调试小服务而不是庞大的代码
  • 可扩展性:服务可以在一个环境中的不同服务器上运行,这增加了可扩展性

SOA的缺点:

  • 高开销:每当服务交互时都会对服务的输入参数进行验证,这会降低性能,因为它会增加负载和响应时间。
  • 高投入: SOA需要巨大的初期投入。
  • 复杂的服务管理:当服务交互时,它们与任务交换消息。消息的数量可能以百万计。处理大量消息成为一项繁琐的任务。

SOA 的实际应用:无论是否提及,SOA 在我们周围以多种方式使用。

  1. 许多陆军和空军使用 SOA 基础设施来部署态势感知系统。
  2. SOA 用于改进医疗保健服务。
  3. 现在许多应用程序都是游戏,它们使用内置功能来运行。例如,应用程序可能需要 GPS,因此它使用设备的内置 GPS 功能。这就是移动解决方案中的 SOA。
  4. SOA 有助于为博物馆的信息和内容维护一个虚拟化的存储池。