Brevet FR2982971A1 — publié le 20130524

PROCEDE ET SYSTEME DE FOURNITURE D'UNE APPLICATION PAR UNE MACHINE VIRTUELLE ET SUPPORT DE STOCKAGE LISIBLE PAR ORDINATEUR POUR EXECUTER LE PROCEDE La présente invention porte sur une technologie de machine virtuelle (VM). Plus particulièrement, la présente invention porte sur un système et un procédé permettant la fourniture d'une application par une VM et sur un support de stockage lisible par ordinateur pour exécuter le procédé. Les interfaces utilisateur ont considérablement changé au fil des années. Antérieurement, les interfaces de ligne de commande, telles que MS-DOS (Système d'exploitation de disque Microsoft®), fournissaient des lignes de commande pour que des utilisateurs entrent des instructions pour exécuter des applications correspondantes. Par la suite, les interfaces graphiques utilisateur (GUI) se sont développées pour fournir des icônes graphiques en vue d'un fonctionnement facile. Récemment, une attention plus importante a été portée à des concepts relatifs à des machines virtuelles (VM). Les utilisateurs peuvent initialiser des VM et stocker leurs programmes d'application ou leurs données sur de telles VM. Par la suite, les utilisateurs peuvent accéder à leurs VM à n'importe quel moment, à n'importe quel endroit et par l'intermédiaire de n'importe quel ordinateur. En outre, les utilisateurs peuvent également initialiser plusieurs VM dans un seul ordinateur physique pour qu'elles fonctionnent en tant que multiples ordinateurs, dans lesquels chaque VM se voit attribuer un système d'exploitation (OS) différent, est installée avec un ou plusieurs programmes d'application différents, fournit un environnement d'exploitation différent, et stocke des données différentes. Lorsqu'un utilisateur utilise une VM, il/elle peut seulement exécuter des programmes d'application installés sur celle-ci. Si un programme d'application demandé n'est pas installé sur la VM, le programme d'application demandé doit être installé sur la VM de la même façon qu'en cas d'utilisation d'un ordinateur physique, et la réalisation d'une telle installation n'est pas pratique. Une autre façon de fournir le programme d'application demandé non installé sur la VM consiste à initier une nouvelle VM sur laquelle est installé le programme d'application demandé. Cependant, l'initiation d'une autre nouvelle VM prend du temps. En outre, l'ordinateur physique utilisé peut ne pas avoir de fichiers image pour initier une VM avec le programme d'application demandé. En outre, l'ordinateur physique peut ne pas avoir assez de ressources pour initier une autre nouvelle VM. De tels inconvénients peuvent empirer dans le cas d'une application dans le domaine de l'informatique en nuage puisque la plupart des systèmes d'informatique en nuage stockent seulement quelques types d'images pour initier des VM. Chaque utilisateur peut avoir des besoins différents. Par conséquent, si les systèmes d'informatique en nuage sont conçus pour satisfaire les besoins de la plupart des utilisateurs, les VM initiées par les systèmes d'informatique en nuage doivent avoir de nombreux programmes d'application installés. Cependant, chaque VM peut consommer de nombreuses ressources d'un système d'informatique en nuage. Conformément à un mode de réalisation, la présente invention porte sur un procédé permettant la fourniture d'une application par une machine virtuelle (VM), afin de monter un fichier exécutable correspondant à une application, qu'un client demande, sur une VM, de telle sorte que la VM peut exécuter celui-ci. Le procédé permettant la fourniture d'une application par une VM réalise les opérations suivantes : (a) une instruction de demande d'application pour demander une application cible est reçue d'un client ; (b) une VM disponible est affectée selon l'instruction de demande d'application ; (c) un fichier exécutable d'application cible correspondant à l'application cible est recherché parmi plusieurs fichiers exécutables candidats stockés dans un groupe d'unités de stockage de fichiers exécutables ; (d) le fichier exécutable d'application cible est monté sur la VM disponible ; et (e) le fichier exécutable d'application cible monté est exécuté par l'intermédiaire de la VM disponible. Conformément à un autre mode de réalisation, la présente invention porte sur un support de stockage lisible par ordinateur pour stocker un programme d'ordinateur, afin d'exécuter le procédé permettant la fourniture d'une application par une machine virtuelle décrit ci-dessus. Conformément à un autre mode de réalisation, la présente invention porte sur un système permettant la fourniture d'une application par une VM, afin de monter un fichier exécutable correspondant à une application, qu'un client demande, sur une VM, de telle sorte que la VM peut exécuter celui-ci. Le système permettant la fourniture d'une application par une VM comprend un groupe d'unités de stockage de fichiers exécutables, un module de réception d'instruction, un module d'affectation de VM, un module de recherche de fichier exécutable et un module de montage. Le groupe d'unités de stockage de fichiers exécutables stocke plusieurs fichiers exécutables candidats. Le module de réception d'instruction reçoit une instruction de demande d'application pour demander une application cible auprès d'un client. Le module d'affectation de VM affecte une VM disponible selon l'instruction de demande d'application. Le module de recherche de fichier exécutable recherche un fichier exécutable d'application cible correspondant à l'application cible parmi les fichiers exécutables candidats stockés dans le groupe d'unités de stockage de fichiers exécutables. Le module de montage monte le fichier exécutable d'application cible sur la VM disponible, de telle sorte que la VM disponible exécute le fichier exécutable d'application cible monté. La présente invention permet d'obtenir de nombreux avantages. Lorsqu'un utilisateur du client souhaite exécuter un programme d'application, la VM présentement disponible peut être utilisée pour l'exécution de celui-ci. En outre, dans un mode de réalisation de la présente invention, même si aucune VM disponible n'a l'application cible installée, le fichier exécutable correspondant à celle-ci stocké dans le groupe d'unités de stockage de fichiers exécutables peut être copié ou lié pour un montage ultérieur, de telle sorte que la VM sans l'application cible préinstallée peut exécuter par la suite l'application cible. En d'autres termes, il n'y a pas besoin d'initialiser une nouvelle VM si aucune VM n'a l'application cible installée. En conséquence, il est possible d'installer seulement quelques applications dans chaque VM, ce qui conduit à une réduction de la ressource demandée pour chaque VM et du temps pour initialiser une nouvelle VM. En outre, si plusieurs clients font une demande pour la même application, le même fichier exécutable correspondant à l'application demandée peut être copié pour un montage ultérieur à fournir aux clients. En d'autres termes, plusieurs clients différents peuvent utiliser la même application en même temps. Ces caractéristiques, aspects et avantages, ainsi que d'autres, de la présente invention seront mieux compris en référence à la description suivante. Il est bien entendu que la description générale précédente et la description détaillée suivante sont toutes les deux données à titre d'exemple, et sont destinées à fournir une explication plus approfondie de l'invention. L'invention a donc pour objet un procédé de fourniture d'une application par une machine virtuelle 5 (VM), caractérisé par le fait qu'il comprend : (a) la réception à partir d'un client d'une instruction de demande d'application pour demander une application cible ; (b) l'affectation d'une machine virtuelle disponible 10 selon l'instruction de demande d'application ; (c) la recherche d'un fichier exécutable d'application cible correspondant à l'application cible parmi une pluralité de fichiers exécutables candidats stockés dans un groupe d'unités de stockage de fichiers 15 exécutables ; (d) le montage du fichier exécutable d'application cible sur la machine virtuelle disponible ; et (e) l'exécution du fichier exécutable d'application cible monté par l'intermédiaire de la machine 20 virtuelle disponible. Selon un mode de réalisation, une application installée sur le client peut générer et transmettre l'instruction de demande d'application, un bureau virtuel peut être fourni au client pour générer et 25 transmettre l'instruction de demande d'application, ou une page Internet peut être fournie au client pour générer et transmettre l'instruction de demande d'application. Le procédé de fourniture d'une application par 30 une machine virtuelle peut comprendre en outre : la fourniture d'une pluralité de machines virtuelles candidates, chacune des machines virtuelles candidates se voyant allouer une ressource correspondante, et 35 l'affectation à l'opération (b) étant réalisée selon un résultat de la détermination du point de savoir si les ressources correspondantes des machines virtuelles candidates sont ou non adéquates pour le montage et l'exécution du fichier exécutable d'application cible. Selon un autre mode de réalisation, chacune des machines virtuelles candidates peut comprendre en outre une application installée ; l'affectation à l'opération (b) peut être réalisée selon un résultat de la détermination du point de savoir si les applications installées des machines virtuelles candidates comprennent ou non l'application cible et si les ressources correspondantes des machines virtuelles candidates sont ou non adéquates pour l'exécution du fichier exécutable d'application cible ; et lorsque l'ensemble des ressources correspondantes des machines virtuelles candidates, dont les applications installées comprennent l'application cible, ne sont pas adéquates pour l'exécution du fichier exécutable d'application cible, l'affectation à l'opération (b) est réalisée selon un résultat de la détermination du point de savoir si les ressources correspondantes des machines virtuelles candidates, dont les applications installées ne comprennent pas l'application cible, sont ou non adéquates pour l'exécution du fichier exécutable d'application cible. Les fichiers exécutables candidats stockés dans le groupe d'unités de stockage de fichiers exécutables peuvent être exécutables dans un environnement de machine virtuelle de chacune des machines virtuelles candidates. Le procédé de fourniture d'une application par une machine virtuelle peut comprendre en outre : l'affichage d'une image d'exécution générée par 35 la machine virtuelle disponible durant l'exécution du fichier exécutable d'application cible sur une unité d'affichage du client. Dans le procédé de fourniture d'une application par une machine virtuelle, l'opération (b) peut 5 comprendre : la détermination d'une ressource demandée pour l'application cible selon l'instruction de demande d'application ; et la sélection de la machine virtuelle 10 disponible, qui a une ressource adéquate pour la ressource demandée, parmi une pluralité de machines virtuelles candidates. Le procédé de fourniture d'une application par une machine virtuelle peut comprendre en outre : 15 la surveillance d'une ressource restante de chacune des machines virtuelles candidates ; la sélection de la machine virtuelle disponible, qui a la ressource adéquate pour la ressource demandée, parmi les VM candidates comprenant : 20 la sélection de l'une des machines virtuelles candidates, dont la ressource restante est adéquate pour la ressource demandée, en tant que machine virtuelle disponible. Dans le procédé de fourniture d'une application 25 par une machine virtuelle, l'opération (d) peut comprendre : la liaison ou la copie du fichier exécutable d'application cible sur un espace partagé à partir du groupe d'unités de stockage de fichiers exécutables ; et 30 le montage du fichier exécutable d'application cible dans l'espace partagé. Le procédé de fourniture d'une application par une machine virtuelle peut comprendre en outre, avant l'opération (a) : le montage d'une pluralité de fichiers exécutables d'application préconfigurés sur la machine virtuelle disponible ; et la détermination du point de savoir si les fichiers exécutables d'application préconfigurés comprennent ou non le fichier exécutable d'application cible ; dans lequel si les fichiers exécutables d'application préconfigurés ne comprennent pas le fichier 10 exécutable d'application cible, l'opération (d) est réalisée ; et si les fichiers exécutables d'application préconfigurés comprennent le fichier exécutable d'application cible, l'opération (d) n'est pas réalisée. 15 L'invention a également pour objet un système de fourniture d'une application par une machine virtuelle, caractérisé par le fait qu'il comprend : un groupe d'unités de stockage de fichiers exécutables pour stocker une pluralité de fichiers 20 exécutables candidats ; un module de réception d'instruction pour recevoir d'un client une instruction de demande d'application, afin de demander une application cible ; un module d'affectation de machine virtuelle 25 pour affecter une machine virtuelle disponible selon l'instruction de demande d'application ; un module de recherche de fichier exécutable pour rechercher un fichier exécutable d'application cible correspondant à l'application cible parmi les fichiers 30 exécutables candidats stockés dans le groupe d'unités de stockage de fichiers exécutables ; et un module de montage pour monter le fichier exécutable d'application cible sur la machine virtuelle disponible, de telle sorte que la machine virtuelle 35 disponible exécute le fichier exécutable d'application cible monté. Une application installée sur le client peut générer et transmettre l'instruction de demande d'application, un bureau virtuel peut être fourni au client pour générer et transmettre l'instruction de demande d'application, ou une page Internet peut être fournie au client pour générer et transmettre l'instruction de demande d'application. Le système de fourniture d'une application par une machine virtuelle peut comprendre en outre : une pluralité de machines virtuelles candidates, chacune des machines virtuelles candidates se voyant allouer une ressource correspondante ; dans lequel le module d'affectation de machine virtuelle affecte la machine virtuelle disponible selon un résultat de la détermination du point de savoir si les ressources correspondantes des machines virtuelles candidates sont ou non adéquates pour le montage et l'exécution du fichier exécutable d'application cible. Chacune des machines virtuelles candidates peut 20 comprendre en outre une application installée ; le module d'affectation de machine virtuelle affecte la machine virtuelle disponible selon un résultat de la détermination du point de savoir si les applications installées des machines virtuelles candidates comprennent 25 ou non l'application cible et si les ressources correspondantes des machines virtuelles candidates sont ou non adéquates pour l'exécution du fichier exécutable d'application cible ; et lorsque l'ensemble des ressources correspondantes 30 des machines virtuelles candidates, dont les applications installées comprennent l'application cible, ne sont pas adéquates pour l'exécution du fichier exécutable d'application cible, le module d'affectation de machine virtuelle affecte la machine virtuelle disponible selon un 35 résultat de la détermination du point de savoir si les ressources correspondantes des machines virtuelles candidates, dont les applications installées ne comprennent pas l'application cible, sont ou non adéquates pour l'exécution du fichier exécutable d'application cible. Le module de montage peut fournir une image d'exécution générée par la machine virtuelle disponible durant l'exécution du fichier exécutable d'application cible, de telle sorte qu'une unité d'affichage du client affiche l'image d'exécution. Le système de fourniture d'une application par une machine virtuelle peut comprendre en outre : un module de détermination d'informations pour déterminer une ressource demandée pour l'application cible selon l'instruction de demande d'application ; le module d'affectation de machine virtuelle sélectionnant l'une des machines virtuelles candidates, qui a une ressource adéquate pour la ressource demandée, en tant que machine virtuelle disponible. Le système de fourniture d'une application par 20 une machine virtuelle peut comprendre en outre : un module de surveillance de ressource pour surveiller une ressource restante de chacune des machines virtuelles candidates ; le module d'affectation de machine virtuelle 25 sélectionnant l'une des machines virtuelles candidates, dont la ressource restante est adéquate pour la ressource demandée, en tant que machine virtuelle disponible. Le module de montage peut monter en outre une pluralité de fichiers exécutables d'application 30 préconfigurés sur la machine virtuelle disponible, dans lequel avant le montage du fichier exécutable d'application cible sur la machine virtuelle disponible, le module de montage détermine en outre si les fichiers exécutables d'application préconfigurés comprennent ou non le fichier 35 exécutable d'application cible ; dans lequel si les fichiers exécutables d'application préconfigurés ne comprennent pas le fichier exécutable d'application cible, le module de montage monte le fichier exécutable d'application cible sur la machine virtuelle disponible. L'invention porte également sur un support de stockage lisible par ordinateur caractérisé par le fait qu'il comporte un programme d'ordinateur pour exécuter un procédé de fourniture d'une application, le procédé comprenant : (a) la réception à partir d'un client d'une instruction de demande d'application pour demander une application cible ; (b) l'affectation d'une machine virtuelle disponible selon l'instruction de demande d'application ; (c) la recherche d'un fichier exécutable d'application cible correspondant à l'application cible parmi une pluralité de fichiers exécutables candidats stockés dans un groupe d'unités de stockage de fichiers exécutables ; (d) le montage du fichier exécutable d'application cible sur la machine virtuelle disponible ; et (e) l'exécution du fichier exécutable d'application cible monté par l'intermédiaire de la machine virtuelle disponible. par une machine virtuelle selon la revendication 1. L'invention porte également sur un support de stockage lisible par ordinateur tel que décrit précédemment, le procédé comprend en outre, avant 30 l'opération (a) : le montage d'une pluralité de fichiers exécutables d'application préconfigurés sur la machine virtuelle disponible ; et la détermination du point de savoir si les 35 fichiers exécutables d'application préconfigurés comprennent ou non le fichier exécutable d'application cible ; dans lequel si les fichiers exécutables d'application préconfigurés ne comprennent pas le fichier 5 exécutable d'application cible, l'opération (d) est réalisée ; et si les fichiers exécutables d'application préconfigurés comprennent le fichier exécutable d'application cible, l'opération (d) n'est pas réalisée. 10 L'invention peut être mieux comprise à la lecture de la description détaillée suivante des modes de réalisation, avec référence aux dessins annexés. Sur ces dessins : 15 - la Figure 1 est un organigramme d'un procédé de fourniture d'une application par une machine virtuelle (VM), conformément à un mode de réalisation de la présente invention ; 20 - la Figure 2 illustre un schéma fonctionnel d'un système de fourniture d'une application par une VM, conformément à un mode de réalisation de la présente invention ; et 25 - la Figure 3 illustre un schéma fonctionnel d'un système de fourniture d'une application par une VM, conformément à un autre mode de réalisation de la présente invention. 30 Il sera maintenant fait référence en détail aux présents modes de réalisation de l'invention, dont des exemples sont illustrés dans les dessins annexés. Les mêmes chiffres de référence sont utilisés dans la mesure du possible dans les dessins et la description pour se 35 référer aux mêmes parties ou à des parties similaires. Si l'on se réfère à la Figure 1, on peut voir que l'on y a représenté un organigramme, lequel illustre un procédé de fourniture d'une application par une machine virtuelle (VM), conformément à un mode de réalisation de la présente invention. Dans le procédé de fourniture d'une application par une VM, un fichier exécutable correspondant à une application, qu'un client demande, est monté sur une VM, de telle sorte que la VM peut exécuter celui-ci. Le procédé de fourniture d'une application par une VM peut prendre la forme d'un produit programme d'ordinateur stocké sur un support de stockage lisible par ordinateur ayant des instructions lisibles par ordinateur incorporées sur le support. Tout support de stockage approprié peut être utilisé, comprenant une mémoire non volatile, telle que des dispositifs à mémoire morte (ROM), à mémoire morte programmable (PROM), à mémoire morte reprogrammable (EPROM) et à mémoire morte programmable effaçable électriquement (EEPROM) ; une mémoire volatile, telle qu'une mémoire vive statique (SRAM), une mémoire vive dynamique (DRAM) et une mémoire vive à double débit binaire (DDR-RAM) ; des dispositifs de stockage optiques, tels que des disques compacts à mémoire morte (CD-ROM) et des disques numériques polyvalents à mémoire morte (DVD-ROM) ; et des dispositifs de stockage magnétiques, tels que des lecteurs de disque dur (HDD) et des lecteurs de disquette. La routine 100 du procédé de fourniture d'une application par une VM commence à l'opération 120, où une instruction de demande d'application pour demander une application cible est reçue d'un client. Dans un mode de réalisation de la présente invention, lorsqu'un utilisateur du client souhaite exécuter une application cible, l'utilisateur du client peut utiliser un programme d'application installé sur le client pour générer et transmettre l'instruction de demande d'application afin que celle-ci soit reçue à l'opération 120. Dans un autre mode de réalisation de la présente invention, un bureau virtuel peut être fourni au client, de telle sorte qu'un utilisateur du client peut utiliser le bureau virtuel fourni pour générer et transmettre l'instruction de demande d'application afin que celle-ci soit reçue à l'opération 120. Dans encore un autre mode de réalisation de la présente invention, une page Internet peut être fournie au client, de telle sorte qu'un utilisateur du client peut utiliser la page Internet fournie pour générer et transmettre l'instruction de demande d'application afin que celle-ci soit reçue à l'opération 120. Dans certains modes de réalisation, le client peut construire une connexion à un système exécutant le procédé de la présente demande par l'intermédiaire d'un réseau de communication filaire ou sans fil. Dans certains autres modes de réalisation, le client et un système exécutant le procédé de la présente demande peuvent être disposés dans le même appareil matériel. La routine 100 se poursuit à l'opération 130, où une VM disponible est affectée selon l'instruction de demande d'application. Dans un mode de réalisation de la présente demande, la VM disponible peut être une VM ayant une ressource disponible pour fournir un service au client. Dans certains modes de réalisation, le programme d'application correspondant à l'instruction de demande d'application peut ou peut ne pas être installé dans la VM disponible. Dans un mode de réalisation de la présente invention, plusieurs VM candidates sont fournies, et chacune des VM candidates se voit allouer une ressource correspondante. Par conséquent, dans un mode de réalisation à l'opération 130, l'affectation est réalisée selon un résultat de la détermination du point de savoir si les ressources correspondantes des VM candidates sont ou non adéquates pour le montage et l'exécution d'un fichier exécutable d'application cible. Par exemple, au moins l'une des VM candidates, qui a une ressource suffisante pour monter et exécuter le fichier exécutable d'application cible, est sélectionnée en tant que VM disponible. Dans un autre mode de réalisation de la présente invention, chacune des VM candidates comprend en outre une application installée. Par conséquent, dans certains modes de réalisation à l'opération 130, l'affectation est réalisée selon un résultat de la détermination du point de savoir si les applications installées des VM candidates comprennent ou non l'application cible et si les ressources correspondantes des VM candidates sont ou non adéquates pour l'exécution du fichier exécutable d'application cible. Par exemple, les VM candidates ayant l'application cible installée et avec des ressources suffisantes pour exécuter le fichier exécutable d'application cible peuvent être sélectionnées en tant que VM disponibles, et ces VM candidates peuvent se voir donner une priorité haute. Lorsque l'ensemble des ressources correspondantes des VM candidates, dont les applications installées comprennent l'application cible, ne sont pas adéquates pour l'exécution du fichier exécutable d'application cible, l'affectation à l'opération 130 est réalisée selon un résultat de la détermination du point de savoir si les ressources correspondantes des VM candidates, dont les applications installées ne comprennent pas l'application cible, sont ou non adéquates pour l'exécution du fichier exécutable d'application cible. En d'autres termes, l'une des VM candidates, dont les applications installées ne comprennent pas l'application cible mais ont des ressources suffisantes pour exécuter le fichier exécutable d'application cible, est sélectionnée en tant que VM disponible. En outre, une ressource demandée pour l'application cible est déterminée selon l'instruction 5 de demande d'application à l'opération 130. La ressource demandée pour l'application cible peut comprendre une ressource de calcul demandée, un espace mémoire demandé, un ensemble d'instructions demandé ou toute autre ressource demandée pour l'application cible. Par 10 conséquent, à l'aide de telles informations de la ressource demandée pour l'application cible, la VM disponible, qui a une ressource adéquate pour la ressource demandée, peut être sélectionnée parmi les VM candidates. 15 En outre, une ressource restante de chacune des VM candidates peut être surveillée. Par conséquent, dans un mode de réalisation à l'opération 130, l'une des VM candidates, dont la ressource restante est adéquate pour la ressource demandée, est sélectionnée en tant que VM 20 disponible. Par la suite, la routine 100 se poursuit de l'opération 130 à l'opération 140, où un fichier exécutable d'application cible correspondant à l'application cible est recherché parmi plusieurs 25 fichiers exécutables candidats stockés dans un groupe d'unités de stockage de fichiers exécutables. Dans un mode de réalisation, les fichiers exécutables candidats stockés dans le groupe d'unités de stockage de fichiers exécutables peuvent être exécutés dans un environnement 30 de VM de chacune des VM candidates, de telle sorte qu'il n'y a pas besoin de réinstaller les fichiers exécutables candidats selon les paramètres d'environnement des VM candidates. Dans un mode de réalisation de la présente 35 invention, les fichiers exécutables candidats stockés dans le groupe d'unités de stockage de fichiers exécutables peuvent être exécutés directement dans les environnements système de VM des VM candidates. Dans un autre mode de réalisation de la présente invention, les fichiers exécutables candidats stockés dans le groupe d'unités de stockage de fichiers exécutables peuvent être exécutés dans les environnements système de VM des VM candidates immédiatement après avoir été compilés. Dans encore un autre mode de réalisation de la présente invention, les fichiers exécutables candidats stockés dans le groupe d'unités de stockage de fichiers exécutables peuvent être exécutés sur un émulateur pour être exécutés directement dans les environnements système de VM des VM candidates sans être réinstallés. A partir de l'opération 140, la routine 100 se poursuit à l'opération 150, où le fichier exécutable d'application cible est monté sur la VM disponible affectée à l'opération 130. Dans un mode de réalisation à l'opération 150, le fichier exécutable d'application cible peut être copié sur un espace partagé ou lié à un espace partagé. Par la suite, le fichier exécutable d'application cible dans l'espace partagé peut être monté sur la VM disponible affectée à l'opération 130. La routine 100 se poursuit ensuite à l'opération 160, où le fichier exécutable d'application cible monté est exécuté par l'intermédiaire de la VM disponible affectée à l'opération 130. Par conséquent, lorsqu'un utilisateur du client souhaite exécuter un programme d'application, la VM disponible peut être utilisée pour l'exécution de celui-ci. En outre, dans un mode de réalisation de la présente invention, même si aucune VM disponible n'a l'application cible installée, le fichier exécutable correspondant à celle-ci stocké dans le groupe d'unités de stockage de fichiers exécutables peut être copié ou lié pour un montage ultérieur, de telle sorte que la VM sans l'application cible préinstallée peut exécuter par la suite l'application cible. En d'autres termes, il n'y a pas besoin d'initialiser une nouvelle VM si aucune VM n'a l'application cible installée. En conséquence, il est possible d'installer seulement quelques applications dans chaque VM, ce qui conduit à une réduction de la ressource demandée pour chaque VM et du temps pour initialiser une nouvelle VM. En outre, si plusieurs clients font une demande pour la même application, le même fichier exécutable correspondant à l'application demandée peut être copié pour un montage ultérieur à fournir aux clients. En d'autres termes, plusieurs clients différents peuvent utiliser la même application en même temps. Par la suite, la routine 100 se poursuit à l'opération 170, où une image d'exécution, qui est générée par la VM disponible durant l'exécution du fichier exécutable d'application cible, est affichée sur une unité d'affichage du client. En outre, dans un mode de réalisation de la présente invention, certains fichiers exécutables peuvent être prémontés sur la VM disponible. Par conséquent, la routine 100 peut réaliser des opérations, où plusieurs fichiers exécutables d'application préconfigurés sont montés sur la VM disponible lorsque la VM disponible est initialisée. Par conséquent, avant que l'opération 150 ne soit réalisée, il peut être déterminé si les fichiers exécutables d'application préconfigurés montés sur la VM disponible comprennent le fichier exécutable d'application cible. Si les fichiers exécutables d'application préconfigurés ne comprennent pas le fichier exécutable d'application cible, l'opération 150 peut être réalisée. Si les fichiers exécutables d'application préconfigurés montés sur la VM disponible comprennent le fichier exécutable d'application cible, l'opération 150 peut être sautée et l'opération 160 est réalisée par la suite. Par conséquent, par prémontage de fichiers exécutables utilisés fréquemment, le temps de montage peut être davantage réduit. Si l'on se réfère à la Figure 2, on peut voir 5 qu'il y est représenté un schéma fonctionnel, lequel illustre un système de fourniture d'une application par une VM, conformément à un mode de réalisation de la présente invention. Le système monte un fichier exécutable correspondant à une application, qu'un client 10 demande, sur une VM, de telle sorte que la VM peut exécuter celui-ci. Le système 200 de fourniture d'une application par une VM comprend un groupe d'unités de stockage de fichiers exécutables 210, un module de réception 15 d'instruction 250, un module d'affectation de VM 260, un module de recherche de fichier exécutable 270 et un module de montage 280. Dans un mode de réalisation, le module de réception d'instruction 250, le module d'affectation de VM 260, le module de recherche de 20 fichier exécutable 270 et le module de montage 280 peuvent être mis en oeuvre par au moins une unité de traitement d'un unique serveur. Dans un autre mode de réalisation, le module de réception d'instruction 250, le module d'affectation de VM 260, le module de 25 recherche de fichier exécutable 270 et le module de montage 280 peuvent être mis en oeuvre de manière discrète par des unités de traitement de plusieurs serveurs différents. Le groupe d'unités de stockage de fichiers 30 exécutables 210 stocke plusieurs fichiers exécutables candidats. De plus, le système 200 peut fournir en outre plusieurs VM candidates initialisées. Dans un mode de réalisation de la présente invention, le groupe d'unités de stockage de fichiers exécutables 210 peut être mis en 35 oeuvre par une unité de stockage d'un serveur. Dans un autre mode de réalisation de la présente invention, le groupe d'unités de stockage de fichiers exécutables 210 peut être mis en oeuvre par un dispositif de stockage en nuage. En outre, les fichiers exécutables candidats stockés dans le groupe d'unités de stockage de fichiers exécutables 210 s'adaptent aux environnements système de VM des VM candidates, de telle sorte que de tels fichiers exécutables candidats n'ont pas besoin d'être réinstallés selon des paramètres d'environnement des VM candidates. Dans un mode de réalisation de la présente invention, les fichiers exécutables candidats stockés dans le groupe d'unités de stockage de fichiers exécutables 210 peuvent être exécutés directement dans les environnements système de VM des VM candidates. Dans un autre mode de réalisation de la présente invention, les fichiers exécutables candidats stockés dans le groupe d'unités de stockage de fichiers exécutables 210 peuvent être exécutés dans les environnements système de VM des VM candidates immédiatement après avoir été compilés. Dans encore un autre mode de réalisation de la présente invention, les fichiers exécutables candidats stockés dans le groupe d'unités de stockage de fichiers exécutables 210 peuvent être exécutés sur un émulateur pour être exécutés directement dans les environnements système de VM des VM candidates sans être réinstallés. Lorsqu'un utilisateur du client 400 demande une application cible, l'utilisateur du client 400 peut réaliser une telle opération par l'intermédiaire du client 400 pour générer une instruction de demande d'application correspondante Par la suite, le module de réception d'instruction 250 reçoit une instruction de demande d'application pour demander l'application cible auprès du client 400. Dans un mode de réalisation de la présente invention, lorsqu'un utilisateur du client 400 souhaite exécuter l'application cible, l'utilisateur du client 400 peut utiliser un programme d'application installé sur le client 400 pour générer et transmettre l'instruction de demande d'application afin que celle-ci soit reçue par le module de réception d'instruction 250. Dans un autre mode de réalisation de la présente invention, un module de fourniture de bureau virtuel 240 peut fournir un bureau virtuel au client 400. Par la suite, un utilisateur du client 400 peut utiliser le bureau virtuel fourni pour générer et transmettre l'instruction de demande d'application afin que celle-ci soit reçue par le module de réception d'instruction 250. Le module de fourniture de bureau virtuel 240 et le client 400 peuvent être exécutés sur le même appareil électrique. En outre, le module de fourniture de bureau virtuel 240 peut fournir le bureau virtuel à distance par l'intermédiaire d'un réseau au client 400. Le module de fourniture de bureau virtuel 240 peut utiliser une interface de bureau virtuel (VDI) pour transmettre des images du bureau virtuel, afin de fournir le bureau virtuel. Par conséquent, un utilisateur du client 400 peut utiliser le bureau virtuel affiché sur le client 400. Dans encore un autre mode de réalisation de la présente invention, une page Internet peut être fournie au client 400, de telle sorte qu'un utilisateur du client 400 peut utiliser la page Internet fournie pour générer et transmettre l'instruction de demande d'application afin que celle-ci soit reçue par le module de réception d'instruction 250. Le module d'affectation de VM 260 affecte une VM disponible selon l'instruction de demande d'application. Le système 200 peut comprendre plusieurs VM candidates. Chacune des VM candidates se voit allouer une ressource correspondante. Par conséquent, le module d'affectation de VM 260 affecte la VM disponible selon un résultat de la détermination du point de savoir si les ressources correspondantes des VM candidates sont ou non adéquates pour le montage et l'exécution du fichier exécutable d'application cible. De plus, chacune des VM candidates comprend en outre une application installée. Par conséquent, le module d'affectation de VM 260 affecte la VM disponible selon un résultat de la détermination du point de savoir si les applications installées des VM candidates comprennent ou non l'application cible et si les ressources correspondantes des VM candidates sont ou non adéquates pour l'exécution du fichier exécutable d'application cible. Lorsque l'ensemble des ressources correspondantes des VM candidates, dont les applications installées comprennent l'application cible, ne sont pas adéquates pour l'exécution du fichier exécutable d'application cible, le module d'affectation de VM 260 affecte la VM disponible selon un résultat de la détermination du point de savoir si les ressources correspondantes des VM candidates, dont les applications installées ne comprennent pas l'application cible, sont ou non adéquates pour l'exécution du fichier exécutable d'application cible. Le module de recherche de fichier exécutable 270 recherche un fichier exécutable d'application cible correspondant à l'application cible parmi les fichiers exécutables candidats stockés dans le groupe d'unités de stockage de fichiers exécutables 210. Par la suite, le module de montage 280 monte le fichier exécutable d'application cible sur la VM disponible. Dans un mode de réalisation de la présente invention, le module de montage 280 peut copier ou lier le fichier exécutable d'application cible du groupe d'unités de stockage de fichiers exécutables 210 à un espace partagé d'un groupe d'unités de fourniture de fichiers exécutables 220 et donner l'instruction à la VM disponible de monter le fichier exécutable d'application cible dans l'espace partagé du groupe d'unités de fourniture de fichiers exécutables 220. Par la suite, le module de montage 280 peut exécuter le fichier exécutable d'application cible monté par l'intermédiaire de la VM disponible. Le groupe d'unités de stockage de fichiers exécutables 210 et le groupe d'unités de fourniture de fichiers exécutables 220 peuvent être alloués dans le même équipement matériel ou dans un équipement différent. Par la suite, le système 200 fournit une image d'exécution générée par la VM disponible durant l'exécution du fichier exécutable d'application cible, de telle sorte qu'une unité d'affichage du client 400 affiche l'image d'exécution. Par conséquent, lorsqu'un utilisateur du client 400 souhaite exécuter un programme d'application, la VM disponible peut être utilisée pour l'exécution de celui-ci. En outre, dans un mode de réalisation de la présente invention, même si aucune VM disponible n'a l'application cible installée, le fichier exécutable correspondant à celle-ci stocké dans le groupe d'unités de stockage de fichiers exécutables 210 peut être copié ou lié pour un montage ultérieur, de telle sorte que la VM sans l'application cible préinstallée peut exécuter par la suite l'application cible. En d'autres termes, il n'y a pas besoin d'initialiser une nouvelle VM si aucune VM n'a l'application cible installée. En conséquence, il est possible d'installer seulement quelques applications dans chaque VM, ce qui conduit à une réduction de la ressource demandée pour chaque VM et du temps pour initialiser une nouvelle VM. En outre, si plusieurs clients font une demande pour la même application, le même fichier exécutable correspondant à l'application demandée peut être copié pour un montage ultérieur à fournir aux clients. En d'autres termes, plusieurs clients différents peuvent utiliser la même application en même temps. Si l'on fait référence à la Figure 3, un schéma 35 fonctionnel sera décrit, lequel illustre un système de fourniture d'une application par une VM, conformément à un autre mode de réalisation de la présente invention. Il est bien entendu qu'une description d'éléments identiques à ceux mentionnés ci-dessus ne sera pas répétée. Le système 200 peut sélectionner une VM appropriée pour une exécution selon la ressource demandée pour exécuter l'application. Par conséquent, le système 200 peut comprendre en outre un module de détermination d'informations 290 pour déterminer des informations concernant une ressource demandée pour l'application cible selon l'instruction de demande d'application. La ressource demandée pour l'application cible peut comprendre une ressource de calcul demandée, un espace mémoire demandé, un ensemble d'instructions demandé ou toute autre ressource demandée pour l'application cible. Par la suite, le module d'affectation de VM 260 sélectionne l'une des VM candidates, qui a une ressource adéquate pour la ressource demandée, en tant que VM disponible De plus, le système 200 peut comprendre en outre un module de surveillance de ressource 300 pour surveiller une ressource restante de chacune des VM candidates, telle qu'une ressource de calcul restante, un espace mémoire restant ou toutes autres informations concernant une ressource restante. Par conséquent, le module d'affectation de VM 260 sélectionne l'une des VM candidates, dont la ressource restante est adéquate pour la ressource demandée, en tant que VM disponible. En outre, le module de montage 280 peut monter à l'avance plusieurs fichiers exécutables d'application préconfigurés sur la VM disponible. Par conséquent, avant le montage du fichier exécutable d'application cible sur la VM disponible, un dispositif de détermination 280a du module de montage 280 peut déterminer si les fichiers exécutables d'application préconfigurés montés sur la VM disponible comprennent ou non le fichier exécutable d'application cible. Si les fichiers exécutables d'application préconfigurés montés sur la VM disponible ne comprennent pas le fichier exécutable d'application cible, le module de montage 280 monte le fichier exécutable d'application cible sur la VM disponible. Si les fichiers exécutables d'application préconfigurés montés sur la VM disponible comprennent le fichier exécutable d'application cible, le module de montage 280 ne monte pas en outre le fichier exécutable d'application cible sur la VM disponible. Par conséquent, par prémontage de fichiers exécutables utilisés fréquemment, le temps de montage peut être davantage réduit. Bien que la présente invention ait été décrite considérablement en détail en référence à certains modes de réalisation de celle-ci, d'autres modes de réalisation sont possibles. Par conséquent, l'esprit et la portée de l'invention ne devraient pas se limiter à la description des modes de réalisation contenus dans la présente description. Il apparaîtra à l'homme du métier que différentes modifications et variations peuvent être apportées à la structure de la présente invention sans s'écarter ni de la portée ni de l'esprit de l'invention. Compte tenu de ce qui précède, il est prévu que la présente invention couvre des modifications et des variations de cette invention. REVENDICATIONS1 - Procédé de fourniture d'une application par 5 une machine virtuelle (VM), caractérisé par le fait qu'il comprend : (a) la réception (120) à partir d'un client d'une instruction de demande d'application pour demander une application cible ; 10 (b) l'affectation (130) d'une machine virtuelle disponible selon l'instruction de demande d'application ; (c) la recherche (140) d'un fichier exécutable d'application cible correspondant à l'application 15 cible parmi une pluralité de fichiers exécutables candidats stockés dans un groupe d'unités de stockage de fichiers exécutables ; (d) le montage (150) du fichier exécutable d'application cible sur la machine virtuelle 20 disponible ; et (e) l'exécution (150) du fichier exécutable d'application cible monté par l'intermédiaire de la machine virtuelle disponible. 25 2 - Procédé de fourniture d'une application par une machine virtuelle selon la revendication 1, caractérisé par le fait qu'une application installée sur le client génère et transmet l'instruction de demande d'application, un bureau virtuel est fourni au client 30 pour générer et transmettre l'instruction de demande d'application, ou une page Internet est fournie au client pour générer et transmettre l'instruction de demande d'application. 3 - Procédé de fourniture d'une application par une machine virtuelle selon la revendication 1, caractérisé par le fait qu'il comprend en outre : la fourniture d'une pluralité de machines virtuelles candidates, chacune des machines virtuelles candidates se voyant allouer une ressource correspondante, et l'affectation à l'opération (b) étant réalisée selon un résultat de la détermination du point de savoir 10 si les ressources correspondantes des machines virtuelles candidates sont ou non adéquates pour le montage et l'exécution du fichier exécutable d'application cible. 15 4 - Procédé de fourniture d'une application par une machine virtuelle selon la revendication 3, caractérisé par le fait que : chacune des machines virtuelles candidates comprend en outre une application installée ; 20 l'affectation à l'opération (b) est réalisée selon un résultat de la détermination du point de savoir si les applications installées des machines virtuelles candidates comprennent ou non l'application cible et si les ressources correspondantes des machines virtuelles 25 candidates sont ou non adéquates pour l'exécution du fichier exécutable d'application cible ; et lorsque l'ensemble des ressources correspondantes des machines virtuelles candidates, dont les applications installées comprennent l'application 30 cible, ne sont pas adéquates pour l'exécution du fichier exécutable d'application cible, l'affectation à l'opération (b) est réalisée selon un résultat de la détermination du point de savoir si les ressources correspondantes des machines virtuelles candidates, dont 35 les applications installées ne comprennent pasl'application cible, sont ou non adéquates pour l'exécution du fichier exécutable d'application cible. - Procédé de fourniture d'une application par 5 une machine virtuelle selon la revendication 3, caractérisé par le fait que les fichiers exécutables candidats stockés dans le groupe d'unités de stockage de fichiers exécutables sont exécutables dans un environnement de machine virtuelle de chacune des 10 machines virtuelles candidates. 6 - Procédé de fourniture d'une application par une machine virtuelle selon la revendication 1, caractérisé par le fait qu'il comprend en outre : 15 l'affichage (170) d'une image d'exécution générée par la machine virtuelle disponible durant l'exécution du fichier exécutable d'application cible sur une unité d'affichage du client. 20 7 - Procédé de fourniture d'une application par une machine virtuelle selon la revendication 1, caractérisé par le fait que l'opération (b) comprend : la détermination d'une ressource demandée pour l'application cible selon l'instruction de demande 25 d'application ; et la sélection de la machine virtuelle disponible, qui a une ressource adéquate pour la ressource demandée, parmi une pluralité de machines virtuelles candidates. 30 8 - Procédé de fourniture d'une application par une machine virtuelle selon la revendication 7, caractérisé par le fait qu'il comprend en outre : la surveillance d'une ressource restante de 35 chacune des machines virtuelles candidates ;la sélection de la machine virtuelle disponible, qui a la ressource adéquate pour la ressource demandée, parmi les VM candidates comprenant : la sélection de l'une des machines virtuelles 5 candidates, dont la ressource restante est adéquate pour la ressource demandée, en tant que machine virtuelle disponible. 9 - Procédé de fourniture d'une application par 10 une machine virtuelle selon la revendication 1, caractérisé par le fait que l'opération (d) comprend : la liaison ou la copie du fichier exécutable d'application cible sur un espace partagé à partir du groupe d'unités de stockage de fichiers exécutables ; et 15 le montage du fichier exécutable d'application cible dans l'espace partagé. 10 - Procédé de fourniture d'une application par une machine virtuelle selon la revendication 1, 20 caractérisé par le fait qu'il comprend en outre, avant l'opération (a) : le montage d'une pluralité de fichiers exécutables d'application préconfigurés sur la machine virtuelle disponible ; et 25 la détermination du point de savoir si les fichiers exécutables d'application préconfigurés comprennent ou non le fichier exécutable d'application cible ; dans lequel si les fichiers exécutables 30 d'application préconfigurés ne comprennent pas le fichier exécutable d'application cible, l'opération (d) est réalisée ; et si les fichiers exécutables d'application préconfigurés comprennent le fichier exécutable 35 d'application cible, l'opération (d) n'est pas réalisée.11 - Système (200) de fourniture d'une application par une machine virtuelle, caractérisé par le fait qu'il comprend : un groupe d'unités de stockage de fichiers 5 exécutables (210) pour stocker une pluralité de fichiers exécutables candidats ; un module de réception d'instruction (250) pour recevoir d'un client (400) une instruction de demande d'application, afin de demander une application cible ; 10 un module d'affectation de machine virtuelle (260) pour affecter une machine virtuelle disponible selon l'instruction de demande d'application ; un module de recherche de fichier exécutable (270) pour rechercher un fichier exécutable d'application 15 cible correspondant à l'application cible parmi les fichiers exécutables candidats stockés dans le groupe d'unités de stockage de fichiers exécutables (210) ; et un module de montage (280) pour monter le fichier exécutable d'application cible sur la machine virtuelle 20 disponible, de telle sorte que la machine virtuelle disponible exécute le fichier exécutable d'application cible monté. 12 - Système de fourniture d'une application par 25 une machine virtuelle selon la revendication 11, caractérisé par le fait qu'une application installée sur le client (400) génère et transmet l'instruction de demande d'application, un bureau virtuel est fourni au client pour générer et transmettre l'instruction de demande 30 d'application, ou une page Internet est fournie au client pour générer et transmettre l'instruction de demande d'application. 13 - Système de fourniture d'une application par 35 une machine virtuelle selon la revendication 11, caractérisé par le fait qu'il comprend en outre :une pluralité de machines virtuelles candidates, chacune des machines virtuelles candidates se voyant allouer une ressource correspondante ; dans lequel le module d'affectation de machine virtuelle (260) affecte la machine virtuelle disponible selon un résultat de la détermination du point de savoir si les ressources correspondantes des machines virtuelles candidates sont ou non adéquates pour le montage et l'exécution du fichier exécutable d'application cible. 14 - Système de fourniture d'une application par une machine virtuelle selon la revendication 13, caractérisé par le fait que : chacune des machines virtuelles candidates 15 comprend en outre une application installée ; le module d'affectation de machine virtuelle (260) affecte la machine virtuelle disponible selon un résultat de la détermination du point de savoir si les applications installées des machines virtuelles candidates 20 comprennent ou non l'application cible et si les ressources correspondantes des machines virtuelles candidates sont ou non adéquates pour l'exécution du fichier exécutable d'application cible ; et lorsque l'ensemble des ressources correspondantes 25 des machines virtuelles candidates, dont les applications installées comprennent l'application cible, ne sont pas adéquates pour l'exécution du fichier exécutable d'application cible, le module d'affectation de machine virtuelle affecte la machine virtuelle disponible selon un 30 résultat de la détermination du point de savoir si les ressources correspondantes des machines virtuelles candidates, dont les applications installées ne comprennent pas l'application cible, sont ou non adéquates pour l'exécution du fichier exécutable d'application cible. 3515 - Système de fourniture d'une application par une machine virtuelle selon la revendication 11, caractérisé par le fait que le module de montage (280) fournit une image d'exécution générée par la machine virtuelle disponible durant l'exécution du fichier exécutable d'application cible, de telle sorte qu'une unité d'affichage du client affiche l'image d'exécution. 16 - Système de fourniture d'une application par 10 une machine virtuelle selon la revendication 11, caractérisé par le fait qu'il comprend en outre : un module de détermination d'informations (290) pour déterminer une ressource demandée pour l'application cible selon l'instruction de demande d'application ; 15 le module d'affectation de machine virtuelle (260) sélectionnant l'une des machines virtuelles candidates, qui a une ressource adéquate pour la ressource demandée, en tant que machine virtuelle disponible. 20 17 - Système de fourniture d'une application par une machine virtuelle selon la revendication 16, caractérisé par le fait qu'il comprend en outre : un module de surveillance de ressource (300) pour surveiller une ressource restante de chacune des machines 25 virtuelles candidates ; le module d'affectation de machine virtuelle (260) sélectionnant l'une des machines virtuelles candidates, dont la ressource restante est adéquate pour la ressource demandée, en tant que machine virtuelle 30 disponible. 18 - Système de fourniture d'une application par une machine virtuelle selon la revendication 11, caractérisé par le fait que le module de montage (280) 35 monte en outre une pluralité de fichiers exécutables d'application préconfigurés sur la machine virtuelledisponible, dans lequel avant le montage du fichier exécutable d'application cible sur la machine virtuelle disponible, le module de montage (280) détermine en outre si les fichiers exécutables d'application préconfigurés comprennent ou non le fichier exécutable d'application cible ; dans lequel si les fichiers exécutables d'application préconfigurés ne comprennent pas le fichier exécutable d'application cible, le module de montage (280) monte le fichier exécutable d'application cible sur la machine virtuelle disponible. 19 - Support de stockage lisible par ordinateur caractérisé par le fait qu'il comporte un programme d'ordinateur pour exécuter un procédé de fourniture d'une application par une machine virtuelle selon la revendication 1. - Support de stockage lisible par ordinateur 20 selon la revendication 19, caractérisé par le fait que le procédé comprend en outre, avant l'opération (a) : le montage d'une pluralité de fichiers exécutables d'application préconfigurés sur la machine virtuelle disponible ; et la détermination du point de savoir si les fichiers exécutables d'application préconfigurés comprennent ou non le fichier exécutable d'application cible ; dans lequel si les fichiers exécutables 30 d'application préconfigurés ne comprennent pas le fichier exécutable d'application cible, l'opération (d) est réalisée ; et si les fichiers exécutables d'application préconfigurés comprennent le fichier exécutable 35 d'application cible, l'opération (d) n'est pas réalisée.