Architecture

BPMN ou BPEL : la différence fondamentale

Publié le : Auteur: Anteo Consulting 4 commentaires
architecture

Le développement du BPM au sein des entreprises poursuit son cours. S’il a contribué dans la majeure partie des cas à améliorer la connaissance des processus métier par la cartographie, son extension vers l’architecture du SI est de plus en plus envisagée à titre d’alignement formel entre logiciel et métier. Cette évolution est également favorisée par la proposition de passage de BPMN à BPEL, également supportée par les grands éditeurs de suites SOA.

Cela revient cependant à positionner BPMN comme un équivalent graphique de BPEL; bien que cela arrange les éditeurs dans leur discours simplificateur, l’application sur des cas concrets d’entreprise révèle le manque d’exactitude de cette approche.

Quand il y a confusion, il est important de se rapporter aux fondamentaux afin d’en comprendre les évolutions. A ce titre, le positionnement initial des deux langages est très révélateur de la vocation qui leur est réservée :

  • BPMN est un langage de modélisation destiné à cartographier, analyser et documenter les processus d’entreprise
  • BPEL est un langage d’exécution destiné à automatiser et implémenter des processus applicatifs.

Par similitude, on retrouve des cas de décalage déjà rencontrés entre les domaines de la modélisation et de l’implémentation. On peut par exemple se référer à UML qui possède toutes les notations pour répondre à la fois à des cas de modélisation métier, et pour représenter du code orienté objet. Le concept d’association entre classes est particulièrement typique d’une notion très utile en analyse et qui ne possède pas d’équivalence directe dans le monde de l’implémentation. Dans ce cadre, imposer aux analystes fonctionnels d’exprimer des concepts métier abstraits avec les notions du langage de programmation, est une hérésie admise et reconnue depuis l’apparition des approches incrémentales.

J’ai pu par ailleurs recueillir plusieurs retours d’expérience de déploiement de BPMS, et bien qu’au final les projets aient atteint leurs objectifs, pratiquement tous on vécu l’impossibilité de pouvoir plaquer directement les processus métier sur des orchestrations SOA. La différence entre les deux tient essentiellement dans l’ambiguïté qu’un processus métier peut se permettre de posséder, là où un processus applicatif doit forcément trancher, faire des choix et donc réduire les possibilités pour que cela puisse « tourner ». Aussi paradoxale que cela puisse paraître, la modélisation métier a besoin de maintenir l’ambiguïté pour assurer l’exhaustivité des cas, tandis que le logiciel exige la précision et le déterminisme.

En conséquence, les outils de BPMS n’effacent pas les phases incrémentales de développement que sont l’analyse métier et la conception logicielle. S’il existe en entrée du projet une cartographie des processus, celle-ci doit être considérée à titre d’expression des besoins et non comme la trame prédéfinie des orchestrations SOA cibles. Et dans ce contexte :

  • BPMN est le langage de l’analyste en charge d’analyser et de descendre en profondeur dans la compréhension du besoin métier
  • BPMN est aussi l’équivalent graphique de BPEL, mais il est alors le langage du concepteur en charge de traduire les besoins fonctionnels en orchestrations, de lever les ambiguïtés, et de tracer les choix, le tout sur un jeu de notations réduit.

Dans les deux phases, il ne s’agit pas des mêmes diagrammes. En appliquant l’approche incrémentale on comprend ainsi mieux la place de BPMN et celle des outils BPMS qui proposent BPMN comme représentation graphique. On évite également cette difficulté sur laquelle tous les projets de déploiement de BPMS ont buté.

 

  • Pingback: Oracle SOA Suite – Vision terrain, Modèle de Maturité SOA et outillage()

  • Article très interessant mettant en avant le risque de confusion quand la même « forme », la notation graphique BPMN, permet d’exprimer deux « fonds » différents (je reprends vos termes): processus d’entreprise et processus applicatifs. Je comprends les deux termes de la façon suivante:
    – processus d’entreprise: processus souvent long, impliquant généralement des rôles humains de l’entreprise (ex: traiter une commande, depuis le passage de la commande jusqu’à la livraison)
    – processus applicatif: un sous-ensemble automatisé d’un processus d’entreprise (ex: le sous-processus de prise en compte de paiement par CB).
    Ce sont bien 2 choses différentes, pouvant pourtant être décrites avec la même notation, BPMN (ou bien un diagramme d’activité UML). La confusion me semble accentuée par le fait que ces 2 choses sont souvent appelées « processus métier ».
    Pour ma part, j’ai le sentiment que la différence fondamentale entre les 2, est la place de l’humain dans la boucle. Le processus d’entreprise est transverse à plusieurs rôles humains, alors que le périmètre d’un processus applicatif est essentiellement la partie entièrement automatisée d’un processus d’entreprise, d’où son « exécutabilité ».
    J’aimerais beaucoup avoir le retour de l’auteur sur le sujet.
    D’avance merci

  • Dans le prolongement du sujet, vous trouverez une analyse différenciante plus technique entre BPMN et BPEL par un expert Oracle, http://redstack.wordpress.com/2012/02/13/choosing-bpmn-or-bpel-to-model-your-processes/ .

    La conclusion se rapproche bien de la vision ANTEO.

  • Souare Karamoko Idrissa

    J’ai vu la difference
    merci