Brevet FR2990820A1 — publié le 20131122

L'invention concerne l'interaction avec des contenus interactifs lus en continu, notamment avec des jeux vidéos lus en continu aussi appelés jeux vidéos streamés par anglicisme. L'univers des jeux vidéos s'est longtemps restreint aux consoles vidéo qui propose des manettes de jeux adaptés à l'interaction avec l'univers proposé dans le jeux vidéo. Les consoles comme les manettes étant développés par de grand industriels du jeux vidéo, ceux-ci ont décidé pour des raisons commerciales de ne permettre de jouer avec leur console de jeux qu'avec des manettes de jeux dédiées. Pour cela, le protocole de communication entre les consoles et les manettes de jeux est propriétaire. Aujourd'hui les jeux sur PC se développent de plus en plus avec des catalogues accessibles via Internet. L'utilisateur télécharge le jeu désiré sur son ordinateur et dispose même dans le commerce de manettes de jeux dédié à ces jeux exécuté par le navigateur internet. Ces manettes utilisent généralement le protocole HTML 5 pour communiquer avec le navigateur qui exécute le jeu disponible dans le réseau. L'étape suivante est de déporter l'exécution du jeu dans le « nuage » (Cloud en anglais) aussi nommé « Cloud gaming ». La manette de jeux du commerce est prévue pour interagir avec un navigateur de l'ordinateur sur lequel l'utilisateur joue et non avec un serveur de « Cloud gaming ». Une solution serait de proposer une nouvelle manette de jeux propriétaires dédiés aux jeux en « Cloud gaming », un éditeur de jeux ou propriétaire d'un « Cloud » pourrait ainsi proposer des manettes propriétaires dédiés uniquement à jeux qu'il édite ou propose. La limite de cette solution est que l'utilisateur devrait avoir autant de manette que de « Cloud » visité. Un des buts de la présente invention est de remédier à des insuffisances de l'état de la technique. Un objet de l'invention est un procédé d'interaction avec un contenu interactif lu en continu par un dispositif client sur un dispositif serveur. Le procédé d'interaction comporte une transmission dans un protocole donné par le dispositif client au dispositif serveur d'une commande émise dans le protocole donné par un dispositif d'interaction, de telle sorte que la transmission soit transparente pour le dispositif serveur. Ainsi, le dispositif serveur interprète au vu de la commande reçu le dispositif d'interaction comme lui étant connecté en local et non comme connecté à un dispositif client à distance. Avantageusement, selon une implémentation de l'invention, les différentes étapes du procédé selon l'invention sont mises en oeuvre par un logiciel ou programme d'ordinateur, ce logiciel comprenant des instructions logicielles destinées à être exécutées par un processeur de données d'un dispositif client et étant conçus pour commander l'exécution des différentes étapes de ce procédé. L'invention vise donc aussi un programme comprenant des instructions de code de programme pour l'exécution des étapes du procédé d'interaction lorsque ledit programme est exécuté par un processeur. Ce programme peut utiliser n'importe quel langage de programmation et être sous la forme de code source, code objet ou 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. Un autre objet de l'invention est un procédé de lecture en continu d'un contenu interactif par un dispositif serveur à destination d'un dispositif client. Le procédé de lecture comporte une réception dans un protocole donné par le dispositif serveur du dispositif client d'une commande émise dans le protocole donné par un dispositif d'interaction, de telle sorte que la transmission du dispositif client soit transparente pour le dispositif serveur. Avantageusement, le procédé comporte une injection de la commande dans une pile d'exécution du contenu interactif lu du dispositif serveur. Ainsi, la commande provenant du dispositif d'interaction est traitée comme n'importe quelle instruction exécutable inscrite dans le contenu interactif. Avantageusement, le procédé de lecture comporte une conversion de la commande reçu en code d'interaction avant son injection dans la pile d'exécution. Ceci renforce le fait que le dispositif serveur interprète que le dispositif d'interaction lui soit connecté en local. Avantageusement, le procédé de lecture comporte une transmission d'instructions de reproduction du dispositif serveur au dispositif client en fonction d'une exécution d'une pile d'exécution du contenu interactif. Ainsi, le dispositif serveur interprète aussi que le dispositif client lui est connecté en local en contrôlant directement ses moyens de reproduction. L'interprétation par le dispositif serveur que le dispositif d'interaction et/ou le dispositif client lui soit connecté en local permet de simplifier les échanges du dispositif serveur notamment ne nécessite pas l'introduction d'un protocole de communication spécifique en fonction du dispositif d'interaction et de moyens de traitement du contenu interactif d'un dispositif client. Avantageusement, selon une implémentation de l'invention, les différentes étapes du procédé selon l'invention sont mises en oeuvre par un logiciel ou programme d'ordinateur, ce logiciel comprenant des instructions logicielles destinées à être exécutées par un processeur de données d'un dispositif serveur et étant conçus pour commander l'exécution des différentes étapes de ce procédé. L'invention vise donc aussi un programme comprenant des instructions de code de programme pour l'exécution des étapes du procédé de lecture lorsque ledit programme est exécuté par un processeur. Ce programme peut utiliser n'importe quel langage de programmation et être sous la forme de code source, code objet ou code intermédiaire entre code source te code objet tel que dans une forme partiellement compilée ou dans n'importe quelle autre forme souhaitable. Un objet de l'invention est aussi un dispositif client de contenu interactif lu en continu sur un dispositif serveur. Le dispositif client comporte des moyens de communication apte à transmettre dans un protocole donné par le dispositif client au dispositif serveur d'une commande émise dans le protocole donné par un dispositif d'interaction, de telle sorte que la transmission soit transparente pour le dispositif serveur. Avantageusement, le dispositif client comporte des moyens de reproduction de contenu interactif apte à être contrôler par le dispositif serveur lors de la lecture en continu d'un contenu interactif. Un objet de l'invention est encore un dispositif serveur de contenu interactif lu en continu par un dispositif client sur ledit dispositif serveur, caractérisé en ce que le dispositif serveur comporte des moyens de communication apte à recevoir dans un protocole donné par le dispositif serveur du dispositif client d'une commande émise dans le protocole donné par un dispositif d'interaction, de telle sorte que la transmission du dispositif client soit transparente pour le dispositif serveur. Avantageusement, les moyens de communication sont apte à transmettre des instructions de reproduction du dispositif serveur au dispositif client en fonction d'une exécution d'une pile d'exécution du contenu interactif. Les caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description, faite à titre d'exemple, et des figures s'y rapportant qui représentent : Figure 1, un schéma simplifié des procédés d'interaction et de lecture de contenu interactif selon l'invention, - Figure 2, un schéma simplifié d'une architecture comportant un dispositif client et un dispositif serveur selon l'invention. Par contenu interactif est entendu tout type de contenu (vidéo, audio, AV, diaporama, etc.) ou applications avec lequel un utilisateur peut interagir. Les contenus interactifs sont notamment des contenus pour lesquels une action de l'utilisateur lors de la reproduction du contenu modifie le contenu reproduit pour cet utilisateur en fonction de l'action, tels que des vidéos interactives, jeux audio et/ou vidéo, etc. Par dispositif client est entendu un terminal de communication tel qu'un ordinateur, un Smartphone, une télévision connecté au réseau, un système comportant une télévision et un set top box, etc. L'invention étant mise en oeuvre via un navigateur Internet embarqué sur le dispositif client. Par contenu lu en continu (streaming en anglais) est entendu un contenu dont les données sont stockées sur un dispositif serveur, le dispositif serveur transmettant à un dispositif client requérant les données du contenu de manière continu. Les données ne sont pas stockées du coté du dispositif client qui ne télécharge pas le contenu, et les données sont transmises uniquement au dispositif client requérant : elles ne sont pas diffusés par le dispositif serveur. Par dispositif serveur est entendu notamment un dispositif de fourniture de service tel que des jeux en ligne. La figure 1 illustre un schéma simplifié des procédés d'interaction et de lecture de contenu interactif selon l'invention. Le procédé d'interaction avec un contenu interactif Ci lu en continu par un dispositif client DC sur un dispositif serveur DS comporte une transmission ITR par le dispositif client DC au dispositif serveur DS dans un protocole donné d'une commande cmd émise dans le protocole donné par un dispositif d'interaction DI, de telle sorte que la transmission ITR soit transparente pour le dispositif serveur. En particulier, le procédé d'interaction comporte une réception IREC par le dispositif client DC d'une instruction de reproduction ik provenant du dispositif serveur DS, ladite instruction de reproduction ik étant fonction d'une exécution EXE d'une pile d'exécution P dans laquelle ladite commande cmd a été injectée INJ par le dispositif serveur DS. Le procédé d'interaction est notamment inclus dans un procédé de contenu interactif à la demande mis en oeuvre par le dispositif client DC. Le procédé de contenu interactif à la demande comporte notamment une demande d'un contenu interactif STRT envoyant au dispositif serveur DS une requête de lecture d'un contenu interactif strt req. En particulier, le procédé de contenu interactif à la demande comporte une réception IREC par le dispositif client DC d'une instruction de reproduction ik provenant du dispositif serveur DS, ladite instruction de reproduction ik étant fonction d'une exécution EXE d'une pile d'exécution P dans laquelle ladite commande cmd a été injectée INJ par le dispositif serveur DS. En particulier, le procédé de contenu interactif à la demande comporte une reproduction contrôlé par une instruction de reproduction ik provenant du dispositif serveur DS. Une implémentation du procédé d'interaction est un programme comprenant des instructions de code de programme pour l'exécution des étapes du procédé d'interaction lorsque ledit programme est exécuté par un processeur. Le procédé de lecture en continu d'un contenu interactif Ci par un dispositif serveur DS à destination d'un dispositif client DS comporte une réception REC dans un protocole donné par le dispositif serveur DS du dispositif client DC d'une commande cmd émise dans le protocole donné par un dispositif d'interaction DI, de telle sorte que la transmission du dispositif client DC soit transparente pour le dispositif serveur. En particulier, le procédé de lecture comporte une injection INJ de la commande cmd dans une pile d'exécution P du contenu interactif lu Ci du dispositif serveur DS. En particulier, le procédé de lecture comporte une conversion (non illustrée) de la commande reçu en code d'interaction avant son injection P dans la pile d'exécution. Notamment, la commande est injectée sous la forme d'un code (touche correspondante au code touche pris en charge par l'OS cible c'est-à-dire le système d'exploitation du dispositif serveur DS - et aux caractéristiques du contenu interactif) En particulier, le procédé de lecture comporte une transmission ACTR d'instructions de reproduction ik du dispositif serveur DS au dispositif client DC en fonction d'une exécution EXE d'une pile d'exécution P du contenu interactif Ci. Ainsi, le dispositif serveur DS contrôle directement les moyens de reproduction du dispositif client comme s'il s'agissait des moyens de reproduction du dispositif serveur. Une implémentation du procédé de lecture est un programme comprenant des instructions de code de programme pour l'exécution des étapes du procédé de lecture selon lorsque ledit programme est exécuté par un processeur. Dans le cas où un utilisateur U souhaite jouer à un jeu en ligne en utilisant l'invention, l'utilisateur U à l'aide du dispositif client DC accèdera et démarrera un jeu Ci du dispositif serveur DS en envoyant une requête de lecture strt req. La requête strt req déclenchera une lecture en continu LCT du jeu Ci. Ainsi, le dispositif serveur lira LCT(el Ci) une première données el du jeu Ci, et en déduira EXE une instruction de reproduction il qui permettra au dispositif serveur DS de contrôler au moyen de cette instruction de reproduction il les moyens de reproduction du dispositif client DS. Notamment, le dispositif serveur DS enverra ACTR l'instruction de reproduction il au dispositif client DC qui recevra IREC l'instruction de reproduction il , cette instruction de reproduction reçue il impactera une reproduction AFF mise en oeuvre par le dispositif client DC. De même, le dispositif serveur lira LCT(el Ci) une deuxième données e2 du jeu Ci, et en déduira EXE une instruction de reproduction i2 qui permettra au dispositif serveur DS de contrôler au moyen de cette instruction de reproduction i2 les moyens de reproduction du dispositif client DS. Notamment, le dispositif serveur DS enverra ACTR l'instruction de reproduction i2 au dispositif client DC qui recevra IREC l'instruction de reproduction i2, cette instruction de reproduction reçue i2 impactera une reproduction AFF mise en oeuvre par le dispositif client DC, etc... Le dispositif serveur lira LCT(ek Ci) une deuxième données e2 du jeu Ci, et en déduira EXE une instruction de reproduction i2 qui permettra au dispositif serveur DS de contrôler au moyen de cette instruction de reproduction i2 les moyens de reproduction du dispositif client DS. Notamment, le dispositif serveur DS enverra ACTR l'instruction de reproduction i2 au dispositif client DC qui recevra IREC l'instruction de reproduction i2, cette instruction de reproduction reçue i2 impactera une reproduction AFF mise en oeuvre par le dispositif client DC.40 En particulier, les données el, e2, ek du jeu Ci lues par le dispositif serveur DS sont injectées INJ dans une pile d'exécution P. Le dispositif serveur DS exécutera EXE la donnée entrée en premier dans la pile P. Sur la figure 1, le dispositif serveur DS est en train de lire LOT la données ej qu'il injecte INJ dans la pile d'exécution après quoi, il passe à la données suivantes j=j+1 qu'il lira et injectera..., alors que ce même dispositif serveur DS est en train d'exécuter la données ek de la pile P. En fonction de la reproduction AFF faite par le dispositif client DC, l'utilisateur U peut interagir evt avec le jeu sur un dispositif d'interaction DI tel qu'une manette de jeu, clavier, écran tactile, commande vocale, interface kinétique (basée sur un ou plusieurs capteurs parmi notamment des caméras, des accéléromètres, etc.), etc. Le dispositif d'interaction capture CPT cet évènement d'interaction evt et le transmet EM sous forme d'une commande cmd au dispositif client DC qui le transmet ITR de manière transparente au dispositif serveur DS qui reçoit REC la commande cmd. Cette commande est exécutée EXE comme n'importe quelle autre données du jeu Ci par le dispositif serveur DS et déclenche l'envoi ACTR d'une instruction de reproduction ij au dispositif client. Ainsi, malgré la distance entre d'un coté le dispositif d'interaction DI et le dispositif client DC et d'un autre coté le dispositif serveur DS, le dispositif serveur DS perçoit le dispositif d'interaction DI et les moyens de reproduction du dispositif client comme étant ses propres périphériques locaux. La figure 2 illustre un schéma simplifié d'une architecture comportant un dispositif client 2 (DC) et un dispositif serveur 4 (DS) selon l'invention. Dans l'architecture illustrée, un utilisateur U dispose d'un dispositif client 2 et d'un dispositif d'interaction 1 (Dl) avec le dispositif client 2. Le dispositif client 2 échange avec une dispositif serveur 4 au travers d'un réseau de communication 3. Le dispositif client 2 de contenu interactif Ci lu en continu sur un dispositif serveur 4, comporte des moyens de communication 20, 202 apte à transmettre dans un protocole donné au dispositif serveur 4 une commande cmd émise dans le protocole donné par un dispositif d'interaction 1(DI), de telle sorte que la transmission soit transparente pour le dispositif serveur DS. En particulier, le dispositif client 2 comporte des moyens de reproduction 22a, 22b de contenu interactif Ci apte à être contrôler par le dispositif serveur 4 lors de la lecture en continu d'un contenu interactif. Le dispositif serveur 4 de contenu interactif lu en continu par un dispositif client 2 comporte des moyens de communication 40, 402 apte à recevoir du dispositif client 2 dans un protocole donné une commande cmd émise dans le protocole donné par un dispositif d'interaction 1, de telle sorte que la transmission du dispositif client 2 soit transparente pour le dispositif serveur 4. En particulier, les moyens de communication 40, 403 sont apte à transmettre des instructions de reproduction ik du dispositif serveur 4 au dispositif client 2 en fonction d'une exécution d'une pile d'exécution 43 du contenu interactif. Dans notre exemple d'usage à savoir que l'utilisateur U joue à un jeu interactif Ci streamé proposé par le dispositif serveur 4: Préalablement à une demande d'accès en streaming à un contenu interactif Ci, l'utilisateur U peut avoir rechercher dans le réseau de communication 3 des contenus interactifs de manière générale ou demander l'accès au catalogue de contenus interactifs proposés par un dispositif serveur 4 auquel il est abonné. L'utilisateur U demande au moyen du dispositif client 2, par exemple son ordinateur, l'accès en streaming à un jeu Ci au dispositif serveur 4. Pour cela, les moyens de traitement 23 (notamment un navigateur Internet) commande strt req la lecture du jeu Ci. Cette commande strt req est envoyée par les moyens de communications 20, 201 du dispositif client au travers du réseau de communication au dispositif serveur 4. Des moyens de réception 40, 401 du dispositif serveur 4 reçoivent cette commande d'accès strt req et soit transmettent cette commande strt req soit déclenchent des moyens de lecture 41. Les moyens de lecture 41 recherchent dans une base de données 42 le contenu interactif Ci et le lisent en mode continu à savoir que chaque élément ej du contenu interactif Ci sont transmis sans attendre la lecture complète du contenu à des moyens de traitements 44 pour permettre leur reproduction en continu. En particulier, les moyens de lecture 41 injectent chaque élément ei Ci dans une pile d'exécution 43. Les moyens de traitement 44 récupèrent chaque élément ek de la pile d'exécution p et produisent des instructions de reproduction ik que les moyens de communications 40, 403 transmettent au dispositif client 2 pour contrôler la reproduction du jeu Ci sur ce dispositif client 2. Les moyens de communications 20, 203 reçoivent les instructions de reproductions et les transmettent à des moyens de contrôle de reproduction 21 pour contrôler en fonction de ces instructions les moyens de reproductions 22a, 22b. Lors de la reproduction par le dispositif client 2 du jeu streamé par le dispositif serveur 4, l'utilisateur interagit evt au moyen du dispositif d'interaction 1 qui envoie une commande cmd au dispositif client 2. Les moyens de communications 20, 202 du dispositif client 2 transmettent la commande cmd à travers le réseau de communication 3 au dispositif serveur 4. Les moyens de communications 40, 402 du dispositif serveur 4 reçoivent la commande cmd et la transmettre aux moyens de traitement 44 pour générer une instruction de reproduction non seulement fonction des éléments ek du contenu interactif Ci lu mais aussi de cette commande cmd. Notamment, les moyens de communications 40, 402 injectent la commande dans la pile d'exéction 43 comme n'importe quel élément du contenu interactif lu. Ainsi, une instruction de reproduction ik est générée par les moyens de traitement 44 qui tient compte de l'interaction de l'utilisateur U avec le jeu. Cette instruction de reproduction ik est transmise comme n'importe quelle autre instruction de reproduction par les moyens de communications 40, 403 au dispositif client 2 pour contrôler la reproduction du jeu Ci sur ce dispositif client 2. Ainsi, le dispositif serveur perçoit le dispositif d'interaction 1 comme l'un de ses périphériques locaux. L'invention vise aussi un support ou plusieurs supports d'information. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker au moins l'un des programmes selon l'invention. 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 magnétique, par exemple une disquette ou un disque dur. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau notamment de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.40 Dans une autre implémentation, l'invention est mise en oeuvre au moyen de composants logiciels et/ou matériels. Dans cette optique le terme module peut correspondre aussi bien à un composant logiciel ou à un un composant matériel. Un composant logiciel correspond à un ou plusieurs programmes d'ordinateur, un ou plusieurs sous-programmes d'un programme, ou de manière plus générale à tout élément d'un programme ou d'un logiciel apte à mettre en oeuvre une fonction ou un ensemble de fonction selon la description ci-dessous. Un composant matériel correspond à tout élément d'un ensemble matériel (ou hardware) apte à mettre en oeuvre une fonction ou un ensemble de fonctions. REVENDICATIONS1. Procédé d'interaction avec un contenu interactif lu en continu par un dispositif client sur un dispositif serveur, caractérisé en ce que le procédé d'interaction comporte une transmission par le dispositif client au dispositif serveur dans un protocole donné d'une commande émise dans le protocole donné par un dispositif d'interaction, de telle sorte que la transmission soit transparente pour le dispositif serveur. 2. Procédé d'interaction selon la revendication précédente, caractérisé en ce que le procédé d'interaction comporte une réception par le dispositif client d'une instruction de reproduction provenant du dispositif serveur, ladite instruction de reproduction étant fonction d'une exécution d'une pile d'exécution dans laquelle ladite commande a été injectée par le dispositif serveur. 3. Programme comprenant des instructions de code de programme pour l'exécution des étapes du procédé d'interaction selon la revendication précédente lorsque ledit programme est exécuté par un processeur. 4. Procédé de lecture en continu d'un contenu interactif par un dispositif serveur à destination d'un dispositif client, caractérisé en ce que le procédé de lecture comporte une réception dans un protocole donné par le dispositif serveur du dispositif client d'une commande émise dans le protocole donné par un dispositif d'interaction, de telle sorte que la transmission du dispositif client soit transparente pour le dispositif serveur. 5. Procédé de lecture en continu selon la revendication précédente caractérisé en ce que le procédé comporte une injection de la commande dans une pile d'exécution du contenu interactif lu du dispositif serveur. 6. Procédé de lecture en continu selon la revendication précédente caractérisé en ce que le procédé de lecture comporte une conversion de la commande reçu en code d'interaction avant son injection dans la pile d'exécution. 7. Procédé de lecture en continu selon l'une quelconque des revendications 3 à 5, caractérisé en ce que le procédé de lecture comporte une transmission d'instructions de reproduction du dispositif serveur au dispositif client en fonction d'une exécution d'une pile d'exécution du contenu interactif. 8. Programme comprenant des instructions de code de programme pour l'exécution des étapes du procédé de lecture selon l'une quelconque des revendications 3 à 6 lorsque ledit programme est exécuté par un processeur. 9. Dispositif client de contenu interactif lu en continu sur un dispositif serveur, caractérisé en ce que le dispositif client comporte des moyens de communication apte à transmettre dans un protocole donné par le dispositif client au dispositif serveur d'une commande émise dans le protocole donné par un dispositif d'interaction, de telle sorte que la transmission soit transparente pour le dispositif serveur. 10. Dispositif client selon la revendication précédente caractérisé en ce que le dispositif client comporte des moyens de reproduction de contenu interactif apte à être contrôler par le dispositif serveur lors de la lecture en continu d'un contenu interactif. 11. Dispositif serveur de contenu interactif lu en continu par un dispositif client sur ledit dispositif serveur, caractérisé en ce que le dispositif serveur comporte des moyens de communication apte à recevoir dans un protocole donné par le dispositif serveur du dispositif client d'une commande émise dans le protocole donné par un dispositif d'interaction, de telle sorte que la transmission du dispositif client soit transparente pour le dispositif serveur. 12. Dispositif serveur selon la revendication précédente caractérisé en ce que les moyens de communication sont apte à transmettre des instructions de reproduction du dispositif serveur au dispositif client en fonction d'une exécution d'une pile d'exécution du contenu interactif.