AUTOSAR_SWS_CommunicationManagement
FIG-fad933fb1106f2ba
906 × 573 px
5 Release(s)
Figure 7.1: Technical Architecture of Communication Management
SHA-256 Inhalts-Fingerabdruck:
fad933fb1106f2bac2a7c538b58e0eb3a9f03f09a73cb48a87d703f88ac68fa8
✦
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
- Klassifikation: Technisches Schichten- und Komponentenarchitektur-Diagramm (Block-/Strukturdiagramm nach AUTOSAR Adaptive Platform Spezifikationsstandard).
- Technischer Zweck: Spezifikation der vertikalen Entkopplung und der Protokoll-Bindings von
ara::cominnerhalb der Adaptive Platform Foundation (APF) gegenüber der Applikationsschicht (Adaptive Application) und der Hardware-Abstraktion (Virtual Machine / Hardware). - Funktionale Einordnung: Veranschaulicht die Realisierung der serviceorientierten Kommunikation (Service-Oriented Architecture, SOA). Es definiert den Pfad vom typisierten C++-API-Aufruf (Proxy/Skeleton) über protokollunabhängige Dispatching- und Service-Discovery-Mechanismen hinab zu konkreten Transportkanälen für Inter-Process Communication (IPC, intra-machine) und Netzwerkprotokolle (SOME/IP via TCP/IP/Ethernet, inter-machine).
2. Komponenten, Entitäten & Schnittstellen
Schichten und Akteure (Top-Down):
- Adaptive Application (Applikationsebene):
- Konsumiert und offeriert Services typisiert über generierte C++-Interfaces (Proxy- und Skeleton-Klassen).
- ara::com API & Bindings (Zwischenschicht Applikation / Foundation):
ara::com API: Einheitliche, sprachspezifische Programmierschnittstelle für Events, Methods und Fields.C++ 11 Language Binding: Generierte typsichere Abbildung des formalen Service Interface Models (ARXML) auf native C++11-Konstrukte (z. B.std::future, Callbacks, typsichere Structs).Communication Binding: Protokoll-Adaptionsschicht; entkoppelt das Language Binding von der physischen Übertragungsart (Serialisierung/Deserialisierung in payloadspezifische Formate).
- Communication Management (Kern-Subsystem der APF):
Dispatching and Discovery: Zentrale Routing- und Vermittlungseinheit für Service-Instanzen (FindService,OfferService, Routing von Methodenaufrufen und Event-Subscriptions).- Netzwerk-Pfad (Inter-Machine):
SOME/IP Transport: Serialisierung/Packaging nach AUTOSAR SOME/IP-Standard (inkl. SOME/IP-SD).TCP/IP: Betriebssystem-/Stack-Sockets (L4).Ethernet Driver: L2-Netzwerkanbindung an physische/virtuelle Netzwerk-Controller.
- IPC-Pfad (Intra-Machine):
IPC Transport: Protokoll- und Speicherabstraktion für knotenlokale Kommunikation.IPC: POSIX-/OS-spezifische Primitiven (Shared Memory, Unix Domain Sockets, Message Queues).
- Execution Management (APF Core):
- Gekoppelt über eine Steuerungs-/Zustandsschnittstelle (
API/ bidirektionale Kontrollbeziehung). - Zuständig für Lebenszyklusüberwachung, Initialisierung, Prozessüberwachung und State-Transitions (z. B. Freigabe von Ressourcen für Communication Management).
- Gekoppelt über eine Steuerungs-/Zustandsschnittstelle (
- (Virtual) Machine / Hardware:
- Physische Execution Environment (Microcontroller/SoC, Hypervisor, OS-Kernel).
3. Dynamisches Verhalten & Sequenzablauf
Das Diagramm modelliert statische Abhängigkeiten, determiniert jedoch folgende Laufzeitpfade:
- Service Discovery Phase (Kontrollpfad):
- Ein Service Provider offeriert via
ara::comeinen Dienst (OfferService()). Dispatching and Discoveryverarbeitet den Aufruf:- Lokal: Registrierung im knoteninternen IPC-Registry-Directory.
- Remote: Übergabe an
SOME/IP Transportzur Aussendung von SOME/IP-SD-Multicast/Unicast-Nachrichten über UDP/IP.
- Ein Service Provider offeriert via
- Datenaustausch / RPC / Event Distribution (Datenpfad):
- Egress: Methodenaufruf oder Event-Trigger am Proxy/Skeleton → Übergabe über
ara::com API→ Serialisierung imCommunication Binding→ Routingentscheidung inDispatching and Discovery:- Ziel intra-machine: Weiterleitung an
IPC Transport→ Null-Copy / Shared Memory oder OS-Pipe. - Ziel inter-machine: Weiterleitung an
SOME/IP Transport→ Socket Write (TCP/IP) → Senden viaEthernet Driver.
- Ziel intra-machine: Weiterleitung an
- Ingress: Empfang via Interrupt/Socket bzw. IPC-Signal → Deserialisierung → Dispatching an den zuständigen Threadpool des Skeletons/Proxys via synchronem Return oder asynchroner
std::future/Callback-Benachrichtigung.
- Egress: Methodenaufruf oder Event-Trigger am Proxy/Skeleton → Übergabe über
- Lebenszyklus-Synchronisation:
- Asynchroner/Event-basierter Abgleich zwischen
Execution ManagementundCommunication Management: Dienste dürfen erst gebunden bzw. nach außen offeriert werden, wenn die zugehörigen Prozesse denRunning-State erreicht haben.
- Asynchroner/Event-basierter Abgleich zwischen
4. Normative Relevanz & Entwickler-Hinweise
- Transparenz des Bindings (Entwicklungsvertrag):
- Applikationscode darf keine Abhängigkeiten zu konkreten Transportschichten (
SOME/IP,POSIX IPC) aufweisen. Die Zuweisung von Service-Instanzen zu IP-Ports oder IPC-Channels erfolgt rein deklarativ über die Deployment-Manifeste (ARXML) zur Kompilier-/Generierzeit.
- Applikationscode darf keine Abhängigkeiten zu konkreten Transportschichten (
- Serialisierungs-Overhead & Zero-Copy:
- Für IPC-Kommunikation ist die Nutzung von Shared-Memory-Mechanismen optimiert. Entwickler müssen auf POD- (Plain Old Data) und
ara::core-konforme Typen achten, um aufwendige Deep-Copies imCommunication Bindingzu vermeiden.
- Für IPC-Kommunikation ist die Nutzung von Shared-Memory-Mechanismen optimiert. Entwickler müssen auf POD- (Plain Old Data) und
- Portabilität (POSIX/OS-Abhängigkeit):
- Die Trennung von
SOME/IP Transportvs.TCP/IPsowieIPC Transportvs.IPCisoliert OS-spezifische API-Calls (z. B. Linux epoll vs. QNX Channels). Plattform-Portierer implementieren die unteren Transport-Treiber, während Bindings und Generatoren standardkonform bleiben.
- Die Trennung von
- Thread-Safety & Nebenläufigkeit:
- Der
Dispatching and Discovery-Block erfordert reentrante bzw. Thread-sichere Callbacks. Applikationen müssen darauf vorbereitet sein, dass Event-Empfänger und Methoden-Handler auf Threadpools derCommunication Management-Laufzeitumgebung ausgeführt werden.
- Der
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.