Brevet FR2922662A1 — publié le 20090424

SYSTEME ET PROCEDE D'ECHANGE D'INFORMATIONS DANS UN TERMINAL MULTIMEDIAS La présente invention concerne les échanges de données dans des terminaux multimédias entre des applications dites natives, locales et distantes. De manière générale, les terminaux multimédias comportent un certain nombre d'applications dites natives qui sont liées à l'exploitation des ressources du terminal. Par exemple, dans le cas d'un terminal de téléphonie, des applications natives sont les applications de connexion réseau, d'émission et de réception des appels ainsi que des applications de contrôle de l'écran ou de contrôle d'une interface utilisateur, telle qu'un clavier ou un écran tactile. Par ailleurs, une fonctionnalité courante dans le domaine de l'Internet est l'utilisation d'applications exécutées au travers d'un logiciel de navigation Internet. Les applications de type � plug-in � JavaScript sont des exemples d'applications exécutées au travers d'un logiciel de navigation. Ces applications sont soit des applications locales soit des applications distantes. Les applications locales sont téléchargées puis stockées localement dans le terminal. Les applications distantes sont stockées sur un serveur distant et exécutées uniquement dans la page Internet correspondante lors de son téléchargement. Il convient de noter que même si ces applications sont appelées � distantes �, leur exécution est réalisée au niveau du terminal. Elles se distinguent toutefois des applications locales en ce qu'elles ne peuvent pas être exécutées en l'absence d'une connexion avec un équipement distant, contrairement aux applications locales qui peuvent être exécutées � hors connexion �. Dans le domaine des terminaux multimédias, on considère que les applications natives, locales et distantes ont des contextes d'exécution différents. Pour des raisons de sécurité, les terminaux incorporent des barrières logiques réduisant la perméabilité entre des applications dans des contextes d'exécution différents. Ainsi, un événement correspondant à la mise en oeuvre d'une application dans un contexte d'exécution particulier n'est pas relayé dans les autres contextes d'exécution. Par exemple, une application distante ne peut pas contrôler le réglage de l'intensité de l'écran, ni déclencher l'émission d'appels et une application locale ne peut pas communiquer avec une application distante. Toutefois, un nombre croissant de terminaux permet aujourd'hui l'accès à des ressources de type Internet et il est intéressant de pouvoir exploiter facilement et directement des données ou informations liées aux applications distantes au niveau des applications natives ou locales et réciproquement. En effet, aujourd'hui, un utilisateur ne peut pas stocker des numéros de téléphone sur un répertoire Internet et accéder à ce répertoire Internet grâce à l'exécution d'une application locale ou bien encore exécuter l'appel à l'aide d'une application native. Un avantage de la présente invention est de permettre une plus grande perméabilité et une meilleure intégration entre les applications natives, locales et distantes. A cet effet, un des objets de la présente invention est un système d'échange de données pour un terminal multimédias, ledit terminal comprenant des applications natives exécutables directement par le terminal et des applications locales ainsi que distantes exécutables au travers d'un logiciel de navigation Internet, caractérisé en ce que le système comprend un module de détection du fonctionnement d'applications exécutables au travers d'un logiciel de navigation Internet, une première interface d'échange de données entre les applications locales et les applications natives et une seconde interface d'échange de données entre les appllications natives et les applications locales, ledit module de détection et lesdites première et seconde interfaces étant adaptés pour échanger des données. Ainsi, les transferts de données entre le module de détection et les deux 30 interfaces permettent d'exploiter des informations d'un domaine d'exécution à l'autre. Avantageusement, le module de détection est adapté pour relayer des informations relatives au fonctionnement d'applications exécutables au travers d'un logiciel de navigation Internet vers ladite première interface, ladite première interface est adaptée pour relayer des informations relatives au fonctionnement d'applications distantes vers Iadil:e seconde interface et des informations relatives au fonctionnement d'applications locales vers des applications natives et ladite seconde interface est adaptée pour relayer des informations provenant de ladite première interface vers des applications locales. Ainsi, les informations résultant de l'exécution de l'application distante 10 sont transformées en des informations résultant de l'exécution de l'application locale tout en assurant une bonne synchronisation entre les applications locales et natives. Dans un mode de réalisation particulier, lesdites première et seconde interfaces sont adaptées pour convertir les informations entre un premier 15 langage informatique utilisé par lesdites applications natives et un second langage informatique utilisé par lesdites applications exécutables au travers d'un logiciel Internet. Dans un mode de réalisation particulier, le système comprend une application native de notification adaptée pour interroger périodiquement un 20 serveur distant et transmettre les informations obtenues à une application native et/ou à une application locale via ladite seconde interface d'échange de données. Ainsi, des informations issues d'un serveur distant peuvent être utilisées au niveau d'applications natives et/ou locales du terminal. 25 Dans encore un autre mode de réalisation, le système comprend une application native de notification adaptée pour transmettre périodiquement des informations relatives au fonctionnement des applications natives et/ou locales à un serveur distant et au moins une application distante du terminal est adaptée pour obtenir ces informations du serveur distant. 30 Un tel mode de réalisation permet d'exploiter dans une application distante des informations issues d'applications locales et/ou natives, c'est-à-dire de transformer des informations issues des applications locales et/ou natives en des informations issues des applications distantes. Par ailleurs, un autre objet de l'invention est un procédé d'échange de données dans un terminal multimédias entre des applications natives exécutables directement par le terminal et des applications locales ainsi que distantes exécutables au travers d'un logiciel de navigation Internet, caractérisé en ce qu'il comprend une transmission d'informations relatives au fonctionnement d'une application distante vers une première interface d'échange de données entre les applications locales et les applications natives, une transmission de ces informations vers une seconde interface d'échange de données entre les applications natives et les applications locales, une transmission de ces informations par ladite seconde interface vers une application locale, une exécution de l'application locale à l'aide desdites informations, une transmission d'informations relatives au fonctionnement de ladite application locale vers ladite première interface et une transmission desdites informations vers une application native par ladite première interface. Dans une variante, le procédé comprend en outre une détection du fonctionnement d'applications exécutables au travers d'un logiciel de navigation Internet en vue de la transmission vers ladite première interface d'informations relatives au fonctionnement d'applications distantes et à l'exécution d'applications locales. Dans encore une autre variante du procédé, lesdites transmissions d'informations entre les applications natives et les applications exécutables au travers d'un logiciel de navigation comportent des conversions entre un premier langage informatique utilisé par les applications natives et un second langage informatique utilisé par les applications exécutables au travers d'un logiciel de navigation. Dans une autre variante, le procédé comporte en outre une émission, par une application native, d'une requête d'interrogation d'un serveur distant, une obtention d'informations en retour, et une transmission de ces informations à une application native et/ou à une application locale par le biais de la seconde interface. Enfin, dans une autre variiante, le procédé comporte en outre une transmission, vers un serveur distant et par une application native, d'informations relatives au fonctionnement des applications natives et/ou locales et une obtention de ces informations par une application distante. L'invention a également pour objet un programme d'ordinateur comprenant des instructions de codes lesquelles, lorsqu'elles sont exécutées par un microprocesseur ou un microcontrôleur d'un terminal multimédias, entraînent un échange de données entre des applications locales ainsi que distantes et des applications natives du terminal et un échange de données entre des applications natives du terminal et des applications locales ainsi que distantes selon le procédé décrit précédemment. D'autres particularités et avantages de la présente invention apparaîtront 15 dans la description faite ci-après à titre non limitatif et en référence aux dessins annexés dans lesquels : la figure 1 est un schéma cle l'architecture logicielle de l'invention ; et la figure 2 est un organigramme d'un mode d'utilisation particulier de l'invention. 20 La figure 1 représente l'architecture logicielle d'un terminal selon l'invention. Cette architecture logiciielle se divise en trois parties avec des applications natives 2, des applications locales 4 et des applications distantes 6. Les applications locales 4 et distantes 6 sont exécutées dans un logiciel de navigation Internet 8. 25 Les applications natives, également appelées binaires, sont exécutables directement par le terminal multimédias. On entend par là que ces applications correspondent à des codes sources stockés dans des mémoires du terminal, et qu'elles sont exécutées directement par le microprocesseur. Dans l'exemple, ces applications fonctionnent selon le langage informatique appelé C++. 30 Dans l'exemple, les applications natives sont regroupées en quatre catégories respectivement 2A, 2B, 2C et 2D. La catégorie 2A correspond aux applications de téléphonie telles que par exemple la gestion des appels (Cali manager) et la commande des appels (Click to dial). La catégorie 2B correspond aux applications multimédias et notamment aux applications d'écran de veille ("screensaver"), de gestion audio vidéo locale (AN local) et de gestion audio vidéo en flux passant (AN streaming). La catégorie 2C correspond aux applications relatives à la gestion du terminal et notamment aux mises à jour de logiciels, au démarrage rapide et aux connexions au réseau sans fil. La catégorie 2D correspond aux applications liées aux échanges de notifications avec des serveurs distants tels que des serveurs de messagerie. Ces catégories ainsi que les applications listées ci-dessus sont classiques dans les terminaux multimédias existants. Par ailleurs, les applications locales 6 comprennent des applications de type JavaScript permettant, dans l'exemple, l'exécution d'écrans de veille 4A, l'exécution de fonctions audio vidéo 4B, la réception 4C de flux de radio ou de télévision selon le protocole IP, l'exécution de fonctions de téléphonie 4D ou encore l'exécution de fonctions de connexion à des réseaux sans fil 4E. En outre, l'architecture logicielle comprend les applications distantes 6A et 6B permettant respectivement, au travers d'une page Internet, de composer un numéro de téléphone et d'accéder à une messagerie. Dans le mode de réalisation décrit, l'architecture logicielle comprend en outre deux interfaces 10A et 10B. L'interface 10A permet une communication dite descendante entre les applications exécutées dans le navigateur Internet 8 et les applications exécutées dans le terminal. Plus précisément, dans le mode de réalisation décrit, cette interface 10A permet de relayer des informations entre les applications locales 4 et les applications natives 2. Dans l'exemple, cette interface 10A est adaptée pour convertir des messages de type Javascript en des messages en langage C++. L'interface 10B permet une communication dite montante entre les applications natives 2 et les applications locales 4. Dans l'exemple, cette interface convertit les informations émises en langage C++ en langage Javascript. Par ailleurs, les interfaces 10A et 10B sont adaptées pour communiquer directement entre elles. Notamment, l'interface 10A est adaptée pour relayer des informations émanant des applications distantes vers l'interface 10B. Les interfaces 10A et 10B communiquent également avec les applications natives 2 par l'utilisation d'un bus logiciel 12. Dans l'exemple, ce bus comprend un module serveur 14 au niveau des applications natives et un module client 16 dans chaque interface. L'utilisation d'une communication directe entre les interfaces 10A et 10B permet d'accroître les performances et d'obtenir des échanges d'informations 10 plus rapides, notamment pour les informations vidéos. Enfin, l'architecture logicielle comprend un module 18 de détection des événements résultant de la mise en oeuvre des applications exécutables au travers d'un logiciel de navigation Internet. Ce module de détection 18 relaye des informations relatives au fonctionnement des applications locales 4 et distantes 6 15 vers l'interface 10A. En référence à la figure 2, on va maintenant décrire un exemple de fonctionnement dans le cadre d'un accès à un répertoire distant contenant des numéros de téléphone. À l'aide de son terminal et des applications Internet classiques, un 20 utilisateur se connecte à un serveur distant et accède à une page stockée sur Internet. Cette page est téléchargée lors d'une étape 20. La page contient une application distante qui permet l'accès à la base de données localisée sur le serveur distant comportant les numéros de téléphone. Cette page comporte 25 également l'application distante 6A visant à l'émission d'un appel. Au cours d'une étape 22, l'utilisateur sélectionne un contact dans la fenêtre d'affichage du carnet d'adresses et déclenche l'appel, par exemple en validant une icône correspondante. La commande JavaScript contenue dans l'icône d'appel est exécutée par le logiciel de navigation. 30 L'exécution de cette fonction 6A dans le navigateur est détectée par le module 18 lors d'une étape 24. Lors d'une étape 26, les informations relatives à l'événement détecté sont transmises à l'interface 10A qui les relaye à l'interface 10B. Ainsi, le message émis par l'application distante 6A est récupéré de même que les paramètres associés, dont le numéro de téléphone. Ensuite, l'interface 10B commande l'application locale vidéo 4B dans la page Internet lors d'une étape 28. Plus précisément, une commande est émise par l'interface 10B et contient une instruction javascript qui est exécutée par l'application locale vidéo 4B. Ceci permet d'afficher une information de retour vers l'utilisateur signifiant que l'appel est en cours lors d'une étape 30. L'exécution de cette commande javascript par l'application locale 4B est détectée à nouveau par le module 18 lors d'une étape 32. Cette information est transmise à l'interface 10A lors d'une étape 34 puis relayée par l'interface 10A vers les applications natives lors d'une étape 36. La transmission des informations vers l'application native 2A entraîne la réalisation d'un appel lors d'une étape 38. Le numéro de téléphone à composer a 15 été transmis avec le message en tant que paramètre. Ainsi, grâce à la correspondance entre les commandes émises par les interfaces, les informations d'un domaine d'exécution sont utilisées dans un autre. Plus précisément, les informations issues du fonctionnement de l'application distante sont transformées en des informations issues du 20 fonctionnement d'une application locale afin d'être relayées au niveau des applications natives. Par ailleurs, dans l'exemple décrit en référence à la figure 1, l'architecture logicielle comprend également une application native de notification 2D. Cette application gère des échanges d'informations entre un ou plusieurs serveurs 25 distants et le terminal. Par exemple, cette application de notification interroge périodiquement un serveur distant, tel qu'un serveur cle messagerie vocale ou de messagerie électronique. L'application reçoit en retour une information de statut qui est remontée vers l'utilisateur. A cet effet, l'information de statut est transmise à 30 l'interface 10B. L'information est ensuite transmise à une application locale, telle que par exemple une application d'affichage d'un indicateur de statut de la messagerie. Alternativement, cette information est directement transmise à une autre application native. En outre, l'application de notification 2D transmet également des informations relatives au fonctionnement des applications locales et/ou natives à un serveur distant. Ce sont par exemple des informations de journal indiquant les appels émis, les appels reçus ou encore les appels manqués. Ces informations issues d'applications natives ou locales sont ensuite accessibles pour les applications distantes 6. Ainsi, des informations issues d'applications natives et/ou locales sont transformées en des informations issues d'applications distantes. Ces informations redeviennent utilisables au niveau du terminal par le biais du mécanisme d'échange de données décrit en référence à la figure 2. Bien entendu, d'autre particularités et variantes peuvent être envisagées. Notamment, d'autres langages informatiques que les langages C++ et Javascript peuvent être utilisés. En outre, certains modules logiciels peuvent être combinés pour remplir les mêmes fonctions au sein d'un même programme informatique. Notamment, les interfaces pour les communications montantes et descendantes peuvent être combinées en un seul logiciel de même que l'interface descendante et le module de détection. Dans un autre mode de réalisation, l'exécution d'une application locale déclenche automatiquement la transmission d'informations vers une application native via l'interface 10A mais sans nécessiter l'utilisation du module de détection. Par exemple, le message transmis vers l'application locale par l'interface montante comprend une instruction déclenchant cette transmission. Dans une autre variante encore, les informations converties par les interfaces 10A et 10B déclenchent simultanément l'émission de messages vers les applications locales et natives. Un tel mode de réalisation est particulièrement utile lorsque les applications locales et natives peuvent être mises en oeuvre séparément. Il est également possible d'utiliser le bus de communication pour les échanges entre les interfaces. REVENDICATIONS 1. Système d'échange de données pour un terminal multimédias, ledit terminal comprenant des applications natives (2) exécutables directement par le terminal et des applications locales (4) ainsi que distantes (6) exécutables au travers d'un logiciel de navigation Internet (8), caractérisé en ce que le système comprend un module de détection (18) du fonctionnement d'applications (4, 6) exécutables au travers d'un logiciel de navigation Internet, une première interface (10A) d'échange de données entre les applications locales et les applications natives, et une seconde interface (10B) d'échange de données entre les applications natives et les applications locales, ledit module de détection et lesdites première et seconde interfaces étant adaptés pour échanger des données. 2. Système selon la revendication 1, caractérisé en ce que le module de détection (18) est adapté pour relayer des informations relatives au fonctionnement d'applications exécutables au travers d'un logiciel de navigation Internet vers ladite première interface (10A), ladite première interface est adaptée pour relayer des informations relatives au fonctionnement d'applications distantes (6) vers ladite seconde interface (10B) et des informations relatives au fonctionnement d'applications locales (4) vers des applications natives (2) et ladite seconde interface est adaptée pour relayer des informations provenant de ladite première interface (10A) vers des applications locales (2). 3. Système selon l'une quelconque des revendications 1 et 2, caractérisé en ce que lesdites première et seconcle interfaces (10A, 10B) sont adaptées pour convertir les informations entre un premier langage informatique (C++) utilisé par lesdites applications natives (2) et un second langage informatique (Javascript) utilisé par lesdites applications (4, 6) exécutables au travers d'un logiciel Internet. 4. Système selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comprend une application native de notification (2D) adaptée pour interroger périodiquement un serveur distant et transmettre les informations obtenues à une application native (2) et/ou à une application locale (4) via ladite seconde interface (10B) d'échange de données. 5. Système selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il comprend une application native de notification (2D) adaptée pour transmettre périodiquement des informations relatives au fonctionnement des applications natives (2) et/ou locales (4) à un serveur distant et en ce que au moins une application distante (6) du terminal est adaptée pour obtenir ces informations du serveur distant. 6. Procédé d'échange de données dans un terminal multimédias entre des applications natives (2) exécutables directement par le terminal et des applications locales (4) ainsi que distantes (6) exécutables au travers d'un logiciel de navigation Internet (8), caractérisé en ce qu'il comprend : une transmission (26) d'informations relatives au fonctionnement d'une application distante vers une première interface d'échange de données (10A) entre les applications locales et les applications natives ; - une transmission (26) de ces informations vers une seconde interface d'échange de données (10B) entre les applications natives et les applications locales ; - une transmission (28) de ces informations par ladite seconde interface vers une application locale ; une exécution (30) de l'application locale à l'aide desdites informations ; - une transmission (34) d'informations relatives au fonctionnement de ladite application locale vers ladite première interface; et une transmission (36) desdites informations vers une application native par ladite première interface. 7. Procédé selon la revendication 6, caractérisé en ce qu'il comprend en outre une détection (24, 32) du fonctionnement d'applications exécutables au travers d'un logiciel de navigation Internet en vue de la transmission vers ladite première interface d'informations relatives au fonctionnement d'applications distantes et à l'exécution d'applications locales. 8. Procédé selon l'une quelconque des revendications 6 et 7, caractérisé en ce que lesdites transmissions d'informations entre les applications natives et les applications exécutables au travers d'un logiciel de navigation comportent des conversions entre un premier langage informatique utilisé par les applications natives et un second langage informatique utilisé par les applications exécutables au travers d'un logiciel de navigation. 9. Procédé selon l'une quelconque des revendications 6 à 8, caractérisé en ce qu'il comporte en outre : une émission, par une application native (2D), d'une requête d'interrogation d'un serveur distant ; une obtention d'informations en retour ; et une transmission de ces informations à une application native (2) et/ou à une application locale (4) par la biais de ladite seconde interface (10B). 10. Procédé selon l'une quelconque des revendications 6 à 9, caractérisé en ce qu'il comporte en outre : une transmission, vers un serveur distant et par une application native (2D), d'informations relatives au fonctionnement des applications natives et/ou locales ; et une obtention de ces informations par une application distante (6). 11. Programme d'ordinateur comprenant des instructions de codes lesquelles, lorsqu'elles sont exécutées par un microprocesseur ou unmicrocontrôleur d'un terminal multimédias, entraînent un échange de données entre des applications locales (4) ainsi que distantes (6) et des applications natives (2) du terminal et un échange de données entre des applications natives (2) du terminal et des applications locales (4) ainsi que distantes (6) selon le procédé de l'une quelconque des revendications 6 à 10.