DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_EXP_SWArchitecture FIG-4927e742d5d704e8 671 × 490 px 1 Release(s)

Figure 11.11: Scenario: Read Persistent Data with Unique ID

SHA-256 Inhalts-Fingerabdruck: 4927e742d5d704e80e1af113bfbbde8baa7281473972ad43d8110370ba50c549
✦ 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-Sequenzdiagramm (Interaktionsdiagramm mit kombinierten Fragmenten alt und ref).
  • Technischer Zweck & Einordnung: Spezifikation des standardisierten Leseablaufs für persistente Schlüssel-Wert-Daten (Key-Value Storage, KVS) in der AUTOSAR Adaptive Platform (AP, Release R23-11). Das Szenario zeigt das Zusammenwirken zwischen der Anwendungsschicht (ara::per), dem Betriebssystem (POSIX-Dateisystem/Storage) sowie den optionalen Manifest-gesteuerten Mechanismen zur Fehlererkennung/-korrektur (Redundanz) und transparenten Entschlüsselung via ara::crypto.

2. Komponenten, Entitäten & Schnittstellen

  • Akteure & Lifelines:
    • :Adaptive Application (Akteur/Prozess): Aufrufende funktionale Instanz im User-Space der Adaptive Platform.
    • «aapFunctionalCluster» :Persistency (Funktionaler Cluster): Implementierung der ara::per-Spezifikation, fungiert als Vermittler, Cache- und Speicher-Manager.
    • :Operating System (Akteur/Infrastruktur): Unterlagerte POSIX-kompatible Betriebssystem-Schnittstelle (Dateisystem-/Blocktreiber-Ebene).
    • «aapFunctionalCluster» :Cryptography (Funktionaler Cluster): Kryptografiesubsystem (ara::crypto) zur sicheren Schlüsselverwaltung und symmetrischen Block-/Stream-Entschlüsselung.
  • Schnittstellen & Interaktionspunkte:
    • OpenKeyValueStorage(): KeyValueStorage: Statische Factory-Methode der C++-API (ara::per::OpenKeyValueStorage) zur Instanziierung/Bindung eines Storage-Handles basierend auf dem Applikations-Manifest.
    • GetValue(key): Typsichere Abfragemethode am KeyValueStorage-Objekt zum Auslesen des Werts für einen eindeutigen Identifier (key).
    • OS-Systemaufrufe: open() zum Öffnen des korrespondierenden Storage-Deskriptors und read() zum Laden der Rohdatenblöcke.
    • Krypto-Schnittstelle: Interaktionsreferenz Initialize Cipher und synchrone Blocktransformation ProcessBlock() über den Cipher-Kontext von ara::crypto.

3. Dynamisches Verhalten & Sequenzablauf

  1. Initialisierung des Storage-Handles:
    • Die :Adaptive Application setzt den synchronen Aufruf OpenKeyValueStorage() an :Persistency ab.
    • :Persistency öffnet die zugrundeliegende Persistenzdatei/Datenbank über den OS-Systemaufruf open(). Ein Handle auf KeyValueStorage wird an die Applikation zurückgegeben.
  2. Datenanforderung:
    • Die Applikation triggert GetValue(key) an :Persistency.
    • :Persistency führt einen synchronen Blocklesevorgang über read() am :Operating System aus.
  3. Bedingte Datenintegritätsprüfung & Fehlerkorrektur (alt [Redundancy enabled in the Manifest]):
    • Falls Redundanzmechanismen (z. B. M-out-of-N-Replikation, Prüfsummen/ECC) im Manifest konfiguriert sind, verzweigt der Ablauf in die Referenz Detect and Correct Data Errors. Etwaige Bitkipper oder Dateikorruptionen werden intern repariert.
  4. Bedingte Entschlüsselung (alt [KeySlotMapping exists in Manifest and keySlotUsage = encryption]):
    • Ist dem Storage oder dem Key im Manifest ein KeySlot mit Verwendungszweck encryption zugeordnet, initiiert :Persistency über die Referenz Initialize Cipher den passenden Entschlüsselungskontext in :Cryptography.
    • Über ProcessBlock() werden die verschlüsselten Rohdaten synchron an :Cryptography übergeben und im Speicher dechiffriert.
  5. Rückgabe:
    • :Persistency deserialisiert die validierten bzw. entschlüsselten Nutzdaten und liefert den Wert synchron an die :Adaptive Application zurück.

