Brevet FR2944618A1 — publié le 20101022

SYSTEME DE MISE A DISPOSITION D'UNE APPLICATION SUR UN TERMINAL UTILISATEUR L'invention concerne un système de mise à disposition d'une application sur un terminal utilisateur. De façon connue, certaines infrastructures informatiques en entreprise utilisent des applications virtuelles. Cette technologie consiste à encapsuler dans un même package, l'application et son environnement système sous la forme d'un exécutable. En outre, une application virtuelle ne nécessite pas d'installation spécifique. Un utilisateur peut ouvrir l'application virtuelle d'un simple clic sur un icône. Cette dernière est téléchargée sur une machine physique depuis un réseau local, typiquement depuis internet, ou depuis un support amovible. Une application est exécutée en local, c'est-à-dire sur la machine physique. Il convient de noter qu'une application virtuelle est adaptée pour fonctionner sur un unique système d'exploitation. Ce type de solution présente toutefois de multiples inconvénients. Un premier inconvénient réside en ce qu'une trace sur le terminal utilisateur (i.e. typiquement un fichier local) est engendrée par le téléchargement ainsi que par l'exécution de l'application virtuelle. Un second inconvénient réside en ce que l'application virtuelle est exécutée sur la machine de l'utilisateur. En d'autres termes, une application virtuelle contenant ou téléchargeant un virus est susceptible d'infecter la machine de l'utilisateur lors de son exécution. Un troisième inconvénient réside en ce que l'application virtuelle est adaptée pour un système d'exploitation unique. L'application virtuelle est le plus souvent incompatible avec des systèmes d'exploitation différents. Selon une amélioration connue de ces applications virtuelles visant à alléger ces dernières, le � streaming � d'applications consiste également en une virtualisation d'applications, dans lequelle l'application virtuelle charge uniquement les éléments nécessaires à son fonctionnement. Il en résulte que le � streaming � d'applications présente des inconvénients sensiblement similaires à ceux précités. Par ailleurs, de nombreuses entreprises utilisent, pour la gestion de leur parc informatique, des technologies d'accès de bureau à distance de type Terminal Server. Selon une telle mise en oeuvre, une pluralité d'applications sont installées sur un serveur unique. Les utilisateurs, possédant un droit d'accès au serveur, peuvent accéder depuis leur machine aux différentes applications. Une telle technologie présente cependant des inconvénients dans la mesure où les applications sont exécutées dans un environnement commun formé par le serveur. En conséquence, les différentes applications peuvent interagir entre elles au sein de l'environnement commun. Ainsi, deux versions différentes d'un même logiciel sont parfois incompatibles et peuvent se trouver en conflit. Pour palier cet inconvénient, une unique version logicielle est généralement installée sur le serveur. En outre, il arrive parfois qu'une version d'un premier logiciel ne soit pas compatible avec la version d'un deuxième logiciel. De ce fait, le premier et le deuxième logiciel ne peuvent pas fonctionner dans un environnement commun. De surcroît, certaines applications ne sont pas adaptées pour fonctionner sur un serveur et doivent être conçues en conséquence. Les coûts liés aux prises de licences sur des logiciels adaptés au fonctionnement sur un serveur s'en trouvent donc impactés. Un inconvénient supplémentaire réside en ce que le serveur est susceptible d'être infecté par un virus informatique dès lors qu'un utilisateur se connecte à internet. De facto, lorsque le serveur est infecté par un virus informatique, tous les utilisateurs du serveur sont également susceptibles d'être infectés par ce dernier. Par ailleurs, ce type de système nécessite l'installation d'un client local lourd permettant aux utilisateurs d'obtenir un droit d'accès au serveur. Il en résulte que les performances du terminal utilisateur sont diminuées. En outre, une trace de ce client subsiste sur le terminal utilisateur. Il est également connu de virtualiser un environnement de travail complet. Dans une telle mise en oeuvre, des applications sont exécutées au sein de machines virtuelles. Cette caractéristique permet de s'affranchir de la compatibilité entre les applications et le système d'exploitation du terminal utilisateur. A titre d'exemple, la demande de brevet numéro WO 2009/001221 décrit un système permettant de virtualiser un environnement de travail complet. Plus précisément, ce document divulgue un système consistant à créer un compte utilisateur sécurisé. Ce compte utilisateur permet à l'utilisateur d'accéder via internet à un environnement informatique virtuel proposant une pluralité d'applications virtuelles. Cet environnement informatique étant matérialisé sur un serveur physique distant. L'utilisateur peut ainsi accéder à distance à cet environnement informatique. Le système offre alors la possibilité à l'utilisateur d'exécuter des applications à distance. De ce fait, lorsque l'utilisateur se déconnecte, l'environnement informatique virtuel, que l'on peut assimiler à un bureau virtuel, subsiste. En outre, l'utilisateur peut accéder à ce bureau virtuel via un autre ordinateur, son accès se faisant au-travers du compte utilisateur. Un tel système présente toutefois des inconvénients puisque les applications fonctionnent dans un environnement commun. En d'autres termes, elles peuvent interagir. Les principaux inconvénients sont donc sensiblement similaires à ceux précités, à savoir : Risque d'incompatibilité de différentes versions logicielles, et Risque d'incompatibilité de certains logiciels entre eux. Dans ce contexte, l'invention vise à s'affranchir des problèmes susvisés en proposant un système permettant l'utilisation de différents logiciels et/ou version logicielles sans aucune contrainte de compatibilité et sans risque de contamination par un virus lors d'une utilisation par différents utilisateurs, l'exécution des logiciels n'altérant en rien les performances du terminal utilisateur. A cette fin, l'invention porte sur un système de mise à disposition d'une application sur un terminal utilisateur, ledit système comportant : un terminal utilisateur apte à se connecter à une interface de sélection de ladite application parmi une pluralité d'applications virtuelles ; au moins un premier serveur physique compartimenté en une pluralité de machines virtuelles ; des moyens de stockage d'une pluralité d'applications virtuelles, la sélection de ladite application entraînant le chargement et l'exécution de l'application virtuelle correspondante sur une machine virtuelle non utilisée parmi ladite pluralité de machines virtuelles dudit au moins un premier serveur physique, chaque machine virtuelle étant adaptée pour charger et exécuter une unique application ; un deuxième serveur physique centralisateur ; des moyens pour déporter sur ledit deuxième serveur, l'affichage de ladite application exécutée sur la machine virtuelle ; et des moyens pour déporter l'affichage dudit deuxième serveur sur ledit terminal utilisateur. Outre les caractéristiques principales qui viennent d'être mentionnées dans le paragraphe précédent, le système selon l'invention peut présenter une ou plusieurs caractéristiques supplémentaires ci-dessous, considérées individuellement ou selon toutes les combinaisons techniquement possibles : - lesdits premier et deuxième serveurs physiques sont reliés via un réseau local, ledit terminal utilisateur étant apte à communiquer avec ledit réseau local via un premier protocole d'accès réseau à distance ; - ledit terminal utilisateur comporte une machine virtuelle java et une applet java fonctionnant sur ladite machine virtuelle java et permettant d'interpréter ledit premier protocole d'accès réseau à distance ; - ladite interface de sélection est une interface web sécurisée ; - le système d'exploitation desdites machines virtuelles est épuré de sorte qu'il ne comporte que les éléments essentiels pour le fonctionnement desdites applications virtuelles; - le système selon l'invention comporte des moyens d'activation apte à sélectionner une machine virtuelle et à faire passer ladite machine virtuelle d'un premier état de veille à un second état de fonctionnement ; - une machine virtuelle déporte, vers ledit deuxième serveur, uniquement l'affichage de la ou des fenêtre(s) de ladite application en cours d'exécution sur ladite machine virtuelle ; - chacune desdites applications virtuelles encapsule une application et son environnement système correspondant ; - lesdits moyens de stockage desdites applications virtuelles sont formés par un disque de partage réseau. D'autres caractéristiques et avantages de l'invention ressortiront clairement de la description qui en est donnée ci-dessous, à titre indicatif et nullement limitatif, de modes de réalisations faisant références à la figure 1 annexée, sur laquelle sont représentés les éléments du système selon l'invention. Pour des raisons de clarté, seuls les éléments utiles pour la compréhension de l'invention ont été représentés, et ceci sans respect de l'échelle et de manière schématique. Un système 1 permettant à un utilisateur 18 d'accéder à une pluralité d'applications virtuelles 2, 3, 4 délocalisées selon l'invention est représenté sur la figure 1. Plus particulièrement, cette dernière illustre : un terminal utilisateur 5 ; un utilisateur 18 ; un premier serveur physique 7 ; quatre machines virtuelles 8, 9, 10, 11 ; des moyens d'activation 20 ; un deuxième serveur 13 centralisateur d'affichages ; trois applications virtuelles 2, 3, 4 ; des moyens de stockage 12 des trois applications virtuelles 2, 3, 4 ; une interface de sélection 6 des trois applications virtuelles 2, 3, 4 pouvant être formée par une interface web sécurisé ; des moyens 15 pour déporter l'affichage du second serveur 13 vers le terminal utilisateur 5. A titre d'exemple, un serveur web se trouve sur le deuxième serveur 13 et son affichage est reporté sur le terminal utilisateur 5 ; des moyens 14 pour déporter l'affichage des machines virtuelles 8, 9, 10, 11 sur le deuxième serveur 13 ; Des applications de virtualisation permettent de compartimenter le premier serveur physique 7. Ces applications de virtualisation s'installent sur tout type de serveur physique et partitionne le serveur physique en plusieurs machines virtuelles 8, 9, 10, 11. On entend pour la suite de la description par machine virtuelle, un serveur ne comportant pas d'électronique et étant optimisé pour charger et exécuter des applications et/ou des programmes. Lorsqu'une machine virtuelle n'est pas sollicitée, elle se trouve en état d'exécution minimale. Cet état d'exécution minimale consiste à diminuer au maximum les ressources utilisées au niveau processeur et au niveau mémoire. En d'autres termes, elle est en état de veille. Puis, dès lors qu'elle est sollicitée les ressources sont augmentées de façon à accroître ses performances. Cette sollicitation est effectuée par les moyens d'activation 20. En outre, une application virtuelle est obtenue par la virtualisation d'application qui consiste à encapsuler dans un même package l'application et son environnement système imperméable au système de destination. Il convient de noter en outre que les machines virtuelles 8, 9, 10, 11 sont pour la suite de la description, des machines dont le système d'exploitation est épuré, c'est-à-dire que tous les éléments non essentiels pour le fonctionnement des applications virtuelles sont supprimés de façon à ce que leur exécution soit le plus rapide possible. En outre, les machines virtuelles 8, 9, 10, 11 sont munies chacune de leur propre système d'exploitation. Ainsi, lorsqu'une application virtuelle 2, 3, 4 est chargée et exécutée sur une machine virtuelle 8, 9, 10, 11, elle fonctionne de façon autonome et ne requière aucun élément extérieur. A titre de compréhension et de façon non limitative, le deuxième serveur physique 13 permet de centraliser et d'afficher de multiples affichages en provenance des quatre machines virtuelles 8, 9, 10, 11. Dans une mise en oeuvre possible de l'invention d'un système 1 conforme à l'invention illustré sur la figure 1, l'utilisateur 18 peut accéder à l'affichage du deuxième serveur 13 par l'intermédiaire du terminal utilisateur 5. Ce terminal utilisateur 5 peut être formé par exemple par un ordinateur de travail, par un ordinateur personnel, voir même un téléphone portable ou tout autre type de dispositif ayant la possibilité d'accéder à internet.. Lors du premier accès au deuxième serveur 13, l'utilisateur 18 doit créer, via l'interface web sécurisée 6, un compte utilisateur. Ce compte utilisateur permet ainsi par la suite à l'utilisateur 18 d'accéder de façon privative et sécurisée au deuxième serveur 13. Cet accès lui est possible quelque soit le terminal utilisateur 5 utilisé pourvu qu'il ait accès à internet. La création de ce compte lui permet par exemple d'obtenir un mot de passe. Lorsque l'utilisateur 18 se connecte, il peut accéder au deuxième serveur 13 via l'interface web sécurisé 6. L'utilisateur 18 doit fournir son mot de passe obtenu préalablement. Le deuxième serveur 13 propose à l'utilisateur 18 une pluralité d'applications virtuelles 2, 3, 4. Ces applications virtuelles 2, 3, 4 ne lui sont pas pour autant accessibles. Certaines peuvent être payantes et l'accès peut être soumis à un abonnement. Cet accès peut être, de façon non limitative, d'une part, pour une période déterminée, à savoir annuel, mensuel ou d'autre part, pour un nombre d'utilisations limitées comme par exemple 100 ou 25 utilisations, ou encore 30 ou 120 minutes. Dans notre exemple, l'utilisateur 18 souscrit aux trois applications virtuelles payantes 2, 3, 4 pour une période de deux mois. Ces applications virtuelles 2, 3, 4 peuvent être, par exemple et de façon non limitative, des applications de type traitement de texte, tableur ou d'édition. Les trois applications virtuelles 2, 3, 4 auxquelles l'utilisateur 18 a souscrit lui sont alors accessibles via le deuxième serveur 13. Dès lors que l'utilisateur 18 s'identifie sur l'interface web sécurisée 6 par son mot de passe, le premier protocole d'accès réseau à distance 21 entre le terminal utilisateur 5 et le deuxième serveur 13 assure une communication rapide et fluide entre ces derniers. Par exemple, le terminal utilisateur peut utiliser un premier protocole d'accès de type NXTM. Il permet notamment de ne pas transmettre les éléments inutiles et de mettre des éléments en mémoire cache de façon à diminuer la latence et le temps d'accès. Le deuxième serveur 13 propose alors à l'utilisateur 18 d'accéder aux trois applications virtuelles 2, 3, 4 auxquelles il a souscrits. Lorsque l'utilisateur 18 sélectionne une des trois applications virtuelles 2, 3, 4, les moyens d'activation 20 sélectionnent une machine virtuelle apte à exécuter l'application sélectionnée. Il est à noter que les machines virtuelles précitées sont aptes à charger et exécuter une unique application. En d'autres termes, deux applications virtuelles 2 et 3 ne peuvent pas être exécutées simultanément sur une même machine virtuelle 8. A titre illustratif et de façon non limitative, l'utilisateur 18 sélectionne une première application virtuelle 2 de type traitement de texte. La version de ce traitement de texte est par exemple la version V1. En outre, l'utilisateur 18 sélectionne une deuxième application virtuelle 3 qui est similaire, c'est-à-dire de type traitement de texte. Néanmoins, il convient de noter que la version V2 de cette deuxième application virtuelle 3 est postérieure à la version V1. la première application virtuelle 2 est chargée et exécutée par exemple sur une première machine virtuelle 8 qui se trouve en état d'exécution minimale ; et la deuxième application virtuelle 3 est par exemple chargée et exécutée sur une deuxième machine virtuelle 9 se trouvant en état d'exécution minimale. Dès que les applications virtuelles 2 et 3 sont chargées, des ressources au niveau processeur et mémoire sont attribuées, par les moyens d'activation 20, aux deux machines virtuelles 8 et 9 de façon à augmenter leur vitesse de traitement. Les affichages de la première application virtuelle 2 et de la deuxième application virtuelle 3 sont reportés sur le deuxième serveur 13. En d'autres termes, le deuxième serveur 13 est un centralisateur d'affichages. En vue d'optimiser le confort d'utilisation et l'espace d'affichage disponible du terminal utilisateur, seuls les affichages des fenêtres des applications sont déportés sur le deuxième serveur 13. Cette caractéristique est réalisée par un deuxième protocole d'accès bureau à distance 22 (typiquement RDP). Dans cet exemple, nous précisions que les fenêtres de deux applications virtuelles 2 et 3 peuvent être affichées sur le deuxième serveur 13 mais il est entendu que le nombre d'affichages peut être supérieur ou inférieur. En outre, il est à noter que le deuxième serveur 13 permet de centraliser l'affichage des applications virtuelles exécutées par un ou plusieurs utilisateurs. Chacune des deux applications virtuelles 2 et 3 fonctionnent de façon isolée, c'est-à-dire sur une machine virtuelle différente. De ce fait, en aucun cas les applications virtuelles 2 et 3 ne peuvent interagir ensemble. Avantageusement cette configuration offre la possibilité d'utiliser un même terminal utilisateur 15 pour plusieurs applications qui en temps normal ne sont pas faites pour coexister. A titre informatif, les machines virtuelles 8, 9, 10, 11 créées sont allégées au maximum des éléments non essentiels à l'utilisation des applications visées 2, 3, 4. Par exemple, l'ensemble des fonds d'écran ne sont pas chargés. Il est à noter en outre que les actions effectuées par l'utilisateur 18 sont transmises de façon simultanée au deuxième serveur 13 et à la machine virtuelle 8, 9, 10 ,11 correspondante à l'application qu'utilise l'utilisateur 18. On entend par action, le fait de taper sur un clavier ou le fait de mouvoir la souris du terminal utilisateur 5. Dès lors que l'utilisateur 18 ne sollicite plus les applications virtuelles 2 et 3, les machines virtuelles 8 et 9 sont déchargées de leur application, à savoir les applications virtuelles 2 et 3 dans notre exemple. Les machines virtuelles 8 et 9 retrouvent leur état initial et ne comportent aucune pollution de type fichier utilisateur non désirable ou tout autre élément qui serait inutile lors du prochain démarrage d'une des applications virtuelles 2 ou 3. Lors de l'utilisation des applications virtuelles 2, 3, 4, les données peuvent être enregistrées sur le serveur physique 7 et/ou sur le terminal utilisateur 5. Avantageusement, il est à noter qu'aucune des applications virtuelles 2, 3, 4 n'est enregistrée et/ou exécutée sur le terminal utilisateur 5. De façon générale, le système 1 comporte d'une part, un ou plusieurs premier serveur physique 7 compartimenté en une pluralité de machines virtuelles 8, 9, 10, 11, munies chacune de leur propre système d'exploitation minimal, c'est-à-dire le plus allégé possible et d'autre part des moyens de stockage 12 des applications virtuelles 2, 3, 4. Les applications virtuelles 2, 3, 4 sont packagées. Cette caractéristique permet de ne pas devoir installer les applications virtuelles 2, 3, 4 sur les machines virtuelles 8, 9, 10, 11 et de ne pas devoir installer et/ou exécuter les applications virtuelles 2, 3, 4 sur le terminal utilisateur 5. De façon générale, les applications virtuelles 2, 3, 4 sont formées par un package comportant l'application et ses dépendances de type DLL. Le package est pré-créé sous forme d'un exécutable. Le package est placé sur le premier serveur physique 7 et au moment ou l'utilisateur 18 souhaite lancer une application virtuelle 2, 3 ou 4, cette dernière est importée par l'intermédiaire des moyens d'activation 20 sur une machine virtuelle 8, 9 10 ou 11 et s'exécute sur cette dernière. L'affichage est transmis de ladite machine virtuelle 8, 9 10, 11 au deuxième serveur 13 via les moyens 14 puis du deuxième serveur 13 vers le terminal utilisateur 5 via des moyens 15. Avantageusement, ce mécanisme permet d'optimiser l'espace disque. Ainsi, le serveur physique 7 est le plus léger possible car il ne contient pas les éléments non nécessaires à l'exécution des applications virtuelles 2, 3, 4. Avantageusement, l'utilisateur 18 peut se connecter au deuxième serveur 13 via n'importe quel type de terminal utilisateur 5 lui offrant la possibilité de se connecter à l'interface sécurisée 6. Pour ce faire Il est avantageux que le terminal utilisateur 5 comporte une machine virtuelle java ainsi qu'une applet java. Cette dernière peut être chargée directement sur le terminal utilisateur 5 lors de la connexion au deuxième serveur 13. Selon une mise en oeuvre conforme à l'invention et non illustrée, une application virtuelle 2 est sollicitée par trois utilisateurs 18. Cette application virtuelle 2 est chargée et exécutée sur trois machines virtuelles 8, 9, 10 différentes. De ce fait, les exécutions de cette même application virtuelle 2 sont isolées et l'application virtuelle 2 qui est exécutée sur la machine virtuelle 8 ne peut pas interagir avec celle qui est exécutée sur la machine virtuelle 9. On notera également que le système selon l'invention peut comporter une pluralité de premiers serveurs physiques. L'ensemble des serveurs physiques (i.e. ceux hébergeant les machines virtuelles et le serveur centralisateur) sont préférentiellement hébergés dans un centre de données (� data center � en anglais) qui permet, outre la sécurité physique, électrique et en cas d'incendie des machines, de disposer de la bande passante montante nécessaire à l'amélioration de la fluidité des accès aux serveurs ; en d'autres termes, on ne dépend plus de l'accès internet de l'utilisateur final sur le lieu d'utilisation. En résumé, l'invention permet notamment : d'exécuter une pluralité d'applications qui ne sont pas compatibles ; d'isoler les applications sur un terminal utilisateur sans pour autant déporter le problème sur une machine distante ; d'autoriser l'accès à un réseau local 19 à partir d'un quelconque terminal utilisateur 5 ayant accès à internet ; cet accès étant effectué par l'intermédiaire du premier protocole 21 d'accès réseau à distance ; de ne pas influer sur la latence des accès internet ; de ne pas laisser de trace sur le terminal utilisateur ; L'invention est décrite dans ce qui précède à titre d'exemple. Il est entendu que l'homme du métier est à même de réaliser différentes variantes du procédé et/ou du système selon l'invention sans pour autant sortir du cadre du brevet. REVENDICATIONS1. Système (1) de mise à disposition d'une application sur un terminal utilisateur, ledit système (1) comportant : un terminal utilisateur (5) apte à se connecter à une interface de sélection (6) de ladite application parmi une pluralité d'applications virtuelles (2, 3, 4) ; au moins un premier serveur physique (7) compartimenté en une pluralité de machines virtuelles (8, 9, 10, 11) ; des moyens de stockage (12) d'une pluralité d'applications virtuelles (2, 3, 4), la sélection de ladite application entraînant le chargement et l'exécution de l'application virtuelle correspondante sur une machine virtuelle (8, 9, 10, 11) non utilisée parmi ladite pluralité de machines virtuelles (8, 9, 10, 11) dudit au moins un premier serveur physique (7), chaque machine virtuelle (8, 9, 10, 11) étant adaptée pour charger et exécuter une unique application ; un deuxième serveur physique (13) centralisateur ; des moyens (14) pour déporter sur ledit deuxième serveur (13), l'affichage de ladite application exécutée sur la machine virtuelle ; et des moyens (15) pour déporter l'affichage dudit deuxième serveur (13) sur ledit terminal utilisateur (5). 2. Système selon la revendication précédente caractérisé en ce que lesdits premier et deuxième serveurs physiques sont reliés via un réseau local (19), ledit terminal utilisateur (5) étant apte à communiquer avec ledit réseau local (19) via un premier protocole d'accès réseau à distance (21). 3. Système selon la revendication précédente caractérisé en ce que ledit terminal utilisateur (5) comporte une machine virtuelle java et une applet java fonctionnant sur ladite machine virtuelle java et permettant d'interpréter ledit premier protocole d'accès réseau à distance (21). 4. Système selon l'une des revendications précédentes caractérisé en ce que ladite interface de sélection (6) est une interface web sécurisée. 5. Système selon l'une des revendications précédentes caractérisé en ce que le système d'exploitation desdites machines virtuelles (8, 9, 10, 11) est35épuré de sorte qu'il ne comporte que les éléments essentiels pour le fonctionnement desdites applications virtuelles (2, 3, 4). 6. Système selon l'une des revendications précédentes caractérisé en ce qu'il comporte des moyens d'activation (20) apte à sélectionner une machine virtuelle (8) et à faire passer ladite machine virtuelle (8) d'un premier état de veille à un second état de fonctionnement. 7. Système selon l'une des revendications précédentes caractérisé en ce qu'une machine virtuelle (8) déporte, vers ledit deuxième serveur (13), uniquement l'affichage de la ou des fenêtre(s) de ladite application en cours d'exécution sur ladite machine virtuelle (8). 8. Système selon l'une des revendications précédentes caractérisé en ce que chacune desdites applications virtuelles (2, 3, 4) encapsule une application et son environnement système correspondant. 9. Système selon l'une des revendications précédentes caractérisé en ce que lesdits moyens de stockage (12) desdites applications virtuelles (2, 3, 4) sont formés par un disque de partage réseau.