AUTOSAR_AP_SWS_Persistency
FIG-8ecc059689d60e0a
758 × 992 px
1 Release(s)
Figure 10.5: Persistency Common Configuration
SHA-256 Inhalts-Fingerabdruck:
8ecc059689d60e0ad2ee7bcad65aedc529722274247e84cad0f47c20c7920405
✦
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: AUTOSAR Metamodell-Klassendiagramm / Konfigurationsmodell auf Basis des Parameter-Konfigurationsmetamodells der Adaptive Platform (
Apmc– Adaptive Platform Module Configuration). - Technischer Zweck: Spezifikation der gemeinsamen Konfigurationsstruktur (
PersistencyCommon) für persistente Speicherinstanzen im Functional Cluster Persistency (ara::per). - Funktionale Einordnung: Dient als zentraler Konfigurationsknoten für beide persistente Speicherparadigmen der Adaptive Platform:
- Key-Value-Datenbanken (
PersistencyKeyValueStorage) - Dateibasierte Persistenz (
PersistencyFileStorage) Bündelt generische Metadaten zu Quotas, Update-Verhalten, physischer Pfadabbildung, Integrität/Verschlüsselung sowie zur Port- bzw. Plattform-Cluster-Autorisierung.
- Key-Value-Datenbanken (
2. Komponenten, Entitäten & Schnittstellen
Übergeordnete Speicher-Container
PersistencyKeyValueStorage(ApmcParamConfContainerDef, Multiplizität0..*): Konfigurationscontainer für Key-Value-Stores.PersistencyFileStorage(ApmcParamConfContainerDef, Multiplizität0..*): Konfigurationscontainer für Datei-Stores.- Beziehung: Beide aggregieren über die Kompositionsrolle
+containerzwingend genau eine Instanz (1..1) vonPersistencyCommon.
Zentraler Container: PersistencyCommon (ApmcParamConfContainerDef, Multiplizität 1..1)
Definiert die gemeinsamen Parameter und Subcontainer:
- Größenbegrenzung (Storage Quota):
MinimumSustainedSize(ApmcIntegerParamDef,1..1): Mindestens garantierter/zu reservierender Speicherplatz in Bytes. Wertebereich:[0, 18446744073709551615](2^64-1, uint64).MaximumAllowedSize(ApmcIntegerParamDef,1..1): Harte Speicherobergrenze (Quota) in Bytes. Wertebereich:[0, 18446744073709551615].
- Lebenszyklus & Versionierung:
Version(ApmcStrongRevisionLabelParamDef,1..1): Semantisches Revisionslabel des persistenten Speicherinhalts zur Konsistenzprüfung über Software-Updates hinweg.ContractVersion(ApmcStrongRevisionLabelParamDef,0..1): Revisionslabel des Schnittstellen- bzw. Integrationsvertrags.UpdateStrategy(ApmcEnumerationParamDef,1..1): Definiert das Verhalten des Persistency-Stacks bei Revisionsänderungen der Software (Version).DELETE(ApmcEnumerationLiteralDef): Löschen und Neuinitialisieren des Speichers bei Versionsdiskrepanz.KEEP_EXISTING(ApmcEnumerationLiteralDef): Beibehalten bestehender Daten (erfordert applikationsseitige Migrationslogik).
- Zugriffskonfiguration & Binding (XOR-Bedingungen):
FunctionalClusterPersistencyAccess(ApmcEnumerationParamDef,0..1): Zugriffskonfiguration für interne AUTOSAR Adaptive Functional Clusters (z. B. UCM, State Management).- Literale:
READ,WRITE,READ_WRITE.
- Literale:
PortPrototypeInstanceRef(ApmcUriInstanceReferenceDef,0..1): Bindung des Speichers an den Port-Prototyp einer Adaptive Application.destinationType = PORT-PROTOTYPEdestinationContext = ROOT-SW-COMPONENT-PROTOTYPE SW-COMPONENT-PROTOTYPE
- Bedingung (XOR 1):
FunctionalClusterPersistencyAccessundPortPrototypeInstanceRefschließen sich gegenseitig aus (XOR). Ein Storage dient entweder exklusiv einem System-Cluster oder einer Applikations-SWC via Port. - Bedingung (XOR 2): Kopplung/Abhängigkeit zwischen
PortPrototypeInstanceRefundContractVersion.
- Dateisystem, Sicherheit & Redundanz (Subcontainer):
UriCollection(ApmcParamConfContainerDef,0..1):- Aggregiert
Uri(ApmcStringParamDef,0..*): Konkrete Pfad- bzw. Resource-Identifikatoren im zugrundeliegenden POSIX-Dateisystem.
- Aggregiert
PersistencyCryptoKeySlotProps(ApmcParamConfContainerDef,0..1): Referenz auf Crypto KeySlots (ara::crypto) für transparente Verschlüsselung und Integritätsschutz.PersistencyRedundancyHandlingCollection(ApmcParamConfContainerDef,0..1): Konfiguration von Redundanzmechanismen (z. B. M-out-of-N-Kopien, CRC-Prüfsummen).
3. Dynamisches Verhalten & Sequenzablauf
Als statisches APMC-Metamodell modelliert das Diagramm Konfigurationsstrukturen; die Elemente steuern jedoch folgende deterministische Laufzeit- und Initialisierungssequenzen im ara::per-Stack:
- Storage-Initialisierung (
OpenKeyValueStorage/OpenFileStorage):- Auflösung des logischen Port-Bezeichners (
InstanceSpecifier) zur Entwurfs-/Deployment-Zeit überPortPrototypeInstanceRef. - Bindung an den durch
UriCollection::Uriadressierten POSIX-Speicherpfad. - Prüfung der Zugriffsrechte gemäß
FunctionalClusterPersistencyAccessbzw. PortInterface-Rolle (Provided/Required Port).
- Auflösung des logischen Port-Bezeichners (
- Update- & Deploy-Sequenz (UCM-Interaktion):
- Beim Start der Applikation vergleicht
ara::perdie im Manifest hinterlegteVersionmit dem im Speicher abgelegten Revisions-Header. - Fall
Versionungleich:- Wenn
UpdateStrategy == DELETE: Atomares Löschen aller Keys/Dateien, Rücksetzen auf Initialzustand. - Wenn
UpdateStrategy == KEEP_EXISTING: Öffnen des Speichers im vorgefundenen Zustand; Übergabe der Migrationsverantwortung an die Applikationslogik.
- Wenn
- Beim Start der Applikation vergleicht
- Runtime-Quota-Enforcement:
- Jeder Schreib- bzw. Allokationsversuch (
SetValue, Datei-Schreiboperationen) durchläuft eine Verifikationsstufe gegenMaximumAllowedSize. - Bei Überschreitung: Synchrone Rückgabe des Fehlers
ara::per::PerErrc::kPhysicalStorageFailure/ Quota-Exceeded ohne Datenkorrumpierung. MinimumSustainedSizewird vom Plattform-Integrator bei der Partitionsdimensionierung statisch reserviert.
- Jeder Schreib- bzw. Allokationsversuch (
4. Normative Relevanz & Entwickler-Hinweise
- Architektur- und Rollentrennung:
- Entwickler müssen im Manifest zwingend festlegen, ob der Speicher für eine Standard-SWC bestimmt ist (
PortPrototypeInstanceRef) oder für Infrastruktur-Cluster (FunctionalClusterPersistencyAccess). Eine gemischte Nutzung ist metamodellseitig über die XOR-Bedingung invalid.
- Entwickler müssen im Manifest zwingend festlegen, ob der Speicher für eine Standard-SWC bestimmt ist (
- Speicher-Dimensionierung:
MinimumSustainedSizeundMaximumAllowedSizesind als 64-Bit-Ganzzahlen (uint64_t) ausgelegt. Die Plattform-Integration muss sicherstellen, dass die durchMinimumSustainedSizegeforderte Mindestkapazität auf dem Zielmedium (Flash/eMMC/NVMe) permanent garantiert ist (Schutz vor Speicherverdrängung).
- Risiko bei
UpdateStrategy = DELETE:- Bei aktivierter
DELETE-Strategie führt jedes Inkrement vonVersionbeim Update über den Update and Configuration Management Cluster (UCM) zur vollständigen, irreversiblen Löschung der Persistent-Daten. Für applikationskritische Bestandsdaten (z. B. Kalibrierdaten, Fahrthistorie) ist zwingendKEEP_EXISTINGzu wählen.
- Bei aktivierter
- Kryptographie und Integrität:
- Bei Einsatz von
PersistencyCryptoKeySlotPropsmuss sichergestellt sein, dass der referenzierte KeySlot im Crypto-Manifest korrekt deployed und der zugrundeliegende Crypto-Treiber vor der ersten Persistency-Initialisierung betriebsbereit ist.
- Bei Einsatz von