AUTOSAR_AP_SWS_Persistency
FIG-9db20c7ef81a3027
820 × 810 px
1 Release(s)
Figure 10.4: Persistency Key Value Storage Configuration
SHA-256 Inhalts-Fingerabdruck:
9db20c7ef81a30278793a2fef3577aa866155c73aebae7cef9038abae50a91ff
✦
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: Metamodell-Ausschnitt der Parameter-Konfiguration (AUTOSAR Adaptive Platform Parameter Configuration Metamodel, APMC) als UML-Klassendiagramm.
- Technischer Zweck: Formale Definition des Konfigurationsschemas für Key-Value-Storage-Instanzen (KVS) innerhalb des Funktionsclusters Persistency (
ara::per). - Architektur-Einordnung: Brückenelement zwischen SWC-Design (
PersistencyDataRequiredComSpec) und der physischen Maschinen- bzw. Deployment-Konfiguration. Es definiert die Speicherabbildung, Datentypen, kryptografische Schlüsselslots, Initialwerte und Lifecycle-Update-Strategien auf Maschinenebene.
2. Komponenten, Entitäten & Schnittstellen
Metaklassen & Container-Hierarchie (APMC)
Persistency(ApmcFunctionalClusterDef) [0..*]: Wurzelcontainer für die Konfiguration des funktionalen Clusters Persistency.PersistencyKeyValueStorageCollection(ApmcParamConfContainerDef) [0..1]: Bündelt alle KVS-Instanzen einer Deployment-Einheit.PersistencyKeyValueStorage(ApmcParamConfContainerDef) [0..*]: Repräsentiert einen logischen Key-Value-Speicher.PersistencyCommon(ApmcParamConfContainerDef) [1..1]: Spezifiziert übergeordnete Storage-Eigenschaften (z. B. Redundanz, Synchronisationsverhalten, Backing-Store-Pfade).PersistencyKeyValuePairCollection(ApmcParamConfContainerDef) [0..1]: Gruppiert die persistenten Schlüssel-Wert-Paare eines Speichers.PersistencyKeyValuePair(ApmcParamConfContainerDef) [0..*]: Konfiguration eines atomaren Schlüssel-Wert-Eintrags.
Kindelemente & Parameter von PersistencyKeyValuePair
PersistencyCryptoKeySlotProps(ApmcParamConfContainerDef) [0..1]: Optionale Bindung anara::cryptozur hardware-/softwarebasierten Authentifizierung oder Verschlüsselung des Eintrags.InitValueRef(ApmcForeignReferenceDef) [1..1]: Referenziert einARElementvom TypConstantSpecification. Definiert den Default-Wert bei Erstinbetriebnahme oder Reset.ValueDataTypeRef(ApmcForeignReferenceDef) [1..1]: Referenziert den Datentyp im Software-Design (AbstractImplementationDataType, annotiert mit«AtpBlueprint»,«AtpBlueprintable»,AutosarDataType).ElementUpdateStrategy(ApmcEnumerationParamDef) [1..1]: Bestimmt das Verhalten während eines Software-Updates. Aggregiert drei Literale (ApmcEnumerationLiteralDef):KEEP_EXISTING: Bestehender Wert im NVM bleibt erhalten; Initialwert wird ignoriert.DELETE: Schlüssel und Wert werden beim Update aus dem Speicher entfernt.OVERWRITE: Persistierter Wert wird zwingend durch den Wert ausInitValueRefüberschrieben.
3. Dynamisches Verhalten & Sequenzablauf
Als statisches Konfigurationsmetamodell besitzt das Diagramm keinen direkten Laufzeit-Callstack, steuert aber zwei deterministische Abläufe:
- Konfigurations- und Generierungszeitpunkt (Design-to-Machine Binding):
- Der Zielwert der
InitValueRefkann ursprünglich ausPersistencyDataRequiredComSpec.initValueabgeleitet werden. - Durch die Entkopplung als eigenständige
ConstantSpecificationin der Machine Configuration kann der Initialwert maschinenspezifisch überschrieben werden, ohne das Software-Component-Design zu modifizieren.
- Der Zielwert der
- Lifecycle- & Update-Verhalten (UCM / Start-up Phase):
- Boot/Erststart: Fehlt der Key im persistenten Storage, alloziiert die Persistency-Laufzeit den Key und persistiert den Inhalt von
InitValueRefgemäßValueDataTypeRef. - SW-Paket-Update (UCM): Der Update-Manager bzw. die Persistency-Initialisierungsroutine evaluiert
ElementUpdateStrategy:- Bei
OVERWRITEerfolgt ein Write-Through mit dem neuenConstantSpecification-Wert. - Bei
DELETEwird der Record aus der Key-Tabelle bereinigt. - Bei
KEEP_EXISTINGerfolgt keine Mutation des NVM-Zustands.
- Bei
- Boot/Erststart: Fehlt der Key im persistenten Storage, alloziiert die Persistency-Laufzeit den Key und persistiert den Inhalt von
4. Normative Relevanz & Entwickler-Hinweise
- API-Typkonsistenz (
ara::per):ValueDataTypeRefbindet die Konfiguration strikt an den C++-Typ (AbstractImplementationDataType).- Applikativer Zugriff über
kvs.GetValue<T>(key)bzw.kvs.SetValue<T>(key, value)erfordert exakte Typrübereinstimmung mitValueDataTypeRef, andernfalls resultiert dies in Laufzeitfehlern (z. B.ara::per::PerErrc::kDataTypeMismatchbzw. Deserialisierungsabbruch).
- Entkopplung Machine- vs. Design-Ebene:
- Der Hinweisblock dokumentiert normativ, dass
InitValueRefnicht direkt auf das Component-Design verweisen muss. Kalibrier- oder länderspezifische Defaults können auf Integratorebene via Machine Configuration angepasst werden.
- Der Hinweisblock dokumentiert normativ, dass
- Risiko von Datenverlust bei SW-Updates:
- Die fehlerhafte Parametrierung von
ElementUpdateStrategy(z. B.OVERWRITEstattKEEP_EXISTINGfür persistente Benutzerdaten oder Lernwerte) führt zur irreversiblen Überschreibung von Felddaten beim Over-the-Air-Update (OTA).
- Die fehlerhafte Parametrierung von
- Kryptografische Absicherung:
- Fehlt
PersistencyCryptoKeySlotProps(upperMultiplicity = 1, optional), wird das Schlüssel-Wert-Paar im Klartext ohne Signatur/Verschlüsselung abgelegt. Für sicherheitskritische Daten (z. B. Diagnosesperren, Zertifikate) muss der Slot zwingend konfiguriert werden.
- Fehlt
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.