一. SOA的概念
1.1. SOA(Service-Oriented Architecture)面向服务的架构:
- Gartnet把它定义为一种软件的设计方法
- 百度百科把它定义为一个组件模型
- W3C把它定义为一种应用程序架构https://www.w3school.com.cn/w3c/w3c_china.asp)
- 专家Davis说它是一种设计思想
- 总之,SOA不是具体的技术实现
SOA的实现
SOA实现层面包含两个最重要的概念:
- 面向服务的通信(SOC Service-Oriented Communicaiton)
- 面向服务的软件架构(SOSA Service-Oriented Software Architecture)
服务(Service)是实现某种功能的函数或方法,离散的功能单元,可以被远程访问并且能够独立运行和更新。
SOC的简介
SOC(Service-Oriented Communicaiton)面向服务的通信:
- 谁和谁进行通信:服务提供者和服务接受者,即:服务端和客户端
- 怎么通信:服务端实现服务接口并提供服务功能,客户端使用服务接口并调研服务功能
- 服务太多怎么处理:服务端在服务代理里面进行注册,声明它能够提供哪些服务;客户端在需要服务的时候进行查找,找到后进行调用
SOC的实现方式
- SOME/IP(Service-Oriented MiddlewarE Over IP) 面向服务的IP中间件
- DDS(Data Distribution Service)数据分发服务
- RESTful(Representational State Transfer)
SOSA的实现方式
- AUTOSAR Adaptive Platform
为什么用SOA架构?
SOA(Service-Oriented Architecture)的特点:
- 易于扩展
- 灵活的平台
- 服务通信标准化
- 服务间:松耦合,无状态,无依赖
- 服务内:高内聚,完整,可复用,可灵活重组
通过对比传统静态交互和SOA动态交互,可以看出SOA架构的优势:
- 传统静态交互及其缺陷
域控制器之间通过静态配置进行交互:
- 实线箭头 表示 信号流
- 虚线箭头 表示 新增/变更的信号
- 紫色框 表示 新增/变更的功能
- 黑色框 表示 新增/变更的控制