FR 3083041 A1 20191227 FR 1855514 A 20180621 SYNCHRONISATION D'AFFICHEURS INTER-DISPOSITIFS DOMAINE TECHNIQUE [0001] La présente invention concerne de façon générale la synchronisation d'afficheurs inter- dispositifs, sans qu'elle y soit limitée. Plus spécifiquement, l'invention présente concerne des techniques pour la synchronisation d'afficheurs inter-dispositifs en utilisant la donnée d'état. CONTEXTE 100021 Des protocoles variés existent pour la synchronisation de l'afficheur d'un dispositif avec l'afficheur d'un autre dispositif. Des exemples de ces protocoles incluent le protocole Chromecast® développé par Google® LLC à Mountain View, Californie ; le protocole Miracast® développé par WiFi Alliance à Austin, Texas ; et le protocole AirPlay® développé par Apple® Inc. à Cupertino, Californie. En utilisant ces protocoles, une connexion peut être établie entre des dispositifs pour transférer le contenu d'un média (p. ex. une vidéo, des images, etc.) d'un premier dispositif vers un deuxième dispositif pour une présentation sur un afficheur du deuxième dispositif. Dans certains cas, un dispositif de diffusion en continu d'un média (streaming) peut intervenir entre le premier dispositif et le deuxième dispositif pour faciliter cette connexion et transférer le contenu du média. 10003] Mors que l'afficheur correspondant de chaque dispositif peut être synchronisé en utilisant ces protocoles existants, certaines limitations peuvent être rencontrées. Par exemple, conformément aux protocoles existants, les deux dispositifs peuvent avoir besoin de prendre en charge un protocole commun afin de synchroniser leurs afficheurs respectifs. C'est-à-dire, que si le premier dispositif prend en charge un protocole (p. ex. le protocole Chromecast®) et le second dispositif prend charge un autre protocole (p. ex. le protocole Miracase), les dispositifs peuvent être incapables de synchroniser leurs afficheurs respectifs. Comme autre exemple, avec les protocoles existants, les deux dispositifs peuvent afficher du contenu formaté de façon similaire, quelles que soient les caractéristiques respectives de chaque dispositif. Si le premier dispositif est un smartphone et le deuxième dispositif a un afficheur doté d'une taille d'écran plus large que celle du smartphone, le contenu présenté sur chaque afficheur peut être formaté pour une présentation sur l'afficheur d'un smartphone même si l'écran du deuxième dispositif est plus large. 2 [0004] Une autre possibilité de limitation est que la communication bidirectionnelle entre les dispositifs peut ne pas être prise en charge par les protocoles existants. En d'autres termes, un dispositif qui lance une connexion de transfert de contenu d'un média peut être désigné comme étant le « dispositif principal » alors que l'autre dispositif participe passivement à cette connexion 5 en présentant le contenu d'un média transféré par le dispositif principal sur son afficheur. Le participant passif à cette connexion n'a généralement pas le contrôle sur le contenu du média présenté sur son afficheur. En outre, les deux dispositifs ont généralement besoin d'avoir des droits d'accès à un réseau commun afin d'établir une connexion de transfert de contenu de média en utilisant les protocoles existants. Si le deuxième dispositif est couplé à un réseau particulier, le 10 premier dispositif a généralement besoin d'avoir des droits d'accès à ce réseau particulier afin de synchroniser son afficheur avec un afficheur du deuxième dispositif. RÉSUMÉ [0005] Les modes de réalisation de la présente invention fournissent des systèmes, des 15 procédés et des supports de stockage lisibles par ordinateur pour la synchronisation d'afficheurs inter-dispositifs en utilisant les données d'état. Dans un mode de réalisation, un système inclut un premier dispositif, un processeur et un support de stockage lisible par ordinateur qui inclut des instructions. Lors de l'exécution par le processeur, les instructions amènent le système à mettre en oeuvre des opérations. Les opérations incluent l'obtention, au premier dispositif avec un premier 20 afficheur et un premier identifiant qui identifie de façon unique le premier dispositif, d'un deuxième identifiant présenté sur un second afficheur d'un deuxième dispositif. Le deuxième identifiant identifie de façon unique le deuxième dispositif. Une association est créée entre le premier identifiant et le deuxième identifiant à une base de données en temps réel. La donnée d'état de l'interface utilisateur (UI) est soumise par le premier dispositif à la base de données en temps 25 réel via un premier réseau, créant ainsi une donnée d'état de l'interface utilisateur (UI) de réplique sur la base de données en temps réel. La donnée d'état UI définit un premier état d'une interface utilisateur (UT) d'une interface utilisateur (LTD présentée sur le premier afficheur. La base de données en temps réel est configurée pour pousser la donnée d'état UI vers le deuxième dispositif via un deuxième réseau sur la base de l'association entre le premier identifiant et le deuxième identifiant, amenant ainsi le deuxième dispositif à synchroniser une UI correspondante présentée sur le deuxième afficheur avec l'UI présentée sur le premier afficheur. 3 [0006] Dans un autre mode de réalisation, un procédé inclut la réception, à une base de données en temps réel via un premier réseau, d'un premier identifiant qui identifie de façon unique un premier dispositif ayant un premier afficheur. En réponse à la réception d'une requête contraignante qui fait référence au premier identifiant d'un deuxième dispositif ayant un deuxième 5 afficheur via un deuxième réseau, une association est créée entre le premier identifiant et un deuxième identifiant qui identifie de façon unique le deuxième dispositif. La donnée d'état d'interface utilisateur (UI) de réplique est générée en utilisant la donnée d'état d'interface utilisateur (UI) obtenue du deuxième dispositif via le deuxième réseau. La donnée d'état UI définit un premier état d'une interface utilisateur (UI) d'une interface utilisateur (UI) présentée sur le 10 deuxième afficheur. La donnée d'état UI est poussée vers le premier dispositif via le premier réseau sur la base de l'association entre le premier identifiant et le deuxième identifiant, amenant ainsi le premier dispositif à synchroniser une interface utilisateur (UI) correspondante présentée sur le premier afficheur avec l'UI présentée sur le deuxième afficheur. [0007] Dans un autre mode de réalisation, un support de stockage lisible par ordinateur non 15 transitoire, incluant des instructions lisibles par ordinateur, est fourni. Lors de l'exécution par un processeur d'un dispositif informatique, les instructions lisibles par ordinateur amènent le dispositif informatique à recevoir, à une base de données en temps réel, un premier identifiant qui identifie de façon unique un premier dispositif ayant un premier afficheur via un premier réseau. Le premier identifiant est associé à une donnée d'état de l'interface utilisateur (UI) de réplique 20 pour une interface utilisateur (UI) d'une application. La donnée d'état de l'interface utilisateur (UI) pour FUI est synchronisée entre une pluralité de dispositifs incluant le premier dispositif en poussant la donnée de changement d'état reçue à la base de données en temps réel qui modifie la donnée d'état UI de réplique pour chaque dispositif parmi la pluralité des dispositifs. [0008] Ce résumé est fourni pour présenter une sélection de concepts sous une forme 25 simplifiée, lesquels seront décrits ultérieurement dans la description détaillée ci-dessous. Ce résumé n'a pas l'intention d'identifier des caractéristiques clés ou des caractéristiques essentielles de l'invention faisant l'objet de cette description et n'est pas non plus destiné à être utilisé de façon isolée comme outil de détermination de la portée de l'invention décrite dans les présentes. 4 BRÈVE DESCRIPTION DES DESSINS [0009] Les dessins accompagnants illustrent les modes de réalisation variés de la présente 5 invention et, avec la description générale de l'invention fournie ci-dessus et la description détaillée des modes de réalisation donnée ci-dessous, servent à expliquer les modes de réalisation de l'invention. Dans les dessins, des références à des numéros semblables sont utilisées pour indiquer des éléments semblables dans les diverses visualisations. [0010] FIG. 1 est un diagramme bloc d'un exemple d'environnement d'exploitation qui est 10 approprié pour implémenter des aspects de la présente invention. [0011] FIG. 2 illustre une vue globale de la synchronisation d'une interface utilisateur conforme à un mode de réalisation de la présente invention. [0012] FIG. 3 illustre à titre d'exemple des afficheurs présentés par deux dispositifs avant la synchronisation inter-dispositifs. 15 [0013] FIG. 4 illustre à litre d'exemple des afficheurs présentés par deux dispositifs après la synchronisation inter-dispositifs. [0014] FIG. 5 est un diagramme séquentiel décrivant un processus exemplaire pour la synchronisation inter-dispositifs en utilisant la donnée d'état. [0015] FIG. 6 est un diagramme séquentiel décrivant un autre processus exemplaire de 20 synchronisation d'afficheurs inter-dispositifs en utilisant la donnée d'état. [0016] FIG. 7 est un organigramme illustrant un procédé exemplaire de synchronisation d'afficheurs inter-dispositifs en utilisant la donnée d'état. [0017] FIG. 8 est un organigramme illustrant un autre exemple de procédé de synchronisation d'afficheurs inter-dispositifs en utilisant la donnée d'état. 25 [0018] FIG. 9 est un organigramme illustrant un autre exemple d'un procédé de synchronisation d'afficheurs inter-dispositifs en utilisant la donnée d'état. [0019] FIG. 10 est un diagramme bloc d'un environnement informatique exemplaire adapté à l'implémentation des modes de réalisation de l'invention. 5 DESCRIPTION DÉTAILLÉE [00201 Les techniques décrites dans les présentes concernent la synchronisation d'afficheurs 5 inter-dispositifs en utilisant la donnée d'état. Faisant référence à la FIG. 1, un environnement d'exploitation exemplaire pour implémenter les aspects de la présente invention est illustré et désigné de façon générale sous le numéro 100. De façon générale, l'environnement d'exploitation 100 représente les divers composants impliqués dans la mise en oeuvre d'une synchronisation d'afficheurs inter-dispositifs. L'environnement d'exploitation 100 inclut le 10 dispositif A 110, le dispositif B 120, la base de données en temps réel (« DB ») 130 et l'hôte 140. 100211 La FIG. 1 décrit les composants divers comme étant en communication les uns avec les autres via des réseaux (p. ex. le réseau A 150 et le réseau B 160) qui peuvent inclure un ou plusieurs réseaux publics et/ou privés. Des exemples de réseaux qui sont appropriés pour l'implémentation du réseau A 150 et du réseau B 160 incluent : des réseaux de zone locale (LANs), des réseaux de 15 zone étendue (WANs), un réseau cellulaire, 'Internet et d'autres. Ainsi que discuté ci-dessus, les protocoles existants pour la synchronisation de contenu présenté sur des afficheurs de deux ou plusieurs dispositifs impliquent généralement que chaque dispositif soit associé à un réseau unique. Par contraste, en implémentant les techniques décrites dans les présentes, la synchronisation d'afficheurs inter-dispositifs peut être réalisée entre des dispositifs associés à des réseaux 20 différents tels qu'illustrés dans la FIG. 1. [0022] Le dispositif A 110 et le dispositif B 120 représentent chacun des dispositifs informatiques ayant un afficheur configuré pour présenter du contenu aux utilisateurs. Des exemples de dispositifs informatiques appropriés pour l'implémentation du dispositif A 110 et/ou du dispositif B 120 incluent : un smartphone, un ordinateur portable, un ordinateur de bureau, un 25 dispositif informatique mobile, une tablette, une télévision connectée (« smart TV »), et d'autres dispositifs. Dans un mode de réalisation, le dispositif A 110 et le dispositif B 120 ont des systèmes d'exploitation disparates. Tel qu'illustré dans la FIG. 1, le dispositif A 110 et le dispositif B 120 échangent des données avec des dispositifs externes (p. ex. la DB en temps réel 130 et/ou l'hôte 140) en utilisant des réseaux différents. Spécifiquement, le dispositif A 110 échange des 30 données avec des dispositifs externes en utilisant le réseau A 150 alors que le dispositif B 120 échange des données avec des dispositifs externes en utilisant le réseau B 160. Dans 6 l'environnement d'exploitation 100, les droits d'accès au réseau A 150 ne sont pas accordés au dispositif B 120 tandis que les droits d'accès au réseau B 160 ne sont pas accordés au dispositif A 110. Dans un mode de réalisation, le dispositif A 110 et le dispositif B 120 peuvent chacun échanger des données avec des dispositifs externes via un réseau unique (p. ex. le réseau A 150 ou 5 le réseau B 160). [00231 La DB en temps réel 130 est un fournisseur de service dorsal (« Baas ») configuré pour présenter une interface de programmation d'application (« API ») pour le stockage et la synchronisation de données entre de multiples clients en temps réel et/ou quasiment en temps réel. Par l'intermédiaire de l'API de la DB en temps réel 130, chaque client peut interagir avec une 10 donnée de réplique résidant (ou stockée) dans une structure de donnée 134 associée à la DB en temps réel 130 tel que décrit de façon plus détaillée ci-dessous. [0024] Un type de contenu qu'un afficheur du dispositif A 110 et/ou du dispositif B 120 peut présenter est une interface utilisateur (« UI ») associée à une application. L'application peut être implémentée en utilisant une architecture client-serveur telle qu'illustrée dans l'exemple de la 15 FIG. 1. Dans l'architecture client-serveur de la FIG. 1, l'application inclut un composant côté client (p. ex. le client A 112 et/ou le client B 122) et un composant côté serveur (p. ex. le serveur 142). De façon générale, le composant côté client (ou frontal) consomme des ressources et/ou des services, et le composant côté serveur (ou dorsal) fournit les ressources et/ou les services. À cet effet, une connexion est établie entre les composants côté client et côté serveur sur un réseau 20 (p. ex. le réseau A 150 et/ou le réseau B 160). Les composants côté client et côté serveur échangent des données conformément à un protocole de communication qui gouverne la connexion, tel que le protocole de transfert hypertexte (« HTTP »), le protocole de transfert de fichiers (« FTP »), le protocole Websocket, le protocole datagramme utilisateur (« UDP ») et d'autres. [0025] Le composant côté client est généralement un ou plusieurs processus mis en oeuvre en 25 utilisant un environnement d'exécution d'un dispositif côté client, tel que le dispositif A 110 et/ou le dispositif B 120. Dans un mode de réalisation, l'environnement d'exécution du dispositif côté client est un environnement d'exploitation, un navigateur Web, un plugiciel de navigateur Web ou une application mobile. Dans un mode de réalisation, l'environnement d'exécution du côté client est l'application JavaScript. Dans un mode de réalisation, le composant client de l'application est 30 récupéré à partir d'un serveur (p. ex. l'hôte 140 de la FIG. 1) hébergeant le composant du serveur de l'application. Le composant côté client est opérationnel afin de présenter à un utilisateur l'UI à 7 partir de laquelle des données sont obtenues et présentées à l'utilisateur. Les données obtenues de l'utilisateur via l'UI peuvent être envoyées comme une requête au composant côté serveur de l'application. Par exemple, le composant côté client peut recevoir une entrée indicative d'une requête pour du contenu de la part de l'utilisateur via l'UI. En réponse à la réception de l'entrée, 5 le composant côté client peut envoyer cette requête au composant côté serveur pour obtenir le contenu. [0026] Le composant côté serveur est mis en oeuvre en utilisant des ressources informatiques fournies par un dispositif côté serveur, telles que la DB en temps réel 130 et/ou l'hôte 140. Le composant côté serveur est opérationnel pour délivrer une réponse au composant côté client en 10 réponse à la réception d'une requête du composant côté client. En continuant avec l'exemple ci-dessus, en réponse à la réception d'une requête de contenu provenant du composant côté client, le composant côté serveur délivrerait une réponse incluant le contenu demandé au composant côté client. À la réception de la réponse, le composant côté client actualiserait un état de l'UI basé sur le contenu inclus dans la réponse. 15 [0027] Tel qu'utilisé dans les présentes, « état » fait généralement référence à une information définissant des attributs, des configurations et/ou des caractéristiques quantitatives d'une application (ou un sous-ensemble de l'application) à un moment particulier. Par exemple, l'application peut avoir un état d'interface utilisateur (« état UI ») qui définit ce que l'UI présente à l'utilisateur (p. ex. des données, des éléments UT, et d'autres) et comment afficher FUI (p. ex. 20 une configuration de l'UI). La donnée d'état de l'interface utilisateur (« donnée d'état UI ») qui réside (ou est stockée) dans une structure de donnée (p. ex. les structures de donnée 114 et/ou 124) associée au composant côté client, définit l'état UI de FUI à un moment particulier. Dans l'exemple ci-dessus, le composant côté client peut présenter l'UI dans un premier état lorsque l'entrée est reçue de l'utilisateur. Dans un mode de réalisation, la donnée d'état UI est remplie en 25 utilisant le composant côté client de l'application. Le composant côté client peut actualiser la donnée d'état UI sur la base du contenu inclus dans la réponse modifiant ainsi FUI du premier état UI au second état UT. [00281 Chacun des systèmes montrés dans la FIG. 1 peut être implémenté via un quelconque type de système informatique tel que le système informatique 1000 décrit de façon plus détaillée 30 ci-dessous par exemple en référence à la FIG. 10. Chaque système montré dans la FIG. 1 peut comprendre un seul dispositif ou des dispositifs multiples qui collaborent dans un environnement 8 distribué. Par exemple, la DB en temps réel 130 et/ou l'hôte 140 peuvent être fournis via de multiples dispositifs arrangés dans un environnement distribué qui fournissent collectivement la fonctionnalité décrite dans les présentes. En outre, d'autres composants non représentés peuvent aussi être inclus dans l'environnement distribué. 5 [0029] La FIG. 2 illustre de façon schématique, une vue conceptuelle des aspects de la synchronisation d'afficheurs inter-dispositifs conformément à un mode de réalisation de la présente invention. Comme le montre la FIG. 2, un aspect de l'implémentation de la synchronisation d'afficheurs inter-dispositifs en utilisant la donnée d'état implique de conserver une copie unique, durable de la donnée d'état UI dans une structure de donnée (p. ex. les structures 10 de donnée 114 et/ou 124 de la FIG. 1) associée un composant côté client d'une application. [0030] Afin de conserver la copie durable de la donnée d'état UI, des modifications de la donnée d'état III définissant un état actuel de l'UI sont implémentées indirectement par un composant côté client. C'est-à-dire, que le composant côté client retourne un état nouveau actualisé de l'Ul lorsque des réponses à une entrée de l'utilisateur sont reçues d'un composant côté serveur 15 ou qu'une donnée de changement d'état est reçue d'une base de données en temps réel plutôt que de muter l'état UI actuel. Des modifications de la donnée d'état UI sont ainsi centralisées et surviennent dans un ordre prédéfini. Le composant côté client met à jour la donnée d'état UI par l'application de la modification en suspens à l'état UI actuel et en retournant le nouvel état UI actualisé. 20 [0031] Tel que décrit de façon plus détaillée ci-dessous, lors de la mise à jour de la donnée d'état UI, la donnée de changement d'état définissant une différence entre l'état UI actuel et le nouvel état UI actualisé est transmise par le composant côté client à la base de données en temps réel. La transmission de cette donnée de changement d'état déclenche un processus de synchronisation par lequel, la donnée d'interface utilisateur de réplique résidant sur la base de 25 données en temps réel est mise à jour. Le processus de synchronisation implique aussi que la base de données en temps réel pousse la donnée de changement d'état vers d'autres dispositifs amenant ainsi chaque dispositif à synchroniser une UI correspondante présentée sur son afficheur respectif. La donnée de changement d'état est poussée vers les autres dispositifs sur la base d'une association créée à la base de données en temps réel entre un identifiant qui identifie de façon unique un 30 dispositif fournissant un environnement d'exécution dans lequel le composant côté client s'exécute et les identifiants qui identifient de façon unique chacun des autres dispositifs. Des exemples 9 d'identifiants appropriés incluent : une adresse universelle (« URL »), une URL minimisée, une adresse courriel, une valeur numérique, une valeur alphabétique, une valeur alphanumérique et d'autres. I0032] La FIG. 3illustre des afficheurs exemplaires présentés par deux dispositifs avant la 5 synchronisation d'afficheurs inter-dispositifs. Dans la FIG. 3, une Ul 315 associée à un site Web de services de voyage est présentée sur un premier afficheur 312 d'un premier dispositif 310 et un symbole de code 325 est présenté sur un deuxième afficheur 322 d'un deuxième dispositif 320 avant la synchronisation des afficheurs respectifs. Le symbole de code 325 présenté sur le deuxième afficheur 322 encode un deuxième identifiant de façon unique qui identifie de façon 10 unique le deuxième dispositif 320. 100331 Bien que l'UI 315 soit associée à un site Web de services de voyage dans le mode de réalisation illustré dans la FIG. 3, l'homme de métier reconnaîtra que l'UI 315 peut aussi être associée à divers types de réseaux (Web) basés sur des ressources et/ou des services. Par exemple, l'UI 315 peut aussi être associée à une application Web, une application mobile (ou native), une 15 application d'une seule page, un site Web de transmission de média en continu et d'autres. Dans un mode de réalisation, le premier dispositif 310 et le deuxième dispositif 320 sont implémentés en utilisant le dispositif B 120 et le dispositif A 110 de la FI11, respectivement. Dans un mode de réalisation, un processus en cours d'exécution dans un environnement d'exécution du premier dispositif 310 est dirigé vers le site Web de services de voyage lors de l'obtention du premier 20 identifiant. [0034] Ici, la synchronisation du premier afficheur 312 et du deuxième afficheur 322 implique que le premier dispositif 310 obtienne le deuxième identifiant à partir du symbole de code 325 en utilisant un capteur d'image du premier dispositif 310. Comme décrit de façon plus détaillée ci-dessous, la synchronisation des afficheurs respectifs implique que le premier dispositif 310 crée 25 une association entre le deuxième identifiant et un premier identifiant (qui identifie de façon unique le premier dispositif) dans une base de données en temps réel. Dans un mode de réalisation, le premier dispositif 310 crée l'association en communiquant une requête contraignante qui fait référence au deuxième identifiant à la base de données en temps réel. [0035] Cette synchronisation implique par ailleurs que le premier dispositif 310 soumette une 30 donnée d'état UI définissant un premier état de l'UI 315 à la base de données en temps réel créant ainsi la donnée d'état Ul de réplique sur la base de données en temps réel. Dans un mode de 10 réalisation, le premier dispositif 310 soumet la donnée d'état UI à la base de données en temps réel via un premier réseau. Dans un mode de réalisation, le premier réseau est implémenté en utilisant le réseau B 160 de la FIG. 1. Sur la base de l'association entre le premier identifiant et le deuxième identifiant, la base de données en temps réel est configurée pour pousser la donnée d'état UI vers 5 le deuxième dispositif 320 amenant ainsi le deuxième dispositif 320 à synchroniser le deuxième afficheur 322 avec le premier afficheur 312. Dans un mode de réalisation, la base de données en temps réel pousse la donnée d'état UI vers le deuxième dispositif 320 via un deuxième réseau qui est distinct du premier réseau. Dans un mode de réalisation, le deuxième réseau est implémenté en utilisant le réseau A 150 de la FIG. 1. Dans un mode de réalisation, la base de données en temps 10 réel pousse la donnée d'état UI vers le deuxième dispositif 320 via le premier réseau avec lequel le premier dispositif 310 soumet la donnée d'état UI. [0036] La FIG. 4 illustre des afficheurs exemplaires présentés sur les deux afficheurs après la synchronisation d'afficheurs inter-dispositifs. Comme on l'a vu dans la FIG. 4, au cours de la synchronisation des afficheurs respectifs, le deuxième afficheur 322 présente une UI 430 15 correspondant à l'UT 315 présentée sur le premier afficheur 312. Dans l'exemple de la FIG. 4, l'UT 315 présentée sur le premier afficheur 312 et l'UT 430 présentée sur le deuxième afficheur 322ont des formats distincts qui sont adaptés aux caractéristiques d'affichage du premier afficheur 312 et du deuxième afficheur 322. Des exemples de caractéristiques d'affichage incluent : la taille de l'écran (p. ex. une largeur et/ou une hauteur d'un afficheur) la densité de 20 pixels, les pixels par pouce, le ratio d'aspect de l'afficheur, le taux de rafraîchissement de l'afficheur et d'autres. C'est pourquoi, par contraste aux techniques existantes, les modes de réalisation de la présente invention ne se limitent pas à afficher du contenu formaté de façon similaire suite à la synchronisation inter-dispositifs. [0037] Ici, en plus de présenter une version miroir 432 de FUI 315, l'UT 430 inclut aussi une 25 donnée/du contenu supplémentaire. Par exemple, l'UT 4311 inclut également une information d'acheminement détaillée 434 associée à une pluralité de segments de voyage, des indicateurs affectés à un transport de voyage desservant chaque segment de voyage 436, une image du transport de voyage 438 et une représentation de perspective 440 décrivant une cabine en classe affaire du transport de voyage. Dans un mode de réalisation, l'UI 315 représente une version 30 mobile du site Web de services de voyage. Dans un mode de réalisation, PUI 430 représente une version complète (ou d'ordinateur de bureau) du site Web de services de voyage. Dans un mode Il de réalisation, la base de données en temps réel conserve une donnée d'état UI de réplique définissant un état UI de multiples versions d'une Ut. [0038] Dans un mode de réalisation, la base de données en temps réel pousse la donnée d'état UI définissant un l'état UI d'une version complète du site Web de services de voyage. Dans ce 5 mode de réalisation, en obtenant une donnée d'état UI correspondant à la version complète du site Web de voyage, le deuxième dispositif 320 peut présenter l'Ut 430 sur le deuxième afficheur 322 sans obtenir le contenu d'un serveur hébergeant le site Web de services de voyage. Alors que la donnée d'état UI de réplique correspondant à la version complète du site Web de services de voyage est mise à jour à la base de données en temps réel, l'UI 430 peut recevoir des notifications 10 de poussée de la base de données en temps réel. Le deuxième dispositif 320 est configure pour mettre à jour l'UI 430 en utilisant la donnée de changement d'état obtenue à partir de ces notifications de poussée plutôt que d'accéder au serveur hébergeant le site Web de services de voyage pour ces données, tel que cela sen décrit de façon plus détaillée ci-dessous. Cet aspect de la présente invention entraine une réduction du nombre de requêtes de contenu reçu par ces 15 serveurs. [0039] La FIG. 5 est un diagramme séquentiel décrivant un processus exemplaire 500 pour la synchronisation d'afficheurs inter-dispositifs en utilisant la donnée d'état. À l'étape 501, un dispositif 520 ayant un deuxième afficheur soumet un deuxième identifiant qui identifie de façon unique le dispositif 520 à la base de données en temps réel 540. Dans un mode de réalisation, le 20 dispositif 520 est implémenté en utilisant le dispositif A 110 de la FIG. 1 et/ou le dispositif 320 des FRIS. 3-4. Dans un mode de réalisation, le dispositif 520 génère le deuxième identifiant. Dans un mode de réalisation, le deuxième identifiant est affecté au dispositif 520 via un processus d'enregistrement avec un dispositif informatique distant. [0040] Un dispositif 510 ayant un premier afficheur obtient le deuxième identifiant qui est 25 représenté sur le deuxième afficheur du dispositif 520, à l'étape 503 Afin de créer une association entre un premier identifiant qui identifie de façon unique le dispositif 510 et le deuxième identifiant à une base de données en temps réel 540, le dispositif 510 communique une requête contraignante faisant référence au deuxième identifiant à la base de données en temps réel 540, à l'étape 505. En réponse à la réception de la requête contraignante, la base de données en temps réel 540 enregistre 30 l'association entre le premier identifiant et le deuxième identifiant à l'étape 507. 12 [0041] Un dispositif 530 ayant un troisième afficheur obtient le deuxième identifiant qui est représenté sur le deuxième afficheur du dispositif 520, à l'étape 509. Afin de créer une association entre un troisième identifiant qui identifie de façon unique le dispositif 530 et le deuxième identifiant à la base de données en temps réel 540, le dispositif 530 communique une requête 5 contraignante faisant référence au deuxième identifiant à la base de données en temps réel 540, à l'étape 511. En réponse à la réception de cette requête contraignante, la base de données en temps réel 540 met à jour l'association enregistrée entre le premier identifiant et le deuxième identifiant pour inclure par ailleurs le troisième identifiant, à l'étape 513. [0042] Le dispositif 510 soumet la donnée d'état UI définissant un premier état UI d'une UI 10 présentée sur le premier afficheur à la base de données en temps réel 540, à l'étape 515. Dans un mode de réalisation, la donnée d'état UI définissant le premier état UI est basée sur un contenu reçu par un processus en cours d'exécution dans un environnement d'exécution sur le serveur 550. Dans un mode de réalisation, le dispositif 510 soumet la donnée d'état UI à la base de données en temps réel via un premier réseau (p. ex. le réseau B 160 de la FIG. 1). Lors de la réception de la 15 donnée d'état UI, la base de données en temps réel 540 crée une donnée d'état UI de réplique, à l'étape 517. Sur la base de l'association entre le premier, le deuxième et le troisième identifiant, la base de données en temps réel 540 pousse la donnée d'état UI vers les deux dispositifs 520 et 530, à l'étape 519. Dans un mode de réalisation, la base de données en temps réel 540 pousse la donnée d'état UI vers le dispositif 520 et le dispositif 530 en utilisant des notifications de poussée. Dans 20 un mode de réalisation, la base de données en temps réel 540 pousse la donnée d'état UI vers le dispositif 520 via un deuxième réseau et vers le dispositif 530 via le troisième réseau où le premier réseau, le deuxième réseau et le troisième réseau correspondent chacun à des réseaux distincts. Dans un mode de réalisation, la base de données en temps réel 540 pousse la donnée d'état UI vers le dispositif 520 et le dispositif 530 via le premier réseau. 25 [00431 En réponse à la réception de la donnée d'état UI de la base de données en temps réel 540, le dispositif 520 et le dispositif 530 synchronisent chacun les Uls correspondantes présentées sur leurs afficheurs respectifs, aux étapes 521 et 523 respectivement. Dans un mode de réalisation, la synchronisation d'une UI correspondante implique qu'un composant côté client s'exécute dans un environnement d'exécution du dispositif 520 etku du dispositif 530 en 30 modifiant une copie durable de la donnée d'état UI conservée par le composant côté client, ainsi que discuté ci-dessus en référence à la FIG. 2. 13 [0044] À l'étape 525, un processus en cours d'exécution dans un environnement d'exécution du dispositif 510 envoie une requête de contenu au serveur 550 en utilisant l'UI présentée sur le premier afficheur du dispositif 510. Réagissant à cette requête, le serveur 550 délivre une réponse incluant le contenu demandé au processus, à l'étape 527. Le processus actualise l'UI présentée sur 5 le premier afficheur du dispositif 510 du premier état de l'UI au deuxième état de l'UI sur la base du contenu dans la réponse, à l'étape 529. Dans un mode de réalisation, la mise à jour de l'UT du premier état de l'Ul au deuxième état de l'UT implique qu'un composant côté client s'exécute dans un environnement d'exécution du dispositif 510 en modifiant une copie durable de la donnée d'état UI conservée par le composant côté client, ainsi que discuté ci-dessus en référence à la FIG. 2. 10 [0045] À l'étape 531, le dispositif 510 synchronise la donnée d'état UI avec la donnée d'état UI de réplique qui réside sur une base de données en temps réel 540 en transmettant la donnée de changement d'état à la base de données en temps réel 540. La donnée de changement d'état que le dispositif 510 transmet à la base de données en temps réel 540 définit une différence entre le premier état de l'UT et le deuxième état de l'UI présentée sur le premier afficheur du dispositif 510. 15 Lors de la réception de la donnée de changement d'état, la base de données en temps réel 540 met en oeuvre un processus de synchronisation dans lequel la donnée d'état UI de réplique est modifiée sur la base de la donnée de changement d'état, à l'étape 533. [0046] À l'étape 535, sur la base de l'association entre le premier, le deuxième et le troisième identifiant, la base de données en temps réel 540 pousse la donnée de changement d'état vers les 20 deux dispositifs 520 et 530. Dans un mode de réalisation, la base de données en temps réel 540 pousse la donnée de changement d'état vers le dispositif 520 et le dispositif 530 en utilisant des notifications de poussée. En réponse à la réception de la donnée de changement l'état de la base de données en temps réel 540, le dispositif 520 et le dispositif 530 synchronisent chacun les UIs correspondantes présentées sur leurs afficheurs respectifs, aux étapes 537 et 539 respectivement. 25 [00471 La FIG. 6 est un diagramme séquentiel décrivant un processus exemplaire 600 pour la synchronisation d'afficheurs inter-dispositifs en utilisant la donnée d'état. Comme on l'a vu à la FIG. 6, le processus 600 commence avec les étapes 501-523 du processus 500. Le processus 600 illustre le fait qu'une fois que la synchronisation d'afficheurs inter-dispositifs a été enclenchée, conformément aux modes de réalisation de la présente invention, un quelconque dispositif 30 présentant une III synchronisée peut modifier l'UI synchronisée quel que soit le dispositif qui a déclenché cette synchronisation. Par exemple, à l'étape 505, le dispositif 510 a déclenché cette 14 synchronisation en communiquant une requête contraignante faisant référence au deuxième identifiant qui identifie de façon unique le dispositif 520 à la base de données en temps réel 540. Pourtant, au processus 600, un processus en cours d'exécution dans un environnement d'exécution du dispositif 530 envoie une requête du contenu au serveur 550 en utilisant une UI correspondante 5 présentée sur le troisième afficheur du dispositif 530, à l'étape 625. [0048] Réagissant à cette requête, le serveur 550 délivre une réponse qui inclut le contenu demandé au processus en cours d'exécution dans l'environnement d'exécution du dispositif 530, à l'étape 527. Le processus met à jour l'UI correspondante présentée sur le troisième afficheur du dispositif 530 du premier état de l'UI au deuxième état de l'UI sur la base du contenu dans la 10 réponse, à l'étape 629. À l'étape 631, le dispositif 530 synchronise la donnée d'état UI avec la donnée d'état UI de réplique qui réside sur la base de données en temps réel 540 en transmettant la donnée de changement d'état à la base de données en temps réel 540. La donnée de changement d'état que le dispositif 530 transmet à la base de données en temps réel 540 définit une différence entre le premier état de l'UI et le deuxième état de PUI de l'UI correspondante présentée sur le 15 troisième afficheur du dispositif 530. [0049] Lors de la réception de la donnée de changement d'état, la base de données en temps réel 540 met en oeuvre un processus de synchronisation dans lequel la donnée d'état UI de réplique est modifiée sur la base de la donnée de changement d'état, à l'étape 633. Sur la base de l'association entre le premier, deuxième et le troisième identifiants, la base de données en temps 20 réel 540 pousse la donnée de changement d'état vers les deux dispositifs 510 et 520, à l'étape 635. En réponse à la réception de la donnée de changement d'état de la base de données en temps réel 540, le dispositif 510 et le dispositif 520 synchronisent chacun les Uls correspondantes sur leurs afficheurs respectifs, aux étapes 637 et 639 respectivement. [00501 Faisant référence à la FIG. 7, un processus exemplaire 700 de la synchronisation 25 d'afficheurs inter-dispositifs, en utilisant la donnée d'état, est illustré. Dans un mode de réalisation, le processus 700 est mis en oeuvre par le dispositif B 120 de la FIG. 1. Au bloc 702, un deuxième identifiant présenté sur un deuxième afficheur d'un deuxième dispositif est obtenu par un premier dispositif avec un premier afficheur et un premier identifiant. Le premier identifiant et le deuxième identifiant définissent de façon unique le premier dispositif et le deuxième dispositif 30 respectivement. Dans un mode de réalisation, le premier dispositif inclut un capteur d'images et le 15 deuxième identifiant est obtenu à partir d'un symbole de code présenté sur le deuxième afficheur en utilisant le capteur de code. [0051] Au bloc 704, une association est créée entre le premier identifiant et le deuxième identifiant à une base de données en temps réel. Dans un mode de réalisation, l'association est 5 créée en soumettant une requête contraignante à la base de données en temps réel qui fait référence au deuxième identifiant. Au bloc 706, la donnée d'état UI du premier dispositif est soumise à la base de données en temps réel via un premier réseau créant ainsi une donnée d'état UI de réplique sur la base de données en temps réel. La donnée d'état UI du premier dispositif définit un premier état UI d'une UI présentée sur le premier afficheur. La base de données en temps réel est configurée 10 pour pousser la donnée d'état UI vers le deuxième dispositif sur la base de l'association entre le premier identifiant et le deuxième identifiant. [0052] Dans un mode de réalisation, la donnée d'état UI stockée sur le premier dispositif est mise à jour en réponse à la réception des notifications de poussée provenant de la base de données en temps réel lorsque la donnée d'état 151 de réplique est modifiée par un troisième dispositif au 15 cours d'un processus de synchronisation. Dans un mode de réalisation, le troisième dispositif est couplé en mode communication à la base de données en temps réel via un troisième dispositif qui est distinct du premier réseau et/ou du deuxième réseau. [0053] En référence à la FIG. 8, un autre exemple du processus 800 de synchronisation d'afficheurs en utilisant la donnée d'état est illustré. Dans un mode de réalisation, le processus 800 20 est mis en oeuvre par la base de données en temps réel 130 de la FIG. 1 et/ou la base de données en temps réel 540 des FIGS. 5-6. Au bloc 802, un premier identifiant qui identifie de façon unique un premier dispositif ayant un premier afficheur est reçu à une base de données en temps réel via un premier réseau. Au bloc 804, en réponse à la réception d'une requête contraignante, faisant référence au premier identifiant, du deuxième dispositif ayant un deuxième afficheur via un 25 deuxième réseau, une association est créée entre le premier identifiant et un deuxième identifiant qui identifie de façon unique le deuxième dispositif. [0054] Au bloc 806, la donnée d'état UI de réplique est générée en utilisant la donnée d'état UI obtenue du deuxième dispositif via le deuxième réseau. Dans un mode de réalisation, la donnée d'état UT est obtenue du deuxième dispositif via un deuxième réseau qui est distinct du premier 30 réseau. Dans un mode de réalisation, la donnée d'état UI est obtenue du deuxième dispositif via le premier réseau. Au bloc 808, la donnée d'état UI est poussée vers le premier dispositif via le 16 premier réseau sur la base de l'association entre le premier identifiant et le deuxième identifiant. La poussée de la donnée d'état UI amène le premier dispositif à synchroniser une UI correspondante présentée sur le premier afficheur avec une UI présentée sur le deuxième afficheur. [0055] Dans un mode de réalisation, la requête contraignante est une d'une pluralité de 5 requêtes contraignantes reçues par la base de données en temps réel via des réseaux extérieurs au premier réseau qui font chacun référence au premier identifiant. Dans un mode de réalisation, chaque requête contraignante parmi la pluralité des requêtes contraignantes inclut un identifiant respectif qui identifie de façon unique un dispositif correspondant soumettant cette requête contraignante. Dans un mode de réalisation, le premier identifiant est obtenu du premier afficheur 10 par au moins un dispositif qui a soumis une de la pluralité des requêtes contraignantes. Dans un mode de réalisation, au moins un dispositif ayant soumis une de la pluralité des requêtes contraignantes a reçu le premier identifiant d'un autre dispositif qui a soumis une de la pluralité des requêtes contraignantes. 100561 Dans un mode de réalisation, la donnée de changement d'état, définissant une 15 différence entre le premier état UI et un deuxième état UI de l'UI, est reçue du deuxième dispositif Dans un mode de réalisation, la donnée de changement d'état est poussée vers chaque dispositif ayant soumis une de la pluralité des requêtes contraignantes lors de la mise à jour de la donnée d'état UI de réplique en utilisant la donnée de changement d'état. Dans un mode de réalisation, la donnée de changement d'état est poussée vers un sous-ensemble de dispositifs ayant soumis une 20 de la pluralité des requêtes contraignantes lors de la mise à jour de la donnée d'état UI de réplique en utilisant la donnée de changement d'état. Dans un mode de réalisation, la donnée de changement d'état définissant une différence entre le premier état de l'UI et un deuxième état de l'UI est reçue du premier dispositif ou d'un quelconque dispositif ayant soumis une de la pluralité des requêtes contraignantes. Dans un mode de réalisation, la donnée de changement d'état est poussée vers le 25 deuxième dispositif au cours de la mise à jour de la donnée d'état UI de réplique en utilisant la donnée de changement d'état. 100571 Dans un mode de réalisation, la donnée de changement d'état est reçue du deuxième dispositif qui inclut une donnée d'inertie correspondant au mouvement du deuxième dispositif Dans un mode de réalisation, la donnée d'inertie est générée par une unité de mesure d'inertie 30 (« IMU ») du deuxième dispositif. L'IMU étant un dispositif informatique qui fournit des données d'inertie en prenant des échantillons de signaux générés par un ou plusieurs capteurs de l'IMU. 17 Ledit un ou plusieurs capteurs peuvent inclure des accéléromètres d'un à trois axes pour mesurer les changements de vélocité entre un à trois axes, des gyroscopes d'un à trois axes pour mesurer la vélocité angulaire d'un à trois axes, des magnétomètres d'un à trois axes pour mesurer l'information concernant des champs magnétiques concernant un à trois axes, un capteur de 5 pression barométrique pour mesurer la pression atmosphérique, et d'autres mesures de ce type. Dans un mode de réalisation, l'UI correspondante présentée sur le premier afficheur inclut une vue de perspective (p. ex. la vue de perspective 440 de la FIG. 4) avec un angle de vue qui est ajusté sur la base de la donnée d'inertie. [0058] En référence à la FIG. 9, un autre exemple du processus 900 de la synchronisation 10 d'afficheurs inter-dispositifs en utilisant la donnée d'état est illustré. Dans un mode de réalisation, le processus 900, est mis en oeuvre par la base de données en temps réel 130 de la FIG. 1 et/ou la base de données en temps réel 540 des FIGS. 5-6. Au bloc 902, un premier identifiant qui définit de façon unique un premier dispositif ayant un premier afficheur est reçu à la base de données en temps réel via un premier réseau. Au bloc 904, le premier identifiant est associé à la donnée d'état 15 de l'UT de réplique pour une UI d'une application. Au bloc 906, la donnée d'état de Ur est synchronisée pour l'UI entre une pluralité de dispositifs incluant le premier dispositif, en poussant la donnée de changement d'état reçue à la base de données en temps réel qui modifie la donnée d'état UI de réplique pour chaque dispositif parmi la pluralité des dispositifs. [0059] Dans un mode de réalisation, des conflits identifiés dans la donnée de changement 20 d'état qui est reçue par la base de données en temps réel sont résolus en tamponnant la donnée de changement d'état dans une file d'attente du type premier entré, premier sorti, en tamponnant la donnée de changement d'état dans une file d'attente de type dernier entré, dernier sorti, ou en déterminant une valeur moyenne pour les conflits identifiés et en incluant la valeur moyenne dans la donnée de changement d'état poussée vers chaque dispositif parmi la pluralité des dispositifs. 25 Dans un mode de réalisation, les conflits identifiés dans la donnée de changement d'état qui est reçue par la base de données en temps réel sont résolus en désignant un dispositif parmi la pluralité des dispositifs comme étant le dispositif principal. [0060] Dans un mode de réalisation, le processus 700, le processus 800 et/ou le processus 900 sont mis en oeuvre par une logique de traitement incluant du matériel, un micrologiciel, un logiciel 30 ou une combinaison de ceux-ci. Dans un mode de réalisation, le processus 700, le processus 800 18 et/ou le processus 900 sont mis en oeuvre par un processeur exécutant un code stocké sur un support lisible par ordinateur non transitoire (p. ex. une mémoire). 100611 Le procédé et les modes de réalisation de supports lisibles par ordinateur, non transitoires, peuvent être caractérisés par les points suivants : 5 1. Un procédé comprenant : à une base de données en temps réel : la réception, via un premier ordinateur, d'un premier identifiant qui identifie de façon unique un premier dispositif ayant un premier afficheur ; en réponse à la réception d'une requête contraignante qui fait référence au premier 10 identifiant d'un deuxième dispositif ayant un deuxième afficheur via un deuxième réseau qui est distinct du premier réseau, la création d'une association entre le premier identifiant et un deuxième identifiant qui identifie de façon unique le deuxième dispositif; la génération d'une donnée d'état d'interface utilisateur (UI) de réplique obtenue d'un deuxième dispositif via le deuxième réseau, la donnée d'état UI définissant une première 15 interface utilisateur (UI) d'une interface d'utilisateur (UI) présentée sur le deuxième afficheur ; et la poussée de la donnée d'état UI vers le premier dispositif via le premier réseau sur la base de l'association entre le premier identifiant et le deuxième identifiant, amenant ainsi le premier dispositif à synchroniser une interface utilisateur (UI) correspondante présentée 20 sur le premier afficheur avec l'Ul présentée sur le deuxième afficheur. 2. Le procédé du point 1, dans lequel la requête contraignante est une d'une pluralité de requêtes contraignantes reçues par la base de données en temps réel via des réseaux extérieurs au premier réseau qui font chacun référence au premier identifiant, chaque 25 requête contraignante parmi la pluralité des requêtes contraignante incluant un identifiant respectif qui identifie de façon unique un dispositif correspondant soumettant cette requête contraignante. 3. Le procédé du point 2, comprenant par ailleurs : 30 la poussée de la donnée de changement d'état reçue du deuxième dispositif vers chaque dispositif ayant soumis une de la pluralité des requêtes contraignantes lors de la mise à 19 jour de la donnée d'état UI de réplique en utilisant la donnée de changement d'état qui définit une différence entre le premier état UI et un deuxième état de l'interface utilisateur (U1) de l'Ul. 5 4. Le procédé du point 2 ou 3, comprenant par ailleurs : la poussée de la donnée de changement d'état reçue du deuxième dispositif vers un sous-ensemble de dispositifs ayant soumis une de la pluralité des requêtes contraignantes au cours de la mise à jour de la donnée d'état III de réplique en utilisant la donnée de changement d'état qui définit une différence entre le premier état UI et un deuxième état 10 d'interface utilisateur (UI) de l'UI. 5. Le procédé d'un quelconque des points 2 à 4, comprenant par ailleurs : la poussée de la donnée de changement d'état reçue par le premier dispositif ou un quelconque dispositif ayant soumis une de la pluralité des requêtes contraignantes vers le 15 deuxième dispositif lors de la mise à jour de la donnée d'état UI de réplique en utilisant la donnée de changement d'état qui définit une différence entre le premier état UI et un deuxième état de l'interface utilisateur (U1) de l'UL 6. Le procédé d'un quelconque des points 2 à 5, dans lequel le premier identifiant est 20 obtenu du premier afficheur par au moins un dispositif ayant soumis une de la pluralité des requêtes contraignantes. 7. Le procédé d'un quelconque des points 1 à 6, dans lequel l'UI correspondante et l'UT ont des formats distincts qui sont adaptés pour afficher les caractéristiques du premier 25 afficheur et du deuxième afficheur respectivement 8. Le procédé d'un quelconque des points 1 à 7, dans lequel la donnée d'état UI est remplie en utilisant un composant client d'une application associée à l'UT, le composant client s'exécutant dans un environnement d'exécution du deuxième dispositif. 30 20 9. Le procédé du point 8, dans lequel l'environnement d'exécution est un système d'exploitation, un navigateur Web, un plugiciel de navigateur Web ou une application mobile. 5 10. Le procédé d'un quelconque des points 1 à 9, comprenant par ailleurs. la réception de la donnée de changement d'état en provenance du deuxième dispositif qui inclut une donnée d'inertie correspondant au mouvement du deuxième dispositif. 11. Le procédé du point 10, dans lequel l'UI correspondante présentée sur le premier 10 afficheur inclut une vue de perspective avec une vue d'angle qui est ajustée sur la base de la donnée d'inertie. 12. Un support de stockage lisible par ordinateur non transitoire, comprenant des instructions lisibles par ordinateur qui lors de l'exécution par un processeur d'un dispositif 15 informatique amènent le dispositif informatique à: à une base de données en temps réel : recevoir un premier identifiant qui identifie de façon unique un premier dispositif ayant un premier afficheur via un premier réseau ; associer le premier identifiant avec la donnée d'état d'interface utilisateur (UI) de réplique 20 pour une interface d'utilisateur (UI) d'une application ; et synchroniser la donnée d'état d'interface utilisateur (UI) pour l'UI entre une pluralité de dispositifs incluant le premier dispositif en poussant la donnée de changement d'état reçue par la base de données en temps réel qui modifie la donnée d'état UI de réplique pour chaque dispositif parmi la pluralité des dispositifs. 25 13. Le support de stockage lisible par ordinateur non transitoire du point 12, dans lequel les conflits identifiés dans la donnée de changement d'état qui est reçue par la base de données en temps réel sont résolus en tamponnant la donnée de changement d'état dans une file d'attente du type premier entré, premier sorti, en tamponnant la donnée de 30 changement d'état dans une file d'attente du type dernier entré, premier sorti, ou en déterminant une valeur de moyenne pour les conflits identifiés et en incluant la valeur de 21 moyenne dans la donnée de changement d'état poussée vers chaque dispositif parmi la pluralité des dispositifs. 14. Le support de stockage lisible par ordinateur non transitoire du point 12 ou du point 13, 5 dans lequel les conflits identifiés dans la donnée de changement d'état qui est reçue par la base de données en temps réel sont résolus en désignant un dispositif parmi la pluralité des dispositifs comme étant un dispositif principal. [0062] Ayant décrit divers modes de réalisation de l'invention, un environnement informatique exemplaire adapté à l'implémentation des modes de réalisation de l'invention va 10 maintenant être décrit. En référence à la FIG. 10, le dispositif A 110, le dispositif B 120, la base de données en temps réel 130, l'hôte 140, le dispositif 310, le dispositif 320, le dispositif 510, le dispositif 520, le dispositif 530, la base de données en temps réel 540 et le serveur 550 peuvent être un dispositif ou système informatique, tels que le système informatique exemplaire 1000. Le système informatique 1000 peut comprendre un processeur 1026, une mémoire 1028, un dispositif 15 de mémoire de masse 1030, une interface entrée/sortie (I/O) 1032, et une interface homme-machine (1-1MI) 1034. Le système informatique 1000 peut aussi être couplé de façon fonctionnelle à une ou plusieurs ressources externes 1036 via le réseau 1023, ou l'interface I/O 1032. Les ressources externes peuvent inclure, mais de façon non exhaustive, des serveurs, des bases de données, des dispositifs de stockage de masse, des dispositifs périphériques, des services de réseau 20 en nuage ou toute autre ressource informatique appropriée qui peut être utilisée avec l'ordinateur 1000. (00631 Le processeur 1026 peut inclure un ou plusieurs dispositifs sélectionnés parmi des microprocesseurs, des microcontrôleurs, des processeurs de signaux numériques, des micro-ordinateurs, des unités centrales de traitement, des réseaux de portes programmables, des 25 dispositifs logiques programmables, des machines à état, des circuits logiques, des circuits analogiques, des circuits numériques, ou tout autre dispositif qui manipule des signaux (analogues ou numériques) sur la base des instructions de fonctionnement enregistrées dans la mémoire 1028. La mémoire 1028 peut inclure un seul dispositif de mémoire ou une pluralité de dispositifs de mémoire comprenant, de façon non exhaustive, la mémoire à lecture seule (ROM), la mémoire à 30 accès aléatoire (RAM), la mémoire volatile, la mémoire non volatile, la mémoire vive statique (SRAM), la mémoire dynamique à accès aléatoire (DRAM), la mémoire flash, la mémoire-cache, 22 ou tout autre dispositif capable de stocker des informations. Le dispositif de mémoire de masse 1030 peut inclure des dispositifs de stockage de données tels qu'un disque dur, un disque optique, un dérouleur de bande magnétique, un circuit à l'état solide non volatile, ou tout autre dispositif capable de stocker des informations. 5 [0064] Le processeur 1026 peut fonctionner sous le contrôle d'un système d'exploitation 1038 qui réside dans la mémoire 1028. Le système d'exploitation 1038 peut gérer les ressources de l'ordinateur de telle façon que le code de programme de l'ordinateur, intégré sous forme d'un ou plusieurs logiciels d'application tels que l'application 1040 qui réside dans la mémoire 1028, puisse disposer d'instructions exécutées par le processeur 1026. Dans un autre mode de réalisation, 10 le processeur 1026 peut exécuter l'application 1040 directement et dans ce cas, le système d'exploitation 1038 peut être omis. Une ou plusieurs structures de donnée 1042 peuvent également résider dans la mémoire 1028, et peuvent être utilisées par le processeur 1026, le système d'exploitation 1038, ou l'application 1040 pour stocker ou manipuler des donnée& [00651 L'interface I/O 1032 peut fournir une interface de machine qui couple de façon 15 fonctionnelle le processeur 1026 à d'autres dispositifs et systèmes, tels que le réseau 1023 ou une ou plusieurs ressources externes 1036. L'application 1040 peut ainsi collaborer avec le réseau 1023 et/ou les ressources externes 1036 en communiquant via l'interface I/O 1032 pour fournir les divers éléments, fonctions, applications, processus, ou modules composant les modes de réalisation de l'invention. L'application 1040 peut aussi avoir un code de programme qui est 20 exécuté par une ou plusieurs ressources externes 1036, ou autrement repose sur les fonctions ou signaux fournis par d'autres systèmes ou composants de réseau externe à l'ordinateur 1000. En effet, au vu des configurations presque infinies de matériel et de logiciel possibles, les hommes de métier comprendront que les modes de réalisation de l'invention peuvent inclure des applications localisées extérieurement au système informatique 1000, distribuées à des ordinateurs multiples et 25 à d'autres ressources externes 1036 ou apportées par des ressources informatiques (matérielles et logicielles), telles qu'un service d'informatique en nuage, qui sont fournies comme services sur le réseau 1023. [0066] Le HM1 1034 peut être couplé de façon fonctionnelle avec le processeur 1026 du système informatique 1000 d'une manière connue pour permettre à un utilisateur d'interagir 30 directement avec le système informatique 1000. Le HMI 1034 peut inclure des afficheurs vidéo ou alphanumériques, un écran tactile, un haut-parleur et tous autres indicateurs visuels et audios 23 capables de communiquer des données à l'utilisateur. Le HMI 1034 peut aussi inclure des dispositifs de saisie et des contrôles, tels qu'un clavier alphanumérique, un périphérique de pointage, des claviers, des boutons poussoirs, des boutons de commande, des microphones, etc., capables d'accepter des commandes ou des saisies de l'utilisateur, et de les transmettre au 5 processeur 1026. [0067] Une base de données 1044 peut résider sur le dispositif de stockage de mémoire de masse et peut être utilisée pour collecter et organiser des données utilisées par les divers systèmes et modules décrits dans les présentes. La structure de donnée 114, la structure de donnée 124, et la structure de donnée 134 peuvent être implémentées en utilisant une ou plusieurs bases de données, 10 telles que la base de données 1044. La base de données 1044 peut inclure des données et les structures de données qui les supportent pour stocker et organiser les données. En particulier, la base de données 1044 peut-être arrangée selon toute organisation ou structure de base de données incluant, mais de façon non exhaustive, une base de données relationnelle, une base de données hiérarchique, une base de données en réseau, ou des combinaisons de celles-là. Un système de 15 gestion de base de données sous forme de logiciel informatique d'application qui s'exécute sous la forme d'instructions sur le processeur 1026 peut être utilisé pour accéder à l'information ou aux données stockées dans des fichiers de la base de données 1044 en réponse à une interrogation, lorsqu'une interrogation peut être déterminée de façon dynamique et exécutée par le système d'exploitation 1038, les autres applications 1040, ou un ou plusieurs modules. 20 [0068] En général les routines exécutées pour mettre en oeuvre les modes de réalisation de l'invention, qu'elles soient implémentées dans le cadre d'un système d'exploitation ou d'une application spécifique, d'un composant, d'un programme, d'un objet, d'un module ou d'une séquence d'instructions, ou même un sous-ensemble de ceux-là, peuvent être désignées dans les présentes comme « code de programme informatique » ou simplement « code de programme ». 25 Le code de programme comprend typiquement des instructions lisibles par ordinateur qui résident à divers moments dans des dispositifs de mémoire et de stockage variés dans un ordinateur, et qui lorsqu'il est lu et exécuté par un ou plusieurs processeurs dans un ordinateur, amène cet ordinateur à mettre en oeuvre les opérations et/ou les éléments propres aux aspects variés des modes de réalisation de l'invention. Les instructions d'un programme informatique lisibles par ordinateur 30 pour effectuer les opérations des modes de réalisation de l'invention peuvent être, par exemple : 24 le langage d'assemblage ou, un code source ou un code objet, écrit en combinaison avec un ou plusieurs langages de programmation. [0069j Le code de programme mis en oeuvre dans une/un quelconque des applications/modules décrit dans les présentes peut être distribué individuellement ou collectivement comme un produit- 5 programme d'ordinateur, sous une variété de formes. En particulier, le code de programme peut-être distribué en utilisant un support de stockage lisible par ordinateur ayant des instructions de programme lisibles par ordinateur pour amener un processeur à mettre en oeuvre des aspects des modes de réalisation de l'invention. [0070] Les supports de stockage de données lisibles par ordinateur et qui sont intrinsèquement 10 non transitoires, peuvent inclure des médias tangibles, volatiles et non volatiles, amovibles et non amovibles, implémentés dans tout procédé ou technologie de stockage de données, tels que des instructions de programme lisibles par ordinateur, des structures de donnée, des modules de programme, ou autres données. Les supports de stockage lisibles par ordinateur peuvent aussi inclure des mémoires : une mémoire à accès aléatoire (RAM), une mémoire à lecture seule (ROM), 15 une mémoire à lecture seule programmable et effaçable (EPROM), une mémoire à lecture seule programmable et effaçable électriquement (EEPROM), une mémoire flash, ou autre technologie de support solide de mémoire, un disque compact portable doté d'une mémoire à lecture seule (CD-ROM), ou autre stockage optique, des cassettes magnétiques, une bande d'enregistrement magnétique, un support de stockage magnétique ou d'autres dispositifs de stockage magnétiques, 20 ou tout autre support pouvant être utilisé pour stocker l'information désirée et apte à être lu par un ordinateur. Dans un mode de réalisation, les supports de stockage lisible par ordinateur incluent un ensemble de microcircuits d'une télévision lequel est opérationnel pour faire passer la télévision en mode navigateur. Un support de stockage lisible par ordinateur ne peut être interprété en soi comme des signaux transitoires (p. ex., des ondes radio ou d'autres ondes électromagnétiques se 25 propageant, des ondes électromagnétiques se propageant à travers des supports de transmission tels qu'un guide d'ondes, ou des signaux électriques transmis par un câble). Les instructions de programme lisibles par ordinateur peuvent être téléchargées sur un ordinateur, un autre type d'appareil de traitement de données programmable ou sur tout autre dispositif de support de stockage lisible par machine, ou vers un ordinateur externe ou vers un dispositif de stockage 30 externe via un réseau. 25 [0071] Les instructions de programme lisibles par ordinateur, stockées sur un support lisible par ordinateur, peuvent être utilisées pour instruire un ordinateur, d'autres types d'appareils programmables de traitement ou d'autres dispositifs pour fonctionner d'une façon particulière, de sorte que les instructions stockées sur un support lisible par ordinateur produisent un article de 5 fabrication comprenant les instructions qui implémentent les fonctions/actions spécifiées dans des organigrammes, des diagrammes séquentiels, et/ou des diagrammes blocs. Les instructions de programme informatique peuvent être fournies à un ou plusieurs processeurs d'un ordinateur à usage général, un ordinateur dédié ou un autre appareil programmable de traitement de données pour produire une machine, de sorte que les instructions, lorsqu'elles sont exécutées à l'aide du ou 10 de plusieurs processeurs, accomplissent une série de calculs pour mettre en oeuvre les fonctions, actions, et/ou les actions spécifiées dans les organigrammes, diagrammes séquentiels et/ou diagrammes blocs. [00721 Dans certains autres modes de réalisation, les fonctions et/ou les actions spécifiées dans les organigrammes, diagrammes séquentiels, et/ou des diagrammes blocs peuvent être 15 commandées à nouveau, traitées en série et/ou traitées en même temps sans s'éloigner de la portée des modes de réalisation de l'invention. De plus, un quelconque des organigrammes, diagrammes séquentiels, et/ou diagrammes bloc peut inclure plus ou moins de blocs que ceux qui sont illustrés conformément à des modes de réalisation de l'invention [0073] La terminologie utilisée dans les présentes a pour but de décrire uniquement des modes 20 de réalisation particuliers et n'est pas destinée à limiter les modes de réalisation de l'invention. On comprendra par ailleurs que les termes « comprend », et/ou « comprenant » lorsqu'ils sont utilisés dans cette spécification, précisent la présence de caractéristiques énoncées, de nombres entiers, d'étapes, d'opérations, d'éléments, et/ou de composants, mais n'excluent pas la présence ou l'ajout d'une ou de plusieurs caractéristiques, nombres entiers, étapes, éléments, composants 25 et/ou groupes en cela. De plus, dans la mesure où les termes « inclut », « ayant », « a », « avec », « compris de » ou des variantes de ceux-ci, sont utilisés, soit dans la description détaillée, ou les revendications, ces termes sont censés être inclusifs de façon semblable au terme « comprenant ». [00741 Bien que l'invention soit illustrée par une description de divers modes de réalisation et bien que ces modes de réalisation soient décrits de façon très détaillée, le demandeur n'a pas 30 l'intention de restreindre ou de limiter, de quelque façon que ce soit, l'étendue des revendications des présentes à ces détails. Des avantages supplémentaires et des modifications possibles 26 apparaîtront aisément aux hommes de métier. L'invention sous ses aspects plus larges n'est donc pas limitée aux détails spécifiques, aux appareils représentatifs et aux procédés, ainsi qu'aux exemples illustratifs montrés et décrits. Par conséquent, il est possible de s'éloigner de ces détails sans s'éloigner du concept général inventif de l'appliquant. REVENDICATIONS1. Un système de synchronisation d'afficheurs comprenant : un premier dispositif avec un premier afficheur et un premier identifiant qui identifie le premier dispositif de façon unique ; Un processeur ; et un support de stockage lisible par ordinateur comprenant des instructions qui, lors de l'exécution par le dispositif informatique, amènent le système à mettre en oeuvre des opérations, les opérations comprenant : l'obtention, par le premier dispositif; d'un deuxième identifiant représenté sur un deuxième afficheur d'un deuxième dispositif, le deuxième identifiant identifie de façon unique le deuxième dispositif; la création d'une association entre le premier identifiant et le deuxième identifiant dans une base de données en temps réel ; et la soumission de la donnée d'état d'une interface utilisateur (UI) à la base de données en 15 temps réel via un premier réseau, créant ainsi une donnée d'état de l'interface utilisateur (UI) de réplique sur la base de données en temps réel, la donnée d'état UI définissant un premier état de l'interface utilisateur (UI) d'une interface utilisateur (UI) présentée sur le premier afficheur, dans lequel la base de données en temps réel est configurée pour pousser la donnée d'état UI vers un deuxième dispositif via un deuxième réseau sur la base de l'association entre le 20 premier identifiant et le deuxième identifiant, amenant ainsi le deuxième dispositif à synchroniser une UI correspondante présentée sur le deuxième afficheur avec l'UI présentée sur le premier afficheur, le deuxième réseau étant distinct du premier réseau. 2. Le système de la revendication I, dans lequel les instructions, lors de l'exécution, 25 amènent par ailleurs le système à mettre en oeuvre des opérations supplémentaires, les opérations supplémentaires comprenant : la synchronisation de la donnée d'état UI avec la donnée d'état de l'interface utilisateur (UI) de réplique en transmettant le changement de la donnée d'état à la base de données en temps réel, le changement de la donnée d'état défmissant une différence entre le premier état UI et un 30 deuxième état UI, de l'UT, 28 dans lequel la base de données en temps réel est configurée pour pousser le changement de la donnée d'état vers le deuxième dispositif via le deuxième réseau sur la base de l'association entre le premier identifiant et le deuxième identifiant, amenant ainsi le deuxième dispositif à synchroniser l'UI correspondante présentée sur le deuxième afficheur avec l'UI présentée sur le 5 premier afficheur. 3. Le système de la revendication 2, dans lequel le changement de la donnée d'état inclut au moins un sous-ensemble de contenu qu'un processus en cours d'exécution dans un environnement d'exécution du premier dispositif reçoit d'un composant du serveur d'une 10 application associée à l'Ul en réponse à une requête de contenu que le processus envoie au composant du serveur en utilisant l'UT. 4. Le système de la revendication 2, dans lequel l'Ul est actualisée à partir du premier état de l'UI vers le deuxième état de l'Ul sur la base du contenu qu'un processus en cours d'exécution dans un environnement d'exécution du premier dispositif reçoit d'un composant du serveur d'une application associée à l'UT en réponse à une requête pour le contenu que le processus envoie au composant du serveur en utilisant l'UL 5. Le système d'une quelconque des revendications 1 à 4, dans lequel le premier dispositif électronique inclut un capteur d'image, et le deuxième identifiant est obtenu à partir d'un symbole de code présenté sur le deuxième afficheur en utilisant le capteur d'image. 6. Le système d'une quelconque des revendications 1 à 5, dans lequel le premier dispositif et le deuxième dispositif possèdent des facteurs de forme distincts ou des systèmes d'exploitation 25 disparates. 7. Le système d'une quelconque des revendications 1 à 6, dans lequel les instructions, lors de l'exécution, amènent par ailleurs le système à mettre en oeuvre des opérations supplémentaires, les opérations supplémentaires comprenant : 30 la réception d'une notification de poussée de la base de données en temps réel par le premier dispositif via le premier réseau lorsque la donnée d'état UI de réplique est modifiée par 29 le deuxième dispositif par l'intermédiaire d'un processus de synchronisation basé sur l'association entre le premier identifiant et le deuxième identifiant. 8. Le système de la revendication 7, dans lequel les notifications de poussée provenant de la 5 base de données en temps réel sont reçues par un troisième dispositif via un troisième réseau basé sur une association de la base de données en temps réel entre le premier identifiant, le deuxième identifiant et un troisième identifiant qui identifie de façon unique le troisième dispositif. 10 9. Le système d'une quelconque des revendications 1 à 6, dans lequel les instructions, lors de l'exécution, amènent par ailleurs le système à mettre en oeuvre des opérations supplémentaires les opérations supplémentaires comprenant : la mise à jour de la donnée d'état de l'UI stockée sur le premier dispositif en réponse à la réception des notifications de poussée provenant de la base de données en temps réel lorsque la 15 donnée d'état de l'UI de réplique est modifiée par un troisième dispositif par l'intermédiaire d'un processus de synchronisation, dans lequel le troisième dispositif est couplé en mode communication à la base de données en temps réel via un troisième réseau qui est distinct du premier réseau et du deuxième réseau. 20 10. Le système d'une quelconque des revendications 1 à 9, dans lequel l'environnement d'exécution est un navigateur Web ou une application mobile qui inclut un composant client d'une application associée à l'UI. 11. Le système d'une quelconque des revendications 3 à 10, dans lequel la requête de contenu est envoyée au composant du serveur de l'application par un composant client de l'application récupéré d'un serveur hébergeant le composant du serveur de l'application. 12. Le système d'une quelconque des revendications 1 à 11, dans lequel un ou plusieurs du premier identifiant et du deuxième identifiant sont une adresse universelle (URL), une petite 30 URL, une adresse courriel, une valeur numérique, une valeur alphabétique ou une valeur alphanumérique, 13. Le système d'une quelconque des revendications 3 à 12, dans lequel le processus en 5 cours d'exécution dans l'environnement d'exécution du premier dispositif est dirigé vers le composant du serveur de l'application lors de la réception de l'identifiant. 14. Le système de la revendication 1 ou de la revendication 2, dans lequel l'UI présentée sur le premier afficheur inclut un contenu reçu d'un composant du serveur d'une application 10 associée à l'UT et dans lequel la synchronisation de l'UI correspondante présentée sur le deuxième afficheur avec l'UI présentée sur le premier afficheur permet au deuxième dispositif de remplir l'UI correspondante avec les contenus sans soumettre une requête au composant du serveur pour le contenu. 15 15. Le système d'une quelconque des revendications 1 à 6, dans lequel les instructions, lors de l'exécution, amènent par ailleurs le système à mettre en oeuvre des opérations supplémentaires, les opérations supplémentaires comprenant : la mise à jour de la donnée d'état UI stockée sur le premier dispositif en réponse à la réception de notifications de poussée provenant de la base de données en temps réel lorsque la 20 donnée d'état Ul de réplique est modifiée par le deuxième dispositif via un processus de synchronisation, le deuxième dispositif modifiant la donnée d'état UI de réplique en utilisant du contenu reçu par le deuxième dispositif d'un composant du serveur d'une application associée à l'UI en réponse à une requête pour du contenu envoyée au composant du serveur en utilisant l'UI correspondante. 25