Mythe #1 : une application a besoin d’être installée

Au sens d’un utilisateur, « faire tourner » une application signifie aujourd’hui avoir une fenêtre sur l’écran et interagir avec elle.

Au sens technique, il s’agit d’exécuter un programme sur un processeur, ce programme manipulant des données selon les instructions de l’utilisateur via ses gestes ou ses préférences déjà enregistrées.

Comment s’installe une application ?

Pour comprendre comment ces différentes briques et concepts s’agencent, nous allons partir du cas le plus connu de PC sous Windows, le PC autonome, comme celui que vous avez probablement à la maison. Déjà dans ce cas simple, il existe au moins deux cas d’exécution d’un programme, puisque Windows est un OS multi-utilisateurs (quelle ironie de l’histoire pour Microsoft qui a bataillé 10 ans pour introduire cette architecture en remplaçant DOS par Windows NT, alors qu’ à l’inverse, la diffusion des équipements fait qu’il y a maintenant plus de PC que d’utilisateurs et qu’il est rare d’avoir des PC professionnels avec de multiples utilisateurs – exception faite de certains environnements comme les plateaux de centres d’appels).

Lorsqu’on « installe » l’application, cela veut dire, de manière ultra-simplifiée que :

  1. les fichiers exécutables sont rangés dans \Programs (on reprend ici la terminologie Windows 7 plutôt que XP !), espace restreint et partagé entre tous les utilisateurs du PC
  2. les fichiers de données seront généralement rangés dans l’espace privé \Users\VotreCompte\Documents
  3. chaque utilisateur dispose d’une configuration spécifique dont les principaux éléments sont dans la base de registre (Microsoft en a poussé l’usage dans un premier temps) ou sous forme de fichiers cachés dans \Users\VotreCompte\AppData

Etant donné que le point 1 fait appel à des espaces partagés (entre les utilisateurs du PC), il faut être un Administrateur local du poste et dans bon nombre d’entreprises, ce droit est logiquement limité. En même temps, c’est la raison pour laquelle les utilisateurs se plaignent de ne pas pouvoir installer un programme sur leur machine. On comprend aussi très bien comment, lors d’un changement de machine, les préférences de l’utilisateur sont régulièrement perdues. On réinstalle l’application (1), on copie les fichiers (2) et les éléments du point (3) ne font pas le voyage, avec toute la perte de productivité associée…

Comment fonctionne une application « Portable » ?

Mais stricto sensu, pour être autorisée à tourner, une application doit seulement avoir une signature (extension .exe et entête de fichier particulier), et être lisible avec les droits de l’utilisateur. Aussi, pour faciliter les déploiements, y compris sur clé USB, certains logiciels disposent d’une version portable. Il suffit de les dezipper, dans un répertoire comme \Documents\Mes programmes.

Rien de plus pratique pour décompresser le fichier .rar occasionnel que 7-zip Portable. Plus étonnant : si vous regardez les logs du proxy web de votre entreprise, vous verrez très probablement qu’il y a des traces d’utilisation de Chrome ou Firefox même si votre entreprise continue d’utiliser Internet Explorer comme standard !

L’intérêt des applications Portables est qu’elles offrent un couplage faible avec le PC. Il suffit d’avoir l’accès à une copie du programme. On peut alors jouer sur un certain nombre de redirections que propose Windows. Ainsi l’Explorer sait rediriger votre répertoire Documents, votre Bureau et quelques autres dossiers spéciaux, notamment vers un espace personnel sur un serveur de fichiers sur le réseau (si le PC est un laptop, ces ressources peuvent être mises en cache  avec le Centre de synchronisation ou CSC – Client Side Caching).

Ce qu’il faut en retenir

Une application a besoin d’être « déployée », pas nécessairement « installée » au sens d’être mise en place par un programme d’installation.

En dehors des applications qui ont besoin de drivers, de fonctions inter-applications comme OLE (i.e. édition d’un tableau Excel incorporé dans Word ou Powerpoint) ou de ressources Serveur (le port 80 pour un site web), il est toujours intéressant de valider si l’application n’est pas portable, notamment pour toutes les applications qui ne nécessitent pas de suivi de licence (logiciel Open Source mais aussi internes, auquel cas cela peut devenir une exigence)  car elle devient :

  • facilement déployable par copie de fichiers ; un répertoire partagé peut remplir les mêmes services que l’App Store !
  • « virtualisable » par des fonctions de redirection incluses de base dans Windows

Pour bon nombre de programmes, utilisés de façon ponctuelle, c’est probablement la solution la plus économique.

Des ingénieurs de Microsoft mettent même à disposition un outil pour identifier les cas problématiques de programmes pas très bien écrits, avec ce qu’ils considèrent des LUA (Limited User Access) bugs.

Depuis Windows 7, le moteur d’installation MSI de Microsoft permet également aux packages bien écrits de s’installer uniquement pour l’utilisateur courant et pas seulement tous les utilisateurs. Cela permet déjà le libre-service pour le déploiement mais n’atteint pas forcément les 5 objectifs d’une application Portable avec un couplage faible.

PS : dans des environnements Unix, toute cette page peut se résumer à savoir si vous installez dans /bin pour tous les utilisateurs ou dans le home d’un seul.

Et aussi

  • 29 mai 2013 Mythe #2 : pour une gestion centralisée, on a besoin de virtualiser des machines complètes avec OS Si les applications Portables répondent à une vision très décentralisée (self service utilisateur), en réaction les partisans de la virtualisation comme VMware incitent à penser qu’il n’y a pas de solution intermédiaire autre qu’une architecture VDI (Virtual Desktop Infrastructure) : centralisation totale des infrastructures où une machine « virtuelle » est exécutée dans un datacenter, […]
  • 2 juin 2013 Illusion #3 : le programme qui gère la fenêtre s’exécute sur mon PC Avec les deux dernières techniques de déploiement, l’utilisateur ne le sait peut-être pas mais la fenêtre ou le bureau de son PC sont mis à jour par un programme qui tourne en central sur un serveur. Remote Desktop Historiquement la solution traditionnelle consiste à se rappeler que Windows NT (sur lequel sont basés toutes les versions depuis Windows 2000) est un OS […]
  • 5 juin 2013 Bonus : synthèse des méthodes de déploiements d’applications sur PC Windows En synthèse, il existe de multiples façons de déployer efficacement des applications.  De façon très synthétique, voici rappelés leurs avantages et inconvénients.   Méthode de déploiement d’application Windows Avantages Inconvénients Application Portable Self Service utilisateurFacilite tous les autres modes de déploiement Effort du développeur pour un couplage […]