AUTOSAR_EXP_SWArchitecture
FIG-139dc1cd4b320f69
364 × 426 px
1 Release(s)
Figure 9.39: Users of the FileStorage interfaces
SHA-256 Inhalts-Fingerabdruck:
139dc1cd4b320f693c14a72511deda7df1c8331e6eb032c4a9bc0a2364be54a8
✦
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
- Diagrammtyp: UML-Strukturdiagramm / Komponenten- und Schnittstellendiagramm (AUTOSAR Adaptive Platform, SWS-spezifische Modellierungsnotation).
- Architektur-Kontext: Veranschaulicht die architektonische Entkopplung und Standardisierung der dateibasierten Persistenz (
ara::per::FileStorage) innerhalb der AUTOSAR Adaptive Platform (Release R21-11). Dargestellt ist die Bereitstellung des Port-Interfaces durch den Functional ClusterPersistency(PER) sowie dessen konsumierende Nutzung durch zentrale, plattforminterne System-Dämonen (Diagnostic Management[DM] undUpdate and Configuration Management[UCM]).
2. Komponenten, Entitäten & Schnittstellen
Entitäten & Functional Cluster
«aapFunctionalCluster» Persistency: Bereitstellende Plattform-Komponente (Library/Driver-Layer). Implementiert die physische Ablage, Integritätsprüfungen (CRC/Redundanz) und Zugriffssicherheit auf dem zugrundeliegenden POSIX-Dateisystem.«aapFunctionalCluster» Diagnostic Management(daemon-based): Dämon-basierter Systemdienst für Diagnoseprotokolle (UDS, DoIP), Fehlerspeicherverwaltung und Snapshot/Extended-Data-Records.«aapFunctionalCluster» Update and Configuration Management(daemon-based): Dämon-basierter Systemdienst für Software-Paket-Handling, A/B-Partition-Swapping, Rollback-Szenarien und Delta-Updates.
Schnittstellen & Ports
«aapAPI,aapPortInterface» Persistency::FileStorage: Port-Interface und C++-Klassenschnittstelle im Namespaceara::per. Kapselt dateibasierte CRUD-, Inspektions- und Wiederherstellungs-Operationen:- Metadaten & Status:
+ FileExists()+ GetAllFileNames()+ GetCurrentFileSize()+ GetFileInfo()
- Datenzugriff & Stream-Accessor:
+ OpenFileReadOnly(): ReadAccessor(liefert RAII-gekapselten Lese-Stream)+ OpenFileWriteOnly(): ReadWriteAccessor(liefert schreibenden Accessor)+ OpenFileReadWrite(): ReadWriteAccessor(liefert bidirektionalen Lese-/Schreib-Accessor)
- Lifecycle & Integrität:
+ DeleteFile()+ RecoverFile()(Wiederherstellung bei Korruption via redundante Kopien/CRCs)+ ResetFile()(Zurücksetzen auf den Auslieferungs-/Manifest-Zustand)
- Metadaten & Status:
- Stereotypen & Beziehungen:
- Realisierung (
--▷):Persistencyimplementiert das InterfacePersistency::FileStorage. - Verwendung (
«use», «aapRequiredPort»): SowohlDiagnostic Managementals auchUpdate and Configuration Managementinteragieren ausschließlich über typisierte Client-Ports (RPortPrototype) mit derFileStorage-Schnittstelle.
- Realisierung (
3. Dynamisches Verhalten & Sequenzablauf
Da es sich um ein statisches Schnittstellendiagramm handelt, bestimmt die Interface-Definition folgendes Laufzeit-Zugriffsmuster:
- Port-Lookup / Proxy-Erzeugung: Konsumenten (DM/UCM) öffnen den konfigurierten Speicherbereich über das Port-Binding mittels
ara::per::OpenFileStorage(instanceSpecifier). - Dateihandling & Stream-Zugriff:
- Existenz- und Größenprüfung via
FileExists()/GetFileInfo(). - Dateizugriff erfolgt nicht über rohe POSIX-File-Descriptors (
fd), sondern synchron über polymorphe Accessor-Klassen (ReadAccessor,ReadWriteAccessor). - Schreiboperationen werden über Puffer abgewickelt; die Persistierung auf dem Flash/Storage-Medium erfolgt erst durch Zerstörung des Accessors (RAII) oder expliziten Flush (
SyncToFile()).
- Existenz- und Größenprüfung via
- Integritäts- & Recovery-Pfade:
- Detektiert
Persistencyeinen Prüfsummen- oder M-out-of-N-Redundanzfehler beim Öffnen, initiiert der DämonRecoverFile(). - Bei irreparabler Beschädigung oder Factory-Reset-Anforderungen ruft der Konsument
ResetFile()auf, um die Datei aus dem initialen Deployment-Package wiederherzustellen.
- Detektiert
- Bereinigung: UCM nutzt
DeleteFile()nach erfolgreicher Aktivierung oder Verwerfen von temporären Update-Containern.
4. Normative Relevanz & Entwickler-Hinweise
- Architektur-Vorgabe (POSIX-Verbot): Direkte Systemaufrufe (
open(),read(),write(),std::fstream) auf Host-Betriebssystem-Ebene sind für Adaptive Applications und Functional Cluster unzulässig. Jeder persistente Dateizugriff muss port-basiert überara::pergeroutet werden, um Plattformunabhängigkeit, Sandbox-Isolation und Access-Control-Listen (ACLs/Security) zu gewährleisten. - Manifest-Modellierung (ARXML):
- Entwickler müssen für jede
FileStorage-Nutzung einPersistencyFileStorageInterface, ein entsprechendesPersistencyPortPrototypeund einPersistencyDeploymentanlegen. - In den Deployment-Deskriptoren sind Pfad-Mappings, maximale Quotas (
maximumAllowedSize), Redundanzstufen (z. B.CRC32,MOutOfN) und optionale Initial-Dateien (PersistencyFileElement) normativ festzulegen.
- Entwickler müssen für jede
- Fehlerbehandlung (
ara::core::Result<T>): Sämtliche Methoden liefern standardmäßigara::core::Result(Exceptions sind in der AUTOSAR Adaptive Core API optional bzw. per Guideline deaktiviert). Rückgabewerte müssen zwingend gegenara::per::PerErrc(z. B.kFileNotFound,kOutOfMemory,kPhysicalStorageFailure,kValidationFailed) geprüft werden. - Plattform-Spezifika für DM und UCM:
- UCM: Nutzt
FileStorageprimär für Staging-Areas von Software-Paketen, Rollback-Snapshots und Manifest-Validierungen. - DM: Speichert DTC-Historien, freeze frames und UDS-Konfigurationen ab. Erfordert deterministisches Schreibverhalten bei anstehendem Power-Down (
PrepareStorageShutdown).
- UCM: Nutzt
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.