什么是 SOA?面向服务的架构原则

什么是 SOA(面向服务的架构)?

面向服务的架构 (SOA) 是一种计算机软件设计中的架构模式,其中应用程序组件通过通信协议(通常是网络)为其他组件提供服务。服务导向的原则独立于任何产品、供应商或技术。

SOA 只是使得各种网络上的软件组件更容易协同工作。

按照 SOA 架构构建的 Web 服务倾向于使 Web 服务更加独立。Web 服务本身可以相互交换数据,并且由于它们创建的底层原则,它们不需要任何形式的人工交互,也不需要任何代码修改。它确保网络上的 Web 服务可以无缝地相互交互。

面向服务的架构 (SOA) 原则

SOA 设计原则有 9 种,如下所述

1. 标准化服务合同

服务遵循服务描述。服务必须具有某种描述,说明服务的内容。这使得客户端应用程序更容易理解服务的功能。

2. 松耦合

相互依赖性较低。这是 Web 服务的主要特征之一,它说明 Web 服务和调用 Web 服务的客户端之间的依赖性应尽可能少。因此,如果服务功能在任何时候发生变化,都不应破坏客户端应用程序或阻止其正常运行。

3. 服务抽象

服务隐藏了它们封装起来的逻辑。服务不应暴露其功能的执行方式;它应该只告诉客户端应用程序它做什么,而不是怎么做。

4. 服务可重用性

逻辑被分解为服务,以最大限度地提高重用性。在任何开发公司中,可重用性都是一个重要的话题,因为显而易见,人们不希望花费时间和精力在需要代码的多个应用程序中一遍又一遍地构建相同的代码。因此,一旦编写了 Web 服务的代码,它就应该能够与各种应用程序类型协同工作。

5. 服务自主性

服务应控制其封装的逻辑。服务了解其提供的功能,因此也应完全控制其包含的代码。

6. 服务无状态性

理想情况下,服务应该是无状态的。这意味着服务不应在不同状态之间保留信息。这需要由客户端应用程序来完成。一个例子是购物网站上的订单。现在,您可以有一个 Web 服务来提供特定商品的价格。但是,如果商品被添加到购物车,并且网页导航到支付页面,那么商品价格的传输责任不应由 Web 服务承担。相反,它需要由 Web 应用程序来完成。

7. 服务可发现性

服务可以被发现(通常在服务注册表中)。我们已经在 UDDI 的概念中看到过这一点,它执行一个可以保存有关 Web 服务信息的注册表。

8. 服务可组合性

服务将大问题分解为小问题。一个人不应该将应用程序的所有功能嵌入到一个单一的服务中,而应该将服务分解为模块,每个模块具有单独的业务功能。

9. 服务互操作性

服务应使用允许不同订阅者使用的标准。在 Web 服务中,使用 XML 等标准并通过 HTTP 进行通信来确保它符合此原则。