AUTOSAR_AP_EXP_SWArchitecture
FIG-0e9c3a9628a20d2a
828 × 625 px
1 Release(s)
Figure 11.10: Scenario: Receive IP Stream
SHA-256 Inhalts-Fingerabdruck:
0e9c3a9628a20d2a4b4a6199edd97433fc1c6339aa95c1a194f1255067c2ec1f
✦
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
- Diagrammtyp: UML-Sequenzdiagramm (Interaktionsdiagramm) mit Interaktionsrahmen (
loop), Lifelines und informativen Transportprotokoll-Interaktionen. - Architektur-Kontext: AUTOSAR Adaptive Platform (AP), Functional Cluster Communication Management (
ara::com). - Technischer Zweck: Spezifikation des Interaktionsmusters für das Empfangen unstrukturierter Datenströme (Raw Data Stream) über IP-basierte Transportprotokolle (L4: TCP/UDP). Das Diagramm illustriert die Kapselung von POSIX/Socket- bzw. OS-Netzwerk-Interaktionen durch die standardisierten AP-Stream-APIs (
RawDataStreamClientundRawDataStreamServer) unter beispielhafter Darstellung eines verbindungsorientierten Transports (TCP).
2. Komponenten, Entitäten & Schnittstellen
Entitäten & Rollen
Client: Adaptive Application(AA): Konsumierende Applikationsinstanz im Client-Ausführungskontext, die den Verbindungsaufbau initiiert und Daten über die API liest.:RawDataStreamClient: Plattform- bzw. Middleware-Entität (ara::com), die den clientseitigen Stream-Endpunkt, Socket-Zustände und Datenpufferung abstrahiert.Server: Adaptive Application(AA): Produzierende Applikationsinstanz im Server-Ausführungskontext, die Verbindungsanfragen entgegennimmt und Nutzdaten schreibt.:RawDataStreamServer: Middleware-Gegenstelle (ara::com) auf Server-Seite zur Verwaltung von Listener-Sockets, eingehenden Verbindungen und L4-Segmentierung.
Stereotypen & Notationen
«aapInformative»: Kennzeichnet AUTOSAR Adaptive Platform Informative Messages. Die markierten Nachrichten (SYN(),SYN-ACK(),ACK(),data(),FIN()) repräsentieren den physischen bzw. netzwerkseitigen Protokollfluss (OS-/TCP-Stack-Ebene) und sind keine direkten C++-API-Aufrufe der Applikation.- Interaktionsrahmen (
loop Read Data): Repräsentiert das zyklische oder ereignisgesteuerte Polling/Lesen von Streaming-Datenblöcken. - Lebensdauer-Ende (
X): Zerstörung/Freigabe der jeweiligen Stream-Instanzen nach Ausführung der Shutdown-Sequenz.
3. Dynamisches Verhalten & Sequenzablauf
Phase 1: Initialisierung & Verbindungsaufbau (Connection Setup)
- Server-Bereitstellung:
Server: Adaptive Applicationinstanziiert:RawDataStreamServerviaCreate().- Server ruft blockierend oder asynchron
WaitForConnection()auf dem Stream-Server-Objekt auf (entspricht funktionalbind()/listen()/accept()).
- Client-Verbindungsanforderung:
Client: Adaptive Applicationinstanziiert:RawDataStreamClientviaCreate().- Client initiiert die Verbindung mittels
Connect().
- L4-Handshake (TCP 3-Way Handshake via
«aapInformative»)::RawDataStreamClient→:RawDataStreamServer:SYN():RawDataStreamServer→:RawDataStreamClient:SYN-ACK():RawDataStreamClient→:RawDataStreamServer:ACK()
- Verbindungsbestätigung:
- Nach erfolgreichem Handshake kehrt
WaitForConnection()zur Server-AA zurück.
- Nach erfolgreichem Handshake kehrt
Phase 2: Datenübertragung (loop Read Data)
- Senden:
Server: Adaptive Applicationübergibt Nutzdatenpuffer viaWriteData()an:RawDataStreamServer. - Netzwerktransfer (
«aapInformative»): L4-Payload wird über IP alsdata()an:RawDataStreamClientübertragen. Segmentierung und Reassemblierung erfolgen plattformintern. - Empfang:
Client: Adaptive ApplicationruftReadData()auf. Die Middleware liefert den empfangenen Bytestrom zurück (gestrichelte Rückgabe an Client-AA).
Phase 3: Verbindungsabbau (Connection Teardown)
- Trigger:
Client: Adaptive Applicationinitiiert die Beendigung viaShutdown(). - TCP Graceful Teardown (4-Way Handshake via
«aapInformative»)::RawDataStreamClient→:RawDataStreamServer:FIN():RawDataStreamServer→:RawDataStreamClient:ACK():RawDataStreamServer→:RawDataStreamClient:FIN():RawDataStreamClient→:RawDataStreamServer:ACK()
- Instanzterminierung: Beide Endpunkte beenden ihre Session und schließen die Lifelines (
X).
4. Normative Relevanz & Entwickler-Hinweise
- Abstraktion von Socket-APIs: Applikationsentwickler interagieren ausschließlich mit den typisierten C++-Methoden (
Connect(),WaitForConnection(),ReadData(),WriteData(),Shutdown()). Direkte Zugriffe auf BSD-/POSIX-Sockets sind unzulässig und brechen die Portabilität nach AP-Sicherheits- und Plattformvorgaben. - Protokollvarianz (TCP vs. UDP):
- TCP (dargestellt): Verbindungsorientiert. Verbindungsaufbau (
Connect()/WaitForConnection()) und -abbau (Shutdown()) erfordern L4-Handshakes. - UDP (gemäß Diagramm-Notes): Verbindungslos.
SYN/ACK- sowieFIN/ACK-Phasen entfallen auf Netzwerkebene; die API-Zustandsmaschine bleibt für die Applikation homogen gekapselt, arbeitet intern jedoch datagrammbasiert ohne Zustandsgarantie.
- TCP (dargestellt): Verbindungsorientiert. Verbindungsaufbau (
- Bidirektionalität: Obwohl als Unicast-Stream vom Server zum Client dargestellt, unterstützen Protokollkonfigurationen wie TCP vollduplexen Datenaustausch (
ReadData()undWriteData()sind auf beiden Peers nutzbar). - Segmentierung & MTU-Handling: Die Fragmentierung/Reassemblierung größerer Datenblöcke wird vollständig innerhalb der Kommunikationsmiddleware und des OS-Netzwerk-Stacks abgewickelt. Applikationen müssen jedoch Pufferüberläufe und unvollständige Chunks über Rückgabewerte bzw. Streamsizes von
ReadData()defensiv auswerten. - Ressourcen-Lifecycle: Der Aufruf von
Shutdown()ist obligatorisch, um Socket-Deskriptoren, Pufferbereiche und ephemeral Ports deterministisch freizugeben und Zombie-Verbindungen im OS-Netzwerk-Stack zu vermeiden.