• Aucun résultat trouvé

Chapitre II - Etat de l'art

5. Composition d’éléments logiciels existants

5.4. Le contrôle explicite

5.4.1. Caractérisation du contrôle

Comme nous l’avons présenté dans la section 5.2, le contrôle explicite est chargé de piloter et d'orchestrer les applications participantes en imposant un objectif global. Pour cela, il y a deux aspects importants qui sont à la charge du contrôle :

• Exprimer, d’une manière explicite, l’objectif global sous forme de la coordination entre des participants ;

• Piloter les participants en imposant l’objectif global.

Il y a plusieurs formalismes possibles pour exprimer la logique de coordination tels que les grammaires [FHS92], les réseaux de Pétri [VM94], etc. Cependant, ils ne sont ni intuitifs, ni simple à visualiser.

Récemment, il est apparu l’idée d’utiliser des workflows pour réaliser le contrôle explicite [Mann99, LR97, VK02]. L’objectif de cette section est d’étudier les workflows et également les systèmes de gestion de workflow (WfMS – Workflow Management System) afin de savoir pourquoi et comment ils peuvent être un candidat approprié et performant pour réaliser le contrôle explicite.

Nous proposons de commencer par un historique sur les workflows.

5.4.1.1. Un peu d’histoire

Au début des années 80, il y a eu une révolution concernant le travail coopératif. Il s’agissait d’utiliser des technologies informatiques afin de gérer la coopération entre les membres d’un groupe qui ne travaillent pas forcement en même temps et au même endroit [CVK99].

Cette révolution a fait naître la notion de travail coopératif géré par l’ordinateur (CSCW –

Computer Supported Cooperative Work, en anglais) et la notion de groupware désignant

des systèmes informatiques construits pour assurer les objectifs du CSCW.

La coopération peut être décomposée en trois axes : la communication, la collaboration et la coordination. La ccoommmmuunniiccaattiioon concerne l’échange des informations entre les n

membres d’un groupe. La ccoollllaabboorraattiioonn est considérée comme étant le partage d’un

espace où les membres peuvent stocker, traiter et partager un ou plusieurs documents communs. Par contre, la ccoooorrddiinnaattiioon consiste à ajuster la contribution des membres au n

travail commun. Pour cela, la coordination décompose ce dernier en un ensemble de tâches. Elle établit ensuite des règles d’assignation de tâches aux membres ainsi que l’enchaînement de ces tâches afin d’assurer le fonctionnement correct du groupe.

Les systèmes de groupware ont été crées pour répondre à ces trois axes de coopération. Les groupwares de communication explorent des capacités de communication personnelle et collective. Des exemples de cette catégorie sont les courriers électroniques, la vidéo conférences, etc. Par contre, les systèmes de gestion de configuration ou bien les éditeurs coopératifs sont des exemples de groupwares de collaboration.

Les systèmes de gestion de workflow – WfMSs – ont été crées afin de gérer la coordination. Pour ce faire, ils permettent de capturer, de modéliser et d’exécuter un

workflow qui représente la coordination entre les membres d’un groupe. A un moment

donné, un membre peut recevoir des indications (guidelines, en anglais), et même des données concernant la tâche à faire.

coordination collaboration communication em ai l e-gr ou pe vi de o co nf ér en ce workflow Editeur coopératif Gestion de configuration coordination collaboration communication em ai l e-gr ou pe vi de o co nf ér en ce workflow Editeur coopératif Gestion de configuration

Figure 24. Des groupwares de trois axes de coopération

Initialement, les WfMSs ne considèrent que des humains pour réaliser des tâches. Ils jouent donc plutôt le rôle de planification ou bien de gestion de projet. Aujourd’hui, il est possible d’intégrer des applications au sein des WfMSs afin d’automatiser certaines tâches. Ils dépassent donc le domaine du CSCW et sont partiellement ou totalement automatisés.

5.4.1.2. Systèmes de gestion de workflow

Un pprrooccééddé désigne l’ensemble des activités faisant intervenir des personnes ou bien des é

applications dans l’objectif de réaliser un but. Un modèle de procédé contient donc la description des activités, des produits, des prescriptions et des contraintes. Un wwoorrkkfflloow w

est l’automatisation d’un procédé dans lequel des produits et des activités sont enchaînées entre des participants – ceux qui sont chargés de réaliser des activités – en suivant des prescriptions et des contraintes définies dans le modèle de ce procédé [WfMC96].

Un WfMS est un système qui permet de définir, de créer et de gérer l’exécution des

