什么是 SOA?面向服务 Archi建筑原理
什么是 SOA(面向服务 Archi结构(tecture)?
面向服务的 Archi架构(SOA) 是计算机软件设计中的一种架构模式,其中应用程序组件通过通信协议(通常通过网络)向其他组件提供服务。面向服务的原则独立于任何产品、供应商或技术。
SOA 只是使各种网络上的软件组件更容易地相互协作。
根据 SOA 架构构建的 Web 服务倾向于使 Web 服务更加独立。Web 服务本身可以相互交换数据,并且由于其创建的基本原则,它们不需要任何类型的人工交互,也不需要任何代码修改。它确保网络上的 Web 服务可以无缝地相互交互。
面向服务 Archi架构(SOA)原则
SOA 设计原则有 9 种类型,如下所述
1. 标准化服务合同
服务遵循服务描述。服务必须具有某种描述,描述服务的内容。这可让客户端应用程序更轻松地了解服务的功能。
2.松耦合
Less 相互依赖。这是 Web 服务的主要特征之一,它表明 Web 服务与调用 Web 服务的客户端之间的依赖性应尽可能小。因此,如果服务功能在任何时间点发生变化,它不应破坏客户端应用程序或使其停止工作。
3.服务抽象
服务向外界隐藏其封装的逻辑。服务不应暴露其执行功能的方式;它应只告诉客户端应用程序它做什么,而不是它如何做。
4.服务可重用性
为了最大限度地提高重用性,我们将逻辑划分为服务。在任何开发公司中,可重用性都是一个大话题,因为显然人们不想花时间和精力在需要它们的多个应用程序中一次又一次地构建相同的代码。因此,一旦编写了 Web 服务的代码,它就应该能够与各种应用程序类型兼容。
5. 服务自主性
服务应该能够控制其封装的逻辑。服务了解其提供的所有功能,因此也应该完全控制其包含的代码。
6. 服务无状态
理想情况下,服务应该是无状态的。这意味着服务不应该将信息从一个状态保留到另一个状态。这需要从客户端应用程序完成。一个例子可以是在购物网站上下的订单。现在,您可以拥有一个 Web 服务,它可以为您提供特定商品的价格。但是,如果将商品添加到购物车中,并且网页导航到您进行付款的页面,则将商品价格转移到付款页面的责任不应由 Web 服务承担。相反,它需要由 Web 应用程序完成。
7. 服务可发现性
服务可以被发现(通常在服务注册表中)。我们已经在 UDDI 的概念中看到了这一点,它执行一个可以保存有关 Web 服务信息的注册表。
8.服务可组合性
服务将大问题分解成小问题。永远不要将应用程序的所有功能嵌入到单个服务中,而应该将服务分解成模块,每个模块都有单独的业务功能。
9.服务互操作性
服务应使用允许不同订阅者使用服务的标准。在 Web 服务中,标准如下: XML 并使用HTTP进行通信以确保其符合这一原则。