Michael Chen | 内容策略师 | 2024 年 3 月 28 日
面向服务的架构 (SOA) 是一种软件设计方法,专注于从单个组件开始构建可扩展的功能性软件系统,也称为服务。服务可以相互交互以执行任务,例如允许某人只登录一次即可访问各种商业应用。在 SOA 中,重点在于模块化、可重用性和互操作性 — 当企业将复杂的应用分解为更小、更易于管理的构件时,就能够获得更大的灵活性和可扩展性。
服务并未硬编码到应用中。相反地,服务发布到注册表,当应用想要使用服务时,会要求注册表查找新版本。通过这种方式,人们可以轻松更改或更新服务,而无需详细了解应用。SOA 方法可以更轻松地适应不断变化的业务需求,并将提供相关功能的系统相集成。
通过 SOA,各个服务之间可以松散耦合,并根据需要进行通信和传输数据。例如,采用 SOA 方法来开发云技术软件可带来以下优势:
面向服务的架构的示例包括:
面向服务的架构 (SOA) 是一种设计范例,使用自包含、可重用的构件创建或补充应用(也就是服务),从而提供特定的功能,并且可以通过网络调用。每个服务都有明确定义的范围,可供架构中的其他组件或服务访问,以增强系统的整体功能和性能。
面向服务的架构中的服务的例子包括有付款处理服务、客户管理服务或可嵌入电商网站的产品推荐服务。此外,也有其他更加简单的服务,例如提供地球另一端城市的当前时间的服务。使用 SOA 可带来强大优势,其中的一个例子是可以在不更改需要使用该服务的应用的情况下切换付款处理器。
SOA 是一个模块化和灵活的软件基础设施,支持独立开发、测试和部署单个服务。该架构的两大关键优势是易于维护和可扩展性。
SOA 的工作原理是在应用框架内松散耦合服务。每个服务都将作为一个模块,根据请求提供输入/输出结果。应用不需要知道它正在使用的服务的版本,而是专注于检查注册表并查找提供所需功能的新服务。以下工作流显示了如何使用 SOA 模型构建零售商网站。
SOA 支持以现成的形式集成服务,从而加快此类站点的开发。在这个例子中,零售商不仅减轻了逐个开发每个模块的负担,而且无需跟踪服务更新。IT 可以简单地使用经过审核并具有已验证的功能、安全性和可用性的服务。
SOA 开发的关键是模块化思维,需要了解服务集成的机遇所在。在云端开发的应用可以轻松利用作为 Web 服务实施的各种 SOA 式服务。
面向服务的架构有哪些示例?
对于消费者,面向服务的架构的其中一个示例是面向跑步爱好者的应用。该应用无需构建距离跟踪和地图的自定义工具,而是可以集成电话 GPS 设备和现有地图服务(例如 Google Maps)。该应用还可以从国家气象局提取当地天气信息。该应用需要做的就是为跑步者无缝呈现这些服务的数据。
SOA 与微服务有何不同?
SOA 和微服务具有类似的目标,即通过基于网络的函数调用为应用提供功能。然而,SOA 适合在更广泛的、通常更高的级别上使用。微服务则适合在应用级别使用,可为一个高度专业化的任务提供服务,以便根据需要重复执行。例如,用于安全登录的验证插件属于是 SOA 的一部分;但是,可重复执行的加密口令服务则属于是微服务。微服务可以在 SOA 服务中调用,也可以在较大的项目中集成。在此示例中,验证服务将使用加密微服务完成工作。其中,覆盖范围是两者之间的主要区别。
面向服务的架构有哪些主要特征?
面向服务的架构的主要特征包括:
面向服务的架构适合用于什么地方?
只要存在独立的服务来满足系统要求,面向服务的架构就可以用于几乎任何应用。由于服务开发生态系统广泛,大多数软件创建者都可以找到满足需求的服务,即使是高度自定义的项目,也仍然能够使用独立的服务进行身份验证或提取地图数据。
注:为免疑义,本网页所用以下术语专指以下含义: