AUTOSAR_AP_EXP_SWArchitecture
FIG-82040eee898a3005
828 × 625 px
1 Release(s)
Figure 11.8: Scenario: Send IP Stream
SHA-256 Inhalts-Fingerabdruck:
82040eee898a3005baac227161f8b25d7491f1f552cf0fb0dbc216dec2d4cef5
✦
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-2.0-Sequenzdiagramm mit kombinierten Fragmenten (
loop) und architektonischen Partitionen/Swimlanes (Client,Server). - Architektur-Kontext: AUTOSAR Adaptive Platform (AP), Functional Cluster Communication Management (
ara::com). - Technischer Zweck: Spezifikation des Lebenszyklus und Interaktionsmusters für Raw Data Streams (IP-basierter Rohdatenstrom) zwischen zwei Adaptive Applications. Das Diagramm demonstriert die Kapselung transportprotokollspezifischer Verbindungsphasen (hier exemplarisch TCP) hinter standardisierten
ara::com-Abstraktionsschnittstellen für Streaming-Szenarien (z. B. Kamera-/Sensordaten, Video-Streams oder Bulk-Transfers).
2. Komponenten, Entitäten & Schnittstellen
- Akteure & Lifelines:
Client: Adaptive Application: Anwendungsinstanz auf Client-Seite (Initiator von Verbindungsaufbau, Schreibzugriffen und Verbindungsabbau).:RawDataStreamClient: Plattformseitigeara::com-Laufzeitinstanz zur Handhabung der clientseitigen Socket-/Stream-Kommunikation.:RawDataStreamServer: Plattformseitigeara::com-Laufzeitinstanz zur Verwaltung des serverseitigen Listener- und Empfangs-Sockets.Server: Adaptive Application: Anwendungsinstanz auf Server-Seite (Empfänger des Datenstroms).
- Anwendungsschnittstellen (APIs):
Create(): Synchrone/konstruktive Instanziierung der Stream-Endpunkte.WaitForConnection(): Blockierendes bzw. synchronisierendes Warten der Server-Applikation auf einen eingehenden Verbindungsaufbau.Connect(): Clientseitige Verbindungsanforderung an den konfigurierten Remote-Endpunkt.WriteData(): Übergabe von Nutzdatenpuffern an den Ausgangsstrom.ReadData(): Abruf empfangener Byte-Puffer aus dem Eingangsstrom.Shutdown(): Geordnete Terminierung der Stream-Sitzung.
- Protokollebene & Stereotypen:
- Stereotyp
«aapInformative»: Kennzeichnet die plattforminternen, rein informativen Netzwerk-Frames unterhalb derara::com-API-Ebene (OS-Netzwerkstack / TCP-IP). - Netzwerkmeldungen:
SYN(),SYN-ACK(),ACK(),data(),FIN().
- Stereotyp
3. Dynamisches Verhalten & Sequenzablauf
Der Kommunikationsablauf gliedert sich in drei aufeinanderfolgende Phasen:
- Verbindungsaufbau (Connection Establishment):
- Server initialisiert
:RawDataStreamServerviaCreate()und blockiert/wartet überWaitForConnection(). - Client instanziiert
:RawDataStreamClientviaCreate()und ruftConnect()auf. - Transportpfad (
«aapInformative»): Das Subsystem führt den standardkonformen TCP-3-Way-Handshake aus:- Client → Server:
SYN() - Server → Client:
SYN-ACK() - Client → Server:
ACK()
- Client → Server:
- Nach erfolgreichem Handshake kehren sowohl
WaitForConnection()auf Serverseite als auchConnect()auf Clientseite erfolgreich zur jeweiligen Applikation zurück.
- Server initialisiert
- Datenübertragungsphase (
loop Write Data):- Wiederholte Datenübermittlung innerhalb des Loop-Fragments:
- Client ruft
WriteData()auf. - Transportebene übermittelt Nutzdatenpayload (
data(),«aapInformative»). - Server ruft
ReadData()auf und übernimmt die empfangenen Bytes in den Applikationsspeicher.
- Client ruft
- Ausführung erfolgt entkoppelt über Sende-/Empfangspuffer der Plattform bzw. des Betriebssystems.
- Wiederholte Datenübermittlung innerhalb des Loop-Fragments:
- Verbindungsabbau (Connection Teardown):
- Client initiiert die Schließung via
Shutdown(). - Transportpfad (
«aapInformative»): Standardisierter 4-Way-Teardown (TCP FIN/ACK-Handshake):- Client → Server:
FIN() - Server → Client:
ACK() - Server → Client:
FIN() - Client → Server:
ACK()
- Client → Server:
- Beide Stream-Objekte (
:RawDataStreamClient,:RawDataStreamServer) werden zerstört (terminierende Lebenslinien mitX).
- Client initiiert die Schließung via
4. Normative Relevanz & Entwickler-Hinweise
- Protokolltransparenz vs. Konfiguration: Die Applikationslogik verwendet identische APIs (
Create,WriteData,ReadData), unabhängig davon, ob im Deployment-Manifest TCP oder UDP konfiguriert ist.- TCP (wie dargestellt): Verbindungsaufbau (
SYN/ACK) und geordneter Shutdown (FIN/ACK) sind zwingend; Byte-Stream-Semantik erfordert applikatives Framing/Message-Delimiting, da TCP keine Nachrichtengrenzen wahrt. - UDP (laut Notiz): Verbindungsaufbau und Shutdown entfallen auf Netzwerkebene; die Aufrufe von
Connect()bzw.WaitForConnection()degenerieren zu lokalen Socket-/Bind-Operationen ohne Netzwerkverkehr.
- TCP (wie dargestellt): Verbindungsaufbau (
- Blockier- & Threading-Modell:
WaitForConnection()undReadData()sind in Echtzeitanwendungen zwingend gegen Deadlocks und Thread-Starvation abzusichern (z. B. durch asynchrone Futures (ara::core::Future), Timeouts oder Polling-Mechanismen gemäß POSIX/ARA-Spezifikation). - Buffer-Management: Für Hochdurchsatz-Streams (z. B. Video) müssen Zero-Copy-Strategien oder Ringpuffer-Allokatoren genutzt werden, um Kontextwechsel und Kopiervorgänge zwischen Kernel- und User-Space über
WriteData()/ReadData()zu minimieren.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.