FR2950716A1 - Method for communication between independent web applications executed in respective web browsers on e.g. terminals, involves executing operation considering value of parameter that is generated by execution of service, by application - Google Patents

Method for communication between independent web applications executed in respective web browsers on e.g. terminals, involves executing operation considering value of parameter that is generated by execution of service, by application Download PDF

Info

Publication number
FR2950716A1
FR2950716A1 FR0956654A FR0956654A FR2950716A1 FR 2950716 A1 FR2950716 A1 FR 2950716A1 FR 0956654 A FR0956654 A FR 0956654A FR 0956654 A FR0956654 A FR 0956654A FR 2950716 A1 FR2950716 A1 FR 2950716A1
Authority
FR
France
Prior art keywords
application
communication
service
widget
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR0956654A
Other languages
French (fr)
Inventor
Emmanuel Bertin
Nassim Laga
Den Bossche Julien Van
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Priority to FR0956654A priority Critical patent/FR2950716A1/en
Publication of FR2950716A1 publication Critical patent/FR2950716A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing

Abstract

The method involves activating a single communication channel between two web browsers, and carrying out dynamic subscription of one of the applications to a service offered by the other application via the communication channel. An operation e.g. process, considering a value of a parameter e.g. event, that is generated by an execution of the service, is executed by the former application, where the value is transmitted by the latter application to the former application via the communication channel. Independent claims are also included for the following: (1) a system for communication between applications executed in respective web browsers, comprising a communication channel activating unit (2) a computer program product comprising instructions for performing a method for communication between applications executed in respective web browsers.

Description

Procédé de communication entre applications exécutées dans des navigateurs distincts La présente invention concerne un procédé permettant de faire dialoguer et/ou interopérer des applications Web indépendantes, exécutées simultanément dans un 5 premier et au moins un deuxième navigateur Web. L'invention permet ainsi à une première application Web exécutée dans un premier navigateur Web, d'exécuter certaines opérations en réaction à des services mis en oeuvre par au moins une deuxième application exécuté dans un deuxième navigateur. 10 Pour être exécutées, de telles applications web sont généralement hébergées dans une page web développée d'une façon modulaire à partir d'une pluralité de modules distincts et indépendants plus communément appelés "portlets", "widgets" ou "gadgets". De tels modules ou portlets, aptes à servir de conteneur dans une page Web 15 pour l'exécution et/ou l'affichage d'applications Web, sont notamment utilisés dans des développements de services ou d'applications du type Web 2.0, par exemple en s'appuyant sur les techniques AJAX (pour "Asynchronous JavaScript And )(MU - ou " XML et Javascript asynchrones "). A titre informatif, AJAX désigne une méthode informatique de 20 développement d'applications Web. Il ne s'agit aucunement d'une technologie en elle-même, mais simplement d'un terme qui évoque l'utilisation conjointe d'un ensemble de technologies couramment utilisées sur le web, à savoir notamment : ^ le langage HTML (pour "HyperText Markup Language"), ou le langage XHTML (pour "Extensible HyperText Markup Language") pour ce qui 25 concerne la définition de la structure sémantique des informations contenues dans une page web ; ^ le modèle DOM (pour "Document Object Model" en anglais "Modèle objet de document" en français), et JavaScript pour afficher et interagir dynamiquement avec l'information présentée. DOM est une recommandation du W3C qui 30 permet notamment de décrire une interface indépendante de tout langage de programmation et de toute plate-forme et qui pet met à des programmes informatiques et à des scripts d'accéder ou de mettre à jour le contenu, la ^ structure ou le style de documents ; ^ le langage JavaScript (marque déposée), dont l'objet XMLHttpRequest qui caractérise le coté asynchrone d'Ajax, notamment et non exclusivement, pour ce qui concerne l'échange et la manipulation, des données avec un serveur Web. The present invention relates to a method for communicating and / or interoperating independent web applications, executed simultaneously in a first and at least a second web browser. The invention thus allows a first Web application executed in a first Web browser, to perform certain operations in response to services implemented by at least a second application running in a second browser. To be executed, such web applications are generally hosted in a web page developed in a modular fashion from a plurality of separate and independent modules more commonly referred to as "portlets", "widgets" or "gadgets". Such modules or portlets, able to serve as a container in a web page 15 for the execution and / or display of Web applications, are used in particular in developments of services or applications of the Web 2.0 type, for example based on AJAX techniques (for Asynchronous JavaScript And) (UM - or "asynchronous XML and Javascript") For information, AJAX refers to a computer method of developing web applications. a technology in itself, but simply a term that evokes the joint use of a set of technologies commonly used on the web, namely: ^ the HTML (for "HyperText Markup Language"), or the Extensible HyperText Markup Language (XHTML) for the definition of the semantic structure of information contained in a web page; the DOM model (for "Document Object Model") "in french is), and JavaScript to dynamically display and interact with the information presented. DOM is a W3C recommendation which allows in particular to describe an interface independent of any programming language and platform and which allows computer programs and scripts to access or update the ^ structure or style of documents; ^ the JavaScript (registered trademark) language, including the XMLHttpRequest object that characterizes the asynchronous Ajax side, including, but not limited to, data exchange and manipulation with a Web server.

Cet objet permet notamment d'obtenir des données au format XML, mais aussi au format HTML, ou plus simplement encore au format texte, par l'invocation de simples requêtes de type HTTP (pour "Hypertext Transfer Protocol" en anglais, ou "protocole de transfert hypertexte" - protocole de communication client-serveur développé pour le World Wide Web). This object makes it possible in particular to obtain data in XML format, but also in HTML format, or even more simply in text format, by the invocation of simple requests of the HTTP type (for "Hypertext Transfer Protocol" in English, or "protocol hypertext transfer "- a client-server communication protocol developed for the World Wide Web).

Or, si de telles portlets permettent de faire cohabiter plusieurs composants applicatifs (encore appelés dans la suite et pour raison de simplification, applications) au sein d'une même page Web, et ceci de façon personnalisable (en termes de graphisme, d'agencement, etc.), elles présentent cependant pour principal inconvénient de ne pas permettre une connexion et/ou une interopérabilité entre plusieurs applications Web hébergées chacune dans des portlets exécutées dans des navigateurs distincts, de sorte qu'il n'est pas possible, par exemple, de faire réagir dynamiquement une première application exécutée dans un premier navigateur à l'exécution d'un service mis en oeuvre par une deuxième application (ou "portlets") exécutée dans un deuxième navigateur. However, if such portlets make it possible to combine several application components (also called hereinafter and for simplification purposes, applications) within the same Web page, and this in a customizable way (in terms of graphics, layout , etc.), however, they have the main disadvantage of not allowing a connection and / or interoperability between several Web applications each hosted in portlets executed in separate browsers, so that it is not possible, for example dynamically reacting a first application executed in a first browser to the execution of a service implemented by a second application (or "portlets") executed in a second browser.

