Académique Documents
Professionnel Documents
Culture Documents
Cours III
Leçon 2 : Le Workflow
Figure I.10 : Les différents cas de flexibilité du workflow d'après (Saikali, 2001)
La flexibilité est donc l'une des principales caractéristiques de la "nouvelle
génération" de systèmes Workflow. Ceux-ci doivent prendre en charge entre autre la
mise en œuvre de la flexibilité.
Au niveau du Workflow, l'approche par méta-modèle a pour but de permettre
d'apporter des modifications sur les modèles workflow. Plus généralement, une
approche par méta-modèles tend à définir un méta-modèle Workflow qui sert de
fondement à la construction et à la réutilisation de modèles Workflows. Ceux-ci sont
donc construits à partir des composants du méta-modèle (ou de leur spécialisation si la
réutilisation est possible) et en appliquant les règles de conception et de modélisation
qui y sont définies.
III.1.10 Le Web-Service
L’émergence du concept de web service a suscité une évolution dans le monde de
l’informatique distribuée et de l’interopérabilité entre systèmes hétérogènes de diverses
plateformes. Ceci a été rendu possible grâce à l’envoi de messages XML facilitant la
compréhension et l'échange de données, l’utilisation de standards (TCP/IP, SMTP,
SOAP) acceptés par un grand nombre de fournisseur de logiciels (Microsoft, W3C,
OMG, OASIS).
Basés sur le protocole HTTP qui utilise le port 80, les web services traversent les
pare-feux de sécurité des entreprises, ce qui est intéressant dans les trafics B2B
(Business-to-Business) ou B2C (Business-to-Customer). Dans le cadre de ce travail, les
web services seront utilisés pour la composition ou la constitution du processus métier
via le langage BPEL qui est le langage d’orchestration des web services et d’exécution
des processus métier.
Ainsi, les besoins des entreprises changent suivant le développement technologique
et la complexité de leurs systèmes informatiques. D'où l’émergence de technologies
telles que CORBA (Common Object Request Broker Architecture), DCOM (Distributed
Component Object Model), et bien d’autres, ont permis la conception et le déploiement
d’applications sur des environnements distribués (intranet, internet). En dépit de ces
technologies complexes et fortement couplées, il reste encore le problème de
l’interopérabilité entre systèmes hétérogènes, issus de constructeurs différents. La
tendance actuelle est donc vers l’architecture orientée services.
Au début, fut utilisée l’architecture client/serveur, basée sur les mécanismes RPC
(Remote Procedure Call) permettant au client de récupérer ou de déclencher auprès d’un
serveur et par l’envoie d’un message, un service donnée. Ensuite, on a vu le passage
vers à un modèle d’architecture supportant l’exécution d’applications réparties sans
passer par un middleware, c’est l’architecture orientée services. Celle-ci permet de faire
continuer à fonctionner les applications déjà mise en œuvre (qui se base sur l’ancienne
architecture) et d’avancer plus vers l’informatique distribuée en rendant possible
l’interopérabilité entre systèmes divers, voir même la conception d’application répartis
via les web services.
Le principe de l’architecture orientée service (AOS) consiste à offrir sur le web des
services qui réalisent chacun une tâche bien précise, et des applications leur faisant
appel si elles en ont besoin. Ces applications elles mêmes peuvent être déployées
comme des services réalisant un grand rôle (Rampacek, 2006), (Salatgé, 2006).
Les web services constituent la pierre angulaire et la technologie de base de
l’architecture orientée services. Apparus vers les années 1990, ils sont des portions
logicielles reliant des applications, des bases de données ou des processus d’affaires, en
utilisant les protocoles et langage standards (HTTP, XML). L’interopérabilité et
l'échange sont alors rendue possibles entre systèmes issus de concepteurs divers (Babin
& al, 2003). L’apparition du XML codant tout type de données et favorisant le partage
sur le Web de données entres différents systèmes hétérogènes, l’Internet et la recherche
de l’interopérabilité sont autant de facteurs qui ont contribués à la propagation des web
services.
III.1.10.1 Définition
On traduit un web-service comme une entité logicielle destinée à faire inter-opérer
des systèmes hétérogènes dans un environnement distribuée (internet, intranet). D'après
le consortium de la W3C : un web service est une entité logicielle identifiée par une
URI (Uniform Ressource Identifier), dont l’interface est publique et les liaisons sont
possibles grâce aux protocoles standards basés sur le fameux langage XML, qui permet
l’interaction entre applications, en utilisant des messages XML et protocole de
l’internet.
Un web service correspond donc à une application logicielle, à interaction
dynamique, identifiée par un URI, pouvant interagir avec d’autres composantes
logicielles et dont les interfaces et liaisons ont la capacité d’être localisées et invoquées
via XML et par l’utilisation des protocoles Internet communs (Babin, 2003). Il s’agit
alors d’une collection de fonctionnalités mises à disposition aux applications en temps
réel, accessibles via le réseau par des messages écrits en XML en utilisant des
protocoles standards (HTTP). Ces fonctions permettent d’instaurer des communications
inter-application, voire même la construction rapide et moins chère d’applications
distribuées plus flexibles et évolutives.
Contrairement aux plateformes déjà employées (CORBA, DCOM) qui sont
fortement couplées, c'est-à-dire, la modification d’une composante logicielle entraine
forcément la modification des autres, les web services présentent l’avantage d’être
faiblement couplés et peuvent être modifiés indépendamment les un des autres. D'où
l’utilisation des web services se voie nécessaire pour une meilleure interopérabilité des
plateformes.
I.12) : une enveloppe qui englobe le contenu et son traitement, un entête optionnel
regroupant les règles et mécanismes de représentation des données et enfin un corps
obligatoire contenant les requêtes et les réponses échangées entre systèmes (Mitra & al,
2007). Le tout est encapsulé dans un protocole applicatif avec son entête (version, type
d’encodage). Le protocole applicatif le plus utilisé est HTTP mais bien évidemment il
est possible d’utiliser d’autres tels que SMTP ou FTP (Salatgé, 2006).
WSDL (Web Services Description Language)
C’est un langage de description des web services, initiative de différents
constructeurs (Microsoft, IBM, …) afin de fournir un langage de description unifié pour
les web services et normalisé par le W3C. Le WSDL est une norme dérivée de XML, il
fournit les spécifications nécessaires à l’utilisation des web services en décrivant les
méthodes pouvant être invoquées, leurs signatures (paramètres), en précisant le format
de messages et les URI des web services (Salatgé, 2006). La figure I.13 décrit la
structure d'un fichier WSDL :
Un annuaire offre des mécanismes afin de répertorier les web services, il détermine
comment organiser et localiser les informations liées la description web services d’une
entreprise, d'un organisme ou d'une seule personne afin qu’ils puissent être découverts
par les divers clients et applications.
La version 3.0 duUDDI (Bellwood & al, 2002) est adoptée par OASIS
(Organization for the Advancement of Structured Information Standards). Elle a été
développée par un groupe d’industriels en l’occurrence Ariba, Microsoft & IBM.
L'UDDI assure trois fonctionnalités : la publication des web services des fournisseurs en
enregistrant leurs descriptions dans un fichier XML, la localisation et récupération de
ces descriptions et la troisième fonction gère comment se connecter et utiliser le web
service une fois celui-ci localisé.
UDDI fournit pour les environnements distribués, une infrastructure
d’interopérabilité, il utilise "XML Schéma Language" et sa sémantique afin de décrire
formellement les structures de données.
Il présente un modèle d’information composé d’instances de structures de données
persistantes appelées entités, décrites en XML et stockées dans les nœuds d’UDDI. On
distingue plusieurs types d’entités :
businessEntity : sert à représenter les industriels ou organisation fournissant des
web services;
businessService : décrit une collection de web services fournies par un
fournisseur représenté dans "businessEntity" ;
bindingTemplate : concerne les informations techniques nécessaires à la
consommation d’un web service particulier ;
tModel : modèle technique renfermant les concepts réutilisables tels que le type
de web service et le protocole utilisé par web service ;
publisherAssertion : décrit une vue d’une "businessEntity" et ses relations avec
d’autres "businessEntity" ;
subscription : décrit les requêtes servant à localiser les changements des entités
décrites par cette entité (subscription).
Etant donné l’objectif central des UDDI et qui est la représentation des données et
métadonnées des web services et des interfaces regroupant les informations techniques
relatives, le registre UDDI fournit un mécanisme standard pour classifier, répertorier et
gérer les web services afin qu’ils puissent être découverts et consommés.
Définition
Un web service composite ou complexe est un service composé de plusieurs
services et dont son exécution entraine l’exécution des autres, en termes de faire appel à
leurs fonctionnalités. Elle spécifie - afin d’accomplir une tâche qui nécessite la
participation de plusieurs web service - la composition des web services invoqués et
comment ils sont impliqués.
L’utilisation de plusieurs web services par un même web service permet de
modéliser un processus métier. D'où la relation avec les workflows qui, nous le
rappelons, permettent aussi de décrire des processus métier.
Mode de composition
La composition des web services sert à déterminer la combinaison, la coordination
et l’ordre d’exécution des web services, elle peut se faire de deux manières que sont :
l'orchestration et la chorégraphie (Rampacek, 2006).
L'Orchestration
XLANG : A été développé en 2001 par Microsoft pour les besoins de l’outil
de gestion de processus "BizTalk" et pour combler les lacunes du langage de
description des web services WSDL en matière d’information concernant le
comportement. Il ajoute quatre types d’opérations (requêtes/réponses,
sollicitation de la réponse, le sens unique et la notification), et deux types
d’actions à savoir : arrêt et exceptions. XLANG ressort de la première
génération des langages de description des web services complexes
(processus métier).
BPEL4WS : Le BPEL For Web Service (Alves & al, 2007) est la fusion des
langages précédents et présente donc l’évolution dans le temps. Il a été
développé par un groupe d’industriels (Microsoft, IBM) pour un langage
plus performant que les langages WSFL et XLANG, dont il tire profit.
Références Bibliographiques :
(Adam, 2000) Adam, E., "Modèle d'organisation multi-agent pour l'aide au travail
coopératif dans les processus d'entreprise : application aux systèmes
administratifs complexes". Thèse de l'université de Valenciennes et du
Hainaut-Cambrésis, France 2000.
(Courbon & al., 1999) Jean-Claude COURBON, Silvère TAJAN, "Groupware et
intranet – Vers le partage des connaissances", 2ème Edition, Editions Dunod,
Paris 1999.
(Khoshafian & al, 1998) Khoshafian, S., Buckiewics, M. (1998) «Groupware &
Workflow», MASSON editions.
(Levan, 2000) Levan S.K., "Le projet Workflow". Paris : Hermès, 2000.
(Morand, 2001) Frédéric Morand, « Workflow, groupware et systèmes à base de
données, études des couvertures fonctionnelles, des critères de choix et des
possibilités d’intégrations. Illustration à l’aide de la modélisation du Foyer
André ». Mémoire de post graduation en informatique et organisation, Institut
d'informatique et organisation, Université de Lausanne école des hautes études
commerciales, Lausanne, Suisse, 2001.
(Saikali, 2001) Saikali, K. (2001) “Flexibilité des workflows par l’approche
objet : 2FLOW, un framework pour workflow flexibles”, Thèse de doctorat.
Ecole Centrale de Lyon – France.