4. Normative Relevanz & Entwickler-Hinweise

  • Transparenz für Applikationsentwickler: Integritätsprüfung, Fehlerkorrektur und kryptografische Operationen erfolgen vollständig gekapselt innerhalb von ara::per. Die Applikation interagiert ausschließlich über die High-Level-API (GetValue) und muss weder Krypto-Schlüssel manuell instanziieren noch Redundanz-Validierungen selbst implementieren.
  • Manifest-Konfiguration:
    • Redundanzverhalten (PersistencyRedundancyHandling) muss im Persistency-Port/Execution-Manifest explizit deklariert sein; andernfalls führt Datenkorruption zu Leseabbruch (ara::per::PerErrc::kPhysicalStorageFailure bzw. kIntegrityCorrupted).
    • Für Verschlüsselung muss ein valides KeySlotMapping auf einen existierenden Crypto-KeySlot vorhanden sein. Fehlende Mappings oder inkompatible keySlotUsage-Attribute führen zu Initialisierungsfehlern beim Zugriff.
  • Performance & Blocking: Da read(), Krypto-Operationen (ProcessBlock) und Fehlerkorrekturalgorithmen im Kontext des aufrufenden Threads synchron ausgeführt werden können, müssen Latenzen im Echtzeitbudget berücksichtigt werden; zeitkritische Tasks sollten Storage-Ladevorgänge nicht in deterministischen Ausführungszyklen triggern.

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R23-11 → R24-11 redaktionell Nachfolger: FIG-a10f969cf0a8eceb
  • Stereotyp «aapInformative»: Ergänzung unter der Nachricht open() von :Persistency an :Operating System zur expliziten Kennzeichnung als nicht-normatives Modellelement.
  • Stereotyp «aapInformative»: Ergänzung unter der Nachricht read() von :Persistency an :Operating System zur expliziten Kennzeichnung als nicht-normatives Modellelement.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

:Adaptive Application | «aapFunctionalCluster» | :Persistency | «aapFunctionalCluster» | :Cryptography | :Operating System | ref | Detect and Correct Data Errors | alt | [KeySlotMapping exists in Manifest and keySlotUsage = encryption] | ref | Initialize Cipher | alt | [Redundancy enabled in the Manifest] | GetValue(key) | open() | OpenKeyValueStorage(): KeyValueStorage | ProcessBlock() | read()

Begleitender Spezifikationstext:

Explanation of Adaptive Platform Software Architecture AUTOSAR AP R23-11 calling OpenFileReadOnly() or OpenFileReadWrite() depending if the Adaptive Application needs to write data to the file as well. Then, the Adaptive Application can read data via the methods provided by ReadAccessor either as binary data or text data. If enabled in the Manifest, Persistency will detect and try to correct data errors when reading from a file. If the file or FileStorage is configured to use encryption, the contents of the file will be transparently decrypted during read. 11.3.1.2 Read Persistent Data with Unique ID 11.3.1.2.1 Scenario: Read Persistent Data with Unique ID :Adaptive Application «aapFunctionalCluster» :Persistency «aapFunctionalCluster» :Cryptography :Operating System ref Detect and Correct Data Errors alt [KeySlotMapping exists in Manifest and keySlotUsage = encryption] ref Initialize Cipher alt [Redundancy enabled in the Manifest] GetValue(key) open() OpenKeyValueStorage(): KeyValueStorage ProcessBlock() read() Figure 11.11: Scenario: Read Persistent Data with Unique ID Figure 11.11 shows the default scenario for Read Persistent Data with Unique ID. The Adaptive Application needs to open a KeyValueStorage by calling OpenKeyValueStorage(). Then, the Adaptive Application can read data associated to a key by calling GetValue(). If enabled in the Manifest, Persistency will detect and try to correct data errors when reading data. If the individual key or KeyValueStorage is config

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R23-11 AUTOSAR_AP_EXP_SWArchitecture S. 173 11.11 Figure 11.11: Scenario: Read Persistent Data with Unique ID