AUTOSAR_AP_SWS_UpdateAndConfigurationManagement
FIG-8522e69c55d822cf
802 × 1108 px
1 Release(s)
Figure 9.3: UCM composite structure - Information related (Part 1)
SHA-256 Inhalts-Fingerabdruck:
8522e69c55d822cf573542b56da8e74810731fdc8da5bde5f20c4fc7cf46ed75
✦
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-Klassendiagramm / Service-Datenmodell (Strukturdiagramm für Datentypen, Vektoren und Service-Schnittstellen).
- Architektur-Kontext: AUTOSAR Adaptive Platform (Release R25-11), Spezifikation Update and Configuration Management (
AUTOSAR_AP_SWS_UpdateAndConfigurationManagement). - Technischer Zweck: Definition des statischen Typ- und Schnittstellenmodells für UCM-Statusabfragen (Informational / Getter APIs) des UCM-Kernservice
PackageManagement. Das Modell kapselt Identifikatoren, Transferfortschritte, Paketmetadaten, Cluster-Zustände sowie die lückenlose Update-Historie (Audit-Trail) für OTA-Clients bzw. UCM-Master-Instanzen.
2. Komponenten, Entitäten & Schnittstellen
2.1 Service-Schnittstelle
«interface» PackageManagement (Getter)[SWS_UCM_00131]: Definiert die synchronen/asynchronen Abfragemethoden (ara::com Service-Methoden) für den UCM-Status:GetHistory(unsigned long, unsigned long): HistoryVectorType– Abfrage historischer Update-Aktionen innerhalb eines Zeit- oder Indexfensters.GetId(): UCMIdentifierAndVersionType– Auslesen der UCM-Instanzkennung und Version.GetProgress(TransferIdType): char– Abfrage des Übertragungs-/Verarbeitungsfortschritts für eine aktive Übertragung (im generierten C++-Binding typischerweiseProgressInformationType/ Fortschrittswert).GetSwClusterInfo(): SwClusterInfoVectorType– Abfrage des Ist-Zustands aller Software-Cluster auf dem Target.GetSwClusterManifestInfo(SwNameType): SwClusterManifestInfoType– Detaillierte Manifest-Metadaten eines spezifizierten Clusters.GetSwClustersChangeInfo(): SwClusterInfoVectorType– Liste der von aktuellen/anstehenden Updates betroffenen Cluster.GetSwPackages(): SwPackageInfoVectorType– Auflistung aller im UCM bekannten bzw. transferierten Software-Pakete.
2.2 Datenstrukturen & Vektoren («dataType»)
SwPackageInfoVectorType[SWS_UCM_00040]:- Aggregation von
SwPackageInfoTypemit Kardinalität[1..n].
- Aggregation von
SwPackageInfoType[SWS_UCM_00039]:consecutiveBlocksReceived: uint64– Zähler der kontinuierlich empfangenen Block-Sequenzen.consecutiveBytesReceived: uint64– Bisher empfangene Gesamtdatenmenge in Bytes.state: SwPackageStateType– Aktueller Transfer-/Verarbeitungsstatus.swClusterName: SwClusterNameType– Assoziierter Software-Cluster.swPackageName: SwPackageNameType– Eindeutiger Paketname.transferId: TransferIdType– Sitzungsgebundene Übertragungs-ID.version: StrongRevisionLabelString– Semantische Versionsbezeichnung des Pakets.
HistoryVectorType[SWS_UCM_00135]:- Aggregation von
HistoryTypemit Kardinalität[1..n].
- Aggregation von
HistoryType[SWS_UCM_00134]:action: ActionType– Ausgeführte Operation.failureError: uint64– UCM-Fehlercode bei fehlgeschlagenen Operationen (0bei Erfolg).name: SwClusterNameType– Name des betroffenen Ziel-Clusters.resolution: ResultType– Finales Ergebnis der Update-Transaktion.time: uint64– POSIX-Timestamp der Transaktionsdurchführung.version: StrongRevisionLabelString– Software-Version nach Abschluss der Operation.
ProgressInformationType[SWS_UCM_00341]:currentStatus: UpdateStateType– Status des Update-Ablaufs.estimatedDuration: uint32– Geschätzte Restdauer in Sekunden.progress: uint8– Prozentualer Fortschritt (0..100 %).
2.3 Primitiven und Typdefinitionen («primitive» / «dataType»)
TransferIdType[SWS_UCM_00031]: Primitiver Typ (UUID/Ganzzahl) zur eindeutigen Identifikation einer laufenden Transfer-Transaktion (TransferStart).SwClusterNameType[SWS_UCM_00071]: String-basierter Typ für den kanonischen Namen eines Software-Clusters.SwPackageNameType[SWS_UCM_00362]: Typ zur Kennzeichnung des spezifischen Software-Paketnamens.StrongRevisionLabelString[SWS_UCM_00175]: Strikt formatierter String (gemäß SemVer / AUTOSAR-Versionskonventionen).
2.4 Enumerationen («enumeration»)
SwPackageStateType[SWS_UCM_00038]:kTransferring = 0x00(Paketübertragung läuft)kTransfered = 0x01(Paket vollständig übertragen)kProcessing = 0x02(Inhaltsverarbeitung / Dekomprimierung / Validierung läuft)kProcessed = 0x03(Verarbeitung erfolgreich abgeschlossen)kProcessingStream = 0x04(Streaming-basierte direkte Verarbeitung aktiv)
UpdateStateType[SWS_UCM_00396]:kPreparing = 0x02,kActivating = 0x03,kActivated = 0x04,kRollingBack = 0x05,kRolledBack = 0x06,kCleaningUp = 0x07,kVerifying = 0x08,kRollingBackFailed = 0x09.
ActionType[SWS_UCM_00132]:kUpdate = 0x00(Cluster-Update)kInstall = 0x01(Neuinstallation eines Clusters)kRemove = 0x02(Deinstallation eines Clusters)kUpdateConfiguration = 0x03(Reine Konfigurationsänderung)
ResultType[SWS_UCM_00133]:kActivated = 0x00(Erfolgreich aktiviert)kActivatedAndRolledBack = 0x01(Aktiviert, aber wegen Fehler auf Altstand zurückgerollt)kVerificationFailed = 0x02(Verifikation vor Aktivierung fehlgeschlagen)
3. Dynamisches Verhalten & Sequenzablauf
Das Klassendiagramm bildet den Datenvertrag für den nachfolgenden synchronen Abfrage- und Statuszyklus während einer Update-Kampagne:
OTA-Client / Backend UCM (PackageManagement)
| |
|--- GetSwPackages() ------------------>| [Liefert SwPackageInfoVectorType]
| (Validierung Zustand/Bytes) |
| |
|--- GetProgress(TransferId) ---------->| [Liefert ProgressInformationType]
| (Abfrage während Aktivierung/Ver.) | (Zustände: kPreparing -> kActivating -> ...)
| |
|--- [Nach Kampagnenabschluss] -------->|
|--- GetHistory(startTime, endTime) --->| [Liefert HistoryVectorType]
| (Auditierung ResultType/ActionType)|
- Trigger & Preconditions:
GetProgresssetzt eine überTransferStartinitiierte, gültigeTransferIdTypevoraus.GetHistorygreift auf den persistenten, crash-sicheren Transaktions-Log des UCM-Speichers zu.
- Abbruch- und Fehlerbedingungen:
- Im Fehlerfall wechselt
UpdateStateTypevonkActivating/kVerifyingnachkRollingBackund final nachkRolledBackbzw.kRollingBackFailed. - Ein Eintrag in
HistoryTyperegistriert bei Abbruchresolution = kVerificationFailedoderkActivatedAndRolledBackunter Angabe des Fehlercodes infailureError.
- Im Fehlerfall wechselt
4. Normative Relevanz & Entwickler-Hinweise
- Service-Contract & Serialisierung (ara::com):
- Die Vektoren
SwPackageInfoVectorTypeundHistoryVectorTypeerfordern dynamische Container-Implementierungen (ara::core::Vector), deren Serialisierungs-Overhead über SOME/IP oder IPC bei großen Cluster-Zahlen und langen Historien begrenzt werden muss (Paginierung über Parameter beiGetHistory).
- Die Vektoren
- Streaming-Handling (
kProcessingStream):- Wenn der UCM direkt aus dem Eingangsstream verarbeitet, signalisiert
SwPackageStateType::kProcessingStream, dass keine lokale Komplettkopie des Pakets im Flash gehalten wird.consecutiveBytesReceiveddient hierbei dem lückenlosen Nachweis des Stream-Fortschritts.
- Wenn der UCM direkt aus dem Eingangsstream verarbeitet, signalisiert
- Persistenz & Crash-Konsistenz:
HistoryTypemuss persistent gegen unvorhergesehene Spannungsabfälle (Power-Cut during Activation) geschützt sein. Das FeldfailureErrorspiegelt die normativen UCM-Fehlerklassen (ara::core::ErrorCode) als 64-Bit-Ganzzahlwert wider.
- Atomizität der Zustände:
- Die explizite Trennung von
ActionType(kUpdate,kInstall,kRemove,kUpdateConfiguration) undResultTypeerzwingt eine zweidimensionale Validierung im OTA-Client: Ein Transaktionserfolg darf erst deklariert werden, wennresolution == kActivated (0x00)undfailureError == 0vorliegen.
- Die explizite Trennung von
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.