DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_EXP_SWArchitecture FIG-83f4fc6be1538695 860 × 499 px 1 Release(s)

Figure 9.16: Users of the Log and Trace interfaces

SHA-256 Inhalts-Fingerabdruck: 83f4fc6be153869532ff4ea610da774fcf80081d2a728a89e8a5bbd20a8295b7
✦ 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-Komponenten- und Schnittstellendiagramm (Component Dependency & Interface Realization).
  • Technischer Zweck: Spezifikation der AUTOSAR Adaptive Platform (AP) Querschnittsarchitektur für das Protokollierungs- und Trace-Subsystem. Das Diagramm dokumentiert die zentrale Rolle des Functional Clusters Log and Trace (ara::log) und dessen einheitliche C++ Native API (Logger), die von allen wesentlichen Foundation- und Service-Clustern als Basisinfrastruktur konsumiert wird.

2. Komponenten, Entitäten & Schnittstellen

Zentrale Schnittstelle
  • Logger («aapAPI, aapNativeInterface»):
    • Bereitgestellte Operationen:
      • + IsEnabled(): bool: Dynamische Prüfung mit explizitem Rückgabetyp bool, ob eine Protokollierung für den gewählten Kontext/Level aktiv ist.
      • + Log(MsgId, Params): Strukturierte, ID-basierte Protokollierung zur Vermeidung von Runtime-String-Interpolation.
      • + LogDebug(): LogStream, + LogError(): LogStream, + LogFatal(): LogStream, + LogInfo(): LogStream, + LogVerbose(): LogStream, + LogWarn(): LogStream: Typsichere Fluent-/Streaming-Methoden nach Severity-Level.
      • + WithLevel(): LogStream: Generischer Einstiegspunkt für parametrisierte Loglevel.
Bereitstellende Entität (Realization)
  • Log and Trace («aapFunctionalCluster»): Realisiert das Interface Logger (gestrichelte Linie mit geschlossener Dreiecksspitze). Stellt sowohl die In-Process-Client-Bibliothek (ara::log) als auch die Anbindung an den DLT-Logging-Daemon (Diagnostic Log and Trace) bereit.
Konsumierende Entitäten («use»-Abhängigkeiten)

Insgesamt 11 funktionale Cluster greifen direkt auf die Logger-Schnittstelle zu:

  • Daemon-basierte Functional Clusters (daemon-based):
    • Execution Management (ara::exec)
    • State Management (ara::sm)
    • Time Synchronization (ara::tsync)
    • Network Management (ara::nm)
    • Diagnostic Management (ara::diag)
    • Platform Health Management (ara::phm)
    • Intrusion Detection System Manager (ara::idsm)
    • Communication Management (ara::com)
    • Vehicle Update and Configuration Management (ara::vucm)
    • Update and Configuration Management (ara::ucm)
  • Bibliotheksbasierte / Service-basierte Functional Clusters:
    • Persistency (ara::per)

3. Dynamisches Verhalten & Sequenzablauf

Obwohl das Diagramm primär statische Abhängigkeiten modelliert, erzwingt die Methodensignatur von Logger ein deterministisches Streaming- und RAII-Aufrufmuster:

[Caller / FC]                 [Logger API]               [LogStream (Temp)]             [DLT / ara::log Backend]
      |                             |                             |                                 |
      |--- 1. IsEnabled()? -------->|                             |                                 |
      |<-- (bool: true/false) ------|                             |                                 |
      |                                                           |                                 |
      |--- 2. LogInfo() ----------->|                             |                                 |
      |                             |-- ctor() ------------------>|                                 |
      |<-- returns LogStream ref ---------------------------------|                                 |
      |                                                           |                                 |
      |--- 3. operator<< (data) --------------------------------->| (Serialisierung in Ringpuffer)  |
      |                                                           |                                 |
      |--- 4. Statement-Ende (RAII-Destruktion) ----------------->|                                 |
                                                                  |-- dtor(): flush() ------------->|
                                                                                                    | (Lock-free IPC/Shared Memory)
  • Filterung (Short-Circuit): Mittels IsEnabled() bzw. internem Level-Vergleich wird die Evaluierung von Parametern bei inaktivem Loglevel frühzeitig abgebrochen (Minimal-Overhead-Garantie).
  • Thread-Safety & Non-Blocking Flush: Die Serialisierung erfolgt synchron im Aufrufer-Thread in einen thread-lokalen oder sperrfreien Ringpuffer; der finale Transport zum Log-Daemon erfolgt entkoppelt/asynchron via IPC.

4. Normative Relevanz & Entwickler-Hinweise

  • Bootstrapping & Initialisierungs-Reihenfolge: Da sicherheitskritische Early-Boot-Dienste wie Execution Management (ara::exec) und Platform Health Management (ara::phm) Protokollausgaben erzeugen, muss die Logging-Client-Bibliothek vor oder während der Daemon-Startphase aufrufbar sein. Unverarbeitete Logs müssen gepuffert werden (Early-Logging-Buffer), bevor der DLT-Kommunikationskanal etabliert ist.
  • Echtzeit- und Determinismus-Vorgaben: Für zeitkritische Cluster (Time Synchronization, PHM) dürfen Aufrufe an LogStream keine dynamischen Heap-Allokationen (malloc/new) im Hot-Path auslösen.
  • Zirkuläre Abhängigkeiten: Log and Trace darf zur Erfüllung seiner Basisfunktion keine blockierenden Abhängigkeiten zu Clustern eingehen, die es selbst loggen (z. B. keine synchrone Nutzung von Persistency oder Platform Health Management innerhalb des Core-Logging-Pfads).
  • Sicherheits- und Zugriffskontrolle: Wenn Identity and Access Management (IAM) oder Crypto den Logger nutzen, müssen sensible Daten (Schlüssel, Tokens) vor dem Streamen geschwärzt oder über strukturierte IDs maskiert werden (Log(MsgId, Params)), um Secret-Leakage im Trace-Stream zu verhindern.

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R24-11 → R25-11 normative Änderung Vorgänger: FIG-5c0e5b3e4d913381
  • Logger: Rückgabetyp : bool für die Operation + IsEnabled() explizit ergänzt (+ IsEnabled(): bool).
  • Network Management: Ausführungsklassifikation um daemon-based erweitert.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«aapFunctionalClust... | Log and Trace | «aapAPI,aapNativeInterface» | Logger | + IsEnabled(): bool + Log(MsgId, Params) + LogDebug(): LogStream + LogError(): LogStream + LogFatal(): LogStream + LogInfo(): LogStream + LogVerbose(): LogStream + LogWarn(): LogStream + WithLevel(): LogStream | «aapFunctionalClust... Execution Management daemon-based | «aapFunctionalClust... Diagnostic Management | daemon-based | «aapFunctionalCluster» | Communication | Management daemon-based | «aapFunctionalCluster» Update and Configuration | Management daemon-based | «aapFunctionalClust... | Persistency | «aapFunctionalCluster» Intrusion Detection System | Manager daemon-based | «aapFunctionalClust... | Time Synchronization daemon-based | «aapFunctionalClust... | State Management daemon-based | «aapFunctionalClust... | Network Management daemon-based | «aapFunctionalClust... | Platform Health | Management daemon-based | «aapFunctionalCluster» | Vehicle Update and Configuration Management daemon-based | «use» | «use» | «use» | «use» | «use» «use» «use» «use» «use» «use» «use»

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R25-11 AUTOSAR_AP_EXP_SWArchitecture S. 58 9.16 Figure 9.16: Users of the Log and Trace interfaces