Dispositif informatique de gestion de documents en mode multi-utilisateurs.
La présente invention se rapporte au domaine de la gestion de documents entre différents utilisateurs de stations connectées entre elles par un réseau étendu, par exemple le réseau internet.
Le besoin se fait sentir d'un outil performant pour gérer des documents composites entre différents utilisateurs. En effet, les composants techniques des outils actuels ne permettent pas d'une manière simple de gérer avec le degré de sécurité voulu des documents composites d'une manière partagée.
La présente invention vient proposer une avancée dans ce domaine.
L'invention concerne un système informatique de gestion de documents composites en mode multi-utilisateurs, comprenant:
- un outil de traitement de données de document,
- un gestionnaire d'affichage des données de document, - un gestionnaire de droits d'utilisateurs sur un document.
Selon une caractéristique de l'invention, l'outil de traitement comprend :
* un modèle objet, comportant une pluralité de classes, dont la structure comprend un pointeur de contenu, une indication de niveau, une méthode d'accès, une méthode de validation, ainsi qu'une indication de validation,
* un opérateur de document, capable de créer et maintenir un document sous la forme d'un jeu d'instances des classes du modèle objet,
- le gestionnaire d'affichage étant agencé pour permettre un affichage conjoint d'une arborescence, définie d'après les indications de niveau, et de zones d'affichage/saisie à onglets, correspondant aux contenus des instances de classes existant dans une partie au moins de l'arborescence,
- l'outil de traitement n'autorisant l'accès à une zone qu'en fonction des droit d'accès de l'utilisateur concerné, tels que déterminés par le gestionnaire de droits d'utilisateurs sur un document, - en cas d'accès, l'outil de traitement n'autorisant la validation d'une zone qu'en fonction des droits de validation de l'utilisateur concerné, tels que déterminés par le gestionnaire de droits d'utilisateurs sur un document,
- le gestionnaire d' affichage comprenant en outre un premier mécanisme capable de modifier conjointement l'affichage d'une zone et du noeud correspondant dans l'arborescence en fonction de l'état de validation de la zone, et un second mécanisme capable, au vu des
indications de niveau, de faire remonter un état validé au noeud de niveau supérieur lorsque tous les noeuds d'un niveau sont validés,
- tandis que, lorsque la tête d'arborescence est validée, l'outil de traitement autorise la signature du document complet par un utilisateur ayant les droits de signature correspon- dants.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, ainsi que des dessins annexés sur lesquels :
- la figure 1 illustre un ensemble de stations d'utilisateurs connectées entre elles par un réseau étendu,
- la figure 2 représente un schéma fonctionnel des éléments de l'invention,
- la figure 3 représente les classes et instances correspondantes définissant un document dans la réalisation de l'invention,
- la figure 4 est un tableau récapitulatif des rôles et droits d'un utilisateur du système de l'invention,
- la figure 5 est une vue de l'interface graphique proposée à l'utilisateur lors de l'utilisation du système selon l'invention.
Les dessins contiennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la description mais également contribuer à la définition de l'invention, le cas échéant.
La figure 1 représente trois stations d'utilisateur 1, 2, 3 reliées entre elles par un réseau 6 pouvant être un réseau local, par exemple un réseau Ethernet, ou un réseau étendu, par exemple l'Internet. La station 1, respectivement la station 2 est équipée d'un moniteur 12, respectivement d'un moniteur 22, d'une unité centrale 13, respectivement d'une unité centrale 23 reliée sur un port USB à un lecteur de carte à puce 11, respectivement un lecteur de carte à puce 21. Chaque station est plus particulièrement équipée d'un micro-processeur, d'une mémoire de travail (de type RAM ou toute autre technologie adaptée), une mémoire de programmation, une mémoire de masse (par exemple un disque dur), des éléments périphériques supplémentaires.
Selon l'invention, la station 1 est reliée à la station 2 par une plate-forme de serveurs sauvegardés et administrés depuis une station 3. Cette station 3 schématise un réseau
d'administrations et de sauvegarde de la plate-forme ainsi qu'un réseau d'administrations fonctionnelles de la plate-forme.
Cette plate-forme de serveurs 4 comprend un premier ensemble de serveurs hébergeant une application disponible sur le réseau 6 aux utilisateurs des stations 1 et 2 selon certaines conditions. Un utilisateur muni d'une carte à puce et d'un code secret délivré par un moyen sécurisé (PKI : infrastructure à clé publique) introduit une carte à puce dans le lecteur correspondant. L'utilisateur se fera délivrer par la plate-forme de serveur un certificat numérique sur sa carte à puce. Ainsi, un utilisateur s'authentifie auprès de la plate-forme de serveurs grâce à sa carte à puce. Ce système permet d'identifier de manière sécurisée un utilisateur sur la plate-forme de serveurs.
Cette plate-forme de serveurs permet à un utilisateur identifié travaillant sur la station 1 de traiter des données de documents enregistrés sur cette même plate-forme, par exemple dans une base de données sécurisée, et permet également à un deuxième utilisateur identifié et travaillant sur la station 2 d'avoir accès et de pouvoir traiter certaines de ces données de documents selon certaines conditions développées ci-après.
De manière générale, les stations 1, 2, 3 et la plate-forme de serveurs utiliseront un système d'exploitation approprié, par exemple le système d'exploitation Windows 2000® ou XP®.
La figure 2 représente les différentes unités fonctionnelles selon l'invention. Ces unités fonctionnelles sont hébergées dans des serveurs de la plate-forme de serveurs 4 de la figure 1.
Dans la suite de la description, un utilisateur pourra appartenir à des regroupement d'utilisateurs par exemple. Un rôle d'un utilisateur est un ensemble de droits définis pour cet utilisateur. Les notions suivantes sont utilisées :
- une communauté correspond à un ensemble d'administrateurs et d'utilisateurs appartenant par exemple à un même groupe commercial et ayant des droits (ou des rôles) communs comme le droit de visualiser les données de tous les adhérents de la communauté,
- un membre est un utilisateur pouvant appartenir à une ou plusieurs communautés et avoir des droits (rôles) spécifiques à un membre,
- un utilisateur peut travailler soit sur son espace de travail privé soit sur un espace de travail de collaboration, par exemple un membre peut travailler avec la communauté en passant de son espace de travail privé à un espace de travail de collaboration avec la communauté.
La plate-forme de serveurs comprend une zone de stockage 30 constituée notamment d'un annuaire LDAP 32 et au moins d'un serveur 36 de base de données. L'annuaire définit
l'ensemble des communautés. L'annuaire LDAP référence entre autres les comptes utilisateurs associés au certificat numérique. L'annuaire LDAP définit également pour un utilisateur des rôles différents, ainsi que les droits associés, selon les espaces de travail dans lesquels il peut travailler. Le serveur 36 de base de données de type de base de données relationnelle (par exemple SQL) comprend au moins trois bases de données : deux bases de données 34 pour les documents et une base de données 31 pour la gestion des droits sur les documents. La base de données 34 définit au moins un premier ensemble de table 33.
Un premier ensemble de tables en relation définit le ou les rôle(s) d'un utilisateur pour un document donné ainsi que les droits associés aux rôles. Ce premier ensemble de tables définit également les attributs d'un document pouvant comprendre le type de document, l'appartenance à un groupe de documents, le type d'espace de travail dans lequel un document est utilisé.
Pour un utilisateur, les rôles de l'annuaire LDAP s'ajoutent aux rôles définis dans la base de données 34 pour un document donné. Dans une autre réalisation, les rôles associés aux espaces de travail sont définis dans la base de données relationnelle.
La base de données 31 définit au moins un deuxième ensemble de tables. Ce deuxième ensemble de tables en relation 35 est défini autour d'une table répertoriant des documents désignés comme cahiers des charges. Cet ensemble de tables en relation permet de déterminer la composition d'un document. Ainsi, un cahier des charges comprendra, selon une hiérarchie descendante de niveaux, un ensemble de chapitres, chaque chapitre comprenant un ensemble de sections. A chaque niveau peut être associé un ensemble de zones d'affichage à onglet. Cet ensemble de tables comprend également des informations sur la validation d'une zone d' affichage à onglet en fonction d'un utilisateur donné, ainsi que sur la signature par un utilisateur donné d'un cahier des charges.
La base de données relationnelle 34 est reliée à une base de données 31 utilisée pour mémoriser les données relatives à des documents. Une interrogation de la base de données relationnelle 34 engendre la recherche des données correspondantes dans la base de données 31.
La plate-forme de serveur 4 comprend un gestionnaire de droits 70.Une classe de gestion des tables est utilisable par le gestionnaire de droits. Cette classe peut comprendre des méthodes destinées à créer, modifier, supprimer une nouvelle entrée Document dans le premier ensemble de tables sur requête d'un utilisateur autorisé et à lui faire correspondre les droits d'un espace de travail donné et d'un groupe de document par exemple. Il existe deux types de documents : statique et dynamique. Un groupe de documents statique définit un ensemble
de documents déjà existants. Un groupe de documents dynamique s'autoalimente en fonction de règles portant sur le contenu des documents. En d'autres termes, les documents compris dans un groupe de documents varient dynamiquement en fonction du contenu des documents. Le gestionnaire de droits 70 est destiné à gérer des droits d'utilisateurs définis sur un groupe de documents et /ou sur un ensemble d'utilisateurs. Le gestionnaire de droits est également apte à rechercher les droits d'un utilisateur donné sur un document dans la base de données relationnelle 34 et dans l'annuaire LDAP 32. Le gestionnaire de droits 70 instancie une méthode de lecture de la classe de gestion des tables du premier ensemble de tables, soit une méthode de lecture du ou des rôle (s) d'un utilisateur donné, soit une méthode de lecture des droits d'un utilisateur donné sur un document. Les rôles et/ou droits d'un utilisateur pour un document sont également déterminés à partir de l' appartenant à un groupe de documents et pour un espace donné.
De plus, sur requête d'un administrateur autorisé, le gestionnaire de droits peut également modifier les informations de l'annuaire LDAP 32. Ainsi, le gestionnaire de droits 70 sera autorisé à ajouter/supprimer un espace de travail (par exemple un espace privé ou un espace de collaboration), créer de nouveaux droits ou en supprimer, tout autre action à partir de méthodes d'une classe permettant d'administrer les informations de l'annuaire LDAP.
Ce gestionnaire de droits 70 est lié à une unité de traitement 40 capable de traiter des données de documents. Cette unité de traitement comprend un modèle objet comportant une pluralité de classes 42 et un opérateur de documents 41 capable de créer, sur requête d'un utilisateur autorisé, et de maintenir un document sous la forme d'un jeu d'instances 43 des classes du modèle objet. Le modèle objet est plus particulièrement détaillé sur la figure 3. Ainsi, des classes 42 permettent de définir un modèle de documents 44 et des méthodes 45 en fonction des droits déterminés d'utilisateurs par le gestionnaire de droits 70. L'opérateur de documents 41 permet d'obtenir par instanciation du modèle de documents 44, un document défini comme cahier des charges 43 et dont les données sont mémorisées dans la base de données 34.
Les méthodes 45 comprennent par exemple une méthode d'accès au document et une méthode de validation du document. Il sera détaillé plus loin que ces méthodes 45 ne sont utilisables par un utilisateur donné que sur autorisation de l'unité de traitement en fonction des droits de l'utilisateur pour ce document. La plate-forme de serveur 4 comprend enfin un gestionnaire de visualisation 50 apte à travailler avec l'unité de traitement 40 et la zone de stockage 30 ainsi qu'avec un dispositif de visualisation 60 accessible à l'utilisateur.
Une fois créée, les instances de classes définissant un document seront modifiées par l'utilisateur auteur ou rédacteur, rôles définis ci-après sur la figure 4, et les données seront enregistrées dans la zone de stockage à chaque modification, par exemple dynamiquement.
II est intéressant de détailler les différents rôles et droits que peut avoir un utilisateur sur un document.
Ceci est particulièrement détaillé sur la figure 4. Ainsi, le tableau T est un tableau à deux entrées : les droits d'un utilisateur sont spécifiés dans les colonnes du tableau, les rôles d'un utilisateur sont indiqués dans les lignes du tableau. Ainsi, un rôle est défini comme un ensemble de droits, et chaque ligne du tableau comprend un ensemble de marqueurs symbolisés par des carrés indiquant les droits des colonnes associés à un rôle d'une ligne.
Dans cet exemple de réalisation, les droits d'un utilisateur comprennent le droit d'afficher, d 'imprimer, de rechercher, de voir un aperçu, de créer, de dupliquer, de supprimer, d 'exporter (par exemple vers un tableur), d'écrire, de valider, de discuter, de publier, de signer, de déroger, et ceci pour un document donné. Il s'y ajoute ici les droits de réviser un surensemble, comme un cahier des charges, de faire un paramétrage, notamment pour un dossier de lots, ainsi que d'exporter vers un tableur, ou encore vers d'autres applications.
Les rôles d'un utilisateur comprennent les rôles de lecteur, d'auteur, de rédacteur, de publicateur, de contributeur, de signataire, et d' export vers une application, et ceci, pour un document donné.
D'autres droits et rôles peuvent être ajoutés selon les besoins par un administrateur central ayant le droit de modifier les rôles et les droits attribuables aux utilisateurs.
La gestion d'un document composite en mode multi-utilisateurs proposée selon l'invention va être plus particulièrement détaillée au vu de la figure 5.
La visualisation de la figure 5 correspondant aux dispositifs de visualisation 60 de la figure 2 est un exemple d'interface proposé à l'utilisateur. L'unité de traitement envoie au gestionnaire de visualisation 50 les instances de classes 43 définissant un document comprenant un pointeur de contenu des instances des classes, un indicateur de niveau et des méthodes détaillées ci-après. Le gestionnaire de visualisation 50 est agencé pour permettre un affichage conjoint d'une arborescence 110 dans une partie 101 de la fenêtre 100 et des zones d'affichage/saisie à onglet 112 dans une partie 102 de la fenêtre 100, ces zones correspondant aux contenus des instances de classes existant dans une partie de l'arborescence et le pointeur de contenu permettant l'affichage d'une zone à partir de l'arborescence.
Dans un mode de réalisation particulier de l'invention, l'unité de traitement 40 n'autorise l'affichage du document que si l'utilisateur a un droit d'afficher ce document. L'affichage se fait en utilisant une méthode d'affichage parmi les méthodes 45 de la figure 3.
Le gestionnaire de visualisation 50 permet l'affichage d'une barre d'outils 104 comprenant des icônes correspondant à des actions de manipulation du document affiché par l'utilisateur. Ces actions comprennent la possibilité d'enregistrer des modifications effectuées sur un document, de valider une zone d'affichage/saisie à onglet du document, de supprimer des informations dans les zones d'affichage/saisie à onglet du document, de dialoguer avec un autre utilisateur dans un espace de collaboration pour, par exemple, qu'il valide un document modifié et validé par un premier utilisateur.
L'unité de traitement autorise le gestionnaire de visualisation à activer ces icônes en fonction des droits de l'utilisateur concerné sur ce document dans un espace donné. Ces droits sont recherchés par le gestionnaire de droits 70 de la figure 2. De plus, l'unité de traitement envoie au gestionnaire de visualisation 50 l'instance de document 43 comprenant les méthodes correspondant aux actions possibles par un utilisateur sur ce document. Ainsi, en fonction des droits de l'utilisateur du document, les méthodes comprendront de façon non limitative une méthode pour afficher, une méthode pour valider, une méthode pour supprimer, une méthode pour apercevoir, une méthode pour dialoguer dans le cas de l'instance du document visualisé figure 5.
Sur requête d'un utilisateur désirant accéder à un document, l'unité de traitement, par l'intermédiaire du gestionnaire de droits, vérifie le droit de l'utilisateur à accéder aux documents. Dans le cas d'un accès possible, l'unité de traitement récupère les données de documents en utilisant les bases de données 31 et 34. A partir de ces données, l'unité de traitement utilise des classes appropriées pour construire une arborescence du document d'une part, et pour construire et associer un ensemble de zones d'affichage/saisie à onglets aux différents noeuds de l'arborescence. Sur envoi de ces données de l'unité de traitement au gestionnaire de visualisation, ce dernier affiche conjointement l'arborescence d'une part, et des zones d'affichage/saisie à onglets d'autre part, sur le dispositif de visualisation 60. Lors d'une action d'un utilisateur sur l'un des composants de la fenêtre 100, un traitement dynamique de' cette action est effectué par l'unité de traitement en utilisant les classes appropriées.
En référence à la figure 5, un document visualisé va être détaillé ci-dessous à titre d'exemples.
Il s'agit en fait de la visualisation d'un jeu d'instances de classes définissant un document particulier correspondant à un cahier des charges pour un produit de consommation.
L'arborescence 110 permet une visualisation synthétique du cahier des charges du produit de consommation concerné. Cette arborescence comprend, selon une hiérarchie descendante, différents niveaux comprenant un ou plusieurs noeuds. Un document 121 comprend, sur un niveau directement inférieur, des chapitres 122. Un chapitre peut comprendre sur un niveau directement inférieur, une ou plusieurs sections 123, une section peut comprendre sur un niveau directement inférieure une ou plusieurs sous sections 124, elles-mêmes pouvant comprendre une ou plusieurs sous-sous sections 125. Chaque niveau comprend un indicateur de niveau. Dans l'exemple présenté, différents carrés correspondent au document, un carré correspond au chapitre, différents ronds correspondent aux sections, un rond correspond aux sous-sections, une étoile correspond aux sous-sous sections. Avantageusement, les indicateurs de niveau peuvent changer de couleur sous certaines conditions, notamment en fonction d'un état de validation. Dans une autre réalisation, ces indicateurs de niveau peuvent apparaître sous certaines conditions, en fonction d'un état de validation par exemple.
La partie 102 de la fenêtre 100 comprend différentes zones d'affichage/saisie 112 à onglet 114. Ainsi, pour un noeud de l'arborescence actionné par l'utilisateur, différents onglets apparaissent dans la partie 102 et une des zones d'affichage/saisie à onglet apparaît à l'écran. Selon les droits de l'utilisateur sur le document affiché, les zones d'affichage/saisie à onglet seront en mode de lecture seule ou en mode écriture. Dans l'exemple de la zone affichage/saisie à onglets de la figure 5, l'utilisateur peut écrire, modifier, choisir des informations dans des champs de saisie adaptés. Dans l'exemple de la figure 5, un onglet identification 117 correspondant au chapitre dossier produit 122 de l'arborescence comprend différents champ de saisie 115 permettant d'identifier le produit. Il s'agit ici par exemple du champs dénomination légale 115-1, du champ dénomination commerciale 115-2, du champ format 115-4 dans lequel un utilisateur choisit une quantité de produits prédéfinis, du champ 115-3 dans lequel l'utilisateur choisit un pays de commercialisation du produit. Chaque zone d'affichage/saisie à onglet comprend un bouton 116 de validation de la zone par l'utilisateur.
Lorsqu'un utilisateur valide une zone, cet état de validation de la zone est géré dynamiquement par le gestionnaire de visualisation qui modifie l'affichage de la zone concernée en fonction de son état de validation. Lorsque chaque zone d'affichage/saisie à onglet correspondant à un noeud est validée par un utilisateur, le gestionnaire d'affichage modifie l'affichage d'au moins une zone et du noeud correspondant dans l'arborescence. La modification de l'affichage d'une zone peut consister en la modification de la couleur de fond de la zone, la modification de l'affichage d'un noeud peut correspondre à la modification de la couleur ou de la forme de l'indication de niveau du noeud correspondant. Bien entendu,
d'autres réalisations pouraient être envisagées selon l'invention comme la modification de la couleur ou de la typographie du titre du noeud dans l'arborescence.
Dans le cas d'un noeud défini par un ensemble de noeuds à un niveau inférieur, le gestionnaire de visualisation, au vu des indications de niveau indiquant un état validé pour chaque noeud du niveau inférieur, est adapté pour faire remonter cet état validé au noeud de niveau supérieur en modifiant l'affichage de l'indication de niveau du noeud de niveau supérieur. De plus, la validation du noeud supérieur est activée si tous les noeuds inférieurs sont activés. Ces fonctions sont réalisées dynamiquement par le gestionnaire de visualisation.
Pour la validation par un utilisateur, il est également possible de valider un noeud d'un niveau donné pour que l'ensemble des noeuds des niveaux inférieurs soit validé. Ainsi, un document peut être validé dans son ensemble en effectuant la validation au niveau du noeud document. Lorsque l'ensemble du document est validé, l'outil de traitement autorise la signature du document complet par un utilisateur ayant les droits de signature correspondants grâce au bouton signer 117. L'unité de traitement calcule une fonction Hash du document original et crée un nouveau document XML, contenant cette fonction Hash, à signer de manière à conserver ce document de signature. L'unité de traitement ne fournira au gestionnaire de visualisation la méthode de signature que si l'utilisateur concerné a le droit de signer. Si cette méthode est fournie au gestionnaire de visualisation, celui-ci affiche une icône signée actionnable par l'utilisateur concerné. La signature est ensuite vérifiée par l'unité de traitement liée à l'annuaire LDAP.
Dans l'exemple des droits et rôles des utilisateurs de la figure 4, il est à remarquer que seul un auteur et un rédacteur peuvent valider un document et seul un signataire peut signer ce document. Ainsi, une fois qu'un rédacteur a validé l'ensemble des documents, il peut dialoguer avec un signataire grâce à l'icône dialoguer de la barre d'outils 104 et lui demander la signature du document. Le dialogue concerne tous les utilisateurs ayant le droit de dialoguer quel que soit l'état du document et quel que soit l'espace de travail. De manière générale, les fonctions proposées par la plate-forme de serveurs permettent l'élaboration d'un cahier des charges pour un produit donné entre un distributeur et un fournisseur. Dans le cas d'un document devant être validé par différents utilisateurs (comme un fournisseur, un intermédiaire, un distibuteur) il peut être intéressant de spécifier, sur les noeuds de l'arborescence, le ou les utilisateurs ayant validé les sections, les chapitres ou le document. Lorsque le document est signé par un des utilisateurs, c'est-à-dire lorsque le nouveau document XML créé est signé, cette indication peut être portée par le titre du document dans l'arborescence par exemple. Ces indications seront donc connues de chaque utilisateur pouvant afficher le document.
Il est clair que l'invention porte sur les fonctions de l'outil de l'unité de traitement coopérant avec le gestionnaire de droits et le gestionnaire d'affichage, les fonctions du gestionnaire d'affichage utilisant les données d'un document fourni par l'unité de traitement et réagissant aux actions d'un utilisateur sur un document visualisé.
Lorsqu'un utilisateur désire afficher un document sur le dispositif de visualisation, l'unité de traitement récupère les données des cahiers des charges, des chapitres, des sections, des sous- sections correspondant à un jeu d'instance de classes comprenant pour chaque classe des méthodes permettant de récupérer l'état de validation du cahier des charges, des chapitres, des sections et des sous-sections, et des onglets correspondants.
L'unité de traitement est capable de construire à partir de ces données de cahiers de charges, chapitres, sections, un flux de données de type XML qui reflète l'état de validation du document ainsi que l'apparence de l'arborescence. Cette génération de flux de données XML est effectuée à partir de classes adaptées. L'outil de traitement est également adapté pour générer un flux de données HTML à partir du flux XML.
L'invention ne se limite pas aux modes de réalisation décrit mais s'étend à toutes autres variantes.