AUTOSAR_AP_EXP_SWArchitecture
FIG-a8fa6e1339537fa9
501 × 457 px
1 Release(s)
Figure 9.53: Interfaces required by Remote Persistency
SHA-256 Inhalts-Fingerabdruck:
a8fa6e1339537fa9abb7e989c609b20a5779a32fa118eb4a83e03097b885b205
✦
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 / Schnittstellendiagramm (AUTOSAR Adaptive Platform Architecture Model).
- Architektur-Kontext: AUTOSAR Adaptive Platform (Release R25-11), Spezifikation
AUTOSAR_AP_EXP_SWArchitecture. - Funktionaler Zweck: Modellierung der Schnittstellenbeziehungen zwischen dem daemon-basierten Funktionscluster Remote Persistency und dem Basis-Funktionscluster Persistency (
ara::per). Das Diagramm spezifiziert die API-Menge, über welche der Remote-Persistency-Daemon auf lokale Key-Value-Storage-Instanzen zugreift, um persistente Daten netzwerkweit bereitzustellen, zu spiegeln oder abzugleichen.
2. Komponenten, Entitäten & Schnittstellen
Entitäten & Funktionscluster
«aapFunctionalCluster» Remote Persistency:- Ausprägung:
daemon-based(wird als autonomer Hintergrund-Prozess/Daemon im Adaptive-Betriebssystem ausgeführt). - Rolle: Konsument (
client) der Persistency-Schnittstellen.
- Ausprägung:
«aapFunctionalCluster» Persistency:- Basis-Cluster (
ara::per). - Rolle: Bereitsteller (
provider/Implementierung) der Persistenzdienste und physischen Speicherabstraktionen.
- Basis-Cluster (
Schnittstellen (Interfaces) & Methoden
«aapAPI,aapNativeInterface»(Global/Static Management-API vonara::per):- Realisiert freie Funktionen bzw. statische Einstiegspunkte des Namensraums
ara::per:+ GetCurrentKeyValueStorageSize(): Ermittelt den aktuellen Speicherverbrauch des Storages.+ OpenKeyValueStorage(): KeyValueStorage: Factory-Methode; öffnet einen konfigurierten Speicherbereich und liefert ein Handle/Referenz auf dasKeyValueStorage-Objekt zurück.+ RecoverKeyValueStorage(): Stellt einen inkonsistenten oder korrumpierten Speicherbereich aus Redundanz-/Backup-Daten wieder her.+ ResetKeyValueStorage(): Setzt den gesamten Key-Value-Storage auf den Auslieferungs-/Init-Zustand (Init-Werte aus dem Manifest) zurück.
- Realisiert freie Funktionen bzw. statische Einstiegspunkte des Namensraums
«aapAPI,aapPortInterface» KeyValueStorage:- Objektorientiertes Interface für granularen Datenzugriff auf Einzelschlüssel-Ebene:
- Lese-/Abfrageoperationen:
GetAllKeys(),GetCurrentValueSize(),GetValue(),KeyExists(). - Schreib-/Modifikationsoperationen:
SetValue(),RemoveKey(),RemoveAllKeys(). - Transaktions- & Konsistenzsteuerung:
SyncToStorage(): Flusht transiente/gepufferte Änderungen synchron auf das nichtflüchtige Speichermedium.DiscardPendingChanges(): Verwirft noch nicht persistierte Modifikationen im Cache.
- Wiederherstellungsoperationen:
RecoverKey(),ResetKey().
- Lese-/Abfrageoperationen:
- Objektorientiertes Interface für granularen Datenzugriff auf Einzelschlüssel-Ebene:
Beziehungen & Abhängigkeiten
- Interface Realization (
«realize», gestrichelte Pfeile mit geschlossener, nicht ausgefüllter Dreiecksspitze):Persistencyimplementiert beide Schnittstellen (KeyValueStorageund das native Management-Interface). - Usage Dependency (
«use», gestrichelte offene Pfeile):Remote Persistencynutzt beide Schnittstellen zur Interaktion mit dem lokalen Persistenz-Subsystem.
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierung & Handle-Akquise:
- Der
Remote Persistency-Daemon ruftOpenKeyValueStorage()über dasaapNativeInterfaceauf, um Zugriff auf die konfigurierte Instanz zu erhalten. - Schlägt das Öffnen aufgrund von Integritätsfehlern fehl, triggert der Daemon
RecoverKeyValueStorage()oder meldet Persistenzfehler an das Health Management (ara::phm) / Diagnostic Management (ara::diag).
- Der
- Datenaustausch & Remote-Synchronisation:
- Leseanfragen aus dem Netzwerk (z. B. via
ara::com) führen zur Prüfung viaKeyExists()und anschließendem Auslesen überGetValue(). - Eingehende Remote-Aktualisierungen rufen
SetValue()auf.
- Leseanfragen aus dem Netzwerk (z. B. via
- Persistierung & Transaktionsgrenzen:
- Änderungen liegen zunächst im RAM-Puffer von
ara::per. - Der Daemon initiiert explizit
SyncToStorage(), um NVRAM/Flash-Write-Cycles zu bündeln und Atomizität sicherzustellen. - Bei Abbruchbedingungen oder Übertragungsfehlern sichert
DiscardPendingChanges()den vorherigen konsistenten Zustand.
- Änderungen liegen zunächst im RAM-Puffer von
4. Normative Relevanz & Entwickler-Hinweise
- Trennung von nativer C++-API und Port-Interface:
- Das Management-Interface ist als
aapNativeInterfacetypisiert und repräsentiert direkte C++-Header-Bindings (ara::per::*), die prozesslokal gelinkt werden. KeyValueStorageist als«aapPortInterface»modelliert, was eine modellierte Bindung über Software-Ports (Service-Orientierung) ermöglicht.
- Das Management-Interface ist als
- Kein direkter Treiberzugriff:
Remote Persistencygreift unter keinen Umständen direkt auf Block-Devices, Dateisysteme oder Flash-Treiber zu; sämtliche I/O-Operationen müssen ausnahmslos über dieara::per-Abstraktion geschleust werden.
- Lebenszyklus- & Thread-Safety-Anforderungen:
- Da
Remote Persistencyals Daemon parallel zu lokalen Applikationsprozessen laufen kann, muss der Stack-Entwickler für das zugrundeliegendeara::per-Backend prozessübergreifende Synchronisationsmechanismen (File-Locks, Shared Memory Semaphoren oder IPC-Proxys) sicherstellen, falls dieselbeKeyValueStorage-Instanz von mehreren Prozessen parallel geöffnet wird.
- Da
- Ausfallsicherheit (Redundancy & Storage Integrity):
- Entwickler von Remote-Persistenz-Adaptern müssen Fehlerzustände über die
ara::core::Result<T>-Rückgaben abfangen und vor Destruktion offener Handles stetsSyncToStorage()oderDiscardPendingChanges()deterministisch aufrufen.
- Entwickler von Remote-Persistenz-Adaptern müssen Fehlerzustände über die
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.