AUTOSAR_AP_EXP_SWArchitecture
FIG-b6c9ce59099a2615
754 × 476 px
1 Release(s)
Figure 9.76: Interfaces required by Update and Configuration Management (part 1)
SHA-256 Inhalts-Fingerabdruck:
b6c9ce59099a2615d7f76ab14ede72d5fd65ed741282983c069712ede310569b
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: UML-Klassendiagramm / Port-Interface-Architekturdiagramm der AUTOSAR Adaptive Platform (Standard: R22-11, AUTOSAR_EXP_SWArchitecture).
- Technischer Zweck: Spezifikation der funktionalen Abhängigkeiten des Functional Clusters (FC) Update and Configuration Management (UCM) zu den Basis-Diensten der Adaptive Platform (Persistency und Time Synchronization) über standardisierte ARA-Schnittstellen (AUTOSAR Runtime for Adaptive Applications).
- Funktionale Einordnung: UCM steuert als zentraler Daemon OTA-Updates, Software-Installationen, Rollbacks und Validierungsschritte. Für die transaktionssichere Zustandsverwaltung und verlässliche Zeitstempelung greift UCM über Client-Ports (
RequiredPort) auf die standardisierten APIs benachbarter FCs zu.
2. Komponenten, Entitäten & Schnittstellen
Akteure & Functional Clusters
«aapFunctionalCluster» Update and Configuration Management(daemon-based):- Konsument der Dienste; implementiert als Hintergrundprozess (Daemon) im OS-Kontext.
«aapFunctionalCluster» Persistency:- Bereitsteller persistenter Speicherabstraktionen für relationale Daten, Konfigurationen und Binärdateien.
«aapFunctionalCluster» Time Synchronization(daemon-based):- Bereitsteller einer netzwerkweit synchronisierten Zeitbasis (z. B. via IEEE 802.1AS / gPTP).
Schnittstellen («aapAPI, aapPortInterface»)
SynchronizedTimeBaseConsumer:- Schnittstelle zur synchronisierten Zeitbasis.
- Lese-Operationen:
GetCurrentTime(),GetRateDeviation(),GetTimeWithStatus(): SynchronizedTimeBaseStatus. - Asynchrone Notifier-Registrierung:
RegisterStatusChangeNotifier(),RegisterSynchronizationStateChangeNotifier(),RegisterTimeLeapNotifier(),RegisterTimePrecisionMeasurementNotifier(),RegisterTimeValidationNotification()(jeweils mit komplementäremUnregister...).
FileStorage:- Block-/Datei-basierte Persistenzschnittstelle (
ara::per). - Dateioperationen:
DeleteFile(),FileExists(),GetAllFileNames(),GetCurrentFileSize(),GetFileInfo(),RecoverFile(),ResetFile(). - Zugriffs-Handler:
OpenFileReadOnly(): ReadAccessor,OpenFileReadWrite(): ReadWriteAccessor,OpenFileWriteOnly(): ReadWriteAccessor.
- Block-/Datei-basierte Persistenzschnittstelle (
KeyValueStorage:- Schlüssel-Wert-basierte Persistenzschnittstelle (
ara::per). - Schlüssel-Operationen:
DiscardPendingChanges(),GetAllKeys(),GetValue(),KeyExists(),RecoverKey(),RemoveAllKeys(),RemoveKey(),ResetKey(),SetValue(),SyncToStorage().
- Schlüssel-Wert-basierte Persistenzschnittstelle (
Beziehungen & Stereotypen
- Port-Kopplung: UCM bindet alle drei Schnittstellen über
«use» «aapRequiredPort»(Client-Rolle) ein. - Realisierung:
PersistencyimplementiertFileStorageundKeyValueStoragevia Interface-Realisierung (gestrichelte Vererbungslinie).Time SynchronizationimplementiertSynchronizedTimeBaseConsumervia Interface-Realisierung.
3. Dynamisches Verhalten & Sequenzablauf
- Persistente Datenhaltung (UCM ↔
Persistency):- Metadaten & Transaktionszustände (
KeyValueStorage): Atomare Sicherung des Update-Fortschritts (Package-States:kTransferring,kTransferred,kInstalled). Änderungen werden viaSetValue()vorbereitet und mittelsSyncToStorage()physisch im Non-Volatile Storage festgeschrieben. Im Fehlerfall ermöglichenRecoverKey()oderDiscardPendingChanges()das Rollback unvollständiger Transaktionen. - Software-Artefakte & Manifeste (
FileStorage): Streaming empfangener Payload-Archive überOpenFileWriteOnly()/ReadWriteAccessor. Prüfung existierender Binaries viaFileExists()/GetFileInfo().
- Metadaten & Transaktionszustände (
- Zeitüberwachung & Gültigkeit (UCM ↔
Time Synchronization):- Zertifikats- & Kampagnenvalidierung: Abruf von Systemzeit und Synchronisationsstatus via
GetTimeWithStatus(), um kryptografische Zeitfenster (NotBefore/NotAfter von Update-Zertifikaten) abzusichern. - Ereignisgesteuertes Verhalten: UCM registriert Callbacks (Notifier) für Zeitsprünge (
RegisterTimeLeapNotifier) und Synchronisationsverlust (RegisterSynchronizationStateChangeNotifier). Tritt während eines Flashing- oder Aktivierungsschritts ein Zeitabriss ein, kann UCM deterministisch in einen sicheren Fehlerzustand wechseln.
- Zertifikats- & Kampagnenvalidierung: Abruf von Systemzeit und Synchronisationsstatus via
4. Normative Relevanz & Entwickler-Hinweise
- Manifest-Modellierung (AUTOSAR ARXML):
- Für UCM müssen im Application Execution Manifest bzw. Service Instance Manifest entsprechende
RPortPrototypesdefiniert werden, die auf die jeweiligenPortInterfacesverweisen (ara::per::FileStorage,ara::per::KeyValueStorage,ara::tsync::SynchronizedTimeBaseConsumer).
- Für UCM müssen im Application Execution Manifest bzw. Service Instance Manifest entsprechende
- Startup-Dependencies im Execution Management (EM):
- Da UCM als Daemon läuft und zwingend auf TimeSync und Persistency angewiesen ist, müssen im EM Startup Dependencies bzw. Execution Dependencies hinterlegt werden. UCM darf erst in den Zustand
Runningüberführt werden, wenn Persistency und Time Synchronization betriebsbereit gemeldet sind.
- Da UCM als Daemon läuft und zwingend auf TimeSync und Persistency angewiesen ist, müssen im EM Startup Dependencies bzw. Execution Dependencies hinterlegt werden. UCM darf erst in den Zustand
- Fail-Safe- & Crash-Recovery-Anforderungen:
- Bei Spannungsverlust (Power-Cut) während des Schreibens von SwPackages muss
RecoverFile()bzw.RecoverKey()von der zugrundeliegenden Persistency-Implementierung vollumfänglich unterstützt werden (z. B. durch redundante Sektoren, Journaling oder A/B-Speicherbänke). - Entwickler dürfen Zeitstempel für Sicherheitsentscheidungen nicht isoliert auswerten; der Rückgabewert
SynchronizedTimeBaseStatusmuss zwingend auf Flags wiekSynchronizedoderkTimeoutgeprüft werden.
- Bei Spannungsverlust (Power-Cut) während des Schreibens von SwPackages muss
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.