AUTOSAR_AP_EXP_SWArchitecture
FIG-43ba94e83e3b8379
724 × 696 px
1 Release(s)
Figure 11.10: Scenario: Read Persistent Data from File
SHA-256 Inhalts-Fingerabdruck:
43ba94e83e3b8379d64b6a6d0cc9c9180c0506e0ca9b7962e708b83e0109e447
✦
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-Sequenzdiagramm (Interaktionsdiagramm mit kombinierten Fragmenten
alt,loopundref). - Architektur-Kontext: AUTOSAR Adaptive Platform (Release R23-11), Spezifikation
AUTOSAR_AP_EXP_SWArchitecture(Doc-ID 982), Kapitel 11.3 Storage / Persistency. - Technischer Zweck: Darstellung des synchronen Standardablaufs beim sequenziellen, zeilenbasierten Lesen persistenter Daten über die
ara::per-Dateischnittstelle (FileStorage/ReadAccessor). Es visualisiert die Kapselung von Low-Level-OS-Dateizugriffen, hardware- bzw. dateibasierter Redundanz/Fehlerkorrektur und transparenter Krypto-Entschlüsselung (ara::crypto) unterhalb der Persistency-Clustergrenze.
2. Komponenten, Entitäten & Schnittstellen
- Lifelines & Funktionale Einheiten:
:Adaptive Application: Anwendungsinstanz im User-Space, die typisierte Persistenzdienste konsumiert.«aapFunctionalCluster» :Persistency: AUTOSAR Adaptive Platform Functional Cluster (ara::per), verantwortlich für Datenhaltung, Caching, Integritätssicherung und Krypto-Orchestrierung.:Operating System: POSIX-kompatibles Betriebssystem / Kernel mit VFS/Dateisystemtreiber.«aapFunctionalCluster» :Cryptography: AUTOSAR Adaptive Platform Functional Cluster (ara::crypto), zuständig für kryptografische Operationen und Schlüsselverwaltung.
- Schnittstellen & Methodenaufrufe:
- Application-to-Persistency API:
OpenFileStorage(): FileStorage: Öffnet den logischen Speicherraum anhand der Manifest-Konfiguration.readAccessor = OpenFileReadOnly(): ReadAccessor: Erzeugt ein schreibgeschütztes Stream-/Accessor-Objekt auf einer dedizierten Datei.line = ReadLine(): Synchroner Lesevorgang einer textuellen Zeile bis zum Delimiter/EOF.readAccessor.IsEof(): Abfrage der Abbruchbedingung (End of File).
- Persistency-to-OS (POSIX Syscalls):
open(): Öffnen des Dateideskriptors im zugrunde liegenden Filesystem.read(): Blockweises/gepuffertes Einlesen von Binärdaten vom Festspeicher.
- Persistency-to-Crypto API:
ProcessBlock(): Symmetrische Blockentschlüsselung des eingelesenen Ciphertexts im flüchtigen Speicher.
- Application-to-Persistency API:
- Manifest-Artefakte & Konfigurations-Prädikate:
Redundancy enabled in Manifest: Steuert aktivierte Mechanismen zur Datenintegrität (z. B. CRC, Checksums, M-out-of-N-Replikation).KeySlotMapping exists in Manifest and keySlotUsage = encryption: Deklariert die Zuordnung einesCryptoKeySlotzur Persistenzdatei zwecks transparenter In-Flight-Entschlüsselung.
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierungs- & Öffnungsphase:
:Adaptive Applicationruft synchronOpenFileStorage()auf:Persistencyauf und erhält eine Referenz aufFileStorage.- Die Applikation fordert über
readAccessor = OpenFileReadOnly()den Lese-Zugriff an. :Persistencydelegiert die Anforderung peropen()an das:Operating System.
- Integritäts- & Redundanzprüfung (
alt [Redundancy enabled in Manifest]):- Bedingung: Redundanz ist im Manifest konfiguriert.
- Ausführung: Sub-Sequenz
ref Detect and Correct Data Errorswird durchlaufen. Persistency prüft Prüfsummen/Spiegeldateien und korrigiert etwaige Bitkipper/Datenkorruptionen vor der Freigabe.
- Cipher-Initialisierung (
alt [KeySlotMapping exists in Manifest and keySlotUsage = encryption]):- Bedingung: Datei ist im Manifest als verschlüsselt deklariert und besitzt ein valides Key-Slot-Mapping.
- Ausführung: Sub-Sequenz
ref Initialize Cipherinteragiert mit:Cryptography(Laden des symmetrischen Schlüssels, Allokation des Cipher-Kontexts, z. B. AES-CBC/GCM, IV/Nonce-Initialisierung).
- Iterative Lese-Schleife (
loop [not readAccessor.IsEof()]):- Äußere Schleife: Die Applikation ruft zyklisch
line = ReadLine()amReadAccessorauf, bisIsEof() == truesignalisiert wird. - Innere Pufferung & Entschlüsselung (
loop)::Persistencytriggertread()gegen das:Operating System, um Raw-Blöcke in interne Zwischenpuffer einzulesen.alt [KeySlotMapping exists in Manifest and keySlotUsage = encryption]: Liegt Verschlüsselung vor, übergibt Persistency den Block viaProcessBlock()an:Cryptographyzur synchronen Entschlüsselung.
- Rückgabe: Die assemblierte Klartext-Zeile wird als
linesynchron an:Adaptive Applicationzurückgegeben.
- Äußere Schleife: Die Applikation ruft zyklisch
4. Normative Relevanz & Entwickler-Hinweise
- Transparenz & Abstraktion: Weder Krypto-Handling (
ara::crypto) noch Integritätschecks (Redundanz) sind in der Applikationslogik sichtbar. DieAdaptive Applicationinteragiert ausschließlich gegen die abstrakteara::per::ReadAccessor-Schnittstelle. - Manifest-Abhängigkeit: Die funktionale Tiefe von
OpenFileReadOnly()undReadLine()wird zur Deployment-Zeit im Execution-/Instance-Manifest festgelegt (PersistencyFileProxy,KeySlotMapping, Redundanz-Attribute). Fehlt das Key-Mapping bei verschlüsselten Dateien, schlägt das Öffnen fehl (kConfigError/kSecurityError). - Performance & Blockgrenzen: Obwohl die Applikation zeilenbasiert (
ReadLine()) liest, operiert das Back-End blockbasiert (read(),ProcessBlock()). Bei harten Latenzanforderungen muss beachtet werden, dassReadLine()bei Puffer-Misses synchrone OS-I/O und synchrone Krypto-Berechnungen blockierend im Thread-Kontext des Aufrufers ausführt. - Fehlersemantik: Entwickler müssen die standardisierten Fehlercodes (über
ara::core::Result<...>) abfangen, da I/O-Fehler, Validierungsfehler der Redundanzschicht oder Fehlschläge beiProcessBlock()unmittelbar zum Scheitern vonReadLine()bzw.OpenFileReadOnly()führen.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.