AUTOSAR_EXP_SWArchitecture
FIG-c058acfc1bbf9290
774 × 486 px
1 Release(s)
Figure 9.13: Overview of Persistency
SHA-256 Inhalts-Fingerabdruck:
c058acfc1bbf9290ab4baab3d0ff02bc4a051f6d411a8e9ae48a0b9e38f9bc5d
✦
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-Komponentendiagramm mit Schnittstellenrealisierung (
Interface Realization) und Nutzungsabhängigkeiten («use» Dependencies). - Architektur-Kontext: AUTOSAR Adaptive Platform (Release R20-11), Functional Cluster Persistency (
ara::per) innerhalb der Adaptive Foundation (vgl.AUTOSAR_EXP_SWArchitecture, Kap. 9.4 / Fig. 9.13). - Technischer Zweck: Darstellung der strukturellen Kapselung von persistentem Datenzugriff für Adaptive Applications (AA) gegenüber dem zugrunde liegenden Betriebssystem (POSIX OS) sowie der kryptografischen Absicherung über den Functional Cluster Cryptography (
ara::crypto).
2. Komponenten, Entitäten & Schnittstellen
Komponenten (UML Components)
Persistency(grün): Zentraler Functional Cluster (ara::per) der AUTOSAR Adaptive Platform.Cryptography(gelb): Plattform-interner Functional Cluster (ara::crypto) zur kryptografischen Absicherung (Integritätsschutz, Ver-/Entschlüsselung).Operating System(rosa/grau): Plattform-externes POSIX-Betriebssystem inklusive Dateisystem-, NVRAM- und Flash-Treibern.
Bereitgestellte Schnittstellen durch Persistency (Interface Realization)
Alle oberen Interfaces tragen den Stereotyp «applicationInterface» (standardisierte C++-API für Adaptive Applications):
Key-Value Storage: Strukturierter Zugriff auf typisierte Schlüssel-Wert-Paare (ara::per::KeyValueStorage).File Storage: Unstrukturierter, dateibasierter Zugriff über Streams/Dateihandles (ara::per::FileStorage).Redundancy Handling:+ RegisterRecoveryReportCallback(): Registrierung eines Callbacks zur Benachrichtigung bei aufgetretenen und durch Redundanzmechanismen korrigierten Dateninkonsistenzen/Bitflips.
Data Management:+ RegisterApplicationDataUpdateCallback(): Hook für die Applikation zur Migration/Aktualisierung anwendungsspezifischer Schemata bei Updates.+ ResetPersistency(): Zurücksetzen von Persistenz-Instanzen auf Werks-/Initialzustand.+ UpdatePersistency(): Triggerung des Migrations- und Update-Zyklus persistierter Datenstände nach Software-Aktualisierungen.
Genutzte Schnittstellen durch Persistency («use» Dependency)
«applicationInterface» Crypto Stack: Konsumiert durchPersistency, realisiert durch den Functional ClusterCryptography. Dient zur transparenten Authentisierung (HMAC/Signatur) und Verschlüsselung (AEAD) persistierter Datenblöcke.«externalInterface» Non-volatile Storage: Konsumiert durchPersistency, realisiert durch dasOperating System. Abstrahiert physische Blockgeräte, NVRAM oder POSIX-Dateisystempfade.
3. Dynamisches Verhalten & Sequenzablauf
- Laufzeit-Datenzugriff (CRUD-Pfad):
- Eine Adaptive Application greift synchron oder asynchron via
Key-Value StorageoderFile Storageauf persistente Speicherbereiche zu. - Persistency leitet Schreiboperationen bei aktivierter Sicherheitskonfiguration zunächst an
Crypto Stackweiter (Generierung von Hash/MAC, Chiffrierung) und schreibt das Ergebnis viaNon-volatile Storagesynchron/gepuffert ins POSIX-Dateisystem.
- Eine Adaptive Application greift synchron oder asynchron via
- Redundanz- und Wiederherstellungs-Zyklus:
- Beim Lesen verifiziert Persistency Prüfsummen/M-aus-N-Redundanzen (z. B. CRC, Replikation).
- Schlägt die Validierung einer Datenkopie fehl, wird die redundante Kopie restauriert.
- Asynchroner Trigger: Wurde ein Fehler korrigiert, feuert der über
RegisterRecoveryReportCallback()registrierte Callback, um die Applikation oder das Diagnostics/State-Management über Degradation oder Silent Data Corruptions zu informieren.
- Lifecycle- & Update-Sequenz (Persistency Update/Reset):
- Ein Software-Update über den Update and Configuration Management (UCM)-Cluster initiiert
UpdatePersistency(). - Persistency prüft Versions-Tags des Persistency-Deployments. Stimmen Schemaversionen nicht überein, wird der via
RegisterApplicationDataUpdateCallback()registrierte Callback der Applikation aufgerufen, um Nutzdaten deklarativ oder prozedural zu migrieren. ResetPersistency()löscht Datenbereiche und stellt den Auslieferungszustand (Init-Files aus dem Manifest/Deployment) wieder her.
- Ein Software-Update über den Update and Configuration Management (UCM)-Cluster initiiert
4. Normative Relevanz & Entwickler-Hinweise
- API-Kapselung: Applikationen dürfen zu keinem Zeitpunkt direkte POSIX-File-IO-Aufrufe (
open,read,write) auf persistierte Anwendungsdaten durchführen. Der Zugriff muss strikt überara::per::OpenKeyValueStorage()bzw.ara::per::OpenFileStorage()erfolgen, da sonst Redundanz- und Verschlüsselungslayer umgangen und Daten korrumpiert werden. - Manifest-Modellierung (AUTOSAR ARXML):
- Entwickler müssen
PersistencyPortPrototype,PersistencyKeyValueDatabaseundPersistencyFileProxyInterfaceim Execution- und Service-Instance-Manifest modellieren. - Redundanzalgorithmen (
CRC32,M-out-of-N) und Verschlüsselungsanforderungen (CryptoKeySlotsviaCryptoProvider) werden deklarativ im Manifest verknüpft und zur Laufzeit durch Persistency instanziiert.
- Entwickler müssen
- Callback-Restriktionen:
- Der
ApplicationDataUpdateCallbackmuss zwingend idempotent und deterministisch ausgelegt sein; schlägt die Datenmigration fehl, scheitert der Update-Prozess der Partition/Executable im State Management. - Im
RecoveryReportCallbackdürfen keine blockierenden Aufrufe oder Schreibzugriffe auf dieselbe Persistency-Instanz ausgeführt werden (Deadlock-Gefahr im Stack).
- Der
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.