FR 3072847 A1 20190426 FR 1771121 A 20171025 La présente invention concerne un procédé et un système de communication entre des premier et deuxième dispositifs. L'invention s'applique plus particulièrement à un procédé de communication entre des premier et deuxième dispositifs connectés l'un à l'autre, le procédé comportant les étapes suivantes : - le premier dispositif envoie une requête au deuxième dispositif, le deuxième dispositif reçoit la requête, le deuxième dispositif envoie au premier dispositif une réponse à la requête, le premier dispositif reçoit la réponse. Dans un tel procédé, lorsque premier dispositif a envoyé la requête, il commence à surveiller l'arrivée de messages afin de détecter l'arrivée de la réponse à sa requête. Une fois cette arrivée détectée, le premier dispositif la récupère pour pouvoir la traiter. Lorsque la réponse est prête à être traitée, elle est considérée comme reçue. Il peut être souhaité de prévoir un procédé de communication entre des premier et deuxième dispositifs qui permette d'optimiser l'utilisation des ressources matérielles du premier dispositif. L'invention a donc pour objet un procédé de communication entre des premier et deuxième dispositifs connectés l'un à l'autre, le procédé comportant les étapes suivantes : le premier dispositif envoie une requête au deuxième dispositif, le deuxième dispositif reçoit la requête, le deuxième dispositif envoie au premier dispositif une réponse à la requête, le premier dispositif reçoit la réponse, le procédé étant caractérisé en ce qu'il comporte en outre l'étape suivante : - le deuxième dispositif estime un délai au bout duquel le deuxième dispositif pourra envoyer la réponse, et, dans au moins certains cas, les étapes suivantes : - avant d'envoyer la réponse, le deuxième dispositif envoie un accusé de réception au premier dispositif, l'accusé de réception comportant le délai estimé, le premier dispositif reçoit l'accusé de réception, le premier dispositif calcule un intervalle de temps à partir du délai estimé, 2 - le premier dispositif laisse s'écouler l'intervalle de temps avant de commencer à surveiller l'arrivée de messages pour détecter l'arrivée de la réponse. Ainsi, grâce à l'invention, pendant l'intervalle de temps, le premier dispositif 5 peut réaliser d'autres tâches que la surveillance de l'arrivée de messages, ce qui permet de mieux utiliser ses ressources matérielles. De façon optionnelle, le procédé comporte en outre l'étape suivante : - le deuxième dispositif compare le délai estimé à un premier seuil, et l'étape d'envoi par le deuxième dispositif de l'accusé de réception, est réalisée si le 10 délai estimé est supérieur au premier seuil et n'est pas réalisée dans le cas contraire, de même que les autres étapes dépendant de l'envoi de l'accusé de réception. De façon optionnelle également, le délai estimé est égal à une moyenne de délais constatés par le deuxième dispositif pour répondre à des requêtes auxquelles le deuxième dispositif a précédemment répondu. 15 De façon optionnelle également, le procédé comporte en outre l'étape suivante : - le deuxième dispositif détermine s'il a besoin d'accéder à un dispositif parmi une liste prédéterminée de dispositifs, et l'étape d'envoi par le deuxième dispositif de l'accusé de réception, est réalisée si 20 un tel accès est nécessaire et n'est pas réalisée dans le cas contraire, de même que les autres étapes dépendant de l'envoi de l'accusé de réception. De façon optionnelle également, le procédé comporte en outre l'étape suivante : - le premier dispositif compare le délai estimé à un deuxième seuil, 25 et l'étape de calcul par le premier dispositif de l'intervalle de temps est réalisée si le délai estimé est supérieur au deuxième seuil et n'est pas réalisée dans le cas contraire, de même que l'étape consistant à laisser s'écouler l'intervalle de temps avant de commencer à surveiller l'arrivée de messages. De façon optionnelle également, l'intervalle de temps est pris proportionnel au 30 délai estimé, selon un rapport de proportion prédéfini. Il est également proposé un système de communication comportant des premier et deuxième dispositifs connectés l'un à l'autre, le premier dispositif comportant des moyens logiciels et/ou matériels pour : - envoyer une requête au deuxième dispositif, 3 - recevoir, de la part du deuxième dispositif, un accusé de réception comportant un délai estimé au bout duquel le deuxième dispositif pourra envoyer une réponse à la requête, - calculer un intervalle de temps à partir du délai estimé, 5 - laisser s'écouler l'intervalle de temps avant de commencer à surveiller l'arrivée de messages pour détecter l'arrivée de la réponse, - recevoir la réponse, et le deuxième dispositif comportant des moyens logiciels et/ou matériels pour : - recevoir la requête, 10 - estimer le délai au bout duquel le deuxième dispositif pourra envoyer la réponse, - envoyer, avant d'envoyer la réponse, l'accusé de réception au premier dispositif, l'accusé de réception comportant le délai estimé, - envoyer la réponse. 15 L'invention sera mieux comprise à l'aide de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés dans lesquels : la figure 1 représente schématiquement la structure générale d'un système de communication mettant en oeuvre l'invention, 20 la figure 2 illustre les étapes successives d'un procédé de communication réalisé dans le système de communication de la figure 1 et mettant en oeuvre l'invention, et les figures 3 et 4 sont des chronogrammes illustrant les échanges entre des premier et deuxième dispositifs du système de communication de la 25 figure 1, dans respectivement deux situations différentes. En référence à la figure 1, un système de communication 100 mettant en oeuvre l'invention va à présent être décrit. Le système de communication 100 comporte des premier et deuxième dispositifs 102, 104, ainsi qu'un réseau de communication 106 par lequel les premier 30 et deuxième dispositifs 102, 104 sont connectés l'un à l'autre. Le réseau de communication 106 est par exemple le réseau Internet. En particulier, chacun des premier et deuxième dispositifs 102, 104 comporte une interface réseau 102A, 104A par laquelle le premier dispositif 102, respectivement le deuxième dispositif 104, est connecté au réseau de communication 35 106 pour envoyer et recevoir des messages. 4 Par ailleurs, dans l'exemple décrit, les premier et deuxième dispositifs 102, 104 sont des dispositifs informatiques comportant chacun une unité de traitement 102B, 104B et une mémoire 1020, 1040 dans laquelle sont enregistrés un ou plusieurs programmes d'ordinateur comportant des instructions destinées à être 5 exécutées par l'unité de traitement 102B, 104B. L'unité de traitement 102B, 104B comporte par exemple un processeur et la mémoire 1020, 1040 comporte par exemple une mémoire RAM (de l'anglais « Random Access Memory ») volatile. Dans ce cas, chacun des premier et deuxième dispositifs 102, 104 comporte généralement une unité de stockage non-volatile (telle qu'un disque dur) non représentée, depuis 10 laquelle le ou les programmes d'ordinateur sont chargés dans la mémoire RAM volatile pour leur exécution. En outre, dans l'exemple décrit, la mémoire 1020 du premier dispositif 102 comporte deux programmes Pi, P2 en cours d'exécution, tandis que la mémoire 1040 du deuxième dispositif 104 comporte un programme P1' en cours d'exécution. 15 Les programmes Pi, P-1' sont conçus pour communiquer l'un avec l'autre en échangeant des messages au travers du réseau de communication 106, c'est-à-dire en envoyant et recevant des messages. La réception d'un message signifie dans le cadre de la présente invention que le message est prêt à être traité. De ce fait, la réception d'un message n'est effective 20 qu'au bout de plusieurs phases. Tout d'abord, le message arrive au dispositif 102, 104, par exemple le message est enregistré dans l'interface réseau 102A, 104A, mais le programme Pi, P1' n'est pas encore au courant de son arrivée. Ensuite, l'arrivée du message est détectée par le programme Pi, P1'. Afin de détecter l'arrivée d'un message, le programme Pi, P1' est conçu pour surveiller l'arrivée du message en 25 interrogeant de temps en temps l'unité dans laquelle il est enregistré, l'interface réseau 102A, 104A dans l'exemple décrit (mécanisme appelé « polling » en anglais). Les interrogations peuvent être réalisées en continu, dans ce cas on parle généralement d'attente active (« busy wait » en anglais) ou bien à des intervalles réguliers ou irréguliers dans le temps. Dans tous les cas, la surveillance de l'arrivée 30 d'un message utilise des ressources matérielles du dispositif 102, 104. Une fois l'arrivée du message détectée, le programme Pl, P1' le récupère pour le traiter. À ce moment, le message est considéré comme reçu. En référence à la figure 2, un procédé 200 de communication entre les premier et deuxième dispositifs 102, 104, mettant en oeuvre l'invention, va à présent 35 être décrit. 5 Dans l'exemple qui va suivre, lorsqu'il est indiqué qu'un dispositif 102, respectivement 104, réalise une action, cela signifie que l'unité de traitement 102B, respectivement 104B de ce dispositif 102, respectivement 104, exécute le programme P1, respectivement P1', pour réaliser cette action. 5 Au cours d'une étape 202, le premier dispositif 102 envoie une requête au deuxième dispositif 104. Au cours d'une étape 204, le premier dispositif 102 commence à surveiller l'arrivée de messages pour détecter l'arrivée d'un message de la part du deuxième dispositif 104. 10 Au cours d'une étape 206, le deuxième dispositif 104 reçoit la requête Rq. Au cours d'une étape 208, le deuxième dispositif 104 estime un délai D au bout duquel une réponse R à la requête Rq pourra être envoyée. Par exemple, le délai estimé D est égal à une moyenne de délais constatés par le deuxième dispositif 104 pour répondre à des requêtes auxquelles le deuxième dispositif 104 a 15 précédemment répondu. Au cours d'une étape 210, le deuxième dispositif 104 compare le délai estimé D à un seuil Si. Le seuil Si permet de distinguer entre le cas où le deuxième dispositif 104 peut répondre immédiatement à la requête Rq et le cas où le deuxième dispositif 104 doit effectuer des opérations complexes et consommatrices de temps 20 pour répondre. Si le délai estimé D est inférieur au seuil Si, le procédé 200 passe directement à l'étape 230 d'envoi d'une réponse R par le deuxième dispositif 104. En effet, lorsque le délai estimé D est très court, il n'est pas utile d'essayer de réduire le temps de surveillance du premier dispositif 102 pour exécuter à la place d'autres 25 tâches, car le coût pour obtenir cette réduction de temps de surveillance et pour commuter vers une autre tâche risque d'être supérieur au gain. En revanche, si le délai estimé D est supérieur au seuil Si, les étapes suivantes sont mises en oeuvre. Au cours d'une étape 212, le deuxième dispositif 104 envoie au premier 30 dispositif 102 un accusé de réception AR comportant le délai estimé D. Au cours d'une étape 214, l'accusé de réception AR arrive au premier dispositif 102. Au cours d'une étape 216, le premier dispositif 102, qui est en train de surveiller l'arrivée de messages, détecte l'arrivée de l'accusé de réception AR et le 35 récupère. Le premier dispositif 102 arrête alors de surveiller l'arrivée de messages. 6 Au cours d'une étape 218, le premier dispositif 102 compare le délai estimé D à un seuil S2. Si le délai estimé D est inférieur au seuil S2, au cours d'une étape 220, le premier dispositif 102 commence à surveiller l'arrivée de messages. Le procédé 200 5 passe alors directement à l'étape 230 d'envoi d'une réponse R par le deuxième dispositif 104. En effet, de même que pour le seuil 51, lorsque le délai estimé D est très court, il n'est pas utile d'essayer de réduire le temps de surveillance du premier dispositif pour exécuter à la place d'autres tâches, car le coût pour obtenir cette réduction de temps de surveillance et pour commuter vers une autre tâche risque 10 d'être supérieur au gain. Le seuil S2 est par exemple choisi en fonction de la vitesse de traitement de données du premier dispositif 102. Par exemple, un ordinateur actuel peut mettre 100 ps pour changer de tâche (et autant pour revenir au programme P1). Ainsi, le seuil S2 est par exemple choisi supérieur à 200 us, par exemple supérieur ou égal à 1 ms pour garder un peu de marge. 15 En revanche, si le délai D est supérieur au seuil S2, les étapes suivantes sont mises en oeuvre. Au cours d'une étape 222, le premier dispositif 102 calcule un intervalle de temps I à partir du délai D. Au cours d'une étape 226, le premier dispositif 102 laisse s'écouler l'intervalle 20 de temps I avant de commencer à surveiller l'arrivée de messages. Autrement dit, pendant l'intervalle de temps I, le premier dispositif 102 ne surveille pas l'arrivée de messages. Par exemple, l'intervalle de temps I est pris proportionnel au délai estimé D, selon un rapport de proportion prédéfini. Dans un mode de réalisation, l'intervalle de 25 temps I est pris égal au délai estimé D (rapport de proportion égal à 1). Alternativement, le rapport de proportion est pris inférieur à 1, par exemple compris entre 0,9 et 1. Ainsi, on augmente les chances de commencer la surveillance avant l'arrivée de la réponse R, et donc de détecter l'arrivée de la réponse R dès qu'elle se produit. Alternativement encore, le rapport de proportion est pris supérieur à 1, par 30 exemple compris entre 1 et 1,1. Ainsi, on augmente les chances de commencer la surveillance après l'arrivée de la réponse R ou bien peu de temps avant, ce qui permet de diminuer la durée de la surveillance. Pendant l'intervalle de temps I, comme le premier dispositif 102 ne surveille pas l'arrivée de messages, il peut réaliser d'autres tâches. Par exemple, le temps 35 d'unité de traitement libéré peut être utilisé par le programme P1 pour réaliser 7 d'autres tâches. Alternativement, le programme P1 peut se mettre en sommeil pendant l'intervalle de temps I, ce qui laisse plus de temps d'unité de traitement au programme P2 pour exécuter d'autres tâches. Par ailleurs, l'utilisation de l'accusé de réception AR avec le délai estimé D 5 évite que le premier dispositif 102 ne renvoie la requête lorsque le délai de réponse est long. Ainsi, les ressources du réseau de commutation 106 sont économisées. Au cours d'une étape 228, une fois l'intervalle de temps I écoulé, le premier dispositif 102 commence à surveiller l'arrivée de messages. Au cours d'une étape 230, le deuxième dispositif 104 envoie la réponse R au 10 premier dispositif 102. Au cours d'une étape 232, la réponse R arrive au premier dispositif 102. Au cours d'une étape 234, le premier dispositif 102, qui est en train de surveiller l'arrivée de messages, détecte l'arrivée de la réponse R et la récupère. Le premier dispositif 102 arrête alors la surveillance de l'arrivée de messages et traite la 15 réponse R. La réponse R comporte par exemple les données requises dans la requête Rq, ou bien, lorsque le deuxième dispositif 104 n'a pas réussi à obtenir ces données requises, une indication d'échec. En référence à la figure 3, le procédé 200 est illustré sous la forme d'un 20 chronogramme où deux flèches verticales représentent des lignes de temps de respectivement les premier et deuxième dispositifs 102, 104. La double flèche désignée par la référence « S » indique la surveillance de l'arrivée de messages. Le procédé 200 est illustré dans le cas où le délai estimé D est inférieur au seuil Si, c'est-à-dire dans le cas où le mécanisme d'accusé de réception n'est pas mis en 25 oeuvre. En référence à la figure 4, le procédé 200 est illustré sous la forme d'un chronogramme similaire à celui de la figure 3, mais dans le cas où le délai estimé D est supérieur à la fois au seuil Si et au seuil S2. Comme cela est visible sur la figure 4, le premier dispositif 102 peut réaliser d'autres tâches que celle de surveillance de 30 l'arrivée de messages, pendant tout l'intervalle de temps I. En l'absence de l'invention, la surveillance aurait dû s'étendre de l'étape 202 à l'étape 232. Il apparaît clairement qu'un système et un procédé de communication tels que ceux décrits précédemment permettent d'optimiser l'utilisation des ressources matérielles du premier dispositif. 8 On notera par ailleurs que l'invention n'est pas limitée aux modes de réalisation décrits précédemment. Il apparaîtra en effet à l'homme de l'art que diverses modifications peuvent être apportées aux modes de réalisation décrits ci-dessus, à la lumière de l'enseignement qui vient de lui être divulgué. 5 Par exemple, il est possible de se passer des deux étapes de comparaison 210, 218 pour toujours envoyer l'accusé de réception AR avant la réponse R. Alternativement, puisque les deux étapes de comparaison 210, 218 ont à peu près la même fonction, à savoir ne pas chercher à réduire le temps de surveillance lorsque le délai estimé D est trop court, il est possible de ne garder qu'une seule de ces deux 10 étapes 210, 218 de comparaison. En outre, il est possible de remplacer l'étape de comparaison 210 par une étape au cours de laquelle le deuxième dispositif 104 détermine s'il a besoin d'accéder à un dispositif parmi une liste prédéterminée de dispositifs considérés comme lents. Un dispositif lent est par exemple un disque dur en veille ou un 15 dispositif connecté au réseau de communication 106. Si un tel accès n'est pas nécessaire, le procédé passe directement à l'étape 230, sinon il passe à l'étape 212. En outre, les programmes Pi, P1' pourraient être composés chacun de plusieurs programmes. En outre, le procédé 200 décrit précédemment suppose que les messages 20 échangés sont conformes à un protocole de communication convenu entre les deux dispositifs 102, 104. En particulier, si la requête Rq n'est pas conforme au protocole, le deuxième dispositif 104 renverra, à la place de l'accusé de réception AR et de la réponse R, un message de refus de la requête Rq. En outre, l'envoi d'un accusé de réception ne veut pas obligatoirement dire 25 qu'une réponse positive sera envoyée par le deuxième dispositif 104. En effet, même après avoir envoyé un accusé de réception AR, le deuxième dispositif 104 peut toujours envoyer par la suite une réponse R indiquant un échec, par exemple lorsque le deuxième dispositif 104 détecte une erreur (par exemple, une ressource nécessaire qui est devenue indisponible) après l'envoi de l'accusé de réception. 30 Par ailleurs, bien que l'exemple décrit présente des dispositifs 102, 104 qui sont des dispositifs informatiques mettant en oeuvre des programmes d'ordinateur, l'invention n'est pas limitée à ce cas de figure. En effet, les fonctions associées aux instructions du ou des programmes d'ordinateur pourraient être au moins en partie micro programmées ou micro câblées dans des circuits intégrés dédiés. Ainsi, en 35 variante, chacun des programme Pi, P1' pourrait être remplacé par un dispositif 9 électronique composé uniquement de circuits numériques (sans programme d'ordinateur) pour la réalisation des mêmes fonctions. Dans les revendications qui suivent, les termes utilisés ne doivent pas être interprétés comme limitant les revendications aux modes de réalisation exposés dans 5 la présente description, mais doivent être interprétés pour y inclure tous les équivalents que les revendications visent à couvrir du fait de leur formulation et dont la prévision est à la portée de l'homme de l'art en appliquant ses connaissances générales à la mise en oeuvre de l'enseignement REVENDICATIONS1. Procédé (200) de communication entre des premier et deuxième dispositifs (102, 104) connectés l'un à l'autre, le procédé comportant les étapes suivantes : - le premier dispositif (102) envoie (202) une requête (Rq) au deuxième dispositif (104), - le deuxième dispositif (104) reçoit (206) la requête (Rq), - le deuxième dispositif (104) envoie (230) au premier dispositif (102) une réponse (R) à la requête (Rq), - le premier dispositif (102) reçoit (234) la réponse (R), le procédé (200) étant caractérisé en ce qu'il comporte en outre l'étape suivante : - le deuxième dispositif (104) estime (210) un délai (D) au bout duquel le deuxième dispositif (104) pourra envoyer la réponse (R), et, dans au moins certains cas, les étapes suivantes : - avant d'envoyer la réponse (R), le deuxième dispositif (104) envoie (212) un accusé de réception (AR) au premier dispositif (102), l'accusé de réception (AR) comportant le délai estimé (D), - le premier dispositif (102) reçoit (216) l'accusé de réception (AR), - le premier dispositif (102) calcule (222) un intervalle de temps (I) à partir du délai estimé (D), - le premier dispositif (102) laisse s'écouler (226) l'intervalle de temps (I) avant de commencer à surveiller l'arrivée de messages pour détecter l'arrivée de la réponse (R). 2. Procédé (200) selon la revendication 1, comportant en outre l'étape suivante : - le deuxième dispositif (104) compare (210) le délai estimé (D) à un premier seuil (51), et dans lequel l'étape d'envoi (212) par le deuxième dispositif (104) de l'accusé de réception (AR), est réalisée si le délai estimé (D) est supérieur au premier seuil (51) et n'est pas réalisée dans le cas contraire, de même que les autres étapes dépendant de l'envoi de l'accusé de réception (AR). 3. Procédé (200) selon la revendication 2, dans lequel le délai estimé (D) est égal à une moyenne de délais constatés par le deuxième dispositif (104) pour 11 répondre à des requêtes auxquelles le deuxième dispositif (104) a précédemment répondu. 4. Procédé (200) selon la revendication 1, comportant en outre l'étape suivante : 5 - le deuxième dispositif (104) détermine s'il a besoin d'accéder à un dispositif parmi une liste prédéterminée de dispositifs, et dans lequel l'étape d'envoi (212) par le deuxième dispositif (104) de l'accusé de réception (AR), est réalisée si un tel accès est nécessaire et n'est pas réalisée dans le cas contraire, de même que les autres étapes dépendant de l'envoi de l'accusé de 10 réception (AR). 5. Procédé (200) selon l'une quelconque des revendications 1 à 4, comportant en outre l'étape suivante : - le premier dispositif (102) compare (218) le délai estimé (D) à un deuxième seuil (S2), 15 et dans lequel l'étape de calcul (222) par le premier dispositif (102) de l'intervalle de temps (I) est réalisée si le délai estimé (D) est supérieur au deuxième seuil (S2) et n'est pas réalisée dans le cas contraire, de même que l'étape consistant à laisser s'écouler (226) l'intervalle de temps (I) avant de commencer à surveiller l'arrivée de messages. 20 6. Procédé (200) selon l'une quelconque des revendications 1 à 5, dans lequel l'intervalle de temps (I) est pris proportionnel au délai estimé (D), selon un rapport de proportion prédéfini. 7. Système de communication (100) comportant des premier et deuxième dispositifs (102, 104) connectés l'un à l'autre, le premier dispositif (102) comportant 25 des moyens logiciels et/ou matériels pour : - envoyer une requête (Rq) au deuxième dispositif (104), - recevoir, de la part du deuxième dispositif (104), un accusé de réception (AR) comportant un délai estimé (D) au bout duquel le deuxième dispositif (104) pourra envoyer une réponse (R) à la 30 requête (Rq), - calculer un intervalle de temps (I) à partir du délai estimé (D), - laisser s'écouler l'intervalle de temps (I) avant de commencer à surveiller l'arrivée de messages pour détecter l'arrivée de la réponse (R), - recevoir la réponse (R), 12 et le deuxième dispositif (104) comportant des moyens logiciels et/ou matériels pour : - recevoir la requête (Rq), - estimer le délai (D) au bout duquel le deuxième dispositif (104) pourra envoyer la réponse (R), 5 - envoyer, avant d'envoyer la réponse (R), l'accusé de réception (AR) au premier dispositif (102), l'accusé de réception (AR) comportant le délai estimé (D), - envoyer la réponse (R).