workflows en utilisant des moteurs qui sont capables d’interpréter le modèle de procédé et

d’interagir avec les participants [WfMC96].

Bien que différentes solutions aient été proposées par différents WfMSs, le processus de gestion d’un workflow peut se résumer en trois grandes étapes :

• Modélisation du procédé ; • Implémentation du workflow ; • Exécution du workflow.

Modélisation du procédé

L’objectif de cette étape est de construire un modèle de procédé. Ce dernier permet de représenter une planification pour réaliser un but.

Un modèle de procédé est souvent défini en se basant sur trois concepts fondamentaux : activité, produit et ressource. Avec ces trois concepts, on peut distinguer trois approches principales de modélisation des procédés : (1) orientée activité, (2) orientée produit et (3)

orientée ressource. Parmi ces trois approches, l’approche orientée activité fournit une vision globale et claire des procédés. Elle est donc la plus souvent utilisée.

Dans l’approche orientée activité, le concept d’activité est le concept central qui représente une étape (une unité de travail, un pas, etc.) contribuant à réaliser un but. Un procédé est donc décomposé en activités, interconnectées séquentiellement ou parallèlement, dont une initiale et une (ou plusieurs) finale. Un exemple de modèle de procédé est illustré dans la Figure 25 avec une activité initiale (activité 1) et deux finales (activité 5 et 6) qui représentent deux possibilités de terminer le procédé.

activité 5 activité 6 activité 4 activité 2 activité 3 activité 1

Figure 25. Un modèle de procédé orienté activité

Les interconnexions entre les activités permettent de spécifier le flot de contrôle et/ou le flot de données. Le flot de contrôle représente l’enchaînement et l’ordonnancement des activités. Par contre, le flot de données représente l’échange des produits ou des données entre elles. Un produit est une information qui peut être créée, transformée ou consommée par une activité. Une activité peut demander en entrée un ou plusieurs produits et produire en sortie un ou plusieurs produits. Selon le WfMS, les produits sont typés ou pas.

Chaque activité peut exiger une ressource (humaine ou matérielle). Cette ressource représente ce qui réalise le travail matérialisé par l’activité. La plupart des WfMSs actuels établissent statiquement l’association entre les activités et leurs ressources lors de la phase de modélisation.

Implémentation du procédé

L’objectif de cette étape est d’établir physiquement l’association entre des activités ayant besoins d’une ressource matérielle, et leur ressource comme spécifié dans le modèle de procédé.

Pour cela, il est nécessaire de traiter le problème de l’interopérabilité entre le moteur de

workflow et l’ensemble des applications (i.e. les ressource matérielles) utilisées pour

implémenter des activités du procédé. Ensuite, il faut établir physiquement les liens entre eux pour que le moteur puisse interagir avec ces applications.

Exécution du workflow

L’exécution d’un workflow commence par l’activité initiale et doit se terminer par une activité finale, en passant par les activités intermédiaires et en respectant les règles d’ordonnancement définis dans le modèle de procédé. Pour ce faire, le moteur de

• L’invocation de chaque application participante lorsque l’activité correspondante est démarrée ;

• L’enchaînement des produits entre les activités comme défini par le flot de données dans le modèle de workflow. Ceci implique le passage des données entre applications participantes ;

• La cohérence et la fiabilité de l’exécution du workflow ;

• La surveillance de l’exécution et la gestion des erreurs du workflow.

5.4.1.3. Réalisation du contrôle explicite par un WfMS

L’utilisation d’un WfMS pour réaliser le contrôle explicite peut apporter plusieurs avantages :

• Un modèle de procédé peut être utilisé pour représenter l’objectif global sous forme de la coordination entre des participants. Les modèles de procédé sont, en général, assez intuitifs et simples à comprendre. Ils fournissent, par conséquent, un langage de composition intéressant ;

• Un moteur de workflow est capable d’interpréter un modèle de procédé et d’invoquer des participantes en respectant le modèle de procédé. Un moteur de workflow est tout à fait adéquat pour jouer le rôle d’un contrôle explicite. La Figure 26 montre le guidage des participants par un moteur de workflow ;

• L'application globale sera séparée clairement en deux couches : (1) les fonctionnalités de base et (2) la coordination de ces fonctionnalités. La première couche est assurée par les participants tandis que la coordination est déléguée à un WfMS. A chaque étape dans la phase de construction de cette application globale, il faut tenir compte de la relation entre ces deux couches ;

• Un WfMS est un outil générique qui peut être utilisé dans des domaines d’application différents.

moteur de procédé

participants Données