DEENESPTFRRUARHIKOZHNL
AUTOSAR_EXP_SWArchitecture FIG-06262deb6b586674 854 × 499 px 1 Release(s)

Figure 9.17: Users of the Log and Trace interfaces

SHA-256 Inhalts-Fingerabdruck: 06262deb6b5866745bbf075e376ec475c66ec4d28af187be62c6fc0a455c8a38
✦ 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(): Dynamische Prüfung, 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 12 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)
    • Diagnostic Management (ara::diag)
    • Cryptography (ara::crypto)
    • Platform Health Management (ara::phm)
    • Adaptive Intrusion Detection System Manager (ara::idsm)
    • Update and Configuration Management (ara::ucm)
  • Bibliotheksbasierte / Service-basierte Functional Clusters:
    • Communication Management (ara::com)
    • Network Management (ara::nm)
    • Identity and Access Management (ara::iam)
    • 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)

R21-11 → R22-11 redaktionell Vorgänger: FIG-9fda63704abf4125
  • Layout: Die Komponentenblöcke Communication Management, Network Management und Persistency wurden im Diagrammlayout umpositioniert (Network Management und Persistency befinden sich nun in der oberen Reihe, Communication Management in der mittleren Reihe).
R22-11 → R23-11 normative Änderung Nachfolger: FIG-5c0e5b3e4d913381
  • Cryptography: Funktionaler Cluster («aapFunctionalCluster») samt «use»-Abhängigkeit auf Logger entfernt.
  • Identity and Access Management: Funktionaler Cluster («aapFunctionalCluster») samt «use»-Abhängigkeit auf Logger entfernt.
  • Vehicle Update and Configuration Management: Neuer funktionaler Cluster («aapFunctionalCluster», daemon-based) mit «use»-Abhängigkeit auf Logger hinzugefügt.
  • Communication Management: Ausführungsklassifikation zu daemon-based geändert.
  • Adaptive Intrusion Detection System Manager: Umbenannt zu Intrusion Detection System Manager (Präfix Adaptive entfernt).
  • Layout: Platform Health Management aus der unteren Reihe in die mittlere Reihe verschoben.

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() + Log(MsgId, Params) + LogDebug(): LogStream + LogError(): LogStream + LogFatal(): LogStream + LogInfo(): LogStream + LogVerbose(): LogStream + LogWarn(): LogStream + WithLevel(): LogStream | «aapFunctionalClu... Execution Management daemon-based | «aapFunctionalClust... Diagnostic Management daemon-based | «aapFunctionalCluster» | Communication | Management | «aapFunctionalCluster» Update and Configuration | Management daemon-based | «aapFunctionalClus... | Persistency | «aapFunctionalCluster» Adaptive Intrusion Detection System | Manager daemon-based | «aapFunctionalClust... | Time Synchronization daemon-based | «aapFunctionalClu... | State Management daemon-based | «aapFunctionalClu... Network Management | «aapFunctionalCluster» Platform Health Management | daemon-based | «aapFunctionalClust... | Cryptography daemon-based | «aapFunctionalClust... | Identity and Access | Management | «use» | «use» «use» | «use» «use» | «use» «use» «use» «use» «use» «use» «use»

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R22-11 AUTOSAR_EXP_SWArchitecture S. 44 9.17 Figure 9.17: Users of the Log and Trace interfaces