AUTOSAR_AP_SWS_CommunicationManagement
FIG-c4be81ea1b09fb81
807 × 1089 px
2 Release(s)
Figure 7.36: Receive response to a SET Message
SHA-256 Inhalts-Fingerabdruck:
c4be81ea1b09fb8170935489366d0ac705cc892a14767bc3a4b9e9f993cd6dd2
✦
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: UML-Sequenzdiagramm (Interaktionsdiagramm) mit kombinierten Fragmenten (
alt) zur bedingten Ausführung. - Funktionale Einordnung: AUTOSAR Adaptive Platform (AP), Spezifikation Communication Management (
ara::com), Release R21-11. - Technischer Zweck: Spezifikation des asynchronen Empfangs-, Prüf- und Deserialisierungspfads einer Antwortnachricht (Response) auf einen
Field.Set()-Aufruf (Method Call auf ein Field mit Setter-Funktionalität) unter Einbindung von End-to-End-(E2E)-Schutzmechanismen und der E2E-Zustandsüberwachung.
2. Komponenten, Entitäten & Schnittstellen
- Akteure & Lifelines:
Client Application: Adaptive Application (Service Consumer), die über das generierte Proxy-Interface der Service-Instanz agiert.ara::com: Adaptive Middleware-Laufzeitschicht (Service-Proxy-Binding-Implementierung inkl. E2E-State-Machine, PDU-Verarbeitung, Promise/Future-Verwaltung).Transmission: Transport- und Protokollbindungsschicht (z. B. SOME/IP Daemon, Netzwerk-Stack über Ethernet/IPC).
- Interaktionspunkte & Datenstrukturen:
Field.Set(): Asynchrone Setter-Methode des Proxies; instanziiert und liefert unmittelbar einara::core::Futurean die Applikation.MessageReception()/GetMessage(serialized data): PDU-Empfangsindikation und Datenabruf des Bytestroms aus dem Transportpuffer.Process non protected data()/Process E2E protected header(): Parsing ungeschützter (z. B. Basis-Routing-/Protokoll-Header) sowie kryptografisch/prüfsummen-geschützter Header-Anteile.E2E_Check(): Validierung von Sequence Counter, CRC und Data-ID gemäß konfiguriertem E2E-Profil.Output.setvalue(data)/Output.SetError(errorcode): Setzen des Ergebnisses bzw. des Fehlercodes im assoziiertenara::core::Promise.Store result in SM state(): Zustandsaktualisierung in der internen E2E-Zustandsmaschine (ara::com::e2e::Result).GetE2EStateMachineState(): Abfrage/Auswertung des E2E-Zustands durch die Applikation bzw. den Proxy.process error domain()/process data(): Lokale Behandlungsroutinen in der Client-Applikation zur Differenzierung von Nutzdaten (ara::core::Result<T>) und Fehlern (ara::core::ErrorCode).
3. Dynamisches Verhalten & Sequenzablauf
- Request-Phase (Asynchron):
Client ApplicationinitiiertField.Set().ara::comerzeugt das zugehörigeara::core::Future, gibt dieses synchron an die Applikation zurück und sendet den Request ab.- Entkopplung: Der Aufrufer wird nicht blockiert (
Some time passes ...).
- Empfangs- & Validierungs-Phase (
Transmission→ara::com):Transmissionsignalisiert den Eingang viaMessageReception().ara::comholt die serialisierten Rohdaten überGetMessage(serialized data)ab.ara::comverarbeitet ungeschützte Metadaten (Process non protected data()) und führtE2E_Check()aus.
- Verzweigung 1: Interner E2E-Check (
alt [E2E check OK] / [E2E Error]):- Pfad
[E2E check OK]:- Geschützte Header werden interpretiert (
Process E2E protected header()). - Nutzdaten werden deserialisiert (
Deserialize serialized data()). - Ergebniswert wird im Promise gesetzt (
Output.setvalue(data)).
- Geschützte Header werden interpretiert (
- Pfad
[E2E Error]:- Deserialisierung der Nutzdaten unterbleibt.
- E2E-Fehlercode wird im Promise hinterlegt (
Output.SetError(errorcode)).
- Der Status der E2E-Zustandsmaschine wird synchron aktualisiert (
Store result in SM state()).
- Pfad
- Verzweigung 2: Ergebnisabfrage & Applikationsreaktion (
altinClient Application):- Die Applikation fragt das Ergebnis bzw. den Status ab (
GetE2EStateMachineState()). - Pfad
[received message has type ERROR]: Der Server/Publisher hat bereits bei der Anfrage einen E2E-Fehler detektiert und eine standardisierte ERROR-Response übermittelt → Aufruf vonprocess error domain(). - Pfad
[E2E error]: Lokaler E2E-Check auf Empfängerseite ist fehlgeschlagen → Daten werden verworfen; Client führtprocess error domain()aus (Reaktion obliegt der Anwendungslogik). - Pfad
[no E2E error]: DasFuturewechselt in den ZustandReady→ Der deserialisierte Rückgabewert wird ausgelesen und viaprocess data()verarbeitet.
- Die Applikation fragt das Ergebnis bzw. den Status ab (
4. Normative Relevanz & Entwickler-Hinweise
- Deserialisierungsbarriere: Die Deserialisierung der Payload darf normativ erst nach erfolgreichem
E2E_Checkerfolgen. Dies schützt die Middleware und Applikation vor Speicherbeschädigungen (z. B. Buffer Overflows, fehlerhafte dynamische Längenfelder in Vektoren/Strings) durch verfälschte Pakete. - E2E-State-Machine-Integration: Ein einzelner Prüfsummenfehler führt nicht zwingend sofort zum Applikationsabbruch. Die E2E-State-Machine aggregiert Prüfresultate über ein Schiebefenster (
Store result in SM state()). Entwickler müssen prüfen, ob die Schnittstelle im ZustandValid,Update_OKoderUpdate_Errorbetrieben wird. - API-Vertrag (
ara::core::Future/ara::core::Result):- Applikationen dürfen nicht blockierend auf das
Futurewarten, sondern müssen Callback-Mechanismen (future.then()) oder geordnete Polling-Routinen nutzen. - Tritt ein E2E-Fehler oder eine Server-Error-Response auf, liefert
Future::GetResult()keinen Wert, sondern eineara::core::ErrorCodeinnerhalb einer dediziertenErrorDomain. Ein ungeprüfter Direktzugriff auf den Wert löst normativara::core::Abort()aus.
- Applikationen dürfen nicht blockierend auf das
- Fehlerklassifizierung: Die Applikationslogik muss zwingend zwischen funktionalen Service-Fehlern, transportbezogenen Server-Fehlern (
type ERROR) und lokalen E2E-Integritätsverletzungen unterscheiden können.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.