Brevet FR3086425A1 — publié le 20200327

PROCEDE D'EXECUTION D'UN PROGRAMME D'APPLICATION DANS UN SYSTEME INFORMATIQUE, DOMAINE DE L'INVENTION La présente invention concerne un procédé d'exécution d'un programme d'application dans un système informatique. ARRIÈRE-PLAN TECHNOLOGIQUE DE L'INVENTION Les documents US2017228851 et FR3047576 décrivent une configuration de susfeme informatique, dans lequel des dispositifs d'interface d'utilisateur (affichage, clavier, éj 15 sont séparés de la partie traitement de l'application. Les dispositifs d'interface d'utilisateur se trouvent sur le bureau de l'utilisateur (également dénommé le "client") alors que les composants de traitement et de stockage de l'ordinateur se trouvent dans un lieu d'hébergement distant. Les appareils 20 d'interface utilisateur ont alors accès, au niveau de l'ordinateur hôte, à. une machine virtuelle dédiée par l'intermédiaire d'un réseau (le plus souvent Internet) , la machine virtuelle émulant le traitement, le stockage et autres ressources informatiques requises. L' ordinateur hôte héberge le 25 système d'exploitation et les applications logicielles utilisées par les clients, ce qui limite les ressources de traitement du côté client. Il est habituel que l'ordinateur hôte soit constitué d'une 30 pluralité de systèmes informatiques physiques (serveurs) , chacun hébergeant une pluralité de machines virtuelles. Chaque machine virtuelle est connectée à un client, et fournit un environnement virtuel dédié pour emuler les fonctions d'un ordinateur personnel physique, y compris le traitement des données 35 graphiques, et fournir informations d'affichage de session d'utilisateur. sur l'écran du client. Les données à afficher sont transférées au client par l'intermédiaire du réseau, Le client possède des ressources informatiques suffisantes pour recevoir le flux de données et afficher celles-ci. Le client dispose également de dispositifs d'entrée/sortie (clavier, souris.. pour échanger des informations ou des instructions avec. machine virtuelle, via le réseau. Les dispositifs d'interface utilisateur dépendent donc 10 fortement de l'ordinateur hôte qui remplit les fonctions informatiques pour les clients. BUT DE L'INVENTION 15 Un objet de la présente invention est donc de proposer un procédé qui fournit au. client, dans une telle conf__ gu.ration de système informatique, une capacité de traitement supplémentaire. Plus spécifiquement, le procédé proposé permet 20 de dédier, pendant un certain laps de temps, des ressources informatiques permettant d'exécuter un programme informatique d'application intensive, et sans dédier lesdites ressources de manière permanente a un client. 25 RÉSUME DE L'INVENTION Pour ce faire, l'invention concerne un procédé dfexécution d'un programme d'application dans un système informatique, ledit système informatique comprenant un ordinateur hôte constitué d'une pluralité de serveurs configurés pour faire fonctionner au moins une machine virtuelle, chacun hébergeant une session d'utilisateur primaire associée à un client distant ; 35 au moins un serveur supplémentaire. Le procédé comprend - une étape de transmission d'un flux de session primaire entre la machine virtuelle et le client distant pour émuler la présence, chez le client distant, d'un système informatique physique ; - une étape d'initiation de l'exécution du programme d'application dans une session d'utilisateur secondaire hébergée sur le serveur supplémentaire et de préparation d/un flux de session secondaire de la session d'utilisateur secondaire ; - une étape d'agrégation des flux de sessions primaire et secondaire pour former un flux de session agrégé, et de traitement du flux de session agrégé chez le client distant pour emuler l'exécution du programme d'application sur le système informatique physique. Grâce â la combinaison des machines virtuelles qui fonctionnent sur un serveur. partagé et des serveurs 20 supplémentaires pour l'exécution de certains programmes informatiques d'application inten le procédé proposé fournit, à l'utilisateur, un excellent niveau de service, tout en réduisant au minimum les ressources informatiques, en particulier les ressources matérielles, qui sont nécessaires 25 pour atteindre ce niveau de service. Selon d'autres caractéristiques non Imitatives de l'invention, prises soit. individuellement soit en une combinaison techniquement pos sable quelconque 30 - l'étape finitiation de l'exécution du programme d'application comprend l'interception d'une demande d'utilisateur d'exécuter un programme d'application ou d'installer un programme d'application, grâce à un 35 processus de contrôle de la session d'utilisateur primaire la session d'utilisateur secondaire est hébergé directement par le serveur supplémentaire ou bien la session d'utilisateur secondaire est hébergée par une 5 machine virtuelle qui fonctionne sur i.e serveur supplémentaire ; s le système informatique comprend une pluralité de serveurs e.t l'étape d'initiation de l'exécution. du programme 10 d'application comprend la. sélection du serveur supplémentaire parmi. la pluralité de serveurs * la sélection du serveur supplémentaire comprend la sélection parmi la pluralité de serveurs supplémentaires, 15 du serveur supplémentaire qui est le mieux configure pour exécuter le programme d'application ; ® l'étape d'initiation de l'exécution du programme d'application comprend l'initiation de la session d'utilisateur secondaire sur le serveur supplémentaire ; ® le système informatique comprend un serveur de stockage associé ail serveur de l'ordinateur hôte et un. serveur de stockage supplémentaire associé au serveur supplémentaire 25 - l'étape d'initiation de l'exécution du programme d/application comprend la copie d'au moins une partie d'un contexte d'utilisateur stocké dans le serveur de stockage 30 dans le serveur de stockage supplémentaire - les flux de session primaire et. secondaire sont communiqués au client distant et l'étape d'agrégation des flux de session primaire et secondaire est réalisée chez Te client. 35 distant ; 5 - le système informatique comprend un serveur d'agrégation, les flux de session primaire et secondaire sont communiqués au serveur d'agrégation, et dans lequel l'étape 5 d'agrégation des flux desession primaire et secondaire est réalisée sur le serveur d'agrégation_ FIGURES 0 De nombreux. autres avantages et fonctions de la présente invention seront plus apparents après la lecture de la description détaillée qui suit, prise conjointement. avec les dessins joints, parmi lesquels 15 La Figure 1 représente une configuration de système informatique selon un mode de réalisation de la présente description ; 20 - La Figure 2 représente l'étape principale d'un procédé selon l'invention. DESCRIPTION DETAILLEE DE MODES DE REALISÀTION SPECIFIQUES DE L'INVENTION Dans la description qui suit, des descriptions détaillées de fonctions et d'éléments connus, qui pourraient inutilement rendre obscur l'essentiel de la présente invention, 30 -. seront omises. Sur la figure 1, une architecture informatique comprend un. ordinateur hôte -1. gui présente une pluralité de serveurs 2. L'ordinateur hôte. 1. comprend également un serveur de stockage 6 assurant une capacité de stockage. Comme cela est bien connu, les serveurs 2 peuvent être configurés pour héberger une ou plusieurs machine(s) 3 virtuelle(s), en. même temps que son; leur. système d'exploitatibm et ses/leurs applications. La virtualisation permet qu'une pluralité de machines virtuelles 3 soient hébergées dans chaque serveur 2 tout en fournissant une pluralité d'environnements virtuels totalement isolés dans un seul. serveur 2. Chacune des machines virtuelles 3 dans l'ordinateur hôte 10 1 peut être dédiée à un utilisateur spécifique. Les contextes d'utilisateur, c'est-à-dire le système de fonctionnement, les programmes d'application. et les données d'utilisateur qui sont dédiés â chaque utilisateur, sont stockés dans des portions respectives de la capacité de stockage gérée par le serveur de 15 stockage 6. Les utilisateurs interagissent avec leurs machines virtuelles dédiées 3 depuis les clients distants 4, 4', chacun étant connecté à 1/ordinateur hôte 1 par l'intermediaire d'un réseau comme Internet. Étant donné cnie la plus grande partie, si ce n'est l'intégralité, du traitement se fait au niveau de 20 l'ordinateur. hôte 1, les clients distants 4, 4' peuvent rester très simples, et peuvent inclure, par exemple, un. simple terminal, un connecteur de réseau et des dispositifs d'entrée/sortie de base (clavier, souris...) comme représenté par. le client distant 4 sur la figure 1. Selon une autre solution, il peut s'agir d'un ordinateur personnel standard, avec- sa propre Unité Centrale, sa carte graphique, ses périphériques, comme représenté par le client distant 4'. Les clients distants 4, 4' ne sont pas limités à une forme particulière, et peuvent consister en n'importe quel dispositif informatig)le, tel une tablette, un ordinateur personnel ou un Smartphone. Chaque serveur 2 héberge, de préférence, moins de dix machines virtuelles 3 pour fournir des ressources informatiques suffisantes â chaque machine virtuelle 3 afin d'exécuter des applications avec un niveau suffisant de service. Chaque machine virtuelle 3 est créée au moment de la connexion du client et est associée au contexte d'utilisateur correspondant. Pour ce faire, un processus de gr on exécuté sur un serveur. maître 5 de 5 l'ordinateur hôte 1 peut être fourni pour initier, arrêter, et plus généralement, faire fonctionner les machines virtuelles de l'ordinateur hôte I. Chaque machine virtuelle 3 comprend une UC virtuelle, une mémoire principale virtuelle, une carte graphique virtuelle ou physique ainsi que d'autres ressources. Chaque 10 machine virtuelle 3 constitue donc, ou est l'équivalent, d'une session d'utilisateur, et un grand nombre de ces sessions d'utilisateur 3 peuvent être exécutées sur les serveurs 2 de l'ordinateur hôte 1. 15 Pour émuler la présence d'un système informatique physique au niveau du terminal du client distant, l'ordinateur hôte 1 approvisionne le système distant. 4, 4' sur le réseau en informations d'affichage, de son et de commande pour les dispositifs d'entree/sortie installés sur le site distant. A 20 l'inverse, les clients distants 4, 4' approvisionnent l'ordinateur hôte l en informations de commande en provenance des dispositifs d'entrée/sortie qui se trouvent sur le site distant (clavier, souris), et éventuellement d'autres formes de données telles que des informations d'affichage et sonores 2.5 fournies par un dispositif USE ou intégrées dans une caméra et un microphone du client distant 4, 4', ou des périphériques de réseau, au niveau du client distant, tels des imprimantes.... Un processus de capture de chaque session d'utilisateur 30 3 prépare les données d'affichage, les données sonores et d'autres types d'informations pour leur communication avec le client 4, 4' associé. te processus de capture collecte également les informations communiquées par le client 4, 4', de telle manière qu'elles puissent être traitées par la session 35 d'utilisateur 3. De la même manière, les clients distants 4, 4' sont approvisionnés en ressources matérielles et/ou logicielles appropriées pour coder/décoder les informations reçues de l'hôte 1 avant. qu'elles soient affichées, ou plus Généralement utilisées du côté client' ou les informations transmises à l'hôte I. Dans la. préseute description, on fera. référence à toutes les informations échangées entre la. session d'utilisateur 3 et un client distant 4, 4' sous le terme "d'informations de session". Si l'on. poursuit la description de la figure 1, 10 L'architecture informatique comprend également une pluralité de serveurs supplémentaires 2' et au. moins un serveur de stockage supplémentaire 6', installé ici chez un hôte secondaire 1'. Les C>r des constituent ressources serveurs supplémentaires informatiques qui sont allouées à Liu client distant 4, 4', de manière temporaire, pour exécuter un programme informatique d'application intensive. Le serveur de stockage supplémentaire 6' stocke ah. moins un tel programme d'application, et de préférence une pluralité de tels programmes d'application. De manière avautageuse, les programmes d'application stockés sur le 20 serveur de stockage supplémentaire 6' sont connus JCîur nécessiter d'importantes ressources informatiques, de telle sorte que leur exécution dans; un environnement virtuel peut sembler imparfaite pour un utilisateur. Les programmes d'application stockés dans l'ordinateur 'LîCté secondaire l' s 25 peuvent être exécutés directement sur le serveurs supplémentaires 2', comme cela sera expliqué plus en détails dans une autre partie de la présente description. Chaque serveur supplémentaire 2' est, de préférence, constitué de composants informatiques haut de gamme (processeur(s), mémoire, une, ou 30 plusieurs carte(s) graphique(s), stockage) de telle sorte que les applications puissent être exécutées sur ledit serveur avec la plus grande efficacité. Dans un mode de réalisation particulier, les serveurs supplémentaires 2' sont conrigurés pour exécuter avec efficacité les programmes d'application stockés dans le serveur de stockage supplémentaire 2'. Certains o serveurs supplémentaires 2' peuvent être installés, en termes du type de carte graphique, capacité de mémoire, type d'Ut', de manière à répondre très précisément aux besoins d'un programme particulier du stockage supplémentaire 2'. Ce mode de 5 réalisation est avantageux puisqu'il permet d'ajuster les ressources informatiques de l'hôte secondaire 11 à ce qui est exactement requis pour exécuter les programmes d'application choisis, qui sont stockés sur le serveur de stockage supplémentaire 6', avec la plus grande efficacité. Étant donné 10 que ces programmes d'application sont exécutés sur les serveurs supplémentaires 2', il n'est pas nécessaire que les serveurs 2 de I' ordinateur hôte 1 soient constitués de composants haut de gamme, en termes de performances et de capacité. 1.1 n'est pas nécessaire que les serveurs supplémentaires 2' et que le serveur de stockage 6' soient situés dans un ordinateur hôte secondaire l' séparé, tel que représenté sur la figure 1. Lorsque cela est lacas, l'ordinateur hôte 1 et l'ordinateur hôte secondaire 1' communiquent grâce à une liaison 20 de communication 8 de telle sorte que les informations puissent circuler sans retard excessif d'un hâte à l'autre. Plus généralement, il peut y avoir n'importe quel nombre d'ordinateurs hôtes interconnectés, chaque hôte comprenant une pluralité de serveurs 2 pour héberger des machines virtuelles 25 et/ou des serveurs supplémentaires 2', Dama une configuration, les serveurs 2, les serveurs supplémentaires 2', le serveur de stockage et le serveur de stockage supplémentaire 6, 6' appartiennent tous à un ordinateur hôte 1 unique. Le stockage et le stockage supplémentaire peuvent se trouver sur un serveur de 30 stockage unique de l'ordinateur hâte 1. Un procédé selon la présente description propose d' exécuter un programme d'application stocke sur le serveur de stockage supplémentaire 6' d'un serveur supplémentaire 2'. Cette 35 exécution peut être réalisée directement sur le serveur 10 supplémentaire 2', dans une machine virtuelle hébergée par le serveur supplémentaire 2'. "Directement" signifie qu'une session d'utilisateur est exécutée sur le matériel physique du serveur supplémentaire 2', sans utilisation d'un environnement virtuel. 5 En d'autres termes, les ressources informatiques du serveur supplémentaire sont directement attribuées à l'exécution de la session d'utilisateur du programme d'application. Selon. ce procédé, un utilisateur est connecté 10 initialement, depuis chez un client distant 4, 4', sur une session d'utilisateur primaire, hébergée sur un serveur 2 de l'ordinateur hôte 1. Un flux de session primaire est transmis entre la session d'utilisateur et le client distant, pour émuler la présence d'un système informatique physique chez le client 1.5 distant, comme cela a été expliqué en détails dans la partie précédente de la présente description. Cette étape est représentée comme étant l'étape Si sur la figure 2. L'utilisateur initie l'exécution d'un programme 20 d'application qui nécessite d'importantes ressources informatiques, fournies par n'importe quel moyen approprié, par exemple en utilisant une souris ou une ligne de commande ou par commande vocale. Plutôt que de lancer l'exécution du programme d'application sur la machine virtuelle, le programme 25 d'application. est exécuté dans une session d'utilisateur secondaire sur un serveur supplémentaire 2', comme le montre la figure 2, en tant qu'étape 52. La détection de l'initiation du. programme d'application 30 peut être réalisée de- nombreuses manières différentes. Par exemple, chaque session. d'utilisateur primaire peut exécuter un processus de contrôle d'arrière-plan, lancé au moment du démarrage de la session d'utilisateur primaire, et configure pour intercepter une demande d'un utilisateur d'initier un 35 programme d'application. Ce processus peut comparer le programme 11 d'application demandé à une liste d'applications dont l'exécution doit être réalisée sur le serveur supplémentaire 2'. Cette liste peut correspondre à la liste de programmes d'application stockée sur le serveur de stockage secondaire 6'. C; Selon une autre solution, le processus de contrôle peut intercepter une demande d'un utilisateur d' installer un nouveau programme d'application, et au lieu de cela, si le nouveau programme d'application est identifié comme nécessitant une 10 puissance de traitement élevée, installer un programme de réorientation dans la session d'utilisateur, Le programme de réorientation peut appaxaitre, à l'utilisateur, sur le bureau de la session d'utilisateur primaire, identique au nouveau programme demandé, mais est configure pour initier l'exécution 15 du programme d'application sur le serveur supplémentaire 2' plutôt que dans l'environnement virtuel du serveur 2 de l'ordinateur hôte 1. Dans une autre solution, le processus de contrôle peut 20 donner à l'utilisateur le choix, au moment de l'interception d'une demande d'exécuter un programme d'application ou d'installer un nouveau programme d'application, d'initier l'exécution de ce programme dans la primaire du serveur 2 ou dans une d'utilisateur secondaire sur un serveur supplémentaire Différentes sous-étapes peuvent: être requises pour initier l'exécution dn programme d'application sur le serveur supplémentaire 2'. Ces sous-étapes peuvent être coordonnées, par 30 exemple, grâce à un processus de coordination mis en oeuvre par. le serveur maître 5 de l'ordinateur hôte I ou de l'hôte secondaire 1'. Un message émis par le processus de contrôlé ou le programme de réorientation indiquant la session. d'utilisateur et/ou le client distant qui fait la demande et le programme session 2' alloué. session d'utilisateur 35 d'application demandé peut être envoyé au processus de 12 coordination afin de déclencher l'exécution d'au moins certaines desdites sous-étapes. Les sous-étapes peuvent comprendre la sélection d'un 5 serveur supplémentaire 2' à partir de l'hôte secondaire l' pour l'éxécution du programme d'application demandé, à partir des serveurs supplémentaires 2' disponibles. Le serveur supplémentaire attribué sera utilisé, éventuellement en exclusivité, pour l'exécution du programme demandé. Dans 10 certains cas, il hébergera une session d'utilisateur secondaire unique. Dans d'autres cas, il hébergera une ou bien un nombre très limité de machines virtuelles pour l'exécution d'une ou d'un nombre limité dé, session (s) d'utilisateur. De manière avantageuse, cette sous-étape choisit le serveux le mieux 15 adapté, en termes de configuration matérielle et/ou logicielle, pour exécuter le programme logiciel demandé. Pour ce faire, le processus de coordination peut proposer une liste de programmes d'application/serveurs supplémentaires gui sont les mieux appariés ensemble. 20 La sous-étape comprend également l'initiation d'une session d' utilisateur secondaire dans le serveur supplémentaire 2' attribué, soit directement, soit dans le cadre d'une machine virtuelle, et le chargement du programme d'application demandé 25 à partir du serveur de stockage supplémentaire 6' dans la session d'utilisateur. Les sous-étapes peuvent également comprendre le transfert d'au moins une partie du contexte d'utilisateur du 30 serveur de stockage 6 de l'ordinateur hôte 1 vers le serveur de stockage supplémentaire 6' de l'hôte secondaire, le. De cette manière, le programme d'application demandé peut être exécuté sur le serveur supplémentaire 2' tout en ayant accès aux données d/utilisateur, de telle sorte que la session d'utilisateur 35 secondaire et le programme d'application puissent être installés 13 selon les préférences pré-existantes de l'utilisateur et les documents ou données d'accès utilisateur pré-existants. Les sous-étapes comprennent, pendant la session 5 d'utilisateur secondaire, l'exécution d'un processus de capture, semblable à celui gui est en cours d'exécution dans la session d'utilisateur primaire, poux préparer un flux de session secondaire. En conséquence, le flux de session secondaire integre toutes les données d'affichage, les données de son, et 10 toutes les autres informations telles que les données de commande Qui doivent être échangées entre la session d'utilisateur secondaire et le client distant 4, 4'. Dans un mode de réalisation particulier, toutes les données et informations ne sont pas intégrées dans les flux de session secondaire, mais 15 uniquement les données d'affichage qui concernent le programme d'application. Par exemple, seules les données d'affichage de la fenêtre de session dans laquelle le programme d'application est en cours d'exécution sont intégrées dans le flux de session secondaire_ La position et/ou la taille de la fenêtre 20 peut(peuventl également être intégrée(s) dans le flux de session secondaire, de telle sorte que les données transmises dans le flux puissent être reconstituées du côté réception. Si l'on se réfère, à nouveau au. procédé général pour 25 l'exécution d'un programme d'application de la figure 2, le procédé comprend en outre une étape 53 d'agrégation des flux de session primaire et secondaire pour former un. flux agrégé. Ce flux de session agrégé est ensuite traité chez le client distant 4, 4', par exemple pour afficher une session unifiée sur l'écran 30 du client distant. Pour l'utilisateur, le programme d'application apparait comme étant exécuté chez le client distant, sur le système informatique, physique émule. L'agrégation des flux de session peut être réalisée chez 35 le client. distant. 4, 4'. Dans ce cas, les flux de session. 14 primaire et secondaire sont, chacun, transmis séparément à ce même client, par le réseau. Le client 4, 4' est équipé de matériel et de logiciel adéquats pour préparer le flux agrégé avant que ces flux soient affichés ou. traités pour l'utilisateur. 5 Selon une autre solution, les flux de session primaire et secondaire sont dirigés par le processus de capture respectif des sessions d'utilisateur primaire et secondaire vers un serveur d'agrégation. séparé. Le serveur d'agrégation, qui peut 1 0 être situé chez n'importe quel communiquer le réseau. L'étape secondaire peut coordination du l'hôte 1, ou chez l'hôte secondaire 1' ou dans autre lieu, combine les deux flux avant de flux agrégé au client, distant 4, 4', sur le d'orientation des flux de session primaire et être réalisée, par exemple, par le processus de serveur maître 5. 15 "Flux agrégés" signifie que seules les parties pertinentes des deux flux sont intégrées dans le flux intégré résultant. Plus précisément, le flux de session secondaire se voit attribuer la oriorite et seules les informations 20 complémentaires tirées du flux de session primaire, le cas échéant, sont intégrées dans le flux agrégé. Par exemple, si le programme d'application est en cours d'exécution en mode plein écran dans la session d'utilisateur secondaire, le serveur d'agrégation ou le client distant supprimera toutes les données 25 d'affichage du flux de session primaire, de telle façon que seules les données d'affichage de la session d'utilisateur secondaire seront affichées chez le client distant 4, 4'. Cependant, il peut intégrer des données de son ou d'autres informations provenant du flux de session primaire dans le flux 30 agrégé. Si le programme d'application est. en cours d'exécution en. mode fenêtre de la session d'utilisateur secondaire, le serveur d'agrégation ou le client distant complétera les données d'affichage de la session secondaire, à l'extérieur de la fenêtre, avec des données d'affichage provenant du flux de 35 session primaire. 15 En fournissant un serveur supplémentaire 2' pour l'exécution d'un programme d'application demandé, dans le cadre d'une session d/utilisateur secondaire gui a de préférence accès 5 au contexte d'utilisateur, le programme d'application peut être exécuté de manière très efficace, par exemple, sans temps de latence excessif dans l'exécution. Grâce à l'agrégation rte sessions d'utilisateur primaire et. secondaire, les ressources dédiées sont fournies à l'utilisateur en toute transparence, 10 comme s'il utilisait, chez lui, un unique ordinateur personnel haut de gamme. Une fois que le programme d'application est terminé, chez 1'utilisateur, la session d'utilisateur secondaire peut kg être fermée et le serveur supplémentaire 2' libéré. Les données d'utilisateur qui ont été copiées dans le serveur de stockage supplémentaire 6' peuvent être mises à jour dans le contexte d'utilisateur du serveur de stockage 6 de l'ordinateur hôte 1, pour refléter les modifications qui ont été apportées pendant 20 que le programme d'application était en cours d'exécution. Le flux de session primaire est. réorienté vers le client distant s'il était dirigé vers un serveur d'agrégation. Le fait: que le procédé décrit et l'architecture 25 informatique combinent des machines virtuelles qui fonctionnent sur un serveur partagé et des serveurs supplémentaires pour l'exécution de certains programmes inf=ormatiques d'application intensive permet de fournir, à l'utilisateur, un excellent niveau de service, tout en réduisant au minimum les ressources 30 informatiques, en particulier les ressources matérielles, qui sont nécessaires pour atteindre ce niveau de service. Cela permet, plus spécialement, de transférer la session primaire complète d'un serveur à un autre serveur, plus puissant, lorsque 1/utilisateur souhaite exécuter des programmes informatiques 16 d'application intensive. Ce transfert entra:trierait des retards inacceptables pour les utilisateurs. D'autres variantes du mode de réalisation décrit peuvent r, être comprises et effectuées par les spécialistes de la. technique dans la mise en pratique dé l'invention revendiquée, d'après une étude des dessins, la. description, REVENDICATIONS1. Procédé d'exécution un programme d'application dans un système informatique, ledit système informatique comprenant - un. ordinateur hôte (I) constitué d'une pluralité de serveurs (2) configurés pour faire fonctionner au moins une machine virtuelle, chacun hébergeant une session 10 d'utilisateur. primaire associée à un. client distant. (4, 4') - au moins un. serveur supplémentaire (9') ; océde comprenant : - une étape (31) de transmission d'un flux de session 15 primaire entre la. machine virtuelle et le client distant (4, 4') pour émule r la présence, chez le client distant (4, 4'), d'un système informatique physique ; - une étape (32) d'initiation de l'exécution du programme d'application dans une session d'utilisateur secondaire 20 hébergée sur le serveur supplémentaire (2' ) et de préparation d'un flux de session. secondaire de la session d'utilisateur secondaire - une étape (33) d'agrégation des flux de sessions primaire et secondaire pour former un. flux de session agrégé, et de traitement du flux de session agrégé chez le client distant (4, 4') pour émuler l'exécution du programme d'application sur le système informatique physique. 2. Procédé selon la revendication I, dans lequel l'étape (52) 30 d'initiation de l'exécution du programme d'application comprend. l'interception d'une demande d'utilisateur d'exécuter un programme d'application ou d'installer un programme d' a _lication, grâce à un processus de contrôle de la session d'utilisateur primaire. -)G 1$ 3. Procédé selon l'une quelconque des revendications précédentes, dans lequel la session ci' utilisateur secondaire est hébergée directement sur le serveur supplémentaire (2'). 4. Procédé selon la revendication 1 ou 2, dans lequel la session d'utilisateur secondaire est hébergée sur une machine virtuelle qui fonctionne sur le serveur supplémentaire j 5. Procédé selon l'une quelconque des revendications précédentes, dans lequel le système informatique comprend une pluralité de serveurs (2') et l'étape (32) d'initiation de l'exécution du programme d'application comprend la sélection du serveur supplémentaire (2') parmi la pluralité de serveurs. 6. Procédé selon la revendication précédente, dans lequel la sélection du serveur supplémentaire comprend la sélection parmi la pluralité de serveurs supplémentaires, du serveur supplémentaire (2') qui est le mieux configure pour exécuter le programme d'application. 7. Procédé selon. l'une quelconque dés revendications précédentes, dans lequel l'étape (32) d'initiation de l'exécution du programme d'application comprend l'initiation de la session d'utilisateur secondaire sur le serveur supplémentaire (2'). 8. Procédéselon l'une quelconque des revendications précédentes, dans lequel le système informatique comprend un serveur de stockage (6) associé au serveur (2) de l'ordinateur hôte (1) eL, un serveur de stockage supplémentaire (6') associé au serveur supplémentaire (2'). 9. Procédé selon la revendication précédente, dans lequel l'étape (32) d'initiation de l'exécution du. programme d'application comprend la copie d'au moins une partie d'un contexte d'utilisateur stocké dans le serveur de stockage (6) sur le serveur de stockage supplémentaire (') 5 10. Procédé selon l'une quelconque des revendications précédentes, dans lequel les flux de session primaire et secondaire sont communiqués ao client distant (4, 4') et l'étape 93) d'agrégation des flux de session primaire et secondaire est réalisée chez le client distant (4, 4'). 10 11, Procédé selon quelconque des Tendications 1 à 9, dans lequel le système informatique comprend un serveur d'agrégation, les flux de session primaire et secondaire sont communiqués au serveur d'agrégation, et dans lequel 15 l'étape (S3) d'agrégation des flux de session primaire et secondaire e alisée sur le serveur d'agrégation.