INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
Le comparateur 56 compare l'étiquette T r reçue aux étiquettes T i,j des lignes de l'ensemble S i,r sélectionné à l'aide de l'adresse @ Si,r . Si l'une des étiquettes T i,j de l'ensemble S i,r sélectionné correspond à l'étiquette T r , alors un signal de sélection de cette ligne L i,j comme étant celle qui contient le mot recherché est généré. Ce signal de sélection correspond donc au cas d'un « hit ». Dans le cas contraire, c'est-à-dire qu'aucune des étiquettes T i,j de l'ensemble S i,r sélectionné ne correspond à l'étiquettes T r , un signal de défaut de cache est généré. Une étiquette T i,j correspond à l'étiquette T r si ces deux étiquettes sont identiques.
Le signal de sélection est, en alternance, le signal de défaut de cache est reçu par l’automate 60.
En parallèle du comparateur 56, l’extracteur 62 extrait du champ D i,j de la même ligne L i,j que celle actuellement traitée par le comparateur 56, le mot situé à la position repérée par l'indice reçu d r .
L'automate 60 est notamment configuré pour :
- sélectionner les W lignes L i,j de l’ensemble S i,r correspondant à l’adresse @ Si,r à partir des valeurs Iw j,r générées par le générateur 40,
- si l’une des W lignes L i,j sélectionnée déclenche un signal de succès, alors l’automate 60 déclenche en réponse, dans le cas d’une requête de lecture, la transmission du mot extrait, et, dans le cas d’une requête d’écriture, l’écriture de la valeur V r reçue à l’emplacement du mot situé à la position repérée par l’indice d r dans le champ D i,j de cette ligne, et
- charger à partir de la mémoire principale 8 et enregistrer dans la mémoire cache 6 le mot correspondant à l’adresse @r contenue dans la requête reçue si ce mot n’a pas pu être trouvé dans la mémoire cache 6.
La structure de la table T j est représentée sur la . La table T j comporte quatre colonnes et autant de lignes qu’il y a de valeurs possibles pour l’index Iw j . Ici, elle comporte donc s lignes numérotées de 1 à s. L’intersection entre une colonne et une ligne forme une cellule. Chaque cellule est apte à contenir une valeur. Ainsi, chaque ligne de la table T j comporte quatre cellules C x,y,j , où les indices x et y sont les numéros, respectivement, de la ligne et de la colonne de la table T j . L’indice x varie de 1 à s et l’indice y varie de un à quatre. Pour simplifier la , seules deux lignes correspondant aux numéros de ligne, respectivement, I’w j,r et I’w j,k ont été représentées.
La première colonne de la table T j , c’est-à-dire celle qui contient toutes les cellules C x,1,j contient toutes les valeurs possibles de l’index Iw j . Ici, ces valeurs possibles sont les valeurs entières qui vont de un à s. Ainsi, chaque cellules C x,1,j comporte l’une de ces valeurs. Par exemple, ici, les cellules C x,1,j des lignes I’w j,r et I’w j,k contiennent les valeurs, respectivement, Iw j,r et Iw j,k de l’index Iw j .
La deuxième colonne de la table T j contient toutes les cellules C x,2,j . Chaque cellule C x,2,j contient un compteur CNT i,j associé à la ligne L i,j identifiée par la valeur de l’index Iw j contenue dans la cellule C x,1,j située sur la même ligne.
La troisième colonne de la table T j contient toutes les cellules C x,3,j . Chaque cellule C x,3,j contient un bit de validité Bv i,j associé à la ligne L i,j identifiée par la valeur de l’index Iw j contenue dans la cellule C x,1,j située sur la même ligne. Ce bit Bv i,j permet de marquer la ligne L i,j comme étant valide et, en alternance, invalide. Classiquement, une ligne L i,j marquée comme invalide doit être traitée comme si elle ne contenait aucun mots. Ainsi, une ligne L i,j marquée comme invalide est destinée à être effacée et remplacée en priorité par une autre ligne chargée depuis la mémoire principale 8. Ici, lorsque la ligne L i,j est valide, le bit Bv i,j est égal à « 1 ». A l’inverse, le bit Bv i,j est égal à « 0 » lorsque la ligne L i,j est invalide.
La quatrième colonne de la table T j contient toutes les cellules C x,4,j . Chaque cellule C x,4,j contient un bit sale Bs i,j associé à la ligne L i,j identifiée par la valeur de l’index Iw j contenue dans la cellule C x,1,j située sur la même ligne. Le bit Bs i,j est plus connu sous le nom de bit « dirty ». Le bit Bs i,j permet de marquer cette ligne L i,j comme ayant été modifiée. Lorsqu'une ligne L i,j est marquée comme ayant été modifiée, le champ D i,j qu'elle contient est copié dans la mémoire principale 8 avant, par exemple, que cette ligne soit marquée comme invalide ou évincée de la mémoire cache 6. Ici, lorsque la ligne L i,j a été modifiée, le bit Bs i,j est égal à « 1 ». A l’inverse, le bit Bs i,j est égal à « 0 » lorsque la ligne L i,j n’a pas été modifiée.
La représente plus en détail un mode de réalisation possible du circuit 42 dans le cas où le marqueur MP est dans son état inactif. Dans ce mode de réalisation, le circuit 42 comporte un circuit 70 de concaténation, un permutateur 72, un circuit logique « OU Exclusif » 74, quatre circuits 76 à 79 de substitution et quatre circuits logiques « OU Exclusif » 80 à 83.
Le circuit 70 reçoit en entrée l’étiquette T r , l’adresse @ Si,r et l’identifiant Id u et restitue, en sortie, un mot M r formé par la concaténation des bits de l’étiquette T r , de l’adresse @ Si,r et de l’identifiant Id u . Par exemple, ici l’étiquette T r , l’adresse @ Si,r et l’identifiant Id u sont codés sur, respectivement, 39 bits, 5 bits et 16 bits. Ainsi, le mot M r formé comporte 60 bits.
Le permutateur 72 permute les bits du mot M r pour obtenir un mot M’ r puis envoie les vingt premiers bits M’ r [0..19] du mot M’ r sur une première entrée du circuit 74, les vingts bits suivants M’ r [20..39] du mot M’ r sur une deuxième entrée du circuit 74 et les vingt derniers bits M’ r [40..59] du mot M’ r sur une troisième entrée du circuit 74.
Le circuit 74 réalise un « OU Exclusif » ou XOR entre les bits M’ r [0..19], M’ r [20..39] et M’ r [40..59] pour obtenir un mot M i codé sur vingt bits.
Un protocole client-serveur, par exemple de type HTTP (pour « Hyper Text Transfer Protocol »), est généralement utilisé pour gérer les communications entre un serveur web et un client. Pour accéder à un site web, le client utilise un client de navigation, à savoir un logiciel permettant de consulter et afficher des sites ou pages web. La présente invention s’applique à divers types de client de navigation, par exemple à un navigateur web, à une application (par exemple une application Android® ou IOS®), ou encore à un client de messagerie (par exemple de type Outlook® ou Thunderbird®) qui peut être relié à un réseau ou au web. Un client de messagerie permet par exemple de consulter des emails qui constituent des objets web lorsque ce client de messagerie est connecté à un réseau ou au web.
L’invention concerne notamment un procédé de suivi (ou procédé de pistage), mis en œuvre par un dispositif de suivi (ou dispositif de pistage), pour réaliser le suivi d’un site web ou plus précisément le suivi du comportement d’un utilisateur sur un site web. Ce procédé repose en particulier sur l’obtention d’au moins une empreinte numérique représentative d’un utilisateur accédant au site web et sur la mise à jour (ou enregistrement) de données d’historique comprenant des données de comportement de l’utilisateur en association avec l’empreinte numérique. Cette empreinte numérique permet d’identifier et suivre le comportement d’un utilisateur lors d’une ou plusieurs visites distinctes du site web, et ce quelles que soient les ressources employées par l’utilisateur pour accéder au site web.
Selon différents modes de réalisation, le procédé de suivi comprend : a) réception, depuis un terminal client, de données d’utilisateur représentatives d’un utilisateur accédant au site web via un client de navigation ; b) obtention, à partir des données d’utilisateur, d’au moins une empreinte numérique de l’utilisateur ; c) obtention de données de comportement représentatives d’un comportement de l’utilisateur sur le site web ; et d) mise à jour de données d’historique de l’utilisateur à partir des données de comportement en association avec ladite au moins une empreinte numérique pour permettre un suivi du comportement de l’utilisateur sur le site web.
La représente schématiquement un environnement comprenant un dispositif de suivi PT1 apte à coopérer avec un terminal client T1 d’un utilisateur UR1. Le dispositif PT1 et le terminal client T1 forment ensemble un système noté SY1 (configuration « client-side »).
Plus spécifiquement, le dispositif de suivi PT1 est une plateforme, un système ou des moyens informatiques (comprenant par exemple un serveur) configurés pour gérer un site web noté ST1. Cette plateforme (logicielle et/ou matérielle) constitue dans cet exemple un système de gestion de contenu (CMS) du site web ST1. La plateforme PT1 est appelé par la suite « système » « ou système CMS » à titre purement illustratif.
Le système PT1 gère les accès d’utilisateurs (ou clients), dont l’utilisateur UR1, au site web ST1. Comme déjà indiqué, le contenu et la nature de ce site web ST1 peut varier selon le cas. Le site web ST1 comprend au moins une page web 32 qui comprend elle-même du contenu, à savoir au moins un objet web 34. Le site web ST1 peut ainsi comprendre une pluralité de pages web 32 reliées entre elles par des hyperliens. Chaque page web 32 peut comprendre divers types d’objet web, tel que des images, du texte, des emails, des fichiers, des calques de données dites « data layers », etc. Une page web 32 ou un objet web peuvent correspondre par exemple à un produit ou article présenté par le propriétaire du site web ST1.
Le site web ST1 est par exemple un site marchand (de type e-commerce) bien que l’invention s’applique plus généralement à un quelconque site web contenant un ou des objets web consultables par un client UR1 au moyen d’un client de navigation.
Comme décrit par la suite dans des exemples particuliers, des identifiants notés respectivement ID1 et ID2 peuvent être attribués aux pages web 32 et objets web 34 ( ). Par ailleurs, les pages web 32 et/ou les objets web 34 peuvent être définis selon au moins une taxonomie 36 (par exemple une taxonomie de pages et/ou une taxonomie d’objets). En particulier, chaque page web 32 et objet web 34 peut être défini par (ou correspondre à) au moins un élément d’une taxonomie 36. Un élément de la taxonomie 36 peut être qualifié par exemple par une catégorie ou étiquette. A titre purement illustratif, une page web 32 peut appartenir (ou être défini) par au moins deux éléments de taxonomie 36 (ou l’un quelconque parmi ces deux éléments), à savoir un élément de catégorie (par exemple : catégorie « chemise », « Tee-shirt », etc.) et un élément d’étiquette (par exemple : « manche courte », « manche longue », « nouvelle saison », « saison dernière », etc.). La structure de la taxonomie 36 peut être adaptée au cas par cas.
L’utilisateur UR1 utilise un client de navigation 12 implémenté dans un terminal client T1 pour accéder (ou visiter) le site web ST1. Grâce à ce client de navigation 12, l’utilisateur est capable de consulter une page web 32 ou un objet web 34 du site web ST1. Comme déjà indiqué, le type et la configuration du client de navigation 12 peuvent varier selon le cas, en fonction notamment de la configuration du terminal client T1 (système d’exploitation, paramétrages, etc.). Le client de navigation 12 permet de coopérer avec le système PT1 selon un système client-serveur pour accéder au site web ST1. A cet effet, le client de navigation 12 peut être par exemple un navigateur web, une application ou encore un client de messagerie.
Le terminal client T1 utilisé par le client UR1 peut varier selon le cas. Il peut s’agir par exemple d’un PC, d’un ordinateur portable, d’une tablette, d’un smartphone ou d’un quelconque autre équipement informatique permettant de consulter le site internet ST1 mis à disposition par le système CMS PT1.
Dans l’exemple considéré, le terminal T1 et le système PT1 communiquent ensemble au travers d’un réseau de communication noté NT1, ce réseau pouvant être par exemple le réseau Internet, un réseau intranet ou un quelconque autre réseau permettant la communication entre un terminal client et un serveur.
Le client UR1 peut par exemple accéder au site web ST1 en activant (ou cliquant sur) un lien web configuré pour diriger le client vers le site web en question. En variante, le client UR1 peut être amené à visiter un autre site web ST2, dit site intermédiaire ou site transitoire (par exemple un site d’un réseau social ou autre), qui comprend un lien que l’utilisateur UR1 peut activer pour être redirigé vers le site web ST1.
Comme illustré en , le système PT1 peut comprendre un processeur 20 et un module de contrôle PG3 (dit aussi unité de contrôle, agent de contrôle, ou module/unité/agent de suivi). Comme déjà indiqué, le module de contrôle PG3 peut être un composant logiciel et/ou matériel.
Selon un exemple particulier, le module PG3 est un programme d’ordinateur exécuté par le processeur 20. A cet effet, le système PT1 peut comprendre une mémoire non volatile (non représentée) dans laquelle est stocké le module de contrôle PG3. La mémoire non volatile dans laquelle est stocké le module de contrôle PG3 constitue alors un support d’enregistrement (ou support d’informations) conforme à un mode de réalisation particulier de l’invention, ce support étant lisible par le système PT1 (et plus précisément par le processeur 20). Ce programme d’ordinateur PG3 peut ainsi comporter des instructions pour l’exécution des étapes d’un procédé de suivi de l’invention comme décrit ci-après dans des modes de réalisation particuliers.
Selon un exemple particulier, le processeur 20 est donc configuré pour exécuter les instructions du programme d’ordinateur PG3 afin de réaliser des étapes du procédé de suivi. A cet effet, le processeur 20 peut utiliser une mémoire volatile de type RAM (non représentée) du système PT1, par exemple de la mémoire intégrée au processeur et/ou une mémoire externe au processeur, pour réaliser les différentes opérations et fonctions nécessaires au fonctionnement du système PT1, y compris pour exécuter le programme d’ordinateur PG3 lors de la mise en œuvre du procédé de suivi de l’invention.
Selon un mode particulier de réalisation, le procédé comprend : - collecte de données de formulaire soumises par l’utilisateur accédant au site web ; et - enregistrement des données de formulaire dans les données d’historique en association avec ladite au moins une empreinte numérique et les données de comportement.
Selon un mode particulier de réalisation, le procédé comprend : - obtention de données décodées par décodage d’un lien enrichi en données via lequel l’utilisateur accède au site web ; - enregistrement des données décodées dans les données d’historique en association avec ladite au moins une empreinte numérique.
Dans un mode particulier de réalisation, les différentes étapes du procédé de suivi selon le premier aspect de l’invention sont déterminées par des instructions de programmes d’ordinateurs. En conséquence, un second aspect de l’invention vise un programme d’ordinateur sur un support d’informations (ou support d’enregistrement), ce programme étant susceptible d’être mis en œuvre dans un dispositif de suivi ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes d'un procédé de suivi selon le premier aspect de l’invention.
Ainsi, le procédé du premier aspect de l’invention peut être implémenté au moyen d’une mémoire non volatile stockant des instructions de programmes d’ordinateur et au moyen d’un processeur exécutant ces instructions.
Le programme d’ordinateur selon le deuxième aspect peut utiliser n’importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable.
Un troisième aspect de l’invention vise un support d'informations (ou support d’enregistrement) lisible par un processeur ou par un ordinateur, et comportant des instructions d'un programme d'ordinateur selon le deuxième aspect de l’invention.
Un quatrième aspect de l’invention vise un dispositif de suivi (ou dispositif de pistage) configuré pour mettre en œuvre le procédé de suivi du premier aspect de l’invention. Selon un exemple, le quatrième aspect prévoit un dispositif de suivi comprenant une mémoire associée à au moins un processeur configuré pour la mise en œuvre des étapes du procédé de suivi selon le premier aspect de l’invention.
Ainsi, selon un exemple particulier, le quatrième aspect de l’invention vise un dispositif de suivi d’un site web, comprenant : - un module de réception configuré pour recevoir, depuis un terminal client, des données d’utilisateur représentatives d’un utilisateur accédant au site web via un client de navigation ; - un premier module d’obtention configuré pour obtenir, à partir des données d’utilisateur, au moins une empreinte numérique de l’utilisateur ; - un deuxième module d’obtention configuré pour obtenir des données de comportement représentatives d’un comportement de l’utilisateur sur le site web ; et - un module d’historisation configuré pour mettre à jour de données d’historique de l’utilisateur à partir des données de comportement en association avec ladite au moins une empreinte numérique pour permettre un suivi du comportement de l’utilisateur sur le site web.
A noter que les différents modes de réalisation définis ci-avant (ainsi que ceux décrits ci-après) en relation avec le procédé de suivi du premier aspect de l’invention ainsi que les avantages associés s’appliquent de façon analogue au dispositif de suivi du quatrième aspect de l’invention.
Pour chaque étape du procédé de suivi, le dispositif de suivi de l’invention peut comprendre un module (ou une unité) correspondant configuré pour réaliser ladite étape.
Selon un mode de réalisation, l'invention est mise en œuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, le terme « module » (ou unité) peut correspondre dans ce document aussi bien à un composant logiciel, qu'à un composant matériel ou à un ensemble de composants matériels et logiciels. Selon un exemple particulier, les modules définis dans ce document correspondent à des composants logiciels.
Un composant logiciel correspond à un ou plusieurs programmes d'ordinateur, un ou plusieurs sous-programmes d'un programme, ou de manière plus générale à tout élément d'un programme ou d'un logiciel apte à mettre en œuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit dans ce document pour le module concerné. Un tel composant logiciel peut être exécuté par un processeur de données d'une entité physique (terminal, serveur, passerelle, routeur, etc.) et est susceptible d'accéder aux ressources matérielles de cette entité physique (mémoires, supports d'enregistrement, bus de communication, cartes électroniques d'entrées/sorties, interfaces utilisateur, etc.).
De la même manière, un composant matériel correspond à tout élément d'un ensemble matériel (ou hardware) apte à mettre en œuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit dans ce document pour le module concerné. Il peut s'agir d'un composant matériel programmable ou avec processeur intégré pour l'exécution de logiciel, par exemple un circuit intégré, une carte à puce, une carte à mémoire, une carte électronique pour l'exécution d'un micrologiciel (firmware), etc.
Les cinq premiers bits M i [0..4] sont envoyés sur une entrée du circuit 76, les cinq bits suivants M i [5..9] sur une entrée du circuit 77, les cinq bits suivants M i [10..14] sur une entrée du circuit 78 et les cinq derniers bits M i [15..19] sur une entrée du circuit 79.
Les circuits 76 à 79 substituent les bits reçus en entrée par d’autres bits pour générer quatre mots Ms 1 à Ms 4 transmis chacun sur une première entrée, respectivement, des circuit 80 à 83. Par exemple, chaque circuit 76 à 79 est un circuit connu sous le terme de « S-BOX ».
Les circuits 80 à 83 reçoivent sur une seconde entrée, respectivement, les cinq premiers bits k[0..4], les cinq bits suivants k[5..9], les cinq bits suivants k[10..14] et les cinq dernier bits k[15..19] de la clé k.
Les circuits 80 à 83 réalisent chacun un « OU Exclusif » ou XOR et restituent sur leurs sorties, respectivement, les valeurs intermédiaire I’w 1,r , I’w 2,r , I’w 3,r et I’w 4,r .
Le fonctionnement du calculateur 2 et de la mémoire cache 6 va maintenant être décrit en référence au procédé de la .
Lors de la mise sous-tension du calculateur 2, l'ensemble des lignes de la mémoire cache 6 sont marquées comme étant invalides à l’aide du bit Bv i,j . Pour cela, la valeur « 0 » est inscrite dans l’ensemble des cellules C x,3,j de toutes les tables T j . Par exemple, lors de la première utilisation du calculateur 2, les valeurs numériques de 1 à s sont enregistrées, respectivement, dans les cellules C x,1,j de chaque table T j . Autrement dit, au début de la première utilisation du calculateur 2, la valeur x est enregistrée dans la cellule C x,1,j . Lors des utilisations suivantes, le contenu des cellules C x,1,j est, par exemple, celui mémorisé à l’issue de la précédente utilisation. Ainsi, lors des utilisations suivantes, les valeurs de 1 à s ne sont pas nécessairement enregistrées dans les cellules C x,1,j dans l’ordre croissant des indices x.
Après la mise sous tension du calculateur 2, l’exécution d’au moins un processus est déclenchée. Le calculateur 2 a ici la capacité d'exécuter simultanément plusieurs processus. Pour cela, par exemple, le calculateur 2 exécute un système d'exploitation qui permet d'ordonnancer dans le temps l'exécution simultanée de ces différents processus par le microprocesseur 4. Grace à cela, tous les processus sont exécutés en alternance par ce même microprocesseur 4. De même, la mémoire cache 6 est accessible et utilisable par tous les processus simultanément exécutés. En particulier, pour augmenter l'efficacité et la rapidité d'exécution de chacun des processus, chacun d'entre eux peut lire et écrire des mots dans n'importe quel emplacement du support 7. Autrement dit, le support 7 n'est pas divisé en plusieurs partitions dont l'usage de chacune de ces partitions serait réservé à un seul processus particulier.
L'exécution de plusieurs processus par un microprocesseur est bien connue de l'homme du métier. Ainsi, seuls les accès et la gestion de la mémoire cache 6 sont décrits plus en détail par la suite.
Lors d'une étape 100, une requête de lecture d'un mot est reçue par l’unité 14. Cette requête est émise par un processus exécuté par le microprocesseur 4. Cette requête de lecture contient notamment l'adresse @r du mot à lire et donc l'étiquette T r , l'adresse @ Si,r et l'indice d r . Elle contient également l’identifiant Id u du processus qui a émis cette requête ainsi que l’état du marqueur MP.
Lors d'une étape 102, l'étiquette T r , l'adresse @ Si,r , l'indice d r , l’identifiant Id u et le marqueur MP sont enregistrés dans les registres, respectivement, T r , @ Si,r , d r , Id u et MP de l'unité 14 de gestion.
Lors d'une étape 104, le générateur 40 génère alors les quatre valeurs Iw 1,r , Iw 2,r , Iw 3,r et Iw 4,r des index, respectivement, Iw 1 , Iw 2 , Iw 3 et Iw 4 .
Pour cela, lors d’une opération 106, le circuit 42 vérifie si le marqueur MP reçu est dans son état inactif. Dans l’affirmative, le procédé se poursuit par une opération 108. Dans la négative, le procédé se poursuit par une opération 110.
Lors de l’opération 108, le circuit 42 construit quatre valeurs intermédiaires I’w 1,r , I’w 2,r , I’w 3,r et I’w 4,r comme décrit en référence à la .