AUTOSAR_AP_EXP_SWArchitecture
FIG-7215e4c041c2edcf
702 × 414 px
1 Release(s)
Figure 5.2: Interfaces required by Vehicle Update and Configuration Management from other Functional Clusters
SHA-256 Inhalts-Fingerabdruck:
7215e4c041c2edcf81bf509a4498a8ec67e4c8740746d72090ae281df1c5433f
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: UML-Schnittstellen- und Architektur-Strukturdiagramm (Komponentendiagramm-Abstraktion der AUTOSAR Adaptive Platform Architecture).
- Technischer Zweck: Spezifikation der normativen Abhängigkeiten und konsumierten C++-Programmierschnittstellen (Native Interfaces / Functional Cluster APIs), die das Functional Cluster Vehicle Update and Configuration Management (UCM) zur Laufzeit von anderen Plattform-Clustern der AUTOSAR Adaptive Platform (AP) einfordert.
- Funktionale Einordnung: UCM steuert als Plattform-Dienst Software-Aktualisierungen, Rollbacks und Zustandsabfragen für Adaptive Applications. Zur Ausführung dieser Aufgaben benötigt UCM fundamentale Plattform-Dienste: Lebenszyklusmeldung an das Prozessmanagement, kryptografische Verifikation der Update-Pakete sowie standardisiertes Logging.
2. Komponenten, Entitäten & Schnittstellen
Entitäten & Functional Clusters
Vehicle Update and Configuration Management(«aapFunctionalCluster»,daemon-based):- Konsument (Client). Läuft als eigenständiger POSIX-Daemon-Prozess im Betriebssystem.
Log and Trace(«aapFunctionalCluster»):- Provider für strukturiertes, gefiltertes Plattform-Logging (ara::log).
Execution Management(«aapFunctionalCluster»,daemon-based):- Provider für Prozessüberwachung, State Management und Startup/Shutdown-Zyklen (ara::exec).
Cryptography(«aapFunctionalCluster»,daemon-based):- Provider für kryptografische Primitive, Schlüsselverwaltung, Signaturen und Zertifikatsprüfung (ara::crypto).
Schnittstellen («aapAPI,aapNativeInterface»)
Logger(realisiert durchLog and Trace):+ IsEnabled(): bool– Abfrage aktiver Log-Filter.+ Log(MsgId, Params)– Strukturierter Log-Aufruf.+ LogDebug(): LogStream,+ LogError(): LogStream,+ LogFatal(): LogStream,+ LogInfo(): LogStream,+ LogVerbose(): LogStream,+ LogWarn(): LogStream– Severity-spezifische Streaming-Operatoren.+ WithLevel(): LogStream– Dynamische Severity-Zuweisung.
ExecutionClient(realisiert durchExecution Management):+ Create()– Factory-Methode / Konstruktor zur Instanziierung des Client-Objekts.+ ReportExecutionState(ExecutionState)– Synchrone/asynchrone Zustandsübermittlung (z. B.kRunning,kTerminating) an den EM-Daemon.
CryptoStack(realisiert durchCryptography):- Schnittstellenabstraktion für ara::crypto (Hashing, Signaturprüfung, Schlüsselzugriff).
Beziehungen
- Interface Realization (gestrichelte Linie mit geschlossener, weißer Dreiecksspitze):
Log and Trace→LoggerExecution Management→ExecutionClientCryptography→CryptoStack
- Dependency (
«use», gestrichelte Pfeillinie):Vehicle Update and Configuration Management→LoggerVehicle Update and Configuration Management→ExecutionClientVehicle Update and Configuration Management→CryptoStack
3. Dynamisches Verhalten & Interaktionsmuster
Da es sich um ein statisches Abhängigkeitsmodell handelt, spiegeln die Schnittstellen die folgenden synchronen und prozessübergreifenden Abläufe im UCM-Lebenszyklus wider:
- Bootstrap & Alive-Reporting:
- Nach dem Start des UCM-Prozesses durch den POSIX-Kernel/EM instanziiert UCM via
ExecutionClient::Create()die Client-Instanz. - UCM meldet den Betriebszustand via
ReportExecutionState(ExecutionState::kRunning)per IPC an den Execution Management Daemon. Bei Ausbleiben greift das EM-Deadline-Monitoring.
- Nach dem Start des UCM-Prozesses durch den POSIX-Kernel/EM instanziiert UCM via
- Paketverifikation (Update-Phase):
- UCM empfängt ein Software Package.
- UCM ruft synchrone/asynchrone Methoden des
CryptoStackauf, um Manifest-Signaturen gegen hinterlegte Root-Zertifikate (Authentizität) und SHA-Hashes der Payload-Container (Integrität) zu validieren.
- Traceability & Audit-Pfad:
- Bei jedem Statustransfer (
Transferring,Updating,Verifying,Activating,RollingBack) generiert UCM Diagnose- und Audit-Einträge überLogger::LogInfo(),Logger::LogWarn()oderLogger::LogError(), welche durchLog and Tracean POSIX-Standardkanäle oder DLT (Diagnostic Log and Trace) weitergeleitet werden.
- Bei jedem Statustransfer (
- Terminierung:
- Vor dem Neustart nach Aktivierung eines Updates signalisiert UCM via
ReportExecutionState(ExecutionState::kTerminating)das geordnete Herunterfahren an EM.
- Vor dem Neustart nach Aktivierung eines Updates signalisiert UCM via
4. Normative Relevanz & Entwickler-Hinweise
- Link- und Build-Konfiguration:
- Die UCM-Binary muss gegen die nativen C++-Client-Bibliotheken linken (
libara_exec.so,libara_log.so,libara_crypto.sobzw. herstellerspezifische Implementierungen).
- Die UCM-Binary muss gegen die nativen C++-Client-Bibliotheken linken (
- IPC- und Daemon-Architektur:
ExecutionClientundCryptoStackoperieren als Thin-Clients; die eigentliche Ausführung und Schlüsselverwaltung geschieht im Sicherheitskontext der jeweiligen Daemons via IPC (Domain Sockets / Shared Memory). Fehlerzustände der IPC müssen überara::core::Result<T>im UCM abgefangen werden.
- Manifest- & Berechtigungskonfiguration:
- Im Execution Manifest (
.arxml) des UCM müssen Zugriffsrechte für denExecutionClientkonfiguriert sein (Berechtigung zum Melden von Execution States). - Im Cryptographic Key Management Manifest muss UCM den Truststore-/Key-Slot-Zugriff zugewiesen bekommen, um die Hersteller-/OEM-Schlüssel für die Signaturprüfung ansprechen zu können.
- Im Execution Manifest (
- Einschränkung:
- UCM darf Validierungsoperationen nicht anwendungsseitig selbst nachimplementieren, sondern ist normativ an die Schnittstellen des
CryptoStackgebunden, um Hardware-Sicherheitsmodule (HSM) oder Trust-Zonen transparent einbinden zu können.
- UCM darf Validierungsoperationen nicht anwendungsseitig selbst nachimplementieren, sondern ist normativ an die Schnittstellen des
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.