AUTOSAR_AP_EXP_PlatformDesign
FIG-7f6e0aab02be3112
930 × 657 px
1 Release(s)
Figure 13.8: Overview of Processing and Activation of Software Package
SHA-256 Inhalts-Fingerabdruck:
7f6e0aab02be3112ad4f3a65ec4c286169aa7c002d7b91e9e1ce6ba3e3d6ef3a
✦
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: UML-Zustandsdiagramm (State Machine Diagram / Statechart) des Composite-Zustandsraums
PackageManagerStatus. - Technischer Zweck & Einordnung: Spezifiziert den zentralen Lebenszyklus der Paketverarbeitung im Functional Cluster Update and Configuration Management (UCM) der AUTOSAR Adaptive Platform (Interface
ara::ucm::pkgmgr::PackageManager). Es definiert die formalen Zustandsübergänge bei OTA- und Werkstatt-Updates von Software-Paketen über die Phasen Bereitstellung, Validierung, Aktivierung, Laufzeitverifikation, Rollback und Ressourcenfreigabe.
2. Komponenten, Entitäten & Schnittstellen
- Zustandsautomat / Typ:
PackageManagerStatus(korrespondierend zum Datentypara::ucm::pkgmgr::PackageManagerStatusType). - Zustände und Do-Aktivitäten:
kIdle: Ruhezustand; keine Update-Aktivität aktiv, bereit für neue Aufträge.kProcessing(do / process SW package): Dekompression, Signatur-, Hash- und Integritätsprüfung des übergebenen Software-Pakets.kReady: Mindestens ein Paket erfolgreich prozessiert (ProcessedPackages > 0); bereit zur Aktivierung, Revertierung oder Weiterverarbeitung.kActivating(do / DependencyCheck): Validierung statischer/dynamischer Paketabhängigkeiten, Kompatibilität der Execution-/Service-Manifeste und Vorbereitung der Partitions-/Dateisystemumschaltung.kVerifying(do / MonitorApplicationRestart): Überwachung des Anwendungsneustarts und der Funktionsfähigkeit des Gesamtsystems in Kooperation mit State Management (SM) und Execution Management (EM).kActivated: Neue Software-Version erfolgreich aktiv und verifiziert; wartet auf Finalisierung oder manuellen Rollback.kRollingBack(do / roll back to old version): Wiederherstellung der vorherigen Software-Stände / Umschaltung auf die passive Systempartition.kRolledBack: Rollback erfolgreich durchgeführt; System befindet sich wieder auf Vorversion.kRollingBackFailed: Fehler beim Wiederherstellen der Vorversion (kritischer Fehlerzustand).kCleaningUp(do / clean up): Bereinigung temporärer Artefakte, alter Paketbestände und Cache-Bereiche.
- Service-Methoden / Trigger (
ara::ucm::pkgmgr):ProcessSwPackage: Startet/fortsetzt die sequentielle Paketverarbeitung.Cancel: Bricht laufenden Verarbeitungsprozess ab.Activate: Initiiert Aktivierungssequenz der im Puffer liegenden Pakete.Rollback: Erzwingt Rückkehr zur Vorversion.RevertProcessedSwPackages: Verwirft prozessierte Pakete vor Aktivierung.Finish: Schließt Aktivierungs- oder Rollback-Vorgang verbindlich ab.
- Interne Ereignisse & Guards:
- Guards:
[ProcessedPackages=0],[ProcessedPackages>0]. - Interne Signale:
PackageProcessed,OnSuccess,OnFailure.
- Guards:
3. Dynamisches Verhalten & Sequenzablauf
Nominaler Update-Ablauf (Happy Path)
- Initialisierung: Startknoten (
Initial) setzt UCM initial aufkIdle. - Paketverarbeitung: Aufruf
ProcessSwPackageführt nachkProcessing. Nach Verarbeitung des Pakets (PackageProcessed [ProcessedPackages>0]) Übergang nachkReady. - Multi-Package-Staging: Aus
kReadykann über erneutesProcessSwPackagezyklisch nachkProcessinggewechselt werden, um mehrere Teilpakete transaktional zu bündeln. - Aktivierung: Aus
kReadylöstActivateden Übergang nachkActivatingaus (do / DependencyCheck). - Verifikation: Bei erfolgreichem Dependency-Check (
OnSuccess) Übergang nachkVerifying(do / MonitorApplicationRestart). UCM signalisiert SM/EM den Neustart betroffener Prozesse oder das Umschalten von Function Groups. - Commit & Cleanup: Melden alle Instanzen fehlerfreien Hochlauf (
OnSuccess), geht das System nachkActivated. Der Aufruf vonFinishüberführt nachkCleaningUp(do / clean up), gefolgt von einer automatischen Transition zurück nachkIdle.
Abbruch- und Revert-Pfade
- Cancel in
kProcessing:Cancelals Self-Transition initiiert den Abbruch.- Sind keine Pakete verarbeitet (
Cancelled [ProcessedPackages=0]), fällt das System direkt nachkIdlezurück. - Existieren bereits zuvor verarbeitete Pakete (
Cancelled, PackageProcessed [ProcessedPackages>0]), geht das System nachkReady.
- Revert: Aus
kProcessingsowiekReadyverwirftRevertProcessedSwPackagesalle gepufferten Pakete, wechselt nachkCleaningUpund kehrt nachkIdlezurück.
Fehler- und Rollback-Pfade
- Fehlschlag bei Aktivierung: Schlägt der
DependencyCheckinkActivatingfehl (OnFailure), kehrt UCM unschädlich nachkReadyzurück. - Fehlschlag bei Verifikation / Manuelles Rollback:
- Schlägt
MonitorApplicationRestartfehl (OnFailure) oder wird auskVerifyingbzw.kActivateddie MethodeRollbackgetriggert, wechselt der Automat nachkRollingBack. kRollingBackführt bei Erfolg (OnSuccess) nachkRolledBack. Ein anschließendesFinishräumt viakCleaningUpauf und führt nachkIdle.- Schlägt der Rollback fehl (
OnFailure), wechselt UCM in den FehlerzustandkRollingBackFailed. Aus diesem kann über einen erneutenRollback-Aufruf ein Retry erzwungen werden.
- Schlägt
4. Normative Relevanz & Entwickler-Hinweise
- API-Vertrag & Fehlersignalisierung: Jeder Methodenaufruf an das UCM-Interface (
ara::ucm::pkgmgr::PackageManager) außerhalb des im Diagramm definierten Ursprungszustands muss mit dem FehlercodeUcmErrorDomain::kInvalidPackageStatusbzw.kOperationNotAllowedabgewiesen werden. - Transaktionale Persistenz & A/B-Partitionierung:
- Im Zustand
kProcessingverarbeitete Daten müssen bis zukCleaningUpisoliert gehalten werden (Shadow-Tree, Inactive Bank). - Der Systemzustand vor
Activatedarf erst nach vollständigem Durchlauf vonkCleaningUpnachkActivatedfreigegeben bzw. überschrieben werden.
- Im Zustand
- Kopplung an State Management & Watchdogs: Die Phase
kVerifyingist zeit- und sicherheitskritisch. Schlägt das Erreichen der Zielzustände inara::execoderara::sminnerhalb konfigurierter Timeouts fehl, muss der UCM-Treiber zwingend den PfadOnFailurenachkRollingBacktriggern, um Deadlocks der Machine zu verhindern. - Ressourcenfreigabe: Weder
kActivatednochkRolledBackgeben Speicherplatz frei. Applikations- oder Backend-Entwickler müssen sicherstellen, dass nach erfolgreicher Bestätigung zwingendFinish()aufgerufen wird, da persistenter Flash-Speicher andernfalls bis zum Erreichen vonkCleaningUpdurch Altversionen blockiert bleibt.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.