SOA

把功能抽象成一个个独立的服务

定义

Service-Oriented Architecture,面向服务的架构

是思想、架构、软件设计模式、设计方法,而不是一种具体的技术

目标

构建灵活的平台系统

本质

服务的集合

特点

  • 松耦合,无状态、无依赖,不绑定特定实现
  • 高内聚、独立、可复用、可重组
  • 通信标准化:简单、精确的接口通信

用途

服务治理

  • 解决数据服务的复杂度:通过服务总线,简化服务之间的关系
  • 服务向总线注册,总线提供服务发现机制(还可以扩展心跳检测、负载均衡等机制)

注:数据传输不经过总线

具体规范/实现

SOA 只是思想、架构、软件设计模式、设计方法。具体的规范/实现可以是 SOME/IP,DDS,SOAP,REST...

SOA 和软件定义汽车

未来的智能网联汽车将会是 4 个轮子 + 高性能计算机。

通过软件升级(服务订阅)可以提升性能、增加新功能、减少返厂/4S 店维修,改变整车厂的盈利模式。

软件定义汽车和 SOA 无必然联系,但 SOA 是软件定义汽车的解决方案之一。

汽车 SOA 优势

软硬件解耦:服务可以部署在任意域控上

安全冗余:如将转向服务部署在多个域控上

汽车 SOA 实现重点

  • SOC(Service-Oriented Communication):面向服务的通信,如 SOME/IP 或 DDS
  • SORS(Service-Oriented Reuse Shared Design):重用、重组关系设计。由 OEM 负责的整车架构,可以自下而上(从车辆传感器、执行器出发,抽象成一个个服务。至于如何利用这些基础服务,交给上层 App)或自上而下(从具体的用例出发,往下层分解,分解出需要的服务)
  • SOSA(Service-Oriented Software Architecture):面向服务的软件架构,如 Adaptive AUTOSAR

SOA 和 Adaptive AUTOSAR 关系

2.3.2 SOA

为了支持复杂的应用,同时在分布式处理和计算资源分配时,保证最大灵活性和可扩展性,AP 遵循面向服务的架构(SOA)。SOA 基于如下概念:系统由一些列的服务组成,服务之间可以相互调用,应用可以根据需要使用一个或多个服务。一个服务可以运行在本地 ECU,也可以运行在远程 ECU 上。不论哪种情况,应用程序的代码都一样(译注:通过代理模式实现)。通信服务负责处理具体通信细节,应用程序无需关心。从另一个角度来看这个架构:分布式计算,通过消息传递的形式来通信。这种消息传递、基于通信的架构也受益于快速、高带宽的通信(如以太网)的兴起。

2.3.3 并行处理

分布式计算本来就是并行的。SOA 中,不同的应用使用不同的服务。众核以及异构计算所带来的并行计算能力,使得实现内在并行性在技术上成为可能。因此,随着众核-异构计算技术的发展,AP 在架构具有了扩展功能和性能的能力。硬件和平台接口规范只是一部分,OS/hypervisor 技术和开发工具(如自动并行化工具)的发展也非常重要。这部分将有 AP 供应商以及行业/学术生态系统实现。AP 也旨在适应此类技术。