On montre ici deux cas d'usage de BPEL : le premier reste assez théorique compte tenu de la maturité de certains standards ; le second permet d'envisager une solution plus opérationnelle qui tient compte des besoins d'agilité pour l'invocation de services et réduit l'adhérence avec les standards immatures.
1) Un usage théorique de BPEL
Sur cette figure, on montre lusage nominal de BPEL.
Les principes à noter sont les suivants :
- Laffectation des messages dentrée des web services est sous le contrôle de BPEL via laffectation de variables stockées au niveau du contexte BPEL (Assign, Copy).
- Le calcul des routes est également sous le contrôle de BPEL via lusage dune grammaire XML de règles comme par exemple Schematron.
Les inconvénients de ce scénario sont les suivants :
- Limplémentation de la gestion du contexte sappuie sur le standard WS-Context qui nest pas entièrement stabilisé aujourdhui. Les éditeurs comblent ce manque par des implémentations techniques propriétaires. On rappelle que WS-Context est une partie de lappareillage WS-CAF (Composite Application Framework) dont lobjectif est de gérer une démarcation transactionnelle au niveau du contexte (transaction distribuée compte tenu de laspect distribué des web services
donc sujet très complexe).
WS-Context est en Committee Draft 1.0 au 24 Octobre 2005 (voir site de lOASIS). La partie transactionnelle de CAF, c'est-à-dire WS-TXM est encore en draft. De plus, il nest pas certain que WS-Context remporte la bataille des standards puisquil est challengé par WS-Resource Framework issue de la Globus Alliance. WS-Resource Framework intègre des mécanismes intéressants de gestion de contexte qui se base sur WS-Addressing (on procède par get / put sur des propriétés attachées à un endpoint reference) alors que WS-Context ne tire pas profit de WS-Addressing, ce qui est ennuyeux dans la distance.
On rappelle aussi que WS-Addressing est le standard pivot et reconnu par toute la communauté (OASIS, W3C, Globus Alliance, Microsoft
) pour ladressage de services, utilisé notamment dans lEDA (Event Driven Architecture) avec WS-Eventing. Certaines études visent aussi à mettre en avant une complémentarité entre WS-Context et WS-RF
Nous sommes ici sur une courbe de maturité qui nous conduit à 2010.
- A noter aussi lambiguïté sur la nature persistante ou non du contexte.
- Linvocation des web services est figée dans la définition du processus. Le changement dun web service par un autre nécessite larrêt du moteur BPEL.
2) Un usage pratique de BPEL
Sur cette figure, on décide de modifier lusage théorique de BPEL vue précédemment en apportant les ajustements suivants :
- On supprime la gestion de contexte au profit dun passage complet des données dun web service à lautre. Plus les formats de réponse (messages out) sont proches des formats dentrée (messages in) plus la propagation des données entre les web services est simplifiée. Cette proximité des structures de données milite pour la mise en place de formats pivots XML.
- Les calculs de route sont expulsés de BPEL au profit dun proxy (au sens AOP) qui déclenche des traitements ad hoc (notamment via une Factory) au moment du after sur lactivité Invoke BPEL. Cest à ce niveau que linvocation dun moteur de règles est prévue.
- Le proxy et la factory permettent de changer dynamiquement linvocation du web service déclenché (par exemple des versions différentes) selon un paramétrage non intrusif sur le code.
Lintérêt de ce mode de fonctionnement est la simplicité dusage du moteur BPEL et donc laugmentation de la robustesse dexécution. A noter aussi que lon peut parfaitement mettre en place un moteur de séquencement spécifique sans embarquer une technologie BPEL ; cest la raison pour laquelle sur cette figure le point dentrée Bpel Compute est représenté en pointillé.
|
"BPEL ne permet pas de gérer les interactions humaines"
|
|
Néanmoins, les inconvénients de cette solution sont les suivants :
- Pas de gestion de contexte et donc pas de possibilité de gérer une démarcation transactionnelle. Il faut alors prévoir des compensations applicatives pour défaire des mises à jour qui deviennent invalides en cours dexécution du processus. De toute façon, comme nous lavons vu précédemment, BPEL est incapable de le prendre en charge de manière automatique et standard puisque WS-CAF nest pas stabilisé à ce jour.
- Il nest pas toujours possible (ni souhaitable) de prévoir le design des web services de telle sorte que le flux de données du processus puisse être communiqué simplement entre les web services. Néanmoins, on simplifie lexécution des processus en bâtissant un système de telle sorte que cette propagation de données entre les web services supprime la gestion de contexte : on arrive alors à un principe de web services véritablement lego (mode de fonctionnement plug and play).
- Pas de modélisation graphique de lensemble du comportement métier du processus puisque les règles sont expulsées à lextérieur de la grammaire BPEL. Cest un inconvénient majeur ; il faut que le modeleur graphique permette la jonction avec le moteur de règles, au moins pour déclarer le paquet de règles invoqué au moment de lAfter et les données véhiculées vers le moteur.
Interaction avec lutilisateur
Si vous aviez des doutes
BPEL ne permet pas de gérer les interactions humaines. Evidemment, lorchestration va au-delà du séquencement programmatique des web services ; elle englobe aussi les interactions avec les utilisateurs : définition des droits sur les processus ; prise de décision sur une route ; alimentation des corbeilles de tâches ; gestion des dépassements de délai ; affichage de linterface utilisateur pour une tâche ; etc.
Une initiative récente de SAP et IBM (comme pour les sous-processus cités plus haut) tente dapporter un complément à la grammaire BPEL afin dintroduire un type supplémentaire dactivité nommée « people activity » : le moteur BPEL crée une tâche et la poste dans les corbeilles éligibles ; cest donc un comportement différent du classique « invoke activity ».
Il faudra plusieurs mois avant que lOASIS intègre (ou pas
) cette initiative et plusieurs mois supplémentaires avant que les éditeurs ne limplémente. Ici également, nous sommes face à un cycle de maturité BPEL qui nous amène jusquen 2010. Il faudrait aussi prendre en compte XPDL de la Workflow management coalition
|
"Qualité de services : il y a peu d'éléments stables sur ce point"
|
|
Qualité de services
Il y a peu déléments stables sur ce point à ma connaissance, leffort de standardisation se fixant dabord, et cest bien normal, sur le management de chaque web service pris de manière isolée (voir WS-DM). Evidemment, les besoins vont au-delà de la définition dun correlation set partagé entre les web services dune même instance de processus.
Il faut être capable de définir des SLA différenciés sur chaque web service dans le contexte particulier de lexécution dun processus ; fixer des exigences de SLA directement au niveau du processus et vérifier leurs cohérences avec celles prévues au niveau de chaque web services orchestrés
A ce jour, il faut se contenter dun développement spécifique qui sappuie sur une grammaire XML propriétaire (plus ou moins
) afin de déclarer les comportements de SLA du processus et des web services qui le compose. Puis, on prévoit un Aspect de monitoring (au sens du proxy AOP sur le moteur BPEL tel que présenté plus haut dans ce papier) pour piloter lensemble ou co-piloter avec un outil WS-DM : il sagit dun appareillage complexe quil convient de spécifier en limitant le niveau dambition.
Progressivement, les outils de management des web services combleront le vide actuel ; cest aussi une courbe de maturité jusquà 2010.
Modélisation
Cest un sujet déterminant
mais aujourdhui très instable. Evidemment, il est impossible de développer à la main une grammaire BPEL à une échelle industrielle. Donc, XML doit être masqué par une modélisation graphique adaptée.
Plusieurs scénarios sont possibles :
- Un modeleur propriétaire : souvent puissant mais pas standard
- UML avec le Diagramme dactivités.
- BPMN (Business Process Modelling Notation) du Bpmi.
- DSL (Domain Specific Langage) de Microsoft.
Les critères suivants daide à la décision sont souvent mis en avant :
- Peu (pas) dintérêts à générer du BPEL à partir dune vision métier de haut niveau modélisée en BPMN sauf sil sagit dutiliser un moteur BPEL dans loptique dexécuter des simulations de comportement. Nous ne connaissons pas de tels outils à ce jour.
- UML reste le standard pour la modélisation de processus ayant une vocation à limplémentation informatique pour la production (et pas seulement la métrologique au sens BPMN) ; la difficulté réside dans le choix du profile UML associé à BPEL. A ce jour, nous navons pas vu de profile UML BPEL standard proposé par lOMG. Il faut donc se contenter de profiles propriétaires peu satisfaisants car ils verrouillent les modèles dans chaque outil de modélisation. A notre connaissance, IBM est le plus avancé dans la définition du profile UML pour BPEL.
- Microsoft avec DSL se pose en concurrent dUML et sengouffre dans lingénierie des modèles pour contrer la vague stratégique du MDA (Model Driven Architecture) de lOMG. Il sagit dun enjeu bien plus général que celui de la modélisation des processus et de la production de BPEL. Nous avons eu loccasion de publier plusieurs papiers sur le thème de la formation à lingénierie des modèles qui constitue lenjeu stratégique du SOA sur la période 2005-2010.
- Enfin, lacceptation dun modeleur propriétaire peut être tactique, mais pas un choix sur le long terme. Dans un domaine parallèle de la modélisation des processus, on constate par exemple le déplacement des outils de modélisation propriétaire XML vers la prise en compte des diagrammes de classes UML (voir par exemple la société Altova et sont produit vedette XMLSpy).
UDDI
Il existe une technical note (TC) de lOASIS en date du 25 Juillet 2004 (pas très récente) qui définit la projection des concepts BPEL dans ceux dUDDI. Il faut donc rester attentif sur le niveau de support proposé par les éditeurs de solution UDDI.
Il est vrai que UDDI est peu utilisé par les entreprises ; mais le mouvement vers UDDI pourrait saccélérer fortement en 2006 car il sagit de se doter de registry qui couvre non seulement WSDL, BPEL mais aussi et surtout
les nombreux schémas de données (XSD) qui dailleurs devraient plutôt sappuyer sur les registries compatibles ebXML et tirer profit du standard Iso 11179 de documentation de la donnée : encore un chantier SOA important ; celui de la registry unifiée (UDDI+ebXMLr+ISO 11179).
|