Brevet FR2896602A1 — publié le 20070727

Arrière-plan de l'invention L'invention concerne un procédé de gestion de documents électroniques et un serveur apte à mettre en oeuvre ce procédé. Dans ce document, on appellera "document" tout ensemble d'informations représentant une unité que l'on peut considérer comme indivisible et complète. A titre d'exemple non limitatif, un livre, un mémoire, un rapport, une note, un film et un album de musique sont des documents au sens de cette demande de brevet. Un document peut par exemple être multimédia, c'est le cas d'un film. On appellera "document électronique" la représentation d'un document sous forme d'une structure de données informatiques pouvant être mémorisées dans la mémoire d'un ordinateur et transmissibles d'un ordinateur à un autre via un réseau de télécommunication. Un document électronique peut ou non correspondre à un document existant sur un support traditionnel. L'invention vise plus particulièrement un procédé sécurisé de gestion de documents électroniques permettant d'autoriser ou de restreindre l'accès aux utilisateurs à des parties de ces documents. Dans ce document, toute partie identifiable d'un document électronique est appelée "champ". Les champs d'un document électronique sont définis par un administrateur, une personne en charge de la gestion des documents électroniques, ou par tout utilisateur désireux de fournir un document électronique devant être géré par le procédé et le serveur selon l'invention. Par exemple, un utilisateur peut décider de définir des champs "Titre", "En-tête", "Chapitre" pour un document électronique obtenu par numérisation d'un livre traditionnel. De même, dans un album de musique, on peut définir des champs pour chacun des morceaux de musique de cet album. Dans l'état actuel de la technique, on ne connaît pas de procédé de gestion de documents électroniques adapté à gérer des droits d'accès aux parties, c'est-à-dire aux champs, de documents électroniques. En effet, les seuls systèmes de gestion de droits d'accès connus à ce jour définissent des droits applicables à des catégories de document ou aux documents électroniques dans leur intégralité. Objet et résumé de l'invention La présente invention a pour but principal de pallier cet inconvénient. Plus précisément, elle concerne un procédé de gestion de documents électroniques susceptible d'être mis en oeuvre par un serveur dans un réseau de télécommunications. Ce procédé comportant : -une étape de réception d'une requête en provenance d'un dispositif client, cette requête comportant au moins un identifiant d'utilisateur et le nom d'un document électronique ; -une étape d'obtention, à partir du nom de document, d'un identifiant 20 secret d'au moins un champ du document ; -une étape de contrôle au cours de laquelle on vérifie, à partir de l'identifiant d'utilisateur, et de l'identifiant secret de champ, si un contenu associé au champ peut être envoyé au dispositif client en réponse à la requête ; et le cas échéant 25 - une étape d'envoi du contenu au dispositif client. Corrélativement, l'invention concerne un serveur de documents comportant : -des moyens de réception d'une requête en provenance d'un dispositif client, cette requête comportant au moins un identifiant d'utilisateur et le 30 nom d'un document électronique -des moyens d'obtention, à partir du nom de document, d'un identifiant secret d'au moins un champ du document -des moyens de contrôle adaptés à vérifier, à partir dudit identifiant d'utilisateur, et de l'identifiant secret de champ, si un contenu associé au 35 champ peut être envoyé au dispositif client en réponse à la requête et - des moyens d'envoi de ce contenu au dispositif client. Ainsi, conformément à l'invention, chaque champ du document peut être accédé indépendamment des autres, à partir d'un identifiant secret inconnu de l'utilisateur. Conformément à l'invention, les dispositifs clients ne peuvent pas accéder directement aux documents électroniques, mais doivent interroger le serveur selon l'invention par l'envoi d'une requête du type de celle précitée. Les utilisateurs peuvent obtenir les documents dans leur intégralité ou seulement des champs de documents, mais dans tous les cas le procédé et le serveur selon l'invention vérifient pour chaque champ du document, si le contenu associé à ce champ (texte, image, son, vidéo, données quelconques dont le type est précise) peut être envoyé à l'utilisateur identifié dans la requête, en fonction de ses droits d'accès propres. Dans un mode particulier de réalisation, la requête comporte au moins un identifiant public d'un champ du document, et au cours de l'étape d'obtention, l'identifiant secret précité est obtenu à partir de cet identifiant public. Dans l'exemple mentionné précédemment, l'identifiant public 20 d'un champ peut être l'identifiant "titre" ou "en-tête". Une telle requête sera émise par le dispositif client lorsque l'utilisateur de ce dispositif souhaite obtenir un ou plusieurs champs du document et non pas le document dans son intégralité. Dans un mode particulier de réalisation de l'invention, un champ 25 du document comporte au moins un sous-champ et le procédé de gestion selon l'invention comporte une étape de contrôle au cours de laquelle on vérifie, à partir de l'identifiant d'utilisateur et de l'identifiant secret du champ, si le sous-champ doit être traité par le procédé de façon similaire au champ. 30 Cette caractéristique permet un traitement récursif des documents Ici sqi le des parties de document contiennent des sous-parties. Conformément à l'invention, des droits d'accès peuvent être définis de sorte que le contenu d'un champ est non accessible à un utilisateur, les contenus des sous-champs de ce champ étant quant à eux 35 accessibles. On dira dans ce cas que le champ est "traversable" mais "non autorisé". Ainsi, les droits d'accès peuvent être divisés en deux types : - le droit de traverser un champ donné, c'est-à-dire obtenir la liste des sous-champs inclus dans ce champ sans pour autant fournir le contenu du champ lui-même, les sous-champs pouvant ou non être d'accès autorisé à un utilisateur donné et - le droit d'accéder au contenu d'un champ. Dans un mode particulier de réalisation, l'étape d'obtention comporte une étape de parcours d'un arbre dont chaque feuille représente un champ du document et comporte une liste des sous-champs compris 10 dans ce champ. Dans un mode particulier de réalisation, les différentes étapes du procédé de gestion de documents sont déterminées par des instructions de programmes d'ordinateurs. En conséquence, l'invention vise aussi un programme 15 d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en oeuvre dans un serveur ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes d'un procédé de gestion de documents tel que décrit ci-dessus. 20 Ce programme 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. 25 L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut 30 comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (tloppy disc) ou un disque dur. D'autre part, le support d'informations peut être un support 35 transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Brève description des dessins D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures : - la figure 1 représente, dans son environnement, un serveur conforme à l'invention dans un mode particulier de réalisation ; - les figures 2A et 2B représentent des structures de données utilisées dans un mode particulier de réalisation de l'invention ; - la figure 3 représente une requête utilisée dans un mode particulier de réalisation de l'invention ; et - la figure 4 représente, sous forme d'organigramme, les 20 principales étapes du procédé de gestion de documents électroniques selon l'invention. Description détaillée d'un mode de réalisation La figure 1 représente de façon schématique un serveur 30 25 conforme à l'invention. Ce serveur 30 a l'architecture matérielle d'un ordinateur classique. Il comporte un processeur 301, une mémoire morte 303 adaptée à contenir des programmes d'ordinateur, une mémoire vive 304 nécessaire à l'exécution de ces programmes d'ordinateur par le processeur 30 301 et des moyens de communication 302 constitués par une carte réseau et des pilotes logiciels. La mémoire morte 303 comporte un programme d'ordinateur conforme à l'invention dont les instructions permettent l'exécution des étapes du procédé de gestion dont l'organigramme est donné à la figure 35 4. Dans l'exemple décrit ici, le serveur 30 est relié par un réseau de télécommunication non référencé à une pluralité de dispositifs clients 50. Le réseau de télécommunication reliant le serveur 30 au dispositif client 50 peut être de n'importe quel type et notamment un réseau local de type Ethernet ou un réseau public de type Internet. Dans l'exemple décrit ici, le serveur 30 accède à une base documentaire 40 comportant un ensemble de documents électroniques. Nous considérerons dans la suite de la description que cette base documentaire 40 mémorise un document textuel et un document multimédia dont les noms connus des utilisateurs des clients 50 sont respectivement "Document numéro 1000" et "La Traviata". A la figure 2A, on a représenté une première structure de données 10 comportant une colonne 101 dans laquelle sont mémorisés tous les noms des documents électroniques de la base documentaire 40. Cette première structure de données 10 comporte une deuxième colonne 102 permettant d'associer à chacun des noms de documents, un identifiant interne unique de ce document, cet identifiant interne étant secret et inconnu des utilisateurs des dispositifs clients 50. Ainsi, dans l'exemple décrit ici, l'identifiant interne "champ_1" est associé au document de nom "Document numéro 1000" et l'identifiant interne "champ_2" est associé au document de nom "La Traviata". A l'annexe 1, on a donné le contenu du document électronique de nom "Document numéro 1000". Nous supposerons dans l'exemple décrit ici que plusieurs champs ont été définis pour ce document électronique. Les identifiants publics de ces champs sont "Titre", "En-tête", "Auteur", "Corps du document", "Chapitre", "Titre du chapitre" et "Paragraphe". A la figure 2B, on a représenté une deuxième structure de données 20 comportant dans une colonne 202 chacun des identifiants publics des champs du document de nom "Document numéro 1000". Une colonne 201 de cette deuxième structure de données 20 associe, à chacun de ces identifiants publics de champ, un identifiant secret inconnu des utilisateurs des dispositifs clients 50. A titre d'exemple, le champ d'identifiant public "Titre" est 35 associé à l'identifiant secret "champ_12325". La deuxième structure de données 20 comporte une troisième colonne 203 dans laquelle on trouve, associé à chacun des champs précités, le contenu de ce champ. Ce contenu est, dans l'exemple décrit ici, soit du texte, soit une 5 liste de sous-champs. Par exemple, le contenu du champ d'identifiant public "Titre du chapitre" est le texte "Import des documents". De même, le contenu du champ d'identifiant public "En-tête" comporte d'une part le texte Document du 1/1/06 et d'autre part la 10 liste des sous-champs d'identifiants secrets "champ_12325" et "champ_12326". En se reportant aux deuxième et quatrième lignes de la deuxième structure de données 20, on comprend aisément que le champ "En-tête" regroupe en fait le contenu textuel précité et les champs "Titre" et "Auteur" de contenus respectifs "Documentation X" et "Pierre 15 Brocha rd". La quatrième colonne 204 de la deuxième structure de données 10 comporte, pour chacun des champs, une valeur représentative du niveau d'accès de ce champ donné à l'utilisateur de nom "Dupond". Dans cet exemple, ces valeurs peuvent être : 20 - 0 : champ non autorisé et non traversable - 1 : champ non autorisé et traversable - 2 : champ autorisé et non traversable et - 3 : champ autorisé et traversable. La figure 3 représente une requête 70 pouvant être envoyée 25 par un utilisateur du dispositif client 50 au serveur 30 selon l'invention. Cette requête comprend trois champs : - le champ USR_NAME qui comporte le nom d'un utilisateur - le champ DOC_NAME qui comporte le nom d'un document électronique et 30 le champ optionnel FIELD_NAME qui comporte l'identifiant public d'un champ de document. Dans l'exemple de la figure 3, ces champs comprennent les valeurs respectives "Dupond", "Document numéro 1000", et "Titre". Lorsque le serveur 30 selon l'invention reçoit cette requête 70, il 35 l'interprète comme une requête émise par un utilisateur du nom de Dupond qui souhaite obtenir uniquement le champ d'identifiant public "Titre" du document de nom "Document numéro 1000". Le serveur 30 selon l'invention traite cette requête 70 conformément aux étapes du procédé de gestion de documents électroniques conforme à l'invention qui va maintenant être décrit en référence à la figure 4. Au cours d'une première étape E10, le serveur 30 selon l'invention reçoit cette requête, par les moyens de communication 302. Cette étape E10 de réception d'une requête est suivie par une étape E20 au cours de laquelle le serveur 30 obtient, à partir de la première structure de données 10, l'identifiant interne associé au nom de document "Document numéro 1000" présent dans le champ DOC_NAME de la requête 70. Dans l'exemple décrit ici, cet identifiant interne est "champ_1". Cette étape E20 d'obtention d'un identifiant interne de document est suivie par une étape E30 au cours de laquelle le serveur 30 obtient, en utilisant la deuxième structure de données 20, la liste des identifiants secrets de tous les champs de ce document, Cette étape, qui se déroule récursivement, revient à parcourir un arbre dont les feuilles sont constituées par les champs de ce document, la racine de cet arbre étant le champ "champ_1" obtenu à l'étape précédente. Ainsi, à partir de la première ligne de la deuxième structure de données 10, on obtient les champs "champ_3225" et "champ_3226" 25 constituant un premier niveau de cet arbre. Puis, à partir de la feuille "champ_3225", on obtient, à partir de la troisième ligne de la deuxième structure de données 10, les champs "champ_12325" et "champ_12326" constituant un autre niveau de cet arbre. 30 En parcourant ainsi toute la deuxième structure de données 20, tous les identifiants secrets des champs sont obtenus. Cette étape E30 d'obtention est suivie par une boucle de traitement de ces différents champs constituée par les étapes E40 à E95. Au cours d'une étape E40, on associe à une variable 35 "champ_courant" mémorisée dans la mémoire vive 304, l'identifiant secret du premier champ obtenu à l'étape précédente. Cette étape E40 est suivie par une étape E50 au cours de laquelle on obtient l'identifiant public associé au champ_courant. Dans l'exemple décrit ici, le premier identifiant secret de champ est "champ_3225" et l'identifiant public de champ associé est "En-tête", obtenu à partir de la troisième ligne de la deuxième structure de données 20. Cette étape E50 d'obtention de l'identifiant public est suivie par une étape E60 au cours de laquelle on vérifie les droits de l'utilisateur dont le nom est obtenu dans le champ USR_NAME de la requête 70 reçu au 10 cours de la première étape E10 pour ce champ. En l'espèce, ce champ "En-tête" peut être traversé, mais l'envoi de son contenu n'est pas autorisé, du fait que la colonne 204 de la deuxième structure de données 20 associée au champ "En-tête" contient la valeur 1. 15 Etant donné que le contenu de ce champ ne peut être envoyé en réponse à la requête 70, le résultat de ce test E60 est négatif. Le contenu textuel Document du 1/1/06 n'est donc pas envoyé à l'utilisateur de nom Dupond . Ce test est alors suivi par une étape E80 au cours de laquelle on 20 vérifie si le champ courant comporte des sous-champs. En l'occurrence c'est le cas et le test E80 est suivi par un test E95 au cours duquel on vérifie si le champ courant est traversable. En l'occurrence c'est le cas et le procédé selon l'invention retourne à l'étape E50 pour le traitement des sous-champs 25 "champ_12325" et "champ_12326" du champ courant "champ_3225". Pour chacun de ces sous-champs, on obtient, au cours de cette étape E50, les identifiants publics "Titre" et "Auteur". Au cours du test E60, déjà décrit, on détermine, par la lecture de la quatrième colonne de la deuxième structure de données 20, que seul 30 le champ "Auteur" est un champ autorisé. En conséquence, le test E60 est suivi par une étape E70 au cours de laquelle le dispositif client 30 renvoie, en réponse à la requête 70, le contenu du champ "Auteur", à savoir le texte "Pierre Brochard". L'étape E60 de contrôle pour le sous-champ "Titre" et l'étape 35 E70 de contrôle pour le sous-champ "Auteur" sont suivies par le test E80 au cours duquel on détermine si ces sous-champs contiennent eux-mêmes au moins un sous-champ. Comme ce n'est pas le cas, pour chacune de ces étapes, le résultat du test E80 est négatif. Ce test est suivi par une étape E85 au cours de laquelle il est déterminé si tous les sous-champs du champ "champ_3225" ont été traités. Comme c'est le cas, le procédé de traitement du champ "champ_3225" se termine. De façon récursive, le procédé traite ensuite le champ "champ_3226" et obtient, au cours de l'étape E50 déjà décrite, l'identifiant public de ce champ, à savoir "Corps du document". Au cours de l'étape de contrôle E60, il est déterminé que ce champ n'est pas un champ autorisé, la quatrième colonne de la deuxième 15 structure de données 20 comportant la valeur O. Ainsi, cette étape E60 de contrôle est suivie par un test E80 au cours duquel on détermine si le champ "Corps du document" comporte des sous-champs. En l'occurrence c'est le cas puisque le contenu du champ "Corps 20 du document" comporte le sous-champ "champ_13100". Ce test E80 est alors suivi par le test E95 déjà décrit au cours duquel on détermine si le champ "champ_3226" est traversable. En l'occurrence ce n'est pas le cas et ce test est suivi par l'étape E85 déjà décrite au cours de laquelle on détermine si tous les champs 25 "champ_3225" et "champ_3226" ont été traités. Puisque c'est le cas, le procédé de gestion de documents électroniques selon l'invention se termine, dans ce mode particulier de réalisation. ANNEXE 1 Document numéro 1000 En-tête : Document du 1/1/06 Titre : Documentation X Auteur : Pierre Brochard Corps du document : Chapitre : Titre du chapitre : Import des documents Paragraphe : Ce chapitre décrit l'import de documents dans la base. REVENDICATIONS 1. Procédé de gestion de documents électroniques susceptible d'être mis en oeuvre par un serveur (30) dans un réseau de 5 télécommunications, ce procédé comportant : -une étape (ElO) de réception d'une requête (70) en provenance d'un dispositif client (50), ladite requête (70) comportant au moins un identifiant d'utilisateur (USR_NAME) et un nom d'un document électronique (DOC_NAME) ; 10 -une étape (E50) d'obtention, à partir dudit nom de document (DOC_NAME), d'un identifiant secret (FIELD_ID) d'au moins un champ dudit document -une étape (E60) de contrôle au cours de laquelle on vérifie, à partir dudit identifiant d'utilisateur (USR_NAME), et dudit identifiant secret (FIELD_ID) 15 de champ, si un contenu associé audit champ peut être envoyé audit dispositif client (50) en réponse à ladite requête (70) ; et le cas échéant - une étape (E70) d'envoi dudit contenu audit dispositif client (50). 2. Procédé de gestion de documents électroniques selon la 20 revendication 1, dans lequel ladite requête (70) comporte au moins un identifiant public (FIELD_NAME) d'un champ dudit document, caractérisé en ce que au cours de ladite étape (E50) d'obtention, ledit identifiant secret (FIELD_ID) est obtenu à partir identifiant public (FIELD_NAME). 25 3. Procédé de gestion de documents selon la revendication 1 ou 2 dans lequel ledit champ comporte au moins un sous champ, caractérisé en ce qu'il comporte en outre une étape (E95) de contrôle au cours de laquelle on vérifie, à partir dudit identifiant d'utilisateur (USR_NAME), et de l'identifiant secret (FIELDID) dudit champ, si ledit sous-champ doit 30 être traité par ledit procédé de façon similaire audit champ. 4. Procédé de gestion de documents selon la revendication 3, caractérisé en ce que ladite étape (E50) d'obtention comporte une étape de parcours d'un arbre dont chaque feuille représente un champ dudit 35 document et comporte une liste des sous-champs compris dans ce champ. 5. Serveur de documents comportant : -des moyens (302) de réception d'une requête (70) en provenance d'un dispositif client (50), ladite requête (70) comportant au moins un identifiant d'utilisateur (USR_NAME) et un nom d'un document électronique (DOC_NAIvIE) ; -des moyens (301) d'obtention, à partir dudit nom de document (DOC_NAME), d'un identifiant secret d'au moins un champ dudit document -des moyens (301) de contrôle adaptés à vérifier, à partir dudit identifiant d'utilisateur (USR_NAME), et dudit identifiant secret (FIELD_ID) de champ, si un contenu associé audit champ peut être envoyé audit dispositif client (50) en réponse à ladite requête (70) ; et - des moyens (302) d'envoi dudit contenu audit dispositif client (50). 6. Programme d'ordinateur comportant des instructions pour l'exécution des étapes du procédé de gestion de documents selon l'une quelconque des revendications 1 à 4 lorsque ledit programme est exécuté par un ordinateur. 7. Support d'enregistrement (303) lisible par un ordinateur (30) sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé de gestion de documents selon l'une quelconque des revendications 1 à 4.