AUTOSAR_EXP_ARAComAPI
FIG-e70ca96b702dde73
1191 × 672 px
1 Release(s)
Figure 7.6: meta-model to Implementation
SHA-256 Inhalts-Fingerabdruck:
e70ca96b702dde73a4975e1509152035595a87f941c56ff288a14b4057ceaed3
✦
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: Abstraktions- und Transformationsmodell (Mapping-Diagramm zwischen AUTOSAR-Metamodell-Ebene und C++-Implementierungsebene).
- Technischer Zweck: Visualisierung des modellgetriebenen Entwicklungsflusses (MDD) in der AUTOSAR Adaptive Platform (
ara::com). Es überführt formale Manifest-Modellelemente (SoftwareComponentType,PortPrototype,ServiceInterface) in konkrete C++14/17-Artefakte (Proxy-/Skeleton-Architekturmuster) und deren Laufzeitinstanziierung.
2. Komponenten, Entitäten & Schnittstellen
Metamodell-Ebene (meta model level / ARXML-Manifeste)
ServiceInterface(RadarService): Kontrakt-Definition von Methoden, Events und Feldern (Serviceschnittstelle).SoftwareComponentType A: Konsumierende Software-Komponente (konkretisiert alsAdaptiveApplicationSwComponentType).R-Port(Name: radarservice):RPortPrototype, typisiert über Beziehungis of typeauf dasServiceInterfaceRadarService. Signalisiert Service-Bedarf (Required).
SoftwareComponentType B: Bereitstellende Software-Komponente.P-Port(Name: Radar):PPortPrototype, typisiert über Beziehungis of typeauf dasServiceInterfaceRadarService. Signalisiert Service-Bereitstellung (Provided).
Implementierungs-Ebene (Implementation level / C++-Code)
- Generierte C++-Klassen (Codegenerator-Output basierend auf Service-Manifest):
RadarService Proxy Class: Client-seitige Abstraktion (ara::com-Proxy), abgeleitet viagenerated fromaus demRadarServicefür Konsumenten.RadarService Skeleton Class: Server-seitige Basisklasse (ara::com-Skeleton), abgeleitet viagenerated fromaus demRadarServicefür Provider.
- Laufzeit-Instanzen (Applikations-Prozessraum):
Implementation of SoftwareComponentType A: Applikations-Code des Service-Konsumenten. Instanziiert dieRadarService Proxy instance, parametrisiert mitInstanceId: radarservice(abgebildet aus dem zugehörigen R-Port).Implementation of SoftwareComponentType B: Applikations-Code des Service-Providers. Instanziiert dieRadarService Skeleton instance, parametrisiert mitInstanceId: Radar(abgebildet aus dem zugehörigen P-Port).
3. Dynamisches Verhalten & Sequenzablauf
Statische Zuordnungsansicht ohne temporale Sequenzachse. Der daraus resultierende Laufzeit- und Instanziierungsablauf gliedert sich wie folgt:
- Design-/Generierungszeit: Der AUTOSAR-Codegenerator parst das
ServiceInterface(RadarService) und erzeugt typsichere C++-Klassen-Header/Sources (RadarServiceProxybzw.RadarServiceSkeleton). - Initialisierung Provider (SoftwareComponentType B):
- Applikation B erzeugt eine Instanz der
RadarService Skeleton Classunter Angabe des Instanzbezeichners (InstanceId: Radarbzw.ara::com::InstanceIdentifier). - Aufruf von
OfferService()am Skeleton publiziert den Service via Middleware-Binding (z. B. SOME/IP, IPC).
- Applikation B erzeugt eine Instanz der
- Initialisierung & Discovery Consumer (SoftwareComponentType A):
- Applikation A startet die Dienstsuche via
RadarServiceProxy::StartFindService()/FindService(). - Nach erfolgreichem Matching bindet die
RadarService Proxy instancean die gefundene Instanz (InstanceId: radarservice) zur Methoden-/Event-Kommunikation.
- Applikation A startet die Dienstsuche via
4. Normative Relevanz & Entwickler-Hinweise
- Generierungsvertrag: Änderungen am ARXML-
ServiceInterfaceerfordern stets die Neuerzeugung von Proxy und Skeleton. Die Schnittstellen-Signatur im C++-Code ist unveränderlicher Bestandteil des API-Vertrags (ara::com). - Port-zu-Instanz-Mapping: Port-Namen aus dem Manifest (
Name: radarservice,Name: Radar) determinieren die Konfiguration derInstanceIdentifierbzw. die Bindung im Execution- und Service-Instance-Manifest (ServiceInstanceToPortPrototypeMapping). - Skeleton-Implementierung: Applikationsentwickler von Component B müssen vom generierten Skeleton erben und die rein virtuellen Methoden des Interfaces implementieren.
- Thread-Safety & Lebenszyklus: Instanzen von Proxy und Skeleton unterliegen RAII. Die Zerstörung des Skeletons muss zwingend mit
StopOfferService()synchronisiert sein, um Deadlocks oder Invocations auf freigegebenem Speicher zu unterbinden.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.