FR 3022657 A1 20151225 FR 1455731 A 20140620 1 Domaine technique L'invention a trait de manière générale à la communication en temps réel entre navigateurs web sur un réseau de communication tel que l'Internet. L'invention concerne en particulier le partage de navigation (cobrowsing en anglais) sur une page web affichée dans une fenêtre d'un premier navigateur web exécuté dans un premier terminal, avec au moins un second navigateur web exécuté dans un second terminal. Selon une application particulière, l'invention peut être mise en oeuvre dans le cadre de la communication entre un client et un télé-conseiller par l'intermédiaire d'une plateforme de gestion de la relation client (en anglais, Customer Relationship Management). Etat de la technique La navigation sur la "toile mondiale" du réseau Internet ("worldwide web" ou "web" en anglais) consiste en la consultation de fichiers de données appelés pages web (web pages) formatées selon un langage de balisage (markup language), tel que HTML (HyperText Markup Language) ou XML (extensible Markup Language). Les pages web sont généralement organisées en sites web hébergés par des serveurs sur le réseau. Un navigateur web (web browser) est une application logicielle installée dans un terminal de communication d'un utilisateur, tel qu'un ordinateur personnel, et qui permet de "naviguer" sur les différents sites web et de voir les pages web situées dans ces sites web. Cette navigation utilise des protocoles de communication tels que le protocole HTTP (HyperText Transfer Protocol). Dans ce contexte, le partage de navigation (cobrowsing en anglais) - encore désigné par navigation conjointe - sur Internet, est la possibilité pour deux personnes ou plus de voir la même page web simultanément. A titre d'exemple, le document de brevet US2005/0091572A1 décrit un procédé de navigation partagée sur des sites web. Selon le procédé décrit, une session de navigation partagée est d'abord initiée entre un premier client (ordinateur disposant d'un navigateur web) d'un premier utilisateur et un second client d'un second utilisateur. Le premier utilisateur est initialement leader de la session et parcourt un site web en utilisant le premier client, qui envoie au second client un message de synchronisation contenant une ou plusieurs commandes indiquant une action de navigation exécutée par le premier utilisateur sur le premier client. Lorsque le second client reçoit le message de synchronisation, il applique au site web les commandes incluses dans le message. Les applications de partage de navigation existantes, telle que celle décrite dans le document susmentionné, permettent généralement de pouvoir répercuter des actions 3022657 2 effectuées par un utilisateur sur une ou plusieurs pages web affichées par un navigateur, dans le navigateur d'au moins un second utilisateur, mais elles ne permettent pas à plusieurs utilisateurs d'agir de manière interactive sur le contenu d'une même page web. Par ailleurs, ces applications requièrent en général que les navigateurs web des participants à une session de 5 navigation partagée soient connectés initialement au même site web, c'est-à-dire à la même adresse web (URL - Uniform Resource Locator). Exposé de l'invention La présente invention propose une technique de navigation partagée sur des pages web, plus performante que les techniques de partage de navigation connues. 10 L'invention concerne ainsi, selon un premier aspect, un procédé de partage de navigation sur une page web affichée dans une fenêtre d'un premier navigateur web exécuté dans un premier terminal, avec au moins un second navigateur web exécuté dans un second terminal. Conformément à l'invention ce procédé comporte : (A) - l'obtention par le second navigateur d'un flux vidéo restitué dans le premier 15 terminal, le flux comprenant les données d'affichage de la page web ; (B) - la restitution du flux vidéo dans une zone de restitution incluse dans une fenêtre du second navigateur ; (C) - suite à la détection d'au moins une action déclenchée par un utilisateur du second terminal, appliquée à au moins un élément graphique affiché à l'intérieur de la zone de 20 restitution, obtention d'une information de localisation de l'action à partir d'une évaluation de la position de l'élément graphique par rapport à un repère lié à la zone d'affichage de la page web dans la fenêtre du premier navigateur, dite zone active du premier navigateur ; (D) - transmission au premier navigateur d'un message incluant un type d'action associé à l'action détectée et l'information de localisation de l'action; et 25 (E) - application de l'action à la page web dans la fenêtre du premier navigateur en fonction du contenu du message. La caractéristique selon laquelle le partage de la page web lue dans le premier navigateur est mis en oeuvre par l'envoi au second navigateur du flux vidéo d'affichage de la page web dans le premier navigateur, permet de garantir que le contenu de la page web 30 partagée, vu par le premier utilisateur, est identique à celui vu par le second utilisateur. En effet, dans les solutions existantes où chaque utilisateur doit charger au préalable la page web dans son navigateur, il se peut que le navigateur personnalise l'affichage de la page web, par exemple par la mise en oeuvre de témoins de connexion (cookie en anglais) ou par paramétrage, ce qui entraine des disparités d'affichage entre les navigateurs web. Cela peut 35 être gênant par exemple dans le cadre d'une application de l'invention à une plateforme de service client-conseiller, lorsque le conseiller ne voit pas exactement le contenu que voit le client. 3022657 3 Par ailleurs, grâce à l'invention, le second utilisateur peut d'une part voir, via la restitution du flux vidéo dans la zone de restitution incluse dans une fenêtre de son navigateur, les actions exécutées par le premier utilisateur sur le contenu de la page web (étapes (A) et (B) susmentionnées). D'autre part, à l'inverse, le second utilisateur a la possibilité de transmettre au 5 premier navigateur des actions qu'il a déclenchées sur le contenu de la page web restitué dans son navigateur, lesquelles actions étant ensuite exécutées réellement par le premier navigateur selon les messages reçus. Le résultat d'exécution des actions dans le premier navigateur est alors visualisé quasiment immédiatement par le second utilisateur grâce au flux vidéo reçu en continu dans le second terminal (étapes C - E). 10 Ainsi, selon le procédé de partage d'une page web selon l'invention permet aux utilisateurs impliqués dans le partage de la page web d'agir de manière interactive sur le contenu de la page web. Enfin, selon l'invention, les commandes ou actions exécutables par le second utilisateur ne sont pas limitées à celles définies par le contenu affiché de la page web partagée (par 15 exemple, boutons d'actions ou liens hypertextes), les actions peuvent également être définies par une application web de type JavaScriptTM préalablement chargée dans le second navigateur, par exemple pour proposer des actions telles que le surlignage, le soulignage, le dessin, l'encadrement, etc. Ces actions n'étant exécutables dans le premier navigateur (après réception de messages d'action) qu'à condition que ce dernier ait chargé au préalable avec la 20 page web partagée une application web de type JavaScript configurée pour les exécuter. Selon un mode de réalisation particulier de l'invention, les premier et second navigateurs web sont des navigateurs compatibles avec le standard WebRTC (détaillé plus bas dans la description). Dans ce mode de réalisation, à l'étape (A), le flux vidéo restitué dans le premier terminal est transmis en continu du premier navigateur web vers le second navigateur 25 web selon un protocole de transmission conforme au standard WebRTC. Grâce à l'utilisation de navigateurs web compatibles WebRTC, pour mettre en oeuvre l'invention, il n'est pas nécessaire, contrairement à de nombreuses applications de partage connues, d'installer une application spécifique dans les terminaux des utilisateurs, ni même d'adjoindre à chaque navigateur web un module d'extension externe (plugin par exemple), dont 30 la conception, le test, la mise à jour, et le déploiement est complexe et coûteux, et dont le téléchargement et l'installation est source d'erreurs et de désagrément pour l'utilisateur. Selon des caractéristiques particulières de l'invention : - l'étape (A) inclut la création dans le premier navigateur de données de référence caractéristiques de la zone active du premier navigateur, et la transmission, à destination du 35 second terminal, en continu du flux vidéo restitué dans le premier terminal, ainsi que des données de référence ; - l'étape (B) inclut l'obtention de premières coordonnées de repérage, relatives aux données de référence, par rapport à la zone de restitution du flux vidéo ; - à l'étape (C) l'obtention d'une information de localisation de l'action inclut : 3022657 4 - l'obtention de secondes coordonnées de repérage relatives à l'action par rapport à la zone de restitution ; et - l'obtention de troisièmes coordonnées de repérage relatives à l'action par rapport à la zone active du premier navigateur, en fonction des premières et secondes 5 coordonnées de repérage, les troisièmes coordonnées de repérage formant l'information de localisation de l'action. Ainsi, grâce aux caractéristiques mentionnées ci-dessus, l'invention utilise un mécanisme simple et astucieux pour commander l'exécution dans le premier terminal d'une action déclenchée par le second utilisateur dans le second terminal et portant sur un élément 10 graphique de la page web partagée. Ce mécanisme se base sur l'évaluation dans le second navigateur, de la localisation d'une action dans la zone de restitution du flux vidéo, par rapport aux données de référence caractéristiques de la zone active du premier navigateur et transmises dans le flux vidéo, pour commander l'exécution de l'action sur l'élément graphique de la page web partagée, après transmission au premier navigateur du résultat de l'évaluation 15 précitée dans un message. Selon d'autres caractéristiques d'implémentation de l'invention : - à l'étape (A) les données de référence sont obtenues à partir d'au moins un composant affiché dans la page web à un point représentant l'origine d'un repère associé à la zone active du premier navigateur. 20 - à l'étape (B) les premières coordonnées de repérage sont obtenues suite à la capture d'une image affichée dans la zone de restitution, puis au repérage, à partir de l'image capturée, de chaque composant par rapport à la zone de restitution. En pratique, les premières coordonnées de repérage sont obtenues par - l'envoi de l'image capturée à un dispositif serveur de traitement d'image ; 25 - la détection d'au moins un composant ; - la détermination de coordonnées de localisation du composant en fonction d'un repère de localisation associé à la zone de restitution, les coordonnées de localisation formant les premières coordonnées de repérage. Selon l'implémentation précitée de l'invention, à l'étape (C) : 30 - l'obtention des secondes coordonnées de repérage comprend la détermination de coordonnées de localisation de l'action par rapport au repère de localisation associé à la zone de restitution, lesquelles coordonnées de localisation formant les secondes coordonnées de repérage ; - l'obtention desdites troisièmes coordonnées de repérage comprend : 35 - la soustraction des premières coordonnées aux secondes coordonnées ; - la multiplication du résultat de la soustraction précédente par un facteur tenant compte de la différence de résolution entre le flux vidéo restitué dans le premier terminal et le flux vidéo restitué dans le second terminal. Selon encore d'autres caractéristiques d'implémentation de l'invention : 3022657 5 - à l'étape (C) la détection d'au moins une action déclenchée par un utilisateur du second terminal appliquée à un élément graphique affiché à l'intérieur de la zone de restitution, est effectuée par le code d'une seconde page web préalablement chargée dans le second navigateur. 5 - le procédé comprend préalablement à l'étape (A), la connexion par chacun des premier et second navigateurs à un serveur de messagerie sur un réseau de type Internet afin d'accéder à un service de partage de navigation ; et l'envoi par le second navigateur d'une demande de partage d'écran à destination du premier navigateur et l'acceptation de la demande par le premier navigateur. 10 On entend par "réseau de type Internet", un réseau basé sur les technologies de communication mises en oeuvre dans le réseau Internet, en particulier le réseau NW peut être aussi un réseau d'entreprise communément appelé intranet. Le procédé de partage de page web selon l'invention est mis en oeuvre par des applications logicielles (ou programmes d'ordinateur) exécutées par les premier et second 15 navigateurs. Dans le mode de réalisation choisi, ces applications web sont des applications web de type JavaScript qui sont intégrées dans une page web téléchargée préalablement par chacun des navigateurs. S'agissant du premier navigateur cette application web est préférentiellement intégrée dans le code (HTML ou XML) de la page web à partager. Par conséquent, selon un deuxième aspect, la présente invention concerne 20 corrélativement une application logicielle pour la mise en oeuvre d'un procédé de partage de navigation sur une page web affichée dans une fenêtre d'un premier navigateur web exécuté dans un premier terminal, avec au moins un second navigateur web exécuté dans un second terminal, cette application logicielle comprenant des instructions de code dont l'exécution par le second navigateur web permet : 25 - l'obtention par le second navigateur d'un flux vidéo restitué dans le premier terminal, le flux comprenant les données d'affichage de la page web ; - la restitution du flux vidéo dans une zone de restitution incluse dans une fenêtre du second navigateur ; - suite à la détection d'au moins une action déclenchée par un utilisateur du second 30 terminal, appliquée à au moins un élément graphique affiché à l'intérieur de la zone de restitution, obtention d'une information de localisation de l'action à partir d'une évaluation de la position de l'élément graphique par rapport à un repère lié à la zone d'affichage de la page web dans la fenêtre du premier navigateur ; - transmission au premier navigateur d'un message incluant un type d'action associé à 35 l'action détectée ainsi que l'information de localisation de l'action, en vue de l'application de l'action à la page web dans la fenêtre du premier navigateur en fonction du contenu du message. De même, selon un troisième aspect, l'invention concerne corrélativement une application logicielle pour la mise en oeuvre d'un procédé de partage de navigation sur une 3022657 6 page web affichée dans une fenêtre d'un premier navigateur web exécuté dans un premier terminal, avec au moins un second navigateur web exécuté dans un second terminal, cette application logicielle comprenant des instructions de code dont l'exécution par le premier navigateur web permet : 5 - la création dans le premier navigateur de données de référence caractéristiques de la zone d'affichage de la page web dans la fenêtre du premier navigateur, dite zone active du premier navigateur, et la transmission en continu, à destination du second terminal, du flux vidéo restitué dans le premier terminal, ainsi que des données de référence ; - la réception en provenance du second navigateur d'un message incluant, d'une part, 10 un type d'action associé à une action déclenchée par un utilisateur du second terminal et appliquée à au moins un élément graphique affiché à l'intérieur d'une zone de restitution du flux vidéo dans le second terminal, et d'autre part, une information de localisation de l'action, obtenue à partir d'une évaluation de la position de l'élément graphique par rapport aux données de référence ; 15 - l'application de l'action à la page web dans la fenêtre du premier navigateur en fonction du contenu du message. En pratique, les applications logicielles précitées sont constituées par des modules ou blocs fonctionnels réalisant les fonctions susmentionnées dans chacun des navigateurs considérés. Bien qu'utilisant préférentiellement un langage de programmation de type 20 JavaScript, chaque module peut utiliser n'importe quel langage de programmation, et comprendre un ou plusieurs programmes sous forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi par conséquent pour chacune des applications logicielles selon 25 l'invention, un support d'enregistrement d'informations lisible par un ordinateur, et comportant le code de l'application logicielle concernée. Un tel support d'enregistrement peut être constitué par n'importe quelle entité ou dispositif capable de stocker un tel code. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement amovible tel qu'une clé USB 30 ou un moyen d'enregistrement magnétique, tel qu'un disque dur. D'autre part, une telle application logicielle selon l'invention peut être en particulier téléchargée sur un réseau de type Internet. Selon un dernier aspect la présente invention a pour objet un navigateur web dans lequel est exécutée une application logicielle telle que définie ci-dessus, ainsi qu'un terminal de 35 communication dans lequel est installé un tel navigateur web selon l'invention. Les avantages procurés par une application logicielle, un navigateur web ou un terminal, selon l'invention, sont identiques à ceux, exposés plus haut, procurés par un procédé de partage d'une page web, selon l'invention, et ne seront par conséquent pas rappelés ici. 3022657 7 Brève description des figures D'autres caractéristiques et avantages de la présente invention ressortiront de la description détaillée qui suit, laquelle fait référence aux dessins annexés dans lesquels : - la figure 1 illustre un environnement réseau dans lequel la présente invention est mise 5 en oeuvre, selon un mode de réalisation ; - la figure 2 représente sous forme d'organigramme les principales étapes d'un procédé de partage de navigation sur une page web, selon l'invention ; - la figures 3 représente graphiquement les échanges de messages dans l'environnement réseau de la figure 1 afin de mettre en oeuvre un procédé de partage de 10 navigation sur une page web, selon l'invention ; et - la figure 4 représente un exemple d'écrans de deux navigateurs web en cours de partage d'une page web, conformément au procédé de partage de navigation selon l'invention. Description détaillée de l'invention La figure 1 représente un environnement réseau dans lequel la présente invention est 15 mise en oeuvre selon un mode de réalisation. L'environnement représenté comprend un premier navigateur web BRW1 d'un premier terminal d'utilisateur (T1, utilisateur U1), un second navigateur BRW2 d'un second terminal d'utilisateur (T2, utilisateur U2). Les terminaux d'utilisateurs précités peuvent se connecter à un réseau de communication NW qui est un réseau de type Internet, c'est-à-dire un réseau basé 20 sur les technologies de communication mises en oeuvre dans le réseau Internet, en particulier le réseau NW peut être aussi un réseau d'entreprise communément appelé intranet. Dans le mode de réalisation choisi et illustré, les navigateurs BRW1 et BRW2 sont des navigateurs compatibles avec une norme en cours de normalisation, conjointement par le World Wide Web Consortium (W3C) et l'Internet Engineering Task Force (IETF), et désignée par 25 WebRTC (Web Real-Time Communication) au W3C et RTCWEB à l'IETF. On rappelle ici que suite au développement du langage HTML5 (HyperText Markup Language 5) de nouvelles perspectives s'ouvrent aux développeurs d'applications avec la possibilité de rendre les interfaces (API - Application Programming Interface) avec les applications web, accessibles de façon normalisée au sein du navigateur. C'est la voie suivie 30 par la l'IETF et le W3C avec la norme RTCWEB/WebRTC qui vise à fournir deux types de spécifications : - une spécification de protocoles, effectuée à l'IETF ; - une spécification d'APIs JavaScript, effectuée au W3C. Les deux spécifications précitées visent à fournir un environnement selon lequel une 35 application JavaScript incorporée dans n'importe quelle page web, lue par n'importe quel navigateur compatible, et autorisée de manière appropriée par son utilisateur, est capable d'établir une communication utilisant de l'audio, de la vidéo (et des données auxiliaires), sans 3022657 8 que la plateforme du navigateur ne limite les types d'application dans lesquels cette fonctionnalité de communication peut être utilisée. Selon la norme RTCWEB/WebRTC - désignée par WebRTC pour simplifier - un navigateur web doit implémenter trois interfaces API pour pouvoir recevoir et transmettre des 5 données en mode streaming (parfois appelé "lecture en continu" ou "diffusion en flux" en français), ces APIs sont les suivantes : - MediaStream : permet au navigateur d'accéder aux flux de données tels que ceux issus de la caméra (web cam) et du microphone du terminal de l'utilisateur ; - RTCPeerConnection : assure les appels audio ou vidéo, avec des mécanismes de 10 chiffrement et de gestion de bande passante (bandwidth) ; - RTCDataChannel : assure la communication pair-à-pair de données génériques. Pour obtenir plus d'informations concernant les spécifications RTCWEB/ WebRTC, on pourra consulter en particulier les documents suivants : - WebRTC 1.0: Real-time Communication Between Browsers - W3C Editor's Draft 22 15 March 2013 - accessible sur Internet à l'adresse suivante : http://dev.w3.org/2011/webrtc/editor/webrtc. html#rtcpeerconnection-interface - Overview: Real Time Protocols for Browser-based Applications - draft-ietf-rtcweboverview-06 - February 20, 2013 - accessible sur Internet à l'adresse suivante : http://datatracker.ietf.org/doc/draft-ietf-rtcweb-overview/ 20 Actuellement, des éditeurs de navigateur web proposent des versions expérimentales de ce nouveau service entre navigateurs, par exemple Google avec le navigateur ChromeTM Mozilla avec le navigateur FirefoxTM De manière générale, lorsqu'un premier utilisateur souhaite établir une communication audio ou vidéo, depuis son navigateur web compatible WebRTC, avec un second utilisateur sur 25 le réseau Internet, il commence par se connecter via son navigateur à un serveur d'application fournissant le service de communication WebRTC. Après une opération d'authentification éventuelle, le navigateur charge, via une page web, l'application web (application JavaScript) conforme aux spécifications RTCWEB et adaptée à interagir avec les APIs susmentionnées (conformes aux spécifications WebRTC) qui sont incorporées nativement dans le navigateur. 30 Ensuite, le premier utilisateur choisit, via la page web de connexion au serveur d'application, un identifiant du second utilisateur, puis entre une commande - par exemple par un clic sur un bouton d'action affiché dans la page web ouverte dans le navigateur - pour déclencher l'appel audio ou vidéo vers le second utilisateur. Typiquement, la page web ouverte dans le navigateur affiche alors un message indiquant que la connexion est en cours 35 d'établissement. Si le second utilisateur, destinataire de l'appel, est également connecté au même service de communication WebRTC fourni par le serveur d'application, alors il pourra accepter la communication, par exemple audio ou vidéo, avec le premier utilisateur, et la communication pourra alors être établie. 3022657 9 A la figure 1, les navigateurs BRW1 et BRW2 étant compatibles WebRTC, ils disposent respectivement d'un ensemble 12, 22 d'interfaces API conformes aux spécifications WebRTC, et d'un module fonctionnel RTC 11, 21 conforme aux spécifications RTCWEB. Les ensembles APIs 12 et 22 sont aptes respectivement à interagir avec une application JavaScript JS 5 incorporée dans des pages web WP1 et WP2 téléchargées respectivement par les navigateurs BRW1 et BRW2 à une adresse web de ressources hébergées par un serveur d'application AS sur le réseau NW. L'application JS fournit, conformément aux spécifications WebRTC/RTCWEB, des fonctionnalités de communication RTC notamment relatives à l'accès au service de communication temps réel WebRTC fourni par le serveur AS, et à la signalisation 10 permettant d'établir une telle communication entre navigateurs. Ainsi, dans l'exemple illustré à la figure 1, si les deux navigateurs BRW1 et BRW2 ont téléchargé chacun la page web (WP1 et WP2) contenant l'application JS du service WebRTC alors ils peuvent établir une communication temps réel de pair à pair, Cl, notamment de type voix ou vidéo. Toujours à la figure 1, l'environnement réseau selon l'invention comporte également un 15 serveur de messagerie MS permettant aux pages web WP1 et WP2 de communiquer entre elles via leur application JavaScript JS. En pratique, selon le mode de réalisation exposé, il s'agit d'un serveur XMPP (Extensible Messaging and Presence Protocol) - par exemple un serveur de messagerie instantanée haute performance connu sous le nom de ejabberd - qui utilise le protocole XMPP au dessus de HTTP. L'environnement réseau par ailleurs comporte un 20 serveur de traitement d'images, IMPS, utilisé par le navigateur web BRW2 pour repérer à partir d'un flux vidéo reçu du navigateur BRW1 un composant caractéristique de la zone d'affichage de la page web WP1 dans la fenêtre du navigateur BRW1. La figure 2 représente sous forme d'organigramme les principales étapes d'un procédé de partage de navigation sur une page web, selon l'invention, mis en oeuvre dans un 25 environnement réseau tel qu'illustré à la figure 1. Le procédé de partage de navigation selon l'invention commence par une étape S20 au cours de laquelle les utilisateurs U1 et U2 se connectent via leur navigateurs BRW1 et BRW2 à un site web correspondant à une plateforme de services hébergée par un serveur d'application AS, par exemple une plateforme de service après-vente permettant la relation entre un client 30 (l'utilisateur U2) et un télé-conseiller (l'utilisateur U1). Afin d'établir la mise en relation entre les utilisateurs U1 et U2, les navigateurs BRW1 et BRW2 téléchargent une page web, respectivement WP1 et WP2, dont le code (HTML ou XML) inclut une application JavaScript JS configurée conformément à l'invention. Ensuite, a partir des pages web WP1 et WP2 affichées dans leur navigateur respectif, les utilisateurs U1 et U2 s'authentifient par une procédure 35 classique à base d'identifiant et mot de passe. L'authentification de chacun des utilisateurs déclenche alors l'enregistrement des pages web auprès du serveur de messagerie MS, ce qui permet d'établir une session de communication (par exemple par messagerie instantanée) entre les pages web WP1 et WP2. La connexion par chacun des navigateurs au serveur de 3022657 10 messagerie MS, permet d'accéder au service de partage de navigation de la manière suivante (étape S21). A l'étape S21, l'utilisateur U2 en cliquant sur un élément graphique affiché par la page web WP2 déclenche l'envoi d'une demande de partage de la page web WP1, par l'intermédiaire 5 du serveur de messageries MS à destination du navigateur BRW1. Ce dernier reçoit la demande, et si l'utilisateur U1 accepte cette demande via son navigateur (clic sur un bouton par exemple), alors une réponse est transmise au serveur de messagerie, qui la retransmet au navigateur BRW2. Une session de partage de la page web WP1 est alors initiée directement entre les navigateurs BRW1 et BRW2. 10 A l'étape S22, dans le navigateur BRW1, l'application Javacript JS de la page web WP1, insère graphiquement des données de référence, notées REF, caractéristiques de la zone d'affichage de la page web WP1 dans la fenêtre du navigateur BRW1, dite zone active du navigateur BRW1. A l'étape S23, une session de signalisation WebRTC est établie entre les deux 15 navigateurs, et le flux vidéo restitué à l'écran du terminal T1, incluant les données de référence REF, est dupliqué et transmis en continu à destination du navigateur BRW2 via la session de signalisation WebRTC. A l'étape S24, le flux vidéo est reçu en continu par le navigateur BRW2 et restitué à l'intérieur d'une zone de restitution incluse dans une fenêtre du navigateur BRW2. Les données de référence REF sont alors détectées et des premières coordonnées de 20 repérage REP1, relatives aux données de référence, par rapport à la zone de restitution du flux vidéo, sont obtenues. L'application JS de la page web WP2 est configurée pour détecter une action (par exemple un clic de souris) de l'utilisateur U2 appliquée à un composant affiché à l'intérieur de la zone de restitution du flux vidéo reçu du navigateur BRW1. A l'étape S25, si une telle action de 25 l'utilisateur U2 est détectée, alors à l'étape S26, il est procédé dans le navigateur BRW2 au repérage de l'action détectée, c'est-à-dire à la détermination de secondes coordonnées (REP2) du composant sur lequel porte l'action (un clic de souris par exemple) par rapport à la zone de restitution du flux vidéo. A l'étape suivante S27, il est procédé au repérage de l'action détectée par rapport à la 30 zone active du navigateur BRW2, des troisièmes coordonnées (REP3) sont ainsi obtenues en fonction des premières (REP1) et des secondes coordonnées (REP2) précitées. A l'étape S28, un message (MSG) est envoyé du navigateur BRW2 au navigateur BRW1 par l'intermédiaire du serveur de messagerie MS, ce message contenant une information relative à un type d'action associé à l'action détectée, ainsi que les troisièmes coordonnées de repérage (REP3) obtenues 35 précédemment (étape S27). Enfin, à l'étape S29, le navigateur BRW1 ayant reçu le message MSG, l'application JavaScript JS de la page web WP1 détermine d'une part l'action à reproduire, et à partir des coordonnées REP3, détermine d'autre part le lieu où l'action doit être exécutée dans la zone d'affichage de la page web (WP1) dans la fenêtre du navigateur BRW1. 3022657 11 Une fois l'action exécutée dans le navigateur BRW1, le flux vidéo transmis en continu au navigateur BRW2, reproduit le résultat de l'action dans la zone de restitution de la fenêtre du navigateur BRW2. Si une nouvelle action de l'utilisateur U2 est détectée (S25) le processus décrit ci-dessus en référence aux étapes S26-S29 est à nouveau mis en oeuvre. 5 La figure 3 détaille graphiquement les échanges de messages dans l'environnement réseau de la figure 1 afin de mettre en oeuvre un procédé de partage de navigation sur une page web, selon un mode de réalisation de l'invention. La figure 4 représente un exemple d'écrans de deux navigateurs web en cours de partage d'une page web, selon un procédé de partage de navigation conforme à l'invention. 10 Comme représenté à la figure 3, les échanges ont lieu entre les différentes entités exposées en relation avec la figure 1 : les deux navigateurs BRW1, BRW2, utilisés par les utilisateurs U1 et U2, les applications JavaScript (JS) associées aux pages web WP1 et WP2 préalablement téléchargées par les navigateurs, le serveur d'application AS, le serveur de messagerie MS, et le serveur de traitement d'images IMPS. 15 Les échanges M301 et M302 correspondent à la connexion des navigateurs BRW1 et BRW2 au serveur AS permettant d'accéder au service de partage d'écrans, et au téléchargement respectivement d'une page web (WP1, WP2) intégrant une application de type JavaScript (JS) configurée pour mettre en oeuvre un procédé selon l'invention. Les fenêtres actives des navigateurs BRW1 et BRW2 sont représentées sur la figure 4, affichant 20 respectivement les pages web WP1 et WP2. On notera dans l'exemple de la figure 4 que la fenêtre du navigateur BRW1 n'est pas affichée en mode plein écran sur l'écran SCR1 du terminal de l'utilisateur U1, tandis que celle du navigateur BRW2 est affichée en mode plein écran. Les échanges de messages M303 et M304 correspondent à l'enregistrement des pages 25 web WP2 et WP1 auprès du serveur de messagerie MS, c'est-à-dire leur connexion au serveur de messagerie. Cet enregistrement peut être effectué via un identifiant (login), et éventuellement un mot de passe, associés à chacune des pages web. Selon un autre choix d'implémentation, l'enregistrement peut être anonyme. Une fois enregistrées les pages web WP1 et WP2 peuvent échanger des informations. Ainsi en M305, l'utilisateur U2 (par exemple 30 un client) fait une demande de partage de l'écran du terminal (T1) de l'utilisateur U1 (par exemple, un télé-conseiller). A cette fin, l'utilisateur U2 déclenche cette demande par une interaction avec l'affichage de la page web WP2 (par exemple un clic de souris sur un élément graphique), cette interaction déclenche l'envoi d'une commande M306 par l'application JavaScript JS (encore désignée par composant JavaScript) associée à la page web WP2 35 (JS(WP2)). Cette commande (M306) est envoyée automatiquement par l'application JS(WP2) vers l'application JS(WP1) chargée dans le navigateur BRW1, via le message M307 transmis par le serveur de messagerie MS. Suite à la réception de la commande représentant la demande de partage d'écran, par le navigateur BRW1, celui-ci provoque l'affichage (M308) d'une demande d'autorisation de partage d'écran, sous la forme par exemple d'une fenêtre 3022657 12 intruse (pop-up window en anglais) affichant un message textuel demandant à l'utilisateur U1 de partager son écran. Si l'utilisateur U1 accepte (M309) - par exemple par un clic de souris sur un élément affiché dans la fenêtre pop-up -, alors un message de réponse (M310, M311) est généré et envoyé par l'application JavaScript JS(WP1) chargée dans le navigateur BRW1, à 5 destination du navigateur BRW2 via le serveur de messagerie MS. L'utilisateur U2 est alors notifié par l'application JS(WP2) de l'acceptation du partage d'écran par l'utilisateur U1, par l'affichage d'un message textuel (M312) par le navigateur BRW2. En pratique, dans le mode de réalisation choisi, les messages de demande (M306, M307) et de réponse (M310, M311) de partage d'écran sont constitués par des instructions de 10 code selon le format de données JSON (JavaScript Object Notation) transmises selon le protocole HTTP. Le format du message de demande de partage est le suivant : 1 "action" : "shareScreen", 15 "data" : "" 1 Le format du message de réponse (acceptation) est le suivant : 1 "action" : "shareScreenAccepted", 20 "data" : "" 1 Suite à l'acceptation par l'utilisateur U1 de la demande de partage d'écran, l'application JS(WP1) provoque (étape S313) la création dans le navigateur BRW1 de données de référence caractéristiques de la zone d'affichage de la page web dans la fenêtre du navigateur, dite zone 25 active du premier navigateur. Cette zone active est illustrée par la référence ZA sur la figure 4. Dans le mode de réalisation décrit, ces données de référence sont constituées d'un composant graphique affiché dans la page web WP1 à un emplacement représentant l'origine d'un repère de coordonnées associé à la zone active (ZA) du navigateur BRW1. Cet emplacement de l'origine du repère (point de coordonnées (0,0)) correspond habituellement au point situé à la 30 bordure de la fenêtre en haut et à gauche de la zone active ZA. Sur la figure 4, le composant graphique est une étoile identifiée par la référence REF. Une session de signalisation WebRTC, M314, est alors établie entre les deux navigateurs BRW1 et BRW2, cette signalisation utilisant par exemple le protocole SIP (Session Initiation Protocol). Ensuite, l'application JS(WP1) récupère, à l'étape S315, le flux vidéo 35 correspondant à l'écran SCR1 du terminal T1 et le transmet (M316) à destination du navigateur BRW2. Le flux vidéo est alors reçu par l'application JS(WP2) qui provoque son affichage (S317) - en pratique, par l'utilisation d'une balise HTML - à l'intérieur de la fenêtre affichant la page web WP2 dans le navigateur BRW2, dans une zone, dite de restitution, portant la référence ZR sur la figure 4. 3022657 13 Toujours à l'étape S317, l'application JS(WP2) procède au repérage du composant graphique de référence (REF) dans le flux vidéo restitué dans la zone de restitution (ZR) afin d'obtenir des premières coordonnées de repérage. A cette fin, une capture d'une image du flux vidéo restitué est effectuée, puis l'image capturée est envoyée (M318) à un dispositif serveur de 5 traitement d'image (IMPS). La capture d'une image du flux vidéo restitué dans la zone de restitution (ZR) peut être effectuée par exemple en utilisant un élément HTML5: . Dans le mode de réalisation décrit, le serveur IMPS est un serveur distinct sur le réseau (NW), cependant dans d'autres modes de réalisation, ce serveur peut être incorporé dans le terminal T2 de l'utilisateur U2 ou bien incorporé dans la machine hébergeant le serveur de 10 messagerie MS ou le serveur d'application AS (voir figure 1). Une fois l'image capturée reçue par le serveur de traitement d'image IMPS, celui-ci, à l'étape S319, analyse l'image capturée afin de détecter le composant graphique de référence (REF) (ou l'ensemble des composants graphiques s'il en existe plusieurs). Dans le mode de réalisation décrit, la détection du composant graphique tel qu'un symbole graphique, est 15 effectuée en utilisant un algorithme connu sous le nom de "Template matching", technique permettant de rechercher dans une image une petite portion de cette image, correspondant à une image "gabarit" (template). Bien sûr, d'autres algorithmes peuvent être utilisés. Une fois que le composant ou symbole graphique de référence (REF) a été identifié dans l'image capturée, toujours à l'étape S319, le serveur de traitement d'image IMPS procède 20 au calcul de premières coordonnées de repérage (X0, Y0) du symbole de référence (REF), par rapport à la zone de restitution (ZR) du flux vidéo. Ces premières coordonnées représentent la position du symbole de référence par rapport à un point d'origine formant repère de localisation associé à la zone de restitution ZR. En pratique, ce point d'origine de la zone de restitution est le point situé sur la bordure de la zone en haut et à gauche, et identifié par la référence P2 sur 25 la figure 4. Les coordonnées (X0, Y0) du composant de référence (REF) dans la zone de restitution (ZR) sont transmises (M320) par le serveur de traitement d'image (IMPS) au navigateur BRW2. Si l'utilisateur U2 du terminal T2 déclenche une action ACT (M321), par exemple un clic de souris, exécutée en correspondance avec un élément graphique, par exemple un lien URL 30 ou un bouton d'action, affiché par le flux vidéo reçu du navigateur BRW1 dans la zone de restitution ZR, l'application JavaScript JS(WP2) du navigateur BRW2 détermine (étape S322) alors une information de localisation de l'action à partir d'une évaluation de la position de l'élément graphique associé à l'action par rapport à un repère lié à la zone d'affichage (ZA) de la page web (WP1) dans la fenêtre du navigateur BRW1. Par ailleurs, un type d'action (clic, 35 sélection, dessin, etc.) est identifié par le code de l'application JavaScript JS(WP2). Le calcul (étape S322) de l'information précitée de localisation de l'action commence par le calcul de secondes coordonnées de repérage relatives à l'action (ACT) détectée, par rapport à la zone de restitution (ZR). Ces secondes coordonnées, notées (X1, Y1), sont obtenues par la détermination des coordonnées de localisation de l'élément graphique 3022657 14 correspondant à l'action, par rapport au repère de localisation (P2) associé à la zone de restitution (ZR). Puis, le calcul se poursuite par l'obtention de troisièmes coordonnées de repérage relatives à l'action (ACT) par rapport à la zone active (ZA) du navigateur BRW1, en fonction des premières (X0, Y0) et des secondes coordonnées (X1, Y1) de repérage. Il s'agit en 5 pratique d'effectuer un changement de repère des coordonnées de l'action dans la zone de restitution, en passant du repère dont l'origine est le point P2 au repère dont l'origine est le point défini par la position du composant de référence REF. Ainsi, il est d'abord procédé à la soustraction des premières coordonnées (X0, Y0) aux secondes coordonnées (X1, Y1), puis on multiplie le résultat de soustraction précitée par un 10 facteur de résolution f tenant compte de la différence de résolution entre le flux vidéo restitué dans le premier terminal T1 et le flux vidéo restitué dans le second terminal T2, on obtient alors les troisièmes coordonnées de repérage précitées, notées (X, Y) : X = (X1 - XO) * f Y = (Y1 - YO) * f Le facteur de résolution f peut être obtenu, par exemple, par le calcul du rapport entre la longueur d'un côté déterminé de la zone active (ZA) du premier navigateur BRW1, par la 15 longueur du côté correspondant de la zone de restitution vidéo (ZR) affichée par le second navigateur BRW2. Une fois l'information de localisation de l'action obtenue - c'est-à-dire les troisièmes coordonnées (X, Y) susmentionnées -, celle-ci est associée au type d'action correspondant à l'action détectée, et l'ensemble est alors transmis sous forme de messages (M323, M324) du 20 second navigateur (BRW2) vers le premier navigateur (BRW1), via le serveur de messagerie MS. Dans le mode de réalisation décrit, les messages contenant l'information relative à l'action (M323, M324) sont des messages échangés selon le protocole XMPP et ayant un format du type {'action" "", "data", "71. On donne ci-après un exemple de message correspondant à une action déclenchée par 25 un clic de souris et associée à des coordonnées (20, 40) exprimées en pixels : "action" : "clic", "data" : 1 "X" : 20, 30 "Y" : 40 1 De retour à la figure 3, une fois le message (M324) reçu par le navigateur BRW1, à l'étape S325, l'application JS associée à la page web WP1 affichée par le navigateur BRW1, 35 utilise les informations contenues dans le message pour exécuter l'action définie par le type et les coordonnées associées, sur la page web WP1. Par exemple, si l'action est un clic et les coordonnées (X, Y) correspondent à un lien hypertexte pointant sur une adresse web (URL) 3022657 15 alors le clic sera exécuté et le contenu correspondant à l'adresse web sera affiché par le navigateur BRW1. Le flux vidéo transmis de manière continue du navigateur BRW1 vers le navigateur BRW2 reproduit par conséquent le résultat de chaque action initiée par l'utilisateur U2, 5 permettant ainsi à ce dernier de voir l'affichage du résultat de ses actions sur la vidéo de la page web WP1 partagée, restituée dans la zone de restitution (ZR) affichée par son navigateur (BRW2). Dans le mode de réalisation décrit, les messages de notification d'action transmis du navigateur BRW2 vers le navigateur BRW1, sont transmis selon le protocole XMPP par 10 l'intermédiaire du serveur de messagerie MS, cependant selon d'autres modes de réalisation, cette transmission peut être mise en oeuvre par l'intermédiaire du canal data de la session WebRTC établie entre les deux navigateurs. Par ailleurs, dans l'exemple choisi et illustré, le partage d'une page web (WP1) a été décrit entre deux utilisateurs (U1, U2) pour simplifier l'exposé, mais l'invention peut être mise en 15 oeuvre pour partager une page web entre un premier navigateur et plusieurs seconds navigateurs, selon le mécanisme de fonctionnement détaillé plus haut et appliqué à chaque deuxième navigateur. 20 REVENDICATIONS1. Procédé de partage de navigation sur une page web (WP1) affichée dans une fenêtre d'un premier navigateur web (BRW1) exécuté dans un premier terminal (T1), avec au moins un second navigateur web (BRW2) exécuté dans un second terminal (T2), caractérisé en ce qu'il comporte : (A) - l'obtention (S23) par le second navigateur (BRW2) d'un flux vidéo restitué dans le premier terminal (T1), ledit flux comprenant les données d'affichage de la page web (WP1) ; (B) - la restitution (S24) du flux vidéo dans une zone de restitution (ZR) incluse dans une fenêtre du second navigateur (BRW2) ; (C) - suite à la détection (S25) d'au moins une action (ACT) déclenchée par un utilisateur (U2) du second terminal (T2), appliquée à au moins un élément graphique affiché à l'intérieur de la zone de restitution (ZR), obtention (S26, S27) d'une information de localisation de l'action à partir d'une évaluation de la position dudit élément graphique par rapport à un repère lié à la zone d'affichage de ladite page web (WP1) dans la fenêtre du premier navigateur, dite zone active (ZA) du premier navigateur ; (D) - transmission (S28) au premier navigateur d'un message incluant un type d'action associé à l'action détectée et ladite information de localisation de l'action ; et (E) - application (S29) de ladite action à ladite page web (WP1) dans la fenêtre du premier navigateur en fonction du contenu dudit message. 2. Procédé selon la revendication 1, dans lequel : - l'étape (A) inclut la création dans le premier navigateur (BRW1) de données de référence (REF) caractéristiques de ladite zone active (ZA) du premier navigateur, et la transmission, à destination du second terminal, en continu du flux vidéo restitué dans le premier terminal, ainsi que desdites données de référence (REF) ; - l'étape (B) inclut l'obtention de premières coordonnées de repérage, relatives aux données de référence (REF), par rapport à la zone de restitution (ZR) du flux vidéo. 3. Procédé selon la revendication 2, dans lequel à l'étape (C) l'obtention d'une information de localisation de l'action inclut : - l'obtention de secondes coordonnées de repérage relatives à ladite action (ACT) par rapport à la zone de restitution (ZR) ; et - l'obtention de troisièmes coordonnées de repérage relatives à ladite action (ACT) par rapport à ladite zone active (ZA) du premier navigateur, en fonction desdites premières et secondes coordonnées de repérage, lesdites troisièmes coordonnées de repérage formant ladite information de localisation de l'action. 3022657 17 4. Procédé selon la revendication 3, dans lequel à l'étape (A) lesdites données de référence sont obtenues à partir d'au moins un composant (REF) affiché dans la page web (WP1) à un point représentant l'origine d'un repère associé à la zone active (ZA) du premier 5 navigateur (BRW1). 5. Procédé selon la revendication 4, dans lequel à l'étape (B) lesdites premières coordonnées de repérage sont obtenues suite à la capture d'une image affichée dans ladite zone de restitution (ZR), puis au repérage, à partir de l'image capturée, de chaque composant 10 (REF) par rapport à ladite zone de restitution. 6. Procédé selon la revendication 5, comprenant : - l'envoi de l'image capturée à un dispositif serveur de traitement d'image ; - la détection d'au moins un composant ; 15 - la détermination de coordonnées de localisation dudit composant en fonction d'un repère de localisation (P2) associé à ladite zone de restitution, lesdites coordonnées de localisation formant lesdites premières coordonnées de repérage. 7. Procédé selon la revendications 6, dans lequel à l'étape (C), l'obtention desdites 20 secondes coordonnées de repérage comprend la détermination de coordonnées de localisation de ladite action par rapport au repère de localisation associé à ladite zone de restitution, lesquelles coordonnées de localisation formant lesdites secondes coordonnées de repérage. 8. Procédé selon la revendication 7 dans lequel, à l'étape (C), l'obtention desdites 25 troisièmes coordonnées de repérage comprend : - la soustraction desdites premières coordonnées auxdites secondes coordonnées ; - la multiplication du résultat de la soustraction précédente par un facteur tenant compte de la différence de résolution entre le flux vidéo restitué dans le premier terminal et le flux vidéo restitué dans le second terminal. 30 9. Procédé selon l'une quelconque des revendications 1 à 8, dans lequel les premier et second navigateurs web sont des navigateurs compatibles avec le standard WebRTC, à l'étape (A) le flux vidéo restitué dans le premier terminal étant transmis en continu du premier navigateur web vers le second navigateur web selon un protocole de transmission conforme au 35 standard WebRTC. 10. Programme d'ordinateur (JS(WP2)) pour la mise en oeuvre d'un procédé de partage de navigation sur une page web (WP1) affichée dans une fenêtre d'un premier navigateur web (BRW1) exécuté dans un premier terminal (T1), avec au moins un second 18 3022657 navigateur web (BRW2) exécuté dans un second terminal (T2), ledit programme comprenant des instructions de code dont l'exécution par le second terminal permet : - l'obtention par le second navigateur d'un flux vidéo restitué dans le premier terminal, ledit flux comprenant les données d'affichage de la page web ; 5 - la restitution du flux vidéo dans une zone de restitution incluse dans une fenêtre du second navigateur ; - suite à la détection d'au moins une action déclenchée par un utilisateur du second terminal, appliquée à au moins un élément graphique affiché à l'intérieur de la zone de restitution, obtention d'une information de localisation de l'action à partir d'une évaluation de la 10 position dudit élément graphique par rapport à un repère lié à la zone d'affichage de ladite page web dans la fenêtre du premier navigateur ; - transmission au premier navigateur d'un message incluant un type d'action associé à l'action détectée et ladite information de localisation de l'action, en vue de l'application de ladite action à ladite page web dans la fenêtre du premier navigateur en fonction du contenu dudit 15 message. 11. Programme d'ordinateur (JS(WP1)) pour la mise en oeuvre d'un procédé de partage de navigation sur une page web (WP1) affichée dans une fenêtre d'un premier navigateur web (BRW1) exécuté dans un premier terminal (T1), avec au moins un second 20 navigateur web (BRW2) exécuté dans un second terminal (T2), ledit programme comprenant des instructions de code dont l'exécution par le premier terminal permet : - la création dans le premier navigateur (BRW1) de données de référence (REF) caractéristiques de la zone d'affichage de ladite page web (WP1) dans la fenêtre du premier navigateur, dite zone active (ZA) du premier navigateur, et la transmission en continu, à 25 destination du second terminal, du flux vidéo restitué dans le premier terminal, ainsi que desdites données de référence (REF) ; - la réception en provenance du second navigateur d'un message incluant, d'une part, un type d'action associé à une action déclenchée par un utilisateur du second terminal et appliquée à au moins un élément graphique affiché à l'intérieur d'une zone de restitution du flux 30 vidéo dans le second terminal, et d'autre part, une information de localisation de l'action, obtenue à partir d'une évaluation de la position dudit élément graphique par rapport auxdites données de référence (RÉF.) ; - l'application de ladite action à ladite page web dans la fenêtre du premier navigateur en fonction du contenu dudit message. 35 12. Terminal de communication (T1, T2) dans lequel est exécuté un programme d'ordinateur selon la revendication 10 ou 11.