AUTOSAR_AP_EXP_ARAComAPI
FIG-d02cb273ea3bbe9a
932 × 372 px
10 Release(s)
Figure 7.12: Skeleton creation using abstract network bindings
SHA-256 Inhalts-Fingerabdruck:
d02cb273ea3bbe9a7bdc66bc24a49ace313b396902909da560398b40931f45c4
✦
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: Technisches Architektur- und Mapping-Schema mit C++-Codesequenzen und zugehörigen Manifest-Projektionen (Design-to-Deployment-Mapping).
- Architektur-Kontext: AUTOSAR Adaptive Platform, Service-Oriented Architecture (SOA), Subsystem
ara::com(Communication Management). - Funktionaler Zweck: Veranschaulichung der protocol-agnostic Skeleton-Instanziierung. Das Schema demonstriert, wie die C++-Applikationslogik über
ara::core::InstanceSpecifiervollständig von konkreten Netzwerk- und Transport-Bindings (SOME/IP, lokales IPC) entkoppelt wird und wie ein unveränderter Applikations-Quellcode sowohl für Single-Binding- als auch für Multi-Binding-Szenarien eingesetzt wird.
2. Komponenten, Entitäten & Schnittstellen
- Applikations-Entitäten (C++ Component Code):
ara::core::InstanceSpecifier: Stark typisierter Identifikator, der die logische Instanz einesPortPrototype(konkretPPortPrototype) aus dem AUTOSAR-Software-Modell kapselt (context + "MyPort"→ modellierter Pfad"/x/y/z/MyPort").RadarService serviceImpl(portName): Konkrete Service-Implementierungsklasse, abgeleitet vom generierten Skeleton-Interface (RadarServiceSkeleton). Der Konstruktor akzeptiert denInstanceSpecifierals Referenzanker.
- Konfigurations-Entitäten (Deployment / Execution Manifest):
- Single Binding: 1:1-Zuordnung des
InstanceSpecifierzu genau einer Service-Instanzkonfiguration (z. B. ProtokollSOME/IPmit Service-Instance-ID43). - Multiple Binding: 1:n-Zuordnung des identischen
InstanceSpecifierauf mehrere heterogene oder redundante Bindings parallel:SOME/IP:43(externes Netzwerk, z. B. Gateway/Head-Unit)SOME/IP:16(parallele / alternative SOME/IP-Instanz)UserDefined:/tmp/33(ECU-internes IPC / UNIX Domain Socket / Shared Memory Endpoint)
- Single Binding: 1:1-Zuordnung des
- Stereotypen & Kardinalitäten:
- Der
PPortPrototype(InstanceSpecifier) referenziert deklarativ 1 … nProvidedServiceInstance-Deployments (SOME/IP,IPC, proprietäre Bindings). - Quellcode-Kardinalität: Exakt eine Skeleton-C++-Instanz bedient alle zugewiesenen Transport-Bindings simultan.
- Der
3. Dynamisches Verhalten & Sequenzablauf
- Instanziierung des Bezeichners: Erzeugung des
ara::core::InstanceSpecifierzur Laufzeit unter Verwendung des vollqualifizierten Port-Pfades ("x/y/z/MyPort"). - Skeleton-Konstruktion: Übergabe des
portNamean den Konstruktor der Service-Implementierung (RadarService serviceImpl(portName)). - Manifest-Lookup & Binding-Auflösung: Die zugrundeliegende
ara::com-Laufzeitumgebung liest zur Konstruktionszeit die Deployment-Deskriptoren des Service-Instance-Manifests für den angegebenenInstanceSpecifieraus. - Transport-Endpoint-Initialisierung:
- Single-Binding-Pfad: Initialisierung des SOME/IP-Serializers und Registrierung des Sockets auf Instance-ID
43. - Multi-Binding-Pfad: Parallele Initialisierung aller konfigurierten Binding-Adapter (
SOME/IP:43,SOME/IP:16und lokales IPC/tmp/33).
- Single-Binding-Pfad: Initialisierung des SOME/IP-Serializers und Registrierung des Sockets auf Instance-ID
- Dienst-Bereitstellung: Nach der Konstruktion (und dem Aufruf von
OfferService()) nimmt der Skeleton Methodenaufrufe, Feldabfragen und Event-Subscriptions synchron oder asynchron über sämtliche gebundenen Kanäle entgegen.
4. Normative Relevanz & Entwickler-Hinweise
- Code-Portabilität & Binding-Agnozismus: Applikations-Entwickler dürfen keinerlei Netzwerk-Parameter (IP-Adressen, SOME/IP-IDs, Socket-Pfade) im C++-Code verankern. Die Bindung erfolgt ausschließlich deklarativ im Manifest.
- Zero-Code-Change bei Multi-Binding: Der Wechsel von Single-Binding (z. B. reines SOME/IP über Ethernet) zu Multi-Binding (z. B. simultan SOME/IP und POSIX-IPC für Hochgeschwindigkeitsdaten) erfordert keine Re-Kompilierung oder Anpassung des C++-Quellcodes, sondern rein die Anpassung des Deployment-Manifests.
- Laufzeit-Fehlerbehandlung: Schlägt das Mapping des
InstanceSpecifierfehl (z. B. Port im Manifest nicht konfiguriert oder Endpunkt blockiert), bricht der Konstruktor ab (je nach Plattformversion viaara::core::Result/ Exception oder führt zu einem fatalen Initialisierungsfehler). - Thread-Safety & Nebenläufigkeit: Bei Multi-Binding können Methodenaufrufe simultan aus verschiedenen Binding-Stacks (z. B. gleichzeitig über SOME/IP und IPC) im selben Skeleton-Objekt eintreffen. Die Implementierung der Service-Methoden muss zwingend reentrant bzw. thread-safe ausgelegt sein.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.