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 也旨在適應此類技術。