DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_SWS_ExecutionManagement FIG-f89e84391d8711ac 702 × 340 px 1 Release(s)

Figure 5.2: Interfaces provided by Execution Management to State Management

SHA-256 Inhalts-Fingerabdruck: f89e84391d8711ac69c9400655ef9b310d8f4cd75e62d6fe48cb7e33d7a2598e
✦ 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

  • Diagrammtyp: UML-Klassendiagramm / Schnittstellendiagramm (AUTOSAR Adaptive Platform Metamodell-Mapping).
  • Technischer Zweck: Spezifikation der Schnittstellenbeziehung zwischen den beiden daemon-basierten funktionalen Clustern State Management (SM) und Execution Management (EM) gemäß AUTOSAR_AP_SWS_ExecutionManagement (R23-11).
  • Architektonische Einordnung: EM stellt den Ausführungsmechanismus bereit (Prozess-Lifecycle, Ressourcenüberwachung, Zustandswechselausführung), während SM die deterministische Kontrollinstanz (Policy Manager) darstellt. SM triggert Zustandswechsel für Funktionsgruppen und Maschinenstati ausschließlich über die von EM bereitgestellten Schnittstellen.

2. Komponenten, Entitäten & Schnittstellen

Entitäten & Stereotypen
  • State Management («aapFunctionalCluster», daemon-based): Konsument der Steuerungsschnittstellen; initiiert Transitionen und wertet Fehlerzustände aus.
  • Execution Management («aapFunctionalCluster», daemon-based): Anbieter und Implementierer der Schnittstellen; kontrolliert Betriebssystemprozesse (Process, ProcessExecutionManifest).
  • StateClient («aapAPI,aapNativeInterface»): C++-API (ara::exec::StateClient) mit folgenden Methoden:
    • + Create(function) (statische Factory-Methode): Instanziierung des Clients mit Übergabe eines Callback-Funktors (z. B. für asynchrone Transition-Notifications / Error-Handling).
    • + GetExecutionError(): Synchrone Statusabfrage des letzten aufgetretenen Ausführungsfehlers im Funktionsgruppenkontext.
    • + GetInitialMachineStateTransitionResult(): Liefert das Ergebnis der initialen Maschinenstatus-Transition nach Plattform-Boot.
    • + SetState(FunctionGroupState): Future: Asynchrone Anforderung eines Wechsels in den spezifizierten Zustand einer Funktionsgruppe.
  • FunctionGroup («aapAPI,aapPortInterface»): Port-basiertes Metamodell-Interface zur Repräsentation konfigurierter Funktionsgruppen mit folgender Methode:
    • + Create() (statische Factory-Methode): Instanziierung bzw. Auflösung des Funktionsgruppen-Repräsentanten.
  • FunctionGroupState («aapAPI,aapNativeInterface»): Native C++-Programmierschnittstelle (ara::exec::FunctionGroupState) zur Adressierung von Zielzuständen einer Funktionsgruppe mit folgender Methode:
    • + Create() (statische Factory-Methode): Typsichere Erzeugung einer Zielzustandskonfiguration.
Beziehungen & Abhängigkeiten
  • Realisierung (InterfaceRealization / gestrichelte Linie mit geschlossener, nicht ausgefüllter Pfeilspitze):
    • Execution Management realisiert StateClient (Native C++ API Provider).
    • Execution Management realisiert FunctionGroup (Bereitstellung der Port-Interface-Semantik auf Plattformebene).
    • Execution Management realisiert FunctionGroupState (Bereitstellung der nativen C++-Implementierung).
  • Nutzungsabhängigkeit («use» / gestrichelte offene Pfeillinie):
    • State Management nutzt StateClient für imperative Steuerungsaufrufe.
    • State Management nutzt FunctionGroupState als native Programmierschnittstelle.
  • Port-Nutzungsabhängigkeit («use», «aapRequiredPort» / gestrichelte offene Pfeillinie):
    • State Management besitzt einen typisierten Required Port (RPortPrototype) gegen das FunctionGroup-PortInterface zur modellbasierten Bindung.

3. Dynamisches Verhalten & Sequenzablauf

  1. Initialisierung:
    • SM instanziiert den Client über ara::exec::StateClient::Create(callback).
    • SM prüft via GetInitialMachineStateTransitionResult(), ob der initiale Systemboot (z. B. MachineState = Startup) durch EM erfolgreich abgeschlossen wurde.
  2. Zustandsübergang (Asynchroner Pfad):
    • SM instanziiert bzw. adressiert die Ziel-Funktionsgruppe über FunctionGroup::Create().
    • SM erzeugt die Zielzustands-Instanz über FunctionGroupState::Create().
    • SM ruft SetState(targetState) mit der erzeugten FunctionGroupState-Referenz auf.
    • Der Aufruf blockiert nicht, sondern liefert sofort ein ara::core::Future<void>.
    • EM bestimmt alle abhängigen Prozesse, terminiert veraltete Prozesse (SIGTERM / SIGKILL nach Timeout), startet neu erforderliche Prozesse und wartet auf deren ReportExecutionState(kRunning).
    • Sobald die Transition vollständig abgeschlossen oder fehlgeschlagen ist, setzt EM das korrespondierende ara::core::Promise.
  3. Fehlerbehandlung:
    • Scheitert ein Prozessstart oder die Zustandsverifikation, wird das Future fehlerhaft aufgelöst. SM ermittelt über GetExecutionError() bzw. den registrierten Callback die Fehlerursache (ExecErrc) und initiiert Fail-Safe- oder Degradations-Strategien.

