面向服务的体系结构(SOA)是一种软件设计风格,其中应用程序组件通过网络上的通信协议向其他组件提供服务,其原理独立于供应商和其他技术。在面向服务的体系结构中,许多服务以两种方式之一相互通信:通过传递数据或通过两个或多个协调活动的服务,这只是面向服务的体系结构的一种定义。
面向服务的体系结构的特征
尽管面向服务的体系结构的定义概念因公司而异,但是有六个主要原则构成了面向服务的体系结构的广泛概念,这些核心价值包括:
商业价值
战略目标
内部互操作性
共享服务
灵活性
进化完善
从较旧格式的分布式计算到面向服务的体系结构再到云计算(通常被视为面向服务的体系结构的分支),这些核心价值中的每一个都可以看作一个连续体。
面向服务的架构模式
每个面向服务的体系结构构建块都有三个角色:服务提供者;服务代理,服务注册表,服务存储库;和服务请求者/消费者。
服务提供商与服务注册表一起工作,讨论所提供服务的原因和方式,例如安全性,可用性,收费标准等。该角色还确定服务类别以及是否需要任何贸易协议。
为什么面向服务的体系结构很重要?
面向服务的体系结构有很多好处,尤其是在基于Web服务的业务中,我们将在这里简要概述其中的一些好处:
创建可重用的代码:这不仅减少了开发过程所花费的时间,而且没有必要在每次需要创建新服务或过程时重新发明编码轮。面向服务的体系结构还允许使用多种编码语言,因为所有内容都通过中央接口运行。
促进交互:借助面向服务的体系结构,可以建立一种标准的通信形式,从而允许各种系统和平台相互独立运行。通过这种交互,面向服务的体系结构还能够绕过防火墙工作,从而允许“公司共享对运营至关重要的服务”。
可伸缩性:能够扩展业务以满足客户的需求很重要,但是某些依赖性可能会妨碍这种可伸缩性。使用面向服务的体系结构可减少客户端与服务的交互,从而实现更大的可伸缩性。
减少开支:通过面向服务的体系结构,可以在降低成本的同时仍“保持理想的输出水平”,使用面向服务的体系结构使企业可以在开发自定义解决方案时限制所需的分析量。