Le fonctionnement du déploiement d'une application avec une mise à jour automatique "liveupdate" a été détaillé dans des billets précédents :


L'application déployée via ce mécanisme, basé exclusivement sur des échanges HTTP(S), se met à jour à son lancement. Pour cela, l'application contacte le serveur qui contient la "version de référence" de l'installation, via son nom qui a été mémorisé lors de l'installation. Dans le cas général, le serveur est contacté via son nom de domaine, ce qui garanti un accès aux mises à jour dans le temps. Cependant, si le domaine permettant de contacter le serveur doit changer, ou si l'accès au serveur a toujours été fait par une adresse IP à changer, le mécanisme de mise à jour automatique ne pourra plus trouver les mises à jour.

 


Dans ces cas exceptionnels, il faut nécessairement passer par une réinstallation de l'application à partir de l'installation de référence, à sa nouvelle adresse. C'est la solution recommandée pour que par la suite l'application poursuive ses mises à jour automatiques, sur le nouveau serveur.

 


Suivant le contexte de déploiement de l'application, notamment pour une application "grand public", il n'est pas envisageable de demander aux utilisateurs d'effectuer la réinstallation. Il est préférable dans ce cas d'inclure cette réinstallation, dans l'application elle-même. La méthodologie est la suivante :

  • déployer sur le serveur répondant au nouveau domaine, une installation de référence de l'application dans sa version la plus récente,
  • déployer une version spécifique de l'application sur l'ancien serveur, qui va permettre une réinstallation. Ce déploiement doit nécessairement se faire via l'ancien serveur, pour que toutes les applications déjà déployées récupèrent cette version.

 


La version "spéciale réinstallation" pourra utiliser le principe suivant dès son code de projet pour provoquer la réinstallation à partir du nouveau serveur :

 

 

sURL_Intall est une chaîne = "http://www.nouveaudomain.org/Appli/INSTALL/INSTALL.EXE"
sFichierInstall est une chaîne = fRepTemp+[fSep]+"INSTALL.EXE"
HTTPDestination(sFichierInstall)
HTTPRequête(sURL_Intall)
LanceAppli(sFichierInstall)
FinProgramme("Une réinstallation de votre App favorite est nécessaire, suivez l'assitant...")


L'exemple est bien sûr réduit à sa plus simple expression. Dans la pratique :

  • le "FinProgramme" peut avantageusement être remplacé par l'ouverture d'une fenêtre explicative.
  • la réinstallation lancée de la sorte peut être en mode silencieux, dans le cas d'un déploiement qui ne nécessite pas de déclenchement de l'UAC.
  • toutes les fonctions et écritures seront testées (erreur de droits d'accès, exception...) !

 

Ce même principe pourrait s'appliquer pour remplacer une mise à jour automatique via un réseau local, par une mise à jour par un serveur web.

< Retour

Publier un commentaire : 
Votre adresse email ne sera pas publiée


© 2018 PC SOFT. Tous droits réservés. Réalisé  avec WEBDEV