AUTOSAR_AP_EXP_SWArchitecture
FIG-4ffa29f6cddf0a41
310 × 723 px
1 Release(s)
Figure 9.73: General Interfaces of Update and Configuration Management
SHA-256 Inhalts-Fingerabdruck:
4ffa29f6cddf0a41284de72a7fcb9e6a5bfb9aa139152a5b3b28a43a58a3c5de
✦
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
- Diagrammtyp: UML-Komponentendiagramm mit Service-Interface-Spezifikation (AUTOSAR Adaptive Platform Architekturmodellierung).
- Technischer Zweck: Definition der primären Dienstschnittstelle (
ara::com) des funktionalen Clusters Update and Configuration Management (UCM) zur Aktualisierung, Deinstallation und Inspektion von Software-Clustern (SoftwareCluster) und Software-Paketen (SoftwarePackage) auf einer Adaptive-Plattform-Instanz. - Funktionale Einordnung: UCM ist als systemweiter Daemon (
daemon-based) realisiert. Die Schnittstelle kapselt den atomaren, transaktionalen Update-Prozess (A/B-Partitionierung, Rollback, Manifest-Prüfung) und stellt ihn sowohl fahrzeuginternen Over-the-Air-Clients (Adaptive Application) als auch Werkstatt- bzw. Diagnose-Testern (Diagnostic Applicationvia UDS/DoIP über das Diagnostic Management) bereit.
2. Komponenten, Entitäten & Schnittstellen
Akteure & Komponenten
«aapFunctionalCluster» Update and Configuration Management:- Ausprägung: Plattform-Kernkomponente als Daemon-basierter Dienstleister (
daemon-based). - Stellt über einen
«aapProvidedPort»die Service-Instanz bereit.
- Ausprägung: Plattform-Kernkomponente als Daemon-basierter Dienstleister (
Adaptive Application:- Generischer Konsumenten-Container (z. B. OTA-Update-Orchestrator oder Cloud-Gateway).
- Bindung via
«use»über einen«aapRequiredPort».
Diagnostic Application:- Spezialisierte Anwendung innerhalb des Applikationskontexts zur Vermittlung zwischen externen Diagnoseprotokollen (z. B. ISO 14229-1 / UDS Service 0x34, 0x36, 0x37) und der UCM-Engine.
- Bindung via
«use»über einen separaten«aapRequiredPort».
Service-Schnittstelle: «aapAPI, aapAraComServiceInterface» PackageManagement
Vollständig typisiertes ara::com-Service-Interface unter IAM-Zugriffskontrolle («aapAccessControlled»).
- Service-Fields (
«aapServiceField»):+ CurrentStatus: Repräsentiert den aktuellen Gesamtzustand des UCM (z. B.kIdle,kReady,kProcessing,kActivating). Bietet Getter-, Setter- (intern) und Notifier-Semantik für Zustandsänderungen.
- Service-Methoden (
«aapServiceMethod»):- Transfer-Phase:
TransferStart(): Initialisiert die Übertragung eines neuen Software-Pakets; liefert einen Transfer-Handle (TransferIdType).TransferData(): Blockweiser Payload-Streaming-Transfer (Binary Stream).TransferExit(): Schließt die Übertragung ab, verifiziert Prüfsummen/Signaturen.DeleteTransfer(): Verwirft einen begonnenen/abgeschlossenen Transfer vor der Verarbeitung.
- Verarbeitungs- & Vorbereitungsphase:
ProcessSwPackage(): Startet das Entpacken, Dekomprimieren, Integritätsprüfungen und Staging im Ziel-Dateisystem.GetSwProcessProgress(): Polling des asynchronen Verarbeitungsfortschritts (0–100 %).RevertProcessedSwPackages(): Rückabwicklung bereits prozessierter, aber noch nicht aktivierter Pakete.
- Aktivierungs- & Abschlussphase:
Activate(): Triggert die Aktivierung (z. B. Restart von Prozessen via Execution Management (EM), State-Wechsel oder OS-Reboot bei A/B-Partitionen).Rollback(): Erzwingt Rückkehr zum vorherigen stabilen Software-Stand bei Validierungsfehlern nach der Aktivierung.Finish(): Schließt die Update-Transaktion erfolgreich ab und konsolidiert den Persistenzstatus.Cancel(): Bricht den aktiven Vorgang kontrolliert ab.
- Inspektions- & Inventar-Methoden:
GetId(): Liefert die eindeutige UCM-Instanzkennung.GetHistory(): Ruft Update-Historie und Protokolleinträge ab.GetSwPackages(): Liste der aktuell im Transfer/Staging befindlichen Software-Pakete.GetSwClusterInfo(): Abfrage installierter Software-Cluster und deren Versionen.GetSwClusterChangeInfo(): Delta-Informationen geplanter Änderungen.GetSwClusterManifestInfo(): Auslesen des Software-Cluster-Manifests zur Laufzeit.
- Transfer-Phase:
3. Dynamisches Verhalten & Sequenzablauf
Der Methodenaufruf folgt einem strikten deterministischen Zustandsmodell:
[Idle] ──> TransferStart() ──> TransferData()* ──> TransferExit()
│
[Idle] <── DeleteTransfer() <───────────────────────────┤
▼
ProcessSwPackage() <──> GetSwProcessProgress()
│
[Idle] <── RevertProcessedSwPackages() <────────────────┤
▼
Activate()
│ │
(Erfolg) │ │ (Fehlschlag)
▼ ▼
Finish() Rollback()
│ │
▼ ▼
[Idle] [Idle]
- Vorbereitung (Transfer): Client ruft
TransferStart()auf, streamt Datenpakete sequenziell viaTransferData()und schließt mitTransferExit()ab. Fehlerhafte Transfers werden perDeleteTransfer()bereinigt. - Asynchrone Verarbeitung (Staging): Client initiiert
ProcessSwPackage(). Da dies I/O- und rechenintensiv ist, arbeitet UCM asynchron. Der Client überwacht das FeldCurrentStatusbzw. polltGetSwProcessProgress(). - Aktivierung: Aufruf von
Activate(). UCM koordiniert mit demExecution Management(EM) das Herunterfahren alter Applikationsinstanzen und das Starten neuer Versionen. - Finalisierung / Recovery:
- Bei erfolgreicher Selbstprüfung (Sanity Check / Health Monitoring): Aufruf von
Finish(). - Bei Boot-/Startfehlern oder Timeout: Auslösung von
Rollback()zur Wiederherstellung des vorigen Systemzustands.
- Bei erfolgreicher Selbstprüfung (Sanity Check / Health Monitoring): Aufruf von
4. Normative Relevanz & Entwickler-Hinweise
- IAM (Identity and Access Management):
Alle Operationen und das Feld tragen das Stereotyp
«aapAccessControlled». Applikationsentwickler müssen im Execution-Manifest (AdaptiveApplicationManifest) explizite Zugriffsrechte (SecurityEventDefinition,ServiceInterfaceDeployment) deklarieren; nicht autorisierte Aufrufe werden vom ara::com-Binding bzw. IAM mitara::core::ErrorCodeabgewiesen. - IPC- und Performance-Einschränkungen:
TransferData()transportiert Binärdaten über Inter-Process Communication (IPC). Zur Vermeidung von Pufferüberläufen und Deadlocks müssen Entwickler die in der Plattform definierte Blockgröße (chunk size) deterministisch einhalten. - Zustandsbehafteter UCM-Lebenszyklus:
Methodenaufrufe außerhalb der zulässigen Zustände (z. B.
Activate()vor erfolgreichemProcessSwPackage()) schlagen fehl und liefern definierte UCM-Fehlercodes (UcmErrc::kInvalidPackageManifest,UcmErrc::kNotAbleToProcessetc.). - Diagnose-Integration:
Wird eine
Diagnostic Applicationimplementiert, fungiert diese als Adapter: UDS RoutineControl (31) bzw. RequestDownload (34) / TransferData ($36) müssen 1:1 auf dasPackageManagement-Interface gemappt werden; die atomare Transaktionsverantwortung verbleibt zwingend im UCM-Daemon.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.