Brevet FR2876817A1 — publié le 20060421

La présente invention concerne un dispostif de base de données objet distribuée à résolution de conflit d'accès par multicast. Elle concerne également un procédé mis en oeuvre par ledit dispositif. De manière générale, pour des raisons de performance et afin de permettre une plus grande flexibilité des développements applicatifs, le modèle de données objet est utilisé car il permet une représentation abstraite des structures de données les plus complexes. Dans ce cas, une base de données objet se présente comme un ensemble d'enregistrements d'objets, d'où le nom du modèle, ces enregistrements étant stockés dans un répertoire persistant commun appelé serveur de base de données objet. A un serveur de base de données objet est associé par un dispositif client un ou plusieurs serveurs applicatifs susceptibles d'effectuer des accès concurrents aux objets enregistrés dans ladite base de données objet. Lorsque des accès concurrents procèdent simultanément à la lecture et à la modification d'un même objet, il est nécessaire de pouvoir garantir l'intégrité des objets par un mécanisme dit de résolution de conflits d'accès. Plusieurs solutions ont été proposées dont les deux suivantes. La première solution consiste à définir un mécanisme de transaction explicite géré par le serveur de base de données objet. Avant tout accès, le serveur d'application requiert du serveur de base de données l'ouverture d'une transaction puis effectue des accès et requiert enfin du serveur de base de donnée la fermeture de ladite transaction. Tout au long de ladite transaction, le serveur de base de données maintient une liste des accès effectués par la transaction. Lors de la fermeture de ladite transaction, si les accès effectués par la transaction sont: incompatibles avec ceux effectués par une autre transaction, ladite transaction est annulée. Cette solution permet de garantir l'intégrité des objets en offrant de bonnes performances sur des systèmes distribués de serveurs d'application effectuant principalement des accès en écriture. La deuxième solution consiste à définir mécanisme de transaction implicite géré par le serveur de base de données objet. Lors du premier accès, le serveur d'application obtient automatiquement du serveur de base de données objet l'ouverture d'une transaction puis effectue des accès et valide enfin auprès du serveur de base de donnée la fermeture de la transaction. Tout au long de ladite transaction, le serveur de base de données objet maintient une liste des accès effectués par la transaction. Si au cours de la transaction, cette liste d'accès comporte des objets ayant fait l'objet d'un enregistrement ultérieur à la date d'ouverture de ladite transaction, ladite transaction est réinitialisée. Cette solution permet de garantir l'intégrité des objets en offrant de bonnes performances sur des systèmes distribués de serveurs d'application effectuant principalement des accès en lecture. Ces deux solutions présentent cependant l'inconvénient de nécessiter de mettre à jour en un système central une liste des accès effectués à la base de données objet par l'ensemble des serveurs d'applications. Ces deux solutions ne sont donc pas adaptées pour garantir une haute disponibilité de la base de données objet et un service ininterrompu par aggrégation de serveurs de base de données objet redondants. Ces deux solutions ne sont pas non plus adaptées pour augmenter les temps de réponse du serveur de base de données objet par distribution des objets sur plusieurs serveurs. La présente invention a pour but de remédier aux divers inconvénients présentés par les solutions connues et propose une base de données objet distribuée à résolution de conflit par multicast. Pour cela, la base de données objet distribuée mentionnée dans le préambule est remarquable en ce que chaque serveur d'application est associé à un dispostif client local capable d'ouvrir ou de fermer un transaction sans avoir à communiquer avec le serveur de base de données objet. En outre, la base de données objet selon l'invention est remarquable en ce que chaque dispostif client local maintient une liste des accès concurrents au serveur de base de données objet par un procédé de communication multicast avec lesdits dispostifs clients associés aux autres serveurs d'application susceptibles d'accéder au serveur de base de données objet. Enfin, la base de données objet selon l'invention est remarquable en ce qu'elle permet d'obtenir des hautes performances et une haute disponibilité par aggrégation de plusieurs serveurs de base de données objet. L'invention sera mieux comprise à l'aide de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant au dessin annexé. Une base de données objet selon l'invention comporte un serveur d'application (la, lb ou 1c), un dispositif client (2a, 2b ou 2c), un réseau d'interconnexion à technologie multicast (3), un serveur de base de données objet (4a et 4b) et un réseau (5) permettant la connexion dudit dispositif client au serveur de base de données objet. Plusieurs serveurs d'applications (la, lb et 1c) peuvent accéder à un même serveur de base de données objet (4a ou 4b) à travers lesdits dispositifs clients (2a, 2b et 2c) associés à chaque serveur d'application (la, lb et lc) . Chacun desdits dispositifs client peut accéder à plusieurs serveurs de base de données objet (4a et 4b). Le fonctionnement de ladite base de données objet, dont la structure a été décrite précédemment, comporte une étape d'initialisation. Au cours de cette étape, chaque dispositif client (2a, 213 ou 2c) émet un message de bienvenue sur le réseau d'interconnexion à technologie multicast (3) pour signaler sa présence aux autres dispositifs clients (2a, 2b et 2c). Le fonctionnement de ladite base de données objet, comporte ensuite une étape d'accès en lecture aux objets. Au cours de cette étape, un dispositif client (2a, 2b ou 2c) ouvre sur requête du serveur d'application associé une transaction sur les serveurs de base de données objet (4a et 4b) puis effectue un accès en lecture sur les serveurs de base de données objet (4a et 4b) selon un procédé de correction d'erreurs et d'accès parallèle de type RAID (Redundant Array of Inexpensive Database). Au cours de cette étape, l'objet accédé en lecture depuis les serveurs de base de données objet (4a et 4b) est enregistré localement dans une mémoire. Une fois la transaction fermée, l'objet accédé en lecture depuis les serveurs de base de données objet (4a et 4b) est supprimé de la mémoire. Le fonctionnement de ladite base de données objet, comporte ensuite une étape d'accès en écriture aux objets. Au cours ce cette étape, un dispostif client ouvre sur requête du serveur d'application associé une transaction sur les serveurs de base de données objet (4a et 4b) puis effectue un accès en écriture sur les serveurs de base de données objet (4a et 4b) selon un procédé de correction d'erreurs et d'accès parallèle de type RAID (Redundant Array of Inexpensive Database). Avant la fermeture de ladite transaction, ledit dispositif client émet sur le réseau multicast (3) un message de mise à jour comportant la liste des objets accédés en écriture depuis l'ouverture de la transaction puis attend la réception d'un message de confirmation de chaque autre dispostif client. Une fois reçu le message de confirmation de chaque autre dispositif client, ledit dispositif client ferme la transaction avec les serveurs de base de données objet (4a et 4b). Le fonctionnement de ladite base de données objet, comporte enfui une étape de réinitialisation de transaction. Au cours de cette étape, un dispostif client reçoit par le réseau multicast un message de mise à jour émis par un autre disposifitif client à la troisième étape. Dans le cas où ce message de mise à jour comporte un objet faisant partie de la liste des objets accédés en lecture par ledit dispositif client et enrégistrés en mémoire, la transaction associée audit objet et initialialisée à la deuxième étape est annulée. Il apparaît clairement qu'un disposistif de base de données objet selon l'invention remédie aux inconvénients des dispositif base de données objet classiques. En effet, le disposistif de base de données objet ne comporte aucun système central de d'enregistrement d'objets. L'accès parallèle de type RAID (Redundant Array of Inexpensive Database) permet de distribuer les objets sur plusieurs serveurs d'objets. En outre, chaque disposifitif client maintient en mémoire une liste partielle des objets accédés en lecture. Un autre avantage de ce disposistif de base de données objet est d'autoriser un fonctionnement en haute disponibilité. En effet, L'accès parallèle de type RAID (Redundant Array of Inexpesive Database) permet de garantir une redondance des enregistrements d'objets sur plusieurs serveurs d'objets. REVENDICATIONS 1. Dispositif de base de données objet caractérisé en ce qu'il comporte une pluralité de dispostifs clients interconnectés mutuellement par un réseau multicast et connectés individuellement par un réseau à un ou plusieurs serveurs de base d'objets. 2. Procédé de résolution de conflits d'accès mis en oeuvre par le dispositif de base de données objet selon la revendication 1, caractérisé en ce qu'il permet de maintenir une liste partielle des objets accédés sur chaque dispostif client sans pour autant maintenir de liste globale des objets accédés sur un système central de stockage. 3. Procédé de résolution de conflits d'accès selon la revendication 2 caractérisé en ce qu'il permet, en passant par une étape d'initialisation, une étape d'accès en lecture aux objets, une étape d'accès en écriture aux objets et une étape de réinitialisation de transaction, de maintenir une liste des objets accédés en écriture par lesdits dispositifs clients par envoi de message audit réseau multicast lors de tout accès en écriture effectué aux dits serveurs de base d'objets par l'un desdits dispostifs clients. 4. Procédé de résolution de conflits d'accès selon la revendication 2 ou 3 caractérisé en ce qu'il permet de fournir un service de haute disponibilité et de haute performance par aggrégation de serveurs de base de données objet rendondants.