Gère le transfert, le traitement et l'activation sécurisée des paquets logiciels de mise à jour sur la plateforme.
Rôle et contexte système de l'interface de service
L'interface de service PackageManagement constitue le point d'accès central du module UCM (Update and Configuration Management) sur la plateforme AUTOSAR Adaptive [SWS_UCM_00343]. Déployée selon le modèle orienté services d'ara::com, elle est fournie par l'instance UCM (Skeleton) aux applications clientes (Proxy), telles qu'un gestionnaire de mise à jour distant (OTA Client) ou le composant State Management [SWS_UCM_00352]. L'interface orchestre l'ensemble du cycle de déploiement logiciel : réception des paquets, validation des dépendances, extraction, activation et finalisation des modifications sur la machine [SWS_UCM_00345], [SWS_UCM_00354].
Méthodes, événements et champs
L'ensemble des méthodes définies dans PackageManagement sont configurées avec l'attribut Fire & Forget = false, imposant une sémantique d'appel requête-réponse asynchrone via des objets ara::core::Future / Promise côté client [SWS_UCM_00345]. Ces opérations couvrent le transfert de données par blocs (TransferStart, TransferData, TransferExit) ou l'enregistrement direct via URI avec RegisterSoftwarePackage [SWS_UCM_00344], [SWS_UCM_00346], [SWS_UCM_00347]. Des méthodes d'inspection permettent de consulter les grappes logicielles présentes (GetSwClusterInfo), les modifications en attente (GetSwClusterChangeInfo), les métadonnées de manifeste (GetSwClusterManifestInfo), les paquets disponibles (GetSwPackages) et l'historique complet des opérations (GetHistory) [SWS_UCM_00355], [SWS_UCM_00356], [SWS_UCM_00357], [SWS_UCM_00358], [SWS_UCM_00359].
L'interface met également à disposition le champ CurrentStatus de type CurrentStatusType, pourvu d'un accesseur (HasGetter = true) et d'un notificateur d'événements (HasNotifier = true), permettant au client de s'abonner aux changements d'état d'UCM sans recourir à un sondage actif [SWS_UCM_00361]. En complément, la méthode GetProgress retourne l'avancement spécifique de l'état actif dans la machine d'états interne [SWS_UCM_00360]. Le contrôle temporel des opérations longues est assuré par les méthodes Suspend et Resume [SWS_UCM_00397], [SWS_UCM_00398].
Cycle de vie, flux de sessions et dépendances d'état
Le traitement des paquets logiciels suit une séquence transactionnelle stricte identifiée par un identifiant de transfert (TransferIdType) [SWS_UCM_00345]. La session débute par l'allocation d'un transfert via TransferStart ou RegisterSoftwarePackage, suivie du chargement effectif des blocs de données par TransferData puis de la clôture du transfert avec TransferExit [SWS_UCM_00346], [SWS_UCM_00347]. Le client déclenche ensuite le traitement par ProcessSwPackage, qui valide l'intégrité, la compatibilité et extrait les grappes logicielles [SWS_UCM_00349]. L'activation finale via Activate applique les grappes traitées en étroite coordination avec State Management, avant que Finish ne purge les données temporaires de travail [SWS_UCM_00352], [SWS_UCM_00354].
En cas d'incident ou de demande d'annulation avant activation, le client peut interrompre l'opération en cours via Cancel, supprimer un transfert transféré via DeleteTransfer, annuler le traitement de paquets avec RevertProcessedSwPackages, ou restaurer l'état antérieur de la machine à l'aide de Rollback [SWS_UCM_00348], [SWS_UCM_00350], [SWS_UCM_00351], [SWS_UCM_00353].
Diagramme de séquence : Déroulement nominal de transfert, traitement, activation et finalisation d'un paquet logiciel UCM. Sources : [SWS_UCM_00345], [SWS_UCM_00346], [SWS_UCM_00347], [SWS_UCM_00349], [SWS_UCM_00352], [SWS_UCM_00354].
Gestion des erreurs applicatives
L'interface formalise un ensemble exhaustif d'erreurs applicatives (Application Errors) signalant les violations de préconditions, d'état ou d'intégrité [SWS_UCM_00349]. L'erreur kOperationNotPermitted est partagée par la quasi-totalité des méthodes pour interdire un appel hors contexte d'état [SWS_UCM_00346], [SWS_UCM_00352]. Les vérifications de session et de transfert lèvent notamment kTransferIdInvalid, kBlockIncorrect ou kDataInsufficient en cas d'incohérence dans le flux d'octets [SWS_UCM_00346], [SWS_UCM_00347]. Lors du traitement et de l'activation, des vérifications poussées protègent le système contre les paquets corrompus, incompatibles ou obsolètes (kAuthenticationFailed, kPackageVersionIncompatible, kSwclRemovalDenied, kDependencyMissing, kUpdateSessionRejected, kVerificationFailed) [SWS_UCM_00349], [SWS_UCM_00352].
Cette explication a été générée automatiquement par une IA et révisée conformément aux règles de traçabilité d'autodocs.
gemini-3.8-flash-low· 2026-10-13 · Original allemand