Brevet FR3100459A1 — publié le 20210312

Procédé de capture et de diffusion pour coordonner des commandes produites par des dispositifs d’entrée-sortie d’un premier et d’un deuxième client distant (4, 4’) associés à une même session informatique s’exécutant sur un ordinateur hôte (1), le procédé de capture et de diffusion mettant en œuvre depuis l’ordinateur hôte (1) les opérations suivantes : adresser à chaque client distant (4, 4’) une même séquence de repères temporels identifiables ; recevoir et stocker temporairement les commandes provenant des premier et deuxième clients distants (4, 4’) pendant une durée de stockage, chaque commande étant associée à une donnée de coordination rattachant un instant de production de la commande à un repère temporel ; ordonner les commandes reçues pendant la durée de stockage selon leur donnée de coordination associée ; fournir successivement les commandes ordonnées à la session informatique. Figure à publier avec l’abrégé : Fig. 4 PROCÉDÉ DE CAPTURE ET DE DIFFUSION POUR COORDONNER DES COMMANDES PRODUITES PAR DEUX CLIENTS DISTANTS ASSOCIÉS À UNE MÊME SESSION INFORMATIQUE La présente invention porte sur un procédé de capture et de diffusion pour traiter des commandes produites par des dispositifs d’entrée-sortie d’au moins deux clients distants associés à une même session informatique s’exécutant sur un ordinateur hôte. La présente invention porte également sur un procédé d’exploitation pour traiter ces commandes. L’invention trouve une application particulière dans le domaine du jeu vidéo en réseau, lorsque plusieurs participants (utilisateurs des clients distants) reçoivent les mêmes informations de session et souhaitent interagir simultanément avec la session, et plus particulièrement avec l’application de jeu qui s’y exécute. ARRIERE PLAN TECHNOLOGIQUE DE L’INVENTION Les documents US2017228851 et FR30460176 décrivent une configuration d’un système informatique de type infonuagique (ou « cloud computing » selon l’expression anglo-saxonne consacrée) dans lequel les dispositifs d’interface (écran, clavier, manette, ...) sont distants de la partie traitement et stockage de la session informatique. Les dispositifs d’interface se trouvent à proximité même de l’utilisateur et forment un client distant. Les composants de traitement et de stockage constituant l’ordinateur hôte se trouvent dans un lieu d’hébergement distinct et généralement éloigné du client distant. La session informatique d’utilisateur s’exécute sur l’ordinateur hôte et l’ordinateur hôte et le client distant s’échangent respectivement des informations de session et des données de commande par l’intermédiaire d’un réseau informatique, par exemple le réseau Internet auquel ils sont l’un et l’autre reliés. Ces informations de session peuvent ainsi comprendre des images et du son destiné à être reproduit du côté du client distant, ainsi que des informations de commande, telles que des instructions commandées depuis l’ordinateur hôte, destinées à être communiquées au client distant, qui partage en retour des données produites par les dispositifs d’entrée-sortie telles que des données d’affichage, de son et de commande. On émule de la sorte, pour l’utilisateur, la présence d’un ordinateur physique performant sans qu’il ait besoin de détenir directement ou de disposer d’un tel équipement. Certaines applications informatiques nécessitent ou peuvent tirer profit de la faculté, pour un utilisateur, de partager sa session informatique avec au moins un autre participant. Il peut s’agir par exemple de partager les images produites par la session informatique et s’affichant sur l’écran du client distant avec cet autre participant. Il peut s’agir également de partager ou donner le contrôle de la session à cet autre participant, avec laquelle il peut interagir par exemple par l’intermédiaire de son clavier et de sa souris. C’est le cas notamment dans les jeux en ligne où un groupe de joueurs peut souhaiter partager entre eux leurs écrans respectifs afin de disposer d’une vision plus globale de l’environnement dans lequel ils évoluent. Cela peut être également le cas dans le domaine de l’enseignement à distance où un enseignant peut souhaiter avec accès aux images s’affichant sur l’écran de son élève et éventuellement prendre le contrôle de la session pour, par exemple, le guider ou le corriger. Quelle que soit l’application justifiant le besoin de partager les informations d’une session informatique, plusieurs clients distants peuvent être susceptibles d’interagir en même temps avec la même session informatique, en envoyant des commandes à l’ordinateur hôte. Dans cette situation, l’ordinateur hôte reçoit les commandes adressées par chaque client distant (mouvement de curseurs, clic de souris, …) et les décode et les injecte dans la session selon leur ordre d’arrivée pour qu’elles y soient traitées par l’application ou les applications hébergée(s) dans cette session. Chaque client distant souffre d’une latence, c’est-à-dire un délai de communication avec l’ordinateur hôte, qui dépend de nombreux facteurs, notamment la qualité de son réseau Internet, et qui diffère donc généralement de celle d’un autre client distant. En conséquence, les informations de session adressées par l’ordinateur hôte aux clients d’une même session informatique ne sont pas reçues au même instant par ces clients, dans un repère temporel absolu. Cette différence de latence peut conduire à des situations dans lesquelles un client distant ayant réagi plus rapidement qu’un autre client à l’apparition d’une information de session (par exemple l’affichage d’une nouvelle image d’écran) voit sa commande être reçue par l’ordinateur hôte, et donc traitée par la session, postérieurement à celle de l’autre client. A titre d’exemple, on a représenté sur la figure 3 un chronogramme des échanges d’informations classiquement opérés entre un ordinateur hôte et un premier et un deuxième client distant. Sur cette figure, trois informations de session, par exemple trois images d’écran successives I1, I2 et I3 sont produites par la session informatique. Ces trois informations de session sont respectivement émises aux temps t01, t02, t03 par l’ordinateur hôte 1, à destination des clients distants 4 et 4’. Le premier client 4 reçoit les informations I1, I2, I3 respectivement aux temps t11, t12, t13. Le deuxième client 4’, dont la latence est plus importante que le premier client 4, reçoit ces informations I1, I2, I3 respectivement aux temps t11’, t12’, t13’, avec t11’ > t11, t12’ > t12 et t13’ > t13. Ici, le deuxième client distant 4’ souffrant d’une très forte latence, il reçoit la première information I1 après que le premier client 4 ait reçu la troisième information I3. L’utilisateur du client distant 4, à la réception de la première information I1, effectue deux instructions au moyen des dispositifs d’entrée/sortie du premier client 4, par exemple deux clics de souris successifs, désignés a et b sur la figure 3, respectivement effectuées aux temps ta et tb. De la même façon, l’utilisateur du deuxième client 4’, à la réception de la première information I1, effectue deux instructions au moyen des dispositifs d’entrée/sortie du deuxième client 4’ désignés a’ et b’, respectivement effectuées aux temps ta’ et tb’. Dans cette illustration, le premier client distant 4 effectue la première instruction a entre la réception des informations I1 et I2, et la deuxième instruction entre la réception des informations I2 et I3. Le deuxième client distant 4’, plus réactif, effectue les deux instructions entre la réception des informations I1 et I2. Plus particulièrement, il effectue les deux instructions a’, b’, plus rapidement que la première instruction a du premier client 4 après la réception de la première information I1. Chacune des instructions, constituant des données de commande, est fournie par chaque client distant 4, 4’ à l’ordinateur hôte 1, qui reçoit ces données et les fournit à la session informatique. Les instants de réception des instructions a, b, a’, b’ par l’ordinateur hôte 1 sont respectivement notés t0a, t0b, t0a’, t0b’. L’ordinateur hôte fournit les données de commande à la session dans leur ordre d’arrivée et la session informatique traite donc les commandes dans l’ordre a, b, a’, b’. Cet ordre ne reflète pas le temps de réaction réel de chaque client 4, 4’ suivant la réception d’une information de session. En particulier, cet ordre répercute les phénomènes de latence pouvant affecter chaque client. On comprend donc que la variabilité de la latence peut engendrer une distorsion de traitement, lors de la réception par l’ordinateur hôte, des commandes fournies par les différents clients. Cette distorsion de traitement est susceptible de perturber la bonne utilisation d’une même session informatique par une pluralité de clients distants. OBJET DE L’INVENTION Un but de l’invention est de remédier au moins en partie à ce problème. Elle vise plus particulièrement un procédé de capture et de diffusion et un procédé d’exploitation pour coordonner et traiter des commandes fournies par les clients distants, qui permettent de coordonner ces commandes malgré la variabilité de la latence pouvant affecter les clients. BREVE DESCRIPTION DE L’INVENTION En vue de la réalisation de ce but, l’objet de l’invention propose un procédé de capture et de diffusion pour traiter des commandes produites par des dispositifs d’entrée-sortie d’un premier et d’un deuxième client distant associés à une même session informatique s’exécutant sur un ordinateur hôte, le procédé de capture et de diffusion mettant en œuvre depuis l’ordinateur hôte les opérations suivantes : adresser à chaque client distant une même séquence de repères temporels identifiables ; recevoir et stocker temporairement les commandes provenant des premier et deuxième clients distants pendant une durée de stockage, chaque commande étant associée à une donnée de coordination rattachant un instant de production de la commande à un repère temporel ; ordonner les commandes reçues pendant la durée de stockage selon leur donnée de coordination associée ; fournir successivement les commandes ordonnées à la session informatique. Selon d’autres caractéristiques avantageuses et non limitatives de l’invention, prises seules ou selon toute combinaison techniquement réalisable : chaque repère temporel est associé à une information de session simultanément adressée par l’ordinateur hôte aux clients distants ; les informations de session comprennent des informations d’affichage, de son et/ou de commande ; les informations d’affichage sont des images de la session informatique, chaque repère temporel comprenant un numéro d’image ; la durée de stockage est comprise entre 1 ms et 1 s ; L’objet de l’invention propose également un programme d’ordinateur contenant des instructions aptes à la mise en œuvre des opérations du procédé de capture et de diffusion lorsque le procédé est exécuté dans l’ordinateur hôte. L’objet de l’invention propose également un procédé d’exploitation pour traiter une commande produite par un dispositif d’entrée-sortie d’un client distant associé à une session informatique s’exécutant sur un ordinateur hôte, le procédé d’exploitation mettant en œuvre les opérations suivantes : recevoir une séquence de repères temporels identifiables fournies par l’ordinateur hôte ; élaborer une donnée de coordination rattachant un instant de production de la commande à un des repères temporels ; fournir la commande associée à la donnée de coordination à l’ordinateur hôte. Selon d’autres caractéristiques avantageuses et non limitatives de l’invention, prises seules ou selon toute combinaison techniquement réalisable : la donnée de coordination comprend un identifiant du repère temporel associé à la donnée de coordination ; la donnée de coordination comprend une mesure du temps séparant l’instant de production de la commande à la réception du repère temporel rattaché ; L’objet de l’invention propose également un programme d’ordinateur contenant des instructions aptes à la mise en œuvre des opérations du procédé d’exploitation lorsque le procédé est exécuté dans le client distant. D’autres caractéristiques et avantages de l’invention ressortiront de la description détaillée de l’invention qui va suivre en référence aux figures annexées sur lesquels : La figure 1 représente une architecture informatique permettant de mettre en œuvre des procédés de capture et de diffusion et d’exploitation conformes à l’invention ; La figure 2 représente les opérations successives d’un procédé de capture et de diffusion et d’un procédé d’exploitation conformes à l’invention. La figure 3 représente un chronogramme des échanges d’informations entre un ordinateur hôte et un premier et un deuxième client distant de l’état de la technique. La figure 4 représente un chronogramme des échanges d’informations entre un ordinateur hôte et un premier et un deuxième client distant mettant en œuvre un procédé de capture et de diffusion et un procédé d’exploitation conformes à l’invention. Procédé de capture et de diffusion pour coordonner des commandes produites par des dispositifs d’entrée-sortie d’un premier et d’un deuxième client distant (4, 4’) associés à une même session informatique s’exécutant sur un ordinateur hôte (1), le procédé de capture et de diffusion mettant en œuvre depuis l’ordinateur hôte (1) les opérations suivantes : - adresser (S4, S4’) à chaque client distant (4, 4’) une même séquence de repères temporels identifiables ; - recevoir (S11) et stocker temporairement les commandes provenant des premier et deuxième clients distants (4, 4’) pendant une durée de stockage, chaque commande étant associée à une donnée de coordination rattachant un instant de production de la commande à un repère temporel ; - ordonner (S13) les commandes reçues pendant la durée de stockage selon leur donnée de coordination associée ; - fournir successivement (S14) les commandes ordonnées à la session informatique. Procédé de capture et de diffusion selon la revendication précédente dans lequel chaque repère temporel est associé à une information de session simultanément adressée par l’ordinateur hôte (1) aux clients distants (4, 4’). Procédé de capture et de diffusion selon la revendication précédente dans lequel les informations de session comprennent des informations d’affichage, de son et/ou de commande. Procédé de capture et de diffusion selon la revendication précédente dans lequel les informations d’affichage sont des images de la session informatique, chaque repère temporel comprenant un numéro d’image. Procédé de capture et de diffusion selon l’une des revendications précédentes dans lequel la durée de stockage est comprise entre 1 ms et 1 s. Programme d’ordinateur contenant des instructions aptes à la mise en œuvre des opérations du procédé de capture et de diffusion selon l’une des revendications précédentes lorsque le procédé est exécuté dans l’ordinateur hôte (1). Procédé d’exploitation pour traiter une commande produite par un dispositif d’entrée-sortie d’un client distant (4, 4’) associé à une session informatique s’exécutant sur un ordinateur hôte (1), le procédé d’exploitation mettant en œuvre les opérations suivantes : - recevoir (S5, S5’) une séquence de repères temporels identifiables fournies par l’ordinateur hôte (1) ; - élaborer (S8, S8’) une donnée de coordination rattachant un instant de production de la commande à un des repères temporels ; - fournir (S10, S10’) la commande associée à la donnée de coordination à l’ordinateur hôte (1). Procédé d’exploitation selon la revendication précédente dans lequel la donnée de coordination comprend un identifiant du repère temporel associé à la donnée de coordination. Procédé d’exploitation selon l’une des revendications 7 et 8 dans lequel la donnée de coordination comprend une mesure du temps séparant l’instant de production de la commande à la réception du repère temporel rattaché. Programme d’ordinateur contenant des instructions aptes à la mise en œuvre des opérations du procédé d’exploitation selon la revendication précédente lorsque le procédé est exécuté dans le client distant (4, 4’).