DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_SWS_RemotePersistency FIG-72ea216c5a2bc87a 671 × 302 px 1 Release(s)

Figure 9.1: Service Interface of the Remote Persistency

SHA-256 Inhalts-Fingerabdruck: 72ea216c5a2bc87aa1003748904ea68f6c47cf2adb60ea9c46626061cb7166ec
✦ 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-Komponenten- und Schnittstellendiagramm (Service Interface Model nach AUTOSAR Adaptive Platform).
  • Architektur-Kontext: Spezifiziert das Service Interface für die Remote-Persistenz (AUTOSAR_AP_SWS_RemotePersistency, Anforderung RS_PER_00022). Es definiert den standardisierten, dienstbasierten Remote-Zugriff (via ara::com über IPC oder Ethernet/SOME/IP) auf ausgelagerte, zentrale Key-Value-Speicher für Adaptive Applications.

2. Komponenten, Entitäten & Schnittstellen

  • «service» RemotePersistency: Service-Komponente (Server-Instanz), die die Funktionalität eines persistenten Remote-Speichers kapselt und über die Middleware bereitstellt.
  • RemotePersistencyPort_{port}: Provided Port (P-Port) der Service-Komponente; parametrisiert nach dem konfigurierten Port-Namen {port}.
  • «interface» RemotePersistency_{storage}: Typisiertes Service Interface, parametrisiert nach dem logischen Speicherbezeichner {storage}. Realisiert über den P-Port via Lollipop-Notationsbindung (Interface Realization).
    • Data Element (Field / Event):
      • + DataElement_{entry}: ElementDataType_{type}: Direkt adressierbares, typisiertes Feldelement für strukturierte persistente Datenpunkte.
    • Methoden (RPC Operations):
      • + GetAllKeys(): Vector<String>: Liest alle im Zielspeicher vorhandenen Schlüsselbezeichner aus.
      • + GetValue_{type}(String): ElementDataType_{type}: Typisierte Leseoperation für den Wert eines übergebenen Schlüssels.
      • + KeyExists(String): bool: Prüft die Existenz eines Schlüssels ohne Datenübertragung der Payload.
      • + RemoveAllKeys(): void: Löscht alle Schlüssel-Wert-Paare im adressierten Speicherbereich {storage}.
      • + RemoveKey(String): void: Entfernt das angegebene Schlüssel-Wert-Paar.
      • + SetValue_{type}(String, ElementDataType_{type}): void: Typisierte Schreib-/Aktualisierungsoperation für einen Schlüssel.
  • «dataType» ElementDataType_{type}: Im AUTOSAR-Modell typisiertes Datenmodell-Element; fungiert als Payload-Typ für Rückgabe- und Übergabeparameter der typisierten Zugriffsmethoden sowie des Feldelements.

3. Dynamisches Verhalten & Sequenzablauf (falls zutreffend)

  • Kommunikationsmuster: Request-Response-Methodenaufrufe und Field-Zugriffe über ara::com.
    • Client-seitige Abbildung über Proxy-Methoden mit asynchronen Rückgabewerten (ara::core::Future<...>).
  • Sequenzpfade:
    1. Metadaten- & Integritätsprüfung: Vor Lese-/Schreibzugriffen erfolgt optional KeyExists(key) zur Payload-Vermeidung oder GetAllKeys() zur Validierung des Schemas.
    2. Lese-/Schreibzyklus: SetValue_{type}(key, value) überträgt serialisierte Daten an den Remote-Server; GetValue_{type}(key) deserialisiert das Ergebnis.
    3. Bereinigung: RemoveKey(key) oder atomares Rücksetzen via RemoveAllKeys().
  • Fehlerbehandlung: Methoden liefern bei Verbindungsabbrüchen, ungültigen Schlüsseln oder Speicherfehlern typisierte Fehlercodes (ara::core::ErrorCode, z. B. PerErrc::kKeyNotFound oder PerErrc::kPhysicalStorageFailure).

4. Normative Relevanz & Entwickler-Hinweise

  • Template-Instanziierung & Codegenerierung: Die Platzhalter {storage}, {port}, {entry} und {type} zeigen, dass das Service Interface generativ abgeleitet wird:
    • Für jeden in ARXML konfigurierten logischen Speicherbereich entsteht ein diskretes Service Interface RemotePersistency_<StorageName>.
    • Für jeden unterstützten Datentyp werden typspezifische Getter/Setter (GetValue_UInt32, SetValue_UInt32 etc.) generiert, um typsichere Marshalling-Routinen in SOME/IP zu gewährleisten.
  • API-Vertrag & Performance:
    • GetAllKeys() erzeugt bei großen Key-Value-Stores erhebliche PDU-Größen (Vector<String>); Serialisierungs- und Fragmentierungs-Overhead über Netzwerk-Links (SOME/IP-TP) einplanen.
    • Operationen wie RemoveAllKeys() müssen im Server transaktionssicher implementiert sein, um Inkonsistenzen bei Spannungsabfall abzusichern.
  • Einsatzbereich: Dient als standardisierter Backend-Transportmechanismus für ara::per-Clients, wenn persistente Daten nicht lokal auf Flash/eMMC der eigenen ECU, sondern auf einem zentralen Storage-Server/HPC persistiert werden müssen.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Erkannte Spezifikationsbelege & Anforderungen auf dieser Seite

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«interface» RemotePersistency_{storage} | + DataElement_{entry}: ElementDataType_{type} | + GetAllKeys(): Vector<String> + GetValue_{type}(String): ElementDataType_{type} + KeyExists(String): bool + RemoveAllKeys(): void + RemoveKey(String): void + SetValue_{type}(String, ElementDataType_{type}): void «dataType» ElementDataType_{type} | «service» RemotePersistency | RemotePersistencyPort_{port}

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R25-11 AUTOSAR_AP_SWS_RemotePersistency S. 21 9.1 Figure 9.1: Service Interface of the Remote Persistency