自適應平臺AUTOSAR(AP AUTOSAR)是面向未來高性能計算和復雜電子電氣架構的汽車軟件平臺標準。其核心在于支持動態、靈活的軟件部署與更新,其中對自適應應用程序及其應用軟件服務的定義與管理是其架構設計的關鍵。
1. 自適應應用程序的定義
在AP AUTOSAR中,自適應應用程序(Adaptive Application) 是指運行在自適應平臺上的軟件功能單元,通常以可執行文件(Executable) 或進程(Process) 的形式存在。與經典平臺(CP AUTOSAR)基于靜態配置的軟件組件(SWC)不同,自適應應用程序具有以下特點:
- 動態性:支持運行時啟動、停止、更新和通信,無需重啟整個系統。
- 隔離性:通常運行在獨立的用戶空間進程中,通過操作系統和平臺服務實現資源與故障隔離。
- 服務化:應用程序的功能通過服務(Services) 的形式提供和消費,遵循面向服務的架構(SOA)原則。
2. 應用軟件服務的定義與角色
應用軟件服務(Application Software Services) 是自適應應用程序功能的具體體現,也是平臺中功能調用的核心接口。其定義包括:
- 服務接口(Service Interface):使用AUTOSAR自適應平臺服務接口描述語言(ARA::COM) 定義。接口明確了方法(Methods)、事件(Events)和字段(Fields),提供了類型安全的通信契約。
- 服務實例(Service Instance):服務接口的具體實現和運行時實體。一個自適應應用程序可以提供一個或多個服務實例,同時也可以消費其他應用程序或平臺核心提供的服務。
- 通信機制:基于發布/訂閱(Publish/Subscribe) 和請求/響應(Request/Response) 模式,通常通過底層SOME/IP等中間件協議實現。
3. 應用軟件服務的管理機制
AP AUTOSAR通過一系列核心功能集群(Functional Clusters)來管理應用程序及其服務的生命周期、通信和狀態。
a) 執行管理(Execution Management, EM)
- 負責自適應應用程序的啟動、停止和監控。它根據清單文件(Manifest)中的配置,啟動應用程序進程,并為其分配唯一的標識符。
- 管理應用程序的狀態(如STARTING, RUNNING, TERMINATING)。
b) 通信管理(Communication Management)
- ARA::COM 是應用軟件服務通信的核心框架。它為服務發現(Service Discovery)、服務發布與訂閱、遠程方法調用等提供標準化API。
- 服務注冊與查找:服務提供者在啟動時向服務注冊表(Service Registry) 注冊其實例,消費者則動態查找所需服務。
c) 狀態管理(State Management, SM)
- 管理平臺和應用程序功能組(Function Group)的整體狀態(如STARTUP, SHUTDOWN, UPDATE)。
- 協調應用程序在特定平臺狀態下的行為,例如在系統關閉時有序地停止所有應用服務。
d) 配置與清單(Manifest)
- 每個自適應應用程序都伴隨一個機器可讀的清單文件(通常基于XML或JSON格式)。
- 清單中明確定義了:
- 應用程序的可執行文件路徑和資源需求。
- 它提供(offers) 和需要(requires) 的服務接口及實例。
- 與其他應用程序或服務的依賴關系。
- 非功能屬性,如權限、安全憑據和健康監控配置。
- 該清單是執行管理、通信管理和部署工具進行管理的基礎。
e) 診斷與健康監控(Diagnostics & Health Monitoring)
- 通過UCM(Update and Configuration Management) 和 PHM(Platform Health Management) 等模塊,監控應用程序及其服務的運行狀況,支持故障報告、恢復和動態更新。
4. 服務交互的生命周期示例
- 設計時:工程師使用建模工具(如AUTOSAR建模工具鏈)定義服務接口和應用程序清單。
- 部署時:將應用程序可執行文件及其清單部署到目標機器的特定位置(如容器或文件系統)。
- 啟動時:執行管理根據清單啟動應用程序進程。應用程序啟動后,其服務代理自動向通信管理框架注冊其提供的服務實例。
- 運行時:
- 服務消費者通過ARA::COM API查找并綁定到所需的服務實例。
- 雙方通過代理(Proxy)和骨架(Skeleton)模式進行類型安全的遠程通信。
- 狀態管理協調系統級狀態轉換,執行管理監控應用程序進程的生命周期。
- 更新/終止時:可通過UCM模塊進行服務的動態更新或替換。狀態管理觸發有序關閉,執行管理終止進程。
###
AP AUTOSAR通過將自適應應用程序定義為以服務為核心、清單為藍本的獨立進程,并結合執行管理、通信管理、狀態管理三大支柱,實現了對應用軟件服務的動態、靈活且可靠的定義與管理。這種面向服務的架構使得汽車軟件能夠更好地支持OTA更新、功能擴展以及復雜的功能集成,滿足了智能網聯汽車對高計算性能、高可擴展性和高安全性的需求。