Brevet FR3065093A1 — publié le 20181012

TITRE DE L'INVENTION Gestion d'identifiants uniques dans une base de données DOMAINE DE L'INVENTION La présente invention concerne la gestion de bases de données accessibles à grande échelle par un grand nombre de clients avec un taux élevé de mises à jour. De façon plus spécifique, la présente invention concerne l'attribution d'identifiants à des objets stockés dans la base de données, l'identifiant associé 10 à un objet donné étant, à tout moment donné, unique dans la base de données. CONTEXTE DE L'INVENTION Dans les systèmes d'information à grande échelle, un identifiant consistant, par exemple, en une chaîne de caractères alphanumériques est 15 généralement attribué à des objets stockés dans une base de données. L'identifiant peut aussi être utilisé comme moyen dont la structure de donnée est de taille limitée permettant d'identifier un objet donné. En traitant l'identifiant plutôt que l'objet lui-même, les ressources des systèmes dans leur ensemble sont optimisées. 20 Les objets traités et stockés dans des bases de données peuvent en réalité ne pas être statiques. Les objets peuvent être créés, supprimés et modifiés à des rythmes variés. Par conséquent, les identifiants peuvent aussi être créés, supprimés et modifiés. Cependant, pour les bases de données qui traitent une grande 25 quantité de données accessibles par un grand nombre de clients, la création, la suppression, la modification et l'attribution d'identifiants peuvent s'avérer être des tâches qui ont un impact sur la performance globale du système. Le temps de réponse est un exemple de paramètre pouvant être affecté. Parmi d'autres exemples, on peut citer la mémoire nécessaire pour stocker les identifiants et 30 leur association avec les objets correspondants, ainsi que la bande passante de communication pour mettre à jour les identifiants et leurs correspondances. 3065093 2 Dans certaines applications, un identifiant unique, attribué à chaque objet, représente l'objet de façon unique dans tout le système. Un domaine dans lequel l'utilisation d'identifiants uniques dans une base de données est importante est la gestion des réservations de voyage. 5 Par exemple, les entreprises de voyages telles que les compagnies aériennes et les sociétés hôtelières utilisent des bases de données et des logiciels de réservation très sophistiqués pour gérer les réservations de clients. Une réservation de voyage implique un grand nombre d'acteurs : des agents commerciaux, des entreprises de transport, les douanes et autres administrations, etc. Ces participants sont aussi répartis sur un large territoire géographique. Par conséquent, une base de données commune et une architecture de communication doivent être utilisées pour permettre la gestion appropriée de la grande quantité d'informations que représentent les spécifications de voyage 15 de chaque réservation de chaque client. Un grand nombre de dispositifs clients (dans les entreprises de voyages) localisés dans de multiples régions accèdent donc, simultanément, à la base de données commune. TPF (acronyme de « Transaction Processing Facility) est un 20 exemple de système d'exploitation en temps réel développé par IBMTm, impliqué dans les systèmes de réservation de voyage, pour le traitement des transactions de données. D'autres systèmes existent, comme le comprendront les hommes de métier. Afin de partager l'information relative à une réservation donnée, 25 l'industrie du voyage a développé des descripteurs communs et des structures de donnée utilisées par les systèmes de traitement des transactions de données. Historiquement, l'industrie du transport aérien définit le PNR (acronyme de « Passenger Name Record ») comme un enregistrement dans la 30 base de données contenant l'information (incluant les informations de réservation) d'un voyageur ou d'un groupe de voyageurs voyageant ensemble. Le but du PNR est de permettre aux compagnies aériennes d'échanger des 3065093 3 informations de réservation lorsqu'un voyage implique plusieurs lignes aériennes desservant plusieurs destinations. IATA (acronyme de « International Air Transport Association ») est une association professionnelle qui regroupe les compagnies aériennes dans le monde et définit les normes applicables au 5 PNR (contenu, format, etc.). Bien que les PNRs aient été définis pour l'industrie du transport aérien, ils sont également utilisés pour les réservations d'hôtel, les locations de voiture, les réservations de train, etc. Afin de faciliter l'accès aux PNRs, 10 des identifiants uniques leur sont associés. Les identifiants uniques sont généralement connus comme « localisateurs d'enregistrement » (« Record Locators » en anglais), mais d'autres désignations existent. Les localisateurs d'enregistrement sont typiquement définis par une chaîne de caractères alphanumériques, par exemple 6 caractères (chiffres et lettres). L'utilisation d'une chaîne alphanumérique est une norme courante dans l'industrie. La gestion des localisateurs d'enregistrement doit satisfaire un grand nombre de contraintes techniques. Les contraintes suivantes sont citées à titre d'exemple : Un flux élevé, par exemple, plus de 50 demandes d'identifiants par seconde, Un délai de réponse faible ; par exemple, au moins 90 % des demandes d'identifiants doivent être traitées en moins d'une milliseconde, Une association fiable et unique à un PNR actif à un moment donné et l'exigence de prévenir un échec dû à un conflit d'identification, L'exigence d'être réutilisable après une utilisation antérieure de l'identifiant, La garantie de précautions pour prévenir la « perte » d'identifiants, telle que la perte d'un identifiant attribué à un PNR inactif sans possibilité de récupérer l'identifiant (p. ex., pour une réutilisation), 3065093 4 La simplicité d'exploitation, le non-recours à des interventions manuelles, Le respect des contraintes de communication de l'architecture du système (contraintes de messagerie et autres), 5 - L'interfonctionnement entre les systèmes de traitement de transaction de données (TPF développés par IBM Tm et autres systèmes), Les contraintes de respect des normes. Pour faire face à de telles contraintes, une évolution est nécessaire, 10 allant des plateformes centralisées aux systèmes distribués, dans laquelle des serveurs indépendants et redondants d'arrière-plan (backends) peuvent effectuer de façon simultanée et indépendante des attributions de localisateur d'enregistrement pour des enregistrements de réservation nouvellement créés. Sur certaines plateformes centralisées, les localisateurs 15 d'enregistrement servent non seulement d'identifiants pour les PNRs, mais également d'adresse de bas niveau dans la base de données. Afin de générer les localisateurs d'enregistrement, les systèmes centralisés implémentent des algorithmes qui peuvent convertir une adresse dans la base de données en localisateur d'enregistrement conforme à la norme. 20 Un tel procédé de génération d'identifiants uniques ne convient pas aux architectures distribuées. La génération basée sur l'adresse ne peut être implémentée dans chaque backend sans augmenter la complexité du système tout en conservant les contraintes relatives aux identifiants rencontrés (petite taille avec un nombre restreint de caractère, haute performance, compatibilité, 25 etc.). Il existe donc un besoin d'amélioration des systèmes de bases de données en matière de génération d'identifiants uniques. L'invention présente s'inscrit dans ce contexte. 3065093 5 RÉSUMÉ DE L'INVENTION Selon un premier aspect de l'invention, un système est fourni pour associer des identifiants à des objets représentés dans le système, dans lequel, 5 à un moment donné, un objet donné représenté dans une base de données du système est associé à un identifiant unique, Le système comprenant : une base de données, ladite base de données comprenant : 10 o une unité de mémoire configurée pour stocker lesdits objets et leurs associations respectives avec lesdits identifiants, o une unité d'indexation configurée pour stocker un état de disponibilité des identifiants du système, et o une unité de pointeurs de contrôle configurée pour 15 stocker les pointeurs de données dans l'unité d'indexation ; - au moins une unité de gestion d'identifiants configurée pour accéder à ladite base de données ; et - au moins une unité d'actualisation configurée pour mettre à jour l'état de disponibilité des identifiants du système, 20 dans lequel : lesdits identifiants appartiennent à un ensemble fini d'identifiants organisés à l'intérieur de ladite unité d'indexation, selon des pages d'identifiant, o chaque page étant représentée par un bitmap 25 o dans lequel chaque bit du bitmap correspond à une valeur d'identifiant respective, et o chaque valeur de bit correspond à la disponibilité de l'identifiant correspondant, - lesdits pointeurs de données dans l'index comprennent au 30 moins o un premier pointeur vers une dernière page chargée par une unité de gestion d'identifiants du système, et 3065093 6 o un deuxième pointeur vers une dernière page mise à jour par une unité d'actualisation du système, et dans lequel : ladite au moins une unité de gestion d'identifiants est par 5 ailleurs configurée pour : o charger une première page d'identifiants basée sur ledit premier pointeur pour attribuer un identifiant de ladite page d'identifiants à un objet devant être stocké dans la base de données, sur la base d'un bitmap correspondant à ladite 10 première page chargée, et - ladite au moins une unité d'actualisation est par ailleurs configurée pour : o déterminer des identifiants correspondants à une deuxième page d'identifiants sur la base dudit deuxième 15 pointeur, o accéder à ladite unité de mémoire pour vérifier la disponibilité des identifiants déterminés, et o actualiser un bitmap représentant ladite deuxième page chargée sur la base de la disponibilité desdits identifiants 20 déterminés, et ladite base de données est par ailleurs configurée pour : o stocker, à partir de ladite unité de mémoire, un objet et l'identifiant qui lui a été attribué lors de son activation dans le système, et 25 o supprimer, de ladite unité de mémoire, un objet et l'identifiant qui lui a été attribué lors de sa désactivation dans le système. Les modes de réalisation apportent un temps de réponse court tout en maintenant au plus bas la complexité de la mise en oeuvre. Les modes de 30 réalisation fournissent aussi une compatibilité avec les bases de données existantes. 3065093 7 Selon des modes de réalisation, ladite au moins une unité de gestion d'identifiants est par ailleurs configurée pour rejeter ladite première page d'identifiants chargée après un délai ne dépassant pas la durée de vie maximale d'une page. 5 Selon des modes de réalisation ladite au moins une unité d'actualisation est par ailleurs configurée pour attendre que ladite durée de vie maximale d'une page soit écoulée avant de déterminer un identifiant correspondant à ladite deuxième page d'identifiants. Selon des modes de réalisation, au moins une unité, d'une unité de 10 gestion des identifiants et d'une unité d'actualisation, est par ailleurs configurée pour vérifier que ledit premier pointeur et ledit deuxième pointeur pointent simultanément vers une même page d'identifiants. Selon des modes de réalisation, lesdites pages d'identifiants sont commandées de façon cyclique. 15 Selon des modes de réalisation, avant d'attribuer un identifiant à un objet devant être stocké dans la base de données, les pointeurs sont contrôlés pour vérifier que le deuxième pointeur ne pointe pas vers la page voisine de la page vers laquelle pointe le premier pointeur. Par exemple, les pointeurs sont contrôlés chaque fois qu'une page 20 est chargée. Selon des modes de réalisation, avant d'actualiser un bitmap d'une page d'identifiants, les pointeurs sont contrôlés pour vérifier que le premier pointeur ne pointe pas vers la page voisine de la page vers laquelle pointe le deuxième pointeur. 25 Selon un deuxième aspect de l'invention, un procédé est fourni pour associer des identifiants à des objets représentés dans un système, dans lequel, à un moment donné, un objet donné, représenté dans une base de données du système est associé à un identifiant unique, le système comprenant : 30 une base de données, ladite base de données comprenant : 3065093 8 o une unité de mémoire configurée pour stocker lesdits objets et leurs associations respectives avec lesdits identifiants, o une unité d'indexation configurée pour stocker un état de disponibilité des identifiants du système, et 5 o une unité de pointeur configurée pour stocker les pointeurs de données dans l'unité d'indexation - au moins une unité de gestion d'identifiants configurée pour accéder à ladite base de données, et - au moins une unité d'actualisation configurée pour mettre à 10 jour l'état de disponibilité des identifiants dans le système, dans lequel : - lesdits identifiants appartiennent à un ensemble fini d'identifiants organisés, à l'intérieur de ladite unité d'indexation (102), selon des pages d'identifiants, 15 o chaque page étant représentée par un bitmap o dans lequel chaque bit du bitmap correspond à une valeur d'identifiant respective, et o chaque valeur de bit correspond à la disponibilité dé l'identifiant correspondant, 20 - lesdits pointeurs de données dans l'index comprennent au moins o un premier pointeur vers une dernière page chargée par une unité de gestion d'identifiants du système, et o un deuxième pointeur vers une dernière page mise à 25 jour par une unité d'actualisation du système, le procédé comprenant les étapes suivantes, mises en oeuvre par ladite au moins une unité de gestion d'identifiants : - le chargement d'une première page d'identifiants basé sur ledit premier pointeur, 30 l'attribution d'un identifiant de ladite page d'identifiants à un objet devant être stocké dans la base de données, sur la base d'un bitmap correspondant à ladite première page chargée, 3065093 9 le procédé comprenant les étapes suivantes, mise en oeuvre par ladite au moins une unité d'actualisation : - la détermination des identifiants correspondants à une deuxième page basée sur ledit deuxième pointeur, 5 - l'accès à ladite unité de mémoire pour vérifier la disponibilité des identifiants déterminés, - l'actualisation d'un bitmap représentant ladite deuxième page chargée basée sur la disponibilité desdits identifiants déterminés, et 10 le procédé comprenant les étapes suivantes, effectuées par ladite base de données : o le stockage, dans ladite unité de mémoire, d'un objet et de l'identifiant qui lui a été attribué lors de son activation dans le système, et 15 o la suppression, de ladite unité de mémoire d'un objet et de l'identifiant qui lui a été attribué lors de sa désactivation dans le système. Selon des modes de réalisation, ladite au moins une unité de gestion d'identifiants rejette par ailleurs configurer pour rejeter ladite première page 20 d'identifiants chargée, après un délai écoulé ne dépassant pas une durée de vie maximale de page. Selon des modes de réalisation, ladite au moins une unité d'actualisation attend par ailleurs que ladite durée de vie maximale de page soit écoulée avant de déterminer un identifiant correspondant à ladite deuxième 25 page d'identifiants. Selon des modes de réalisation, au moins une unité d'une unité de gestion d'identifiants et d'une unité d'actualisation est par ailleurs configurée pour vérifier que ledit premier pointeur et ledit deuxième pointeur pointent simultanément vers une même page d'identifiants. 30 Selon des modes de réalisation, lesdites pages d'identifiant sont commandées de façon cyclique. 3065093 10 Selon des modes de réalisation, avant d'attribuer un identifiant à un objet devant être stocké dans la base de données, les pointeurs sont contrôlés pour vérifier que le deuxième pointeur ne pointe pas vers la page voisine de la page vers laquelle pointe le premier pointeur. 5 Selon des modes de réalisation, avant d'actualiser un bitmap d'une page d'une page d'identifiants, les pointeurs sont contrôlés pour vérifier que le premier pointeur ne pointe pas vers la page voisine de la page vers laquelle pointe le deuxième pointeur. Selon un troisième aspect de l'invention, un produit-programme 10 d'ordinateur est fourni qui comprend des instructions pour mettre en oeuvre un procédé selon le deuxième aspect de l'invention lorsque le programme est chargé et exécuté par un appareil programmable. Des supports de stockage de l'information non transitoires, lisibles par un ordinateur ou un microprocesseur stockant les instructions d'un 15 programme d'ordinateur sont également fournis pour implémenter un procédé selon le deuxième aspect de l'invention lorsque le programme est chargé et exécuté par l'ordinateur le microprocesseur. Les objets selon le deuxième et le troisième aspect de l'invention fournissent au moins les mêmes avantages que ceux qui sont fournis par le 20 système selon un troisième aspect. BRÈVE DESCRIPTION DES DESSINS Des caractéristiques et des avantages de l'invention apparaîtront à partir de la description qui suit des modes de réalisation exemplaires et non 25 restrictifs, faisant référence au dessin en annexe dans lesquels : Figure 1 illustre un contexte général de la mise en oeuvre des modes de réalisation ; Les figures 2A et 2B illustrent des localisateurs d'enregistrements conformes aux modes de réalisation ; 30 Figure 3 illustre de façon schématique un tableau de PNRs conforme à des modes de réalisation ; 3065093 11 Figure 4 illustre de façon schématique une table d'indexation conforme à des modes de réalisation ; Les figures 5A-5B illustrent de façon schématique une table stockée dans l'unité de pointeurs de contrôle conforme à des 5 modes de réalisation ; Figure 6 est un flux de données illustrant des étapes pour l'attribution d'un localisateur d'enregistrement à un dispositif client conformément à des modes de réalisation ; Figure 7 est un diagramme séquentiel illustrant des étapes pour 10 actualiser le système de base de données conformément à des modes de réalisation ; et Figure 8 illustre de façon schématique un dispositif conforme à des modes de réalisation. 15 DESCRIPTION DÉTAILLÉE DE L'INVENTION Figure 1 illustre un contexte général de la mise en oeuvre des modes de réalisation. Un système de base de données 100 est fourni pour stocker des objets qui peuvent être placés et récupérés par une pluralité de dispositifs 20 externes. La base de données peut être implémentée comme une base de données relationnelle ou un système de gestion de base de données relationnelle objet (ORDBMS). Par exemple, l'ORDBMS peut être un système sous sa forme commercialisée par Oracle Corporation TM. Le système de base de données 100 peut, par exemple, stocker les 25 PNRs créés par des systèmes de gestion implémentés par des agences de voyages. La base de données comprend une unité de mémoire 101 pour stocker les objets (tels que les PNRs) et leur association avec un identifiant unique. L'identifiant unique peut, par exemple, être un localisateur 30 d'enregistrement. Selon des modes de réalisation, une unité de mémoire 101 stocke uniquement les objets qui sont actifs dans l'ensemble du système. S'agissant 3065093 12 d'un PNR, une unité de mémoire 101 n'aura en mémoire que les PNRs actifs. Par conséquent, dès qu'un PNR n'est plus nécessaire (par exemple le voyage qu'il représente est terminé), il est retiré de l'unité de mémoire 101. L'objet peut être effacé ou désactivé selon tout autre mécanisme. Ce mécanisme peut être 5 mis en oeuvre par une unité externe de retrait de PNR (non représentée). Les actions effectuées par l'unité de retrait de PNR peuvent être déclenchées par une unité de contrôle 150 décrite par la suite. Le fait que l'unité de mémoire 101 ne comprenne que des objets actifs permet de déterminer, à partir de l'association entre un objet et son 10 identifiant unique, si un identifiant unique est disponible, ou non, pour une attribution à un autre objet. En d'autres termes, puisque l'unité de mémoire 101 ne comprend que des objets actifs, on peut inférer que dès qu'un identifiant unique est associé un objet dans l'unité de mémoire 101, il n'est plus disponible pour un autre objet. 15 Le système de base de données 100 comprend par ailleurs une unité d'indexation 102. L'unité d'indexation 102 comprend un résumé de l'état de disponibilité de tous les identifiants uniques dans le système. Chaque identifiant unique du système est indiqué comme étant disponible ou non disponible dans l'unité d'indexation 102. 20 Le système de base de données 100 comprend par ailleurs une unité de pointeurs de contrôle 103. L'unité de pointeurs de contrôle 103 comprend des pointeurs vers des données dans l'unité d'indexation 102. Le système de base de données 100 est par ailleurs connecté via un réseau de communication (non représenté) à plusieurs dispositifs qui peuvent 25 lire et/ou écrire des données dans et/ou à partir du système de base de données. Par exemple, le réseau de communication est un réseau basé sur un protocole Internet. L'unité de gestion de transaction 110 est une unité de traitement connectée au système de base de données 100, chargée d'actualiser les objets 30 qui y sont stockés. À la demande d'un dispositif client, elle crée l'objet devant être stocké dans l'unité de mémoire 101, sur la base d'une information fournie par le dispositif client (incluant l'identifiant unique auquel il doit être associé). 3065093 13 L'unité de gestion de transaction 110 transmet aussi les objets créés au système de gestion de bases de données pour qu'ils soient stockés dans l'unité de mémoire 101. L'unité de gestion de transaction 110 peut aussi être impliquée dans la suppression et/ou la modification d'objets dans l'unité de 5 mémoire 101 du système de base de données 100. Les identifiants uniques sont fournis par les dispositifs clients via une plusieurs unités de gestion d'identifiants 120, 121, 122 connectées au système de base de données 100. Les unités de gestion d'identifiants sont des unités indépendantes 120, 121, 122 « backends » qui peuvent 10 indépendamment avoir accès au système de base de données 100 pour lire des données. Les unités de gestion d'identifiants 120, 121, 122 « backends » sont aussi accessibles indépendamment par un ou plusieurs dispositifs clients 130, 131, 132 afin d'obtenir des identifiants uniques. La synchronisation de l'utilisation des identifiants uniques est 15 effectuée par une unité d'actualisation 140 connectée au système de base de données 100. Conformément à l'objectif général du système dans son ensemble, à un moment donné, un identifiant unique ne doit pas être attribué à plus d'un seul objet actif. Si un identifiant était associé à deux ou plusieurs objets actifs, une erreur surviendrait dans le système. Selon des modes de 20 réalisation, un identifiant peut être présent dans le système sans être associé à un objet (comme une réservation) : par exemple, lorsqu'il est filtré intentionnellement (p. ex. l'identifiant représente un mauvais mot ou l'objet actif n'est pas encore officiellement dans le système). Dans un mode de réalisation exemplaire, une unité 25 d'actualisation 140 actualise l'état de disponibilité des identifiants uniques par lots en mode différé. La mise à jour de l'état de disponibilité de l'identifiant unique peut être gérée par une unité de contrôle 150 connectée à l'unité d'actualisation 140. L'unité de contrôle 150 peut être implémentée en utilisant le logiciel d'automatisation de tâche Control-M TM de BMC Software TM 30 Dans le contexte général de la mise en oeuvre des modes de réalisation décrits ci-dessus, les dispositifs clients 130, 131, 132 sont connectés aux unités de gestion d'identifiants 120, 121, 122 pour obtenir des identifiants 3065093 14 uniques à associer à des objets devant être stockés dans le système de base de données. Les dispositifs clients 130, 131, 132 sont aussi connectés à l'unité de gestion de transaction 110 pour la création desdits objets sur la base de l'information fournie par les dispositifs clients ainsi que pour le stockage des 5 objets dans le système de base de données 100 en association avec les identifiants uniques. Dans la description qui suit, un exemple de système de gestion de voyage est décrit. L'invention n'est cependant pas limitée à ce type d'application. Les modes de réalisation ont d'autres types d'applications dans 10 des systèmes dans lesquels les objets doivent être associés à des identifiants uniques et dans lesquels le nombre d'identifiants uniques disponibles est limité. Dans la description qui suit, les identifiants uniques peuvent être désignés comme « localisateurs d'enregistrement » (Record Locators ), « Recloc. » ou « rloc ». Les objets peuvent être désignés comme « PNRs » 15 (Passenger Name Record). Le système de base de données peut être désigné par l'acronyme « RDBMS ». Les localisateurs d'enregistrement conformément au mode de réalisation sont décrits par référence aux figures 2A et 2B. Les localisateurs d'enregistrements sont représentés par un nombre 20 fini de nombres entiers « RLC ». Par exemple, ils sont exprimés en base 34 justifiés à gauche pour accommoder 6 caractères. Par conséquent : Oio = 222 22234, 110 = 222 22334... jusqu'à ZZZ 77734 L'ensemble fini de localisateurs d'enregistrement est divisé logiquement en pages P1,..., P5. Chaque page peut comprendre un même 25 nombre de localisateurs d'enregistrement. Elles peuvent aussi comprendre des nombres différents de localisateurs d'enregistrement. Chaque page peut par exemple comprendre 16 000 localisateurs d'enregistrement. Les pages peuvent être numérotées de façon séquentielle. Les pages peuvent aussi, par exemple, être adjacentes ; c'est-à-dire qu'une page comprend des localisateurs 30 d'enregistrement successifs. Autrement, les pages peuvent comprendre des localisateurs d'enregistrement non adjacents. 3065093 15 Dans le système de base de données, des opérations peuvent traiter des pages entières. D'autres opérations, en dehors du système de base de données, peuvent traiter des localisateurs d'enregistrement seuls. Chaque localisateur d'enregistrement peut être associé à une valeur 5 qui représente sa disponibilité dans le système. Par exemple un état de bit ayant une valeur « 1 » lorsque le localisateur d'enregistrement est disponible et "0" lorsqu'il n'est pas disponible. Dans la figure 2A, les localisateurs d'enregistrement sont représentés sur un segment fini, par exemple du 222 222 à ZZZ ZZZ. 10 Cependant, selon des modes de réalisation, les localisateurs d'enregistrement sont représentés comme des valeurs cycliques telles que dans la figure 2 B. Les localisateurs d'enregistrement sont en nombre limité et il y a un « roulement ». Lorsqu'il y a un « dépassement » du plus grand nombre, le compte repart à partir du premier nombre. En d'autres termes, les 15 localisateurs de ressources satisfont la relation suivante ZZZ ZZZ + 222 223 = 222 222. Le localisateur d'enregistrement suivant le dernier est le premier. Par conséquent, les localisateurs d'enregistrement sont limités en nombre, organisés de manière cyclique et classés selon des pages. Ils ont aussi une caractérisation d'usage pour indiquer s'ils sont disponibles ou non. 20 Figure 3 illustre de façon schématique la table représentant les PNR dans l'unité de mémoire 101. La table 300 a une première colonne 301 stockant les PNRs. Par exemple, seuls les PNRs actifs dans le système sont stockés dans la table. Autrement, une structure de donnée peut être utilisée pour faire la distinction 25 entre les PNRs actifs et non actifs. Une deuxième colonne 302 stocke les localisateurs d'enregistrement. Puisque la table contient seulement des PNRs actifs, les localisateurs d'enregistrement dans la table sont donc utilisés et ne sont pas disponibles. Lorsque la table fait la distinction entre les PNRs actifs et non 30 actifs, la distinction s'applique aussi aux localisateurs d'enregistrement. Dans chaque ligne 303, 304 de la table, un PNR est donc uniquement associé à un localisateur d'enregistrement unique. 3065093 16 Figure 4 illustre de façon schématique la table d'indexation 400 représentant le résumé (stocké dans l'unité 102) de l'état de disponibilité des localisateurs d'enregistrement dans l'unité de mémoire 101. Les localisateurs d'enregistrements sont représentés selon un 5 tampon circulaire. La colonne 401 comprend les pages (« Pg ») de localisateurs d'enregistrement. La colonne 402 comprend un bitmap (« BM ») associé à la page correspondante dans la colonne 401 représentant l'état de disponibilité de chaque localisateur d'enregistrement dans la page. 10 La valeur « 1 » représente un localisateur d'enregistrement qui est disponible. La valeur « 0 » représente un localisateur d'enregistrement qui est utilisé et n'est pas disponible. En d'autres termes, un localisateur d'enregistrement qui est présent dans l'unité de mémoire 101 comme étant associé à un PNR actif est représenté par une valeur « 0 » dans le bitmap 15 correspondant à la page à laquelle il appartient. Lorsque le localisateur d'enregistrement est absent de l'unité de mémoire 101, il est représenté par « 1 ». Dans chaque bitmap de la colonne 401, un localisateur d'enregistrement occupe la position qu'il a dans la page à laquelle il appartient. 20 En d'autres termes, le premier bitmap correspond au localisateur d'enregistrement le plus bas dans la page, le dernier correspond au localisateur d'enregistrement le plus haut dans la page. Selon des modes de réalisation, pour une page donnée représentée dans la table d'indexation 400, tous les localisateurs d'enregistrements sont 25 utilisés. Cela signifie que tous les bits des bitmaps sont significatifs. Cependant, pendant le processus d'attribution, les unités de gestion d'identifiants 120, 121, 122 peuvent sauter certains des bits si les localisateurs d'enregistrement correspondants sont contenus dans une table de l'unité de 30 mémoire 101 (ou tout autre système de stockage similaire). Ainsi, la table peut contenir les localisateurs d'enregistrement que le système ne doit pas générer pour des raisons techniques et/ou fonctionnelles. 3065093 17 Figures 5A-5B illustrent de façon schématique la table 500 stockée dans l'unité de pointeurs de contrôle 103. La table 500 stocke des pointeurs vers les pages dans la table d'indexation 400. La ligne 501 représente les pointeurs vers des pages 5 spécifiques stockées dans la table d'indexation 400. La ligne 502 représente ces pages spécifiques. Dans certains modes de réalisation, la table 500 peut avoir une ligne différente pour des intervalles de localisateurs d'enregistrement différents. L'organisation de la table 500 avec des lignes et des colonnes, représentée par 10 la figure 5A, permet cette addition de lignes et ces implémentations. Les pointeurs 503 (« B » pour Début) pointent vers la première page comprenant les localisateurs d'enregistrement autorisés dans le système. Cela signifie que les localisateurs d'enregistrement appartenant à une page classée entre la page ayant le numéro le plus bas et la page vers laquelle pointe le 15 pointeur B ne peuvent pas être utilisés. Lorsque les pages comprennent des valeurs successives, cela signifie que les localisateurs d'enregistrement ayant une valeur inférieure à la valeur du premier localisateur d'enregistrement dans la page vers laquelle pointe le pointeur B ne peuvent pas être utilisés. Le pointeur 504 (« E» pour Fin) pointe vers la page après la dernière 20 page comprenant les localisateurs d'enregistrement autorisés dans le système. Cela signifie que les localisateurs d'enregistrement appartenant à une page classée entre la page vers laquelle pointe le pointeur E et la page ayant le nombre le numéro le plus élevé ou appartenant à la page vers laquelle pointe le pointeur E ne peuvent pas être utilisés. Lorsque les pages comprennent des 25 valeurs successives, cela signifie que les localisateurs d'enregistrement ayant une valeur supérieure ou égale à la valeur du premier localisateur d'enregistrement dans la page vers laquelle pointe le pointeur E ne peuvent pas être utilisés. Le pointeur 505 (« R » pour Lecture) pointe vers la dernière page 30 chargée par une unité de gestion d'identifiants 120, 121, 122. Le pointeur 506 (« W» pour Écriture) pointe vers la page juste après la dernière page mise à jour par l'unité d'actualisation 140. 3065093 18 Comme décrit ci-après, les unités de gestion d'identifiants lisent les localisateurs d'enregistrement page par page. Les unités de gestion d'identifiants uniques chargent une page entière pour un ou plusieurs dispositifs clients donnés qui seront autorisés à utiliser des localisateurs d'enregistrement 5 disponibles de la page chargée. Des règles de contrôle sont implémentées afin que les pointeurs R et W ne pointent jamais vers la même page en même temps. Par exemple, ces règles de contrôle peuvent être implémentées par les unités de gestion d'identifiants 120, 121, 122. Elles peuvent aussi être implémentées par l'unité 10 d'actualisation 140. Les règles prévoient aussi que la page vers laquelle pointe le pointeur R soit en usage (ou chargée) par une unité unique de gestion d'identifiants. Les pointeurs sont vérifiés pour déterminer si la relation suivante est 15 vraie : R+1 = W. Cette vérification peut se faire régulièrement. La vérification peut être effectuée chaque fois qu'une page est chargée. Lorsque la page vers laquelle pointe le pointeur R est la page immédiatement avant la page vers laquelle pointe le pointeur W, cela signifie qu'il n'y a pas de page ayant des localisateurs d'enregistrement disponibles. Les PNRs ne peuvent pas être 20 créés (ou utilisés) avant la désactivation des PNRs et la mise à jour des pages avec les localisateurs d'enregistrement correspondants par l'unité de gestion d'actualisation. Les pointeurs sont aussi vérifiés pour déterminer si la relation suivante est vraie : W+1 = R. Lorsque la page vers laquelle pointe le pointeur W 25 est la page immédiatement avant la page vers laquelle pointe le pointeur R, cela signifie que toutes les pages sont actualisées. Il est donc possible de déterminer s'il existe un besoin de mise à jour par l'unité d'actualisation 140. Figure 6 est un flux de données illustrant les étapes pour l'attribution d'un localisateur d'enregistrement à un dispositif client. 30 Lors d'une première étape 600 un dispositif client 130 soumet une requête pour un localisateur d'enregistrement à une unité de gestion d'identifiants uniques 120. 3065093 19 Ensuite à l'étape 601, l'unité de gestion d'identifiants uniques 120 charge la valeur de pointeur du pointeur 505 (« R ») à partir de l'unité de pointeurs de contrôle 103. L'unité de gestion d'identifiants uniques 120 incrémente alors la valeur de pointeur à l'étape 602. 5 La valeur de pointeur n'est pas réellement chargée directement à partir de l'unité de pointeurs de contrôle. Une requête de « lecture » est adressée au système de base de données qui effectue le traitement nécessaire pour lire les valeurs à partir de l'unité de pointeurs de contrôle et pour les renvoyer à l'unité de gestion d'identifiants uniques. Le flux de données est 10 simplifié par souci de clarté et de concision. L'unité de gestion d'identifiants uniques 120 stocke la valeur incrémentée dans l'unité de pointeurs de contrôle 103 à l'étape 605. À l'étape 604, l'unité de gestion d'identifiants uniques 120 charge la page dans l'unité d'indexation 102 correspondant au pointeur 505 (après 15 incrémentation). Le système de base de données implémente des règles de contrôle simultanément permettant de garantir que la charge, l'incrément et le stockage de la valeur du pointeur R sont atomiques, c'est-à-dire que la même page ne peut pas être lue par deux unités de gestion d'identifiants uniques distinctes. À 20 titre d'exemple, ces règles de contrôle sont garanties par les propriétés « ACID » (acronyme pour « Atomicité, Consistance, Isolation, Durabilité ») des transactions de bases de données relationnelles. Lorsqu'il n'y a pas de page disponible, les systèmes renvoient une erreur (non représentée). 25 La première page peut être chargée par l'unité de gestion d'identifiants uniques 120 au démarrage. Alternativement, le premier chargement d'une page peut être effectué dès que la première requête est reçue. L'unité de gestion d'identifiants conservera la page chargée en mémoire pendant une durée donnée ou jusqu'à ce que la page n'ait plus de localisateur 30 d'enregistrement disponible. Par exemple, dans un système de gestion de voyage, la durée de vie d'une page chargée peut être 12 minutes. 3065093 20 L'unité de gestion d'identifiants uniques 120 vérifie qu'elle peut conserver une page chargée en mémoire chaque fois qu'elle accède à la page elle-même (afin de trouver un localisateur d'enregistrement disponible pour le dispositif client). 5 Lorsqu'une durée désignée comme « durée de vie d'une page » correspondant à un temps de consultation de page est écoulée ou quand il n'y a plus de localisateur d'enregistrement disponible (étape 606, NON), l'unité de gestion d'identifiants uniques 120 recharge une autre page immédiatement (étapes 601 à 605). 10 L'unité de gestion d'identifiants uniques 120 peut aussi recharger une page (après vérification des conditions ci-dessus) après avoir attribué un localisateur d'enregistrement à un dispositif client. Le chargement d'une page entière, plutôt que d'un seul localisateur d'enregistrement, permet de garantir que la plupart des requêtes peuvent être 15 satisfaites sans accéder à la base de données. Le fait de tester l'état de la page après avoir répondu au dernier dispositif client, mais avant d'accepter la requête suivante provenant d'un dispositif client, maintient un temps de réponse court (le chargement de la page a lieu « entre » plutôt que « pendant » le traitement des requêtes). 20 Une fois que l'unité de gestion d'identifiants uniques 120 a une page valide en mémoire, elle recherche un localisateur d'enregistrement disponible durant l'étape 606 et le renvoie (OUI) au dispositif client 130 durant l'étape 607. L'unité de gestion d'identifiants uniques 120 actualise l'état de disponibilité du localisateur d'enregistrement dans la page qu'elle a chargée 25 durant l'étape 608. L'unité de gestion d'identifiants uniques 120 n'actualise pas l'unité d'indexation directement 102 (pour éviter des accès à la base de données et augmenter ainsi la performance). Le système permet de garantir qu'aucune autre unité de gestion d'identifiants uniques ne peut lire la page (maintenant obsolète) dans la base de 30 données avant que l'unité d'actualisation 140 n'ait actualisé l'information qu'elle contient. 3065093 21 Le processus ne s'arrête pas, sauf si les unités de gestion d'identifiants uniques sont mises hors service par un opérateur. Elles continuent à répondre aux interrogations provenant des dispositifs clients. Si la création de PNR s'achève, la donnée est stockée dans l'unité 5 de mémoire 101 durant l'étape 610. Le dispositif client 130 confirme la création du PNR avec le localisateur d'enregistrement associé qu'il a récupéré à partir de l'unité (unique) de gestion d'identifiants uniques et envoie les données correspondantes à l'unité de gestion de transaction 110 (étape 609). L'unité de gestion de 10 transaction envoie alors les données à la base de données durant l'étape 611 et le stockage est effectué durant l'étape 610. Dans le processus ci-dessus, les pages vers lesquels pointent les pointeurs R et W sont certainement différentes, donc l'écriture de la base de données sur un localisateur d'enregistrement en cours de lecture par l'unité 15 d'actualisation 140 n'est pas possible. Cela garantit l'exactitude de l'accès à la base de données par l'unité d'actualisation 140, même si elle ne verrouille pas les PNRs. La Figure 7 est un diagramme de flux de données illustrant les étapes de mise à jour du système de base de données en fonction de 20 l'attribution des localisateurs d'enregistrement aux PNRs. La mise à jour est effectuée par l'unité d'actualisation 140 indépendamment des opérations des unités de gestion d'identifiants uniques 120, 121, 122. L'actualisation est déclenchée par l'unité de contrôle 150 à 25 l'étape 701. L'unité d'actualisation 140 lit alors, durant l'étape 702, les valeurs des pointeurs 503 à 506 (B, R, W, E) à partir de l'unité de pointeurs de contrôle 103. La requête de lecture n'est pas réellement adressée directement à l'unité de pointeurs de contrôle. La requête de lecture est adressée au système 30 de base de données qui met en oeuvre le traitement nécessaire pour lire les valeurs à partir de l'unité de pointeurs de contrôle et pour les envoyer à l'unité 3065093 22 d'actualisation. Le flux de données est simplifié par souci de clarté et de concision. Après le lancement, l'unité d'actualisation stocke la valeur initiale du pointeur R durant l'étape 703. Elle attend ensuite qu'une durée désignée 5 comme « durée de vie d'une page » (correspondant à une durée de consultation de page) s'écoule durant l'étape 704. La durée de vie d'une page est la même que la durée utilisée par l'unité de gestion d'identifiant unique pour conserver les pages. L'étape 704 permet de garantir que toute page chargée en mémoire 10 par une unité de gestion d'identifiants uniques a été utilisée de façon certaine ou rejetée à la fin de l'étape. Ensuite, l'unité d'actualisation charge la valeur du pointeur W à partir de l'unité de pointeurs de contrôle à l'étape 705 et calcule le bloc de localisateurs d'enregistrement contenus dans la page correspondante à 15 l'étape 706. L'unité d'actualisation interroge ensuite le système de base de données sur l'état de disponibilité de ces localisateurs d'enregistrement au cours de l'étape 707. L'unité d'actualisation vérifie que les localisateurs d'enregistrement comprenant des PNRs actifs sont stockés dans l'unité de 20 mémoire 101. En utilisant une interrogation par page, l'unité d'actualisation charge l'information pour un grand nombre de localisateurs d'enregistrement en même temps, réduisant ainsi le trafic dans la base de données et l'impact sur la latence du réseau. 25 Une fois que la donnée est renvoyée par le système de base de données, elle est encodée dans la page par l'unité d'actualisation (étape 708) et stockée dans l'unité d'indexation 102 de la base de données (étape 709). Enfin l'unité d'actualisation incrémente la valeur du pointeur W à l'étape 710. La valeur incrémentée du pointeur W est ensuite stockée dans l'unité de pointeurs 30 de contrôle 103 à l'étape 711. Le processus ci-dessus continue en boucle pour traiter une autre page. 3065093 23 L'unité d'actualisation vérifie régulièrement, à chaque implémentation du processus de la figure 7, si la valeur W atteint bien la valeur du pointeur R tel qu'il a été stocké (à l'étape (703) avant l'étape d'attente 704 car après ce point, les pages peuvent encore être utilisées par les noeuds en ligne. 5 Figure 8 est un diagramme bloc représentant un dispositif 800 pour implémenter un ou plusieurs modes de réalisation de l'invention. Les diverses parties du système décrites ci-dessus peuvent avoir une même structure que le dispositif 800. Le dispositif 800 comprend un bus de communication relié à : 10 - une unité centrale de traitement 801 tel qu'un microprocesseur, autrement nommée CPU ; - Une mémoire à accès aléatoire 802, autrement nommée RAM, pour stocker un code exécutable du procédé des modes de réalisation de l'invention ainsi que les registres adaptés pour enregistrer les variables et les 15 paramètres nécessaires à la mise en oeuvre du procédé conformément aux modes de réalisation, la capacité de la mémoire pouvant être augmentée par une RAM optionnelle connectée par exemple à un port d'expansion ; - Une mémoire à lecture seule 803, autrement nommée ROM, pour stocker les programmes d'ordinateur utilisés pour mettre en oeuvre les modes 20 de réalisation de l'invention ; - une interface de réseau 804, qui est typiquement connectée à un réseau de communication sur lequel des données numériques devant être traitées sont transmises ou reçues. L'interface de réseau 804 peut être une seule interface de réseau ou être composée d'un ensemble d'interfaces de 25 réseau différentes (par exemple des interfaces filaires et sans-fil, ou différentes sortes d'interfaces filaires ou sans-fil). Les données sont écrites sur l'interface de réseau pour transmission ou lues à partir de l'interface réseau pour réception sous le contrôle de l'application logicielle fonctionnant dans le CPU 801; 30 - Une interface utilisateur 805 pour la réception des saisies d'un utilisateur ou pour l'affichage d'information à l'utilisateur ; - Un disque dur 806 autrement nommé HD 3065093 24 - un module entrée/sortie 807 (autrement nommé I/O) pour envoyer/recevoir des données de/vers des dispositifs tels qu'une source vidéo ou un écran d'affichage Le code exécutable peut être stocké, soit dans la mémoire à lecture 5 seule 803, soit sur le disque dur 806, ou sur un support numérique amovible tel qu'un disque par exemple. Selon une variante, le code exécutable des programmes peut être reçu au moyen d'un réseau de communication, via l'interface de réseau 804, afin d'être stocké sur un des supports de stockage du dispositif de communication 800, tel que le disque dur 806, avant d'être 10 exécuté. L'unité centrale de traitement 801 est adaptée pour contrôler et diriger l'exécution des instructions ou des portions de code logiciel du programme des programmes conformément aux modes de réalisation de l'invention, lesquelles instructions sont stockées sur l'un des supports de 15 stockage précités. Après avoir été mise en service, la CPU 801 est capable d'exécuter les instructions à partir de la mémoire RAM principale 802 en rapport avec une application logicielle par exemple après que ces instructions ont été chargées à partir du programme ROM 803 ou sur le disque dur (HD) 806. Cette application logicielle, lorsqu'elle est exécutée par la CPU 801, amène les 20 étapes de procédé à être mises en oeuvre conformément aux modes de réalisation. Les dessins et la description détaillée qui leur est associée sont fournis à titre d'exemple. Bien que l'invention soit illustrée par ces dessins et que des modes de réalisation soient décrits dans les détails, l'invention n'est en 25 aucun cas limitée aux seuls modes de réalisation divulgués dans les présentes. D'autres variantes de l'invention divulguée peuvent être extrapolées et réalisées par les hommes de métier souhaitant mettre en oeuvre l'invention revendiquée à partir d'une étude des dessins, de la divulgation et des revendications en annexe. 30 Dans les revendications, le mot « comprenant » n'exclut pas autres éléments ou étapes, et l'article indéfini singulier, « un » ou « une » n'exclut pas une pluralité. Le simple fait que différentes caractéristiques soient citées 3065093 25 simultanément dans des revendications différentes dépendantes n'indique pas qu'une combinaison de ces caractéristiques ne peut pas être utilisée de façon avantageuse. Un quelconque signe de référence dans les revendications ne peut être interprété comme une limitation de la portée de l'invention. 5 REVENDICATIONS1. Un système permettant d'associer des identifiants à des objets représentés 5 dans le système, dans lequel, à un moment donné, un objet donné représenté dans une base de données du système est associé à un identifiant unique, le système comprenant : - une base de données (100), ladite base de données comprenant : o une unité de mémoire (101) configurée pour stocker lesdits 10 objets et leurs associations respectives avec lesdits identifiants, o une unité d'indexation (102) configurée pour stocker un état de disponibilité des identifiants du système, et o une unité de pointeurs de contrôle (103) configurée pour stocker des pointeurs (503, 504, 505, 506) vers des données dans 15 l'unité d'indexation ; - au moins une unité de gestion d'identifiants (120, 121, 122) configurée pour accéder à ladite base de données (100) ; et au moins une unité d'actualisation (140) configurée pour mettre à jour l'état de disponibilité des identifiants du système, 20 dans lequel, - lesdits identifiants appartiennent un ensemble fini d'identifiants organisés, à l'intérieur de ladite unité d'indexation (102), selon des pages d'identifiants (P1, P2, P3, P4, P5), o chaque page étant représentée par un bitmap 25 o dans laquelle chaque bit du bitmap correspond à une valeur d'identifiant respective, et o chaque valeur de bit correspond à la disponibilité de l'identifiant correspondant, lesdits pointeurs de donnée dans l'index comprennent au moins 30 o un premier pointeur (505) vers une dernière page chargée par unité de gestion d'identifiants (120, 121, 122) du système, et o un deuxième pointeur (506) vers une dernière page actualisée par une unité d'actualisation (140) du système, et dans lequel 35 - ladite au moins une unité de gestion d'identifiants (120, 121, 122) est par ailleurs configurée pour : 3065093 27 o charger (604) une première page d'identifiants, basée sur ledit pointeur (505) pour attribuer (607) un identifiant de ladite page d'identifiants à un objet devant être stocké (610) dans la base de données, sur la base d'un bitmap correspondant à ladite première page chargée, et - ladite au moins une unité d'actualisation (140) est par ailleurs configurée pour : o déterminer (706) les identifiants correspondants à une deuxième page d'identifiants sur la base dudit deuxième pointeur (506), o accéder (707) à ladite unité de mémoire pour vérifier la disponibilité des identifiants déterminés, et o actualiser (708) un bitmap représentant ladite deuxième page chargée sur la base de la disponibilité desdits identifiants déterminés, et - ladite base de données est par ailleurs configurée pour : o stocker (610), dans ladite unité de mémoire (101), un objet et l'identifiant qui lui a été attribué lors de son activation dans le système, et o supprimer, de ladite unité de mémoire (101), un objet et l'identifiant qui lui a été attribué lors de sa désactivation dans le système. 2. Un système selon la revendication 1, dans lequel au moins une unité de gestion d'identifiants (120, 121, 122) est par ailleurs configurée pour rejeter ladite première page d'identifiant chargée, après un délai écoulé ne dépassant pas une durée de vie maximale de page. 3. Un système selon la revendication 2, dans lequel ladite au moins une unité d'actualisation (140), est par ailleurs configurée pour laisser écouler (704) ladite durée de vie maximale de page avant de déterminer un identifiant correspondant à ladite deuxième page d'identifiants. 4. Un système selon l'une quelconque des revendications précédentes, dans lequel au moins une unité d'une unité de gestion d'identifiants et d'une unité 3065093 28 d'actualisation est par ailleurs configurée pour vérifier si ledit premier pointeur et ledit deuxième pointeur pointent simultanément vers une même page d'identifiants. 5. Un système selon l'une quelconque des revendications précédentes, dans 5 lequel lesdites pages d'identifiant sont commandées de façon cyclique. 6. Un système selon la revendication 5, dans lequel, avant d'attribuer un identifiant à un objet devant être stocké dans la base de données, les pointeurs sont contrôlés pour vérifier que le deuxième pointeur ne pointe pas vers la page 10 d'identifiants voisine de la page vers laquelle pointe le premier pointeur. 7. Un système selon la revendication 5 ou 6, dans lequel avant d'actualiser un bitmap d'une page d'identifiants, les pointeurs sont contrôlés pour vérifier que le premier pointeur ne pointe pas vers la page d'identifiants voisine de la page vers 15 laquelle pointe le deuxième pointeur. 8. Un procédé pour associer des identifiants à des objets représentés dans un système, dans lequel à un moment donné, un objet donné représenté dans une base 20 de données du système est associé à un identifiant unique, le système comprenant : une base de données (100), ladite base de données comprenant : o une unité de mémoire (101) configurée pour stocker lesdits objets et leurs associations respectives avec lesdits identifiants, 25 o une unité d'indexation (102) configurée pour stocker un état de disponibilité des identifiants du système, et o une unité de pointeurs de contrôle (103) configurée pour stocker des pointeurs (503, 504, 505, 506) vers des données dans l'unité d'indexation 30 au moins une unité de gestion d'identifiants (120, 121, 122) configurée pour accéder à ladite base de données (100), et au moins une unité d'actualisation (140) configurée pour mettre à jour l'état de disponibilité des identifiants dans le système, dans lequel, 3065093 29 - lesdits identifiants appartiennent à un ensemble fini d'identifiants organisés, à l'intérieur de ladite unité d'indexation (102), selon des pages d'identifiants (P1, P2, P3, P4, P5), o chaque page étant représentée par un bitmap 5 o dans lequel chaque bit du bitmap correspond à une valeur respective d'identifiant, et o chaque valeur de bit correspond à la disponibilité de l'identifiant correspondant, et - lesdits pointeurs de données dans l'index comprennent au moins 10 o un premier pointeur (505) vers une dernière page chargée par une unité de gestion d'identifiants (120, 121, 122) du système, et o un deuxième pointeur (506) vers une dernière page actualisée par une unité d'actualisation (140) du système ; 15 le procédé comprenant les étapes suivantes, mises en oeuvre par ladite au moins une unité de gestion d'identifiants (120, 121, 122) : - le chargement (604), par ladite au moins une unité de gestion d' identifiants (120, 121, 122), d'une première page d'identifiants, sur la base dudit premier pointeur (505), 20 - l'attribution (607) d'un identifiant de ladite page d'identifiants à un objet devant être stocké (610) dans la base de données, sur la base d'un bitmap correspondant à ladite première page chargée, le procédé comprenant les étapes suivantes, mise en oeuvre par ladite au moins une unité d'actualisation (140) : 25 la détermination (706) des identifiants correspondants à une deuxième page d'identifiants sur la base dudit deuxième pointeur (506), l'accès (707) à ladite unité de mémoire pour vérifier la disponibilité des identifiants déterminés, et - l'actualisation (708) d'un bitmap représentant ladite deuxième page 30 chargée sur la base de la disponibilité desdits identifiants déterminés, et le procédé comprenant les étapes suivantes, mises en oeuvre par ladite base de données : o le stockage (610), dans ladite unité de mémoire (101), d'un objet et de l'identifiant qui lui a été attribué lors de son activation dans le système, et 3065093 30 o la suppression, de ladite unité de mémoire (101), d'un objet et de l'identifiant qui lui a été attribué lors de sa désactivation dans le système. 5 9. Un procédé selon la revendication 8, dans lequel au moins une unité de gestion d'identifiants (120, 121, 122) rejette par ailleurs ladite première page d'identifiants chargée, après une durée écoulée ne dépassant pas une durée de vie maximale de page. 10 10. Un procédé selon la revendication 9, dans lequel ladite au moins une unité d'actualisation (140) attend par ailleurs (704) que le temps de ladite durée de vie maximale de page soit écoulé avant de déterminer un identifiant correspondant à ladite deuxième page d'identifiants. 15 11. Un procédé selon l'une quelconque des revendications 8 à 10, dans lequel au moins une unité d'une unité de gestion d'identifiants et d'une unité d'actualisation vérifie par ailleurs que ledit premier pointeur et ledit deuxième pointeur pointent simultanément vers une même page d'identifiants. 20 12. Un procédé selon l'une quelconque des revendications 8 à 11, dans lequel lesdites pages d'identifiants sont commandées de façon cyclique. 13. Un procédé selon la revendication 12, dans lequel avant d'attribuer un identifiant à un objet devant être stocké dans la base de données, les pointeurs sont 25 contrôlés pour vérifier que le deuxième pointeur ne pointe pas vers la page d'identifiants voisine de la page vers laquelle pointe le premier pointeur. 14. Un procédé selon la revendication 12 ou 13, dans lequel avant d'actualiser un bitmap de page d'identifiants, les pointeurs sont contrôlés pour vérifier que le 30 premier pointeur ne pointe pas vers la page d'identifiants voisine de la page vers laquelle pointe le deuxième pointeur. 15. Un produit-programme d'ordinateur cemprenant des instructions pour mettre en oeuvre un procédé selon l'une quelconque des revendications 8 à 14 lorsque 35 le programme est chargé et exécuté par un appareil programmable.