Figure 5.1: Interfaces Provided by Persistency to Other Functional Clusters
9c4eedaae28a5c54d5a82fdfe2278c61fc88dc5e4c2376d9e19c0e23725ddd69
1. Diagrammtyp & Architektur-Kontext
UML-Klassendiagramm und Komponentendiagramm der AUTOSAR Adaptive Platform (Releases R24-11 und R25-11, AUTOSAR_AP_SWS_Persistency). Das Diagramm stellt die Bereitstellung des schlüsselwertbasierten Persistenzdienstes (KeyValueStorage) durch den Functional Cluster Persistency für eine erweiterte Gruppe daemon-basierter Plattform-Funktionscluster dar. Es spezifiziert die statische Architektur zur standardisierten Speicherung strukturierter Konfigurations-, Diagnose- und Zustandsdaten über funktionale Ports.
2. Komponenten, Entitäten & Schnittstellen
Zentrale Entität ist die Schnittstelle «aapAPI,aapPortInterface» KeyValueStorage (ohne Namensraum-Präfix). Sie deklariert elf Operationen:
- DiscardPendingChanges()
- GetAllKeys()
- GetCurrentValueSize()
- GetValue()
- KeyExists()
- RecoverKey()
- RemoveAllKeys()
- RemoveKey()
- ResetKey()
- SetValue()
- SyncToStorage()
Der bereitstellende Funktionscluster ist «aapFunctionalCluster» Persistency (Realisierungsbeziehung). Fünf daemon-basierte funktionale Cluster nutzen die Schnittstelle über gerichtete Abhängigkeiten mit «use» und «aapRequiredPort»:
- «aapFunctionalCluster» Diagnostic Management,
- «aapFunctionalCluster» State Management,
- «aapFunctionalCluster» Vehicle Update and Configuration Management,
- «aapFunctionalCluster» Time Synchronization,
- «aapFunctionalCluster» Update and Configuration Management.
3. Dynamisches Verhalten & Sequenzablauf
Statisches Architekturdiagramm ohne dynamische Interaktionspfade. Das Zusammenspiel der Operationen bildet einen transaktional gepufferten Schlüssel-Wert-Zugriff ab: Konsumenten prüfen Schlüssel mit KeyExists(), listen Schlüssel über GetAllKeys() auf, fragen Wertegrößen über GetCurrentValueSize() ab und lesen bzw. schreiben Daten mittels GetValue() und SetValue(). Änderungen werden durch SyncToStorage() persistent und konsistent auf das Speichermedium geschrieben oder mittels DiscardPendingChanges() verworfen. Löschoperationen erfolgen einzeln (RemoveKey()) oder global (RemoveAllKeys()). Bei Datenkorruption oder Reset-Szenarien bieten RecoverKey() und ResetKey() Mechanismen zur Rekonstruktion bzw. Wiederherstellung von Initialwerten.
4. Normative Relevanz & Entwickler-Hinweise
Normativ bindende Spezifikation des KeyValueStorage als universeller Konfigurations- und Statusspeicher für die Basisinfrastruktur der Adaptive Platform. Gegenüber reinen Dateischnittstellen integriert KeyValueStorage State Management (persistente Betriebs- und Fehlermodi), Time Synchronization (persistente Synchronisations- und Driftparameter) sowie Vehicle Update and Configuration Management (flottenweite Update-Stati). Entwickler müssen das zweistufige Schreibmodell (SetValue() gefolgt von explizitem SyncToStorage() oder Rollback über DiscardPendingChanges()) zwingend berücksichtigen, um Atomizität und Konsistenz bei Spannungsausfällen sicherzustellen.