Brevet FR2875616A1 — publié le 20060324

L'invention concerne un procédé et un système permettant de stocker efficacement, notamment en vue d'un accès ou traitement subséquent, des informations relatives à la navigation d'un grand nombre d'utilisateurs d'un réseau de communication. L'invention trouve tout particulièrement intérêt pour l'élaboration de profils comportementaux d'utilisateurs d'Internet ou de tout autre réseau de communication, ainsi que pour l'affichage de messages publicitaires numériques en fonction notamment de l'historique de messages déjà visualisés. Le réseau Internet est un réseau ouvert sur lequel circule un très grand nombre d'utilisateurs. Afin d'afficher le bon message à la bonne personne à un moment donné, il est très important de pouvoir accéder en un temps très court à une information concernant cet utilisateur. Cette information peut être un profil pre-calculé, un historique complet de navigation sur un ensemble de sites d'intérêts ou bien une liste de messages publicitaires déjà visualisés par l'internaute. La présente invention propose une solution permettant de gérer simplement un nombre très important d'utilisateurs (plusieurs milliards par exemple). Lorsque l'internaute se connecte successivement à une série de sites Web d'intérêt, ou lorsqu'il est exposé à un message publicitaire, il déclenche l'envoi successif de requêtes vers un système tel que par exemple un système de profiling comportemental, un système de mesure d'audience, ou encore un système de diffusion publicitaire. Ces requêtes sont alors interprétées par le système comme une fourniture d'informations de navigation. Ces informations de navigation comprennent typiquement l'identifiant de l'internaute, l'identifiant du site ou du message publicitaire, la date, l'heure et la langue du navigateur, la partie du site effectivement visitée. L'identifiant de l'internaute est généralement un identifiant unique enregistré dans un cookie (ou témoin de connexion) installé sur le poste de navigation de l'internaute. Ce cookie est par exemple installé sur le poste de navigation de l'internaute (un identifiant unique étant alors attribué à l'internaute) lors de la première visite de celui-ci sur l'un des sites d'intérêt. Les informations de navigation sont typiquement enregistrées par le système de profiling dans des moyens de stockage et constituent l'historique de navigation de l'internaute à identifier. C'est notamment à partir de cet historique que le système de profiling peut déterminer un profil statistique de l'internaute. Le flux de données recueillies par le système de profiling ou de diffusion publicitaire (i.e. informations de navigation des internautes) est particulièrement important. A titre d'exemple, lorsque 20 000 sites francophones d'intérêt environ sont ainsi audités, plus de 10 Giga Octets d'informations de navigation sont recueillies chaque jour. Par ailleurs, la masse d'informations est en constante augmentation. Un système de profiling ou de diffusion du type présenté ci-dessus doit pouvoir répondre à un certain nombre de contraintes. II doit en particulier être capable de couvrir une large audience d'internautes, de pouvoir réagir en temps réel pour renvoyer le profil d'un intemaute à un site le requérant et d'être d'une grande stabilité. Cela implique que les moyens informatiques utilisés (notamment moyens de stockage et serveurs de traitement des informations de navigation) soient aptes à accéder à l'information stockée, à la traiter et à la renvoyer en un minimum de temps, et cela tout en assurant la continuité de service fourni par le système de profiling ou de diffusion. On conçoit effectivement qu'un tel système est inopérant si le profil d'un internaute est renvoyé à un serveur Web dans un délai trop important. On conçoit également que toute défaillance technique doit être évitée. L'interruption du service (c'est-à-dire lorsqu'un profil d'internaute n'est pas renvoyé à un serveur Web suite à une requête de celui-ci) fourni par le système de profiling est effectivement dommageable pour le fournisseur de service qui héberge le site Web. Ce dernier ne peut effectivement pas adapter dynamiquement le contenu numérique qu'il propose en fonction du profil de chaque internaute, et en optimiser ainsi l'efficacité. Il existe donc un besoin pour une solution permettant de gérer les informations de navigation d'un nombre d'utilisateurs différents d'un réseau de communication particulièrement important, qui réponde aux contraintes mentionnées ci-dessus. A cet effet, l'invention propose, selon un premier aspect, un procédé de stockage d'informations de navigation d'un ensemble d'utilisateurs d'un réseau de communication sur un ensemble de sites d'intérêt accessibles par le réseau, dans des moyens de stockage reliés au réseau, comprenant l'étape consistant, pour chaque site de l'ensemble de sites d'intérêt, à transmettre aux moyens de stockage les informations de navigation d'un utilisateur se connectant audit site, lesdites informations de navigation comprenant un identifiant unique de l'utilisateur constitué d'une pluralité de caractères, enregistré dans un cookie installé sur le poste de navigation de l'utilisateur, le procédé étant caractérisé en ce qu'il comporte l'étape consistant à stocker les informations de navigation dudit utilisateur dans une base de données d'un ensemble, formant lesdits moyens de stockage, de bases de données distinctes les unes des autres, le choix de la base de données étant réalisé en fonction de la valeur d'un caractère donné de l'identifiant dudit utilisateur. Des aspects préférés, mais non limitatifs du procédé selon le premier aspect de l'invention sont les suivants: - le choix de la base de données peut être réalisé en fonction d'un caractère donné de l'identifiant tel que la répartition des utilisateurs est homogène sur l'ensemble des valeurs que peut prendre ce caractère; - l'étape de stockage peut consister en outre, pour chaque base de données, à stocker les informations de navigation dudit utilisateur dans une table de données d'un ensemble, formant ladite base de données, de tables de données distinctes les unes des autres, le choix de la table de données étant réalisé en fonction de la valeur d'un second caractère donné de l'identifiant dudit utilisateur; - le choix de la table de données peut être réalisé en fonction d'un second caractère donné de l'identifiant tel que la répartition des utilisateurs est homogène sur l'ensemble des valeurs que peut prendre ce caractère; - l'étape de stockage peut en outre consister à stocker les informations de navigation d'un utilisateur dans au moins un équipement informatique, chaque équipement hébergeant un ensemble de bases de données formant moyens de stockage, le choix d'un équipement étant réalisé en fonction de la valeur d'un troisième caractère donné de l'identifiant de l'utilisateur; - le choix de l'équipement peut être réalisé en fonction d'un caractère de l'identifiant tel que la répartition des utilisateurs est homogène sur l'ensemble des valeurs que peut prendre ce caractère; - les informations de navigation de l'utilisateur peuvent être stockées dans une table de données d'une base de données hébergée par d'un équipement, le choix desdits équipement, base et table étant réalisé en fonction des trois premiers caractères de l'identifiant, ledit identifiant comportant douze caractères selon un système de numération en base 64. Selon un second aspect, l'invention propose un système de stockage d'informations de navigation d'un ensemble d'utilisateurs d'un réseau de communication sur un ensemble de sites d'intérêt accessibles par le réseau, ledit système comportant des moyens de stockage reliés au réseau pour stocker les informations de navigation transmises, par chaque site de l'ensemble de sites d'intérêt, lorsqu'un utilisateur se connecte audit site, lesdites informations de navigation comprenant un identifiant unique de l'utilisateur constitué d'une pluralité de caractères, enregistré dans un cookie installé sur le poste de navigation de l'utilisateur, le système étant caractérisé en ce que lesdits moyens de stockage sont constituées d'un ensemble de bases de données distinctes les unes des autres, le choix d'une base de données pour le stockage des informations de navigation relatives à un utilisateur étant réalisé en fonction de la valeur d'un caractère donné de l'identifiant dudit utilisateur. D'autres caractéristiques, buts et avantages de l'invention ressortiront encore de la description qui suit d'un mode de réalisation possible de l'invention, cette description étant purement illustrative et non limitative et devant être lue en regard de la figure unique annexée. Cette figure 1 est un schéma représentatif d'un système de stockage d'informations de navigation conforme à un mode de réalisation possible de l'invention. Sur la figure, un système de détermination de profil 400 est relié à un réseau de communication 200 (tel qu'Internet) auquel est connecté un ensemble 300 de serveurs Web d'intérêt 301, 302, 303. Chaque serveur Web héberge un site ou un contenu numérique mis à la disposition des utilisateurs 500 du réseau 200 (les internautes) par un fournisseur de services. Le système 400 d'élaboration de profil comprend des moyens de stockage 100, 110 connectés au réseau 200, et adaptés pour recenser des informations relatives à la navigation des internautes 500 sur les sites hébergés par les serveurs Web 301, 302, 303. Comme cela a été mentionné précédemment, ces informations de navigation sont transmises lors d'une requête de profil émise par un serveur Web d'intérêt 301 à destination du système de profiling lors de la visite d'un internaute sur le site. Ces informations de navigation comprennent typiquement l'identifiant de l'internaute, l'identifiant du site, la date, l'heure et la langue du navigateur, la partie du site effectivement visitée. L'identifiant de l'internaute est généralement un identifiant unique enregistré dans un cookie (ou témoin de connexion) installé sur le poste de navigation de l'internaute. Ce cookie est par exemple installé sur le poste de navigation de l'internaute (un identifiant unique étant alors attribué à l'internaute) lors de la première visite de celui-ci sur l'un des sites d'intérêt. L'identifiant unique associé à un internaute est constitué d'une pluralité de caractères. Chaque caractère pouvant prendre un certain nombre de valeurs différentes, et cela en fonction de la base du système de numération retenu. Selon un mode de réalisation de l'invention, l'identifiant comporte douze caractères, par exemple selon un système de numération en base 64. 10 Chaque caractère peut ainsi prendre 64 valeurs différentes. Selon un mode de réalisation préféré de l'invention, les informations de navigation sont réparties dans un ensemble, formant les moyens de stockage 100, de bases de données 101-103 distinctes les unes des autres, chaque base de données 101-103 stockant les informations de navigation relatives aux utilisateurs disposant d'un identifiant présentant, parmi la pluralité de caractères, un caractère donné identique ou un caractère donné prenant une valeur parmi un ensemble de valeurs. En d'autres termes, ne sont stockées dans une même base de données Bk que les informations de navigation relatives aux internautes dont le i-ème caractère (i.e ledit caractère donné) de l'identifiant a la même valeur Ck ou dont le i-ème caractère a une valeur parmi un ensemble {C}k de valeurs. De manière préférentielle, ce caractère donné est un caractère tel que la répartition des internautes est homogène (par exemple du fait d'un tirage aléatoire) sur l'ensemble des valeurs que peut prendre ce caractère. La probabilité que ce caractère donné de l'identifiant d'un internaute présente une valeur particulière est ainsi la même quelque soit ladite valeur particulière. On exploite avantageusement à cet effet la manière dont l'identifiant attribué à un internaute est élaboré. Dans le cadre d'un identifiant comportant douze caractères, on peut effectivement élaborer une répartition homogène des utilisateurs sur certains caractères, par exemple sur le premier et le deuxième caractères. Les autres caractères de l'identifiant contiennent comme il est de coutume des éléments nécessaires à assurer, de préférence à eux seuls, l'unicité de l'identifiant. II s'agit par exemple de la date et de l'heure en secondes, de l'adresse IP du serveur établissant l'identifiant, le PID (selon l'expression anglo-saxonne Process Identification Number pour numéro d'identification du processus) du processus établissant l'identifiant, un nombre incrémentiel, etc. Dans le cas de figure d'une répartition homogène, et considérant un système de numération en base N, les internautes sont ainsi répartis, en fonction de la valeur prise par ledit caractère donné de leur identifiant, en N groupes de taille identique. On stocke ainsi les informations de navigation de manière homogène, et particulièrement simple, dans N bases de données distinctes. Selon un mode de réalisation avantageux de l'invention, chacune des bases de données 101-103; 111-113 est constituée d'un ensemble de tables de données distinctes les unes des autres. Les informations de navigation sont alors réparties de telle manière que chaque table de données stocke les informations de navigation relatives aux utilisateurs disposant d'un identifiant présentant, parmi la pluralité de caractères, un second caractère donné identique ou un second caractère donné ayant une valeur parmi un ensemble de valeurs. En d'autres termes, ne sont stockées dans une même table de données Tp, appartenant à une base de données Bk, que les informations de navigation relatives aux internautes dont le i-ème caractère (i.e le premier caractère donné) de l'identifiant a la même valeur Ck (ou tout du moins prend une valeur parmi un ensemble de valeurs {C}k) et dont le j-ème caractère (i.e le second caractère donné) a la même valeur Cp (ou tout du moins prend une valeur parmi un ensemble de valeurs {C}p). De manière préférentielle, ce second caractère donné est ici aussi un caractère tel que la répartition des internautes est homogène (par exemple du fait d'un tirage obligatoire) sur l'ensemble des valeurs que peut prendre ce caractère. Dans un tel cas de figure, et considérant un système de numération en base N, les internautes sont ainsi répartis, en fonction de la valeur prise par lesdits premier et second caractères donnés de leur identifiant, en N*N groupes de taille identique. On stocke ainsi les informations de navigation de manière homogène, et particulièrement simple, dans N*N tables de données distinctes. Comme cela a été mentionné précédemment, dans le cas d'un identifiant comportant douze caractères, on a une répartition homogène des utilisateurs sur le premier et le deuxième caractères de l'identifiant. Selon un mode de réalisation possible de l'invention, lesdits premier et second caractères donnés (associés respectivement à la répartition en bases et à la répartition en tables de données) sont respectivement le premier et le deuxième caractères de l'identifiant. Selon un mode de réalisation alternatif de l'invention, le système de stockage comporte une pluralité de moyens de stockage 100, 110 du type présenté précédemment. A cet effet, les bases de données sont hébergées par plusieurs équipements informatiques distincts, chaque équipement informatique comportant des moyens adaptés pour héberger un ensemble formant moyens de stockage au sens de la présente invention. En d'autres termes chaque équipement héberge un ensemble de bases de données distinctes les unes des autres, chaque base de données stockant les informations de navigation relatives aux utilisateurs disposant d'un identifiant présentant, parmi la pluralité de caractères, un caractère donné identique (ou un caractère donné prenant une valeur parmi un ensemble de valeurs). En référence à la figure 1, un équipement informatique 500 héberge les moyens de stockage 100 constitués par les bases de données 101-103, tandis qu'un équipement 510 héberge les moyens de stockage 110 constitués par les bases de données 111-113. Dans un tel cas de figure, les informations de navigation sont alors réparties de telle manière que chaque équipement stocke les informations de navigation relatives aux utilisateurs disposant d'un identifiant présentant, parmi la pluralité de caractères, un troisième caractère donné identique (ou encore un troisième caractère donné ayant une valeur parmi un ensemble de valeurs). Les internautes sont ensuite repartis dans les bases de données en fonction dudit premier caractère donné de leur identifiant (par exemple le deuxième caractère de l'identifiant), ainsi que le cas échéant dans les tables de données constituant une base de données en fonction dudit second caractère donné de leur identifiant (par exemple le troisième caractère de l'identifiant). Selon un mode de réalisation possible, ledit troisième caractère donné (pour une répartition entre équipements) est un caractère de l'identifiant, par exemple un caractère en en-tête dudit identifiant. Ainsi dans le cas mentionné ci-dessus d'un identifiant comportant douze caractères, un treizième caractère peut être ajouté en en-tête des douze autres pour permettre la répartition entre les différents équipements informatiques. A titre d'exemple illustratif, les informations concernant l'internaute ayant l'identifiant SuNXX)OCXXXXXX peuvent ainsi être stockées sur l'équipement S, dans la base u dans la table N. Considérant un système de numération en base N, si on répartit les internautes sur différents dispositifs d'hébergement, on peut donc finalement les répartir jusqu'en N*N*N groupes. En utilisant un seul équipement informatique, et dans le cadre d'un système de numération en base 64, les informations de navigation relatives aux internautes visitant l'un des sites d'intérêt sont ainsi réparties dans 64 bases de données distinctes, chacune de ces bases comportant 64 tables de données Les informations de navigation sont dans ce cas de figure réparties dans 4096 tables de données distinctes, en fonction des valeurs prises par lesdits premier et second caractères donnés de l'identifiant de l'utilisateur. Comme cela a déjà été mentionné précédemment, les informations de navigation disponibles pour un utilisateur donné sont par exemple destinées à être traitées par un système de profiling, afin de déterminer et mettre à jour, le profil dudit utilisateur. Le profil ainsi déterminé est stocké dans les moyens de stockage selon la répartition par utilisateur présentée ci-dessus. L'architecture ici présentée des moyens de stockage par répartition des internautes dans des structures (équipements informatiques, bases, tables) de données distinctes est donc particulièrement intéressante. Elle permet notamment d'accéder rapidement aux informations de navigation et aux données de profil, de réaliser un traitement parallèle des différentes structures de données. Bien entendu, l'invention n'est pas limitée aux modes de réalisation particuliers qui viennent d'être décrits, mais s'étend à toute variante conforme à son esprit. On comprendra notamment que l'emploi de l'invention n'est pas limité au cadre d'un procédé et système de profiling. L'invention trouve en effet application dès lors que des informations relatives à des utilisateurs d'un réseau de communication disposant d'un identifiant comportant une pluralité de caractères sont à stocker et traiter. En particulier, l'invention peut également être utilisée pour des systèmes comportant des serveurs de contenu publicitaire sur internet pour lesquels l'accès au profil et/ou à l'historique de l'internaute est très important. De même, la répartition des internautes proposée par l'invention permet de réaliser un échantillonnage très simple et efficace en vue de calcul prévisionnel ou de simulations. Par extension, l'invention trouve également application dans tout système devant traiter des données d'un très grand nombre d'objets identifiables, indépendamment les uns des autres. La répartition des informations de navigation réalisée par l'invention permet en outre de récupérer très rapidement une information sur un objet identifié parmi un très grand nombre d'objets, et cela sans qu'il ne soit nécessaire d'effectuer une requête, nécessairement longue, dans une mega-base de données. REVENDICATIONS 1. Procédé de stockage d'informations de navigation d'un ensemble d'utilisateurs (500) d'un réseau de communication (200) sur un ensemble de sites d'intérêt (301-303) accessibles par le réseau, dans des moyens de stockage (100) reliés au réseau, comprenant l'étape consistant, pour chaque site de l'ensemble de sites d'intérêt, à transmettre aux moyens de stockage (100; 110) les informations de navigation d'un utilisateur se connectant audit site, lesdites informations de navigation comprenant un identifiant unique de l'utilisateur constitué d'une pluralité de caractères, enregistré dans un cookie installé sur le poste de navigation de l'utilisateur, le procédé étant caractérisé en ce qu'il comporte l'étape consistant à stocker les informations de navigation dudit utilisateur dans une base de données d'un ensemble, formant lesdits moyens de stockage, de bases de données (101-103; 111-113) distinctes les unes des autres, le choix de la base de données étant réalisé en fonction de la valeur d'un caractère donné de l'identifiant dudit utilisateur. 2. Procédé selon la revendication précédente, caractérisé en ce le choix de la base de données est réalisé en fonction d'un caractère donné de l'identifiant tel que la répartition des utilisateurs est homogène sur l'ensemble des valeurs que peut prendre ce caractère. 3. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'étape de stockage consiste en outre, pour chaque base de données, à stocker les informations de navigation dudit utilisateur dans une table de données d'un ensemble, formant ladite base de données, de tables de données distinctes les unes des autres, le choix de la table de données étant réalisé en fonction de la valeur d'un second caractère donné de l'identifiant dudit utilisateur. 4. Procédé selon la revendication précédente, caractérisé en ce le choix de la table de données est réalisé en fonction d'un second caractère donné de l'identifiant tel que la répartition des utilisateurs est homogène sur l'ensemble des valeurs que peut prendre ce caractère. 5. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'étape de stockage consiste en outre à stocker les informations de navigation d'un utilisateur dans au moins un équipement informatique (500, 510), chaque équipement hébergeant un ensemble de bases de données formant moyens (100, 110) de stockage, le choix d'un équipement étant réalisé en fonction de la valeur d'un troisième caractère donné de l'identifiant de l'utilisateur. 6. Procédé selon la revendication précédente, caractérisé en ce le choix de l'équipement est réalisé en fonction d'un caractère de l'identifiant tel que la répartition des utilisateurs est homogène sur l'ensemble des valeurs que peut prendre ce caractère. 7. Procédé selon la revendication précédente, caractérisé en ce que les informations de navigation de l'utilisateur sont stockées dans une table de données d'une base de données hébergée par un équipement, le choix desdits équipement, base et table étant réalisé en fonction des trois premiers caractères de l'identifiant, ledit identifiant comportant douze caractères selon un système de numération en base 64. 8. Système de stockage d'informations de navigation d'un ensemble d'utilisateurs (500) d'un réseau de communication (200) sur un ensemble de sites d'intérêt (301-303) accessibles par le réseau, ledit système comportant des moyens de stockage (100; 110) reliés au réseau pour stocker les informations de navigation transmises, par chaque site de l'ensemble de sites d'intérêt, lorsqu'un utilisateur se connecte audit site, lesdites informations de navigation comprenant un identifiant unique de l'utilisateur constitué d'une pluralité de caractères, enregistré dans un cookie installé sur le poste de navigation de l'utilisateur, le système étant caractérisé en ce que lesdits moyens de stockage (100; 110) sont constituées d'un ensemble de bases de données (101-103; 111-113) distinctes les unes des autres, le choix d'une base de données pour le stockage des informations de navigation relatives à un utilisateur étant réalisé en fonction de la valeur d'un caractère donné de l'identifiant dudit utilisateur. 9. Système selon la revendication précédente, caractérisé en ce que chacune des bases de données est constituée d'un ensemble de tables de données, le choix d'une table de données pour le stockage des informations de navigation relatives à un utilisateur étant réalisé en fonction de la valeur d'un second caractère donné de l'identifiant dudit utilisateur. 10. Système selon l'une des deux revendications précédentes, comporte au moins un équipement informatique (500, 510) hébergeant un ensemble de bases de données formant moyens (100, 110) de stockage, le choix d'un équipement étant réalisé en fonction de la valeur d'un troisième caractère donné de l'identifiant de l'utilisateur.