Brevet FR3040222A1 — publié le 20170224

DOMAINE DE LA DESCRIPTION [1] La présente description concerne de façon générale des plates-formes de calcul et plus particulièrement, des procédés et un dispositif pour adapter des applications patrimoniales à des plates-formes cibles. ARRIÈRE-PLAN [2] Les plates-formes de calcul exécutent des applications (par exemple, des programmes) de manière fiable et à de hauts niveaux de performance. Ainsi, les plates-formes de calcul et les applications exécutées par les plates-formes de calcul procurent une fonctionnalité précieuse. Toutefois, lorsqu'une plate-forme de calcul ciblée pour une application donnée doit changer, l'effort résultant de mise au point et de maintenance de l'application représente une affectation significative de ressources pour modifier l'application pour qu'elle soit conforme par exemple aux interfaces de programmation d'application (API) de la plate- forme de calcul cible. OBJET ET RESUME DE L'INVENTION Selon un premier aspect l'invention concerne un procédé 25 comprenant : la génération, par l'intermédiaire d'un circuit logique, d'une représentation indépendante de la plate-forme d'une application spécifique à une première plate-forme, l'application spécifique à une première plate-forme étant spécifique à une première plate-forme mobile, la 30 représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme étant conforme à une première API de la première plate-forme mobile ; et l'adaptation, par l'intermédiaire du circuit logique, de la représentation indépendante de la plate-forme de l'application spécifique 35 à une première plate-forme pour être spécifique à une plate-forme, à une 3040222 2 deuxième plate-forme mobile différente de la première plate-forme mobile. Dans un mode particulier de réalisation, la représentation indépendante de la plate-forme de l'application spécifique à une première 5 plate-forme est non fonctionnelle avant l'adaptation de la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile. Dans un mode particulier de réalisation, l'adaptation de la 10 représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile comporte la traduction de la première représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme en une application spécifique à une deuxième 15 plate-forme incluant une deuxième API différente de la première API, la deuxième API étant conforme à la deuxième plate-forme mobile. Dans un mode particulier de réalisation, le procédé comporte en outre l'adaptation de la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme pour être spécifique à 20 une plate-forme, à une troisième plate-forme mobile différente de la première plate-forme mobile et de la deuxième plate-forme mobile en traduisant la première représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme en une application spécifique à une troisième plate-forme incluant une troisième API différente des première et deuxième API, la troisième API étant conforme à la troisième plate-forme mobile. Dans un mode particulier de réalisation, l'adaptation de la représentation indépendante de la plate-formede l'application spécifique à une première plate-forme pour être spécifique à une plate-forme pour la 30 deuxième plate-forme mobile comporte : la traduction de la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme en une application indépendante de la plate-forme incluant une deuxième API différente de la première API, la deuxième API étant indépendante de la plate-forme ; et 35 la traduction de l'application indépendante de la plate-forme (400) en une application spécifique à une deuxième plate-forme incluant une 3040222 3 troisième API différente des première et deuxième API, la troisième API étant conforme à la deuxième plate-forme mobile. Dans un mode particulier de réalisation, le procédé comprend en outre l'adaptation de la représentation indépendante de la plate-forme de 5 l'application spécifique à une première plate-forme pour être spécifique à une plate-forme, à une troisième plate-forme mobile en traduisant l'application indépendante de la plate-forme en une application spécifique à une troisième plate-forme incluant une quatrième API différente des première , deuxième et troisième API, la quatrième API étant conforme à 10 la troisième plate-forme mobile. Dans un mode particulier de réalisation : la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme est non fonctionnelle avant l'adaptation de la représentation indépendante de la plate-forme (300) de 15 l'application spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile ; et la deuxième API est non fonctionnelle. Dans un mode particulier de réalisation, la représentation indépendante de la plate-forme de l'application spécifique à une première 20 plate-forme est constituée d'une pluralité d'objets en mémoire. Dans un mode particulier de réalisation, les objets en mémoire ne peuvent pas être utilisés directement pour exécuter la fonctionnalité de l'application spécifique à une première plate-forme. Dans un mode particulier de réalisation, l'adaptation de la 25 représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile comprend la génération d'une application spécifique à une deuxième plate-forme qui est spécifique à la deuxième plate-forme mobile. L'invention vise aussi un support tangible lisible par une machine comprenant des instructions qui, lorsqu'elles sont exécutées, font effectuer par une machine au moins : la génération d'une représentation indépendante de la plate-forme d'une application spécifique à une première plate-forme, l'application 35 spécifique à une première plate-forme étant spécifique à une première plate-forme mobile, la représentation indépendante de la plate-forme de 3040222 4 l'application spécifique à une première plate-forme étant conforme à une première API de la première plate-forme mobile ; et l'adaptation de la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme pour être spécifique 5 à une plate-forme, à une deuxième plate-forme mobile différente de la première plate-forme mobile. Dans un mode particulier de réalisation du support tangible selon l'invention, la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme est non fonctionnelle 10 avant l'adaptation de la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile. Dans un mode particulier de réalisation du support tangible selon l'invention, des instructions, lorsqu'elles sont exécutées, font adapter par 15 la machine la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile en traduisant la première représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme en une application spécifique à une 20 deuxième plate-forme incluant une deuxième API différente de la première API, la deuxième API étant conforme à la deuxième plate-forme mobile. Dans un mode particulier de réalisation du support tangible selon l'invention, les instructions, lorsqu'elles sont exécutées, font adapter par la machine la représentation indépendante de la plate-forme de l'application 25 spécifique à une première plate-forme pour être spécifique à une plate-forme, à une troisième plate-forme mobile différente de la première plate-forme mobile et de la deuxième plate-forme mobile en traduisant la première représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme en une application spécifique à une 30 troisième plate-forme incluant une troisième API différente des première et deuxième API, la troisième API étant conforme à la troisième plate-forme mobile. Dans un mode particulier de réalisation du support tangible selon l'invention, les instructions, lorsqu'elles sont exécutées, font adapter par la machine la représentation indépendante de la plate-forme de l'application 3040222 5 spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile par : traduction de la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme en une application 5 indépendante de la plate-forme incluant une deuxième API différente de la première API, la deuxième API étant indépendante de la plate-forme ; et traduction de l'application indépendante de la plate-forme en une application spécifique à une deuxième plate-forme incluant une troisième API différente des première et deuxième API, la troisième API étant 10 conforme à la deuxième plate-forme mobile. Dans un mode particulier de réalisation du support tangible selon l'invention, les instructions, lorsqu'elles sont exécutées, font adapter par la machine la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme pour être spécifique à une plate- 15 forme, à une troisième plate-forme mobile en traduisant l'application indépendante de la plate-forme en une application spécifique à une troisième plate-forme incluant une quatrième API différente des première, deuxième et troisième API, la quatrième API étant conforme à la troisième plate-forme mobile. 20 Dans un mode particulier de réalisation du support tangible selon l'invention: la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme est non fonctionnelle avant l'adaptation de la représentation indépendante de la plate-forme de 25 l'application spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile ; et la deuxième API est non fonctionnelle. Dans un mode particulier de réalisation du support tangible selon l'invention, la représentation indépendante de la plate-forme de 30 l'application spécifique à une première plate-forme est constituée d'une pluralité d'objets en mémoire. Dans un mode particulier de réalisation du support tangible selon l'invention, les objets en mémoire ne peuvent pas être utilisés directement pour exécuter la fonctionnalité de l'application spécifique à une première 35 plate-forme. 3040222 6 Dans un mode particulier de réalisation du support tangible selon l'invention, les instructions, lorsqu'elles sont exécutées, font adapter par la machine la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme pour être spécifique à une plate- 5 forme pour la deuxième plate-forme mobile en générant une application spécifique à une deuxième plate-forme qui est spécifique à la deuxième plate-forme mobile. L'invention vise aussi un dispositif comprenant : un substitut pour générer une représentation indépendante de la 10 plate-forme d'une application spécifique à une première plate-forme, l'application spécifique à une première plate-forme étant spécifique à une première plate-forme mobile, la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme étant conforme à une première API de la première plate-forme mobile ; et 15 un adaptateur pour adapter la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme, à une deuxième plate-forme mobile différente de la première plate-forme mobile, dans lequel au moins un du substitut ou de l'adaptateur est mis en oeuvre par l'intermédiaire d'un 20 circuit logique. Dans un mode particulier de réalisation du dispositif selon l'invention, la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme est non fonctionnelle avant l'adaptation de la représentation indépendante de la plate-forme de 25 l'application spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile. Dans un mode particulier de réalisation du dispositif selon l'invention, l'adaptateur est destiné à adapter la représentation indépendante de la plate-forme de l'application spécifique à une première 30 plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile en traduisant la première représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme en une application spécifique à une deuxième plate-forme incluant une deuxième API différente de la première API, la deuxième API étant 35 conforme à la deuxième plate-forme mobile. 3040222 7 Dans un mode particulier de réalisation du dispositif selon l'invention, l'adaptateur est destiné à adapter la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme, à une troisième plate-5 forme mobile différente de la première plate-forme mobile et de la deuxième plate-forme mobile en traduisant la première représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme en une application spécifique à une troisième plate-forme incluant une troisième API différente des première et deuxième API, la 10 troisième API étant conforme à la troisième plate-forme mobile. Dans un mode particulier de réalisation du dispositif selon l'invention, l'adaptateur est destiné à adapter la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième 15 plate-forme mobile par : traduction de la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme en une application indépendante de la plate-forme incluant une deuxième API différente de la première API, la deuxième API étant indépendante de la plate-forme ; et 20 traduction de l'application indépendante de la plate-forme en une application spécifique à une deuxième plate-forme incluant une troisième API différente des première et deuxième API, la troisième API étant conforme à la deuxième plate-forme mobile. Dans un mode particulier de réalisation du dispositif selon 25 l'invention, l'adaptateur est destiné à adapter la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme, à une troisième plate-forme mobile en traduisant l'application indépendante de la plate-forme en une application spécifique à une troisième plate-forme incluant une 30 quatrième API différente des première, deuxième et troisième API, la quatrième API étant conforme à la troisième plate-forme mobile. Dans un mode particulier de réalisation du dispositif selon l'invention: la représentation indépendante de la plate-forme de l'application 35 spécifique à une première plate-forme est non fonctionnelle avant l'adaptation de la représentation indépendante de la plate-forme de 3040222 8 l'application spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile ; et la deuxième API est non fonctionnelle. Dans un mode particulier de réalisation du dispositif selon 5 l'invention, l'adaptateur est destiné à adapter la représentation indépendante de la plate-forme de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile en générant une application spécifique à une deuxième plate-forme qui est spécifique à la deuxième plate-forme mobile. 10 BRÈVE DESCRIPTION DES DESSINS L'invention sera bien comprise et ses avantages seront mieux compris à la lecture de la description détaillée qui suit. La description se 15 rapporte aux dessins indiqués ci-après et qui sont donnés à titre d'exemple. [3] La figure 1 représente un exemple d'environnement de calcul incluant un adaptateur d'application construit conformément aux enseignements de la présente description. 20 [4] La figure 2 est un schéma par blocs d'un exemple de mise en oeuvre du module d'adaptation d'application de la figure 1. [5] La figure 3 est un premier exemple de schéma illustrant un exemple de données associées à l'exemple de module d'adaptation d'application des figures 1 et/ou 2. 25 [6] La figure 4 est un second exemple de schéma illustrant un exemple de données associées à l'exemple de module d'adaptation d'application des figures 1 et/ou 2. [7] La figure 5 est un organigramme représentatif d'exemples d'opérations pouvant être exécutées pour mettre en oeuvre l'exemple de 30 module d'adaptation d'application des figures 1 et/ou 2. [8] La figure 6 est un organigramme représentatif d'exemples d'opérations pouvant être exécutées pour mettre en oeuvre l'exemple de module d'adaptation d'application des figures 1 et/ou 2. [9] La figure 7 est un organigramme représentatif d'exemples 35 d'opérations pouvant être exécutées pour mettre en oeuvre l'exemple de module d'adaptation d'application des figures 1 et/ou 2. 3040222 9 [10] La figure 8 est un schéma par blocs d'un exemple de circuit logique pour mettre en oeuvre les exemples d'opérations des figures 5, 6 et/ou 7 pour mettre en oeuvre l'exemple de module d'adaptation d'application des figures 1 et/ou 2. 5 DESCRIPTION DÉTAILLÉE [11] L'élaboration d'un logiciel, tel qu'une application destinée à être exécutée sur un dispositif de calcul, est un processus coûteux. Ainsi, une entité (par exemple, une entreprise de suivi de biens) qui achète, 10 concède et/ou élabore de manière interne une application (par exemple, une application de suivi de biens) l'effectue généralement à un coût significatif. En conséquence, les entités sont incitées à largement utiliser l'application et pendant une longue durée. Les avantages d'une utilisation continue de l'application peuvent augmenter avec le temps, par exemple, 15 grâce à la mise en place d'autres systèmes et/ou processus qui sont fondés sur l'application. De plus, grâce à une utilisation étendue et prolongée de l'application, le personnel devient compétent et constitue des utilisateurs efficaces de l'application. [12] Toutefois, la technologie évolue rapidement. Les circuits 20 s'améliorent grâce aux avancées de fabrication, conception, matériaux, etc. Les performances des logiciels augmentent grâce à des techniques nouvelles et améliorées. De plus, des aspects des interfaces utilisateurs, tels que le thème ou l'aspect et le ressenti des éléments d'interface utilisateur associés à un système d'exploitation, évoluent avec le temps. 25 En conséquence, lorsque de nouvelles plates-formes de calcul sont mises au point et fabriquées, les nouvelles plates-formes de calcul possèdent des circuits différents, des logiciels différents et/ou des expériences d'interface utilisateur différentes par rapport aux plates-formes de calcul qui les ont précédées. Pour permettre au personnel de bénéficier des avantages de 30 l'amélioration de la technologie, les nouvelles plates-formes de calcul sont adoptées par des entités telles que par exemple, les entités qui équipent le personnel de plates-formes de calcul. [13] Dans certains cas, des entités qui adoptent des plates-formes de calcul nouvelles et/ou différentes ont acheté, concédé et/ou mis au 35 point de manière interne une ou plusieurs applications conçues pour être exécutées sur les plates-formes de calcul qui les ont précédées. Par 3040222 10 exemple, une entité de suivi de biens peut avoir mis au point une application de suivi de biens fondée sur le « Microsoft .NET Compact Framework » et utiliser l'application de suivi de biens sur une plate-forme de calcul « Microsoft Windows mobile » qui l'a précédée. C'est-à-dire que 5 l'application de suivi de biens a été conçue pour la plate-forme de calcul mobile qui l'a précédée, utilisée par l'entité de suivi de biens. Dans certains cas, lorsque l'entité de suivi de biens adopte la plate-forme de calcul mobile nouvelle et/ou différente, les API en cours d'utilisation peuvent être indisponibles. De plus, les performances et/ou l'ergonomie 10 de l'application sur la plate-forme de calcul nouvelle et/ou différente peuvent être limitées, restreintes, médiocres et/ou indésirables. Par exemple, des éléments d'interface utilisateur de l'application de suivi de biens peuvent être largement dépassés en ce qui concerne l'aspect et le ressenti des plates-formes de calcul nouvelles et/ou différentes. De plus 15 ou en variante, l'application peut ne pas fonctionner correctement sur la plate-forme de calcul nouvelle et/ou différente. Toutefois, comme décrit ci-dessus, l'entité de suivi de biens obtiendrait une pluralité d'avantages si l'application pouvait fonctionner sur la plate-forme nouvelle et/ou différente. 20 [14] Des exemples de procédés, dispositifs et objets de fabrication ici décrits permettent à une application (par exemple un programme) qui a été conçue à l'origine pour une première plate-forme de calcul d'être exécutée sur une deuxième plate-forme de calcul telle que par exemple, une version plus récente de la première plate-forme de calcul ou une 25 plate-forme de calcul différente. De plus ou en variante, les exemples de procédés, dispositifs et objets de fabrication ici décrits améliorent l'ergonomie de l'application sur la deuxième plate-forme de calcul. L'application qui a été conçue à l'origine pour être exécutée sur la première plate-forme de calcul est ici appelée application patrimoniale. La 30 première plate-forme de calcul pour laquelle l'application patrimoniale a été conçue à l'origine est ici appelée plate-forme de calcul patrimoniale. La deuxième plate-forme de calcul est ici appelée plate-forme de calcul cible. [15] Comme décrit en détail ci-dessous, les exemples ici décrits adaptent les applications patrimoniales pour être exécutées sur une ou 35 plusieurs plates-formes de calcul cibles. Les exemples ici décrits adaptent les applications patrimoniales tout en conservant la fonctionnalité des 3040222 11 applications patrimoniales. Dans certains exemples, un ou plusieurs aspects des applications patrimoniales sont mis à jour de manière à correspondre à l'aspect et au ressenti des plates-formes de calcul cibles. Par exemple, une liste d'éléments qui étaient présentée sur une grille sur 5 la plate-forme de calcul patrimoniale peut être mise à jour par des exemples ici décrits pour être présentée en tant que liste de sélection défilante lorsque la manière type dont les listes sont présentées sur la plate-forme de calcul cible est par l'intermédiaire d'une liste de sélection défilante. Ainsi, les exemples ici décrits fournissent une expérience 10 d'utilisateur mise à jour pour l'application patrimoniale sur l'application de calcul cible en fonction de l'expérience fournie par d'autres applications exécutées sur la plate-forme de calcul cible. [16] La figure 1 est un exemple d'environnement incluant un module d'adaptation d'application 100 construit selon les enseignements 15 de la présente description. Dans l'exemple de la figure 1, le module d'adaptation d'application 100 est mis en oeuvre dans un environnement d'adaptation d'application 102. L'exemple d'environnement d'adaptation d'application 102 de la figure 1 est un environnement de calcul qui est utilisé pour adapter une ou plusieurs applications patrimoniales pour être 20 utilisées sur une ou plusieurs plates-formes de calcul cibles conformément aux enseignements de la présente description. Dans l'exemple illustré de la figure 1, l'environnement d'adaptation d'application 102 reçoit une application patrimoniale 104 d'une source d'applications patrimoniales telle que, par exemple, une base de données d'applications patrimoniales 106 25 et/ou un quelconque autre type de mémoire. L'exemple d'environnement d'adaptation d'application 102 de la figure 1 est chargé de l'adaptation de l'application patrimoniale 104 pour être utilisée sur une plate-forme de calcul cible 108. L'exemple d'application patrimoniale 104 de la figure 1 a été conçu à l'origine pour être exécuté sur une plate-forme de calcul 30 patrimoniale 110 qui est plus ancienne que et/ou différente de la plate- forme de calcul cible 108. Dans l'exemple de la figure 1, l'application patrimoniale 104 est spécifique à une plate-forme pour la plate-forme de calcul patrimoniale 110. C'est-à-dire que l'application patrimoniale 104 est liée à un aspect technologique spécifique de la plate-forme de calcul 35 patrimoniale 110 tel que, par exemple, un système d'exploitation, un langage de programmation, un ensemble de bibliothèques d'interface 3040222 12 utilisateur, un mécanisme spécifique d'accès aux données, un système de fichiers, etc. En d'autres termes, l'application patrimoniale 104 est conforme à une ou plusieurs configurations, architectures et/ou règles associées à la plate-forme de calcul patrimoniale 110. En conséquence, 5 l'exemple d'environnement d'adaptation d'application 102 est chargé de l'adaptation de l'application patrimoniale 104, qui est une application spécifique à une plate-forme qui est conforme à la plate-forme de calcul patrimoniale 110, en une application cible spécifique à une plate-forme 112 qui est conforme à la plate-forme de calcul cible 108. Comme décrit 10 en détail ci-dessous, l'exemple de module d'adaptation d'application 100 de la figure 1 fournit l'adaptation de l'application patrimoniale spécifique à une plate-forme 104 en application cible spécifique à une plate-forme 112. De plus, comme décrit en détail ci-dessous, l'exemple de module d'adaptation d'application 100 de la figure 1 peut adapter l'application 15 patrimoniale 104 en d'autres applications cibles pour d'autres plates- formes de calcul cibles. [17] Dans l'exemple illustré de la figure 1, la plate-forme de calcul patrimoniale 110 et la plate-forme de calcul cible 108 sont des plates-formes de calcul mobiles. Une plate-forme de calcul est une structure sur 20 laquelle des applications peuvent être exécutées. Les plates-formes de calcul mobiles sont généralement des dispositifs de calcul qui sont conçus pour être transportés manuellement, incluant par exemple, des téléphones, des téléphones intelligents, des téléphones fixes, des tablettes, des mini-ordinateurs portables, des ordinateurs portables, des 25 dispositifs de jeu portables, des lecteurs personnels de média, des ordinateurs de bord, des dispositifs de balayage manuel, etc. Dans l'exemple illustré, la plate-forme de calcul cible 108 comporte un ou plusieurs composants matériels tels que, par exemple, un lecteur de codes-barres, un dispositif de prise de vue, une tête d'impression 30 thermique, un code RFID ou un transpondeur. Les plates-formes de calcul mobiles sont généralement d'une plus petite échelle que les plates-formes de calcul de bureau (ordinateur de bureau, serveur, téléviseur, boîtier décodeur, consoles de jeux, etc.) et ont ainsi des ressources différentes (par exemple, moins de mémoire, moins de capacité de traitement, etc.) 35 que les plates-formes de calcul de bureau équivalentes. Ainsi, les applications et/ou les versions d'une application conçues pour des plates- 3040222 13 formes de calcul mobiles sont conçues différemment des applications et/ou des versions d'une application conçue pour des plates-formes de calcul de bureau. On remarquera que l'exemple de module d'adaptation d'application 100 de la figure 1 permet d'adapter l'application patrimoniale 5 104 en application cible 112 sans devoir réécrire le code de l'application patrimoniale 104. En outre, l'exemple de module d'adaptation d'application 100 procure une fonctionnalité complète de l'application patrimoniale 104 destinée à être réalisée sur la plate-forme de calcul cible 108 sans réécrire le code de l'application patrimoniale 104. 10 [18] La figure 2 est un schéma par blocs d'un exemple de mise en oeuvre du module d'adaptation d'application 100 de la figure 1. L'exemple de mise en oeuvre du module d'adaptation d'application 100 illustré sur la figure 2 comporte un substitut d'ensemble d'interfaces de programmation d'application (API) 200 et un adaptateur 202 incluant un traducteur 15 spécifique à une plate-forme 204 et un traducteur indépendant de la plate-forme 206. D'autres mises en oeuvre de l'exemple de module d'adaptation d'application 100 de la figure 1 comportent un ou plusieurs éléments, processus et/ou dispositif supplémentaires ou différents. De plus ou en variante, un ou plusieurs de l'exemple de substitut d'ensemble 20 d'API 200, de l'exemple d'adaptateur 202, de l'exemple de traducteur spécifique à une plate-forme 204 et de l'exemple de traducteur indépendant de la plate-forme 206 de la figure 2 peuvent être combinés, divisés, réagencés ou omis. L'exemple de substitut d'ensemble d'API 200, l'exemple d'adaptateur 202, l'exemple de traducteur spécifique à une 25 plate-forme 204, l'exemple de traducteur indépendant de la plate-forme 206 et/ou plus généralement, l'exemple de module d'adaptation d'application 100 des figures 1 et/ou 2 est/sont mis en oeuvre par matériels, logiciels, microprogrammes et/ou une quelconque combinaison de matériels, logiciels et/ou microprogrammes. Dans certains exemples, 30 au moins un de l'exemple de substitut d'ensemble d'API 200, l'exemple d'adaptateur 202, l'exemple de traducteur spécifique à une plate-forme 204, l'exemple de traducteur indépendant de la plate-forme 206 et/ou plus généralement, l'exemple de module d'adaptation d'application 100 des figures 1 et/ou 2 est mis en oeuvre par un circuit logique (par exemple, 35 l'exemple de processeur 800 de la figure 8). Tel qu'il est ici utilisé, le terme « circuit logique » est défini expressément comme un dispositif 3040222 14 physique incluant au moins un composant matériel configuré (par exemple, par l'intermédiaire d'une opération fonction d'une configuration prédéterminée et/ou par l'intermédiaire de l'exécution d'instructions mémorisées lisibles par une machine) pour commander une ou plusieurs 5 machines et/ou effectuer les opérations d'une ou plusieurs machines. Des exemples de circuits logiques comportent un ou plusieurs processeurs, un ou plusieurs coprocesseurs, un ou plusieurs microprocesseurs, un ou plusieurs contrôleurs, un ou plusieurs processeurs de signaux numériques (DSP), un ou plusieurs circuits intégrés spécifiques à une application 10 (ASIC), un ou plusieurs réseaux prédiffusés programmables par l'utilisateur (FPGA), une ou plusieurs unités de microcontrôleur (MCU), un ou plusieurs accélérateurs matériels, une ou plusieurs puces informatiques à usage spécifique, et un ou plusieurs dispositifs de système sur puce (SoC). Certains exemples de circuits logiques, tels que des ASIC ou des 15 FPGA, sont des circuits configurés de manière spécifique pour effectuer des opérations (par exemple, une ou plusieurs des opérations des figures 5, 6 et/ou 7). Certains exemples de circuits logiques sont constitués de matériels exécutant des instructions lisibles par une machine pour effectuer des opérations (par exemple, une ou plusieurs des opérations 20 des figures 5, 6 et/ou 7). Certains exemples de circuits logiques comportent une combinaison de matériels configurés de façon spécifique et de matériels exécutant des instructions lisibles par une machine. [19] L'exemple de module d'adaptation d'application 100 de la figure 2 reçoit un code associé à l'application patrimoniale 104 de la figure 25 1. Le code associé à l'application patrimoniale 104 de la figure 1 est par exemple, un code source ou du binaire compilé. L'exemple de module d'adaptation d'application 100 de la figure 2 détermine (par exemple, par l'intermédiaire de données d'identification d'entrée reçues conjointement avec le code associé à l'application patrimoniale 104) l'identité de la plate- 30 forme de calcul cible 108 à laquelle l'application patrimoniale 104 doit être adaptée. Par exemple, l'application patrimoniale 104 peut être spécifique à une plate-forme pour un premier système d'exploitation ou une structure associée à la plate-forme de calcul patrimoniale 110, et le module d'adaptation d'application 100 de la figure 2 est chargé de la génération 35 de l'application cible 112 qui est spécifique à une plate-forme sur un second système d'exploitation ou structure, associé à la plate-forme de 30402 2 2 15 calcul cible 108. En plus de la tâche de génération de l'application cible 112 qui est spécifique à une plate-forme pour le second système d'exploitation ou structure, associé à la plate-forme de calcul cible 108, l'exemple de module d'adaptation d'application 100 peut être chargé de la 5 génération d'une ou plusieurs applications cibles supplémentaires qui sont respectivement spécifiques à une plate-forme pour un ou plusieurs autres systèmes d'exploitation et/ou structures, associés à la plate-forme de calcul cible 108 et/ou une ou plusieurs autres plates-formes de calcul. [20] Pour adapter l'application patrimoniale 104 en application 10 cible 112, l'exemple de module d'adaptation d'application 100 effectue une abstraction (par exemple, un mappage) de l'application patrimoniale 104 en une représentation non fonctionnelle de l'application patrimoniale 104, puis traduit l'abstraction en application cible 112, qui est fonctionnelle. Des exemples de schémas illustrant les opérations et les données associées à 15 l'exemple de module d'adaptation d'application 100 de la figure 2 sont représentés sur les figures 3 et 4. En particulier, la figure 3 illustre des exemples d'opérations et de données associées à une abstraction de l'application patrimoniale 104 et une traduction directe en application cible 112. La figure 4 illustre des exemples d'opérations et de données 20 associées à une abstraction de l'application patrimoniale 104 et une traduction en application cible 112 en plusieurs étapes. La figure 2 est décrite conjointement avec les figures 3 et 4. Toutefois, l'exemple de module d'adaptation d'application 100 de la figure 2 peut être mis en oeuvre par l'intermédiaire d'opérations et/ou de données supplémentaires 25 ou différentes. [21] Dans l'exemple illustré de la figure 2, l'exemple de substitut d'ensemble d'API 200 de la figure 2 génère une représentation indépendante de la plate-forme 300 (figure 3) de l'application patrimoniale 104 conforme à une API de la plate-forme de calcul patrimoniale 110. 30 Dans l'exemple illustré de la figure 2, le substitut d'ensemble d'API 200 génère la représentation indépendante de la plate-forme 300 en remplaçant les références de bibliothèque (par exemple, les références de bibliothèque de liens dynamiques) correspondant aux API de la plate-forme de calcul patrimoniale 110 par des références de bibliothèque 35 différentes obtenues à partir d'une bibliothèque virtuelle 208 mise en oeuvre par le module d'adaptation d'application 100, qui fournit la 3040222 16 représentation de l'objectif fonctionnel de l'API de la plate-forme de calcul patrimoniale 110. On remarquera que les références de bibliothèque de l'exemple de bibliothèque virtuelle 208 de la figure 2 qui sont utilisées par le substitut d'ensemble d'API 200 pour générer la représentation 5 indépendante de la plate-forme 300 de l'application patrimoniale 104 sont conformes à l'API de la plate-forme de calcul patrimoniale 110, mais sont non fonctionnelles. C'est-à-dire que la représentation indépendante de la plate-forme 300 générée par le substitut d'ensemble d'API 200 satisfait à la même signature que l'API de la plate-forme patrimoniale 110 mais est 10 incapable d'être utilisée directement pour mettre en oeuvre (par exemple, exécuter) l'application sur une plate-forme de calcul réelle. En remplacement, les nouvelles références de bibliothèque ayant remplacé les API de l'application patrimoniale 104 sont des caractérisations abstraites de la fonctionnalité de l'application patrimoniale 104. Toutefois, 15 dans certains exemples, la bibliothèque virtuelle 208 peut inclure de plus une ou plusieurs représentations fonctionnelles des API de l'application patrimoniale 104. Par exemple, lorsqu'une fonction (par exemple, le contrôle du niveau de la charge de batterie du dispositif) de l'application patrimoniale 104 possède un équivalent (par exemple, un équivalent 20 raisonnable ou un équivalent direct) dans la plate-forme de calcul cible 108, les représentations fonctionnelles de la bibliothèque virtuelle 208 peuvent être utilisées dans l'application cible 112. Dans de tels cas, la sortie de la fonction peut être configurée conformément à un ou plusieurs aspects de la plate-forme de calcul cible 108. 25 [22] Dans l'exemple illustré de la figure 2, les nouvelles références de bibliothèque de la représentation indépendante de la plate-forme 300 de l'application patrimoniale 104 sont des objets en mémoire. Toutefois, des mises en oeuvre supplémentaires ou différentes de la représentation indépendante de la plate-forme 300 sont possibles. 30 [23] L'exemple d'adaptateur 202 de la figure 2 adapte la représentation indépendante de la plate-forme 300 de l'application patrimoniale 104 de manière à être spécifique à une plate-forme pour la plate-forme de calcul cible 108. Dans certains exemples, l'adaptateur 202 adapte la représentation indépendante de la plate-forme 300 de 35 l'application patrimoniale 104 directement dans l'application cible spécifique à une plate-forme 112 par l'intermédiaire du traducteur 3040222 17 spécifique à une plate-forme 204. Un exemple d'une telle traduction directe est illustré sur la figure 3. En particulier, l'exemple de traducteur spécifique à une plate-forme 204 traduit la représentation indépendante de la plate-forme 300 de l'application patrimoniale 104 en application cible 5 112, incluant une API qui est conforme à la plate-forme de calcul cible 108. En d'autres termes, l'exemple de traducteur spécifique à une plate-forme 204 de la figure 2 convertit l'abstraction non fonctionnelle (par exemple, la représentation indépendante de la plate-forme 300) de l'application patrimoniale 104 générée par le substitut d'ensemble d'API 10 200 en une API fonctionnelle concrète pouvant être utilisée pour mettre en oeuvre l'application cible 112 sur la plate-forme de calcul cible 108. L'exemple de traducteur spécifique à une plate-forme 204 de la figure 2 lie l'exemple de substitut d'ensemble d'API 200 à la plate-forme de calcul cible 108 (par exemple, par l'intermédiaire de données d'identification 15 reçues conjointement avec la demande d'adaptation de l'application patrimoniale) et utilise une base de connaissance (par exemple, des définitions et/ou des configurations d'API, un code source de liaison, des ensembles de liaisons, etc.) associée à la plate-forme de calcul cible 108 pour générer l'API fonctionnelle concrète qui peut être utilisée pour mettre 20 en oeuvre l'application cible 112 sur la plate-forme de calcul cible 108, qui met en oeuvre l'API appropriée sur la plate-forme de calcul cible 108 satisfaisant à l'objectif fonctionnel de l'abstraction non fonctionnelle. Dans de tels cas, l'API fonctionnelle cible générée par l'exemple de traducteur spécifique à une plate-forme 204 est différente de l'API de la plate-forme 25 de calcul patrimoniale 110, mais conserve la fonctionnalité de l'application patrimoniale 104. En remplacement, l'API fonctionnelle cible de l'application cible 112 est spécifique à la plate-forme de calcul cible 108. [24] Par exemple, un élément d'interface utilisateur (par exemple, une liste ou une boite de dialogue) peut être présenté sur la plate-forme 30 de calcul cible 108 conformément à l'API fonctionnelle cible d'une manière différente de la présentation du même élément d'interface utilisateur sur la plate-forme de calcul patrimoniale 110. Dans certains exemples, l'élément d'interface utilisateur est présenté sur la plate-forme de calcul cible 108, activé par l'API fonctionnelle cible générée par le traducteur 35 spécifique à une plate-forme 204, de façon à correspondre à l'aspect et au ressenti associés à la plate-forme de calcul cible 108. Toutefois, la 3040222 18 fonctionnalité (par exemple logique) de l'application patrimoniale 104 est conservée sur la plate-forme de calcul cible 108 par l'intermédiaire de l'API fonctionnelle cible de l'application cible 112. Si l'application patrimoniale 104 doit être adaptée à une ou plusieurs plates-formes de calcul cibles 5 supplémentaires, l'exemple de traducteur spécifique à une plate-forme 204 de la figure 2 peut générer une ou plusieurs API spécifiques à une plate-forme fonctionnelles supplémentaires, en se fondant sur la représentation indépendante de la plate-forme 300 de l'application patrimoniale 104. Dans certains exemples, le traducteur spécifique à une 10 plate-forme 204 de la figure 2 peut générer un conteneur pour chacune des applications cibles, de sorte que les applications cibles peuvent être distribuées aux plates-formes de calcul cibles. Dans certains exemples, avant de distribuer l'exemple d'application cible 112, l'exemple de module d'adaptation d'application 100 compile des couches de l'application cible 15 112 (par exemple, code source d'application, code source de couche, code source de conteneur et/ou code source de liaison). De plus ou en variante, un ou plusieurs aspects de la compilation peuvent être exécutés sur le dispositif de calcul cible 108. [25] En variante, comme illustré sur la figure 4, l'exemple 20 d'adaptateur 202 de la figure 2 utilise l'exemple de traducteur indépendant de la plate-forme 206 et le traducteur spécifique à une plate-forme 204 pour adapter la représentation indépendante de la plate-forme 300 de l'application patrimoniale 104. De façon similaire à l'exemple de la figure 3, l'exemple de substitut d'ensemble d'API 200 de la figure 2 génère la 25 représentation indépendante de la plate-forme 300 de l'application patrimoniale 104. De façon similaire à l'exemple de la figure 3, la représentation indépendante de la plate-forme 300 est conforme à l'API de l'application patrimoniale 104 et est non fonctionnelle (par exemple, ne peut pas être directement utilisée pour exécuter une application). Dans 30 l'exemple de la figure 4, l'exemple de traducteur indépendant de la plate- forme 206 traduit la représentation indépendante de la plate-forme 300 de l'application patrimoniale 104 en une application indépendante de la plate-forme 400 comportant une API non fonctionnelle qui est une API de multiplateforme conforme à l'interprétation appropriée de l'objectif fonctionnel 35 des API non fonctionnelles de l'application patrimoniale 104. En particulier, l'exemple de traducteur indépendant de la plate-forme 206 de la figure 2 3040222 19 génère une pluralité de liens ou de références à la représentation indépendante de la plate-forme 300 de l'application patrimoniale 104. Les liens ou références générés par l'exemple de traducteur indépendant de la plate-forme 206 de la figure 2 se réfèrent aux références de bibliothèque 5 de la représentation indépendante de la plate-forme 300 de l'application patrimoniale 104 d'une manière permettant à une quelconque plate-forme d'être interfacée avec les références de bibliothèque. Par exemple, lorsque la représentation indépendante de la plate-forme 300 de l'application patrimoniale 104 est mise en oeuvre sous une forme virtuelle, qui 10 représente un segment non fonctionnel de l'interface utilisateur de l'application patrimoniale 104, l'exemple d'application indépendante de la plate-forme 400 générée par le traducteur indépendant de la plate-forme 206 comporte des liens ou références à la forme virtuelle. En d'autres termes, l'exemple de traducteur indépendant de la plate-forme 206 de la 15 figure 2 génère une abstraction de multi-plateforme non fonctionnelle de la représentation indépendante de la plate-forme 300 de l'application patrimoniale 104. Dans certains exemples, la ou les traductions effectuée(s) par le traducteur indépendant de la plate-forme 206 comporte(nt) une ou plusieurs améliorations dans et/ou ajout à, par 20 exemple, une fonctionnalité d'expérience d'utilisateur qui adapte l'objectif fonctionnel de l'application patrimoniale 104 à la plate-forme de calcul cible 108. C'est-à-dire que l'exemple de traducteur indépendant de la plate-forme 206 de la figure 2 adapte l'application indépendante de la plate-forme 400 en fonction d'une ou plusieurs différences entre la plate- 25 forme de calcul patrimoniale 110 et la plate-forme de calcul cible 108. [26] Dans l'exemple illustré, le traducteur indépendant de la plate-forme 206 dote le traducteur spécifique à une plate-forme 204 de l'application indépendante de la plate-forme 400 ayant l'API non fonctionnelle qui est conforme à la multi-plateforme. Lorsque l'exemple de 30 traducteur spécifique à une plate-forme 204 de la figure 2 reçoit l'application indépendante de la plate-forme 400, le traducteur spécifique à une plate-forme 204 détermine l'identité de la plate-forme de calcul cible 108 (en se fondant par exemple sur des données d'identification reçues conjointement avec la demande d'adaptation de l'application patrimoniale 35 104). En utilisant l'identité de la plate-forme de calcul cible 108 et la base de connaissance d'API associée à la plate-forme de calcul cible 108, 30402 2 2 20 l'exemple de traducteur spécifique à une plate-forme 204 traduit l'application indépendante de la plate-forme 400 en application cible 112 ayant l'API fonctionnelle conforme à la plate-forme de calcul cible 108. L'exemple de traducteur spécifique à une plate-forme 204 de la figure 2 5 peut traduire l'application indépendante de la plate-forme 400 en une ou plusieurs applications cibles supplémentaires pour une ou plusieurs plates-formes de calcul cibles. Dans certains exemples, l'exemple d'adaptateur 202 comporte des traducteurs spécifiques à une plate-forme supplémentaire correspondant chacun aux plates-formes de calcul cibles 10 différentes. [27] Lorsque la plate-forme de calcul cible 108 est dotée de l'application cible 112, la fonctionnalité de l'application patrimoniale 104 peut être exécutée sur la plate-forme de calcul cible 108 en fonction de l'aspect et du ressenti de la plate-forme de calcul cible 108. Par exemple, 15 la fonctionnalité de l'application patrimoniale 104 peut inclure l'affichage d'une boîte de dialogue ou d'un formulaire. Lorsqu'on rencontre un appel de fonction à la boîte de dialogue ou formulaire, la plate-forme de calcul cible 108 utilise l'API fonctionnelle cible de l'application cible 112 plutôt que l'API de la plate-forme de calcul patrimoniale 110. Comme décrit ci- 20 dessus, l'API cible de l'application cible 112 satisfait à la signature d'API de la plate-forme de calcul patrimoniale 110, mais est adaptée à la plate-forme de calcul cible 108. Par exemple, l'API cible de l'application cible 112 mappe l'appel de fonction de la boîte de dialogue ou du formulaire à une mise en oeuvre spécifique à une plate-forme d'une boîte de dialogue 25 ou d'un formulaire conformément à la plate-forme de calcul cible 108. Ainsi, lorsque la boîte de dialogue ou le formulaire est affiché sur la plate-forme de calcul patrimoniale 110 d'une première manière, l'application cible 112 active la même fonction (par exemple, une boîte de dialogue ou un formulaire) mise en oeuvre d'une seconde manière différente de la 30 première manière qui correspond par exemple à des paramètres d'affichage associés au système d'exploitation de la plate-forme de calcul cible 108. En d'autres termes, l'exemple de module d'adaptation d'application 100 de la figure 2 active la plate-forme de calcul cible 108 pour exécuter la fonctionnalité de l'application patrimoniale 104 par 35 l'intermédiaire d'une mise en oeuvre incluant des couches d'affichage auxquelles à la plate-forme de calcul cible 108. 3040222 21 [28] En variante, lorsqu'on rencontre un appel de fonction à un composant matériel (par exemple, un lecteur de code-barres), la plate-forme de calcul cible 108 utilise l'API fonctionnelle cible de l'application cible 112 plutôt que l'API de la plate-forme de calcul patrimoniale 110. Le 5 composant matériel de la plate-forme de calcul cible 108 peut être différent (par exemple, plus récent) du composant matériel correspondant de la plate-forme de calcul patrimoniale 110. En conséquence, l'exemple d'application cible 112 permet de mapper l'appel de fonction sur une fonction de composant matériel spécifique à une plate-forme (par 10 exemple, un lecteur de code-barres) qui correspond à la plate-forme de calcul cible 108. [29] Les figures 5 à 7 sont des organigrammes représentatifs d'exemples d'opérations pour mettre en oeuvre l'exemple de module d'adaptation d'application 100 des figures 1 et/ou 2. D'autres exemples de 15 mises en oeuvre du module d'adaptation d'application 100 des figures 1 et/ou 2 comportent une ou plusieurs opérations supplémentaires ou différentes. De plus ou en variante, une ou plusieurs des opérations des exemples d'organigrammes des figures 5 à 7 peuvent être combinées, divisées, réagencées ou omises. Dans certains exemples, les opérations 20 des figures 5 à 7 sont mises en oeuvre par des instructions lisibles par une machine (par exemple, logiciels et/ou microprogrammes) enregistrées sur un support (par exemple, un support tangible lisible par une machine) pour être exécutées par un ou plusieurs circuits logiques (par exemple, processeur(s)). Dans certains exemples, les opérations des figures 5 à 7 25 sont mises en oeuvre par une ou plusieurs configurations d'un ou plusieurs circuits logiques conçus de façon spécifique (par exemple, ASIC(s)). Dans certains exemples, les opérations des figures 5 à 7 sont mises en oeuvre par une combinaison d'instructions lisibles par une machine enregistrées sur un support (par exemple, un support tangible lisible par une machine) 30 pour être exécutées par un ou plusieurs circuits logiques et un ou plusieurs circuits logiques conçus de façon spécifique. [30] Tels qu'ils sont utilisés ici, chacun des termes « support tangible lisible par une machine », « support non transitoire lisible par une machine », « dispositif d'enregistrement lisible par une machine » et 35 « objet de fabrication » est expressément défini comme un support d'enregistrement (par exemple, un plateau d'un disque dur, un disque 30402 2 2 22 numérique universel, un disque compact, une mémoire flash, une mémoire à lecture seule, une mémoire à accès aléatoire, etc.) sur lequel des instructions lisibles par une machine (par exemple, un code de programme sous la forme par exemple d'un logiciel et/ou d'un 5 microprogramme) peuvent être enregistrées. En outre, tels qu'ils sont utilisés ici, chacun des termes « support tangible lisible par une machine », « support non transitoire lisible par une machine », « dispositif d'enregistrement lisible par une machine » et « objet de fabrication » est expressément défini de façon à exclure des signaux de propagation. C'est- 10 à-dire que, comme utilisé dans une quelconque revendication de ce brevet, aucun des termes « support tangible lisible par une machine », « support non transitoire lisible par une machine », « dispositif d'enregistrement lisible par une machine » et « objet de fabrication » ne peut être lu pour être mis en oeuvre par un signal de propagation. En 15 outre, tels qu'ils sont utilisés ici, chacun des termes « support tangible lisible par une machine », « support non transitoire lisible par une machine », « dispositif d'enregistrement lisible par une machine » et « objet de fabrication » est expressément défini comme un support d'enregistrement sur lequel des instructions lisibles par une machine sont 20 enregistrées pendant une durée appropriée quelconque (par exemple, de façon permanente, pendant une durée prolongée (par exemple, pendant l'exécution d'un programme associé aux instructions lisibles par une machine), et/ou une courte durée (par exemple, pendant que les instructions lisibles par une machine sont mises en antémémoire et/ou 25 pendant un processus de mise en mémoire tampon). Tel qu'il est ici utilisé, le terme « au moins » est ouvert de la même manière que le terme « comprenant » est ouvert. [31] L'exemple de la figure 5 commence par une demande de l'exemple de module d'adaptation d'application 100 des figures 1 et/ou 2 30 pour adapter l'exemple d'application patrimoniale 104 pour être exécutée sur la plate-forme de calcul cible 108 (bloc 500). Dans l'exemple illustré, l'application patrimoniale 104 est spécifique à une plate-forme pour la plate-forme de calcul patrimoniale 110 et est conforme à l'API de la plate-forme de calcul patrimoniale 110. Dans l'exemple de la figure 5, le module 35 d'application d'adaptation 100 obtient un code (par exemple, un code source et/ou du binaire compilé) de l'application patrimoniale 104 et des 3040222 23 données d'identification représentatives de l'identité de la plate-forme de calcul cible 108 (bloc 502). Le module d'adaptation d'application 100 peut obtenir par exemple des informations indiquant que la plate-forme de calcul cible 108 utilise un système d'exploitation et/ou une structure, 5 particulier. [32] Dans l'exemple de la figure 5, le substitut d'ensemble d'API 200 de la figure 2 génère une représentation indépendante de la plate-forme (par exemple, la représentation indépendante de la plate-forme 300 des figures 3 et/ou 4) de l'application patrimoniale 104 conforme à l'API 10 de la plate-forme de calcul patrimoniale (bloc 504). La représentation indépendante de la plate-forme de l'application patrimoniale 104 générée par l'exemple de substitut d'ensemble d'API 200 satisfait à la signature d'API de la plate-forme de calcul patrimoniale 110 mais est non fonctionnelle. Un exemple de mise en oeuvre du bloc 504 est décrit ci- 15 dessous en relation avec la figure 6. [33] Dans l'exemple de la figure 5, l'exemple d'adaptateur 202 de la figure 2 adapte la représentation indépendante de la plate-forme de l'application patrimoniale 104 pour être spécifique à une plate-forme pour la plate-forme de calcul cible 108 (bloc 506). L'application cible 112 20 générée par l'adaptateur 202 est fonctionnelle, conforme à l'API de la plate-forme de calcul cible 108 et diffère de l'API de la plate-forme de calcul patrimoniale 110. Un exemple de mise en oeuvre du bloc 506 est décrit ci-dessous en relation avec la figure 7. [34] Dans l'exemple de la figure 5, l'exemple de module 25 d'adaptation d'application 100 fournit l'application cible 112 à la plate- forme de calcul cible 108 (bloc 508). Dans certains exemples, le module d'adaptation d'application 100 compile l'application cible 112 avant de fournir l'application cible 112 à la plate-forme de calcul cible 108. Dans certains exemples, un ou plusieurs aspects de la compilation sont exécutés 30 par l'exemple de plate-forme de calcul cible 108. L'exemple de module d'adaptation d'application 100 détermine si des adaptations supplémentaires de l'application patrimoniale 104 ont été demandées (bloc 510). Si une ou plusieurs adaptations supplémentaires de l'application patrimoniale 104 ont été demandées (bloc 510), la commande 35 passe au bloc 506. Si aucune adaptation supplémentaire de l'application 3040222 24 patrimoniale 104 n'a été demandée (bloc 510), l'exemple de la figure 5 se termine (bloc 512). [35] La figure 6 illustre un exemple de mise en oeuvre du bloc 504 de la figure 5, qui correspond à la génération de la représentation 5 indépendante de la plate-forme (par exemple, la représentation indépendante de la plate-forme 300 des figures 3 et/ou 4) de l'application patrimoniale 104. Dans l'exemple de la figure 6, le substitut d'ensemble d'API 200 identifie des références de bibliothèque (par exemple, des références de DLL) correspondant à l'API de la plate-forme de calcul 10 patrimoniale 110 (bloc 600). Par exemple, le substitut d'ensemble d'API 200 balaie le code de l'API patrimoniale pour identifier les références de bibliothèque et/ou des ensembles de références de bibliothèque. En outre, le substitut d'ensemble d'API 200 de la figure 2 remplace les références de bibliothèque identifiées par des références de bibliothèque différentes 15 obtenues à partir de la bibliothèque virtuelle 208 (bloc 602). Les différentes références de bibliothèque de la représentation indépendante de la plate-forme sont conformes à l'API de la plate-forme de calcul patrimoniale 110, mais sont abstraites et non fonctionnelles. En conséquence, dans l'exemple de la figure 6, le substitut d'ensemble d'API 20 200 vérifie que les nouvelles références de bibliothèque ayant remplacé les références de bibliothèque patrimoniales satisfont à la signature de l'API de la plate-forme de calcul patrimoniale 110. Dans l'exemple de la figure 6, la commande revient au bloc 506 de la figure 5 (bloc 606). [36] La figure 7 illustre un exemple de mise en oeuvre du bloc 506 25 de la figure 5, qui correspond à l'adaptation de la représentation indépendante de la plate-forme de l'application patrimoniale 104 pour être spécifique à une plate-forme pour la plate-forme de calcul cible 108. Dans l'exemple de la figure 7, l'adaptateur 202 détermine si le traducteur indépendant de la plate-forme 206 doit être utilisé pour l'adaptation 30 immédiate (bloc 700). Cette détermination est fondée par exemple sur le fait que l'application patrimoniale 104 doit être adaptée à des plates-formes de calcul cibles multiples. Toutefois, des critères supplémentaires ou différents (par exemple, une préférence de l'utilisateur, des réglages par défaut, etc.) pour la détermination sont possibles. Si le traducteur 35 indépendant de la plate-forme 206 doit être utilisé (bloc 702), l'exemple de substitut d'ensemble d'API 200 fournit la représentation indépendante 3040222 25 de la plate-forme de l'application patrimoniale 104 au traducteur indépendant de la plate-forme 206, qui traduit la représentation indépendante de la plate-forme de l'application patrimoniale en une application indépendante de la plate-forme (par exemple, l'application 5 indépendante de la plate-forme 400 de la figure 4) (bloc 704). Dans l'exemple illustré, l'application indépendante de la plate-forme est conforme à la multi-plateforme (par exemple, conforme à une quelconque plate-forme de calcul mobile) et est non fonctionnelle (par exemple, ne peut pas être directement utilisée pour exécuter l'application). Dans 10 l'exemple de la figure 7, le traducteur spécifique à une plate-forme 204 traduit l'application indépendante de la plate-forme en application cible 112 qui comporte une API fonctionnelle (par exemple, peut être utilisée directement pour exécuter l'application cible 112 sur la plate-forme de calcul cible 108) satisfaisant à la signature de l'API de la plate-forme de 15 calcul patrimoniale 110. La commande revient ensuite au bloc 508 de la figure 5 (bloc 708). [37] En se référant de nouveau au bloc 702, lorsque le traducteur indépendant de la plate-forme 206 doit être utilisé, la commande passe au bloc 710. Dans de tels cas, l'exemple de substitut d'ensemble d'API 200 20 fournit la représentation indépendante de la plate-forme de l'application patrimoniale 104 au traducteur spécifique à une plate-forme 204, qui traduit la représentation indépendante de la plate-forme en application cible 112. La commande passe ensuite au bloc 508 de la figure 5 (bloc 708). 25 [38] La figure 8 est un schéma par blocs représentatif d'un exemple de circuit logique pouvant être utilisé pour mettre en oeuvre par exemple le module d'adaptation d'application 100 des figures 1 et/ou 2. L'exemple de circuit logique de la figure 8 est une plate-forme de traitement 800 capable d'exécuter des instructions pour, par exemple, 30 mettre en oeuvre les exemples d'opérations des figures 5, 6 et/ou 7. [39] L'exemple de plate-forme de traitement 800 de la figure 8 comporte un processeur 802 tel que, par exemple, un ou plusieurs microprocesseurs, contrôleurs, et/ou un type quelconque de processeur approprié. L'exemple de plate-forme de traitement 800 de la figure 8 35 comporte une mémoire (par exemple, une mémoire volatile, une mémoire non volatile) accessible par le processeur 802 (par exemple, par 30402 2 2 26 l'intermédiaire d'un contrôleur de mémoire). L'exemple de processeur 802 interagit avec la mémoire 804 pour obtenir, par exemple, des instructions lisibles par une machine enregistrées dans la mémoire 804 correspondant par exemple aux opérations des figures 5, 6 et/ou 7. De plus ou en 5 variante, des instructions lisibles par une machine correspondant aux exemples d'opérations des figures 5, 6 et/ou 7 peuvent être enregistrées sur un ou plusieurs supports amovibles (par exemple, un disque compact, un disque numérique universel, une mémoire flash amovible, etc.) pouvant être couplés à la plate-forme de traitement 800 pour donner 10 accès aux instructions lisibles par une machine enregistrées sur ceux-ci. [40] L'exemple de plate-forme de traitement 800 de la figure 8 comporte une interface de réseau 806 pour permettre la communication avec d'autres machines par l'intermédiaire par exemple d'un ou plusieurs réseaux. L'exemple d'interface de réseau 806 comporte un type 15 convenable quelconque d'interface(s) de communication appropriée(s) (par exemple, des interfaces câblées et/ou sans fil) configurée(s) pour fonctionner conformément à un ou plusieurs protocoles convenables quelconques. [41] L'exemple de plate-forme de traitement 800 de la figure 8 20 comporte des interfaces d'entrée/sortie (E/S) 808 pour permettre la réception d'une entrée d'utilisateur et la communication de données de sortie à l'utilisateur. [42] Bien que certains exemples de dispositifs, procédés et objets de fabrication aient été ici décrits, la portée de la couverture de ce brevet 25 n'y est pas limitée. Au contraire, ce brevet couvre tous les dispositifs, procédés et objets de fabrication appartenant réellement à la portée des revendications de ce brevet. REVENDICATIONS1. Procédé d'adaptation d'une application comprenant : la génération, par l'intermédiaire d'un circuit logique, d'une représentation indépendante de la plate-forme (300) d'une application spécifique à une première plate-forme, l'application spécifique à une première plate-forme étant spécifique à une première plate-forme mobile, la représentation indépendante de la plate-forme (300) de l'application spécifique à une première plate-forme étant conforme à une première API 10 de la première plate-forme mobile ; et l'adaptation, par l'intermédiaire du circuit logique, de la représentation indépendante de la plate-forme (300) de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme, à une deuxième plate-forme mobile différente de la première 15 plate-forme mobile. 2. Procédé selon la revendication 1, dans lequel la représentation indépendante de la plate-forme (300) de l'application spécifique à une première plate-forme est non fonctionnelle avant l'adaptation de la représentation indépendante de la plate-forme (300) de l'application 20 spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile. 3. Procédé selon la revendication 1, dans lequel l'adaptation de la représentation indépendante de la plate-forme (300) de l'application spécifique à une première plate-forme pour être spécifique à une plate- 25 forme pour la deuxième plate-forme mobile comporte la traduction de la première représentation indépendante de la plate-forme (300) de l'application spécifique à une première plate-forme en une application spécifique à une deuxième plate-forme incluant une deuxième API différente de la première API, la deuxième API étant conforme à la 30 deuxième plate-forme mobile. 4. Procédé selon la revendication 3, comprenant en outre l'adaptation de la représentation indépendante de la plate-forme (300) de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme, à une troisième plate-forme mobile différente de la 35 première plate-forme mobile et de la deuxième plate-forme mobile en traduisant la première représentation indépendante de la plate-forme 3040222 28 (300) de l'application spécifique à une première plate-forme en une application spécifique à une troisième plate-forme incluant une troisième API différente des première et deuxième API, la troisième API étant conforme à la troisième plate-forme mobile. 5. Procédé selon la revendication 1, dans lequel l'adaptation de la représentation indépendante de la plate-forme (300) de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile comporte : la traduction de la représentation indépendante de la plate-forme 10 (300) de l'application spécifique à une première plate-forme en une application indépendante de la plate-forme (400) incluant une deuxième API différente de la première API, la deuxième API étant indépendante de la plate-forme ; et la traduction de l'application indépendante de la plate-forme (400) 15 en une application spécifique à une deuxième plate-forme incluant une troisième API différente des première et deuxième API, la troisième API étant conforme à la deuxième plate-forme mobile. 6. Procédé selon la revendication 5, comprenant en outre l'adaptation de la représentation indépendante de la plate-forme (300) de 20 l'application spécifique à une première plate-forme pour être spécifique à une plate-forme, à une troisième plate-forme mobile en traduisant l'application indépendante de la plate-forme (400) en une application spécifique à une troisième plate-forme incluant une quatrième API différente des première , deuxième et troisième API, la quatrième API 25 étant conforme à la troisième plate-forme mobile. 7. Procédé selon la revendication 5, dans lequel : la représentation indépendante de la plate-forme (300) de l'application spécifique à une première plate-forme est non fonctionnelle avant l'adaptation de la représentation indépendante de la plate-forme 30 (300) de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme pour la deuxième plate-forme mobile ; et la deuxième API est non fonctionnelle. 8. Procédé selon la revendication 1, dans lequel la représentation indépendante de la plate-forme (300) de l'application spécifique à une 35 première plate-forme est constituée d'une pluralité d'objets en mémoire. 3040222 29 9. Procédé selon la revendication 8, dans lequel les objets en mémoire ne peuvent pas être utilisés directement pour exécuter la fonctionnalité de l'application spécifique à une première plate-forme. 10. Procédé selon la revendication 1, dans lequel l'adaptation de la 5 représentation indépendante de la plate-forme (300) de l'application spécifique à une première plate-forme pour être spécifique à une plate- forme pour la deuxième plate-forme mobile comprend la génération d'une application spécifique à une deuxième plate-forme qui est spécifique à la deuxième plate-forme mobile. 11. Support tangible lisible par une machine comprenant des instructions qui, lorsqu'elles sont exécutées, font effectuer par une machine un procédé selon l'une quelconque des revendications 1 à 10. 12. Dispositif comprenant : un substitut pour générer une représentation indépendante de la plate-forme (300) d'une application spécifique à une première plate-forme, l'application spécifique à une première plate-forme étant spécifique à une première plate-forme mobile, la représentation indépendante de la plate-forme (300) de l'application spécifique à une première plate-forme étant conforme à une première API de la première plate-forme mobile ; et un adaptateur (202) pour adapter la représentation indépendante de la plate-forme (300) de l'application spécifique à une première plate-forme pour être spécifique à une plate-forme, à une deuxième plate-forme mobile différente de la première plate-forme mobile, dans lequel au moins un du substitut ou de l'adaptateur (202) est mis en oeuvre par l'intermédiaire d'un circuit logique.