AUTOSAR_AP_EXP_SWArchitecture
FIG-884a6a447fcf4783
608 × 593 px
1 Release(s)
Figure 11.18: Scenario: Store Persistent Data with Unique ID
SHA-256 Inhalts-Fingerabdruck:
884a6a447fcf47836a5bafc21600ffa77627e28874ca29513e02dbb73c878b96
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: UML 2.x Sequenzdiagramm (Interaktions- und Ablauf-Szenario).
- Kontext: AUTOSAR Adaptive Platform (AP), Release R23-11, Spezifikation
AUTOSAR_AP_EXP_SWArchitecture, Kapitel 11.3.1 (Persistency). - Technischer Zweck: Detaillierung des Standard-Persistierungsablaufs für schlüsselwertbasierte Daten (Store Persistent Data with Unique ID via
KeyValueStorage). Es visualisiert das zweistufige Commit-Modell (RAM-Pufferung vs. synchronisierter NVRAM-/Disk-Flush) sowie die optionale, manifestgesteuerte Krypto-Integration vor der Übergabe an das Betriebssystem.
2. Komponenten, Entitäten & Schnittstellen
- Lebenslinien & Stereotypen:
:Adaptive Application(Akteur / Prozess-Instanz): Nutzt die standardisierte funktionale C++-API vonara::per.«aapFunctionalCluster» :Persistency(Plattform-Basisdienst): Realisiert den Functional Clusterara::per; verwaltet In-Memory-Caches, Serialisierung, Redundanzprüfungen und Persistierungslogik.:Operating System(Akteur / POSIX-Subsystem): Abstrahiert Dateisystem-, VFS- und Blocktreiberzugriffe über standardisierte POSIX-Systemschnittstellen.«aapFunctionalCluster» :Cryptography(Plattform-Basisdienst): Realisiert den Functional Clusterara::crypto; stellt kryptographische Transformationen, Algorithmen und Schlüsselkontexte bereit.«aapInformative»: Stereotyp zur Kennzeichnung nicht-normativer bzw. betriebssystemspezifischer Interaktionen (open(),write()).
- Schnittstellen & Operationen:
OpenKeyValueStorage(): KeyValueStorage: Fabrikmethode/Getter am Persistency-Cluster zur Erlangung eines typisierten Storage-Handles (ara::per::KeyValueStorage).SetValue(): Typisierte Schreiboperation auf den lokalen In-Memory-Puffer des Key-Value-Speichers.SyncToStorage(): Synchronisationsbefehl zum physischen Flush der gepufferten Änderungen in den permanenten Speicher.open(),write()(mit Stereotyp«aapInformative»): Low-Level-POSIX-Systemaufrufe zur Interaktion mit dem Dateisystem/Persistent Storage.ProcessBlock(): Symmetrische Blockverschlüsselungs- bzw. Transformationsoperation der Krypto-Pipeline.Store Redundant Data(referenzierte Interaktion /ref): Sub-Ablauf zur Speicherung redundanter Datenstrukturen zur Erkennung und Korrektur von Speicherfehlern.
- Konfigurations- und Manifestelemente:
KeySlotMapping: ARXML-Manifest-Zuordnung zwischen einem logischen Persistency-Port/Storage und einem konkreten physischen/logischen Crypto-KeySlot (ara::crypto::keys).keySlotUsage = encryption: Manifest-Attribut, welches die kryptographische Verschleierung vor dem Dateisystem-Schreibvorgang erzwingt.Redundancy enabled in Manifest: Manifest-Bedingung zur Aktivierung redundanter Datenspeicherung inPersistency.
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierung des Storage-Handles:
:Adaptive Applicationruft synchronOpenKeyValueStorage()auf.:Persistencyinstanziiert bzw. bindet dieKeyValueStorage-Ressource und gibt das Handle zurück.
- In-Memory-Modifikation (Entkoppelter Schreibvorgang):
- Die Applikation ruft
SetValue()auf.:Persistencyaktualisiert den Wert ausschließlich im flüchtigen Prozess-Arbeitsspeicher (Cache). Zu diesem Zeitpunkt findet keinerlei I/O-Interaktion mit dem Filesystem oder Krypto-Cluster statt.
- Die Applikation ruft
- Flush-Trigger (
SyncToStorage):- Die Applikation stößt über
SyncToStorage()die eigentliche Persistierungskette an.
- Die Applikation stößt über
- Storage-Öffnung:
:Persistencyinitiiert den I/O-Kanal über den informativen POSIX-Aufrufopen()(«aapInformative») am:Operating System.
- Konditionale Verschlüsselung (
alt-Fragment):- Guard-Bedingung:
[KeySlotMapping exists in Manifest and keySlotUsage = encryption]. - Sub-Interaktion (
ref): Ausführung des referenzierten Krypto-SetupsInitialize Cipher(Allokation des Krypto-Kontextes, Import/Bindung des Schlüssels aus dem definierten KeySlot viaara::crypto). - Transformation:
:Persistencyübergibt die serialisierten Nutzdatenblöcke viaProcessBlock()synchron an:Cryptographyund erhält den Chiffretext zurück.
- Guard-Bedingung:
- Persistenter I/O-Schreibzugriff:
:Persistencyschreibt den Datenstrom über den informativen POSIX-Aufrufwrite()(«aapInformative») an das:Operating System.
- Konditionale Redundanzspeicherung (
alt-Fragment):- Guard-Bedingung:
[Redundancy enabled in Manifest]. - Sub-Interaktion (
ref)::Persistencyführt die referenzierte InteraktionStore Redundant Dataaus, um redundante Daten zur Fehlererkennung und -korrektur im persistenten Speicher abzulegen. Nach Abschluss terminiertSyncToStorage().
- Guard-Bedingung:
4. Normative Relevanz & Entwickler-Hinweise
- Pufferungs- & Transaktionssemantik:
SetValue()garantiert keine Ausfallsicherheit gegen Power-Loss oder Crash. Persistenz wird erst mit dem erfolgreichen Abschluss vonSyncToStorage()sichergestellt.SyncToStorage()ist ein blockierender, I/O- und rechenintensiver Aufruf. In harten Echtzeitkontexten darfSyncToStorage()nicht hochfrequent/zyklisch aufgerufen werden; Modifikationen sind perSetValue()zu aggregieren und gezielt transaktionsorientiert zu flashen.
- Transparente Verschlüsselung via Manifest:
- Die Anwendungssoftware interagiert rein mit Klartextdaten über
SetValue(). Die Verschlüsselung ist vollkommen entkoppelt und wird ausschließlich über die Manifest-Modellierung gesteuert (KeySlotMapping).
- Die Anwendungssoftware interagiert rein mit Klartextdaten über
- Fehler- und Determinismusbehandlung:
- Schlägt
open(),ProcessBlock()oderwrite()fehl (z. B. Speicher voll, Krypto-Schlüssel im Slot ungültig/gesperrt, I/O-Fehler), propagiertSyncToStorage()einen entsprechendenara::core::Result<void>-Fehlercode (ara::per::PerErrc). Die Applikation muss diesen Rückgabewert zwingend auswerten, um Datenverlust zu detektieren.
- Schlägt
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.