FR 2692058 A1 19931210 FR 9206933 A 19920609 SYSTEME DE TRAITEMENT TRANSACTIONNEL ENTRE UN SERVEUR INFORMATIQUE ET UNE PLURALITE DE STATIONS DE TRAVAIL. L'invention concerne un système de traitement transactionnel (Progamme d'application coopérative) entre un serveur informatique et une pluralité de stations de travail. Le but de la présente invention est de faire collaborer les agents (humains ou automatiques) d'une unité10 organisationnelle (par exemple un département) à travers des procédures (définies à l'aide du formalisme ICN Information Control Net), et de suivre et contrôler le progrès des exécutions (matérialisé par des ouvrages) de procédures Les procédures sont définies en concordance avec les objectifs de15 l'unité organisationnelle Les procédures définissent le séquencement des étapes auxquelles un ou plusieurs agents doivent intervenir ou contribuer pour atteindre l'objectif visé par la procédure. L'architecture proposée permet également d'élargir le champ d'application des systèmes multi-tâches à toute sorte d'applications sans préjuger au préalable de l'application, seul le découpage des procédures est effectué selon des règles définies liées à la forme de l'architecture.25 Ce but de l'invention est obtenu par le fait que le système de traitement transactionnel entre un serveur informatique et une pluralité de stations de travail entre lesquelles les ouvrages correspondants à des activités constituant des30 procédures sont exécutés, le système comportant du côté serveur un module ordonnanceur des ouvrages qui S 'appuyent sur la définition des procédures (à savoir les précédences entre les activités d'une procédure) mémorisées dans la base de données relationnelle pour ordonnancer le progrès des35 ouvrages en trouvant la ou les activités suivantes et en créant la ou les tâches correspondantes étant donnée la fin d'une activité, un module répartiteur pour effectuer la répartition des tâches qui s'appuit sur la relation entre rôle et acteur mémorisée dans la base de données relationnelle pour attribuer une tâche à un acteur choisi5 éventuellement selon la charge de travail, un module signaleur pour conserver une trace des événements rythmés et recevant des informations de l'ordonnanceur et d'un module coordinateur, une boite de messages échangeant des signaux d'une part avec les modules répartiteur et signaleur, et10 d'autre part avec un module de communication avec les stations de travail et un module de gestion des données du flux de travail, le système comportant du côté station de travail une couche de communication, une rouche de gestion des messages correspondant au flux de travail, une couche15 comportant différents jeux d'interfaces de programmation de l'application, une couche de services de gestion et une couche d'interface utilisateur. Selon une autre particularité les différents modules d'une couche de la station de travail n'ont pas d'interaction entre eux. Selon une autre particularité le module de gestion des données gère des tables statiques et dynamiques mémorisées25 dans la base de données relationnelle. Selon une autre particularité les tables statiques sont constituées des données de définition des procédure, de définition des activités, de l'organisation des acteurs et30 des rôles et de répartition des activités selon une table de distribution. Selon une autre particularité les tables dynamiques sont constituées de données évolutives représentant l'avancement35 des ouvrages et des tâches. Selon une autre particularité les tables dynamiques sont constituées d'une table de circulation, d'une table de vecteurs de données d'ouvrage JDV-JDV, d'une table de vecteurs de données d'activité ADV-ADV et des tables SCHED-5 STATEP, SCHED- STATUSP, SCHED-JOBS, SCHED-TASKP. Selon une autre particularité, les tables statiques sont constituées d'une table de description de procédure (SCHED- PROCEDURE), d'une table de description de données de10 procédure (JDV- PDDEF), d'une table de description des références des données stockées dans des bases de données externes (EDA-ORA), d'une table de description des activités (SCHEDACTIVITE), d'une table de définition des précédences (SCHED-PRECEDENCE), des tables de définition de l'organisation du système (ORGA-ACTOR, ORGA-ROLE, ORGA-R-OFF- ACT). Selon une autre particularité, une activité est constituée d'un identifieur de l'activité, et de la procédure à laquelle20 l'activité est rattachée et d'une liste d'actions comportant une commande d'initialisation et une commande de validation. Selon une autre particularité, les actions sont constituées d'une information formant le type, d'un nom, d'argument25 constitué par les données des vecteurs JDV ou ADV. Selon une autre particularité la couche de service de gestion comporte: -un service de gestion de création d'ouvrage, un service de gestion d'administration et de coordination, un service de gestion de l'exécution de l'activité. Selon une autre particularité, une activité comporte également un préfixe PR destiné à appeler un logiciel de présentation et d'interaction fournissant l'interface de l'activité. Selon une autre particularité, le module administrateur réalise les fonctions de modélisation, création, test et accord des différentes entités du système. Selon une autre particularité, le module de gestion de données à pour fonction d'attacher les données appropriées aux ouvrages spécifiques en créant le vecteur JDV, de gérer l'intégrité des données, de retrouver et accéder les données dans les bases de données externes (ou d'application). Selon une autre particularité, le module de gestion d'exécution d'activités comporte les fonctions: de lecture du fichier et de description d'activité, de lecture et d'écriture des données d'ouvrage utilisées dans l'activité, de lecture et d'écriture des données des tâches correspondantes utilisées dans l'activité et de commande des droits d'accès sur les données d'ouvrage, d'avancement du formulaire de présentation approprié de l'activité, et de l'exécution des actions correspondantes à l'activité d'une façon guidée. Selon une autre particularité, le module de gestion des tâches réalise les fonctions suivantes:35 réception d'une tâche offerte, acceptation d'une tâche offerte, recherche des données correspondantes du vecteur d'ouvrage sur le serveur, achèvement d'une tâche, restitution du vecteur d'ouvrage et mise à jour au serveur, réorientation d'une tâche vers un autre acteur ou une autre activité, appel de l'exécution de l'activité d'une tâche, traitement et maintien local des données correspondant aux tâches et leur historique. Selon une autre particularité le module administrateur et coordinateur ( 11) comporte les fonctions d'édition de concept et de données et la commande des ouvrages. Selon une autre particularité, le module répartiteur réalise trois fonctions principales:25 affecter à un utilisateur les tâches qui viennent d'être crées par l'ordonnanceur, affecter un nouvel utilisateur à une tâche qui vient d'être rejetée, effectuer la distribution et la circulation des activités parmi les utilisateurs. Selon une autre particularité, le module signaleur conserve une trace des événements rythmés ou temporelle et comporte une fonction de rappel quand un temps est expiré et une fonction de retardement pour lancer un travail avec un retard. Selon une autre particularité, la boite de messages est constituée de deux tables de données, une première qui contient la description des messages et une seconde qui mémorise la destination des messages. D'autres particularités et avantages de la présente invention apparaîtront plus clairement à la lecture de la description ci-après faite en référence aux figures ci-après dans lesquelles: La figure 1 représente de façon schématique un système de traitement transactionnel selon l'invention. La figure 2 représente de façon schématique les échanges entre les différents modules du système de traitement20 transactionnel, La figure 3 représente les informations qui transitent lors de la création d'un ouvrage entre les différents éléments du système transactionnel.25 La figure 4 représente l'écran affiché par le terminal du système lors de la mise en route de celui-ci avec l'interface de présentation particulière. Les figures 5 à 15 représentent les différentes fenêtres utilisées par l'interface utilisateur du système transactionnel. La figure 1 représente un système de traitement transactionnel entre un serveur informatique ( 3) utilisant des données de traitement stockées sur une base de données relationnelle d'un serveur informatique ( 3), par exemple du type " 1 UNIX"', et communiquant avec des stations de travail ( 1), par exemple du type PC, sur lesquelles le travail d'une application qui se déroule dans le cadre d'activités est exécutée par l'utilisateur de la station de travail. Le serveur ( 3) comporte un jeu de modules ( 30 à 37) qui initialisent et coordonnent les activités Par activité on doit entendre le corps d'une étape de travail, d'une10 procédure, c'est à dire une unité de base de travail qui doit être un jeu séquentiel d'actions primitives exécutées par un seul acteur. Les activités peuvent fonctionner selon un des trois modes suivants: automatique, manuel et mixte. Le corps d'une activité constitue la partie d'exécution d'une activité Ce corps comporte une liste d'actions à exécuter sur la station de travail L'ordre de ces actions n'est pas20 fixé et dépend de l'interruption de l'acteur exécutant Un corps d'activité comporte un identifieur et une liste d'actions Ai Le couple lProcedure Id, Activity Idl de l'annexe 1 identifie uniquement un corps d'activité lié à l'activité (Activity Id) qui appartient à la procédure dont l'identité est (Procedure Id) Une action N peut être activée par l'utilisateur à travers le formulaire correspondant de l'écran de la station de travail ( 1) Cette action peut être scindée en deux parties: une première partie Ai qui est une commande (Pre Script) à exécuter quand l'utilisateur veut30 sélectionner une action N (par exemple une initialisation) et une deuxième partie Zi qui est la commande (Post Script) à exécuter quand l'utilisateur veut valider l'action sélectionnée. Les actions d'une activité sont numérotées de O à N L'action AO est une action particulière dans laquelle la commande (Pre Script) de sélection est automatiquement exécutée et validée avant toute autre action. Le préfixe PR de l'activité appelle un formulaire qui fournit l'interface de présentation et d'interaction de l'activité sur l'écran de la station. La structure des données de l'activité est fournie par un fichier dont le nom est précédé du préfixe ADV La syntaxe10 d'une action est constituée d'un champ "type d'action" (Action Type) d'un champ "nom d'action" (Action Name) et de plusieurs arguments qui sont des champs de vecteurs de données d'ouvrage (JDV) représentés par Ji et de vecteurs de données d'activité (ADV) représentés par Ai, ces champs sont15 stockés dans les vecteurs (ADV, JDV) de la mémoire ( 370) du serveur ( 3) Les actions peuvent être du type: exécutable, fonction DLL, échanges DDE Le système de traitement transactionnel aide à définir, exécuter, coordonner et commander le flux de travail entre les organisations ou les20 groupes de travail en se basant sur une description des tâches de bureau qui peuvent être décrites comme des tâches structurées récurrentes, appelées procédures dont les éléments de travail de base sont appelés activités et doivent être exécutées par différents individus appelés acteurs selon une certaine séquence. Un acteur consiste en une identification unique de l'acteur (usrid) fournie par le système, un nom d'acteur (name), un prénom de l'acteur (first Name), un mot unique d'ouverture de cession (login Name), un mot de passe (password) et une étiquette (alias). Une procédure est un jeu prédéfini d'étapes de travaux selon un séquencement partiel de ces étapes Une étape de travail35 est formée d'une en-tête (identification, précédence,etc) et d'un corps (activité) qui constitue le travail actuel à exécuter Différentes étapes d'une procédure peuvent être exécutées par différentes personnes, différents groupes de personnes Dans certains cas, plusieurs étapes d'une procédure peuvent être exécutées en même temps ou dans un5 ordre quelconque En général, une procédure est un jeu partiellement ordonné d'étapes, c'est à dire dans lequel toutes les étapes ne doivent pas être nécessairement exécutées séquentiellement et dans lequel des boucles sont autorisées, plutôt qu'un jeu totalement ordonné Les10 procédures ont de façon classique des attributs tels que le nom et la personne responsable associée à la procédure. Un script est une spécification d'une procédure, d'une activité ou d'une partie automatique d'une activité manuelle.15 Un ouvrage (job) est le lieu de commande pour une exécution particulière d'une procédure Dans certains contextes l'ouvrage est appelé une transaction Les ouvrages ont des paramètres tels que l'état, l'initiateur, l'historique.20 Un rôle (role) consiste en la désignation d'un acteur ou d'un groupe d'acteurs qui agissent comme base pour les commandes d'accès et les commandes d'exécution Un acteur peut jouer plusieurs rôles d'acteur (Role Of Actor) dans une25 organisation Un acteur est une personne, un programme ou une entité qui peut remplir les rôles à exécuter et être responsable de ces rôles ou être associé dans une certaine mesure avec les activités et procédure Les attributs ou possibilités d'accès peuvent être associés avec les acteurs30 et avec les rôles. Un rôle est défini par: un mot unique (rid) d'identification du rôle, le nom du rôle (name) et la description du rôle Le rôle d'acteur comprend: l'identification de l'acteur (usrid)35 et l'identification du rôle (rid). D 'autres paramètres ou attributs et structures peuvent être associés pour créer un modèle organisationnel, destiné à mieux gérer le flux de travail. L'architecture au niveau du logiciel de traitement transactionnel du flux de travail constituant le système se décompose en un certain nombre de modules ( 30 à 37 figure 1). Les modules deviennent actifs quand un ouvrage (job) etjou une activité (activity) est commencé ou achevé Un module10 ordonnanceur ( 30) est activé par un message d'achèvement d'activité, une exception d'activité ou la création d'un ouvrage. Dans tous les cas, l'ouvrage est démarré par un processus quelconque qui envoie un message du type créer un ouvrage au module ordonnanceur ( 30) du serveur ( 3) Les paramètres de ce message comportent la priorité de l'ouvrage, le temps d'expiration, le nom de la procédure et les paramètres d'initialisation.20 L'ordonnanceur ( 30), à travers la faculté de création d'ouvrage, crée l'ouvrage, lui affecte un nombre unique, fixe l'information d'état pour cet ouvrage et effectue différentes initialisations.25 Le travail de finalisation est aussi exécuté par l'ordonnanceur ( 30) à travers la facilité d'achèvement d'ouvrage quand toutes les activités pour un ouvrage ont été exécutées L'ordonnanceur vérifie tous les prédécesseurs de30 tous les possibles successeurs d'une activité achevée. Si l'activité achevée était une activité de décision, alors l'ordonnanceur examine la variable résultant de cette activité Si un ou plusieurs successeurs sont validés, un35 message est envoyé à un module répartiteur ( 33) avec lequel l'ordonnanceur dialogue L'ordonnanceur consiste en une Il boucle de programme représentée à l'annexe 2, consistant à lire les messages reçus et à traiter le cas du message. L'appel de la fonction "W Fsv Sched Create Job" déclenche la vérification que l'état de publication de la procédure est valide et dans l'affirmative crée un nouvel ouvrage pour la procédure identifiée par son identifieur de procédure (pid) avec une priorité déterminée. L'appel d'une part de la fonction "W Fsv Sched Start Task" déclenche la lecture de la table de définition de la procédure avec initialisation d'une tâche et d'autre part de la fonction "W Fsv Sched End Task" déclenche l'achèvement de la tâche avec chargement du vecteur JDV dans le serveur ( 3).15 Le module ordonnanceur dialogue avec un module répartiteur (dispatcher 33) et un module signaleur ( 34) (notifier). L'ordonnanceur marque les nouvelles tâches qui sont crées avec l'état "todispatch" et notifie ceci au répartiteur en20 déposant un message dans une boite à message ( 35). Le module répartiteur ( 33) a trois fonctions principales: a) affecter à un utilisateur les tâches qui viennent d'être crées par l'ordonnanceur; b) affecter un nouvel utilisateur à une tâche qui vient d'être rejetée; c) effectuer la distribution et la circulation d'une activité parmi les utilisateurs. Le module répartiteur ( 33) est le premier module qui conduit et est conduit par l'acteur et les entités de rôles Dans sa35 troisième fonction, pour une activité donnée, le répartiteur ( 33) établit une correspondance avec un rôle et avec un ou plusieurs acteurs Si un ou plusieurs acteurs doivent être sélectionnés comme receveur, alors le répartiteur applique les algorithmes de répartition de base effectuant une répartition linéaire, c'est à dire le répartiteur range5 aléatoirement les receveurs possibles (acteurs) et procède linéairement à travers cette liste Il délivre le premier ouvrage au premier acteur, le second ouvrage au second acteur et ainsi de suite jusqu'à l'épuisement de la liste Ceci est ensuite répété continuellement, de façon que tous les acteurs10 reçoivent approximativement le même nombre d'ouvrage. Dans la première fonction, lorsqu'une première tâche est attribuée, l'état de la tâche dans la table (sched-job) est indiqué "OFFERED" et un message est envoyé à l'utilisateur15 supposé exécuter l'ouvrage. dans sa deuxième fonction, lorsqu'un utilisateur rejette une tâche qu'il ne peut exécuter l'état de la tâche est mis à "rejected" dans la table (sched-job) et le répartiteur reçoit un message Le répartiteur mémorise alors le fait, que la tâche a été rejetée et par qui, dans les archives et l'historique de vérification (auditing) et procède comme si la tâche provenait de l'ordonnanceur. Les interfaces de programmation de l'application correspondant à ces trois fonctions sont indiquées dans l'annexe ( 3). Le module signaleur ( 34) conserve une trace des événements rythmés et signale les receveurs corrects au moment approprié. Deux utilitaires de rythme sont prévus dans le module signaleur ( 34), à savoir la faculté de rappel et la faculté35 de retardement Le premier pour, par exemple, permettre d'imposer une butée limite pour l'exécution d'une activité spécifique et envoyer un message d'avertissement quand le temps de butée est expiré, tandis que le second permet de retarder l'expédition d'un message pendant une certaine période de temps pour, par exemple, demander à un acteur de5 faire un certain travail après un certain retard. Le signaleur ( 34) reçoit également des informations du coordinateur ( 31) qui prend soin de ce qui se passe dans le système de gestion du flux de travail Le coordinateur10 fournit les facilités de contrôle de gestion interne pour garder une trace des événements significatifs et stocker les fichiers de journal affranchis, les façons d'interroger le système sur les différents états (qui fait quoi ? quel est le degré d'avancement d'un ouvrage spécifique ? combien15 d'ouvrage sont en cours d'exécution ? temps moyen d'exécution d'un ouvrage, temps moyen d'exécution d'une tâche, historique des ouvrages, état courant d'un ouvrage, informations obtenues par un ouvrage déterminé, files pour exécuter une activité donnée au cours d'une procédure donnée, conflits20 dans un ouvrage donné, etc) la possibilité d'agir sur l'avancement des ouvrages (suspension, remise en service (resume), annulation (cancel), réattribution (reassign) etc) et les moyens de garder un historique par archivage. Le répartiteur ( 33) et le signaleur ( 34) échangent des signaux avec la boite à messages ( 35) qui sert à conserver tous les messages asynchrones Ces messages peuvent être des activités assignées à des acteurs, des messages d'avertissement générant chez le signaleur ( 34), des messages30 entre acteurs, etc La boite à messages est constituée essentiellement dans une base de données relationnelle telle que par exemple la base (e g ORACLE de Bull) Le serveur de la boite à message est un serveur particulier qui gère et mémorise les messages asynchrones. Quand une requête de client est asynchrone, le résultat est mémorisé en tant que message dans la boite à messages à travers le serveur de la boite à messages La seule façon5 d'accéder à la boite à messages est à travers le serveur de boite de messages ( 35) Ainsi par exemple, quand le répartiteur ( 33) assigne une tâche à un acteur, un message est envoyé à cet acteur l'informant qu'un sujet de travail est arrivé Ceci est effectué par le serveur de la boite de10 messages qui écrit dans la boite de messages un message du type "offre de tache (offer-task)". Le serveur de boite de messages est constitué principalement d'une boucle de programme qui est représente en annexe 4.15 La boite de messages est constituée principalement de deux tables de données d'une base de données relationnelle ( 371) telle que par exemple "ORACLE" La première appelée MSG-BOX- DESC qui contient la description des messages tels que un20 identifieur unique, le type, etc La seconde table est appelée MSG-BOX-BROADCAST qui est utilisée pour mémoriser les destinataires des messages et les autres informations telles que les états de messages Il est important de noter qu'un message peut être adressé à plusieurs destinataires et qu'en25 conséquence la deuxième table MSG-BOX-BROADCAST devrait contenir la liste des destinataires tandis que la description du message est écrite une seule fois dans la table MSG-BOX- DESC. Enfin un message peut avoir un des trois status suivants: TO-READ: qui signifie que le message est disponible, READ: qui signifie que le message a été lu, TO-DELETE: qui signifie que le message a été effacé. 35 Enfin cette boite à messages ( 35) reçoit également des signaux de l'administrateur ( 32) Ce module est utilisé en mode différé pour modeler, créer, tester et accorder les différentes entités du système de base, les procédures, activités, rôles et acteurs. Cette étape peut impliquer l'analyse des structures organisationnelles, des flux d'informations et des procédures de bureau Les activités "formulaires" et "structures de sécurités" doivent être crées.10 Les scénaris de procédures sont écrits par exemple, en utilisant le formalisme d'un logiciel de création d'un réseau de commande d'information ICN (Information Control Net) est décrit dans une autre demande de brevet déposée Les corps15 d'activités sont écrits en utilisant une notation fondée sur une base visuelle Les corps d'activités sont un des véhicules des échanges de données entre les activités du gestionnaire de transaction relationnelles et les différents serveurs extérieurs.20 Le système comporte également un module de gestion des données ( 370) qui stocke les tables relationnelles dans la base de données telle que ORACLE pour représenter les définitions, les relations, les attributs de toutes les25 procédures, activités, ouvrages, rôles et acteurs. Ces tables sont constituées de tables dynamiques marquées par un astérisque et de tables statiques. Les tables dynamiques sont constituées par les tables SCHED- JOBS, SCHED-STATEP représentée en annexe 8, SCHED-STATUSP représentée en annexe 8, SCHED-TASKP, JDV-JDV et ADV-ADV représentée en annexe 5 Ces tables ont leurs rangées insérées et mise à jour pendant la phase d'exécution de35 l'ordonnanceur Normalement il y a un jeu de tables dynamiques pour chaque procédure exécutée sur le système. Un jeu de table contient toutes les données d'exécution pour tous les ouvrages d'une procédure. Les tables statiques sont constituées par les tables ORGA- ACTOR, ORGAROLES, ORGA-R-OFF-ACT, SCHED-PROCEDURES, SCHED- ACTIVITIES, SCHEDPRECEDENCES représentée en annexe 8, JDV- PDDEF (Procédure data definition) représentée en annexe 6, EDA-ORA (external data accessor to ORACLE) représenté en10 annexe 7 Ces tables statiques contiennent les informations sur les procédures et l'organisation des actions et des rôles. L'ordonnanceur accède à ces tables seulement dans le mode de lecture et se fie à ces informations qu'il mémorise pour 1 ' exécution. Toutes les tables dynamiques comportent une colonne indiquant l'identificateur de procédure Pid à laquelle les données20 contenues dans les tables sont affectées Une colonne nom Jid d'ouvrage est ajoutée à la table SCHED-JOBS et elle sera remplie de façon optionnelle par l'utilisateur à l'initialisation d'un ouvrage. Les informations concernant les données utilisées pour attribuer et répartir les tâches et rôles à l'utilisateur comporte une colonne Role Id dans la table SCHED-TASKP qui sera remplie au moment de la création de la tâche par l'ordonnanceur à partir des informations trouvées dans la30 table SCHED-ACTIVITIES. Enfin une table distribution et une table circulation représentées aux annexes 4 et 8 permettent au répartiteur de disposer des éléments pour affecter les activités aux35 différentes stations des utilisateurs. Avec la table de distribution et le réseau de commande d'informations, il est possible de décrire la circulation d'informations dans un bureau La distribution décrit la circulation d'une activité entre les différents membres de5 l'organisation. La table de distribution comme représentée en annexe 4 comporte un identifieur de distribution Did, un identifieur de procédure (Pid), un identifieur d'activité (Aid),10 l'information rôle (Role Id), 1 ' information d'identification de l'utilisateur (User Id), une information indiquant que l'identifiant d'utilisateur est au début de la liste de circulation (First) et une information nouvel utilisateur (Next User Id). La table de circulation est constituée comme représentée en annexe 4 des informations Did, Pid, Job Id, Aid pour l'identifieur d'activité, Role Id, User Id, First, Next User Id. La figure 2 représente l'organisation logique des services rendus par un ou plusieurs modules, et leurs interactions avec l'agent utilisateur du système transactionnel qui est 1 'administrateur, le coordinateur et 1 'agent. La table JDV-JDV est constituée comme représentée à l'annexe d'un identifieur d'ouvrage (Jid), d'un identifieur d'activité (Aid), d'un identifieur de tâches (Tid), d'un identifieur de champs dans le vecteur JDV, d'un état (STATUS) qui peut être l'une des valeurs TO-ACCESS, READFWK,30 READEXTERN, ARCHIVED, d'un identifieur de champs FLD-NAME, d'un mode de passe de champs PASSMODE qui peut avoir les valeurs VALUE ou REF pour indiquer que le champ est transmis par une valeur ou par sa référence, d'un type de champs (FLD TYPE) qui peut être une date, uncaractère ou un entier,35 d'une longueur en octet de la valeur transmise contenue dans LENGTH, de la valeur du champ si le type de champ est une date contenue dans FLD-DATE, de la valeur du champ si le type de champ est un caractère ou si le mode de passage est REF contenu dans FLD-KCHAR, de la valeur du champ si le mode de passage est INT contenu dans FLD-INT et de la valeur actuelle5 du champ désignée dans JDV-PDDEF comme champ de dépendance dans ACCESS-KEY. En addition, la base de données relationnelle sauvegarde plusieurs types de données nécessaires pour l'exécution des10 activités, telles que les informations spécifiques de procédure, des ouvrages spécifiques contenus dans le vecteur de données d'ouvrage (JDV, Job Data Vector) et les informations spécifiques d'activités contenues dans les vecteurs de données de tâches (TDV, Task Data Vector) Ces15 éléments de données vectorielles sont des valeurs de données ou pointeur vers des informations stockées sur des répertoires externes d'informations A chacun des composants dans le vecteur est donné une valeur type et une valeur initiale La valeur initiale est nulle et est spécifiée par20 l'événement d'initialisation ou est chargée par le module de création d'ouvrage au démarrage de l'ouvrage Quand une activité est démarrée, une copie du vecteur de donnée d'ouvrage est rendue disponible pour le client à travers le serveur réseau o la copie du vecteur JDV est chargée vers la25 station de travail Certains éléments du vecteur sont lus et certains sont écrits par l'activité lorsqu'elle s'exécute. Quand l'activité est achevée, le vecteur est sélectivement copié ou déchargé vers le serveur ( 3) De même, les vecteurs30 de données d'activité stockent les valeurs et les références pour les données spécifiques d'activités Son format est identique au format du vecteur JDV. Pour réaliser ces différentes actions le système utilise le module de gestion de données ( 370) qui a pour fonction: d'attacher les données appropriées aux ouvrages spécifiques, en créant le vecteur JDV et en démarrant le remplissage de ce vecteur avec les données spécifiques pour ensuite le transmettre à la station de travail ( 2) quand un5 utilisateur en a besoin, gérer l'intégrité des données et la sécurité en fournissant des mécanismes pour attacher les droits d'accès aux données et des stratégies de verrouillage pour protéger les données10 contre des accès concurrents, retrouver et accéder les données dans les bases de données de l'utilisateur externe en faisant appel à un module EDA d'accès aux bases de données externes Les données15 nécessaires à la réalisation de ces fonctions sont stockées dans le fichier définition de données de procédure PDDDEF et dans le fichier EDA-ORA qui sont représentés aux annexes 6 respectivement 7. Les modules ( 30 à 37) du serveur ( 3) communiquent à travers le système de communication, comportant les éléments ( 36,2,17,16) avec un module client consistant dans un ensemble de modules ( 10 à 15) Ces modules seront décrits dans la suite.25 Le système serveur ( 3) communique à travers un réseau ( 1) et un serveur réseau ( 364) avec un système client ( 2) comportant une interface de communication ( 27) et une architecture à quatre couches, dont la première est le système de messages30 de flux de travail ( 26), la seconde couche ( 24) est constituée par différents jeux d'interface de programmes d'application client ( 241,242,243,244), d'une troisième couche de service ( 25) de gestion ( 251,252,253,254), et d'une quatrième couche ( 20,21) qui est la couche supérieure35 d'interface Les différents modules d'une couche n'ont pas d'interaction entre eux. Le système de messages de flux de travail ( 26) permet les échanges d'information entre les clients et le serveur. Les informations échangées sont transportées par une structure spécifique appelée "message" Cette couche satisfait les fonctionnalités suivantes: connexion à la couche communication du serveur ( 364), déconnexion avec la couche communication du serveur et émission et réception de10 messages. La fonction connexion permet d'établir un lien permanent avec le serveur ( 36) Une station de travail peut supporter une seule liaison Pour cela, tous les messages qui sont échangés15 par des fonctions d'émission et de réception passent à travers ce lien. Un message est composé d'une partie enveloppe et d'une partie donnée La partie enveloppe contient l'émetteur, le20 destinataire et les informations d'état, tandis que la partie donnée contient le contenu du message. Le système de messages ( 26) a aucune connaissance au sujet du contenu du message, ni de l'enveloppe et encore moins des25 données Ce module envoie la partie enveloppe et le nom du fichier qui contient la partie donnée à travers le lien réalisé avec le serveur, tandis que le fichier de la partie donnée est déjà sur le système de fichier partagé ( 372) qui est partagé avec toutes les stations de travail et le30 serveur. Les interfaces de programmation d'application des clients regroupent toutes les interactions entre la station de travail et le serveur Ces interfaces sont classées selon les35 activités suivantes: administration, constitue une interface ( 254), coordination constitue une interface ( 254), création d'ouvrage constitue une interface ( 253), l'exécution d'activité constitue une autre interface ( 252), les tâches constituent une dernière interface ( 251). Toutes ces interfaces de programmation sont générées par un générateur automatique de codes pour une description donnée des fichiers en entrée Ceci assure la cohérence entre les interfaces de programmation client et du serveur. La couche d'interface de programmation administration ( 244) définit les données qui sont classées selon les concepts et les données définis pour le système de traitement transactionnel Elle permet la définition des procédures, des activités, des acteurs, des rôles et de l'affectation ou de15 la désaffectation d'un rôle à un acteur. Les interfaces de coordination ( 244) permettent la commande de l'exécution d'ouvrage et sont constituées des éléments suivants: état d'un ouvrage, avancement d'un ouvrage,20 historique d'un ouvrage, qui fait quoi, nombre d'ouvrage actif, suspension d'un ouvrage, reprise d'un ouvrage, annulation d'un ouvrage. Le jeu d'interfaces client ( 243) pour la création d'un ouvrage est constitué des interfaces qui participent à la création d'un nouvel ouvrage dans une procédure déterminée. Le jeu d'interface exécution d'activité n'est pas défini. Le jeu d'interface tâche ( 241) donne à un acteur les facilités pour exécuter les tâches ordonnées et réparties. Ces facilités sont classées de la façon suivante: lecture d'une tâche offerte, acceptation d'une tâche offerte, recherche du vecteur de donnée d'ouvrage correspondant dans le serveur, achèvement d'une tâche et restitution du vecteur35 de donnée d'ouvrage réactualisé au serveur, réorientation d'une tâche à un autre acteur ou activité. La couche de gestion des services regroupe des modules ( 251 à 254) qui gèrent les différents services proposés à l'acteur. Chaque module fournit un jeu bien définit de service à l'acteur, traite et maintient les données utiles localement et appelle les interfaces de programmation d'application client appropriées et respectives ( 241 à 2144 > pour fournir le service souhaité. Un module gestion administration et coordination ( 242) fournit à l'acteur les services pour définir les concepts et données de flux de travail Ceci inclut les liens avec les interfaces appropriées et le support des définitions de processus La gestion de coordination envoie au serveur les15 requêtes de coordination venant de l'interface utilisateur correspondante et traite les réponses reçues. Le module de gestion de création d'ouvrage ( 253) se résume à transmettre les créations d'ouvrage, les requêtes de création20 d'ouvrage au serveur et peut être capable de fournir une cession de création d'ouvrage pendant que l'acteur prépare les données d'initialisation correspondant à la procédure de définition de données PDDEF et lance la création d'ouvrage effective sur le serveur.25 Le module de gestion de l'exécution d'activité ( 252) est dédicacé à réaliser l'exécution de la partie corps de l'activité Cette exécution est requise par le module de gestion de tâche ( 251) à travers l'interface utilisateur30 ( 20) Une telle exécution peut être considérée comme une cession de travail pendant laquelle l'acteur exécute les actions correspondantes. En dehors de ces actions qui sont une partie de l'exécution normale d'une activité, l'acteur a la possibilité de suspendre, annuler et bien entendu terminer un cession de travail. Dans ce but le module de gestion d'exécution d'activité est pourvu des possibilités: de lecture du fichier de description d'activité; de lecture et d'écriture des données d'ouvrage utilisées dans l'activité; de lecture et d'écriture des données de tâches correspondantes utilisées dans l'activité et de commande des droits d'accès sur les données d'ouvrage; de lancement du formulaire de présentation approprié de l'activité et de l'exécution des actions correspondantes à l'activité d'une façon guidée. Un module de gestion de tâches ( 151) est dédicacé à gérer l'aspect multi-tâche d'un acteur puisque le système de traitement transactionnel donne la possibilité à un acteur de traiter plusieurs tâches en même temps Pour cela, ce module maintient localement une mémoire des tâches et fournit la possibilité de sauvegarder, de retrouver cette mémoire et d'effacer des tâches de cette mémoire Ce module comporte un jeu d'opération pour exécuter normalement les tâches qui sont les suivantes: réception d'une tâche offerte, acceptation d'une tâche offerte, recherche des données correspondantes du vecteur d'ouvrage sur le serveur, achèvement d'une tâche, restitution du vecteur d'ouvrage mis à jour au serveur, réorientation d'une tâche vers un autre acteur ou une autre activité, appel de l'activité d'exécution d'une tâche correspondante par l'interface utilisateur, traitement et maintient local des données correspondant aux tâches et leur historique. Enfin un module de gestion de note, non représente, est également prévu pour fournir à l'acteur la facilité de création de note, d'attachement de note, de lecture et d'écriture, réception et émission de note, traitement local et maintenance de notes envoyées et reçues. La couche supérieure est constituée de la couche d'interface qui comporte une interface coordinateur et administrateur ( 21) et une interface utilisateur ( 20). L'interface administrateur et coordinateur ( 21) comporte les éditeurs de concept et de données et la commande des ouvrages L'interface utilisateur comporte les logiciels, les parties permettant l'utilisation interactive du système de traitement transactionnel, l'exécution d'activité guidée par un formulaire et l'utilisation automatique du système de traitement transactionnel Ces interfaces sont lancés soit30 par l'acteur lui-même, soit par le module de gestion ( 251). L'interface utilisateur permet à l'acteur une participation et une contribution au travail de bureau A travers celle-ci, l'acteur est capable d'accomplir les tâches qui lui sont35 attribuées, de démarrer un nouvel ouvrage et d'échanger des messages avec les autres acteurs L'acteur est identifié par son nom et son mot de passe dans le processus de connexion. Au cours du fonctionnement, les événements de création d' ouvrage incitent le module ordonnanceur (scheduler) à5 démarrer un nouvel ouvrage Ainsi 1 'ordonnanceur peut démarrer une première activité Ensuite un acteur (un utilisateur spécifique) est alloué par le répartiteur à la première activité et 1 'ouvrage est envoyé à la station de travail du client approprié Quand la station de travail10 achève 1 'activité, 1 'ouvrage est retourné au serveur o l'ordonnanceur met à jour l'état de l'activité et trouve une nouvelle activité L'ordonnanceur appelle le répartiteur pour attribuer les acteurs en fonction des rôles et ensuite l'information d'ouvrage et les demandes d'exécution sont15 envoyées à la machine client appropriée pour exécuter l'activité suivante. Tous ces états, activité, rôle, utilisation d'acteur, attribution d'information sont enregistrés par la facilité de20 vérification (auditing) du module coordinateur une fois les attributions faites Ce cycle se poursuit jusqu'à ce que la dernière activité soit achevée et à ce moment là, l'ordonnanceur procède à l'achèvement de l'ouvrage. Le module de gestion de l'exécution d'activité ( 252) contrôle et supporte les exécutions d'activités, en exécutant le corps de programme correspondant à l'activité demandée Ce corps peut accéder à des données externes et avoir accès à des données spécifiques de l'ouvrage ou des données spécifiques30 d'activités Puisque cette activité est fréquemment inter- active, le module d'interface utilisateur est appelé par ce corps Les documents et les formulaires sont affichés et manipulés par l'utilisateur comme une partie de cette activité.35 Quand l'activité est achevée, un message est envoyé au logiciel du serveur indiquant le nouvel état Comme un client peut travailler sur plus d'un ouvrage simultanément, le module gestionnaire de tâches ( 251) maintient les statuts des ouvrages et présente les différents ouvrages et leurs statuts5 à l'utilisateur A chaque station de travail, l'information appropriée est accessible et toutes les informations sont maintenues quand un utilisateur éteint sa station de travail. Des rôles multiples peuvent être résidents sur une seule machine client.10 Les interactions entre les modules sont facilitées par le sous-système de communication ( 27,1,36) qui autorise les échanges de messages entre les modules du système et aussi entre les utilisateurs Ce système supporte à la fois des communications synchrones (ex: fetchtask) et des communications asynchrones (ex: sendto) Les interactions de ces communications sont mises en oeuvre par les différentes couches du protocole de communication. Dans une variante de réalisation le système de traitement transactionnel peut être utilisé avec une interface utilisateur telle que celle décrite ci-après qui permet une grande facilité d'utilisation pour l'utilisateur. Cette interface est basée sur des documents, des icones et des formulaires et est constituée sous forme de trois dossiers qui peuvent être accède et manipulé par le système de traitement transactionnel. Ce sont les dossiers, nouvelles tâches (new tasks), tâches en cours (on going tasks) et tâches achevées (completed tasks) Les tâches qui sont les travaux à effectuer peuvent être conceptualisées comme des "instance d'activité". Les éléments dans le dossier "nouvelles tâches" sont des ouvrages qui sont dans l'état validé prêt à être exécutés par ce rôle En ouvrant le dossier, l'utilisateur peut demander et initier de nouvelles tâches Cette action initiation, fait passer l'état au mode actif, déplace l'icone de la tâche dans le dossier "tâches en cours" et ouvre le premier formulaire5 associé avec la tâche sur l'écran utilisateur. En ouvrant le dossier "tâches en cours", l'utilisateur peut visualiser l'avancement des tâches L'état, la priorité et l'urgence de chaque tâche et également visualisable De10 nombreuses tâches peuvent être actives avec aucun, un ou plusieurs de leurs formulaires de tâches ouverts simultanément sur la même station. Le dossier "tâches achevées" est le moyen pour l'utilisateur d'interroger le système sur l'état courant, l'historique passé ou les défauts de comportement des ouvrages. Le dossier "notes reçues" contient les messages expédiés par les autres utilisateurs du système de traitement20 transactionnel ou par les modules du système et qui ont été reçus Ceci permet des communications informels et flexibles entre les utilisateurs du système. En général, les informations spécifiques de tâches, les outils et les accès externes sont représentés comme des éléments, icônes et menus sur le formulaire de tâches. Cette interface ( 20) comporte un logiciel de présentation et de constitution des dossiers Ce logiciel est en relation par30 une liaison du terminal avec une souris qui permet de provoquer des événements extérieurs La souris a été choisie du type à deux boutons, le bouton de gauche étant affecté par convention aux sélections de zones ou d'objets graphiques à l'écran et aux appels d'éditeur, le bouton de droite étant35 affecté à des opérations spécifiques telles que la manipulation de certains menus Les événements extérieurs provenant de la souris sont traités par une interface souris préprogrammée incorporée au logiciel et susceptible en outre de reconnaître l'appui (down), le relâchement (up) d'un bouton, la traîne (drague) de la souris et des événements5 logiques tels que l'entrée du pointeur souris dans la fenêtre A l'écran la position du pointeur de la souris est repérée par une petite flèche dirigée vers le haut. Bien entendu, sans sortir du cadre de l'invention, la souris pourrait être remplacée par tout autre dispositif de pointage tel qu'un crayon optique ou une table graphique Enfin en complément de l'interface souris, on prévoit également un interface pour un clavier programmé autant pour les touches de caractères que celles de contrôles et celles de pointeurs,15 de façon à pouvoir entrer dans le mode édition les informations qui correspondent aux différentes zones des différentes fenêtres. Le logiciel de présentation permet l'affichage des fenêtres et l'exécution des actions sélectionnées sur le menu de la fenêtre à la suite du déclenchement d'un événement extérieur, tel que par exemple, l'actionnement d'un bouton souris La première fenêtre affichée après la-connexion avec le serveur est la fenêtre ( 40, fig 4).25 Cette fenêtre ( 40, fig 4)) comporte une barre de titre ( 41) en dessous de laquelle se trouve une barre menu ( 42) permettant de sélectionner un des objets se trouvant au menu à savoir, dossier ( 420), ouvrage ( 421), note ( 422) et aide ( 423) Chacun des objets sélectionnés faisant apparaître la possibilité d'un choix d'attribut, par exemple pour l'objet dossier ( 420), le choix entre l'attribut nouveau ( 4200), en cours ( 4201), réalisé ( 4202), ou note reçue ( 4203). Ce choix permet en le validant de changer de fenêtre et de faire apparaître une des autres fenêtres "dossier en cours" ( 50 fig 5) "dossier exécuté" ( 60 fig 6) ou "note reçue" ( 70 fig 7). Pour l'objet ouvrage ( 421), le choix consiste entre les fonctions "accepte" ( 4210) pour accepter une tâche, action qui est implicite si la tâche est démarrée, "traitement" ( 4211) pour démarrer ou continuer l'exécution d'une tâche, "feuille de propriété" ( 4212) pour voir la fiche qui montre plus d'informations au sujet de la tâche de la liste, la fonction "commentaire" ( 4213) pour voir les commentaires concernant la tâche courante et les commentaires édités à l'étape précédente et pour éditer éventuellement de nouveaux commentaires La fonction "envoi" ( 4214) pour envoyer toutes les données d'activité à un acteur, un rôle ou une activité.15 Cette fonction pouvant être aussi utilisée pour rejeter une tâche La fonction "orientation au suivant" ( 4215) pour préciser que la tâche est achevée et peut être envoyée à la prochaine étape de la procédure La fonction "création" ( 4216) pour créer un nouvel ouvrage. Dans le menu "ouvrage" on constatera que la fonction "orientation au suivant" apparait en caractère moins gras que les autres fonctions, car cette fonction ne peut être sélectionnée lors de l'affichage de la fenêtre "nouveau25 dossier" indiquée par la barre de titre ( 41). Le menu "note" ( 422) comporte la fonction "lecture" ( 4220) pour visualiser une note reçue ou envoyée La fonction "expédition" ( 4221) pour éditer et envoyer une note La fonction "annule" ( 4222) pour effacer de la liste une note reçue ou envoyée, la fonction "liste des notes envoyées" ( 4223) pour être capable de visualiser la liste des notes qui ont été envoyées. Le menu "aide" ( 423), comporte les fonctions "index", "clavier", "commandes", "procédures", "utiliser l'aide", "à propos de", qui sont des fonctions classique et ne seront pas décrites en détail. Dans le menu "note" ( 422) on constate également que la fonction "lecture" ( 4220) et "annuler" ( 4221) ne sont pas en caractère gras comme les autres (envoi, liste des notes), ce qui indique que ces fonctions ( 4220,4221) ne peuvent être sélectionnées lors de l'affichage de la fenêtre ( 40) "nouveau dossier" Cette fenêtre "nouveau dossier" se complète d'un10 cadre ( 43) dans lequel une colonne "ouvrage" ( 430) permet d'indiquer l'identifieur de l'ouvrage, une colonne ( 431) "activité" qui permet d'indiquer le nom de l'activité, une colonne ( 432) qui permet d'indiquer à quelle date l'activité doit être terminée et une colonne commentaire dans lequel un15 signe apparaît pour indiquer que des commentaires sont attachés à l'ouvrage ou non Enfin une étiquette ( 434) apparait en face de l'ouvrage ou de l'activité créée pour indiquer son urgence ou non. Lorsque l'on est dans la fenêtre et dans le menu "nouveau dossier", la ligne ( 44) de bouton de sélection de l'attribut des dossiers fait apparaître le bouton de sélection nouveau ( 4220) avec un fond différent des -boutons de sélection "en cours" ( 4201) "exécuté" ( 4202) ou "notes reçues" ( 4203). La fenêtre comporte également des boutons de commandes ( 45) qui permettent de lancer directement les fonctions "accepte" ( 4210), "traitement" ( 4211), "commentaire" ( 4213), "feuille de propriété" ( 4212) du menu "ouvrage" ( 421). La fenêtre "dossier en cours" (fig 5) comporte les mêmes menus et les mêmes éléments sauf pour la barre de bouton de commande ( 55) qui fait apparaître les fonctions "orientation vers le suivant", "traitement", "feuille de propriété" et35 "commentaires" A la différence également de la fenêtre de la figure 4, cette fenêtre ne permet pas la sélection de la fonction "accepte" ( 4210). La fenêtre "dossier exécuté" représentée à la figure 6 comporte outre la barre titre et la barre menu dans le cadre5 ( 63), en plus des colonnes "ouvrage" et "activité", une colonne ( 66) permettant d'afficher la date d'achèvement de l'ouvrage ou de l'activité et en bas du cadre, une ligne de bouton de commande ( 65) constituée par les commandes "feuille de propriété", "commentaires" et "effacement", ces fonctions10 sont d'ailleurs les seules qui puissent être sélectionnées dans le menu "ouvrage". Enfin la figure 7 représente la fenêtre des "notes reçues" qui comporte la barre titre, la barre de menu et un cadre15 ( 73) qui permet dans une colonne ( 731) d'afficher "l'expéditeur", dans une colonne ( 732) de mettre la date de réception de la note et dans une colonne ( 733) d'afficher le sujet de la note. Cette fenêtre comporte également une barre ( 75) constituée d'un seul bouton de commande "lecture Note" permettant la lecture de la note. La sélection de la fonction "feuille de propriété " ( 4212) dans une fenêtre "dossier nouveau" (fig 4); dossier en cours (fig 5); "dossier exécuté" (fig 6) fait apparaitre la fenêtre "propriété de l'ouvrage" représentée à la figure 8. * Cette fenêtre permet d'appeler une fonction d'édition et comporte un premier champ ( 81) permettant d'inscrire le nom30 de l'ouvrage et une étiquette ( 82) faisant apparaître le terme "urgent" si cet ouvrage a été désigné comme urgent. Un deuxième champ ( 83) permet d'indiquer la date à laquelle l'ouvrage doit être terminé, un troisième champ ( 84) permet35 d'indiquer le nom de la procédure auquel l'ouvrage est rattaché, un cinquième champ ( 85) permet d'indiquer le nom du responsable pour l'ouvrage et une fenêtre déroutante ( 86) permet d'afficher la liste des documents attachée à l'ouvrage Une boite ( 87) permet d'afficher 4 champs concernant l'activité courante, un premier ( 870) indiquant le5 nom de l'activité, un second ( 871) indiquant l'état de la tâche de l'activité courante, un troisième ( 872) indiquant le responsable de la tâche et un quatrième ( 873) donnant la date à laquelle la tâche doit être exécutée. Deux flèches non représentées dans la barre des boutons de commande ( 880 à 883) l'une avec l'étiquette précédente, l'autre avec l'étiquette suivante, permettent de voir respectivement la feuille de propriété d'ouvrage précédent et la feuille de propriété d'ouvrage suivant.15 Le bouton de commande "accepte" ( 880) n'est utilisable que quand l'état de la tâche est nouveau Un deuxième bouton de commande "traitement" ( 881) n'est utilisable que quand l'état de la tâche est accepté, suspendu ou nouveau Un troisième20 bouton de commande "commentaires" ( 881) ouvre la fenêtre commentaire qui est décrite en relation avec la figure 9 Un quatrième bouton de commande "fermeture" ( 882) ferme la fenêtre de "propriété d'ouvrage" (? 0) boite et un cinquième bouton de commande "Aide" ( 883) permet d'obtenir une25 assistance. La fenêtre de "commentaire" ( 90) comporte une barre titre ( 900), une barre menu ( 91) permettant d'appeler la fonction d'édition ou d'impression, un champ "ouvrage" ( 92) dans lequel le nom de l'ouvrage peut être reporté dans la boite d'édition ( 920) et deux boites de texte ( 93,94) étiquetées "commentaires précédents" et "nouveaux commentaires", Un bouton de commande "OK" ( 921) permet de fermer la boite en effectuant l'enregistrement du nouveau commentaire s'il y en35 a eu. Le menu ( 91) comporte un menu "d'impression" permettant de lancer les fonctions suivantes: "commentaires précédents", "nouveaux commentaires", "sélection de tous", et un menu d'édition permettant de lancer les fonctions: "couper", "copier", "coller", "effacer". La figure 10 représente la fenêtre qui est affichée sur l'écran de la station de l'utilisateur lorsque celui-ci sélectionne la fonction "émission d'ouvrage" Cette fenêtre10 comporte une barre de titre "émission d'ouvrage" ( 100) et un champ ( 101) permettant d'indiquer le nom de l'ouvrage, une partie ( 102) concernant les récepteurs, une partie ( 106) concernant la réémission de l'ouvrage, une boite de texte étiquetée "nouveaux commentaires" ( 105) qui comprendra tous les commentaires de l'émetteur et dans laquelle l'émetteur sera capable d'ajouter des nouveaux commentaires destinés au récepteur, un bouton de contrôle ( 107) assurant la fonction "d'émission retardée jusqu'au" suivi d'une boite de texte ( 108) dans laquelle l'utilisateur peut entrer la date à laquelle il souhaite que la tâche soit envoyée, les boutons de commande "émission" ( 1090) dont la fonction dépend ou non du fait qu'il y a plusieurs récepteurs, s'il y a un seul récepteur avec un clic sur le bouton de commande, l'émission est achevée, s'il y a plusieurs récepteurs, un clic sur le25 bouton "envoi" ouvre la boite de dialogue "mode d'émission" décrite ci-après en liaison avec la figure 11, un bouton de commande "annule" ( 1091) pour fermer la boite "émission d'ouvrage" sans effet. La partie concernant le récepteur est composée de boites combinéesétiquetées "role" ( 1020), "nom" ( 1021), "activité" ( 1022) dans laquelle l'utilisateur peut choisir un élément ou écrire ce qu'il souhaite La valeur défaut n'est pas définie, et seulement un des trois paramètres du récepteur doit être rempli Si l'utilisateur ne remplit pas au moins un des paramètres, la commande "envoi" ne sera pas valable. Une boite de liste dont chaque ligne est complétée avec les valeurs des boites de combinaison, un bouton de commande "suivant" ( 1024) pour aller à la ligne suivante, un bouton de commande "efface" ( 1025) pour effacer une ligne de la liste, un bouton de commande "insère" ( 1026) pour insérer une ligne libre entre la ligne sélectionnée et la ligne du dessous. La fenêtre 11 du mode d'émission permet par sa boite de dialogue comportant deux boutons d'options, un premier ( 111) de distribution séquentielle, d'envoyer l'ouvrage à chaque personne de la liste dans un mode séquentiel et dans l'ordre de circulation correspondant avec un ordre de circulation correspondant à l'ordre de la liste, un deuxième bouton ( 112)15 de distribution simultané dans lequel l'ouvrage sera envoyé à chaque personne de la liste dans un mode parallèle. Cette boite de dialogue comporte également les boutons de commande "OK" ( 113) pour confirmer le choix et achever20 l'émission, un bouton de commande "annule" ( 114) pour fermer la boite et un bouton de commande ( 115) pour demander une assistance. La fonction "création d'ouvrage" est représentée à la figure 12 par une fenêtre ( 12) comportant une barre de titre "création d'ouvrage" ( 120) et un champ ( 121) permettant de rentrer dans un pavé d'édition de texte le nom de l'ouvrage, un deuxième champ "référence de procédure" permettant de rentrer dans un pavé ( 122) le nom de la procédure et dans un30 pavé ( 123) une étiquette, un troisième champ "responsable de l'ouvrage" qui permet de rentrer dans un quatrième pavé ( 124) le nom du responsable, un cinquième champ "date à laquelle l'ouvrage doit être exécuté" comportant un cinquième pavé ( 125) permettant de rentrer la date, un sixième champ ( 126) permettant d'afficher la liste des documents existants et les boutons de commande "'OK" de validation ( 127), d'annulation ( 128), et d'assistance ( 129). La fonction "émission de notes" est représentée par la figure 13 et fait apparaître une fenêtre ( 13) comportant une barre de titre ( 130), un premier champ ( 131) permettant de faire apparaître le récepteur, un deuxième champ ( 132) permettant de faire apparaître la date d'émission, un troisième champ ( 133) permettant de faire apparaître le sujet de la note, un ensemble de deux boutons d'option permettant de choisir entre la distribution séquentielle par un bouton ( 134) et la distribution simultanée par un bouton ( 135) Une boite ( 136) permet de sélectionner les noms des notes à envoyer parmi une liste figurant dans cette boite Une flèche ( 137) "précédente" et une autre flèche ( 138) "suivante" permet de sélectionner dans la liste la note précédente ou la note suivante Enfin les boutons de commande "récepteur" ( 1390) permet d'appeler la fonction permettant l'ouverture de la liste des récepteurs qui est représentée à la figure 14, un bouton ( 1391) permet d'effacer une note, un bouton ( 1392)20 permet de fermer la fenêtre "émission de notes", et un bouton ( 1393) permet de faire appel à une aide. La boite ( 14) "liste des récepteurs" comporte un champ ( 141) indiquant la date d'émission et une boite de texte comportant25 la liste des récepteurs qui est composée de trois colonnes, une première ( 142) indiquant le rôle, une deuxième ( 143) indiquant le nom et une troisième ( 144) l'activité Un bouton de commande "fermeture" ( 145) permet de fermer la fenêtre 14. La fonction "notes reçues" est attachée à la sélection de la fonction "note lecture" ( 4220) et permet l'affichage d'une fenêtre identique à celle de l'émission à part que le titre est "réception de notes", l'émetteur remplace le récepteur, les deux boutons d'option pour l'émission sont supprimés et35 la possibilité de documenter une liste de récepteurs par un bouton de commande a été également supprimé puisque cette fonction n'est pas nécessaire dans la réception de notes Les autres éléments à savoir la boite de texte avec barre de défilement horizontale et verticale, les flèches "précédent" "suivant", la commande "effacement", "fermeture" et "assistance" sont conservés. Enfin la fonction "liste des notes envoyées" sélectionnée fait apparaître une fenêtre ( 15) représentée à la figure 15 dans laquelle une boite de listage ( 151) avec les colonnes10 suivantes, "date d'émission", "sujet", "récepteur" "émis" permet de faire apparaître dans chaque ligne la date d'émission, le sujet, le récepteur vers lequel la note à été émise, et le fait de savoir si la note a été émise séquentiellement ou simultanément Cette fenêtre comporte également les boutons de commande d'affichage de la liste des récepteurs ( 152), de lecture de la note ( 153), d'effacement ( 154), de fermeture ( 155) et d'assistance ( 156). Les fonctions et les présentations décrites ci-dessus réalisées par le logiciel de présentation et de constitution de dossier qui fait partie de l'interface utilisateur facilitent grandement l'utilisation du système de traitement transactionnel et améliorant son ergonomie. ANNEXE 1 Activité du corps structure lProcedureld Activityldl AO = Activity Pre Script ZO = Activity Post Script A 1 = Pres Script Z 1 = Post Script AN = Pre Script ZN = Post Script PR = Activity Presentation ADV = 'File name' ANNEXE 2 While(l) ( Read Message switch(Message type) case Login case Create Job case Start Task case End Task Retum Code = W Fsv Sched Connect O; Return Code = W Fsv Sched Create Job O; Retum Code = W Fsv Sched Start Task O; Retum Code = W Fsv Sched End Task O; 1 W Fsv Sched Create'ob( t WF Task Coord long char *Task Coord *Init Usrld *Priority IN: Task Coord pid OUT: Task Coordjid OUT: Task Coord aid OUT: Task Coord tid IN: Priority 2 W Fsv Sched Startlob( t WF Task Coord *Task Coord IN: Task Coord pid IN: Task Coordjid 2.W Fsv Sched End Task( t WF Task Coord t W Fj DV *Task Coord *JDV Task Coord pid Task Coord jid Task Coord aid Task Coord tid JDV IN: IN: IN: IN: IN: ANNEXE 3 1.W Fsv Disp Assign( t WF Task Coord *Task Coord IN: Task Coord pid 2. W Fsv Disp Rand Assign( t WF Task Coord *Task Coord IN: Task Coord pid IN: Task Coord jid IN: Task Coord aid IN: Task Coord tid 3 W Fsv Disp Least Load Assign( t WF Task Coord *Task Coord IN: Task Coord pid IN: Task Coord jid IN: Task Coord aid IN: Task Coord tid 4.W Fsv Disp Start Task( t WF Task Coord t W Fj DV *Task Coord *JDV Task Coord pid Task Coord jid Task Coord aid Task Coord tid JDV IN: IN: IN: IN/OUT: OUT: ANNEXE 3 (suite) 5.W Fsv Disp Give Task To( t WF Task Coord long long t W Fj DV Task Coord Sender User Id Receiver User Id JDV IN: Task Coord pid IN: Task Coordjid IN: Task Coord aid IN: Task Coord tid IN: Sender Userld IN: Receiver Userld IN: JDV 6.W Fsv Disp Send Copy Ofrask To( t WF Task Coord long long t W Fj DV Task Coord Sender Userld Receiver Userld JDV Task Coord pid Task Coord jid Task Coord aid Task Coord tid Sender Userld Receiver Userld JDV IN: IN: IN: IN: IN: IN: IN: ANNEXE 4 disp distribution Did Pid Aid Roleld Userld First Number( 5) Number( 4) Number( 5) Number( 5) Number( 5) char(l) Next Userld Number( 5) //Distribution ld //Procedure Id //Activity Id Il A Userld that must fill the role Can be letf // NULL or filled if known at definition time. // True if Userld is at the beginning of the Il circulation list. //Next User on the list disp circulation Did Pid Jobld Aid Roleld Userld First Number( 5) Number( 4) Number( 6) Number( 5) Number( 5) Number( 5) char(l) Next Userld Number( 5) //Distribution ld //Procedure Id //Jobld //Activity Id I/ A Userld that must fill the role Can be letf Il NULL or filled if known at definition time. //True if Userld is at the beginning of the //circulation list. //Next User on the list ANNEXE 5 jdvjdv table description Name Null? Type JID AID TID FLDID STATUS FLDNAME READ W Rrr E PASSMODE FLDTYPE LENGTH FLDDATE FLDCHAR FLDINT EDATYPE EDAINDEX ACCESSKEY NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL- NUMBER ( 6) NUMBER ( 8) NUMBER ( 7) NUMBER ( 10) CHAR ( 10) CHAR ( 59) CHAR ( 1) CHAR( 1) CHAR ( 5) CHAR ( 15) NUMBER ( 5) DATE CHAR ( 25) NUMBER CHAR ( 255) NUMBER ( 8) CHAR ( 255) ANNEXE 6 jdv_ pddef table Name PID AID FLDID FLDNAME ARG READ WRITE DEPENDANCE PASSMODE FLDTYPE MAXLENGTH EDATYPE EDAINDEX NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NUMBER ( 5) NUMBER ( 8) NUMBER ( 10) CHAR ( 59) CHAR ( 1) CHAR ( 1) CHAR( 1) NUMBER( 10) CHAR ( 5) CHAR ( 15) NUMBER ( 5) CHAR ( 10) NUMBER ( 8) Null? Type ANNEXE 6 (suite) Where: Pid Procedure Id Aid Activity Id If O the field is global to the procedure (and does not have to be redefined for each activity) If it has a positive value it defines the field locally for this activity. The local definition preempts the global one. Fidld JDV Field Id Fid Name String identifier of the field (For conviviality). Arg "A" a value is mandatory to initiate the job "-" if not. Read "R" if the field is in read access mode within , "-" if not. Write "W" if the field is in write access mode within , "-" if not. Dependance Field Id of another Field that will determine the value of the current field. (For example: Customer Id depends on Customer Name) Passmode "Value" if the field is passed by value, "Ref' if passed by reference. Fld Type (See discussion below). Fld Type must be known on the Workstation by the Activity management Module which executes the activity scripts (See flow Work Work Station Specification) Possible values for Fld Type can be: Max Length Eda Type Edaindex Date, Char, Int: Date, string or integer value. Form: the JDV field can be the frame of a form. I Ws Ref Cabinet: A string containg a server name and the cabinet name. I Ws Ref Folder: (Folder Location For example: /gnomo/GMF/Clients) I Ws Store Doc: (Storage index reference) Number of digits authorized for display (used for form fields only). Accessor type Can be "EDAORA","EDA IWS" for Versionl Actually points to a table. Tuple identifier in the Eda Type table The tuple in the Eda Type table is the data accessor (see below) which references the actual piece of information corresponding to the JDV Field. ANNEXE 7 edaora table description Nainme Nuil? Type EDAINDEX REPOSITORY LOGIN SECTION SELECTOR NOT NULL NUMBER ( 8) CHAR ( 30) CHAR ( 30) CHAR ( 30) CHAR ( 30) ANNEXE 7 (suite) Edaindex Tuple identifier refî Procedure Data def Repository name of the server' Login the login under whi Data base. Section and Selector correspond respecti column. Thus data base accessor consists of: Repository, Login Section Selector Dependance Access Key erenced by a field definition in the inition (jdvpddef) table. which is host of the User Data Base. ch the EDAORA process will connect to the foreign vely to what is known in the data base as table and Eventually a query can be made up of these elements: CONNECT Repository/Login SELECT Selector FROM Section WHERE Dependance = Access Key ANNEXE 8 SQL> desc sched precedence; Namne Null? Type INDEX ID PREV AID NEXT AID OUT BRANCH N BRANCH PID TASK BACK NEXT TYPE SQL> desc sched statusp; Name PID JID QUEUE INDEX ID SQL> desc sched statep; Name NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL Null? NOT NULL NOT NULL NOT NULL NOT NULL Null? NUMBER ( 8) NUMBER ( 8) NUMBER ( 8) NUMBER ( 3) NUMBER ( 3) NUMBER ( 5) NUMBER ( 7) CHAR ( 10) Type NUMBER ( 5) NUMBER ( 6) NUMBER ( 3) NUMBER ( 8) Type PID JID AID STATE TOKENS CURRENT TOKENS PAST SQL> desc scheddynprec; Name PID JID INDEX ID PEV Ar D NEXT AID OUT BRANCH IN BRANCH NEXTTYPE TASK BACK NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL Null? NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NUMBER ( 5) NUMBER ( 6) NUMBER ( 8) CHAR ( 10) NUMBER ( 3) NUMBER( 3) Type NUMBER ( 5) NUMBER ( 6) NU.MBIER '8) NUMBER ( 7) NUMBER ( 7) NUMBER ( 3) NUMBER ( 3) CHAR ( 10) NUMBER ( 7) ANNEXE 8 (suite) SQL> desc scheddynstatusp; PID JID QUEUE INDEX ID NOT NULL NOT NULL *NOT NULL NOT NULL Type NUMBER ( 5) NUMBER ( 6) NUMBER ( 3) NUMBER ( 8) SQL> desc scheddynstatep; Type PID JID AID STATE TOKENS CURRENT TOKENS PAST SQL> desc disp circulation; Name PID AID PREV USRID NEXT USRID OUT BRANCH IN BRANCH NEXT TYPE INDEX ID TASK BACK NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL Null? NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NUMBER ( 5) NUMBER ( 6) NUMBER ( 8) CHAR ( 10) NUMBER ( 3) NUMBER( 3) Type NUMBER ( 5) NUMBER ( 8) NUMBER ( 7) NUMBER ( 7) NUMBER ( 3) NUMBER ( 3) CHAR ( 10) NUMBER ( 8) NUMBER ( 7) SQL> desc dispdyn circ; Name PID JID PREV USRID NEXT USRID OUT_BRANCH INBRANCH NEXT TYPE TASK BACK INDEX ID NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NUMBER ( 5) NUMBER ( 6) NUMBER ( 7) NUMBER ( 7) NUMBER ( 3) NUMBER ( 3) CHAR ( 10) NUMBER ( 7) NUMBER ( 8) Name Null? Name Null? Null? Type ANNEXE 8 (suite) SQL> desc dispdynstatsc; Name Null? NOT NULL NOT NULL NOT NULL NOT NULL Type NUMBER ( 5) NUMBER ( 6) NUMBER ( 3) NUMBER ( 8) SQL> deso dispdynstatec Nuil? Type PID JID AID USRID STATE TOKENSCURRENT TOKENS PAST o NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NUMBER ( 5) NUMBER ( 6) NUMBER ( 8) NUMBER ( 8) CHAR ( 10) NUMBER ( 3) NUMBER( 3) PID JID QUEUE INDEX ID Name REVENDICATIONS: 1 Système de traitement transactionnel entre un serveur ( 3) informatique et une pluralité de stations de travail ( 2) entre lesquelles les ouvrages correspondants à des activités constituant des procédures sont exécutés, le système comportant du côté serveur un module ordonnanceur des ouvrages qui s'appuyent sur la définition des procédures (à savoir les précédences entre les activités d'une procédure)10 mémorisées dans la base de données relationnelle pour ordonnancer le progrès des ouvrages en trouvant la ou les activités suivantes et en créant la ou les tâches correspondantes étant donnée la fin d'une activité, un module répartiteur ( 31) pour effectuer la répartition des tâches qui15 s'appuyent sur la relation entre rôle et acteur mémorisée dans la base de données relationnelle pour attribuer une tâche à un acteur choisi éventuellement selon la charge de travail, un module signaleur ( 34) pour conserver une trace des événements rythmés et recevant des informations de20 l'ordonnanceur ( 30) et d'un module coordinateur ( 31), une boite de messages ( 35) échangeant des signaux d'une part avec les modules répartiteur ( 33) et signaleur ( 34), et d'autre part avec un module de communication ( 36) avec les stations de travail et un module de gestion des données du flux de25 travail ( 370), le système comportant du côté station de travail une couche de communication ( 27), une couche de gestion des messages ( 26) correspondant au flux de travail, une couche ( 24) comportant différents jeux d'interfaces de programmation de l'application, une couche de services de30 gestion ( 25) et une couche d'interface utilisateur ( 20,21). 2 Système selon la revendication 1 caractérisé en ce que les différents modules d'une couche de la station de travail ( 2) n'ont pas d'interaction entre eux.35 3 Système selon la revendication 1 caractérisé en ce que le module de gestion des données ( 370) gère des tables statiques et dynamiques mémorisées dans la base de données relationnelle ( 372). 4 Système selon la revendication 3 caractérisé en ce que les tables statiques sont constituées des données de définition des procédure, de définition des activités, de l'organisation des acteurs et des rôles et de répartition des activités selon une table de distribution.10 Système selon la revendication 3 caractérisé en ce que les tables dynamiques sont constituées de données évolutives représentant l'avancement des ouvrages et des taches. 6 Système de traitement transactionnel selon la revendication 3 caractérisé en ce que les tables dynamiques sont constituées d'une table de circulation, d'une table de vecteur de données d'ouvrage JDV-JDV, d'une table de vecteur de données d'activité ADV-ADV et des tables SCHED-STATEP,20 SCHED-STATUSP, SCHED- JOBS, SCHED-TASKP. 7 Système de traitement transactionnel selon la revendication 4 caractérisé en ce que les tables statiques sont constituées d'une table de description de procédure25 SCHEDPROCEDURE, de description de données de procédure JDVPDDEF, d'une table de description des références des données stockées dans une base de données externe (EDA-ORA), d'une table de description des activités SCHED-ACTIVITE, d'une table de définition des précédences SCHED-PRECEDENCE,30 et des tables de définition de l'organisation du système ORGA-ACTOR, ORGA-ROLE, ORGA-R- OFF-ACT. 8 Système de traitement transactionnel selon la revendication 4 caractérisé en ce que une activité est constituée d'un identifieur de l'activité et de la procédure à laquelle l'activité est rattachée et d'une liste d'actions comportant chacune une commande d'initialisation et une commande de validation. 9 Système de traitement transactionnel selon la revendication 8 caractérisé en ce que les actions sont constituées du type, d'un nom, des arguments constitués par les données du vecteur JDV ou ADV. Système de traitement transactionnel selon la revendication 1 caractérisé en ce que la couche de service de gestion comporte: un service de gestion de création d'ouvrage, un service de gestion d'administration, un service de gestion de coordination, un service de gestion de l'exécution de l'activité. 11 Système de traitement transactionnel selon la revendication 8 caractérisé en ce que une activité comporte également un préfixe (PR) destiné à appeler un logiciel de présentation et d'interaction fournissant l'interface de l'activité. 12 Système de traitement transactionnel selon la revendication 1 caractérisé en ce que le module administrateur réalise les fonctions de modelage, de30 création, test et accord des différentes entités du système. 13 Système de traitement transactionnel selon la revendication 1 ou 12 caractérisé en ce que le module de gestion des données a pour fonction d'attacher les données35 appropriées aux ouvrages spécifiques en créant le vecteur JDV, de gérer l'intégrité des données, de retrouver et accéder les données dans les bases de données de l'utilisateur. 14 Système de traitement transactionnel selon la revendication 1 ou 13 caractérisé en ce que le module de gestion d'exécution d'activité comporte les fonctions de lecture du fichier de description d'activité, de lecture et d'écriture des données d'ouvrage utilisé dans l'activité, de lecture et d'écriture des données des tâches correspondantes utilisées dans l'activité et de commande des droits d'accès sur les données d'ouvrage, de lancement du formulaire de présentation appropriée à l'activité et de l'exécution des actions correspondantes à l'activité d'une façon guidée.20 Système de traitement transactionnel selon la revendication 1 ou 14 caractérisé en ce que le module de gestion de tâches exécute les fonctions suivantes: réception d'une tâche offerte, acceptation d'une tâche offerte, recherche des données correspondantes du vecteur d'ouvrage sur le serveur, achèvement d'une tâche, restitution du vecteur d'ouvrage mis à jour au serveur, réorientation d'une tâche vers un autre acteur ou une autre activité, appel de l'activité d'exécution d'une tâche correspondante par l'interface utilisateur, traitement et maintient local des données correspondant aux tâches et de leur historique. 16 Système de traitement transactionnel selon la revendication 1 ou 15 caractérisé en ce que le module administrateur et coordinateur comporte les fonctions d'édition de concept et de données et la commande des ouvrages. 17 Système de traitement transactionnel selon la revendication 1 ou 16 caractérisé en ce que le module répartiteur réalise trois fonctions principales: affecter à un utilisateur les tâches qui viennent d'être créer par l'ordonnanceur, affecter un nouvel utilisateur à une tâche qui vient d'être rejetée, effectuer la distribution et la circulation des activités parmi les utilisateurs. 18 Système de traitement transactionnel selon la revendication 1 ou 17 caractérisé en ce que le module signaleur conserve une trace des événements rythmés et comporte une fonction de rappel quand un temps est expiré et une fonction de retardement pour lancer un travail avec un retard. 19 Système de traitement transactionnel selon la revendication 1 ou 19 caractérisé en ce que la boite de message est constituée de deux tables de données, une première qui contient la description des messages et une seconde qui mémorise les destinataires des messages.