vendredi 1 mai 2009

Graph Oriented Programming (GOP) avec JBPM

Introduction

La notion de Graph Oriented Programming (GOP), offre l’avantage de structurer l’application autour d’un graphe présentant une modélisation du processus à automatiser.

GOP définit une notion de GVM (Graph Virtual Machine)

a) définit le graphe

b) définit the modèle d’exécution du graph

c) ajoute le support aux états d’attente

Le graphe est déclaré & séparé du code java:

a) Des noeuds

b) Des transitions

image

Le langage de définition de processus jBPM : jPDL

Dans sa version 3.x, Jbpm est basé sur le langage jPDL (JBPM 4 prend le virage de BPMN, mais il est encore en version béta)

jPDL est composé d’un ensemble d’éléments décrivant comment se déroule notre processus. Ces éléments sont :

Les nœuds

C’est un petit rectangle qui représente une seule activité du processus.

clip_image002

Les tâches

C’est un nœud qui doit être assigné pour une personne particulière et exécuté par le processus.

clip_image004

Les états

C’est un nœud dont le rôle est de mettre le processus en attente.

clip_image006

Les forks et joins

Lorsqu’on veut avoir deux chemins en parallèle, on utilise un fork pour la séparation et un join pour la jointure.

clip_image008

Les décisions

Lorsque nous sommes appelés à prendre une décision sur un état ou une tâche du processus, on peut utiliser un nœud de décision.

clip_image010

Les transitions

Elles relient entre deux nœuds. Elles peuvent être nommées au cas où on veut différencier entre deux ou plusieurs transitions.

clip_image008[1]

Les variables du processus

Elles renseignent sur les détails techniques du processus.


IDE : Vue générale sur l’interface du plugin éclipse

L’interface utilisateur contient deux grands niveaux :

a) Package explorer

b) Editor area

clip_image012

Package explorer

C’est l’espace de navigation qui contient les fichiers sources nécessaires pour notre projet ainsi que des fichiers JAVA.

clip_image013

Editor area

C’est l’espace réel du travail. Elle contient 5 onglets : le diagramme de l’application, les Swimlanes, le déploiement du processus, le design et la source.

Le diagramme de l’application

Ce diagramme nous renseigne sur les différentes tâches réalisées par notre processus métier. Pour rajouter quelques nœuds on utilise le menu situé à gauche dans le schéma ci-après :

clip_image015

Les swimlanes

Les swimlanes sont utilisés dans la définition des différents groupes ou profiles (notion d’acteur dans UML).

clip_image017

Le déploiement du processus

Chaque fois qu’on modifie un paramètre dans l’environnement nous sommes appelés à déployer le processus pour que ces changements soient appliqués dans notre serveur jBPM.

Vous pouvez déployer votre processus en appuyant sur le bouton « Deploy Process Archive » :

clip_image019

Le vue design

Le design nous renseigne sur les détails des différents éléments du processus métier.

La vue source

Elle contient les codes XML qui gèrent le navigateur web de notre processus métier.

clip_image021

Article précédent sur les moteurs de BPM :

1. Un peu de monitoring Métier (BAM) avec JBPM et SeeWhy (event-driven business intelligence )

2. Comment modéliser un processus métier avec JBPM : exemple “gestion des entretiens”

3. Quelle est la différence entre JBPM et Intalio ?

4. Graph Oriented Programming (GOP) avec JBPM

5. La version 4 de JBPM prend le virage de BPMN

6. BPM & Moteur de workflow : l’offre open source

2 commentaires :

Anonyme a dit…

Est ce que quelqu'un peut me fournir un lien pour le téléchargement de JBPM car je l'ai fais mais j'ai pas trouvé l'onglet "swimlane " de
l'edit area ,je pense que l'erreur réside en l'installation
Corldialement

bilred a dit…

Bonjour,
si ta trouvais ou réside le problème (j'ai le même problème que toi) Merci de nous dire quel est la solution ?

Enregistrer un commentaire

Architecte SOA & Professionnel Open Source Headline Animator

 
Khaled BEN DRISS
Cloud Computing, SOA et Web 2.0 : Des sujets techniques sur SOA et l'Open Source : de Java & .Net, PHP5, Symfony, à SaaS / PaaS en passant par Azure, google appengine, le BPM, la Modélisation et d'autres sujets du coté du serveur et cloud computing.