AUTOSAR_EXP_ARAComAPI
FIG-6869f3849f360bfd
932 × 531 px
2 Release(s)
Figure 6.9: Event Buffering Approaches
SHA-256 Inhalts-Fingerabdruck:
6869f3849f360bfd56047648a54f5dc47bee76a1ec1f65f0e11a49278464c9d5
✦
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: Informelles Architektur- und Datenflussdiagramm / Laufzeit-Topologiemodell (Inter-Process Communication, IPC).
- Technischer Zweck: Visualisierung von Event-Pufferungsstrategien (
Event Buffering Approaches) für die lokale Intra-ECU-Kommunikation in der AUTOSAR Adaptive Platform (ara::com). - Funktionale Einordnung: Dargestellt ist das Entkopplungsmodell zwischen einem Service-Provider (
Skeleton) und mehreren Service-Konsumenten (Proxy) auf einem gemeinsamen Steuergerät (ECU with AP product). Es adressiert die architektonische Fragestellung der Pufferallokation (Kernel-Space, Shared Memory oder IPC-Dämon) und die zweistufige Event-Verarbeitung viaEvent.Send()undEvent.Update().
2. Komponenten, Entitäten & Schnittstellen
- Prozess- & Laufzeitdomänen:
ECU with AP product: Physisches/virtuelles Steuergerät mit vollständigem Adaptive-Platform-Laufzeitstack.ara::com App Skeleton: Eigener OS-Prozessraum der Provider-Applikation; kapselt die Instanz der Service-Implementierung.ara::com App Proxy(Kardinalität 1:n, dargestellt 1:2): Unabhängige OS-Prozessräume der Consumer-Applikationen.Kernel Space? Shared Mem? IPC Demon Space?: Zentraler Puffer-/Vermittlungsbereich der Middleware außerhalb des Adressraums der Applikationsprozesse (mögliche Implementierungsvarianten des Plattform-Vendors).
- Komponenten & Puffer:
Skeleton: Generierteara::com-Dienstanbieter-Schnittstelle.Proxy: Generierteara::com-Dienstkonsumenten-Schnittstelle.Middleware controlled Event Buffers: Zentral verwalteter Pufferbereich für Event-Samples im Systemkontext.Local Event Cache: Prozesslokaler Ringspeicher/Cache innerhalb der Proxy-Laufzeitumgebung zur Entkopplung von Applikation und IPC-Schicht.
- Schnittstellen & Methoden:
Event.Send(): Provider-seitiger API-Aufruf (ara::com::skeleton) zur Weitergabe neuer Event-Payloads an die Middleware.Event.Update(): Consumer-seitiger API-Aufruf (ara::com::proxy) zur Synchronisation des prozesslokalen Event-Caches mit den Middleware-Puffern.
3. Dynamisches Verhalten & Sequenzablauf
- Event-Erzeugung (
Event.Send()):- Die Provider-Applikation ruft synchron auf der Event-Instanz des Skeletons
Event.Send()auf. - Die Nutzdaten werden aus dem Adressraum der
App Skeletonin dieMiddleware controlled Event Buffersübertragen (via Kernel-Syscall, IPC-Message-Queue, Unix Domain Socket oder Direktschreiben in Shared Memory).
- Die Provider-Applikation ruft synchron auf der Event-Instanz des Skeletons
- Middleware-Pufferung & Verteilung:
- Die Middleware nimmt das Sample entgegen, ordnet es den Pufferplätzen zu und signalisiert abonnierenden Proxies die Verfügbarkeit neuer Daten (z. B. via Event-FD, POSIX-Signal oder Notification-Thread).
- Cache-Aktualisierung (
Event.Update()):- Die Consumer-Applikation ruft auf der Event-Instanz des Proxies
Event.Update()auf (zyklisch gepollt oder im Kontext eines zuvor registriertenSetReceiveHandler-Callbacks). - Die Methode holt neue Samples aus den
Middleware controlled Event Buffersab und schreibt sie in den prozesslokalenLocal Event Cache.
- Die Consumer-Applikation ruft auf der Event-Instanz des Proxies
- Applikatorischer Datenzugriff:
- Die Proxy-Applikation greift anschließend deterministisch und ohne IPC-Blockade über Zeiger (z. B.
ara::com::SamplePtr) auf die lokal im Cache liegenden Samples zu.
- Die Proxy-Applikation greift anschließend deterministisch und ohne IPC-Blockade über Zeiger (z. B.
4. Normative Relevanz & Entwickler-Hinweise
- Zweistufiger API-Vertrag: Das Eintreffen eines Events über die Middleware aktualisiert nicht implizit die Anwendungsdaten. Erst der explizite Aufruf von
Event.Update()commitet anstehende Samples in denLocal Event Cachedes Proxies. - Speicher- und Kopierstrategien (Stack-Implementierer):
- Shared Memory: Ermöglicht Zero-Copy- bzw. Single-Copy-Semantik; erfordert jedoch strenge Zugriffssynchronisation (Lock-free Ringbuffer) und Speicherschutzmaßnahmen.
- IPC-Dämon / Sockets: Erfordert Prozess-Kontextwechsel und mehrfaches Kopieren/Serialisieren der Nutzdaten.
- Dimensionierung & Pufferüberläufe (Applikations-Entwickler):
- Die maximale Tiefe des
Local Event Cache(sampleLimitbzw. Konfiguration im Service Deployment) muss so dimensioniert sein, dass zwischen zweiEvent.Update()-Aufrufen keine Samples verloren gehen (Drop Oldest- vs.Reject-Semantik). - Zeiger auf Daten (
SamplePtr) sperren Pufferplätze imLocal Event Cache, bis sie zerstört bzw. freigegeben werden; langlebige Referenzen blockieren den Cache für nachfolgendeUpdate()-Operationen.
- Die maximale Tiefe des
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.