Brevet FR3034543A1 — publié le 20161007

Système et procédé d'exécution d'une application dans un terminal muni d'une carte à puce L'invention se situe dans le domaine des terminaux munis d'une carte à puce, et concerne plus particulièrement un procédé et un système pour une exécution d'une application dans un tel terminal. L'invention trouve une application particulièrement avantageuse dans le domaine de la communication entre machines ne nécessitant pas d'interactions humaines, ou de machine à machine (de l'anglais M2M pour « Machine-To-Machine »). Les terminaux M2M désignent des objets ou appareils équipés de moyens de traitement de l'information et de moyens de transmission/réception de données leur permettant d'interagir notamment avec un réseau de communication tel qu'un réseau mobile (e.g. réseaux LTE pour « Long Term Evolution » ou UMTS pour « Universal Mobile Telecommunications System »). Il existe une grande variété de terminaux M2M : thermomètre, tensiomètre, montre, feu de circulation, véhicule, etc. On se place par la suite dans le cas d'un terminal M2M prévu pour échanger des données par l'intermédiaire d'un réseau mobile. Un tel terminal M2M est muni d'une carte UICC (pour « Universal Integrated Circuit Card » en anglais) telle que définie dans le document TS 102 223 V12.1.0 de l'ETSI (pour « European Telecommunications Standards Institute » en anglais) intitulé « Smart cards; Card Application Toolkit (CAT) ». Le rôle principal de la carte UICC est de permettre l'attachement du terminal M2M au réseau mobile et l'accès à certains services offerts par le réseau mobile. Une carte UICC est plus particulièrement une carte à puce. Elle se compose généralement d'un microprocesseur et de différents types de mémoire. Quatre exemples d'usages principaux sont distingués pour une carte UICC. Elle est notamment utilisée par un terminal d'un réseau mobile pour authentifier un abonné et ainsi sécuriser l'attachement du terminal au réseau mobile ; pour stocker des informations (e.g. entrées d'un carnet d'adresse, des messages courts SMS pour « Short Message Service », etc.) à la demande du terminal ; pour stocker des paramètres de configuration (e.g. adresse d'un serveur mandataire P-CSCF, numéros d'appel d'urgence, etc.) fournis par exemple par l'opérateur du réseau mobile ; ou encore pour offrir des fonctions d'un serveur Web exécuté au sein de la carte UICC. Le document de l'OMA (pour « Open Alliance Mobile »), intitulé « Smartcard Web Server Enabler Architecture, Approved Version 1.2 », publié le 5 mars 2013, présente une intégration d'un serveur Web dans une carte UICC. Un serveur web étant défini dans ce document comme un serveur envoyant des pages web en réponse à des requêtes HTTP (pour « HyperText Transfer Protocol » en anglais) émises par des navigateurs web. Une requête cliente est ainsi envoyée à destination d'un serveur web depuis un module client tel qu'un navigateur web et le résultat de la requête est retourné au module client par le serveur web. Les principaux éléments 3034543 2 d'une architecture mettant en oeuvre un tel serveur lorsqu'intégré sur une carte à puce sont les suivants : - un serveur web pour carte à puce ou serveur SCWS (pour « Smart Card Web Server » en anglais) : ce serveur a principalement pour objectif de permettre aux opérateurs de réseaux 5 mobiles d'offrir de nouveaux services ou des services avancés à leurs abonnés. Ces services reposent sur des communications http entre le module client installé sur le terminal et le serveur SCWS installé sur la carte à puce équipant le terminal ; - une passerelle SCWS: la passerelle est une entité du terminal mobile permettant d'assurer une connexion entre le module client du terminal et le serveur web de la carte à puce à 10 l'aide d'un protocole de transport local, tel que le protocole BIP (pour « Bearer Independent Protocol » en anglais). La passerelle a notamment pour rôle de traduire les messages TCP/IP du module client dans ce protocole de transport local, et inversement ; - un module client http : il s'agit du module mis en oeuvre par le terminal, qui est à l'origine des requêtes http émises à destination du serveur SCWS ; 15 - un module client https (pour « HyperText Transfer Protocol Secure » en anglais) : il s'agit d'un module client http pouvant communiquer avec le serveur SCWS à l'aide du protocole TLS (pour « Transport Layer Security » en anglais) ; - une application d'administration SCWS : il s'agit d'une entité du réseau de l'opérateur utilisée pour l'installation et la mise à jour du serveur SCWS. 20 Un inconvénient de cette méthode est qu'elle nécessite l'utilisation de technologies web qui ne sont pas toujours adaptées pour une exécution dans le terminal M2M et dans la carte à puce requérant d'importantes capacités de calcul et/ou d'exécution. De plus, un fournisseur de modules applicatifs ne peut pas développer ses propres services et est contraint de recourir aux seuls services proposés par le serveur SCWS mis en oeuvre par la carte à puce, ce qui peut être une 25 source de limitation importante dans le développement d'une application (e.g. services proposés par le serveur SCWS ne permettant pas de mettre en oeuvre certains traitements à réaliser par l'application). En outre, les services proposés par le serveur SCWS sont des services mis en oeuvre à l'aide du protocole http qui ne permettent pas à un fournisseur de modules applicatifs un accès direct aux ressources physiques d'une carte à puce. 30 Un des buts de l'invention est de remédier à des insuffisances/inconvénients de l'état de la technique et/ou d'y apporter des améliorations. Selon un premier aspect, l'invention concerne un procédé d'exécution, dans un terminal muni d'une carte à puce, d'une application, dans lequel une entité d'installation met en oeuvre : - une vérification que la carte à puce dispose de ressources d'exécution pour exécuter un module 35 serveur distant en coopération avec un module client s'exécutant sur le terminal pour fournir l' application ; 3034543 3 et la carte à puce ayant été vérifiée disposer des ressources pour exécuter le module serveur distant : - une demande de création d'une ressource virtualisée s'appuyant sur les ressources d'exécution, à une entité de gestion de ressources virtualisées de la carte à puce ; et 5 - une commande d'installation du module serveur distant dans la carte à puce, pour une exécution, par la ressource virtualisée créée, du module serveur distant, en coopération avec le module client. Le problème technique à l'origine de l'invention est issu du domaine des communications entre machines ne nécessitant pas d'interactions humaines La solution proposée est cependant applicable à tout type de terminal muni d'une carte à puce. 10 Le procédé permet de fournir un environnement d'exécution pour un module serveur distant, constitutif d'une application, au sein d'une carte à puce. Il permet ainsi de tirer profit des ressources d'exécution propres à la carte à puce. Ces ressources d'exécution se définissent plus précisément comme les ressources (ressources de stockage, de calcul, interfaces, etc.) nécessaires à l'exécution d'une suite d'instructions dans un langage machine associé à la carte à puce. Il s'agit 15 des ressources permettant d'exécuter un ensemble d'instructions en langage machine d'un module exécutable tel que le module serveur distant. Les ressources d'exécution sont en particulier vérifiées insuffisantes pour exécuter le module serveur distant lorsque ce dernier comprend un ensemble d'instructions dans un langage machine non pris en charge par la carte à puce équipant le terminal. C'est également le cas lorsque l'entité de gestion de ressources virtualisées de la carte à 20 puce n'est pas en mesure d'allouer les ressources nécessaires à l'exécution du module serveur distant. Le procédé permet de vérifier que la carte à puce dispose des ressources nécessaires à la mise en oeuvre du module serveur distant. Le procédé permet ainsi à un terminal de tirer profit des ressources d'exécution d'une carte à puce l'équipant. Des traitements sont mis en oeuvre par un terminal sans qu'il soit nécessaire pour cela de prévoir une augmentation de ses capacités de 25 traitements. Ceci a notamment pour effet de réduire le coût de fabrication de tels terminaux, ce qui est particulièrement intéressant pour des terminaux M2M. Le module serveur distant peut ainsi être exécuté par n'importe quelle carte à puce munie d'un processeur avec lequel les instructions en langage machine du module serveur distant sont compatibles, et dont les ressources d'exécution en permettent l'exécution. De même le fournisseur 30 de l'application n'est pas contraint à un langage de programmation particulier lors de la programmation de l'application mise en oeuvre par le terminal. Dans un mode de réalisation particulier, le terminal peut par ailleurs avantageusement être équipé d'une carte à puce choisie en fonction des besoins en ressources d'exécution requis par les traitements à réaliser par le terminal lui-même. De même, il est possible pour un fournisseur 35 d'application, de proposer différents modules serveurs distants pour une même application, et d'adapter ainsi les traitements proposés en fonction du type de carte à puce équipant le terminal. 3034543 4 L'exécution du module serveur distant par une ressource virtualisée gérée par une entité de gestion de ressources virtualisées permet d'utiliser des ressources d'exécution de la carte à puce sur un modèle dit d'infrastructure en tant que service, ou infrastructure IaaS (pour « Infrastructure as a Service » en anglais). Les ressources d'exécution de la carte à puce sont ainsi disponibles à la 5 demande et peuvent être partagées de façon sécurisée entre plusieurs applications. Selon une caractéristique particulière du procédé selon le premier aspect, le procédé comprend, lorsque la carte à puce ne dispose pas de ressources d'exécution pour exécuter le module serveur distant, une installation d'un module serveur local dans le terminal pour une exécution par le terminal du module serveur local en coopération avec le module client pour fournir 10 l'application. La mise en oeuvre du procédé permet ainsi de recourir à un deuxième module exécutable installé dans le terminal, le module serveur local, en fonction des ressources respectivement disponibles dans le terminal et dans la carte à puce. Il est ainsi possible de choisir préférentiellement une exécution d'un module serveur local par le terminal Le module serveur 15 local est par exemple exécuté par la carte à puce lorsque cette dernière dispose de ressources d'exécution plus importantes que le terminal, et réciproquement le module serveur distant exécuté par le terminal lorsque ce dernier dispose de ressources d'exécution plus importantes que la carte à puce. En particulier lorsque le terminal ne dispose pas de ressources d'exécution suffisantes 20 pour exécuter le module serveur distant, le procédé permet de garantir le fonctionnement du terminal selon un mode alternatif reposant sur les ressources d'exécution du terminal. Ce mode alternatif est par exemple un fonctionnement dégradé du terminal (ex. traitements réalisés plus lentement, nombre de fonctionnalités réduites, etc). Selon une caractéristique particulière du procédé selon le premier aspect, le procédé 25 comprend une obtention, auprès de l'entité de gestion de ressources virtualisées, d'une information relative à la disponibilité de ressources d'exécution de la carte à puce, la vérification que la carte à puce dispose de ressources d'exécution pour exécuter le module serveur distant étant réalisée uniquement pour les ressources d'exécution déterminées disponibles au moyen de cette information. 30 L'obtention d'une information relative à la disponibilité de ressources d'exécution de la carte à puce permet ainsi de limiter la vérification que la carte à puce dispose de ressources d'exécution pour exécuter le module serveur distant aux seules ressources d'exécution disponibles au sein de cette dernière. Une ressource d'exécution est plus particulièrement considérée disponible lorsqu'elle n'est pas réservée à des traitements tiers planifiés au niveau de la carte à puce. Le 35 procédé permet d'assurer une allocation de ressources d'exécution spécifiquement dédiées au module serveur distant. Le procédé permet ainsi de garantir que les ressources d'exécution pour 3034543 5 exécuter le module serveur distant ne sont pas susceptibles d'être utilisées par un traitement tiers lors de l'exécution ultérieure du module serveur distant Dans un mode de réalisation particulier, l'installation du module serveur distant est avantageusement différée jusqu'à ce que des ressources d'exécution de la carte à puce soient 5 disponibles. Selon une caractéristique particulière du procédé selon le premier aspect, l'application est une application de commande de signal radio, le module serveur client implémentant une première fonction de transmission et de réception du signal radio, et le module serveur distant implémentant une deuxième fonction de commande de la première fonction. 10 Selon une caractéristique particulière du procédé selon le premier aspect, le procédé comprend en outre une installation, en fonction d'une politique d'installation, d'un module serveur local dans le terminal pour une exécution par le terminal, en alternative au module serveur distant, du module serveur local en coopération avec le module client pour fournir l'application. La politique d'installation correspond à des préférences relatives à l'installation du 15 module serveur local ou distant. Ces préférences sont par exemple indiquées dans un fichier de configuration associé à l'application, et permettent de prendre en compte des caractéristiques de l'application à exécuter lors de l'installation du module serveur local ou distant. Il est par exemple possible via une telle politique d'installation d'installer préférentiellement un module serveur local plutôt qu'un module serveur distant. Pour une application générant un fort trafic sur une ou 20 plusieurs interfaces radios, un fabricant peut ainsi privilégier une installation d'un module serveur local afin de ne pas encombrer l'interface entre le terminal et la carte à puce. Selon un deuxième aspect, l'invention concerne un procédé d'exécution, dans un terminal muni d'une carte à puce, d'une application, dans lequel une entité de gestion de ressources virtualisées de la carte à puce met en oeuvre sur demande d'une entité d'installation : 25 - une création d'une ressource virtualisée s'appuyant sur des ressources d'exécution de la carte à puce ; - une installation d'un module serveur distant dans la carte à puce, pour une exécution par la ressource virtualisée créée du module serveur distant en coopération avec le module client pour fournir l'application. 30 Selon une caractéristique particulière, l'entité de gestion de ressources virtualisées met en oeuvre une fourniture, à une entité d'installation de l'application, d'une information relative à la disponibilité de ressources d'exécution de la carte à puce pour exécuter le module serveur distant. Selon un troisième aspect, l'invention concerne un terminal, comprenant des moyens agencés pour recevoir une carte à puce et une entité d'installation comprenant : 35 - un module de vérification, agencé pour vérifier que la carte à puce dispose de ressources d'exécution pour exécuter un module serveur distant en coopération avec un module client s'exécutant sur le terminal pour fournir une application ; 3034543 6 - un module d'envoi, activé lorsque la carte à puce est vérifiée disposer de ressources d'exécution pour exécuter le module serveur distant, agencé pour envoyer une demande de création d'une ressource virtualisée s'appuyant sur les ressources d'exécution, à une entité de gestion de ressources virtualisées de la carte à puce ; 5 - un module de commande, activé lorsque la carte à puce est vérifiée disposer de ressources d'exécution pour exécuter le module serveur distant, agencé pour commander une installation du module serveur distant dans la carte à puce, pour une exécution du module serveur distant par la ressource virtualisée créée en s'appuyant sur les ressources d'exécution, en coopération avec le module client. 10 Selon un quatrième aspect, l'invention concerne une carte à puce, comprenant des moyens agencés pour mettre en oeuvre une entité de gestion de ressources virtualisées comprenant : - un module de génération, agencé pour créer au moins une ressource virtualisée s'appuyant sur des ressources d'exécution de la carte à puce ; - un module d'installation, agencé pour installer un module serveur distant dans la carte à puce, 15 pour une exécution du module serveur distant par la ressource virtualisée créée, en coopération avec le module client. Les avantages énoncés pour le procédé d'exécution selon l'une quelconque des caractéristiques du premier aspect sont directement transposables respectivement au procédé selon l'une quelconque des caractéristiques du deuxième aspect, au terminal selon le troisième aspect et à 20 la carte à puce selon le quatrième aspect. Selon un cinquième aspect, l'invention concerne un système d'exécution d'une application comprenant un terminal selon le troisième aspect, muni d'une carte à puce selon le quatrième aspect. Selon un sixième aspect, l'invention concerne également un programme pour une entité 25 d'installation d'une application, comprenant des instructions de code de programme destinées à commander l'exécution des étapes du procédé d'exécution précédemment décrit, lorsque ledit programme est exécuté par ladite entité d'installation d'une application et un support d'enregistrement lisible par une entité d'installation d'une application sur lequel est enregistré un programme pour une entité d'installation d'une application. 30 Selon un septième aspect, l'invention concerne également un programme pour une entité de gestion de ressources virtualisées, comprenant des instructions de code de programme destinées à commander l'exécution des étapes du procédé d'exécution précédemment décrit, lorsque ledit programme est exécuté par ladite entité de gestion de ressources virtualisées et un support d'enregistrement lisible par une entité de gestion de ressources virtualisées sur lequel est enregistré 35 un programme pour une entité de gestion de ressources virtualisées. L'invention sera mieux comprise à l'aide de la description suivante de modes de réalisation particuliers, en référence aux dessins annexés sur lesquels : 3034543 7 - la figure 1 représente un système d'exécution d'une application dans un terminal selon un mode particulier de réalisation ; - la figure 2 représente des étapes d'un procédé d'exécution d'une application dans un terminal selon un mode particulier de réalisation ; 5 - le figure 3 représente une entité d'installation d'une application selon un mode particulier de réalisation ; - la figure 4 représente une entité de gestion de ressources virtualisées d'une carte à puce selon un mode particulier de réalisation. 10 La figure 1 représente un système d'exécution d'une application 4. Le système d'exécution comprend un terminal 1 muni d'une carte à puce 2. Le terminal 1 comprend plus particulièrement des moyens agencés pour recevoir la carte à puce et une entité d'installation 10 de l'application 4. Le terminal 1 comprend également un module de contrôle 30 de la carte à puce 2. La carte à puce 2 comprend des moyens agencés pour mettre en oeuvre une entité de gestion de 15 ressources virtualisées 20. L'entité d'installation 10 et le module de contrôle 30 sont localisés dans le terminal. L'entité de gestion de ressources virtualisées 20 est localisée dans la carte à puce 2. L'entité d'installation 10 est un module préalablement installé dans le terminal 1 muni de la carte à puce 2, dont la fonction est d'installer l'application 4 dans le terminal 1 en vue d'une exécution. Pour réaliser cette installation, l'entité d'installation 10 tient notamment compte des 20 ressources d'exécution de la carte à puce 2, ainsi que des caractéristiques de modules 40, 50, 60 composant l'application 4. L'entité d'installation 10 détermine en particulier un environnement d'exécution adapté à l'exécution de chaque module 40, 50, 60 formant l'application 4. Par environnement d'exécution, on entend ici un ensemble de ressources matérielles et logicielles permettant d'exécuter un module. 25 L'application 4 est par exemple un module logiciel permettant de réaliser un ou plusieurs traitements informatiques (analyse de la parole, d'un niveau de stress, d'un rythme cardiaque, fourniture d'informations météorologiques, prise de tension, etc.). Ces traitements sont de diverses natures et sont des exemples de fonctions qu'un terminal est susceptible de fournir. Dans le mode de réalisation décrit, l'application 4 comprend plusieurs modules exécutables 40, 50, 60, chacun 30 ayant pour rôle de réaliser un sous-ensemble de traitements donnés afin de permettre à l'application 4 de remplir sa ou ses fonctions. Les modules exécutables 40, 50, 60 se distinguent plus particulièrement par le type de fonctions qu'ils implémentent. Un module exécutable correspond à un code exécutable. Un module est de ce fait exécutable dans un environnement d'exécution donné, c'est-à-dire par un dispositif donné muni d'un système d'exploitation donné. Par la suite, les termes 35 suivants seront utilisés pour distinguer les différents types de modules : « module client » : code exécutable implémentant des fonctions à exécuter par le terminal 1; 3034543 8 « module serveur distant » : code exécutable implémentant des fonctions à exécuter par la carte à puce 2. Un tel module coopère avec un module client ; « module serveur local » : code exécutable implémentant des fonctions à exécuter par le terminal 1, en alternative à des fonctions d'un module serveur distant (ceci sera 5 détaillé par la suite en relation avec la figure 2). Un tel module coopère avec un module client. Dans le mode de réalisation décrit en relation avec la figure 1, le module exécutable 40 est ainsi un module client, le module exécutable 50 un module serveur distant, et le module exécutable 60 un module serveur local. 10 La carte à puce 2 est insérée dans un emplacement prévu à cet effet dans le terminal 1. L'entité de gestion de ressources virtualisées 20 localisée dans la carte à puce est à titre d'exemple un hyperviseur. Un hyperviseur se définit plus particulièrement comme une plate-forme de virtualisation permettant à plusieurs systèmes d'exploitation de fonctionner simultanément sur une même machine physique. L'entité de gestion de ressources virtualisées 20 gère des ressources 15 virtualisées (également appelées « machines virtuelles »). Elle en gère plus particulièrement la création, la modification et la suppression en fonction des ressources d'exécution de la carte à puce 2. Dans l'exemple de réalisation décrit, le module serveur distant 50 est exécuté par une ressource virtualisée 3, cette dernière ayant été créée par l'entité de gestion de ressources virtualisées 20 lors de la mise en oeuvre du procédé. La ressource virtualisée 3 s'appuie ainsi sur des ressources 20 physiques de la carte à puce 2. Le module de contrôle 30 assure la communication entre l'entité d'installation 10 d' l'application 4 et l'entité de gestion de ressources virtualisées 20. Le module de contrôle 30 permet également au module client 40 et au module serveur distant 50 de coopérer pour exécuter l'application 4. Les communications entre modules sont à titre d'exemple assurées par un protocole 25 de communication de la couche transport TCP/IP. Il n'existe aucune limitation quant au protocole de communication de la couche transport utilisé pour assurer les échanges entre modules. Ce protocole est par exemple le protocole UDP (pour « User Datagram Protocol » en anglais) ou TCP (pour « Transmission Control Protocol » en anglais). Les modules 40, 50, 60 formant l'application 4 peuvent également communiquer entre 30 eux. Il peut s'agir d'un lien de communication direct. C'est notamment le cas pour une communication entre deux modules exécutables exécutés par un même dispositif (e.g. communication entre les module serveur local 60 et module client 40). Il peut également s'agir d'un canal de communication établi par l'intermédiaire du module de contrôle 30 (e.g. communication entre les module client 40 et module serveur distant 50). 35 L'application 4 a été décrite avec trois modules 40, 50, 60. Il n'existe cependant pas de limitation quant au nombre de modules formant l'application 4. En particulier, l'application peut 3034543 9 dans un autre mode de réalisation n'être constituée que d'un module client 40 et d'un module serveur distant 50. Le système d'exécution a été décrit avec une mise en oeuvre d'un hyperviseur en tant qu'entité de gestion de ressources virtualisées. Il n'existe cependant aucune limitation quant à la 5 technique de virtualisation mise en oeuvre. Le système d'exécution est par exemple mis en oeuvre par l'intermédiaire d'un hyperviseur dit de « type I », de « type II », ou encore par l'intermédiaire d'une technique de virtualisation sans hyperviseur. La figure 2 représente des étapes d'un procédé d'exécution d'une application dans un 10 terminal 1 selon un mode particulier de réalisation. Dans ce mode de réalisation, on suppose que l'application est composée de trois modules exécutables, dont deux sont représentés sur la figure 2: les module client 40 et module serveur distant 50. On suppose également que le terminal 1 est un terminal disposant d'une faible capacité de stockage de 1 Mo. Le procédé comprend trois phases Pl, P2 et P3. La phase Pl correspond à l'établissement 15 d'une connexion entre une entité d'installation 10 d'une application et une entité de gestion de ressources virtualisées 20. La phase P2 correspond à l'installation de l'application, et plus précisément des modules client 40 et serveur distant 50 respectivement dans le terminal 1, et dans la carte à puce 2 dont est muni le terminal 1. La phase P3 décrit l'exécution de l'application après installation, avec en particulier l'établissement d'un canal de communication entre les modules 20 client 40 et serveur distant 50. Lors des deux premières phases Pl et P2, seuls sont impliqués au niveau du terminal l'entité d'installation 10 et le module de contrôle 30 de la carte à puce 2. Les deux modules client 40 et serveur distant 50 sont exécutés lors de la troisième phase P3. La première phase Pl d'établissement d'une connexion entre l'entité d'installation 10 et l'entité de gestion de ressources virtualisées 20 va maintenant être décrite. Cette phase Pl 25 comprend les étapes El à E5. L'établissement de la connexion entre l'entité d'installation 10 et l'entité de gestion de ressources virtualisées 20 se fait plus particulièrement selon la procédure décrite dans les documents de spécifications de l'ETSI TS 102 223 et du 3GPP (pour « 3rd Generation Partnership Project » en anglais) TS 31.111. Lors d'une étape El, l'entité de gestion de ressources virtualisées 20 envoie une 30 commande d'ouverture d'un canal de communication au module de contrôle 30. La commande est par exemple déclenchée après insertion de la carte à puce 2 dans le terminal 1, à la mise sous tension du terminal 1. La commande est à titre d'exemple une commande USAT (pour « USIM Application Toolkit ») «OPEN CHANNEL » en mode dit « UICC Server Mode » tel que spécifiée au paragraphe 6.4.27.5 du document TS 102.223, version 12. Elle comprend en paramètre un 35 numéro de port TCP indiquant le numéro de port sur lequel le terminal 1 est invité à se mettre en écoute. Le numéro de port fourni par l'entité de gestion de ressources virtualisées 20 est à titre 3034543 10 d'exemple prédéfini au niveau de la carte à puce. Dans un autre mode de réalisation le numéro de port est un numéro de port standardisé. Lors d'une étape E2, le module de contrôle 30 du terminal 1 envoie une réponse USAT «TERMINAL RESPONSE » indiquant à l'entité de gestion de ressources virtualisées 20, que le 5 module de contrôle 30 est en écoute sur le port TCP qui lui a précédemment été fourni à l'étape El. Lors d'une étape E3, l'entité d'installation 10 et le module de contrôle 30 établissent une connexion TCP en utilisant le numéro de port fourni par l'entité de gestion de ressources virtualisées 20. Lors d'une étape E4, le module de contrôle 30 envoie un message USAT « CHANNEL 10 STATUS » indiquant à l'entité de gestion de ressources virtualisées 20 qu'une connexion TCP est établie entre l'entité d'installation 10 et le module de contrôle 30. Puis dans une étape E5, un canal de communication est établi entre l'entité d'installation 10 et l'entité de gestion de ressources virtualisées 20. Les échanges de données entre ces deux entités sont réalisés via les commandes USAT « SEND DATA» et « RECEIVE DATA » pour les 15 échanges entre le module de contrôle 30 et l'entité de gestion de ressources virtualisée 20. Ces commandes sont ensuite transcrites sur la connexion TCP établie entre le module de contrôle 30 et l'entité d'installation 10. Les commandes « SEND DATA» et « RECEIVE DATA» sont utilisées conformément au document de spécification de l'ETSI TS 102 223. L'étape E5 clôt la phase Pl du procédé d'exécution. L'entité d'installation 10 est alors en 20 mesure de communiquer avec l'entité de gestion de ressources virtualisées 20. La phase P2 d'installation de l'application va maintenant être décrite. La phase P2 comprend les étapes E6 à E14. Lors d'une étape E6, l'entité d'installation 10 vérifie à l'aide d'un fichier de configuration associé à l'application, le type des sous-modules exécutables formant l'application, et détermine 25 une politique d'installation associée à l'application. Le fichier de configuration a par exemple le format suivant : Identifiant de Type Identifiant de Ressources module module alternatif d'exécution nécessaires Modl module client StockMem:50Ko Mod2 module serveur distant Mod3 StockMem:20Mo Mod3 module serveur local StockMem:500Ko Ce fichier indique dans l'exemple de réalisation décrit ici, que l'application est formée de trois modules exécutables. Il indique en outre que le module Modl 40 est de type « module 30 client », que le module Mod2 50 est de type « module serveur distant », et que le module Mod3 est de type « module serveur local ». Il indique également que le module Mod3 peut être installé 3034543 11 comme alternative au module serveur distant Mod2 50. L'entité d'installation 10 détermine ainsi au moyen de ce fichier une politique d'installation associée à l'application. L'entité d'installation 10 détermine notamment que le module client Modl 40 est à installer sur le terminal 1, que le module serveur distant Mod2 50 est préférentiellement à installer sur la carte à puce 2, et que le module 5 Mod3 peut être installé en alternative sur le terminal 1. Le fichier de configuration indique également les ressources d'exécution nécessaires pour exécuter un module. Il indique notamment que le module client Modl 40 requiert 50 Ko de mémoire de stockage, le module serveur distant Mod2 50 20 Mo de mémoire de stockage, et le module Mod3 500 Ko de mémoire de stockage. Lors d'une étape E7a, l'entité d'installation 10 envoie à l'entité de gestion de ressources 10 virtualisées 20, une demande d'une information relative à la disponibilité de ressources d'exécution de la carte à puce 2. Dans une étape E7b, l'entité de gestion de ressources virtualisées 20 détermine les ressources d'exécution de la carte à puce 2 disponibles à l'instant où est réalisée l'étape E7b. Dans un autre mode de réalisation, il peut s'agir de la disponibilité de ressources d'exécution sur un 15 intervalle de temps à venir. Lors d'une étape E7c, l'entité de gestion de ressources virtualisées 20 transmet en réponse à l'entité d'installation 10 une liste de ressources d'exécution de la carte à puce 2 déterminées disponibles. Ce message comprend par exemple une capacité de stockage de la carte à puce 2, un langage machine associé à la carte à puce 2, ou encore un nombre d'opérations par 20 seconde que la carte à puce est en mesure de traiter. A titre d'exemple, le message de réponse indique que la carte à puce 2 dispose d'une capacité de stockage de 100 Mo. Lors d'une étape E8, l'entité d'installation 10 installe le module client Modl 40 dans le terminal 1. Le module client Modl 40 étant de type « module client », il est conçu pour être exécuté par le terminal auquel il est destiné et aucune vérification n'est requise lors de son 25 installation quant aux ressources d'exécution nécessaires à son exécution. Lors d'une étape E9, l'entité d'installation 10 vérifie que le module de type « module serveur distant » est exécutable par la carte à puce 2. Dans l'exemple décrit, seul le module serveur distant Mod2 50 est concerné par cette vérification. Il s'agit plus précisément de vérifier que la carte à puce 2 dispose de ressources d'exécution pour exécuter le module serveur distant Mod2 50. 30 Pour cela l'entité d'installation 10 compare la liste de ressources disponibles obtenues à l'étape E7c avec les ressources d'exécution nécessaires à l'exécution du module serveur distant Mod2 50 obtenues depuis le fichier de configuration associé à l'application. Dans l'exemple décrit, le module serveur distant Mod2 50 requiert 20 Mo pour pouvoir être exécuté, et la carte à puce 2 dispose d'une capacité de stockage de 100 Mo. La capacité de stockage de la carte à puce 2 étant 35 supérieure aux ressources d'exécution nécessaires pour exécuter le module serveur distant Mod2 50, l'entité d'installation détermine que le module serveur distant Mod2 50 est exécutable par la carte à puce 2. 3034543 12 Dans une étape E10, l'entité d'installation 10 envoie à l'entité de gestion de ressources virtualisées 20 une demande de création d'une ressource virtualisée avec les ressources d'exécution C déterminées disponibles de la carte à puce 2. Les ressources d'exécution C précisent les caractéristiques de la ressource virtualisée à créer (e.g. capacité de stockage, mémoire vive, 5 capacité de calcul). Ces caractéristiques correspondent aux ressources d'exécution nécessaires à l'exécution du module serveur distant Mod2 50 précisées dans le fichier de configuration associé à l'application. Dans une étape Eh, l'entité de gestion de ressources virtualisées 20 crée une ressource virtualisée avec les ressources d'exécution C, puis renvoie un message d'acquittement à l'entité 10 d'installation 10 indiquant à cette dernière que la ressource virtualisée est créée. Dans l'exemple décrit, la ressource virtualisée réserve en particulier 20 Mo d'espace de stockage sur les 100 Mo d'espace de stockage disponible dans la carte à puce 2. Dans une étape E12, l'entité d'installation 10 commande ensuite une installation du module serveur distant Mod2 50 dans la carte à puce 2, pour une exécution du module serveur 15 distant Mod2 50 par la ressource virtualisée créée à l'étape El 1, en coopération avec le module client Modl 40. Cette commande comprend plus particulièrement le module serveur distant Mod2 50 lui-même, et un paramètre P. Le paramètre P permet d'indiquer à l'entité de gestion de ressources virtualisées 20 un ou des paramètres d'initialisation à transmettre à la ressource virtualisée une fois cette ressource créée. Il s'agit à titre d'exemple d'un numéro de port permettant 20 à la ressource virtualisée de communiquer avec le module client Modl 40 installé dans le terminal à l'étape E8. A l'issue de cette étape, le module serveur distant Mod2 50 est installé dans la carte à puce 2 et dispose du numéro de port lui permettant de communiquer avec le module client Modl 40 installé sur le terminal 1. Dans une étape E13, l'entité de gestion de ressources virtualisées 20 renvoie un message 25 à l'entité d'installation 10, indiquant à cette dernière qu'une ressource virtualisée a été créée pour une exécution du module serveur distant Mod2 50. Le message comprend un identifiant de la ressource virtualisée créée. Dans une étape E14, l'entité d'installation 10 ferme le canal de communication établi avec l'entité de gestion de ressources virtualisées 20. Cette dernière étape met fin à la phase P2 30 d'installation de l'application. La dernière phase P3 du procédé d'exécution concerne l'établissement d'un canal de communication entre le module client Modl 40 exécuté par le terminal 1 et le module serveur distant Mod2 50 exécuté sur la carte à puce 2. La phase P3 comprend les étapes E15 à E19. Lors d'une étape E15, le module serveur distant Mod2 50 envoie une commande 35 d'ouverture d'un canal de communication au module de contrôle 30. La commande est par exemple une commande USAT (USIM Application Toolkit) «OPEN CHANNEL » en mode dit « UICC Server Mode » telle que décrite précédemment. Elle comprend en paramètre un numéro de port 3034543 13 TCP indiquant le numéro de port sur lequel le terminal 1 est invité à se mettre en écoute. Le numéro de port fourni par le module serveur distant Mod2 50 est à titre d'exemple prédéfini au niveau de la carte à puce. Dans un autre mode de réalisation le numéro de port est un numéro de port standardisé. 5 Lors d'une étape E16, le terminal 1 envoie une réponse USAT «TERMINAL RESPONSE » indiquant au module serveur distant Mod2 50, que le terminal 1 est en écoute sur le port TCP qui lui a été fourni à l'étape E15. Lors d'une étape E17, le module client Modl 40 et le module de contrôle 30 établissent une connexion TCP en utilisant le numéro de port fourni par le module serveur distant Mod2 50. 10 Lors d'une étape E18, le module de contrôle 30 envoie un message USAT « CHANNEL STATUS » indiquant au module serveur distant Mod2 50 qu'une connexion TCP est établie entre le module client Modl 40 et le module de contrôle 30. Puis dans une étape E19, un canal de communication est établi entre le module client Modl 40 et le module serveur distant Mod2 50. Les échanges de données entre ces deux modules 15 sont réalisés via les commandes USAT « SEND DATA» et « RECEIVE DATA» pour les échanges entre le module de contrôle 30 et le module serveur distant Mod2 50. Ces commandes sont ensuite transcrites sur la connexion TCP établie entre le module de contrôle 30 et le module client Modl 40. L'étape E19 clôt la phase P3 du procédé d'exécution. Le module client Modl 40 est alors 20 en mesure de communiquer avec le module serveur distant Mod2 50 pour une exécution de l'application. Le procédé d'exécution comprend en outre une étape non représentée sur la figure 2 lorsqu'à l'étape E10, l'entité d'installation 10 détermine que la carte à puce 2 dispose de ressources d'exécution insuffisantes pour exécuter le module serveur distant Mod2 50. Dans ce cas, l'entité 25 d'installation 10 installe le module serveur local Mod3 dans le terminal, afin qu'il soit exécuté par le terminal comme alternative au module serveur distant Mod2 50, et qu'il coopère avec le module client 40 pour exécuter l'application. Dans un autre mode de réalisation, l'installation du module serveur local Mod3 dans le terminal est décidée en fonction d'un paramétrage du terminal configuré par un utilisateur ou un 30 fabricant du terminal Cette installation peut également résulter d'une préférence d'installation indiquée dans le fichier de configuration. L'utilisateur ou le fabricant du terminal peut alors choisir un type d'installation souhaitée, en fonction par exemple, de caractéristiques de l'application et de la rapidité estimée d'exécution, respectivement du module serveur distant Mod2 50 par la carte à puce 2, et du module serveur local Mod3 50 par le terminal 35 Dans un autre mode de réalisation, la commande d'installation du module serveur distant Mod2 50 dans la carte à puce 2 est comprise dans la demande de création d'une ressource virtualisée. Un unique envoi est alors mis en oeuvre pour réaliser les étapes El0 et E12. 3034543 14 Dans un mode de réalisation particulier, le procédé d'exécution est par exemple appliqué aux fonctions RF (pour « Radio Frequency » en anglais) et BBU (pour « Base Band Unit » en anglais) d'un terminal mobile. La fonction RF assure la transmission et la réception d'un signal radio. Cette fonction pour un terminal correspond plus particulièrement à l'antenne radio du 5 terminal et permet de se connecter à un réseau mobile. La fonction BBU assure quant à elle la commande de la fonction RF et la gestion des procédures de connexion au réseau mobile. Il est notamment possible grâce au procédé d'exécuter la fonction BBU par la carte à puce d'un terminal. Pour cela il suffit d'implémenter un module serveur distant jouant le rôle de la fonction BBU exécuté par la carte à puce et un module client jouant le rôle de la fonction RF 10 exécuté par le terminal. Outre les avantages précédemment mentionnés permettant de réduire l'utilisation des ressources du terminal tout en offrant la possibilité d'utiliser à profit les ressources d'exécution de la carte à puce équipant le terminal, ce mode de réalisation présente de nombreux autres avantages, dont entre autres : 15 une réduction du coût de fabrication des terminaux ; de nouvelles fonctionnalités de blocage de l'usage du terminal, la fonction BBU étant mise en oeuvre par la carte à puce peut en effet être, par exemple, désactivée par un opérateur de réseau mobile ; une compatibilité des terminaux avec différentes technologies de réseaux mobiles est 20 rendue possible sans que des composants spécifiques soient nécessaires au niveau du terminal pour assurer cette compatibilité. La figure 3 représente une entité d'installation 10, dans un terminal, d'une application comprenant un module serveur distant coopérant avec un module client s'exécutant sur ledit 25 terminal. L'entité d'installation 10 comprend : - un module de vérification 100, agencé pour vérifier que la carte à puce dispose de ressources d'exécution pour exécuter le module serveur distant en coopération avec le module client s'exécutant sur le terminal pour fournir une application ; - un module d'envoi 110, activé lorsque la carte à puce est vérifiée disposer de ressources 30 d'exécution pour exécuter le module serveur distant, et agencé pour envoyer une demande de création d'une ressource virtualisée s'appuyant sur les ressources d'exécution à une entité de gestion de ressources virtualisées de la carte à puce ; - un module de commande 120, activé lorsque la carte à puce est vérifiée disposer de ressources d'exécution pour exécuter le module serveur distant, et agencé pour commander une installation du 35 module serveur distant dans la carte à puce, pour une exécution de ce module serveur distant par la ressource virtualisée créée en s'appuyant sur les ressources d'exécution de la carte à puce, en coopération avec le module client. 3034543 15 Dans un mode de réalisation particulier, l'entité d'installation 10 comprend un module d'installation 130, agencé pour, lorsque la carte à puce ne dispose pas de ressources d'exécution pour exécuter le module serveur distant, installer un module serveur local dans le terminal pour une exécution par le terminal de ce module serveur local en coopération avec le module client. 5 Dans un autre mode de réalisation particulier, l'entité d'installation 10 comprend un module d'obtention 140, agencé pour obtenir, auprès d'une entité de gestion de ressources virtualisées, une information relative à la disponibilité de ressources d'exécution de la carte à puce, le module de vérification 100 étant alors agencé pour vérifier que la carte à puce dispose de ressources d'exécution pour exécuter le module serveur distant, uniquement pour les ressources 10 d'exécution déterminées disponibles au moyen de cette information. La figure 4 représente une entité de gestion de ressources virtualisées 20 mise en oeuvre par une carte à puce équipant un terminal, pour une exécution d'au moins une application comprenant un module serveur distant coopérant avec un module client s'exécutant sur le terminal. 15 L'entité de gestion de ressources virtualisées comprend : - un module de génération 200, agencé pour créer au moins une ressource virtualisée s'appuyant sur des ressources d'exécution de la carte à puce ; - un module d'installation 210, agencé pour installer le module serveur distant dans la carte à puce, pour une exécution du module serveur distant par la ressource virtualisée créée, en coopération 20 avec le module client. Dans un autre mode de réalisation particulier, l'entité de gestion de ressources virtualisées 20 comprend un module de fourniture 220, agencé pour fournir, à une entité d'installation de l'application s'exécutant sur le terminal, une information relative à la disponibilité de ressources d'exécution de la carte à puce, pour une exécution du module serveur distant sur la carte à puce en 25 coopération avec le module client. L'invention est mise en oeuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, le terme "module" peut correspondre dans ce document aussi bien à un composant logiciel, qu'à un composant matériel ou à un ensemble de composants matériels et/ou logiciels, apte 30 à mettre en oeuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit précédemment pour le module concerné. Un composant logiciel correspond à un ou plusieurs programmes d'ordinateur, un ou plusieurs sous-programmes d'un programme, ou de manière plus générale à tout élément d'un programme ou d'un logiciel. Un tel composant logiciel est stocké en mémoire puis chargé et 35 exécuté par un processeur de données d'une entité physique et est susceptible d'accéder aux ressources matérielles de cette entité physique (mémoires, supports d'enregistrement, bus de communication, cartes électroniques d'entrées/sorties, interfaces utilisateur, etc). 3034543 16 De la même manière, un composant matériel correspond à tout élément d'un ensemble matériel (ou hardware). Il peut s'agir d'un composant matériel programmable ou non, avec ou sans processeur intégré pour l'exécution de logiciel. Il s'agit par exemple d'un circuit intégré, d'une carte à puce, d'une carte électronique pour l'exécution d'un micrologiciel (firmware), etc. 5 Dans un mode de réalisation particulier, les modules 100, 110, 120, 130 et 140 sont agencés pour mettre en oeuvre le procédé d'exécution précédemment décrit. Il s'agit de préférence de modules logiciels comprenant des instructions logicielles pour faire exécuter les étapes du procédé d'exécution précédemment décrit, mises en oeuvre par une entité d'installation d'une application. 10 L'invention concerne donc aussi : - un programme pour une entité d'installation, comprenant des instructions de code de programme destinées à commander l'exécution des étapes du procédé d'exécution précédemment décrit, lorsque ledit programme est exécuté par ladite entité d'installation ; - un support d'enregistrement lisible par une entité d'installation sur laquelle est 15 enregistré le programme pour une entité d'installation. De même, les modules 200, 210 et 220 sont agencés pour mettre en oeuvre le procédé d'exécution précédemment décrit. Il s'agit de préférence de modules logiciels comprenant des instructions logicielles pour faire exécuter les étapes du procédé d'exécution précédemment décrit, mises en oeuvre par une entité de gestion de ressources virtualisées. L'invention concerne donc 20 aussi : - un programme pour une entité de gestion de ressources virtualisées, comprenant des instructions de code de programme destinées à commander l'exécution des étapes du procédé d'exécution précédemment décrit, lorsque ledit programme est exécuté par ladite entité de gestion de ressources virtualisées ; 25 - un support d'enregistrement lisible par une entité de gestion de ressources virtualisées sur laquelle est enregistré le programme pour une entité de gestion de ressources virtualisées. Les modules logiciels peuvent être stockés dans ou transmis par un support de données. Celui-ci peut être un support matériel de stockage, par exemple un CD-ROM, une disquette magnétique ou un disque dur, ou bien un support de transmission tel qu'un signal électrique, 30 optique ou radio, ou un réseau de télécommunication. REVENDICATIONS1. Procédé d'exécution, dans un terminal muni d'une carte à puce, d'une application, dans lequel une entité d'installation met en oeuvre : - une vérification (E9) que ladite carte à puce dispose de ressources d'exécution pour exécuter un module serveur distant en coopération avec un module client s'exécutant sur ledit terminal pour fournir ladite application ; et ladite carte à puce ayant été vérifiée disposer desdites ressources pour exécuter ledit module serveur distant : - une demande (E10) de création d'une ressource virtualisée s'appuyant sur lesdites ressources d'exécution, à une entité de gestion de ressources virtualisées de la carte à puce ; et - une commande d'installation dudit module serveur distant dans la carte à puce, pour une exécution, par la ressource virtualisée créée, dudit module serveur distant, en coopération avec le module client. 2. Procédé selon la revendication 1, comprenant, lorsque la carte à puce ne dispose pas de ressources d'exécution pour exécuter le module serveur distant, une installation d'un module serveur local dans le terminal pour une exécution par le terminal dudit module serveur local en coopération avec ledit module client pour fournir ladite application. 3. Procédé selon la revendication 1, comprenant en outre une obtention (E7a-E7c), auprès de l'entité de gestion de ressources virtualisées, d'une information relative à la disponibilité de ressources d'exécution de la carte à puce, la vérification (E10) que ladite carte à puce dispose de ressources d'exécution pour exécuter ledit module serveur distant étant réalisée uniquement pour les ressources d'exécution déterminées disponibles au moyen de ladite information. 4. Procédé selon la revendication 1, dans lequel ladite application est une application de commande de signal radio, ledit module serveur client implémentant une première fonction de transmission et de réception dudit signal radio, et ledit module serveur distant implémentant une deuxième fonction de commande de ladite première fonction. 5. Procédé d'exécution, dans un terminal muni d'une carte à puce, d'une application, dans lequel une entité de gestion de ressources virtualisées de ladite carte à puce met en oeuvre sur demande d'une entité d'installation : - une création d'une ressource virtualisée s'appuyant sur des ressources d'exécution de ladite carte à puce ; 3034543 18 - une installation d'un module serveur distant dans la carte à puce, pour une exécution par la ressource virtualisée créée dudit module serveur distant en coopération avec le module client pour fournir ladite application. 5 6. Procédé selon la revendication 5, comprenant en outre une fourniture, à une entité d'installation de l'application, d'une information relative à la disponibilité de ressources d'exécution de la carte à puce pour exécuter ledit module serveur distant. 7. Terminal, comprenant des moyens agencés pour recevoir une carte à puce et une entité 10 d'installation comprenant : - un module de vérification (100), agencé pour vérifier que ladite carte à puce dispose de ressources d'exécution pour exécuter un module serveur distant en coopération avec un module client s'exécutant sur ledit terminal pour fournir une application ; - un module d'envoi (110), activé lorsque ladite carte à puce est vérifiée disposer de ressources 15 d'exécution pour exécuter ledit module serveur distant, agencé pour envoyer une demande de création d'une ressource virtualisée s'appuyant sur lesdites ressources d'exécution, à une entité de gestion de ressources virtualisées de la carte à puce ; - un module de commande (120), activé lorsque ladite carte à puce est vérifiée disposer de ressources d'exécution pour exécuter ledit module serveur distant, agencé pour commander une 20 installation dudit module serveur distant dans la carte à puce, pour une exécution dudit module serveur distant par la ressource virtualisée créée en s'appuyant sur lesdites ressources d'exécution, en coopération avec le module client. 8. Carte à puce, comprenant des moyens agencés pour mettre en oeuvre une entité de gestion de 25 ressources virtualisées (20) comprenant : - un module de génération (200), agencé pour créer au moins une ressource virtualisée s'appuyant sur des ressources d'exécution de ladite carte à puce ; - un module d'installation (210), agencé pour installer un module serveur distant dans la carte à puce, pour une exécution dudit module serveur distant par la ressource virtualisée créée, en 30 coopération avec le module client. 9. Système d'exécution d'une application comprenant un terminal (1) selon la revendication 7, muni d'une carte à puce (2) selon la revendication 8. 35 10. Programme pour une entité d'installation d'une application, comprenant des instructions de code de programme destinées à commander l'exécution des étapes du procédé selon l'une des revendications 1 à 4, lorsque ledit programme est exécuté par ladite entité. 3034543 19 11. Programme pour une entité de gestion de ressources virtualisées, comprenant des instructions de code de programme destinées à commander l'exécution des étapes du procédé selon l'une des revendications 5 ou 6, lorsque ledit programme est exécuté par ladite entité. 5 12. Support d'enregistrement lisible par une entité d'installation d'une application, sur lequel est enregistré le programme selon la revendication 10. 13. Support d'enregistrement lisible par une entité de gestion de ressources virtualisées, sur lequel 10 est enregistré le programme selon la revendication 11.