FR 3092920 A1 20200821 FR 1901483 A 20190214 Description Titre de l'invention : TRAITEMENT D'INTERROGATIONS DE BASE DE DONNÉES COMPLEXES [0001] La spécification concerne de façon générale la technologie de base de données, plus spécifiquement un système et un procédé pour traiter des requêtes de base de données complexes qui incluent une pluralité d'interrogations de base de données individuelles. [0002] Divers systèmes pour recevoir des interrogations de bases de données des clients et pour acheminer ou distribuer les interrogations à un autre système d'arrière-plan sont connus. Les moteurs de traitement de chargement qui distribuent les interrogations entrantes à des bases de données moins chargées que d'autres bases de données en sont un exemple. Les plateformes de recherche, telles que décrites p. ex. par EP 2908255 Al qui répondent aux interrogations, soit sur la base d'une mémoire cache avec des résultats de recherche précollectés et/ou à partir d'une source de données principale en sont un autre exemple. [0003] Un exemple d'un système utilisant des requêtes de base de données complexes incluant plus d'une interrogation de bases de données est décrit par WO 2015/110133 Al. Ici, une interrogation de base de données complexe inclut unc demande de tarif de la part d'un client, unc réponse au client concernant le tarif, unc requête de réservation du client et unc réponse au client concernant la réservation. [0004] 11 est nécessaire de diminuer les temps de réponse pour de telles requêtes de base de données complexes sans compromettre la validité des résultats de base de données renvoyés ; [0005] À cet égard, selon un aspect, un procédé pour traiter des interrogations de données est présenté. Le procédé est mis en oeuvre par un système de base de données qui comprend une base de données stockant des données actuelles continuellement mises à jour et une mémoire cache stockant des données en cache correspondant au moins à un sous-ensemble des données actuelles stockées dans la base de données. Le procédé comprend, au niveau du système de base de données : en réponse à la réception d'une première interrogation comprenant un premier ensemble de paramètres de recherche spécifiant les données à récupérer, le renvoi d'un premier ensemble de données en cache conforme aux premiers paramètres de recherche de la mémoire cache; en réponse à la réception d'une deuxième interrogation liée à la première interrogation, la deuxième interrogation comprenant un deuxième ensemble de paramètres de recherche spécifiant des données à récupérer et indiquant un sous-ensemble du premier ensemble renvoyé de données en cache, le renvoi d'un deuxième ensemble de données en cache conforme au deuxième ensemble de paramètres de recherche de la mémoire cache ; en 2 réponse à la réception d'une troisième interrogation liée à la deuxième interrogation, la troisième interrogation comprenant un troisième ensemble de paramètres de recherche spécifiant des données à récupérer indiquant un sous-ensemble sélectionné du deuxième ensemble renvoyé de données en cache, le renvoi du troisième ensemble de données actuelles conforme au troisième ensemble de paramètres de recherche de la hase de données, la validation du sous-ensemble sélectionné du deuxième ensemble renvoyé de données en cache avec les données actuelles correspondantes stockées dans la hase de données, et le renvoi du troisième ensemble récupéré de données actuelles conformes au troisième ensemble de paramètres de recherche et du sous-ensemble sélectionné validé du deuxième ensemble renvoyé de données en cache. [0006] Dans certains modes de réalisation, le système de hase de données comprend par ailleurs un module frontal pour traiter au moins la deuxième interrogation et la troisième interrogation, et le procédé comprend par ailleurs au niveau du module frontal : en réponse à la réception de la deuxième interrogation, l'acheminement de la deuxième interrogation vers la mémoire cache pour récupérer le deuxième ensemble de données en cache; en réponse à la réception de la troisième interrogation, la détermination que la troisième interrogation est liée à la deuxième requête précédente et l'acheminement de la troisième interrogation vers la hase de données pour récupérer le troisième ensemble de données actuelles, et la validation du sous-ensemble sélectionné du deuxième ensemble renvoyé de données en cache. [0007] Dans certains modes de réalisation, le procédé comprend par ailleurs au niveau du module frontal : la réception d'un deuxième ensemble de données en cache de la mémoire cache et l'envoi d'un message de réponse avec le deuxième ensemble de données en cache au client interrogateur ; la réception du troisième ensemble récupéré de données actuelles et du sous-ensemble sélectionné validé du deuxième ensemble renvoyé de données en cache de la base de données et l'envoi d'un message de réponse avec le troisième ensemble récupéré de données actuelles et le sous-ensemble sélectionné validé du deuxième ensemble renvoyé de données en cache au client interrogateur. [0008] Dans certains modes de réalisation, la validation du sous-ensemble sélectionné du deuxième ensemble renvoyé de données en cache avec les données actuelles correspondantes stockées dans la base de données comprend de déterminer si les données actuelles, stockées dans la base de données correspondant au sous-ensemble sélectionné du deuxième ensemble renvoyé de données en cache, sont identiques au sous-ensemble renvoyé du deuxième ensemble de données en cache et le procédé comprend par ailleurs, en réponse à la détermination que les données actuelles, stockées dans la base de données correspondant au sous-ensemble sélectionné du deuxième ensemble renvoyé de données en cache, sont identiques au sous-ensemble 3 sélectionné du deuxième ensemble renvoyé de données en cache, le renvoi d'un indicateur de validité comme étant le sous-ensemble sélectionné validé du deuxième ensemble de données en cache renvoyé. [0009] Dans certains modes de réalisation, le procédé comprend par ailleurs, en réponse à la détermination que les données actuelles, stockées dans la hase de données correspondant au sous-ensemble sélectionné du deuxième ensemble de données en cache, sont différentes du sous-ensemble sélectionné du deuxième ensemble de données en cache, le renvoi d'une différence déterminée entre le deuxième sous-ensemble renvoyé de données en cache et les données actuelles stockées dans la hase de données correspondant au sous-ensemble sélectionné du deuxième ensemble renvoyé de données en cache comme étant le sous-ensemble sélectionné validé du deuxième ensemble renvoyé de données en cache. [0010] Dans certains modes de réalisation, la mémoire cache et la hase de données stockent des données concernant une infrastructure de réseaux de communication qui inclut des noeuds de réseau du réseau de communication, des liens entre les noeuds de réseau de communication et les informations techniques concernant les noeuds du réseau de communication et les liens entre les noeuds du réseau de communication et dans lequel, la première, la deuxième et la troisième interrogation font partie d'une demande de routage de réseau. Le premier ensemble de paramètres de recherche de la première interrogation spécifie des caractéristiques de noeuds de réseau pour communiquer avec, et le premier ensemble de données en cache comprend des informations d'identification et des informations de caractéristiques d'un nombre de noeuds de réseaux satisfaisant les caractéristiques de réseau spécifiées. Le deuxième ensemble de paramètres de recherche de la deuxième interrogation comprennent l'identification d'un noeud de réseau cible sélectionné du nombre de noeuds de réseau et le deuxième ensemble des données en cache comprend des informations d'identification et des informations techniques concernant un nombre de trajets aller de réseau, du noeud de réseau source au réseau cible sélectionné via les liens entre les noeuds du réseau de communication. Le troisième ensemble de paramètres de recherche comprend une identification du de la route de réseau vers l'avant sélectionnée du nombre de routes de réseau vers l'avant, du noeud de réseau source au réseau cible sélectionné, via les liens entre les noeuds de réseaux de communication, et le troisième ensemble de données actuelles comprend des informations d'identification et des informations techniques concernant un nombre de routes de réseau inverses, du noeud de réseau cible au noeud de réseau source, via les liens entre les noeuds de réseau de communication. [0011] Selon un autre aspect, un système de base de données pour traiter des interrogations de données est présenté. Le système de base de données comprend une base de données stockant des données actuelles qui sont continuellement mises à jour, une mémoire cache stockant des données en cache correspondant au moins à un sous-ensemble des données actuelles stockées dans la hase de données, au moins un processeur ; et au moins une mémoire contenant des instructions qui, lorsqu'elles sont exécutées par ledit au moins un processeur, amènent le système de hase de données à mettre en oeuvre les opérations. Les opérations comprennent : en réponse à la réception d'une première interrogation comprenant un premier ensemhle de paramètres de recherche spécifiant les données à récupérer, le renvoi d'un premier ensemhle de données en cache conforme aux premiers paramètres de recherche de la mémoire cache ; en réponse à la réception d'une deuxième interrogation liée à la première interrogation, la deuxième interrogation comprenant un deuxième ensemble de paramètres de recherche spécifiant des données à récupérer et indiquant un sous-ensemble sélectionné du premier ensemble renvoyé de données en cache, le renvoi d'un deuxième ensemble de données en cache conforme au deuxième ensemble de paramètres de recherche de la mémoire cache, en réponse à la réception d'une troisième interrogation liée à la deuxième interrogation, la troisième interrogation comprenant un troisième ensemble de paramètres de recherche spécifiant des données à récupérer indiquant un sous-ensemble sélectionné du deuxième ensemble renvoyé de données en cache, la récupération du troisième ensemble de données actuelles conformes au troisième ensemble de paramètres de recherche de la base de données, la validation du sous-ensemble sélectionné du deuxième ensemble renvoyé de données en cache avec les données actuelles correspondantes stockées dans la base de données, et le renvoi du troisième ensemble récupéré de données actuelles conforme au troisième ensemble de paramètres de recherche et du sous-ensemble sélectionné validé du deuxième ensemble renvoyé de données en cache. [0012] Par ailleurs, dans certains modes de réalisation, les opérations comprennent un quelconque des autres aspects facultatifs du procédé susmentionné. [0013] Selon un autre aspect, un produit-programme d'ordinateur est présenté, comprenant des instructions de code de programme stockées sur un support lisible par ordinateur pour mettre en oeuvre le procédé selon l'un quelconque des aspects susmentionnés lorsque ledit programme fonctionne sur un ordinateur. [0014] Les modes de réalisation sont décrits en faisant référence aux figures suivantes, dans lesquelles : [0015] [fig.1] décrit un système de base de données conforme aux aspects exposés dans les présentes. [0016] [fig.2] montre une séquence de message d'une requête de base de données complexe. [0017] [fig.3] est une visualisation d'une structure fonctionnelle d'un module frontal tel que décrit dans les présentes. [0018] [fig.4] décrit une version affinée de la séquence de message de la Fig. 2. [0019] [fig.5] illustre un cas d'usage de routage de réseau des méthodologies décrites dans les présentes. [0020] [fig.6] montre un assemblage interne d'une machine informatique implémentant la fonctionnalité décrite dans les présentes. [0021] Les présents mécanismes pour traiter des interrogations de données sont liés à un système de communication 1 avec un système de hase de données 2. Un exemple schématique est montré dans la Fig.1 . Le système de hase de données 2 inclut au moins une hase de données 5 stockant des données actuelles qui sont continuellement mises à jour et une mémoire cache 4 stockant des données en cache correspondant au moins à un sous-ensemble des données actuelles stockées dans la hase de données 5. Le terme «hase de données » est censé englober tout type de systèmes de stockage d'information structuré tels que des hases de données standard autonomes comme SQL Server® (SQL = Langage d'interrogation structuré) ou les hases de données Oracle® ainsi que des systèmes de stockage distribués et/ou propriétaires plus complexes (p. ex. Cloudera0 ou MapR® ou HortonWorks® Hadoop, Spark, Nive, Apache le système de fichiers distribués [HDFS] Hadoop®, etc.), les hases de données relationnelles incluant les systèmes de gestion de hase de données ou les systèmes de hase de données orientée objet, entre autres. La hase de données 5 utilise le traitement et les ressources de mémoire pour traiter et répondre aux interrogations de hase de données et pour stocker les données. La hase de données 5 peut être exécutée par une ou plusieurs machines informatiques. [0022] La mémoire cache 4 peut être implémentée comme une autre base de données (en sus de la base de données 5) sur d'autres et/ou sur la même machine(s) informatique que la base de données 5. Dans certains modes de réalisation, la mémoire cache 4 peut aussi être une mémoire cache logique, c.-à-d. que les données de la mémoire cache 4 sont maintenues dans des espaces respectifs attribués d'une mémoire de la machine matérielle(s) qui héberge la base de données 5. [0023] La base de données 5 stocke des données qui sont généralement actualisées et forment donc des données originales et valides. Dans ce but, la base de données 5 peut être équipée d'une interface pour actualiser les données stockées dans la base de données 5. Cette interface peut être la même que l'interface pour recevoir et répondre aux interrogations de base de données. Les données stockées par la base de données 5 sont continuellement actualisées ce qui signifie que tout changement dans les données est actuellement effectué dans la base de données 5, p. ex. sur la base d'un événement ou sur une base périodique. Par conséquent, la base de données 5 est soit elle-même une source de données d'origine telle qu'une base de données d'inventaire ou une base de données contenant toutes sortes de résultats originaux et généralement valides, ou elle accède à une ou plusieurs sources de données originales afin de stocker des 6 résultats originaux dans des formats identiques (miroirs) ou traités. Des exemples de ces derniers sont un moteur de recherche accédant à des sites Web sur Internet et une plateforme de calcul calculant des recommandations de voyage tarifées basées sur des tarifs stockés dans une base de données tarifaire. Si la hase de données 5 génère/ calcule/collecte les résultats originaux en accédant à d'autres/par ailleurs sources de données d'origine afin de préparer des résultats originaux, la hase de données 5 fournit des résultats qui reflètent généralement de façon précise le contenu actuel des données de réponse d'origine. [0024] D'autre part, la mémoire cache 4 stocke des données en cache correspondant au moins à un sous-ensemble des données stockées dans la base de données 5. En d'autres termes, la mémoire cache 4 maintient une réserve de résultats qui ont été traités via la hase de données 5 ou elle est p. ex. un serveur détenant un dépôt de contenus de sites Web parcourus, ou la deuxième plateforme 4 est p. ex. une plateforme de recherche qui conserve des recommandations de voyage tarifées précalculécs, ainsi que décrit p. ex. par WO 2014/026753 Al . [0025] En général, la hase de données 5 qui fournit des données de réponse originales et la mémoire cache 4 contenant les résultats en cache sont différentes l'une de l'autre sur le plan technique comme suit : la mémoire cache 4 fournit un accès moins onéreux (en matière de coûts de calcul) et plus rapide (en matière de temps de réponse) aux résultats, comparé à la hase de données 5. La relation entre la hase de données 5 et la mémoire cache 4 peut aussi être exprimée dans l'autre sens, c.-à-d. que la base de données 5 répond généralement et que les réponses de la base de données 5 impliquent des coûts de calcul plus élevés que les réponses de la mémoire cache 4 p. ex. parce que la base de données 5 doit encore calculer les résultats au moment de l'interrogation (p. ex. récupérer le contenu demandé du site Web d'origine sur Internet ou calculer les recommandations de voyage tarifées demandées sur la base des tarifs conservés dans une base de données tarifaire). Vu que les ressources de calcul de la base de données 5 sont limitées, le nombre d'accès à la base de données 5 doit être maintenu dans une certaine limite Par exemple, la consommation de la CPU (CPU = unité de traitement centrale), ou de la charge de mémoire de la base de données 5, ne doit pas dépasser une certaine limite [0026] D'autre part néanmoins, les données en cache stockées dans la mémoire cache 4 ne sont pas nécessairement synchronisées de façon parfaite avec les résultats originaux fournis par la base de données 5. En général, les données en cache de la mémoire cache 4 représentent des versions plus anciennes des résultats originaux fournis par la base de données 5 et la version respective du résultat d'origine fourni par la base de données 5 peut avoir changé depuis la dernière mise à jour des données en cache correspondantes conservées dans la mémoire cache 4. En outre, la mémoire cache 4 ne stocke pas né- 7 cessairement des résultats préparés correspondant à tous les résultats originaux existants, c.-à-d. que des données peuvent être manquantes dans la mémoire cache 4. [0027] Survient alors le problème technique de minimiser les temps de réponse pour les demandes de hase de données sans compromettre la précision et la validité des données renvoyées. [0028] L'environnement de la hase de données 1 est par ailleurs couplé à au moins un, mais généralement une pluralité de clients 6. Les clients 6, tels que les applications sur les terminaux d'utilisateurs, récupérent des résultats de l'environnement de hase de données 1 en adressant des requêtes de données à l'environnement de hase de données 1 via une interface 7. Les caractéristiques techniques de l'interface 7 dépendent de l'implémentation particulière de l'environnement de hase de données 1. Par exemple, l'interface 7 englobe les communications sans fil incluant 2G/3G/4G (incluant l'échange de données mobile orienté paquets ainsi que les SMS, services de messages courts) et/ou les communications Wifi dans le cas où le client 6 se situe sur un dispositif de communication mobile. Autrement ou en plus, l'interface 7 présente la communication filaire en utilisant des protocoles de réseau standard utilisés dans des réseaux de zone locale et/ou des réseaux de zones étendues incluant l'Tntcrnet comme rEthernet, TCP/IP (le protocole de contrôle de transmission/le protocole Internet), SMPT (le protocole de transfert de message simple) avec POP3 (protocole de bureau de poste) ou IMAP (protocole d'accès de message Internet), HTTP (protocole de transfert hypertexte), des protocoles relatifs au service Web tels que SOAP (protocole d'accès à objet simple), etc. [0029] Une séquence de messages individuels constituant une requête de base de données complexe est illustrée par la Fig. 2. Le terme «requête de base de données » est utilisé dans les présentes comme désignation générale pour indiquer une récupération de données logiques du système de base de données 2. Les présents mécanismes concernent spécifiquement une requête de base de données complexe selon laquelle la récupération de données du système de base de données 2 inclut deux, trois ou plusieurs autres interrogations individuelles de base de données envoyées par un client demandeur de données 6 et reçues par le système de base de données 2. Ces multiples interrogations de bases de données constituant une requête de base de données complexe peuvent être tous types d'interrogations transactionnelles, des requêtes pour des calculs en séries, des interrogations SQL et d'autres formes. Généralement, en réponse à la réception d'une interrogation de base de données, le système de base de données 2 traite l'interrogation de base de données, consulte la mémoire cache 4 et/ou la base de données 5 et renvoie une réponse de base de données au client demandeur 6. [0030] Plus spécifiquement, en faisant référence à la Fig. 2, le système de base de données 2 reçoit une première interrogation 20 du client 6. Par exemple, le système de base de 8 données 2 stocke des données de voyage à des fins de récupération et de réservation, telles que des recommandations de voyage tarifées et précalculécs, comme le décrit WO 2015/124275 avec des données sortantes et rentrantes dans la mémoire cache 4 et des données sortantes et entrantes actuelles dans la hase de données 5. Dans cet exemple, la première interrogation 20 demande une liste de recommandations de voyage tarifées vers un lieu de destination dans une certaine fenêtre temporelle (p. ex. un voyage de Nice à Munich avec un départ le jour X et un retour le jour X+6 ou X+7). Par conséquent, la première interrogation 20 inclut un premier ensemble de paramètres de recherche spécifiant les caractéristiques des recommandations de voyage tarifées recherchées. En réponse à la réception de la première interrogation 20, le système de hase de données 2 traite la première interrogation 20 et reconnaît qu'il s'agit de la première interrogation d'une requête de hase de données complexe à laquelle il faut répondre en se basant sur la mémoire cache 4. Ainsi, le système de hase de données 2 récupère les données spécifiées par le premier ensemble de paramètres de recherche inclus dans la première interrogation 20 à partir de la mémoire cache et renvoie, par le biais d'une première réponse de données en cache 24, les données récupérées comme premier ensemble de données en cache qui sont conformes aux premiers paramètres de recherche de la mémoire cache 4. Dans l'exemple donné, le premier ensemble de données en cache renvoyé est une liste de p. ex. 10 recommandations de voyage tarifées satisfaisant les paramètres de recherche dans la première interrogation 20. [0031] Vu que les données en cache renvoyées par la première réponse 24 proviennent de la mémoire cache 4, il est vraisemblable que les données en cache sont désuètes et par conséquent incohérentes avec les données actuelles stockées dans la base de données 5. D'autre part, en utilisant la mémoire cache 4, la première réponse 24 est renvoyée plus vite qu'une réponse hypothétique basée sur la base de données 5 et par conséquent le temps de réponse pour la première interrogation 20 est réduit. [0032] Le client 6, après avoir reçu la première réponse de données en cache 24, peut présenter les données de réponse à l'utilisateur et l'utilisateur peut sélectionner une ou plusieurs données du premier ensemble de données en cache. Dans l'exemple donné, l'utilisateur peut sélectionner une des recommandations de voyage tarifées. La sélection peut aussi être faite de manière automatique sans aucune interaction de l'utilisateur. La sélection par le client 6 déclenche ensuite la prochaine inten-ogation de bases de données, notamment la deuxième interrogation 26. [0033] La deuxième interrogation 26 comprend un deuxième ensemble de paramètres de recherche spécifiant les données à récupérer et indiquant un sous-ensemble sélectionné à partir du premier ensemble de données en cache renvoyé. Dans l'exemple donné, la deuxième interrogation 26 contient des paramètres identifiant ladite une ou plusieurs 9 recommandations de voyage tarifées sélectionnées par le client 6 et constitue p. ex. une interrogation de disponibilité pour le voyage aller de la recommandation de voyage tarifée sélectionnée. Par conséquent, la deuxième interrogation 26 est liée à la première interrogation 20, car dans l'exemple donné, la deuxième interrogation 26 fait référence à au moins un sous-ensemble des données récupérées par le biais de la première interrogation 20. [0034] En réponse à la réception de la deuxième interrogation 26, le système de base de données 2 traite de même la deuxième interrogation 26 et reconnaît qu'il s'agit de la deuxième interrogation d'une requête de hase de données complexe qui doit à nouveau obtenir une réponse basée sur la mémoire cache 4. Ainsi, le système de base de données 2 récupère les données spécifiées par le deuxième ensemble de paramètres de recherche inclus dans la deuxième interrogation 26 de la mémoire cache 4 et renvoie, par le biais d'une deuxième réponse de données en cache 30, les données récupérées comme deuxième ensemble de données en cache qui sont conformes aux deuxièmes paramètres de recherche de la mémoire cache 4. Dans l'exemple donné, le deuxième ensemble de données en cache renvoyé est p. ex. une indication de la disponibilité concernant le voyage aller de la recommandation de voyage tarifée sélectionnée, potentiellement accompagnée d'autres informations telles que des options de classe de réservation et les prix associés. [0035] À nouveau, comme les données en cache renvoyées par la deuxième réponse 30 pro- viennent de la mémoire cache 4, il est vraisemblable que les données en cache soient désuètes et donc incohérentes avec les données actuelles stockées dans la base de données 5. D'autre part, en utilisant la mémoire cache 4, la deuxième réponse 30 est renvoyée plus rapidement que la réponse hypothétique basée sur la base de données 5 et par conséquent le temps de réponse de la deuxième inten-ogation 20 est également réduit. [0036] De façon similaire, à la réception de la première réponse de données en cache 24, le client 6 traite la deuxième réponse reçue de données en cache 30 et p. ex. affiche les résultats à l'utilisateur. À nouveau, l'utilisateur peut faire une sélection telle qu'une confirmation ou, si d'autres alternatives sont fournies, choisir une des alternatives. Par exemple, si plus d'une classe de réservation est indiquée par la deuxième réponse de données en cache 30, l'utilisateur peut en sélectionner une. À nouveau, la sélection peut aussi être mise en oeuvre de façon automatisée. La sélection par le client 6 déclenche ensuite la prochaine interrogation de base de données, notamment la troisième interrogation 32. [0037] La troisième interrogation 32 comprend un troisième ensemble de paramètres de recherche spécifiant des données à récupérer indiquant un sous-ensemble sélectionné du deuxième ensemble renvoyé de données en cache. Dans l'exemple donné, la troisième interrogation 32 contient des paramètres identifiant l'option de classe de réservation sélectionnée ou confirmée par le client 6 et constitue p. ex. une interrogation de disponibilité pour le voyage de retour de la recommandation de voyage tarifée sélectionnée. Ainsi, la troisième interrogation 32 est liée à la deuxième interrogation 26 (et donc indirectement également à la première interrogation 20), car, dans l'exemple donné, la troisième interrogation 32 fait référence au moins à un sous-ensemble des données récupérées par le biais de la deuxième interrogation 26. [0038] En réponse à la réception de la troisième interrogation 32, le système de hase de données 2 traite également la troisième interrogation 32 et reconnaît qu'il s'agit de la troisième interrogation d'une requête de base de données complexe qui doit obtenir une réponse basée sur la base de données 5, c.-à-d. en se basant sur les données actuelles stockées dans la hase de données 5. Ainsi, le système de hase de données 2 récupère aux 34 les données spécifiées par le troisième ensemble de paramètres de recherche inclus dans la troisième interrogation 32 à partir de la hase de données 5 et renvoie, par le biais d'une troisième réponse 38, les données récupérées comme troisième ensemble de données, notamment les données actuelles de la base de données 5 qui sont conformes aux troisièmes paramètres de recherche. Dans l'exemple donné, le troisième ensemble de données actuelles est p. ex. une indication de disponibilité concernant le voyage de retour de la recommandation de voyage tarifée sélectionnée, potentiellement accompagnée d'autres informations telles que des options de classe de réservation et les prix associés. [0039] Du fait que le troisième ensemble de données renvoyé par la troisième réponse 38 provient de la base de données, il est assuré que les données sont valides. Ceci est particulièrement avantageux si la troisième réponse est la réponse finale de la requête de base de données complexe. D'autre part, en utilisant maintenant la base de données 5, la troisième réponse 38 prend plus de temps qu'une réponse hypothétique basée sur la mémoire cache 5. [0040] À titre de mesure synergique, la récupération du troisième ensemble de données de la base de données 5 est accompagnée par une validation 36 du sous-ensemble sélectionné du deuxième ensemble renvoyé de données en cache qui est identifié par le troisième ensemble de paramètres de recherche. Dans ce but, le sous-ensemble sélectionné du deuxième ensemble de données en cache est comparé aux données actuelles correspondantes stockées dans la base de données 5. Si les deux ensembles de données sont identiques, le sous-ensemble sélectionné du deuxième ensemble de données en cache qui a été renvoyé au client avec la deuxième réponse 30 était valide et le système de base de données 2 n'a pas besoin d'initier une quelconque action (cependant, une confirmation du résultat positif de la validation pourrait être incluse dans la troisième réponse 38). 11 [0041] Si d'autre part la comparaison produit une différence entre le sous-ensemble sé- lectionné du deuxième ensemble de données en cache avec les données actuelles correspondantes stockées dans la hase de données, alors le sous-ensemble sélectionné du deuxième ensemble de données en cache qui a été renvoyé client avec la deuxième réponse 30 étaient invalides (ou au moins est invalide au moment actuel, car il est possible qu'une mise àjour de données soit survenue seulement récemment au cours de la période après que la deuxième réponse 30 a été renvoyée) et la version mise à jour (c.-à-d. actuelle) du sous-ensemble sélectionné du deuxième ensemble de données en cache tel qu'il est stocké dans la base de données 5 est récupéré de la base de données 2 et renvoyée au client 6 avec la troisième réponse 38 comme sous-ensemble sélectionné validé du deuxième ensemble renvoyé de données en cache. Le renvoi du sous-ensemble sélectionné validé du deuxième ensemble renvoyé de données en cache peut être effectué sous des formes différentes, telles qu'en renvoyant la version complète mise àjour (c.-à-d. actuelle) du sous-ensemble sélectionné du deuxième ensemble de données en cache tel qu'il est stocké dans la hase de données 5 ou en renvoyant seulement la différence entre la version complète mise à jour du sous-ensemble sélectionné du deuxième ensemble de données en cache tel qu'il est stocké dans la base de données 5 et le sous-ensemble renvoyé précédemment du deuxième ensemble de données en cache. [0042] De cette façon, la consultation de la hase de données 5, en réponse à la réception de la troisième interrogation 32 qui est comparativement plus lente qu'une consultation de la mémoire cache 4, est utilisée non seulement pour assurer la validité du troisième ensemble de données renvoyé, mais aussi la validité de la portion du deuxième ensemble de données renvoyé précédemment basé sur la mémoire cache 4 qui a été sélectionné par le client 6 après transmission de la deuxième réponse 30. Comparé à une autre manière qui assure également la validité des deux ensembles de données renvoyés, notamment la récupération déjà des deuxièmes données demandées par la deuxième interrogation 26 de la base de données 5, le temps de réponse global de la requête de base de données complexe comprenant toutes les trois réponses 24, 30, 38, est réduit. En outre, la validation 36 du sous-ensemble sélectionné du deuxième ensemble renvoyé de données en cache qui est identifié par le troisième ensemble de paramètres de recherche a un autre avantage technique parce que cette validation 36 est implémentée par une interrogation de base de données plus spécifique à la base de données 5 comparée à une interrogation de base de données hypothétique pour récupérer l'ensemble des données de réponse à la deuxième interrogation 26 de la base de données 5. À cet égard, cette interrogation de validation plus spécifique à la base de données 5 économise donc aussi des ressources de calcul de la base de données 5. [0043] Faisant à nouveau référence à la Fig. 1, dans certains modes de réalisation, le système 12 de base de données 2 comprend par ailleurs un module frontal pour le traitement au moins de la deuxième interrogation et de la troisième interrogation. Dans ces modes de réalisation, les interrogations de base de données émises par un client 6 sont reçues par une autre entité du système de hase de données 2, le module frontal 3 (Fig. 1). En général, le module frontal 3 traite des interrogations de hase de données afin de décider si les données de réponse sont récupérées de la hase de données 5 et/ou de la mémoire cache 4. Dans ce but, le module frontal 3 fonctionne comme une unité intermédiaire contrôlant le flux de données dans le système de hase de données 2 et les données de réponse devant être renvoyées au client demandeur 6. [0044] Une structure fonctionnelle interne du module frontal 3 conformément à des modes de réalisation est illustrée par la Fig. 3. Les interrogations de hase de données arrivant d'un client via l'interface de communication 7 sont reçues au niveau d'un module de saisie 10. Le module de saisie 10 peut implémenter des protocoles de communication standardisés à travers les couches du modèle de référence OSI comme déjà mentionné ci-dessus à titre exemplaire. Entre autres, le module de saisie d'interrogations 10 peut utiliser des mécanismes de traitement initiaux tels que des reconnaissances d'erreurs et des corrections, l'assemblage de paquets ainsi que la détermination qu'une interrogation de hase de données valide a été reçue. Les messages invalides peuvent être déjà éliminés par le module de saisie d'interrogations 10 pour des raisons de sécurité et de performance. [0045] Les interrogations de base de données valides sont relayées du module de saisie d'interrogations 10 au module de traitement d'interrogations 11. Le module de traitement d'interrogations 11 traite les interrogations reçues à un niveau substantif, c.-à-d. qu'il examine les interrogations reçues afin de déterminer s'il est nécessaire de répondre à une interrogation en se basant sur la mémoire cache 4 ou en se basant sur la base de données 5. Dans ce but, dans certains modes de réalisation, le module de traitement d'interrogations 11 vérifie si une interrogation reçue est la première, deuxième, etc. interrogation d'une requête de base de données complexe ou si une interrogation reçue est la troisième ou l'interrogation finale d'une requête de base de données complexe. [0046] En règle générale, en réponse à la détermination qu'une interrogation reçue est une interrogation finale d'une requête de base de données complexe, cette interrogation reçue reçoit une réponse basée sur la base de données 5 et les interrogations précédemment reçues de la même requête de base de données complexe (plus spécifiquement : le résultat en cache renvoyé en réponse à des interrogations reçues précédemment d'une requête de base de données complexe) peuvent être validées en utilisant la base de données 5. Les interrogations non finales de requêtes de base de données complexe reçoivent une réponse basée sur la mémoire cache 4. Par 13 conséquent, le module de traitement de requêtes 11 achemine les requêtes non finales vers la mémoire cache 4 et les interrogations finales vers la hase de données 5. [0047] Le fait que le module de traitement d'interrogations 11 reconnaît si oui ou non une interrogation de hase de données reçue est une interrogation finale d'une requête de hase de données complexe peut se faire de diverses façons qui dépendent de l'implémentation du protocole des requêtes de hase de données complexes. Par exemple, les interrogations de hase de données appartenant à une certaine interrogation de hase de données complexe peuvent comporter un identifiant unique (ou pseudounique) de la requête de hase de données complexe ainsi qu'un numéro d'interrogation. Dans d'autres exemples, les interrogations de hase de données peuvent inclure un champ pour le type d'interrogations indiquant le type de l'interrogation (p. ex. une première, deuxième ou troisième interrogation) et le module de traitement d'interrogations 11 conserve des données de contexte pour chaque interrogation reçue et traitée. Dans ces exemples, le module de traitement d'interrogations 11 est capable de déterminer la relation d'une interrogation subséquente à une interrogation précédemment reçue et d'identifier ainsi la requête de hase de données complexe de l'interrogation subséquente reçue, en se basant sur les données de contexte stockées et sur les informations incluses dans l'interrogation subséquente (p. ex. le deuxième ensemble de paramètres de recherche indiquant un sous-ensemble du premier ensemble renvoyé de données en cache, comme expliqué ci-dessus). [0048] Dans certains modes de réalisation, l'interface 7 entre le module frontal 3 et les clients 6 peut utiliser une plateforme de base de données différente (p. ex. un langage d'interrogation, une certaines norme de base de données) que celles qui sont utilisées en interne dans le système de base de données 2 par la mémoire cache 4 et/ou la base de données 5. Par exemple, ces dernières peuvent être basées sur une implémentation propriétaire alors que l'interface externe 7 peut être basée sur une implémentation standardisée. Par ailleurs, même la mémoire cache 4 et la base de données 5 peuvent employer des technologies d'interrogation de base de données différentes. Dans ces modes de réalisation, l'acheminement des interrogations vers la mémoire cache 4 ou vers la base de données 5 par le module de traitement d'interrogations 11 peut aussi comprendre la transformation ou la conversion des interrogations reçues dans d'autres formes d'interrogations de base de données (qui peuvent aussi être désignées comme interrogations internes de système de base de données) conformément à l'implémentation de la base de données de la mémoire cache 4 et de la base de données 5. L'utilisation du module frontal 3 est bénéfique dans ces arrangements, car elle fournit un protocole de base de données uniforme et donc simplifié vis-à-vis des clients 6 (par comparaison avec les clients 6 qui accèdent à la base de données 5 et à la mémoire cache 4 directement). 14 [0049] Le module de traitement d'interrogations 11 réalise aussi la validation des résultats en cache renvoyés précédemment avec les données actuelles stockées dans la hase de données 5. Par conséquent, en réponse à la détermination qu'une interrogation reçue est l'interrogation finale d'une requête complexe en attente, le module de traitement d'interrogations 11 peut aussi générer une interrogation de validation pour valider les données en cache renvoyées précédemment et acheminer l'interrogation de validation vers la hase de données 5. Les données en cache renvoyées précédemment pour être validées sont identifiées par l'interrogation reçue, potentiellement en combinaison avec des données de contexte stockées. Par exemple, l'interrogation reçue peut inclure un ou plusieurs identifiants (p. cx. des clés) identifiant le sous-ensemble sélectionné des données en cache renvoyées précédemment, ces dernières étant stockées comme une partie des données de contexte. [0050] Continuant à faire référence à la Fig. 3, les réponses de la mémoire cache 4 et de la hase de données 5 sont reçues par un autre composant du module frontal, le module de traitement de réponses 12. Généralement, le module de traitement de réponses 12 effectuait des actions à l'inverse du module de traitement d'interrogations 11, telles que la reconversion de réponses de hase de données et de mémoire cache dans des formats et/ou des flux de messages utilisés sur l'interface de communication 7 et en associant les réponses avec la requête surordonnée complexe de hase de données, p. ex. en incluant un identifiant correspondant dans la réponse au client 6 comme mentionné ci-dessus. La fonction d'association peut aussi faire usage des données de contexte stockées par le module de traitement d'interrogations. Par ailleurs, le module de traitement de réponses 12 peut aussi mettre à jour ou augmenter les données de contexte stockées par le module de traitement d'interrogations 11, p. ex. en ajoutant des informations concernant les données de réponse devant être renvoyées au client avec la réponse présente. Dans ce but, dans certains modes de réalisation, le module de traitement de réponses 12 a une connexion fonctionnelle au module de traitement d'interrogations 11. Cette connexion peut, par exemple, être réalisée par le stockage interne externe au module frontal 3 dans lequel les deux modules 11, 12, accèdent aux données de contexte spécifiant l'état actuel des requêtes de base de données complexes. D'autres entités en dehors du module frontal 3 peuvent également accéder à ce stockage de données de contexte. [0051] Les réponses traitées par le module de traitement de réponses 12 sont ensuite relayées au module de production de réponses 13 qui est responsable de l'envoi des réponses au client demandeur 6. Généralement, le module de production de réponses 13 effectue des actions a l'inverse du module de saisie d'interrogations 10, c.-à-d., par exemple en recevant les données de réponse du module de production 13 et en implémentant les protocoles de communication de couche OSI afin de renvoyer les réponses au client demandeur 6. [0052] TI faut noter que dans certains modes de réalisation, il n'est pas nécessaire que toutes les interrogations provenant des clients 6 qui sont acheminées au système de base de données 2 soient traitées par le module frontal 3. D'autres interfaces entre les clients 6 et la mémoire cache 4 et/ou la hase de données 5 peuvent être présentes permettant aux clients 6 d'accéder à la mémoire cache 4 et/ou à la hase de données 5 en contournant le module frontal 3, p. ex. pour des interrogations de hase de données autonomes extérieures aux requêtes de hase de données complexes. Dans certains modes de réalisation, ces interrogations de hases de données autonomes ne faisant pas partie d'une requête de hase de données complexe peuvent aussi être traitées par le module frontal 3. Dans ces modes de réalisation, le module frontal 3 est capable de reconnaître qu'une interrogation reçue n'est pas liée à une requête de hase de données complexe et est équipée d'une logique dépendante du cas d'usage pour acheminer cette interrogation autonome, soit vers la mémoire cache 4, soit vers la hase de données 5 (par exemple d'une manière enseignée par EP 2908255 Al). [0053] La Fig. 4 illustre une version affinée de la séquence de message de la Fig. 2 en faisant référence en plus aux fonctions de rclai et de traitement du module frontal 3. Les explications ci-dessus faites en référence à la Fig. 2 s'appliquent aussi à la Fig. 4. Cependant, à ce niveau plus spécifique de la Fig. 4, la séquence comprend par ailleurs la réception d'une première interrogation 20 au module frontal 3 et la récupération 22 par le module frontal 3 des premières données en cache de la mémoire cache 4. Le module frontal 3 renvoie aussi la première réponse 24 au client demandeur 6, p. ex. de la manière expliquée ci-dessus en référence à l'exemple de la Fig. 3. [0054] Par ailleurs, de manière similaire, en réponse à la réception de la deuxième inter- rogation 26, le module frontal 3 achemine la deuxième interrogation 26 vers la mémoire cache 4 pour une récupération 28 du deuxième ensemble de données en cache. De même, le module frontal 3 envoie la deuxième réponse 30 au client 6. Par ailleurs, en réponse à la réception de la troisième interrogation 32, le module frontal 3 détermine que la troisième interrogation 32 est liée à la deuxième interrogation précédente 26 et p. ex. que la troisième interrogation est l'interrogation finale de la requête de base de données complexe comprenant au moins la deuxième interrogation 26 et la troisième interrogation 32, et il achemine la troisième interrogation 32 vers la base de données 5 pour une récupération 34 du troisième ensemble de données actuelles et une validation 36 du sous-ensemble sélectionné du deuxième ensemble renvoyé de données en cache. Le module frontal 3 renvoie ensuite la troisième réponse 38 avec le troisième ensemble de données actuelles et le sous-ensemble sélectionné validé du deuxième ensemble renvoyé de données en cache au client 6. [0055] Les méthodologies décrites ci-dessus peuvent être utilisées clans des cas d'usage 16 variés. Une application est au domaine technique du routage de réseau où une décision de routage est faite par le biais d'une requête de données de routage à un serveur de routage. Dans cette application exemplaire, le serveur de routage inclut la mémoire cache 4 et la base de données 5 qui stockent les données concernant une infrastructure de réseau de communication incluant des noeuds de réseaux du réseau de communication, des liens entre les noeuds de réseau de communication et les informations techniques concernant les noeuds du réseau de communication et les liens entre les noeuds du réseau de communication. La première, la deuxième et la troisième interrogation mentionnée ci-dessus font partie d'une requête complexe de routage de réseau. [0056] Le premier ensemble de paramètres de recherche de la première interrogation spécifie, par exemple, un noeud de réseau source et des caractéristiques de noeuds de réseau d'un noeud de réseau cible potentiel pour communiquer avec, et le premier ensemble de données en cache comprend des informations d'identification et des informations de caractéristiques d'un nombre de noeuds de réseaux satisfaisant les caractéristiques de réseau spécifiées. Le deuxième ensemble de paramètres de recherche de la deuxième interrogation comprend l'identification d'un noeud de réseau cible sélectionné du nombre de noeuds de réseau et le deuxième ensemble des données en cache comprend des informations d'identification et des informations techniques concernant un nombre de trajets aller de réseau, du noeud de réseau source au réseau cible sélectionné via les liens entre les noeuds du réseau de communication. Le troisième ensemble de paramètres de recherche comprend une identification de la route de réseau vers l'avant sélectionnée du nombre de routes de réseau vers l'avant, du noeud de réseau source au réseau cible sélectionné, via les liens entre les noeuds de réseaux de communication, et le troisième ensemble de données actuelles comprend des informations d'identification et des informations techniques concernant un nombre de routes de réseau inverses, du noeud de réseau cible au noeud de réseau source, via les liens entre les noeuds de réseau de communication. [0057] Un exemple plus spécifique (et simplifié pour des raisons de présentation) de ce cas d'usage est illustré par la Fig. 5. Ici, la base de données 5 stocke des données actuelles concernant toutes sortes de serveurs miroirs incluant des serveurs miroirs qui stockent spécifiquement des paquets de distribution de système (l'exploitation Linux auxquels on peut accéder via l'Intemet. Les serveurs miroirs forment l'ensemble de noeuds de réseaux cibles potentiels alors que les routeurs et les passerelles de l'Intemet forment d'autres noeuds de réseaux qui sont interconnectés par des liens de réseau. Les données stockées par la base de données 5 peuvent comprendre un identifiant, un nom, une URL (localisateur de ressource uniforme) et des données concernant la qualité de service tel que des taux de données, un nombre de chargements parallèles montants/ 17 descendants, etc. des serveurs miroirs. La mémoire cache 4 peut stocker une partie, une version agrégée d'une partie, toutes les données actuelles de la hase de données 5 et peut être mise à jour périodiquement, par exemple une fois par jour. [0058] Pour prendre une décision de routage pour le chargement et/ou le téléversement de données de distribution Linux vers un serveur miroir, le client 6 effectue une requête de hase de données complexe au système de hase de données 2 (ici : le serveur de routage) qui inclut au moins trois interrogations de hases de données, de façon similaire à ce qui a été décrit ci-dessus. Avec la première interrogation 20, le client 6 indique un noeud source en incluant sa propre adresse IP 93.23.153.1 dans l'interrogation. Par ailleurs, la première interrogation 20 inclut une indication d'une caractéristique de la cible de routage, notamment qu'un serveur miroir de distribution Linux est recherché. [0059] La première interrogation 20 (et les autres interrogations subséquentes) est traitée et reçoit une réponse du système de hase de données 2 de la manière décrite ci-dessus. Plus spécifiquement, la première interrogation 20 reçoit une réponse basée sur la mémoire cache 4 et la première réponse 24 indique trois serveurs satisfaisant les paramètres de recherche de la première interrogation 20, p. ex. le serveur Si de l'université ChongQuing en chine, le serveur S2 hébergé par l'université technique Chemnitz en Allemagne et le serveur S3 situé à l'institut technologique du Massachusetts (Massachusets Tnstitute of Technology) à Cambrige aux E.U.A. La première réponse 24 indique par ailleurs des détails techniques respectifs pour les serveurs miroirs, tels qu'un taux de données (p. ex. en moyenne sur 24 hem-es) pour la communication avec le serveur. [0060] Après sélection par le client 6, un des serveurs miroirs est renvoyé avec la deuxième interrogation 26 (dans l'exemple, S2 : TU Chemnitz), c.-à-d. qu'un des noeuds de réseau cible a été déterminé par le client 6. Comme mentionné ci-dessus, la sélection peut se faire manuellement par un utilisateur ou automatiquement p. ex. par un mécanisme par défaut (ici : sélectionner le serveur avec le taux de données le plus élevé). [0061] Le système de base de données 2 renvoie ensuite une deuxième réponse 30 basée sur la mémoire cache indiquant des paramètres de qualité de service pour de multiples trajets aller (FR) via le réseau, p. ex. un service avec un taux de bit variable (VBR) avec jusqu'à 2 Mbit/s pour une première route vers l'avant (FR1) et un service de taux de bits garantis avec un taux de transmission garanti de 0,5 Mbit/s pour une deuxième route vers l'avant (FR2). De nouveau, une sélection d'une des routes est effectuée par le client et retransmise au système de base de données 2 avec la troisième réponse 32. Dans l'exemple donné, la deuxième route vers l'avant FR2 a été sélectionnée. [0062] Le système de base de données 2 renvoie la troisième réponse 38 basée sur les 18 données actuelles stockées dans la hase de données. D'une part, la troisième réponse 38 inclut une liste des routes de retour avec les indications respectives de service de qualité, notamment un service VBR jusqu'à 2,5 Mhit/s pour une première route de retour (RR1) et un service GBR de 0,4 Mhit/s pour une deuxième route de retour (RR2). Ces données sont récupérées au 34 de la hase de données 5. De plus, les données de qualité de service pour la route vers l'avant FR2 sélectionnée précédemment par le client 6 sont validées au 36 avec les données actuelles stockées dans la hase de données 5. Dans l'exemple de la Fig. 5, la validation 36 indique qu'un engagement GBR de 0,5 Mhit/s tenu dans la mémoire cache 5 n'est, en fait, plus valide et que le GBR actuel pour FR2 est 0,4 Mhit/s. Ceci est en outre inclus dans la troisième réponse 38 et transmis au client. [0063] Le client 6 peut ensuite faire une sélection de routage pour télécharger et/ou té- léverser les données de distribution Linux au serveur miroir sélectionné sur la hase du routage de réseau et des données de qualité de service récupérées à partir du système de hase de données 2. [0064] Finalement, la FIG. 6 est une représentation schématique d'un système informatique 100 qui fournit la fonctionnalité de système de hase de données 2 tel qu'il est illustré dans la FIG. 1, en implémentant les activités/fonctions telles qu'elles sont décrites ci-dessus incluant l'hébergement de la mémoire cache 4 et de la hase de données 5. À l'intérieur du système de hase de données 2, un ensemble d'instructions peut être exécuté pour amener le système informatique 100 à mettre en oeuvre l'une quelconque des méthodologies décrites dans les présentes. Le système de base de données 2 inclut au moins un processeur 102 (implémentant les noeuds de calcul 6, comme expliqué ci-dessus), une mémoire principale 104 et un dispositif d'interface de réseau 108. La mémoire principale 104 inclut un espace utilisateur 104' qui est associé à des applications exécutées par l'utilisateur et un espace noyau 104" qui est réservé à un système d'exploitation ainsi que des applications associées de matériel et de systèmes d'exploitation. Les composants du système informatique 102 à 109 sont interconnectés par un bus de données 101 (implémentant l'interface 7). En option, il peut par ailleurs inclure une mémoire statique 106, p. ex. flash non inamovible et/ou un disque dur et/ une carte micro ou mini SD amovible stockant de façon permanente le logiciel permettant au système informatique 100 d'exécuter des fonctions du système informatique 100 et une interface 1/0 supplémentaire 109 telle qu'un lecteur de carte et des interfaces USB, peuvent être présents. Un écran vidéo 103, un module de contrôle d'interface d'utilisateur 107 et/ou un dispositif d'entrée alphanumérique 105. Le dispositif d'interface de réseau 108 connecte le système de base de données 2 à d'autres stations, incluant les clients 6, l'Internet et/ou tout autre réseau. Le système informatique 100 peut aussi représenter seulement une portion du système de base de 19 données 2 au cas où le système de hase de données 2 serait distribué entre plusieurs systèmes informatiques 100 interconnectés par un réseau via le dispositif d' interface de réseau 108. Un ensemble d'instructions (c.-à-d. un logiciel) 110 représentant un ou tous les procédés, décrits ci-dessus, est hébergé complètement, ou au moins partiellement, dans ou sur un support lisible par ordinateur, p. ex. la mémoire principale 104 et/ou le processeur 102. Le logiciel 110 peut par ailleurs être transmis ou reçu sous forme de signal propagé 111 via Internet par l'intermédiaire du dispositif interface de réseau 108. [0065] En général, les routines exécutées pour mettre en oeuvre les modes de réalisation de l'invention, qu'elles soient implémentées comme des parties d'un système d'exploitation ou d'une application spécifique, d'un composant, d'un programme, d'un objet, d'un module ou d'une séquence d'instructions, ou même un sous-ensemble de ceux-ci, peuvent être désignées dans les présentes comme « code de programme informatique» ou simplement «code de programme ». Un code de programme comporte typiquement des instructions lisibles par ordinateur qui résident à divers moments dans divers dispositifs de mémoire et de stockage dans un ordinateur et qui, lorsqu'elles sont lues et exécutées par un ou plusieurs processeurs dans un ordinateur, amènent l'ordinateur à effectuer des opérations nécessaires à l'exécution d'opérations et/ou d'éléments propres à la mise en oeuvre des aspects variés des modes de réalisation de l'invention. Les instructions d'un programme, lisibles par ordinateur, pour mettre en oeuvre les opérations des modes de réalisation de l'invention peuvent être, par exemple, le langage d'assemblage, ou encore un code source ou un code objet écrit en combinaison avec un ou plusieurs langages de programmation. [0066] Divers codes de programme décrits dans les présentes peuvent être identifiés, selon l'application dans laquelle ils sont implémentés, dans des modes de réalisation spécifiques de l'invention. Cependant, on notera qu'une quelconque nomenclature d'un programme particulier dans les présentes est utilisée uniquement par commodité ; ainsi l'invention ne peut être limitée à un seul usage dans toute application spécifique identifiée et/ou sous-entendue par ladite nomenclature. Par ailleurs, au vu du nombre généralement infini de moyens par lesquels les programmes informatiques peuvent être organisés selon des sous-programmes, procédures, procédés, modules, objets, et ainsi de suite, ainsi que les façons variées d'affecter les fonctionnalités d'un programme parmi diverses couches de logiciels qui sont hébergées dans un ordinateur typique [p. ex., les systèmes d'exploitation, les bibliothèques, les interfaces d'application de programme (API's), les applications, les petites applications (applets), etc.], on notera que les modes de réalisation de l'invention ne sont pas limités à l'organisation spécifique et à l'affectation spécifique des fonctionnalités de programme telles qu'elles sont décrites dans les présentes. [0067] Le code de programme mis en oeuvre dans une/un quelconque des applications/ modules décrit(e)s dans les présentes peut être distribué individuellement ou collectivement comme un produit-programme d'ordinateur, sous une variété de formes. En particulier, le code de programme peut être distribué en utilisant un support de stockage lisible par ordinateur, disposant d'instructions de programme lisibles par ordinateur en lui-même, permettant à un processeur de mettre en oeuvre des aspects des modes de réalisation de [0068] Les instructions de programme lisibles par ordinateur, enregistrées sur un support lisible par ordinateur, peuvent être utilisées pour amener un ordinateur, d'autres types d'appareils programmables de traitement de données, ou d'autres dispositifs, à fonctionner d'une façon particulière, de sorte que les instructions stockées sur le support lisible par ordinateur produisent un article de fabrication incluant les instructions qui mettent en oeuvre les fonctions, les actions et/ou les opérations spécifiées dans les organigrammes, diagrammes de séquence, et/ou diagrammes blocs. Les instructions de programme informatique peuvent être fournies à un ou plusieurs processeurs d'un ordinateur à usage général ou un ordinateur dédié ou un autre appareil programmable de traitement de données pour produire une machine, de sorte que les instructions, lorsqu'elles sont exécutées via ledit un ou plusieurs processeurs, accomplissent une série de calculs de pour mettre en oeuvre les fonctions, actions, et/ou les opérations spécifiées dans les organigrammes, diagrammes séquentiels et/ou diagrammes blocs. [0069] Dans certains autres modes de réalisation, les fonctions, les actions et/ou des opérations spécifiées dans les organigrammes, diagrammes de séquence, et/ou des diagrammes blocs peuvent être réordonnées, traitées en série, et/ou traitées en même temps conformément aux modes de réalisation de l'invention. De plus, tout organigramme, diagramme séquentiel et/ou diagramme bloc peut inclure plus ou moins de blocs que ceux qui sont illustrés, tout en restant cohérents avec les modes de réalisation de l'invention. [0070] La terminologie utilisée dans les présentes a pour but de décrire uniquement des modes de réalisation particuliers et n'est pas destinée à limiter les modes de réalisation de l'invention. On comprendra par ailleurs que les termes « comprendre », « comprend » et/ou «comprenant », lorsqu'ils sont utilisés clans cette spécification, précisent la présence de caractéristiques, de nombres entiers, d'étapes, d'opérations, d'éléments, et/ ou de composants, mais n'excluent pas la présence ou l'ajout d'une ou de plusieurs caractéristiques, de nombres entiers, d'étapes, d'éléments, de composants et/ou de groupes, en cela. De plus, dans la mesure où les termes «inclut », « ayant», « a », « avec » ou leurs variantes, sont utilisés dans la description détaillée des revendications, ces termes sont censés être inclusifs de façon similaire au terme « comprendre ». 21 [0071] Bien que l'invention ait été illustrée par une description de modes de réalisation divers et bien que ces modes de réalisation aient été décrits de façon considérablement détaillée, il n'y a pas d'intention de restreindre ou limiter aucunement le champ d'application des revendications annexées à ces détails. Des avantages et des modifications supplémentaires apparaîtront aisément aux hommes de métier. L'invention sous ses aspects plus larges n'est donc pas limitée aux détails spécifiques, aux appareils représentatifs et aux procédés, ainsi qu'aux exemples illustratifs montrés et décrits. Par conséquent, il est possible de s'éloigner de ces détails sans s'éloigner de la portée du concept inventif général. [Revendication I]