面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

1.SOA架构是什么意思

 

SOA架构是面向服务架构的意思,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。

 

SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。

 

SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。

 

SOA架构是什么意思

(图片来源于互联网)

 

2.SOA架构特点

 

SOA的目标在于让IT系统变得更有弹性,以便更灵活、更快地响应不断改变的企业业务需求,解决软件领域一直以来存在的"如何重用软件功能"问题。采用SOA来构建信息平台,无疑是未来的发展方向。

 

SOA的5大基本特征为软件功能重用提供了解决的办法。

 

①服务之间通过简单、精确定义的接口进行通信,不涉及底层编程接口和通信模型。

 

②粗粒度性:粗粒度服务提供一项特定的业务功能,采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的往复,一次往复就足够了。

 

③松耦合性:松耦合性要求SOA架构中的不同服务之间应该保持一种松耦合的关系,也就是应该保持一种相对独立无依赖的关系。这样的好处有两点,首先是具有灵活性,其次当组成整个应用程序的服务内部结构和实现逐步地发生变化时,系统可以继续地独立存在。而紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时这种结构就显得非常脆弱。

 

④位置透明性:位置透明性要求SOA系统中的所有服务对于其调用者来说都是位置透明的,也就是说,每个服务的调用者只需要知道想要调用的是哪一个服务,但并不需要知道所调用服务的物理位置在哪。

 

⑤协议无关性:协议无关性要求每一个服务都可以通过不同的协议来调用。

 

SOA架构特点

(图片来源于互联网)

 

3.SOA架构原理

 

1、服务请求者:服务请求者是一个应用程序、一个软件模块或需要一个服务的另一个服务。它发起对注册中心中的服务的查询,通过传输绑定服务,并且执行服务功能。服务请求者根据接口契约来执行服务。

 

2、服务提供者:服务提供者是一个可通过网络寻址的实体,它接受和执行来自请求者的请求。它将自己的服务和接口契约发布到服务注册中心,以便服务请求者可以发现和访问该服务。

 

3、服务注册中心:服务注册中心是服务发现的支持者。它包含一个可用服务的存储库,并允许感兴趣的服务请求者查找服务提供者接口。

 

面向服务的体系结构中的每个实体都扮演着服务提供者、请求者和注册中心这三种角色中的某一种(或多种)。面向服务的体系结构中的操作包括:
 
(1)发布:为了使服务可访问.需要发布服务描述以使服务请求者可以发现和调用它。
 
(2)查询:服务请求者定位服务.方法是查询服务注册中心来找到满足其标准的服务。
 
(3)绑定和调用:在检索完服务描述之后,服务请求者继续根据服务描述中的信息来调用服务。

 

SOA架构原理

(图片来源于互联网)

 

4.SOA架构和微服务架构的区别

 

首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件。
 
1、SOA(Service Oriented Architecture)“面向服务的架构”:他是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在于操作系统进程中。各个服务之间 通过网络调用。
 
2、微服务架构:其实和 SOA 架构类似,微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。

 

SOA架构和微服务架构的区别

(图片来源于互联网)