DEENESPTFRRUARHIKOZHNL
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 via Event.Send() und Event.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: Generierte ara::com-Dienstanbieter-Schnittstelle.
    • Proxy: Generierte ara::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

  1. 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 Skeleton in die Middleware controlled Event Buffers übertragen (via Kernel-Syscall, IPC-Message-Queue, Unix Domain Socket oder Direktschreiben in Shared Memory).
  2. 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).
  3. Cache-Aktualisierung (Event.Update()):
    • Die Consumer-Applikation ruft auf der Event-Instanz des Proxies Event.Update() auf (zyklisch gepollt oder im Kontext eines zuvor registrierten SetReceiveHandler-Callbacks).
    • Die Methode holt neue Samples aus den Middleware controlled Event Buffers ab und schreibt sie in den prozesslokalen Local Event Cache.
  4. 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.

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 den Local Event Cache des 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 (sampleLimit bzw. Konfiguration im Service Deployment) muss so dimensioniert sein, dass zwischen zwei Event.Update()-Aufrufen keine Samples verloren gehen (Drop Oldest- vs. Reject-Semantik).
    • Zeiger auf Daten (SamplePtr) sperren Pufferplätze im Local Event Cache, bis sie zerstört bzw. freigegeben werden; langlebige Referenzen blockieren den Cache für nachfolgende Update()-Operationen.

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R17-10_R1.2.0 → R18-03_R1.4.0 keine inhaltliche Änderung Nachfolger: FIG-fa6d4b1cafa2f71a

Keine inhaltlichen Änderungen erkennbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

ara::com App Proxy | Local Event | Cache | ECU with AP product | ara::com App Proxy | Local Event | Cache | ara::com App Skeleton | Middleware | controlled Event Buffers | Proxy | Proxy | Skeleton | Kernel Space? Shared Mem? IPC Demon Space? | Event.Send() | Event.Update() | Event.Update()

Vorkommen in AUTOSAR-Releases (2)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R17-03_R1.1.0 AUTOSAR_EXP_ARAComAPI S. 36 6.6 Figure 6.6: Event Buffering Approaches
R17-10_R1.2.0 AUTOSAR_EXP_ARAComAPI S. 39 6.9 Figure 6.9: Event Buffering Approaches