AUTOSAR_AP_SWS_UpdateAndConfigurationManagement
FIG-10f38b5b3bd2728a
667 × 456 px
1 Release(s)
Figure 11.2: Sequence diagram showing the data transmission
SHA-256 Inhalts-Fingerabdruck:
10f38b5b3bd2728a1fac8f9264806318895840027a9267585312833aa990fb4b
✦
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-Sequenzdiagramm (Interaktionsdiagramm) mit geschachtelten
loop-Kombinationsfragmenten (Combined Fragments). - Funktionale Einordnung: AUTOSAR Adaptive Platform (AP), Functional Cluster Update and Configuration Management (UCM) gemäß
AUTOSAR_AP_SWS_UpdateAndConfigurationManagement(Release R23-11). - Technischer Zweck: Spezifikation des standardisierten Übertragungsprotokolls für Software-Pakete (Software Packages) über die Service-Schnittstelle
PackageManagement(ara::ucm::pkgmgr::PackageManagement). Es bildet die Streaming- bzw. Chunking-Phase des Paket-Downloads (angelehnt an UDS ISO 14229-1 Services0x34 RequestDownload,0x36 TransferData,0x37 RequestTransferExit) auf serviceorientierte Inter-Process-Communication (ara::com) ab.
2. Komponenten, Entitäten & Schnittstellen
- Akteure & Lifelines:
UCM Client: Service Consumer (Client). Generische applikative Instanz, welche die Software-Paketübertragung steuert und initiiert (z. B. OEM-spezifische Diagnose-Applikation, OTA-Client-Daemon oder Update-Orchestrator).«ServiceProvider» :PackageManagement: Service Provider Lifeline. Die UCM-Kerninstanz, welche die standardisierte Service-Schnittstelleara::ucm::pkgmgr::PackageManagementbereitstellt.
- Methoden & Signaturen (
ara::com-Methodenaufrufe):TransferStart(PackageSize: uint64)→(TransferId: TransferIdType, BlockSize: uint64): Initialisiert die Übertragungssitzung für ein einzelnes Software-Paket. Liefert die eindeutige Session-ID (TransferId) und die maximal zulässige Blockgröße (BlockSize) für Chunks zurück.TransferData(TransferId: TransferIdType, ByteVectorType: ara::core::Span<const Byte> / ara::core::Vector<uint8_t>, blockCounter: uint64)→TransferDataReturnType: Sukzessiver Datenblock-Transfer.TransferExit(TransferId: TransferIdType)→TransferExitReturnType: Schließt die Übertragung eines Software-Pakets ab.
- Interne Operationen / Selbstaufrufe (UCM-intern):
storeData(byteVector): Persistierung der empfangenen Chunks im zugewiesenen temporären Staging-/Swap-Speicherbereich.checkTransferredPackage(): Integritäts- und Authentizitätsprüfung (z. B. Dekomprimierung, Validierung von Manifest, Signatur, SHA-256/SHA-512 Hash) nach vollständigem Empfang aller Blöcke.
3. Dynamisches Verhalten & Sequenzablauf
- Äußere Schleife (
loop for each Software Package):- Wird für jedes zu installierende Software-Paket innerhalb einer Update-Kampagne durchlaufen.
- 1. Initialisierung: Die Diagnose-Applikation ruft synchron oder asynchron via
ara::core::Futuredie MethodeTransferStartmit der GesamtgrößePackageSizeauf. UCM allokiert Ressourcen, generiert einTransferId-Handle und meldet die verarbeitbare BlockgrößeBlockSizezurück.
- Innere Schleife (
loop for each segment of a Software Package):- Aufteilung des Pakets in diskrete Segmente ≤ BlockSize.
- 2. Datenübertragung: Sequentieller Aufruf von
TransferData(TransferId, ByteVectorType, blockCounter). - 3. Persistierung & Bestätigung: UCM führt synchron
storeData(byteVector)aus, validiert den sequentiellen Zählerstand (blockCounter) und bestätigt den Block mitTransferDataReturnType(Erfolgsstatus oderUcmErrorDomain-Fehlercodes wieBlockReceivedOutOfOrder/InvalidTransferId).
- Abschluss & Validierung:
- 4. Beendigung des Chunks-Streams: Nach Übertragung des letzten Segments ruft die Diagnose-Applikation
TransferExit(TransferId)auf. - 5. Verifikation: UCM führt
checkTransferredPackage()aus. Bei erfolgreicher Verifikation wechselt das Paket intern in den ZustandTRANSFERRED(bereit fürProcessSwPackage). - 6. Rückmeldung: UCM quittiert mit
TransferExitReturnType(oder Fehlern wiePackageInconsistent,AuthenticationFailed,InsufficientMemory).
- 4. Beendigung des Chunks-Streams: Nach Übertragung des letzten Segments ruft die Diagnose-Applikation
4. Normative Relevanz & Entwickler-Hinweise
- Puffer- und Speichermanagement:
- Die Diagnostic Application muss die vom UCM in
TransferStartzurückgegebeneBlockSizezwingend einhalten; das Überschreiten führt zu Laufzeitfehlern (SizeTooLarge). - Der Applikationsentwickler muss Zero-Copy- oder Shared-Memory-Mechanismen (
ara::comIPC) berücksichtigen, um Serialisierungs-Overheads bei großen Binaries imByteVectorTypezu minimieren.
- Die Diagnostic Application muss die vom UCM in
- Robuste Blockzählung (
blockCounter):- Der
blockCounterbeginnt normativ bei 1 und muss monoton inkrementiert werden. UCM prüft Paketverluste oder doppelte Blöcke; Abweichungen führen zum Abbruch der Übertragung.
- Der
- Fehlerbehandlung & Timeouts:
- Schlägt
checkTransferredPackage()fehl, muss UCM die allokierten Ressourcen bereinigen; die Applikation muss überTransferExitReturnType(ara::core::Result) die genaue Ursache evaluieren. - Bei Verbindungsabbruch oder Timeout greift das UCM-interne Session-Management (Inaktivitäts-Timeout führt zum Verfall der
TransferId).
- Schlägt
- Zustandsübergang im UCM-Lifecycle:
TransferExitvollzieht keinen Software-Austausch, sondern finalisiert ausschließlich den Transfer. Der Rollout (Aktivierung/Installation) erfordert nachfolgend separate Aufrufe der UCM-Service-Methoden (ProcessSwPackage, gefolgt vonActivateim Rahmen des UCM State Handlings).
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.