4. Normative Relevanz & Entwickler-Hinweise

  • Zugriffsbeschränkung & IAM: StateClient ist ein geschütztes Systeminterface. In der Manifest-Modellierung muss dem SM-Prozess über Prozess-Rechte (ExecutionClientPermission bzw. StateClientAuthorization) das exklusive Recht zur Instanziierung eingeräumt werden. Standard-Applikationen (AdaptiveApplications) dürfen StateClient nicht einbinden.
  • Asynchronitäts-Paradigma (ara::core::Future): SetState() darf innerhalb des SM-Haupt-Eventloops niemals blockierend (Future::get() / Future::wait()) behandelt werden, um Deadlocks bei mehrstufigen Transitionen und Timeout-Überwachungen im SM-Daemon zu verhindern. Verwendung von .then()-Continuations oder Polling via wait_for().
  • Modellierungs-Konsistenz (ARXML) & Schnittstellentrennung:
    • FunctionGroup fungiert als «aapPortInterface» und definiert die vertragliche Basis zwischen dem Systementwurf (ARXML) und der Bindung an State Management via «aapRequiredPort».
    • FunctionGroupState ist als native C++-Schnittstelle («aapNativeInterface») modelliert; Instanzen werden typsicher über Create() erzeugt und dem StateClient übergeben, anstatt als separates Metamodell-PortInterface modelliert zu sein.

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

R23-11 → R24-11 normative Änderung Vorgänger: FIG-66aef658b5b6965e
  • FunctionGroup: Neues Schnittstellenelement mit Stereotyp «aapAPI,aapPortInterface» und statischer Operation + Create() neu hinzugefügt.
  • FunctionGroupState: Stereotyp von «aapAPI,aapPortInterface» zu «aapAPI,aapNativeInterface» geändert.
  • FunctionGroupState: Statische Operation + Create() neu hinzugefügt.
  • State Management: Abhängigkeit zu FunctionGroupState von einer Port-Abhängigkeit («use», «aapRequiredPort») auf eine native C++-Nutzungsabhängigkeit («use») umgestellt.
  • State Management: Neue Port-Abhängigkeit («use», «aapRequiredPort») auf das Interface FunctionGroup gerichtet.
  • Execution Management: Neue Schnittstellenrealisierung (InterfaceRealization) für FunctionGroup ergänzt.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«aapFunctionalCluster» Execution Management daemon-based | «aapFunctionalCluster» | State Management daemon-based | «aapAPI,aapNativeInterface» | StateClient | + Create(function) + GetExecutionError() + GetInitialMachineStateTransitionResult() + SetState(FunctionGroupState): Future | «aapAPI,aapNativeInterface» | FunctionGroupState | + Create() | «aapAPI,aapPortInterface» | FunctionGroup | + Create() | «use» «use» «aapRequiredPort» «use»

Begleitender Spezifikationstext:

Specification of Execution Management AUTOSAR AP R24-11 5 Dependencies to other Functional Clusters This chapter provides an overview of the dependencies to other Functional Clusters in the AUTOSAR Adaptive Platform. Section 5.1 “Provided Interfaces” lists the interfaces provided by Execution Management to other Functional Clusters. Section 5.2 “ Required Interfaces” lists the interfaces required by Execution Management. A detailed technical architecture documentation of the AUTOSAR Adaptive Platform is provided in [10]. 5.1 Provided Interfaces «aapFunctionalCluster» Execution Management daemon-based «aapAPI,aapNativeInterface» ExecutionClient + Create() + ReportExecutionState(ExecutionState): Result «aapFunctionalClust... State Management daemon-based «aapFunctionalClust... Diagnostic Management daemon-based «aapFunctionalClust... Platform Health Management daemon-based «aapFunctionalClust... Update and Configuration Management daemon-based «aapFunctionalClust... Time Synchronization daemon-based «use» «use» «use» «use» «use» Figure 5.1: Interfaces provided by Execution Management to other Functional Clusters Figure 5.1 shows the interfaces provided by Execution Management to other Functional Clusters within the AUTOSAR Adaptive Platform. «aapFunctionalCluster» Execution Management daemon-based «aapFunctionalCluster» State Management daemon-based «aapAPI,aapNativeInterface» StateClient + Create(function) + GetExecutionError() + GetInitialMachineStateTransitionResult() + SetS

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R24-11 AUTOSAR_AP_SWS_ExecutionManagement S. 17 5.2 Figure 5.2: Interfaces provided by Execution Management to State Management