1 SOA是什么
面向服务的架构(Service-Oriented
Architecture,SOA)是一种面向服务设计软件的思想架构,在系统设计时可以将不同功能的应用单元抽离出来单独的成为一个服务,通过服务之间定义好的协议接口进行相互的通信,从而完成整个系统的任务。
2 SOA工作原理
SOA 主要由 3 部分组成:服务需求者(Service Requestor)、服务提供者(Service
Provider)和服务注册端(Service Register),SOA
也通过了发布/订阅通信机制。基于松耦合和组件化的机制使得各个服务很容易的被开发。
其中协议接口应该具有编程语言无关性,各个服务能独立的在各种平台上运行。用户不需要关注内部的实现细节而能与系统进行交互。SOA的模型中服务与服务之间通过接口进行交互,本质上也是一种系统解耦的方法,一个松耦合的系统更具灵活性,另一方面当系统的组件服务发生改变时,系统仍然能够保持健壮。相反如果系统过于紧耦合的会使得整个系统变得非常脆弱。
3 SOA的优点
SOA 中的服务单元使用的是一套标准的协议进行信息的交流,系统在松耦合的机制下可以方便的进行服务的添加和改变,因此服务具有一定的独立性,SOA
具有的如下一系列优点:
(1)松散耦合
SOA
设计之初就保持松耦合的特性,语言无关性的通信协议接口和各个服务组件分散开发,做到了服务消费者无需了解服务提供者的具体实现,也无需了解其系统的部署。即使一些服务发生改变也不会受到影响,这些设计方式都为系统的松耦合提供了支持。
(2)粗粒度的服务
对于系统开发而言服务粒度有粗细之分,服务粒度的划分会根据实际业务的需求进行抉择,一般而言,细粒度的服务具有更高的内聚性。SOA
服务组件之间的通信是基于SOAP 等相关协议实现。通过 Web Service
提供的技术支撑,在信息传输的量上有一定的约束,当服务粒度过小时会导致信道的拥堵、时延等问题,因此服务的粒度应该设计较大比较合理。
通过把细粒度服务流程化组成粗粒度服务可以简化接口,在此之上建立队列管理、
事务管理、活动管理、流程管理等上层管理,通过设定细粒度服务的状态决定其参与的活动。因此 SOA
模型采用的粗粒度服务更具优势,同时也具有灵活,可复用等优点,对于服务的访问都会采用标准化的接口来提供系统的集成性。
(3)标准化访问接口
标准化接口在系统设计过程中发挥着重要的作用,特别是在各个平台的交互中,统一规范的接口标准大大减少了开发人员的工作时间。在 SOA
模型中,标准化的接口包含了对服务的描述,消息类型以及规范等,SOA
通过统一规范的接口描述为用户的访问以及分布式服务之间的交互提供了便利。通过设定的接口屏蔽了服务如何实现的相关信息,但可以通过不同的语言、平台来完成服务的创建。
4 基于SOA理念的软件架构
推荐阅读:《【研报】汽车行业:智能汽车未来已来-210510(31页).pdf》