Par service, le lecteur comprendra toute fonction applicative susceptible de générer en sortie au moins une valeur de paramètre (une valeur d'évènement ou de données, par exemple et de façon non limitative), une telle valeur de paramètre étant susceptible de servir de paramètre d'entrée pour l'exécution d'une opération (un autre service, un processus, etc.) mise en oeuvre et exécutée par une autre application hébergée dans une même, ou une autre page web (par exemple, une page d'un portail web). Pour tenter de pallier cet inconvénient, les inventeurs ont proposé dans la demande de brevet WO2008152296 un procédé de communication inter-portlets basé sur une action de "glisser/ déposer", ou "drag and drop" en anglais, lequel permet à un utilisateur de sélectionner une donnée générée en sortie d'un premier service applicatif exécuté dans une première portlet, avant de faire glisser cette donnée sélectionnée vers un champ d'un deuxième service applicatif exécuté dans une autre portlet, pour déclencher l'exécution de ce deuxième service, en tenant compte de la donnée sélectionnée ayant fait l'objet de l'action de "glisser/ déposer". Un inconvénient de cette dernière technique est lié au fait qu'elle limite l'interopérabilité à des applications Web exécutées uniquement dans différentes portlets hébergées d'une même page HTML d'un même navigateur Web. Or, de nombreux contextes d'utilisation, le plus souvent liés au fait qu'un même utilisateur possède plusieurs terminaux de différentes catégories (téléphone mobile, assistant personnel numérique, terminal PC, télévision numérique, etc.), nécessiteraient d'étendre l'interopérabilité à des applications Web qui seraient exécutées dans des navigateurs Web distincts, ces derniers pouvant également être exécutés soit sur un même terminal (deux instances distinctes d'un navigateur), soit sur des terminaux distincts appartenant à un même utilisateur (terminal PC, terminal mobile, terminal TV, etc.), voir à une communauté d'utilisateurs. A cet effet, l'invention concerne un procédé de communication entre une première application et au moins une deuxième application, lesdites première et deuxième applications étant respectivement exécutées dans un premier et deuxième navigateur Internet. Selon l'invention, un tel procédé comprend : ^ une étape d'activation d'un canal de communication unique entre lesdits premier 20 et deuxième navigateurs ; ^ une étape de souscription dynamique de ladite première application à au moins un service de ladite au moins une deuxième application, par l'intermédiaire dudit canal de communication ; ^ une étape d'exécution par ladite première application, d'au moins une opération 25 tenant compte d'une valeur d'au moins un paramètre généré par l'exécution dudit au moins un service, ladite valeur étant transmise par ladite deuxième application à ladite première application par l'intermédiaire dudit canal de communication. Un tel procédé permet donc avantageusement de favoriser l'interopérabilité 30 dynamique et la communication/ l'échange d'informations entre applications Web (portlets) hébergées respectivement dans des pages Web distinctes, affichées par différents navigateurs exécutés respectivement, soit sur un même terminal, soit sur des terminaux distincts et/ ou indépendants. Une telle approche permet ainsi d'étendre le service offert à l'usager en lui donnant la possibilité de combiner l'exécution de différentes applications Web hétérogènes, ou tout le moins développées de façon indépendantes les unes des autres. By service, the reader will include any application function capable of outputting at least one parameter value (an event or data value, for example and without limitation), such a parameter value being able to serve as a parameter input for executing an operation (another service, a process, etc.) implemented and executed by another application hosted in the same or another web page (for example, a page of a Web portal). In an attempt to overcome this drawback, the inventors have proposed in the patent application WO2008152296 an inter-portlet communication method based on a "drag and drop" action, or "drag and drop" in English, which allows a user to select data generated at the output of a first application service executed in a first portlet, before dragging this selected data to a field of a second application service executed in another portlet, to trigger the execution of this second service, taking into account the selected data that has been the subject of the "drag and drop" action. A disadvantage of the latter technique is that it limits interoperability to web applications that run only in different portlets hosted on the same HTML page of the same web browser. However, many contexts of use, most often related to the fact that the same user has several terminals of different categories (mobile phone, PDA, PC terminal, digital TV, etc.), would require extending the interoperability with Web applications that would run in separate Web browsers, which can also be run on the same terminal (two separate instances of a browser) or on separate terminals belonging to the same user (PC terminal, terminal mobile, TV terminal, etc.), see a community of users. For this purpose, the invention relates to a method of communication between a first application and at least a second application, said first and second applications being respectively executed in a first and second Internet browser. According to the invention, such a method comprises: a step of activating a single communication channel between said first and second navigators; a step of dynamically subscribing said first application to at least one service of said at least one second application, via said communication channel; a step of execution by said first application of at least one operation taking into account a value of at least one parameter generated by the execution of said at least one service, said value being transmitted by said second application to said first application via said communication channel. Such a method therefore advantageously makes it possible to promote dynamic interoperability and the communication / exchange of information between web applications (portlets) hosted respectively in separate Web pages, displayed by different browsers executed respectively, or on the same terminal, either on separate and / or independent terminals. Such an approach thus makes it possible to extend the service offered to the user by giving him the possibility of combining the execution of different heterogeneous web applications, or at least developed independently of one another.

Elle offre en outre à un même utilisateur, voir à des groupes d'utilisateurs appartenant à une même communauté d'utilisateurs, de nouvelles possibilités de manipulation et d'interaction entre des services proposés par des applications qui seraient exécutées simultanément auxquelles il peut accéder dans une même page web d'un navigateur, beaucoup plus intuitive. It also offers to the same user, to see groups of users belonging to the same community of users, new possibilities for manipulation and interaction between services offered by applications that would be executed simultaneously which he can access in the same web page of a browser, much more intuitive.

En effet, de part la mise en ceuvre d'un mécanisme de souscription d'une première application à au moins un service offert par au moins une autre application hébergées toutes deux dans une même page Web, il devient possible de créer un lien de communication entre des applications Web exécutées à l'intérieur d'au moins deux instance distinctes d'un navigateur Internet, ces dernières étant exécutées sur un même terminal ou sur des terminaux distinct, par exemple un premier terminal du type téléphone mobile et, un deuxième du type terminal PC. Grâce à ce lien de communication établi dans un canal de communication dédié, ces applications vont ainsi pouvoir "se connaître" et donc par suite, interopérer au bénéfice d'un ou plusieurs utilisateurs. Indeed, by implementing a subscription mechanism of a first application to at least one service offered by at least one other application both hosted in the same Web page, it becomes possible to create a communication link between Web applications executed within at least two distinct instances of an Internet browser, the latter being executed on the same terminal or on separate terminals, for example a first terminal of the mobile phone type and, a second one of PC terminal type. Thanks to this communication link established in a dedicated communication channel, these applications will thus be able to "know each other" and therefore interoperate for the benefit of one or more users.

A titre informatif, la valeur du paramètre générée par l'exécution dudit service de la deuxième application pourra être représentative d'un évènement ou d'une donnée susceptible de servir de paramètre d'entrée pour l'exécution de ladite opération. Dans un mode de réalisation avantageux de l'invention, ledit procédé comprend les étapes préalables: d'activation d'un premier module de communication apte à gérer des communications impliquant des applications exécutées à l'intérieur dudit premier navigateur Internet; et - d'activation d'un deuxième module de communication apte à gérer des communications impliquant des applications exécutées à l'intérieur dudit 30 deuxième navigateur Internet. L'activation de tels modules permet notamment : - de connaître en temps réel les différentes applications chargées par l'utilisateur dans un premier navigateur et dans un deuxième navigateur distinct. Le transfert d'informations entre applications Web hébergées à l'intérieur de pages web publiées par le premier et le deuxième navigateur, respectivement, s'effectue alors directement et dynamiquement entre ces dernières, dès lors qu'elles ont souscrites respectivement au(x) service(s) (évènements et/ou données générés) d'au moins une autre application. Ainsi, un autre avantage de cette approche selon l'invention, provient du fait qu'elle n'implique pas que l'utilisateur connaisse à l'avance l'opération à réaliser entre les premières et deuxième applications, ce qui favorise la simplicité d'usage et le caractère intuitif de l'utilisation des différents services qui lui sont proposés. Dans un mode de réalisation possible de l'invention, ledit procédé comprend suite auxdites étapes d'activation, des étapes de connexion respectives desdits premier et deuxième modules de communication audit canal de communication, par l'intermédiaire d'une entité de gestion de canaux de communication. Cette étape s'avère particulièrement intéressante en ce qu'elle permet de maintenir actif entre les premier et deuxième modules de communication, un lien de communication, sur le temps d'une session, c'est-à-dire d'exécution d'au moins un navigateur, par exemple un navigateur Internet. For information purposes, the value of the parameter generated by the execution of said service of the second application may be representative of an event or a data item that may serve as an input parameter for executing said operation. In an advantageous embodiment of the invention, said method comprises the following preliminary steps: activation of a first communication module capable of managing communications involving applications executed inside said first Internet browser; and - activating a second communication module capable of managing communications involving applications executed inside said second Internet browser. The activation of such modules allows: - to know in real time the different applications loaded by the user in a first browser and in a second separate browser. The transfer of information between Web applications hosted inside web pages published by the first and second navigators, respectively, is then carried out directly and dynamically between the latter, since they subscribed respectively to the (x) service (s) (events and / or data generated) from at least one other application. Thus, another advantage of this approach according to the invention comes from the fact that it does not imply that the user knows in advance the operation to be performed between the first and second applications, which promotes the simplicity of use and the intuitive nature of the use of the various services offered to it. In a possible embodiment of the invention, said method comprises, following said activation steps, respective connection steps of said first and second communication modules to said communication channel, via a channel management entity. Communication. This step is particularly interesting in that it allows to maintain active between the first and second communication modules, a communication link, on the time of a session, that is to say execution of at least one browser, for example an Internet browser.

Préférentiellement, un tel procédé selon l'invention comporte une étape de transmission par ladite deuxième application audit deuxième module de communication, d'une première liste associant à chaque service proposé par ladite deuxième application, au moins un type de paramètre dont une valeur sera générée à l'exécution dudit service. Preferably, such a method according to the invention comprises a step of transmission by said second application to said second communication module, of a first list associating with each service proposed by said second application, at least one type of parameter of which a value will be generated. the execution of the said service.

Dans un mode de réalisation avantageux de l'invention, ladite étape de souscription comprend les sous-étapes suivantes de : ^ enregistrement de ladite première application auprès dudit deuxième module de communication, par l'intermédiaire dudit canal de communication ; ^ transmission par ladite première application audit deuxième module, d'une 30 deuxième liste de paramètres associés, respectivement, à au moins une opération susceptible d'être exécutée par ladite première application; ^ création par ledit deuxième module d'une troisième liste de souscription de services propre de ladite première application, laquelle associe à chaque service de ladite première liste au moins une opération susceptible d'être exécutée par ladite première application, par mise en correspondance des types de paramètre contenus respectivement dans lesdites premières et deuxièmes listes. Selon l'invention, la création de cette liste de souscription de services propre de ladite première application permet au deuxième module associée à la deuxième application, de ne transmettre par l'intermédiaire dudit canal de communication, que des données ou évènements issus de l'exécution de ladite deuxième application et susceptibles de constituer un paramètre d'entrée pour l'exécution de ladite première application. Ces étapes du procédé de communication selon l'invention sont donc particulièrement importantes en ce qu'elles permettent une mise en correspondance, au niveau de chacun des modules de communication activés, de chaque service de ladite première liste avec au moins une opération susceptible d'être exécutée par ladite première application. La mise en correspondance s'effectue entre les types de paramètres (données ou évènements) répertoriés respectivement dans lesdites premières et deuxièmes listes. Une telle liste, laquelle se met à jour de manière dynamique en fonction des connexions/ déconnexions d'applications dans la page Web et en fonction des souscriptions/ dé souscriptions à des services, permet de créer un lien de communication entre les différentes applications hébergées et exécutées dans une même page Web, sans que ces dernières n'aient eu préalablement à se connaître et sans que ces dernières n'aient été développées spécifiquement pour pouvoir interagir et/ou interopérer entre les unes avec les autres, ce qui constitue un avantage certain propre à la présente invention. Avantageusement, cette troisième liste sert de base au déclenchement d'une opération (service ou processus, etc.) exécutée par la première application, sur la base de la génération d'une valeur de donnée et/ou d'évènement par un service de la deuxième application. In an advantageous embodiment of the invention, said subscription step comprises the following sub-steps of: registering said first application with said second communication module, via said communication channel; transmission by said first application to said second module of a second list of parameters associated, respectively, with at least one operation that can be executed by said first application; ^ creation by said second module of a third own service subscription list of said first application, which associates with each service of said first list at least one operation likely to be executed by said first application, by mapping the types parameter contained respectively in said first and second lists. According to the invention, the creation of this own service subscription list of said first application allows the second module associated with the second application, to transmit via said communication channel, only data or events from the execution of said second application and may constitute an input parameter for the execution of said first application. These steps of the communication method according to the invention are therefore particularly important in that they allow a mapping, at each of the activated communication modules, of each service of said first list with at least one operation capable of performed by said first application. The mapping is performed between the types of parameters (data or events) respectively listed in said first and second lists. Such a list, which updates dynamically based on the connections / disconnections of applications in the web page and based on subscriptions / subscriptions to services, creates a communication link between the various hosted applications and executed in the same web page, without the latter having had to know each other beforehand and without the latter having been specifically developed to be able to interact and / or interoperate with each other, which constitutes a definite advantage specific to the present invention. Advantageously, this third list is used as a basis for triggering an operation (service or process, etc.) executed by the first application, on the basis of the generation of a data value and / or event by a data service. the second application.

Pour une sécurisation accentuée des communications entre les première et deuxième applications qui ne se "connaissent" pas à la base, des critères de sélection et/ou de contrôle des paramètres échangés entre les première et deuxième applications pourront être vérifiés par l'entité de gestion, voir dans un mode de réalisation possible, par la première application, pour conditionner l'exécution de ladite opération à une vérification préalable desdits critères précités. Dans une variante possible de réalisation de l'invention, ladite étape de souscription entre lesdites premières et deuxième applications est matérialisé par un élément d'une interface homme machine propre à ladite deuxième application au moyen duquel un utilisateur de ladite deuxième application peut interagir pour déclencher l'exécution de ladite opération par l'intermédiaire de ladite première application et dudit canal de communication. For an increased security of communications between the first and second applications that do not "know" at the base, criteria for selection and / or control of the parameters exchanged between the first and second applications may be verified by the management entity , see in a possible embodiment, by the first application, for conditioning the execution of said operation to a prior verification of said criteria above. In a possible variant embodiment of the invention, said subscription step between said first and second applications is embodied by an element of a man-machine interface specific to said second application by means of which a user of said second application can interact to trigger performing said operation through said first application and said communication channel.

Ainsi, un utilisateur disposera en outre de la possibilité de déclencher lui-même l'exécution d'une opération propre de la première application, en interagissant avec un élément de l'interface homme-machine (MM) propre de la deuxième application et représentatif de la première, ce qui tend à favoriser encore un peu plus le caractère intuitif de l'interopérabilité entre applications mis à la disposition de l'utilisateur. Thus, a user will also have the possibility of triggering himself the execution of an own operation of the first application, by interacting with an element of the human-machine interface (MM) specific to the second application and representative the first, which tends to further promote the intuitive nature of the interoperability between applications made available to the user.

Avantageusement, préalablement à ladite étape d'exécution, il comprend une étape de transmission par ledit deuxième module de communication audit premier module de communication d'au moins un message de déclenchement dynamiquement d'une exécution de ladite opération par ladite première application, ledit message étant transmis suite à l'exécution dudit service par ladite deuxième application au travers ledit canal de communication unique. Dans une variante possible de mise en oeuvre de l'invention, ledit message est du type appel de fonction à distance tenant compte d'une valeur dudit paramètre généré à l'exécution du service propre de ladite deuxième application. Une telle approche technique a pour avantage de facilité la mise en oeuvre du lien de 25 communication entre les différentes applications exécutées sur une même page Web, ou sur des pages Web distinctes. Il est bien entendu possible d'imaginer tout autre type de modalité de mise en oeuvre du lien de communication, par exemple en s'appuyant sur des fonctions de communication de type Flash (marque déposée) ou Java (marque déposée). 30 Un tel procédé de communication selon l'invention permet ainsi de maintenir un lien de communication entre lesdites première et deuxième applications, de façon à déclencher l'exécution de ladite opération au niveau de ladite première application, suite à l'exécution dudit service par ladite deuxième application. Ce lien de communication est maintenu actif entre les premiers et deuxième modules de communication associés respectivement au premier et deuxième navigateur entre les première et deuxième applications, de telle sorte que suite à la génération d'une nouvelle valeur de paramètre (donnée ou évènement) par un service de la deuxième application, une commande correspondante de déclenchement d'au moins une opération (un processus, un service, etc.) tenant compte de ladite nouvelle valeur, sera transmise par l'intermédiaire dudit canal de communication et des premier et deuxième modules, à la première application. Une telle approche permet ainsi avantageusement de favoriser une interopérabilité entre applications hébergées dans des portlets/ applications web distinctes exécutées à l'intérieur de pages web affichées par des navigateurs distincts, alors même que celles-ci ont été développées indépendamment l'une de l'autre. Advantageously, prior to said execution step, it comprises a step of transmission by said second communication module to said first communication module of at least one trigger message dynamically of an execution of said operation by said first application, said message being transmitted following the execution of said service by said second application through said single communication channel. In a possible variant embodiment of the invention, said message is of the remote function call type taking into account a value of said parameter generated at the execution of the own service of said second application. Such a technical approach has the advantage of facilitating the implementation of the communication link between the different applications executed on the same Web page, or on separate Web pages. It is of course possible to imagine any other type of implementation of the communication link, for example by relying on communication functions of Flash type (registered trademark) or Java (trademark). Such a communication method according to the invention thus makes it possible to maintain a communication link between said first and second applications, so as to trigger the execution of said operation at said first application, following the execution of said service by said second application. This communication link is maintained active between the first and second communication modules associated respectively with the first and second navigators between the first and second applications, so that following the generation of a new parameter value (data or event) by a service of the second application, a corresponding command for triggering at least one operation (a process, a service, etc.) taking into account said new value, will be transmitted via said communication channel and the first and second modules, at the first application. Such an approach thus advantageously makes it possible to promote interoperability between applications hosted in separate portlets / web applications executed inside web pages displayed by separate browsers, even though these have been developed independently of one another. other.

Un tel procédé selon l'invention permet donc avantageusement de favoriser l'interopérabilité dynamique et la communication/ l'échange d'informations entre des applications Web (portlets) hébergées respectivement dans des pages web distinctes (par exemple du type pages HTML) exécutées respectivement sur un premier et au moins un deuxième navigateur distincts. Such a method according to the invention therefore advantageously makes it possible to promote dynamic interoperability and the communication / exchange of information between web applications (portlets) hosted respectively in separate web pages (for example of the HTML page type) respectively executed. on a first and at least a second separate browser.

Ces navigateurs distincts pourront indifféremment être exécutés sur un même terminal (exécution de deux instances distinctes de navigateur) ou bien sur des terminaux distincts connectés l'un à l'autre par l'intermédiaire d'au moins un réseau de communication. Une telle interopérabilités permet d'étendre les services offerts à l'utilisateur, en créant un lien de communication entre portlets ou applications Web exécutées dans des navigateurs distincts pouvant être exécutés eux-mêmes sur des terminaux distincts, de façon que des données ou évènements générés par l'exécution d'une application, puissent être automatiquement utilisés en tant que paramètres d'entrée d'une autre application exécutée dans un autre navigateur d'un même ou d'un autre terminal. These different browsers can indifferently be executed on the same terminal (execution of two separate instances of browser) or on separate terminals connected to one another via at least one communication network. Such interoperability makes it possible to extend the services offered to the user by creating a communication link between portlets or web applications executed in separate browsers that can be run on separate terminals, so that data or events generated by executing an application, can be automatically used as input parameters of another application running in another browser of the same or another terminal.

Elle offre en outre à l'utilisateur des possibilités de manipulation et d'interaction avec les services proposés par chacune des applications auxquelles il peut accéder, de façon beaucoup plus intuitive. It also offers the user the opportunity to manipulate and interact with the services offered by each of the applications to which he can access, much more intuitively.

En effet, de part la mise en oeuvre d'un mécanisme de souscription d'une première application à au moins un service offert par au moins une autre application exécutées respectivement dans des navigateurs distincts, il devient possible de créer un lien de communication entre au moins certaines de ces applications. Indeed, by implementing a subscription mechanism of a first application to at least one service offered by at least one other application executed respectively in separate browsers, it becomes possible to create a communication link between the least some of these applications.

Grâce à ce lien de communication, ces applications vont pouvoir "se connaître" et ainsi interopérer, au bénéfice de l'utilisateur. En particulier, une fois réalisée l'étape de souscription de la première application à au moins un service d'au moins une deuxième application, ladite première application sera apte à déclencher automatiquement l'exécution d'une opération prédéterminée qui tiendra compte d'une valeur d'au moins une donnée mise à jour par l'exécution dudit au moins un service fourni par ladite deuxième application. Cette valeur de donnée de type prédéterminée générée par un service de la deuxième application sera en effet communiquée dynamiquement par cette dernière à la première application ayant préalablement souscrit au service, avant d'être prise en compte par cette dernière qui déclenchera l'exécution d'une opération spécifique en tenant compte de cette valeur comme paramètre d'entrée. Le transfert d'informations entre applications Web hébergées dans des navigateurs distincts s'effectue alors directement et dynamiquement entre ces dernières, dès lors qu'elles ont souscrites respectivement au(x) service(s) (évènements et/ou données générés) d'au moins une autre application, par l'intermédiaire du canal de communication établi entre le premier module de communication associé à la première application et le deuxième module de communication associé à la deuxième application. Ainsi, un autre avantage de cette approche selon l'invention, provient du fait qu'elle n'implique pas que l'utilisateur connaisse à l'avance l'opération à réaliser entre ladite première portlet (application web) et ladite deuxième portlet (application web), ce qui favorise la simplicité d'usage et le caractère intuitif de l'utilisation des différents services qui lui sont proposés. Il est bien entendu possible d'envisager sans limitation aucune, toutes autres 30 combinaisons des caractéristiques précitées propres du procédé de communication selon l'invention; de telles autres combinaisons entreront dans le champ de lé protection demandée. Thanks to this communication link, these applications will be able to "know each other" and interoperate for the benefit of the user. In particular, once the subscription step of the first application to at least one service of at least one second application has been performed, said first application will be able to automatically trigger the execution of a predetermined operation which will take into account a value of at least one datum updated by the execution of said at least one service provided by said second application. This value of predetermined type data generated by a service of the second application will indeed be communicated dynamically by the latter to the first application having previously subscribed to the service, before being taken into account by the latter which will trigger the execution of a specific operation taking into account this value as an input parameter. The transfer of information between web applications hosted in separate browsers is then done directly and dynamically between them, since they subscribed respectively to the service (s) (events and / or data generated) of at least one other application, via the communication channel established between the first communication module associated with the first application and the second communication module associated with the second application. Thus, another advantage of this approach according to the invention comes from the fact that it does not imply that the user knows in advance the operation to be performed between said first portlet (web application) and said second portlet ( web application), which favors the simplicity of use and the intuitive nature of the use of the different services offered to it. Of course, it is possible to envisage without any limitation any other combination of the aforementioned characteristics of the communication method according to the invention; such other combinations will fall within the scope of the requested protection.

L'invention concerne également un système de communication entre une première application et au moins une deuxième application, lesdites première et deuxième applications étant respectivement exécutées dans un premier et deuxième navigateur Internet. The invention also relates to a communication system between a first application and at least a second application, said first and second applications being respectively executed in a first and second Internet browser.

Avantageusement, ledit système comprend : ^ des moyens d'activation d'un canal de communication unique entre lesdits premier et deuxième navigateurs ; ^ des moyens de souscription dynamique de ladite première application à au moins un service de ladite au moins une deuxième application, par 10 l'intermédiaire dudit canal de communication ; ^ des moyens d'exécution par ladite première application, d'au moins une opération tenant compte d'une valeur d'au moins un paramètre généré par l'exécution dudit au moins un service, ladite valeur étant transmise par ladite deuxième application à ladite première application par l'intermédiaire dudit 15 canal de communication. L'invention concerne aussi un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support d'information lisible par ordinateur et/ou exécutable par un microprocesseur, comprenant des instructions de code pour l'exécution d'un procédé de communication tel que celui mentionné ci- 20 dessus, lorsqu'il est exécuté sur un ordinateur. Les caractéristiques et avantages techniques de la présente invention ressortiront mieux de la description suivante, faite à titre indicatif et non limitatif, au regard des dessins annexés sur lesquels : ^ la figure 1 est ordinogramme résumant les grandes étapes du procédé de 25 communication selon l'invention ; ^ la figure 2 décrit le principe de la souscription/ communication entre des applications hébergées/ exécutées respectivement à l'intérieur dans des navigateurs distincts exécutés sur des terminaux distincts; ^ les figures 3 et 4 présentent un exemple d'interface d'activation d'un module de 30 communication pour la communication inter applications hébergées/ exécutés dans des navigateurs distincts. Advantageously, said system comprises: means for activating a single communication channel between said first and second browsers; means for dynamically subscribing said first application to at least one service of said at least one second application, via said communication channel; means for execution by said first application of at least one operation taking into account a value of at least one parameter generated by the execution of said at least one service, said value being transmitted by said second application to said first application through said communication channel. The invention also relates to a computer program product downloadable from a communication network and / or stored on a computer readable and / or executable information medium by a microprocessor, comprising code instructions for the execution of a communication method as mentioned above, when executed on a computer. The characteristics and technical advantages of the present invention will become more apparent from the following description, given by way of non-limiting indication, with reference to the accompanying drawings, in which: FIG. 1 is a flow chart summarizing the main steps of the communication method according to FIG. invention; FIG. 2 describes the principle of subscription / communication between internally hosted / executed applications respectively in separate browsers running on separate terminals; Figures 3 and 4 show an exemplary interface for activating a communication module for inter-application communication hosted / executed in separate browsers.

La présente invention propose une solution favorisant la communication et l'échange d'information, et donc l'interopérabilité dynamique entre applications Web. On décrit ci-après de façon détaillée, un mode de réalisation possible de l'invention. The present invention proposes a solution favoring the communication and the exchange of information, and thus the dynamic interoperability between Web applications. Hereinafter described in detail, a possible embodiment of the invention.

Dans le cadre de la présente invention, une application hébergée dans une page Web possède un cycle de vie pouvant se résumer de la façon suivante : une première phase d'initialisation de ladite application essentiellement basée sur les trois étapes suivantes : o se faire connaître par les autres applications (encore dénommées portlets) hébergées dans une même page Web, ou sur des pages Web distinctes, et rattachées respectivement à une même session û par session, on entend une période d'activation d'au moins deux navigateurs distincts, soit activés simultanément sur un même terminal, soit exécuté simultanément sur des terminaux distincts d'un même utilisateur et reliés entre eux par l'intermédiaire d'un canal de communication unique propre de ladite session; o souscrire aux services d'autres applications susceptibles de générer des valeurs de paramètres (évènement et/ou données) qui l'intéressent; et o connaître les souscriptions des autres applications (les données et évènements auxquels les autres applications peuvent réagir). Cette étape permet de gérer le contexte dans le sens ou chaque application connaît l'ensemble des services qui lui sont liés et qui sont chargés par l'utilisateur. une deuxième phase durant laquelle les différentes applications ayant souscrites aux différents services d'autres applications, peuvent communiquer entre elles selon un mode de publication/ réception d'évènements et/ou de données de type prédéterminé, par l'intermédiaire d'un canal de communication unique, propre de ladite session de communication ; puis une troisième phase initiée lors de la déconnexion ou de l'interruption de l'exécution d'une application à l'intérieur d'une page Web d'un navigateur, de transmission aux autres applications hébergées dans la même page Web ou sur une page Web d'un autre navigateur distinct, d'une information de déconnexion/ interruption, de façon que les applications restant actives puissent mettre à jour leurs informations relatives à des applications qui avaient préalablement souscrits à l'un au moins de leurs services (respectivement) et qui dont l'exécution a été depuis interrompue. Ces différentes phases propres de l'invention sont détaillées ci-dessous dans la suite 5 de la description. On résume ici en relation avec la figure 1, les grandes étapes du procédé de communication entre applications exécutées respectivement dans des portlets hébergées chacune à l'intérieur de pages web gérées par des navigateurs distincts. On résume ici en relation avec la figure 1, les grandes étapes du procédé de 10 communication entre une première application et au moins une deuxième application, lesdites première et deuxième applications étant respectivement exécutées dans un premier et deuxième navigateur Internet. Selon l'invention, un tel procédé comprend : ^ une étape 101 d'activation d'un canal de communication unique entre lesdits 15 premier et deuxième navigateurs ; ^ une étape 104 de souscription dynamique de ladite première application à au moins un service de ladite au moins une deuxième application, par l'intermédiaire dudit canal de communication ; ^ une étape 106 d'exécution par ladite première application, d'au moins une 20 opération tenant compte d'une valeur d'au moins un paramètre généré par l'exécution dudit au moins un service, ladite valeur étant transmise par ladite deuxième application à ladite première application par l'intermédiaire dudit canal de communication. Le procédé selon l'invention comprend les étapes préalables: 25 ^ d'activation 1001 d'un premier module de communication apte à gérer des communications impliquant des applications exécutées à l'intérieur dudit premier navigateur Internet; et ^ d'activation 1002 d'un deuxième module de communication apte à gérer des communications impliquant des applications exécutées à l'intérieur dudit 30 deuxième navigateur Internet. In the context of the present invention, an application hosted in a web page has a life cycle that can be summarized as follows: a first phase of initialization of said application essentially based on the following three steps: o to be known by the other applications (also called portlets) hosted in the same web page, or on separate web pages, and respectively attached to the same session - per session, means an activation period of at least two separate browsers, or activated simultaneously on the same terminal, or run simultaneously on separate terminals of the same user and connected to each other via a unique communication channel specific to said session; o subscribe to the services of other applications that may generate parameter values (events and / or data) of interest to him; and o know the subscriptions of other applications (data and events that other applications can respond to). This step makes it possible to manage the context in the sense that each application knows all the services which are linked to it and which are loaded by the user. a second phase during which the various applications having subscribed to the different services of other applications, can communicate with each other according to a mode of publication / reception of events and / or data of predetermined type, via a channel of unique communication, proper of said communication session; then a third phase initiated when disconnecting or interrupting the execution of an application within a web page of a browser, transmission to other applications hosted on the same web page or on a Web page of another separate browser, a disconnect / interrupt information, so that the remaining active applications can update their information about applications that had previously subscribed to at least one of their services (respectively ) and whose execution has since been interrupted. These various eigenphases of the invention are detailed below in the following 5 of the description. Here is summarized in connection with Figure 1, the main steps of the communication process between applications respectively executed in portlets each hosted within web pages managed by separate browsers. Here is summarized in connection with FIG. 1, the main steps of the communication method between a first application and at least a second application, said first and second applications being respectively executed in a first and second Internet browser. According to the invention, such a method comprises: a step 101 of activating a single communication channel between said first and second browsers; a step 104 of dynamically subscribing said first application to at least one service of said at least one second application, via said communication channel; a step 106 of execution by said first application of at least one operation taking into account a value of at least one parameter generated by the execution of said at least one service, said value being transmitted by said second application; to said first application through said communication channel. The method according to the invention comprises the preliminary steps: activation 251 1001 of a first communication module able to manage communications involving applications executed inside said first Internet browser; and activating 1002 a second communication module capable of managing communications involving applications executed within said second Internet browser.

Il comprend également suite auxdites étapes 1001, 1002 d'activation, des étapes 1021, 1022 de connexion respectives desdits premier et deuxième modules de communication audit canal de communication, par l'intermédiaire d'une entité de gestion de canaux de communication. It also comprises, following said activation steps 1001, 1002, respective connection steps 1021, 1022 of said first and second communication modules to said communication channel, via a communication channel management entity.

Il comporte encore une étape 103 de transmission par ladite deuxième application audit deuxième module de communication, d'une première liste associant à chaque service proposé par ladite deuxième application, au moins un type de paramètre dont une valeur sera générée à l'exécution dudit service. Ladite étape 104 de souscription comprend les sous-étapes suivantes de : ^ enregistrement 1041 de ladite première application auprès dudit deuxième module de communication, par l'intermédiaire dudit canal de communication ; ^ transmission 1042 par ladite première application audit deuxième module, d'une deuxième liste de paramètres associés, respectivement, à au moins une opération susceptible d'être exécutée par ladite première application; création 1043 par ledit deuxième module d'une troisième liste de souscription de services propre de ladite première application, laquelle associe à chaque service de ladite première liste au moins une opération susceptible d'être exécutée par ladite première application, par mise en correspondance des types de paramètre contenus respectivement dans lesdites premières et deuxièmes listes. It further comprises a step 103 of transmission by said second application to said second communication module, of a first list associating with each service proposed by said second application, at least one type of parameter whose value will be generated at the execution of said service . Said subscription step 104 comprises the following substeps of: recording 1041 of said first application with said second communication module, via said communication channel; transmission 1042 by said first application to said second module, of a second list of parameters associated, respectively, with at least one operation that can be performed by said first application; creation by said second module of a third own service subscription list of said first application, which associates with each service of said first list at least one operation that can be executed by said first application, by mapping the types parameter contained respectively in said first and second lists.

Préalablement à ladite étape 106 d'exécution, le procédé selon l'invention comprend une étape 105 de transmission par ledit deuxième module de communication audit premier module de communication d'au moins un message de déclenchement dynamiquement d'une exécution de ladite opération par ladite première application, ledit message étant transmis suite à l'exécution dudit service par ladite deuxième application au travers ledit canal de communication unique. Dans un mode de réalisation possible de l'invention, ledit message est du type appel de fonction à distance tenant compte d'une valeur dudit paramètre généré à l'exécution du service propre de ladite deuxième application. De façon plus détaillée, ladite étape 104 de souscription entre lesdites premières 30 et deuxième applications est matérialisé par un élément d'une interface homme machine propre à ladite deuxième application au moyen duquel un utilisateur de ladite deuxième application peut interagir pour déclencher l'exécution de ladite opération par l'intermédiaire de ladite première application. En cas de désactivation/ activation d'une application dans un navigateur rattachée à une session de communication, le procédé selon l'invention comprend une étape 107 de mise à jour dynamique de ladite troisième liste de souscription de services gérée par ledit deuxième module, suite à la transmission audit deuxième module, par ledit premier module, d'un message de notification d'une déconnexion de ladite première application, par l'intermédiaire dudit canal de communication. Selon l'invention, ladite première application est exécutée dans un premier navigateur exécuté sur un premier terminal et, en ce que ladite deuxième application est exécutée dans un deuxième navigateur exécuté sur un deuxième terminal. Comme illustré sur la figure 2, l'invention consiste à étendre le principe de communication et d'interopérabilité entre des applications Web non plus hébergées à l'intérieur d'une même page web d'un même navigateur Internet, mais hébergées/ exécutées respectivement dans des pages web d'instance distinctes de navigateurs Internet exécutés indifféremment sur un même terminal ou sur des terminaux distincts, voir hétérogènes. Ainsi, de façon non limitative, un service chargé sur une session A d'un navigateur X, peut très bien communiquer/ interopérer avec un autre service, chargé sur une session B d'un navigateur Y ; même si, les deux navigateurs sont chargés sur des machines différentes. Ce mécanisme permet notamment d'implémenter des scenarios du genre : • l'utilisateur final reçoit des vidéos en pièce jointe sur une widget email (chargée sur un PC) et les lit sur une widget player vidéo chargée sur sa télé. ^ ou bien, chercher un contact dans la widget annuaire chargée sur le PC, et le 25 rajouter sur les contacts du téléphone mobile à travers la widget contact chargée sur le mobile. Dans l'exemple de mise en oeuvre de la figure 2, on considère l'établissement de quatre sessions de navigateurs (200, 201, 202, 203) exécutés respectivement sur quatre terminaux (204, 205, 206, 207) pouvant appartenir indifféremment à un même 30 utilisateur, ou à plusieurs utilisateurs. Ces terminaux disposent d'un moyen de connexion à au moins un réseau de communication. Prior to said execution step 106, the method according to the invention comprises a step 105 of transmission by said second communication module to said first communication module of at least one trigger message dynamically of an execution of said operation by said first application, said message being transmitted following the execution of said service by said second application through said single communication channel. In one possible embodiment of the invention, said message is of the remote function call type taking into account a value of said parameter generated at the execution of the own service of said second application. In more detail, said subscription step 104 between said first and second applications is embodied by an element of a human-machine interface specific to said second application by means of which a user of said second application can interact to trigger the execution of said operation via said first application. In case of deactivation / activation of an application in a browser attached to a communication session, the method according to the invention comprises a step 107 of dynamic update of said third service subscription list managed by said second module, more transmitting to said second module, by said first module, a notification message of a disconnection of said first application, via said communication channel. According to the invention, said first application is executed in a first browser running on a first terminal and in that said second application is executed in a second browser running on a second terminal. As illustrated in FIG. 2, the invention consists in extending the principle of communication and interoperability between web applications that are no longer hosted within the same web page of the same Internet browser, but hosted / executed respectively. in separate instance web pages of Internet browsers running either on the same terminal or on separate terminals, see heterogeneous. Thus, in a non-limiting manner, a service loaded on a session A of a browser X, can very well communicate / interoperate with another service, loaded on a session B of a browser Y; even though, both browsers are loaded on different machines. This mechanism makes it possible to implement scenarios such as: • the end user receives videos as an attachment on an email widget (loaded on a PC) and reads them on a video player widget loaded on his TV. or else, look for a contact in the directory widget loaded on the PC, and add it to the contacts of the mobile phone through the contact widget loaded on the mobile. In the exemplary implementation of FIG. 2, it is considered the establishment of four browser sessions (200, 201, 202, 203) executed on four terminals (204, 205, 206, 207) which may belong equally to the same user, or to several users. These terminals have a means of connection to at least one communication network.

Par session d'un navigateur, on entend un période d"exécution/ activation d'une instance d'un navigateur sur un terminal donné. Pour mettre en oeuvre le procédé selon l'invention et comme illustré sur la figure 2, à chaque lancement d'une session d'un navigateur (200, 201, 202, 203) sur un terminal (204, 205, 206, 207), un module de communication (208, 209, 210, 211) spécifique, est activée à l'intérieur du navigateur (200, 201, 202, 203) correspondant. Cette solution consiste donc à rajouter un module de communication se présentant sous la forme d'une application exécutable par un utilisateur à l'intérieur de son navigateur, ou widget spéciale (figure 2) dans l'environnement de l'utilisateur. By session of a browser is meant a period of execution / activation of an instance of a browser on a given terminal.To implement the method according to the invention and as illustrated in FIG. of a browser session (200, 201, 202, 203) on a terminal (204, 205, 206, 207), a specific communication module (208, 209, 210, 211) is activated at the This solution therefore consists of adding a communication module in the form of an application executable by a user inside his browser, or a special widget (FIG. 2) in the user's environment.

Cette widget spéciale a pour fonction d'assurer la connexion entre les différentes applications (W l à W7) exécutées respectivement dans le cadre de chaque session des navigateurs 200, 201, 202 et 203, respectivement Les widgets (208, 209, 210, 211) spéciales peuvent être : ^ simple en étant juste un relais entre différentes sessions du même utilisateur (on 15 peut déduire que deux sessions sont du même utilisateur en effectuant une authentification), ^ elles peuvent aussi embarquer une certaine intelligence, permettant à des widgets d'un utilisateur, de communiquer avec les widgets d'un autre utilisateur appartenant à une même communauté virtuelle (réseaux sociaux). 20 Dans ce mode de réalisation nous avons choisi d'illustrer comment faire communiquer des applications chargées sur deux terminaux distincts du même utilisateur. Dans le cadre du procédé selon l'invention, on associe respectivement à chaque application ou widget (W1 à W7), deux identifiants. Le premier identifiant permet 25 d'identifier un widget de façon unique à l'intérieur d'une session propore d'un navigateur donnée. Le deuxième identifiant permet d'identifier la session du navigateur à laquelle elle se rattache. Ces l'association de ces deux identifiants permet d'identifier de manière unique une application web (ou widget) au sein des différentes sessions de navigateur, de 30 façon à pouvoir faciliter leur interopérabilité/ communication, par l'intermédiaire de canaux 212 de communications uniques établis par l'intermédiaire d'un réseau de communication et d'une entité de gestion de canaux de communication inter modules de communication, entité située côté serveur 213 de gestion communications inter applications. Les applications W 1 à W7 (exemple de la figure 2) sont situées côté 214 clients. La solution proposée offre aussi une API qui permet même le développement 5 d'applications ou de services qui communiquent à travers des sessions différentes propres de navigateurs distincts chargées sur un ou plusieurs terminaux. Les communications entre applications exécutées dans des navigateurs distincts s'effectue par l'intermédiaire des modules de communication (ou widgets spéciales) respectivement activées relativement à chaque session d'un navigateur donné et par 10 l'intermédiaire de canaux de communication établis respectivement entre un premier module de communication propre d'une session d'un premier navigateur et, un deuxième module de communication propre d'une session d'un deuxième navigateur. Ainsi, dans l'exemple de la figure 2, un premier utilisateur d'un terminal PC1 204 a chargé/ exécuté dans un navigateur 200, trois applications ou widgets W1, W2 et 15 W3. Ce même utilisateur (voir un autre distinct) d'un terminal PC2 205 a chargé/ exécuté dans un navigateur 201, deux applications ou widgets W4 et W5. Après activation par cet ou ces utilisateurs, respectivement sur chacun des terminaux 204 et 205, des modules 208 et 209 de communication inter applications (dites widgets 20 spéciales), les applications WI et W5 vont souscrire respectivement aux données et/ou évènements générés par l'exécution de leur(s) service(s) respectif(s), de façon qu'elles puissent ensuite interopérer au bénéfice du ou de leurs utilisateurs, par l'intermédiaire d'un canal 215 de communication spécifiques et unique établis entres mes modules 208 et 209 de communications. 25 Un tel canal 215 de communication est un canal similaire au mécanisme de publish/subscribe. Il permet à une entité logicielle de se souscrire à un type de message, à une autre de publier des messages d'un certain type. Ainsi, l'entité qui est souscrite à un type de message X sera prévenue à chaque fois qu'un message de type X est publié par une autre entité. 30 Les widgets spéciales, encore appelés modules de communication propre d'une session d'un navigateur, se souscrivent à des types de message sur l'entité «canal de communication. ». This special widget has the function of ensuring the connection between the different applications (W l to W7) executed respectively within the framework of each session of the browsers 200, 201, 202 and 203, respectively The widgets (208, 209, 210, 211 ) special can be: ^ simple by being just a relay between different sessions of the same user (we can deduce that two sessions are the same user by performing an authentication), ^ they can also embed some intelligence, allowing widgets a user, to communicate with the widgets of another user belonging to the same virtual community (social networks). In this embodiment we have chosen to illustrate how to communicate applications loaded on two different terminals of the same user. In the context of the method according to the invention, two identifiers are respectively associated with each application or widget (W1 to W7). The first identifier makes it possible to identify a widget uniquely within a given session of a given browser. The second identifier identifies the session of the browser to which it is attached. These association of these two identifiers makes it possible to uniquely identify a web application (or widget) within the various browser sessions, so as to facilitate their interoperability / communication, via communication channels 212. unique established through a communication network and a communication channel management entity between communication modules, server-side entity 213 management inter-application communications. The applications W 1 to W7 (example of Figure 2) are located side 214 customers. The proposed solution also provides an API that allows even the development of applications or services that communicate through different own sessions of separate browsers loaded on one or more terminals. Communication between applications executed in separate browsers is performed via the communication modules (or special widgets) respectively activated relative to each session of a given browser and via communication channels respectively established between a first own communication module of a session of a first browser and a second own communication module of a session of a second browser. Thus, in the example of FIG. 2, a first user of a terminal PC1 204 has loaded / executed in a browser 200 three applications or widgets W1, W2 and W3. This same user (see another separate) of a terminal PC2 205 has loaded / executed in a browser 201, two applications or widgets W4 and W5. After activation by this or these users, respectively on each of the terminals 204 and 205, modules 208 and 209 of communication inter applications (called special widgets), WI and W5 applications will subscribe respectively to the data and / or events generated by the execution of their respective service (s), so that they can then interoperate for the benefit of the user or their users, via a specific and unique communication channel 215 established between my modules 208 and 209 of communications. Such a communication channel 215 is a channel similar to the publish / subscribe mechanism. It allows a software entity to subscribe to one type of message, another to publish messages of a certain type. Thus, the entity that is subscribed to a message type X will be notified each time an X type message is published by another entity. Special widgets, also called own communication modules of a browser session, subscribe to message types on the "communication channel" entity. ".

Au chargement de la widget spéciale, et après authentification de l'utilisateur «USER ID », elle effectue un certain nombre de souscription auprès du canal de communication afin de communiquer avec les autres widgets chargées sur différentes sessions du même utilisateur. Upon loading the special widget, and after user authentication "USER ID", it performs a number of subscription to the communication channel to communicate with other widgets loaded on different sessions of the same user.

La table 1 suivante précise l'ensemble des souscriptions effectuées par la widget spéciale auprès du canal de communication. Canal de souscription Description /USER_ID/subscriptions Ce canal permet à la widget spéciale de recevoir toutes les souscriptions effectuées dans les autres sessions (e.g. si une widget annuaire, chargée sur une autre session, souscrit au type de donnée emailAddress, ce canal permet à la widget spéciale de recevoir cette information, afin de la propager aux autres widgets). Cette information est publiée par une widget spéciale correspondante à la widget qui effectue la souscription à un type de donnée. /USER ID/publications Ce canal permet à la widget spéciale de connaître les données que les autres widgets, présente sur d'autre session, peuvent publier. /USER ID/unsubscriptions Ce canal permet à la widget spéciale de recevoir les demandes de dé-souscription des autres widgets, présentes sur d'autres terminaux. /USER_ID/publish Ce canal permet à la widget spéciale de recevoir une publication d'une autre widget, chargée sur une autre session. /USER ID/synchronizationrequest Une demande de synchronisation est effectuée lorsqu'une widget spéciale souhaite recevoir : la liste des widgets chargée sur une autre session, les donnée et évènements qu'elles génèrent, ainsi que l'ensemble de leurs souscriptions. Ce canal permet donc de recevoir ce type de demande. Table L Une fois que la widget spéciale a effectué l'ensemble de ces souscriptions, débute une phase de découverte de son environnement. Cette phase inclut d'une part la découverte de son environnement local au sein du navigateur auquel elle est associée. Elle débute d'autre part une phase de découverte de l'ensemble des applications hébergées/ exécutées à l'intérieur du navigateur auquel elle est rattachée, leurs publications potentielles, ainsi que leurs souscriptions. Ces informations sont ensuite propagées vers les modules de communication (widgets spéciales) associés au navigateurs exécutés sur d'autres terminaux et connecté audit canal de communication spécifique à l'utilisateur identifié par « USER ID » . The following table 1 specifies all the subscriptions made by the special widget to the communication channel. Subscription channel Description / USER_ID / subscriptions This channel allows the special widget to receive all the subscriptions made in the other sessions (eg if a directory widget, loaded on another session, subscribes to the emailAddress data type, this channel allows the special widget to receive this information, in order to spread it to other widgets). This information is published by a special widget corresponding to the widget that makes the subscription to a data type. / USER ID / publications This channel allows the special widget to know the data that other widgets, present on other sessions, can publish. / USER ID / unsubscriptions This channel allows the special widget to receive unsubscribe requests from other widgets on other devices. / USER_ID / publish This channel allows the special widget to receive a publication from another widget, loaded on another session. / USER ID / synchronizationrequest A synchronization request is made when a special widget wants to receive: the list of widgets loaded on another session, the data and events they generate, and all of their subscriptions. This channel therefore makes it possible to receive this type of request. Table L Once the special widget has made all these subscriptions, begins a phase of discovery of its environment. This phase includes on the one hand the discovery of its local environment within the browser with which it is associated. It also begins a phase of discovery of all the applications hosted / executed within the browser to which it is attached, their potential publications, as well as their subscriptions. This information is then propagated to the communication modules (special widgets) associated with the browsers executed on other terminals and connected to said user-specific communication channel identified by "USER ID".

Elle débute enfin une phase de découverte de l'environnement des autres sessions : La découverte de l'ensemble de widgets chargées dans les autres sessions, leurs publications potentielles, ainsi que leurs souscriptions. Ces informations sont ensuite propagées vers les autres widgets de la même session. L'étape de phase de découverte de son environnement consiste à récupérer la liste L1 et L2 de chaque widget qui se trouve dans la même session que la widget spéciale. (Rappelons que L1 d'une widget X est la liste des souscriptions de cette widget X, et L2 d'une widget X est la liste des publications potentielles de la widget X). Une fois la widget spéciale ait récupérée ces deux listes de chaque widget, elle les propage vers le canal de communication. Ainsi, la liste LI est publiée dans le canal «/USER ID/subscriptions », et la liste L2 et publiée dans le canal «/USER ID/publications ». L'entité «canal de communication », transmet à son tour, ces deux listes à toutes les entités (typiquement les widgets spéciales) ayant souscrit respectivement aux canaux «/USER ID/subscriptions » et «/USER ID/publications » (i.e. aux widgets spéciales des terminaux du même utilisateur identifié par USER ID). Lorsque les widgets spéciales d'autres sessions reçoivent les listes LI et L2, elles les propagent vers les widgets de la même session. Les widget ordinaire, qui reçoivent ces deux listes LI et L2 mis à jours leurs deux listes L3 et L4. (Rappelons que L3 d'une widget X est la liste des souscriptions d'autre widget aux services que la widget X génère, et L4 d'une widget X est la liste des widgets qui génèrent des services auxquels la widget X est souscrite) La mise à jour de L3 s'effectue en réalisant une mise en correspondance (mapping) entre la liste LI reçue et la liste L2 local ; on détecte si la widget émettrice de la liste LI est souscrite aux services que génèrent la widget réceptrice; si c'est le cas alors rajouter les souscriptions dans la liste L. It finally begins a phase of discovery of the environment of the other sessions: The discovery of the set of widgets loaded in the other sessions, their potential publications, as well as their subscriptions. This information is then propagated to other widgets in the same session. The discovery phase stage of its environment consists in retrieving the list L1 and L2 of each widget that is in the same session as the special widget. (Recall that L1 of an X widget is the list of subscriptions of this widget X, and L2 of an X widget is the list of potential publications of the X widget). Once the special widget has recovered these two lists of each widget, it spreads them to the communication channel. Thus, the list LI is published in the channel "/ USER ID / subscriptions", and the list L2 and published in the channel "/ USER ID / publications". The entity "communication channel", in turn, transmits these two lists to all entities (typically special widgets) having subscribed respectively to the channels "/ USER ID / subscriptions" and "/ USER ID / publications" (ie to special widgets of the terminals of the same user identified by USER ID). When the special widgets of other sessions receive the LI and L2 lists, they propagate them to the widgets of the same session. The ordinary widget, which receives these two lists LI and L2 updated their two lists L3 and L4. (Recall that L3 of an X widget is the list of subscriptions of other widget to the services that the X widget generates, and L4 of an X widget is the list of widgets that generate services to which the X widget is subscribed). L3 is updated by performing a mapping between the received LI list and the local L2 list; detecting whether the issuing widget of the list LI is subscribed to the services generated by the receiving widget; if this is the case then add the subscriptions in the list L.

La mise à jour de L4 s'effectue en faisant le mapping entre la liste L2 reçue et la liste LI local ; on détecte si la widget émettrice de la liste L2 génère des services auxquelles la widget réceptrice est souscrite; si c'est le cas alors rajouter cette widget à la liste L4. The L4 update is done by mapping between the received L2 list and the local LI list; detecting whether the issuing widget of the list L2 generates services to which the receiving widget is subscribed; if this is the case then add this widget to the list L4.

A chaque insertion ou suppression d'une souscription dans la liste L3 on enclenche la mis à jours de la couche présentation de la widget en insérant l'icône correspondante à la souscription. La phase de découverte de l'environnement des autres sessions consiste à récupérer l'ensemble des souscriptions, et publications potentielles des applications chargées sur d'autre session. Pour faire ça, la widget spéciale publie une requête dans le canal « /USER ID/synchronizationrequest ». L'entité « canal de communication » transmet cette requête à toutes les widgets spéciales qui sont chargées sur d'autres sessions et qui ont souscrit à ce canal (i.e. le canal /USER ID/synchronizationrequest). Les widgets spéciales qui reçoivent cette requête, irons récupérer les liste, LI et L2 de chaque widget ordinaire qui est chargée dans la même session que cette widget spéciale. Une fois récupérées, la widget spéciale transmet ces deux listes à l'entité «canal de communication» à travers les canaux «/USER ID/subscriptions» et « /USER ID/publications » respectivement, en spécifiant l'identifiant de la session émettrice de la requête «/USER ID/synchronizationrequest » comme session de destination. Ainsi, l'entité « canal de communication » transmet ces deux listes respectives qu'à la widget spéciale qui les a sollicitées. Une mise à jour de la liste L3 s'effectue en faisant le mapping entre la liste LI reçue et la liste L2 local ; on détecte si la widget émettrice de la liste LI est souscrite aux services que génèrent la widget réceptrice; si c'est le cas alors rajouter les souscriptions dans la liste L3. A chaque insertion ou suppression d'une souscription dans la liste L3 on enclenche la mis à jours de la couche présentation de la widget en insérant l'icône correspondante à la souscription. Dans la suite de la description et relativement aux figures 2 et 3, sera illustré le mécanisme de communication entre applications Web ou widgets, respectivement chargées dans le cadre de sessions actives de navigateurs distincts. Par session, on entendra la période d'activation/ exécution d'une instance d'un navigateur sur un terminal donné, par exemple un téléphone mobile, un ordinateur PC, un assistant personnel numérique, etc. Dans cette illustration nous allons prendre pour exemple un utilisateur qui possède deux terminaux : un premier terminal du type ordinateur PC et un deuxième 5 du type téléphone mobile. Comme illustré sur l'exemple de la figure 3, l'utilisateur a chargé un agrégateur 301 de services sur son téléphone mobile et un autre 300 sur son ordinateur PC, c'est-à-dire des espaces de type page Web lui permettant d'activer/ exécuter une ou plusieurs applications Web (encore appelée widgets, indifféremment) à l'intérieur d'une instance 10 d'un navigateur. Dans cet exemple, un utilisateur a chargé une widget « Annuaire » 302 en relation avec une session d'un navigateur 304 exécuté sur le terminal PC, et une widget 303 « GoogleMap » (marque déposée) en relation avec une session d'un navigateur 305 exécuté sur son terminal mobile. 15 Le but de l'invention et d'offrir à l'utilisateur la possibilité de connecter ces deux widgets 302, 303. Ainsi sur l'exemple, l'utilisateur aura un icon sur la widget «annuaire» pour chercher l'adresse affiché sur l'annuaire dans la widget « Google Map ». Pour faire cela, l'utilisateur a à sa disposition un certain nombre de widgets 20 spéciales comme le montre la figure 4. Dans cet exemple, l'utilisateur dispose d'une widget 400 formant module de connexion, laquelle lui permet de connecter ses différents terminaux, et une autre qui lui permet de se connecter avec des terminaux des utilisateurs appartenant à une même communauté. Dans cet exemple en occurrence l'utilisateur veut connecter des widgets 25 chargées sur ses différents terminaux, donc il charge la widget « Connecter vos terminaux » sur chaque terminal (c'est-à-dire chaque session du navigateur). Au moment du chargement de la widget spéciale, celle-ci demande à l'utilisateur un identifiant et un mot de passe. Cet identifiant et mots de passe permettent à la widget spéciale de créer (ou de joindre) un canal de transmission 30 unique est commun au terminaux du même utilisateur. Ce canal de transmission est crée auprès d'une entité serveur qu'on appellera «multi-teilninal bridge ». Le mot de passe est nécessaire pour des raisons de sécurité. Il permet en occurrence de bien vérifier que login fourni appartient bien à l'utilisateur qui accède à ce terminal. L'étape 1 est l'authentification de l'utilisateur. En fournissant son identifiant et un mot de passe, la widget spéciale vérifie dans la base de donnée si les données d'authentification sont correct. L'étape 2, on renvoi à la widget spéciale le résultat de l'authentification. Si l'authentification est correct, alors la widget spéciale crée ou rejoint (si déjà crée) le canal de transmission auprès du composant « multi-terminal bridge ». Le canal crée est spécifique à l'utilisateur qui vient de s'authentifier. At each insertion or deletion of a subscription in the L3 list, the updating of the presentation layer of the widget is started by inserting the icon corresponding to the subscription. The environment discovery phase of other sessions consists of recovering all the subscriptions, and potential publications of the applications loaded on the other session. To do this, the special widget publishes a request in the channel "/ USER ID / synchronizationrequest". The "communication channel" entity passes this request to all the special widgets that are loaded on other sessions and subscribed to that channel (ie the channel / USER ID / synchronizationrequest). The special widgets that receive this request, will get the list, LI and L2 of each ordinary widget that is loaded in the same session as this special widget. Once recovered, the special widget transmits these two lists to the entity "communication channel" through the channels "/ USER ID / subscriptions" and "/ USER ID / publications" respectively, specifying the identifier of the sending session the query "/ USER ID / synchronizationrequest" as the destination session. Thus, the "communication channel" entity transmits these two respective lists to the special widget that solicited them. An update of the L3 list is performed by mapping between the received LI list and the local L2 list; detecting whether the issuing widget of the list LI is subscribed to the services generated by the receiving widget; if this is the case then add the subscriptions in the list L3. At each insertion or deletion of a subscription in the L3 list, the updating of the presentation layer of the widget is started by inserting the icon corresponding to the subscription. In the remainder of the description and with reference to FIGS. 2 and 3, will be illustrated the communication mechanism between Web applications or widgets, respectively loaded in the context of active sessions of separate browsers. Per session, we will hear the period of activation / execution of an instance of a browser on a given terminal, for example a mobile phone, a PC computer, a digital personal assistant, etc. In this illustration we will take for example a user who has two terminals: a first terminal of the PC computer type and a second terminal 5 of the mobile phone type. As illustrated in the example of FIG. 3, the user has loaded an aggregator 301 of services on his mobile phone and another 300 on his PC computer, that is to say webpage-type spaces allowing him to activate / execute one or more web applications (also called widgets, indifferently) inside an instance 10 of a browser. In this example, a user has loaded a "Directory" widget 302 in connection with a session of a browser 304 running on the PC terminal, and a widget 303 "GoogleMap" (registered trademark) in connection with a session of a browser 305 running on his mobile terminal. The object of the invention and to offer the user the possibility to connect these two widgets 302, 303. Thus on the example, the user will have an icon on the widget "directory" to search for the displayed address on the directory in the "Google Map" widget. To do this, the user has at his disposal a number of special widgets as shown in Figure 4. In this example, the user has a widget 400 forming a connection module, which allows him to connect his different terminals, and another that allows it to connect with terminals of users belonging to the same community. In this example, the user wants to connect widgets 25 loaded on his different terminals, so he loads the "Connect your terminals" widget on each terminal (that is to say each browser session). When loading the special widget, it asks the user for a username and password. This identifier and passwords allow the special widget to create (or join) a single transmission channel that is common to the terminals of the same user. This transmission channel is created from a server entity that will be called "multi-terminal bridge". The password is required for security reasons. In this case, it is possible to verify that the login provided belongs to the user who accesses the terminal. Step 1 is the authentication of the user. By providing its identifier and a password, the special widget checks the database if the authentication data is correct. Step 2, we return to the special widget the result of the authentication. If the authentication is correct, then the special widget creates or joins (if already created) the transmission channel with the "multi-terminal bridge" component. The created channel is specific to the user who has just authenticated.

Le composant «bridge multi-canal» a crée un canal tagué : canalTag qui est spécifique à l'utilisateur dont l'identifiant est canalTag. La widget spéciale chargée sur le terminal mobile fait exactement la même chose (i.e. elle authentifie l'utilisateur, et rejoint le canal canalTag dans le composant «bridge multi-terminal »). Ceci signifie que si la widget spéciale chargée sur le terminal PC veut communiquer avec la widget spéciale chargée sur mobile (du même utilisateur), elle n'a qu'à envoyer des données au composant «bridge multi-terminal » avec un tag « canalTag». C'est cette fonctionnalité que nous exploitons afin de permettre aux widgets chargée sur le terminal mobile (ici en occurrence GoogleMap), de connaître et de communiquer avec les widgets chargées sur le terminal PC (ici en occurrence Annuaire), et vis-versa. Supposons que la widget spéciale du terminal PC est chargée avant la widget spéciale du mobile. La widget spéciale qui est chargée sur le terminal PC récupère auprès de la widget « Annuaire » l'ensemble des souscriptions de la widget «Annuaire » (appelée LI) ainsi que les donnée que la widget «Annuaire » publie (appelée L2). La widget spéciale transmet ensuite au composant «bridge multi-terminal » ces deux liste tagué avec « canalTag ». À titre d'exemple, supposons que la widget « annuaire » souscrit aux données 30 de type « nom » (LI = [nom»), et qu'elle génère des donnée de type « carte de visite » (L2 = [carte de visite»). The "multi-channel bridge" component has created a tagged channel: channelTag that is specific to the user whose identifier is channelTag. The special widget loaded on the mobile terminal does exactly the same thing (i.e. it authenticates the user, and joins the canalTag channel in the "multi-terminal bridge" component). This means that if the special widget loaded on the PC terminal wants to communicate with the special widget loaded on mobile (the same user), it only has to send data to the component "multi-terminal bridge" with a tag "canalTag ". It is this feature that we use to allow the widgets loaded on the mobile terminal (here in this case GoogleMap), to know and communicate with the widgets loaded on the PC terminal (in this case Directory), and vice versa. Suppose that the special widget of the PC terminal is loaded before the mobile's special widget. The special widget that is loaded on the PC terminal retrieves from the widget "Directory" all the subscriptions of the widget "Directory" (called LI) and the data that the widget "Directory" publishes (called L2). The special widget then transmits to the "multi-terminal bridge" component these two lists tagged with "channelTag". For example, suppose that the widget "directory" subscribes to the data 30 of type "name" (LI = [name "), and that it generates data of type" business card "(L2 = [card of visit").

A ce stade rien ne se passe parce que la widget spéciale du mobile n'est pas encore chargée. Les mêmes actions sont aussi réalisées au chargement de la widget spéciale sur le mobile. La widget spéciale récupère auprès de la widget « GoogleMap » l'ensemble des souscriptions de la widget « Annuaire » (appelée L1) ainsi que les donnée que la widget « Annuaire » publie (appelée L2). La widget spéciale transmet ensuite au composant « bridge multi-teiniinal » ces deux liste tagué avec « canalTag». À titre d'exemple, supposons que la widget «googleMap » souscrit aux 10 données de type «carte de visite » (LI = [carte de visite»), et qu'elle ne génère pas de données (L2 = [J). Dans ce deuxième cas, y'à déjà la widget spéciale du terminal PC qui à crée et rejoint le canal «canalTag», donc la widget spéciale du mobile en publiant les deux liste (Ll et L2) auprès du composant « bridge multi-terminal », ce dernier transmet les 15 listes à toutes les widgets spéciale qui ont rejoint le canal tagué «canalTag». En occurrence, le composant «bridge multi-terminal » transmet ces deux listes à la widget spéciale du terminal PC de l'utilisateur. Quand la widget spéciale du terminal PC reçoit les deux listes (Ll et L2) des souscriptions et des données générées par des widgets chargées sur le mobile, elle les 20 transmet vers les widgets qui sont chargées sur le terminal PC. Ainsi, la widget « annuaire » recevra bien l'information que la widget «googleMap », chargée sur le mobile, est souscrite aux données de type «carte de visite » ; des données que la widget « Annuaire » peut générer. A ce titre, à chaque fois que la widget « annuaire » génère des données de type « carte de visite », elle insère un 25 l'icon « googleMap » qui permettra à l'utilisateur de déclencher une action sur la widget «googleMap ». L'icon inséré est récupéré dans les données de souscription (chaque souscription contient un icon). Une fois les liste L1 et L2 sont transmises aux différentes widgets du terminal PC, il est important d'informer la widget spéciale du mobile (qui vient juste d'être 30 chargée) de l'ensemble des souscriptions et des publication potentielles des widgets chargées sur le terminal PC. Pour cela, la widget spéciale du terminal PC récupère les souscriptions (LI) et les publications potentielles (L2) de la widget « Annuaire » (et d'autre widgets si présentes dans le terminal PC). Ces deux listes sont transmises à la widget spéciale du mobile à travers le composant «bridge multi-canal ». At this point nothing happens because the mobile's special widget is not loaded yet. The same actions are also performed when loading the special widget on the mobile. The special widget retrieves from the widget "GoogleMap" all subscriptions of the widget "Directory" (called L1) and the data that the widget "Directory" publishes (called L2). The special widget then transmits to the "multi-teiniinal bridge" component these two lists tagged with "channelTag". For example, suppose that the widget "googleMap" subscribes to the data of the type "business card" (LI = [business card]), and that it does not generate data (L2 = [J). In this second case, there is already the special widget of the PC terminal which creates and joins the channel "channelTag", thus the special widget of the mobile by publishing the two lists (Ll and L2) with the component "bridge multi-terminal The latter transmits the lists to all the special widgets that have joined the channel tagged "channelTag". In this case, the "multi-terminal bridge" component transmits these two lists to the special widget of the user's PC terminal. When the special widget of the PC terminal receives the two lists (L1 and L2) subscriptions and data generated by widgets loaded on the mobile, it transmits them to the widgets that are loaded on the PC terminal. Thus, the widget "directory" will receive the information that the widget "googleMap", loaded on the mobile, is subscribed to data type "business card"; data that the "Directory" widget can generate. As such, each time the widget "directory" generates data type "business card", it inserts a 25 "googleMap" icon that will allow the user to trigger an action on the widget "googleMap" . The inserted icon is retrieved in the subscription data (each subscription contains an icon). Once the lists L1 and L2 are transmitted to the various widgets of the PC terminal, it is important to inform the mobile special widget (which has just been loaded) of all the subscriptions and potential publications of the loaded widgets. on the PC terminal. For this, the special widget of the PC terminal retrieves the subscriptions (LI) and potential publications (L2) of the widget "Directory" (and other widgets if present in the PC terminal). These two lists are transmitted to the mobile's special widget through the "multi-channel bridge" component.

Quand la widget spéciale du terminal mobile reçoit les deux listes (L1 et L2) des souscriptions et des données générées par des widgets chargées sur le terminal PC, elle les transmet vers les widgets qui sont chargées sur le mobile. L'une des particularités du mécanisme est que les liens qui sont crées entre les widgets (que ce soit dans le même terminal ou sur différents terminaux), sont dynamiques. C'est-à-dire, si on rajoute une widget «envoi de SMS » sur la session chargée sur le mobile, celle si est prise automatiquement par la widget « Annuaire », qui elle est chargée sur le terminal PC. Pour réaliser cette fonctionnalité, au moment du chargement de la widget «envoi de SMS », celle-ci envoie la liste de ses souscriptions (LI) ainsi que la liste des publications potentielles (L2) à la widget spéciale du mobile. À titre d'exemple, supposons que la widget « envoi de SMS » souscrit aux données de type « carte de visite » (LI = [carte de visite»), et qu'elle ne génère pas de données (L2 = [J). Ensuite, la widget spéciale du mobile envoi la liste L1 et L2 aux autres terminaux du même utilisateur à travers le composant «bridge multi-terminal ». Dans cet exemple, y'a qu'un seul autre terminal qui est le terminal PC. Ainsi, la widget spéciale du terminal PC reçoit la liste des souscriptions de la widget « envoi de SMS ». Quand la widget spéciale du terminal PC reçoit les deux listes (LI et L2) des souscriptions et des données générées par des widgets chargées sur le mobile, elle les transmet vers les widgets qui sont chargées sur le terminal PC. Ainsi, la widget « annuaire » recevra bien l'information que la widget « envoi de SMS », chargée sur le mobile, est souscrite aux données de type « carte de visite » ; des données que la widget « Annuaire » peut générer. A ce titre, à chaque fois que la widget « annuaire » génère des données de type « carte de visite », elle insère une icone « envoi SMS » qui permettra à l'utilisateur de déclencher une action sur la widget «envoi de SMS ». When the special widget of the mobile terminal receives the two lists (L1 and L2) subscriptions and data generated by widgets loaded on the PC terminal, it transmits them to the widgets that are loaded on the mobile. One of the peculiarities of the mechanism is that the links that are created between the widgets (whether in the same terminal or on different terminals), are dynamic. That is to say, if we add a widget "sending SMS" on the session loaded on the mobile, that if is taken automatically by the widget "Directory", which it is loaded on the PC terminal. To achieve this functionality, when loading the widget "sending SMS", it sends the list of its subscriptions (LI) and the list of potential publications (L2) to the special widget of the mobile. For example, suppose that the "SMS sending" widget subscribes to "business card" type data (LI = [business card]), and that it does not generate data (L2 = [J) . Then, the mobile's special widget sends the list L1 and L2 to the other terminals of the same user through the "multi-terminal bridge" component. In this example, there is only one other terminal that is the PC terminal. Thus, the special widget of the PC terminal receives the list of subscriptions of the widget "sending SMS". When the special widget of the PC terminal receives the two lists (LI and L2) subscriptions and data generated by widgets loaded on the mobile, it transmits them to the widgets that are loaded on the PC terminal. Thus, the widget "directory" will receive the information that the widget "sending SMS", loaded on the mobile, is subscribed to data type "business card"; data that the "Directory" widget can generate. As such, each time the "directory" widget generates data of type "business card", it inserts an icon "sending SMS" that will allow the user to trigger an action on the widget "sending SMS" .

L'icone inséré est récupéré dans les données de souscription (chaque souscription contient un icone). The inserted icon is retrieved in the subscription data (each subscription contains an icon).

Pour continuer notre illustration du mécanisme, et afin montrer comment l'utilisateur peut enclencher des actions dans des widgets chargées sur le mobile à partir de widgets chargées sur le terminal PC, supposons que l'utilisateur a chargé une fiche annuaire d'une personne (i.e. une carte de visite qui contient nom, prénom, N° Tel, adresse de travail, et adresse email). La widget «Annuaire» sais maintenant qu'il y'a des widgets dans d'autre terminaux qui ont souscrits à des données de type «carte de visite » et donc insère les icones correspondantes comme illustré précédemment. Quand l'utilisateur click sur un des icons (e.g. sur l'icon «googleMap »), la widget « annuaire » notifie la widget spéciale du terminal PC en spécifiant la widget à enclencher ainsi que l'URL ou récupérer la carte de visite qui vient d'être générée. Ensuite, la widget spéciale du terminal PC transmet ces informations aux widgets spéciales d'autres terminaux (dans notre exemple y'a que le terminal mobile comme `autres terminaux'). La widget spéciale du mobile reçoit ces informations (la widget enclenchée (« googleMap ») ainsi que l'URL des données générées). To continue our illustration of the mechanism, and to show how the user can trigger actions in widgets loaded on the mobile from widgets loaded on the PC terminal, suppose that the user has loaded a directory card of a person ( ie a business card containing name, first name, phone number, working address, and email address). The widget "Directory" now know that there are widgets in other terminals that have subscribed to data type "business card" and therefore inserts the corresponding icons as shown above. When the user clicks on one of the icons (eg on the icon "googleMap"), the "directory" widget notifies the special widget of the PC terminal by specifying the widget to be triggered and the URL or retrieve the business card that has just been generated. Then, the special widget of the PC terminal transmits this information to the special widgets of other terminals (in our example there is only the mobile terminal like `other terminals'). The mobile's special widget receives this information (the triggered widget ("googleMap") and the URL of the generated data).

Quand la widget spéciale du mobile reçoit les informations (comme quoi la widget Annuaire veut enclencher la widget googleMap, et les donnée générée par Annuaire), elle invoque la widget « googleMap » avec les donnée générée par la widget « Annuaire » comme inputs. Comme déjà mentionné précédemment, la particularité du procédé selon l'invention repose sur le fait que les liens qui sont crées entre les widgets (que ce soit dans le même terminal ou sur différents terminaux), sont dynamiques. Ceci veut aussi dire que lorsque l'utilisateur supprime une widget dans l'un de ses terminaux, ceci est reflété dans d'autres terminaux. Par exemple, lorsque l'utilisateur supprime la widget « googleMap » de son mobile, le lien, préalablement crée entre la widget « annuaire » et « googleMap » doit être supprimé. Pour réaliser cette fonctionnalité, au moment de la suppression de la widget « googleMap », celle-ci envoi un message de déconnexion à la widget spéciale. Ce message de déconnexion est transmit aux autres widgets spéciales, d'autre terminaux du même utilisateur à travers l'entité «bridge inter-terminal ». When the mobile's special widget receives the information (like what the Directory widget wants to trigger the googleMap widget, and the data generated by Directory), it invokes the "googleMap" widget with the data generated by the "Directory" widget as inputs. As already mentioned above, the particularity of the method according to the invention lies in the fact that the links that are created between the widgets (whether in the same terminal or on different terminals), are dynamic. This also means that when the user deletes a widget in one of its terminals, this is reflected in other terminals. For example, when the user deletes the "googleMap" widget from his mobile, the previously created link between the "directory" widget and "googleMap" must be removed. To achieve this feature, at the time of removal of the widget "googleMap", it sends a disconnect message to the special widget. This disconnection message is transmitted to other special widgets, other terminals of the same user through the "inter-terminal bridge" entity.

L'entité «bridge multi-terminal » de gestion des canaux de communication transmet le message aux autres widgets spéciales, d'autre terminaux du même utilisateur (dans notre cas vers la widget spéciale du terminal PC). La widget spéciale du terminal PC transmet l'information aux widgets du terminal PC (dans notre cas vers la widget « Annuaire »). La widget «Annuaire» supprime les liens correspondants à la widget qui vient de se déconnecter (« googleMap »). The "multi-terminal bridge" entity for managing the communication channels transmits the message to the other special widgets, from other terminals of the same user (in our case to the special widget of the PC terminal). The special widget of the PC terminal transmits the information to the widgets of the PC terminal (in our case to the widget "Directory"). The "Directory" widget deletes the corresponding links to the newly disconnected widget ("googleMap").

Claims (12)

Revendications1. Procédé de communication entre une première application et au moins une deuxième application, lesdites première et deuxième applications étant respectivement exécutées dans un premier et deuxième navigateur Internet, caractérisé en ce que ledit procédé comprend : ^ une étape (101) d'activation d'un canal de communication unique entre lesdits premier et deuxième navigateurs ; ^ une étape (104) de souscription dynamique de ladite première application à au moins un service de ladite au moins une deuxième application, par l'intermédiaire dudit canal de communication ; ^ une étape (106) d'exécution par ladite première application, d'au moins une opération tenant compte d'une valeur d'au moins un paramètre généré par l'exécution dudit au moins un service, ladite valeur étant transmise par ladite deuxième application à ladite première application par l'intermédiaire dudit canal de communication. Revendications1. A method of communication between a first application and at least a second application, said first and second applications being respectively performed in a first and a second Internet browser, characterized in that said method comprises: a step (101) of activation of a single communication channel between said first and second browsers; a step (104) of dynamically subscribing said first application to at least one service of said at least one second application, via said communication channel; a step (106) of execution by said first application of at least one operation taking into account a value of at least one parameter generated by the execution of said at least one service, said value being transmitted by said second applying to said first application via said communication channel. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend les étapes préalables : ^ d'activation (1001) d'un premier module de communication apte à gérer des communications impliquant des applications exécutées à l'intérieur dudit premier navigateur Internet; et ^ d'activation (1002) d'un deuxième module de communication apte à gérer des communications impliquant des applications exécutées à l'intérieur dudit deuxième navigateur Internet. 2. Method according to claim 1, characterized in that it comprises the preliminary steps of: activation (1001) of a first communication module able to manage communications involving applications executed inside said first Internet browser ; and activating (1002) a second communication module capable of managing communications involving applications executed within said second Internet browser. 3. Procédé selon la revendication 2, caractérisé en ce qu'il comprend suite auxdites étapes (1001,1002) d'activation, des étapes (1021,1022) de connexion respectives desdits premier et deuxième modules de communication audit canal de communication, par l'intermédiaire d'une entité de gestion de canaux de communication. 3. Method according to claim 2, characterized in that it comprises following said steps (1001, 1002) of activation, steps (1021, 1022) of respective connection of said first and second communication modules to said communication channel, by via a communication channel management entity. 4. Procédé selon la revendication 3, caractérisé en ce qu'il comporte une étape (103) de transmission par ladite deuxième application audit deuxième module de communication, d'une première liste associant à chaque service proposé par ladite deuxième application, au moins un type de paramètre dont une valeur sera générée à l'exécution dudit service. 4. Method according to claim 3, characterized in that it comprises a step (103) of transmission by said second application to said second communication module, a first list associating with each service proposed by said second application, at least one the type of parameter whose value will be generated when the service is run. 5. Procédé selon la revendication 4, caractérisé en ce que ladite étape (104) de souscription comprend les sous-étapes suivantes de : ^ enregistrement (1041) de ladite première application auprès dudit deuxième module de communication, par l'intermédiaire dudit canal de communication ; ^ transmission (1042) par ladite première application audit deuxième module, d'une deuxième liste de paramètres associés, respectivement, à au moins une opération susceptible d'être exécutée par ladite première application; ^ création (1043) par ledit deuxième module d'une troisième liste de souscription de services propre de ladite première application, laquelle associe à chaque to service de ladite première liste au moins une opération susceptible d'être exécutée par ladite première application, par mise en correspondance des types de paramètre contenus respectivement dans lesdites premières et deuxièmes listes. The method according to claim 4, characterized in that said subscribing step (104) comprises the following substeps of: registering (1041) said first application with said second communication module, through said communication channel; communication; transmitting (1042) by said first application to said second module a second list of parameters associated with, respectively, at least one operation that can be performed by said first application; ^ creation (1043) by said second module of a third own service subscription list of said first application, which associates with each service of said first list at least one operation likely to be executed by said first application, by setting in correspondence of the parameter types contained respectively in said first and second lists. 6. Procédé selon la revendication 5, caractérisé en ce que préalablement à ladite 15 étape (106) d'exécution, il comprend une étape (105) de transmission par ledit deuxième module de communication audit premier module de communication d'au moins un message de déclenchement dynamiquement d'une exécution de ladite opération par ladite première application, ledit message étant transmis suite à l'exécution dudit service par ladite deuxième application au travers ledit canal de 20 communication unique. 6. Method according to claim 5, characterized in that prior to said step (106) of execution, it comprises a step (105) of transmission by said second communication module to said first communication module of at least one message dynamically triggering an execution of said operation by said first application, said message being transmitted following the execution of said service by said second application through said single communication channel. 7. Procédé selon la revendication 4, caractérisé en ce que ledit message est du type appel de fonction à distance tenant compte d'une valeur dudit paramètre généré à l'exécution du service propre de ladite deuxième application. 7. Method according to claim 4, characterized in that said message is of the remote function call type taking into account a value of said parameter generated at the execution of the own service of said second application. 8. Procédé selon la revendication 1, caractérisé en ce que ladite souscription entre 25 lesdites premières et deuxième applications est matérialisé par un élément d'une interface homme machine propre à ladite deuxième application au moyen duquel un utilisateur de ladite deuxième application peut interagir pour déclencher l'exécution de ladite opération par l'intermédiaire de ladite première application. 8. Method according to claim 1, characterized in that said subscription between said first and second applications is embodied by an element of a man-machine interface specific to said second application by means of which a user of said second application can interact to trigger performing said operation through said first application. 9. Procédé selon la revendication 5 caractérisé en ce qu'il comprend une étape 30 (107) de mise à jour dynamique de ladite troisième liste de souscription de services gérée par ledit deuxième module, suite à la transmission audit deuxième module, par ledit premier module, d'un message de notification d'une déconnexion de ladite première application, par l'intermédiaire dudit canal de communication. 9. Method according to claim 5 characterized in that it comprises a step (107) of dynamic update of said third service subscription list managed by said second module, following the transmission to said second module, by said first module, a notification message of a disconnection of said first application, through said communication channel. 10. Procédé selon la revendication 1, caractérisé en ce que ladite première application est exécutée dans un premier navigateur exécuté sur un premier terminal et, en ce que ladite deuxième application est exécutée dans un deuxième navigateur exécuté sur un deuxième terminal. 10. The method of claim 1, characterized in that said first application is executed in a first browser running on a first terminal and in that said second application is executed in a second browser running on a second terminal. 11. Système de communication entre une première application et au moins une deuxième application, lesdites première et deuxième applications étant respectivement exécutées dans un premier et deuxième navigateur Internet, caractérisé en ce que ledit système comprend : ^ des moyens d'activation d'un canal de communication unique entre lesdits premier et deuxième navigateurs ; des moyens de souscription dynamique de ladite première application à au moins un service de ladite au moins une deuxième application, par 15 l'intermédiaire dudit canal de communication ; ^ des moyens d'exécution par ladite première application, d'au moins une opération tenant compte d'une valeur d'au moins un paramètre généré par l'exécution dudit au moins un service, ladite valeur étant transmise par ladite deuxième application à ladite première application par l'intermédiaire dudit 20 canal de communication. 11. A communication system between a first application and at least a second application, said first and second applications being respectively executed in a first and second Internet browser, characterized in that said system comprises: means for activating a channel single communication between said first and second browsers; means for dynamically subscribing said first application to at least one service of said at least one second application, via said communication channel; means for execution by said first application of at least one operation taking into account a value of at least one parameter generated by the execution of said at least one service, said value being transmitted by said second application to said first application through said communication channel. 12. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support d'information lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de code pour l'exécution d'un procédé de communication conforme à l'une quelconque des 25 revendications 1 à 10, lorsqu'il est exécuté sur un ordinateur. 12. Computer program product downloadable from a communication network and / or stored on a computer-readable and / or executable information medium by a microprocessor, characterized in that it comprises code instructions for the execution of A communication method according to any one of claims 1 to 10 when executed on a computer.
FR0956654A 2009-09-25 2009-09-25 Method for communication between independent web applications executed in respective web browsers on e.g. terminals, involves executing operation considering value of parameter that is generated by execution of service, by application Withdrawn FR2950716A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0956654A FR2950716A1 (en) 2009-09-25 2009-09-25 Method for communication between independent web applications executed in respective web browsers on e.g. terminals, involves executing operation considering value of parameter that is generated by execution of service, by application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0956654A FR2950716A1 (en) 2009-09-25 2009-09-25 Method for communication between independent web applications executed in respective web browsers on e.g. terminals, involves executing operation considering value of parameter that is generated by execution of service, by application

Publications (1)

Publication Number Publication Date
FR2950716A1 true FR2950716A1 (en) 2011-04-01

Family

ID=42102402

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0956654A Withdrawn FR2950716A1 (en) 2009-09-25 2009-09-25 Method for communication between independent web applications executed in respective web browsers on e.g. terminals, involves executing operation considering value of parameter that is generated by execution of service, by application

Country Status (1)

Country Link
FR (1) FR2950716A1 (en)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
No Search *

Similar Documents

Publication Publication Date Title
EP3065375B1 (en) A method for controlling access to electronic documents based on stateless communication
KR101525220B1 (en) Network operating system
EP1811747B1 (en) Method and apparatus for storing and restoring state information of remote user interface
CN102682026B (en) The method of browsing pictures and client
EP2643961B1 (en) Communication between two web applications
WO2016145747A1 (en) Smart gateway functional plug-in management method, client terminal and system
TW200412060A (en) System and method for using portals by mobile devices in a disconnected mode
EP2936782A1 (en) Method for processing access requests and web browser
EP2169569B1 (en) Method and system for communication between distinct web applications
FR2979509A1 (en) METHOD AND SERVER FOR MONITORING USERS DURING THEIR NAVIGATION IN A COMMUNICATION NETWORK
EP3119060B1 (en) Method and device for establishing webrtc communications
FR3015822A1 (en) METHOD AND SYSTEM FOR COMMUNICATING WEB BROWSERS USING A UNIFIED COMMUNICATION ENVIRONMENT
WO2007141446A1 (en) System for managing a multimodal interactive service
FR2824439A1 (en) SYSTEM AND METHOD FOR REMOTELY ASSEMBLING MESSAGES FOR DISPERSE APPLICATIONS
EP2360889B1 (en) Creation and use of a telecommunication link between two users of a telecommunication network
EP2187321B1 (en) Method and system for editing an object represented on a web page
EP2093983A1 (en) Method for taking control by a radio terminal of the display of information on a screen
EP2633683B1 (en) Remotely sited execution of a software application within a network
FR2939996A1 (en) Machine to machine platform i.e. Internet server, for managing e.g. temperature sensor and mobile telephone, has communication management unit permitting communication of communicating objects via service matched with user account
FR2950716A1 (en) Method for communication between independent web applications executed in respective web browsers on e.g. terminals, involves executing operation considering value of parameter that is generated by execution of service, by application
EP2156340B1 (en) Method and device for communication between separate web applications
Filbert Developing a multi-purpose chat application for mobile distributed systems on android platform
EP2320623B1 (en) Method for supplying a service
WO2007010139A2 (en) Method and device for interaction between computer-based applications and a remote site
EP1494419A1 (en) System transmitting characteristic parameters of a communication session from a terminal to a remote server

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20110531