AUTOSAR_AP_SWS_UpdateAndConfigurationManagement
FIG-ac91624831463dd9
754 × 477 px
1 Release(s)
Figure 5.2: Interfaces required by Update and Configuration Management from Functional Clusters Persistency and Time Synchronization
SHA-256 Inhalts-Fingerabdruck:
ac91624831463dd983bfd8e0b3d6856ab6e52d4d7ab00868984c242a0ec890f0
✦
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
- Diagrammtyp: UML-Schnittstellen- und Komponentendiagramm (AUTOSAR Adaptive Platform Metamodell, Cluster Interaction View).
- Architektur-Kontext: Spezifiziert die Abhängigkeiten des Funktionsclusters Update and Configuration Management (UCM) zu den Basis-Clustern Persistency (PER) und Time Synchronization (TS) in der AUTOSAR Adaptive Platform (Release R25-11).
- Funktionaler Zweck: UCM fungiert als zentrale Instanz für Software-Aktualisierungen (Fahrzeug-/ECU-Updates, Rollback, Aktivierung). Für die transaktions- und stromausfallsichere Zustandsverwaltung benötigt UCM Persistenzmechanismen; für kryptografische Zertifikatsprüfungen, Logging und Transaktionszeitstempel benötigt UCM eine abgesicherte, netzwerkweit synchronisierte Zeitbasis.
2. Komponenten, Entitäten & Schnittstellen
Funktionscluster («aapFunctionalCluster»)
Update and Configuration Management: Konsumierender Cluster, als Hintergrunddienst (daemon-based) ausgeführt.Time Synchronization: Bereitstellender Cluster, als Hintergrunddienst (daemon-based) implementiert; liefert konsistente Zeitbasen.Persistency: Bereitstellender Cluster (typischerweise statisch/dynamisch gelinkte Library innerhalb des UCM-Prozesskontexts); kapselt Datei- und Schlüssel-Wert-Speicherung.
Schnittstellen («aapAPI, aapPortInterface») & Methoden
SynchronizedTimeBaseConsumer(bereitgestellt von Time Synchronization):- Zeit- und Statusabfrage:
GetRateDeviation(),GetTimeWithStatus(): SynchronizedTimeBaseStatus. - Notifier-Lifecycle:
RegisterStatusChangeNotifier(),UnregisterStatusChangeNotifier(),RegisterSynchronizationStateChangeNotifier(),UnregisterSynchronizationStateChangeNotifier(),RegisterTimeLeapNotifier(),UnregisterTimeLeapNotifier(),RegisterTimePrecisionMeasurementNotifier(),UnregisterTimePrecisionMeasurementNotifier(),RegisterTimeValidationNotification(),UnregisterTimeValidationNotification().
- Zeit- und Statusabfrage:
FileStorage(bereitgestellt von Persistency):- Datei-Management:
DeleteFile(),FileExists(),GetAllFileNames(),GetCurrentFileSize(),GetFileInfo(),RecoverFile(),ResetFile(). - Stream-/Handle-Zugriff:
OpenFileReadOnly(): ReadAccessor,OpenFileReadWrite(): ReadWriteAccessor,OpenFileWriteOnly(): WriteAccessor.
- Datei-Management:
KeyValueStorage(bereitgestellt von Persistency):- Daten-CRUD:
GetValue(),SetValue(),KeyExists(),RemoveKey(),RemoveAllKeys(),GetAllKeys(),GetCurrentValueSize(). - Transaktions- & NVM-Kontrolle:
SyncToStorage(),DiscardPendingChanges(),RecoverKey(),ResetKey().
- Daten-CRUD:
Beziehungen & Stereotypen
«use» «aapRequiredPort»: Gerichtete Abhängigkeiten von UCM zu den drei Schnittstellen. UCM deklariert R-Ports fürSynchronizedTimeBaseConsumer,FileStorageundKeyValueStorage.- Schnittstellenrealisierung (Interface Realization): Gestrichelte Pfeile mit geschlossener Dreiecksspitze von den implementierenden Clustern (Time Synchronization bzw. Persistency) zu den jeweiligen Port Interfaces.
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierungs- & Wiederanlaufphase (Power-On / Reset):
- UCM fragt via
KeyValueStorage::GetValue()die letzte persistierte Zustandsmaschine ab (z. B. laufende Installation, verifizierter Status, SwCluster-Versionen). - UCM meldet über
SynchronizedTimeBaseConsumer::RegisterSynchronizationStateChangeNotifier()Callbacks an, um Ereignisse bei Verlust oder Wiederherstellung der Zeitsynchronisation zu empfangen.
- UCM fragt via
- Pakettransfer & Validierung (Transfer / Process):
- Eintreffende Software-Pakete/Images werden über
FileStorage::OpenFileWriteOnly()und den resultierendenWriteAccessorsequenziell auf das Zielmedium geschrieben. - UCM ruft
SynchronizedTimeBaseConsumer::GetTimeWithStatus()auf. Vor der Verarbeitung prüft UCM, ob der Zeitstempel valide ist (SynchronizedTimeBaseStatus), um die Gültigkeitsdauer (NotBefore/NotAfter) von X.509-Zertifikaten sowie Signaturen gegen Replay-Angriffe abzusichern.
- Eintreffende Software-Pakete/Images werden über
- Zustandssicherung & Commit:
- Zwischenzustände (
kTransferring,kTransferred,kProcessing) werden atomar viaKeyValueStorage::SetValue()aktualisiert und mitSyncToStorage()synchron auf den NVM-Speicher geflusht.
- Zwischenzustände (
- Fehlerfall & Rollback:
- Bei Abbruch oder fehlschlagender Verifikation setzt UCM Teildateien über
FileStorage::DeleteFile()oderResetFile()zurück bzw. ruftKeyValueStorage::DiscardPendingChanges()oderResetKey()auf, um einen konsistenten Vorzustand wiederherzustellen.
- Bei Abbruch oder fehlschlagender Verifikation setzt UCM Teildateien über
4. Normative Relevanz & Entwickler-Hinweise
- Manifest-Konfiguration:
- Für UCM müssen im Execution- und Service-Instance-Manifest
RPortPrototype-Instanzen für die drei Schnittstellen konfiguriert werden. - Das Persistency-Manifest muss entsprechende Port-Mappings für
FileStorage(Mountpoints, Quotas, Storage-Pfade) undKeyValueStoragedefinieren. - Das Time-Synchronization-Manifest muss UCM an die geforderte
SynchronizedTimeBase(z. B. IEEE 802.1AS / PTP oder CAN-TS) binden.
- Für UCM müssen im Execution- und Service-Instance-Manifest
- Transaktionsintegrität & Blockierverhalten:
KeyValueStorage::SyncToStorage()erzwingt einen Flush auf physischen Flash/eMMC. Wegen hoher I/O-Latenzen darf dieser Aufruf nicht in harten Echtzeit- oder reaktiven Dispatch-Threads blockieren, sondern muss im UCM-Worker-Thread isoliert werden.- Uncommitted Key-Value-Änderungen überleben einen harten Spannungsabfall nicht, solange
SyncToStorage()nicht erfolgreich quittiert wurde.
- Robustheit gegenüber Time-Base-Verlust:
- Entwickler müssen zwingend den Rückgabewert von
SynchronizedTimeBaseConsumer::GetTimeWithStatus()auf den StatusTIMEOUT,SYNCoderUNSYNCauswerten. Liegt keine synchronisierte Zeit vor, muss UCM zeitkritische Update-Phasen blockieren oder in eine definierte Fehlerbehandlung übergehen.
- Entwickler müssen zwingend den Rückgabewert von
- Redundanz- & Recovery-Mechanismen:
- Die Methoden
RecoverFile()undRecoverKey()greifen auf konfigurierte Redundanzmechanismen (z. B. M-out-of-N-Storage, CRC) vonara::perzurück. Diese müssen im Manifest explizit aktiviert sein, damit die Methoden im Fehlerfall greifen.
- Die Methoden
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.