Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application jboss 3 2-3 Installation de ANT..4 2-4 Installation du JPDL Designer.5 2-JBPM en action.7 1
1-Introduction: 1-1- BPM (Business Process Management) Matt Cumberlidge définit PBM dans son live Business Process Management with JBPM comme sui: << Business Process Management involves the graphical modeling of a business process, from which workflow software can be generated, which in turn will control the live operation of the process, interacting with both humans and other applications. Further software measures the execution of the process in the live environment in order to permit ongoing analysis and iterative improvements.>> Donc BPM implique la modélisation graphique d un processus d affaire, à partir de laquelle un logiciel de workflow peut être générer, ce logiciel contrôlera le fonctionnement du processus et sera capable d interagir avec les humains et d autres applications, Aussi, ce logiciel sera capable de faire des mesures sur l exécution du processus dans son environnement ce qui permettra au BA (Business Analyst ) d améliorer l analyse et réaliser d autre itérations. Ces dernières années tout le monde parle de BPM et de son importance pour améliorer la productivité des entreprises. Dans une étude publiée par cioinsight.com : en 2007, BPM est la deuxième technologies adoptée par les entreprises pour améliorer leurs compétitivités et leurs productivités, ceci n est pas fruit du hasard, en effet l adoption du BPM a beaucoup d avantages parmi lesquels on cite : Productivité et efficacité. Gouvernance et respect les processus. Méthode agile. BPM s adapte facilement au changement dans l organisme. L Amélioration de la communication, la coopération et la coordination entre les différentes équipes. Maximisation de l utilisation des ressources. Réduction de la durée du cycle du processus. Minimisation des coûts. BPM facilite l intégration des nouveaux membres des équipes. 1-2 J-Boss JBPM J-Boss JBPM est un framework open source qui permet la définition et l exécution des processus. JBPM permet aux entreprises de définir et d automatiser des BPs ( business Process) qui coordonnent avec des humains, des applications et des services. JBPM fournit un modèle unique de programmation orientée processus avec son langage de définition des processus : JPDL ( JBoss Process Definition Language). JPDL permet au développeur de structurer son logiciel autour d un graphe de processus facile à comprendre. Cette approche permet la définition des BPs avec un langage compréhensible par le BA et le développeur, ce qui facilite l implémentation des processus nécessaires. J-Boss JBPM vient avec un designer visuel basé sur Eclipse, un moteur qui exécute les processus, et un serveur d application près configurée. 2
2-Installation de JBPM Dans ce tutorial, je suppose que vous avez déjà installé la JVM sur votre machine Windows XP, et qu elle fonctionne correctement. 2-1 Architecture de JOBSS JBPM : Avant de commencer l installation, jetons un regard sur ce schéma graphique de JBPM, ce qui vous aidera à comprendre la plateforme avec laquelle nous allons travailler Le Process Designer développe le Process Definition du processus, et il le déploie sur la base de donnée des processus, le moteur de JBPM interagit avec la base de donnée des processus pour répondre aux requêtes de la WEBCONSOLE qui est l application avec laquelle l utilisateur final interagit. 2-2 Installation du moteur JBoss JBPM et le serveur d application jboss: Le moteur JBoss JBPM est le programme qui exécute les processus, le moteur est déployé dans un serveur d application JBoss. Premièrement, on doit télécharger les fichiers nécessaires, Pour cela, téléchargez la dernière version de jbpm-jpdl-suite, au jour d écriture de ce tutorial la dernière version stable était 3.2.2, une fois le téléchargement terminé, dezippez le fichier dans un dossier, je l ai fait vers le dossier c:\jbpm. Et c est fini, vous avez JBPM installé sur votre machine, pour tester que tout est bien installé, déplacez vous dans le dosser dont le quel vous avez installé jbpm, ouvrez le dossier server (pour moi C:\jbpm\jbpm-jpdl-3.2.2\server ) et double click sur start, attendez quelque second, le temps nécessaire pour le lancement du serveur. Maintenant lancez votre navigateur web et tapez : http://localhost:8080/jbpm-console/ dans la barre d adresse. Vous devez avoir devant vous une page similaire à celle ci : 3
2-3 Installation de ANT Si vous n avez pas encore installé ANT sur votre machine, téléchargez le ici, une fois téléchargé, dezippez le dans un dossier de votre choix ( de préférence : «C:\Program Files»). Vous devez informer le système sur l emplacement de ANT, pour le faire, cliquez avec le bouton droit de la sourie sur Poste de travail, -> propriétés->avancé->variables d environnement, dans les variables système, sélectionnez la variable PATH, et appuyez sur modifier, Dans la zone de texte valeur de la variable, allez jusqu'à la fin de la liste, ajouter ; suivi du chemin du dossier bin dans le dossier d installation de ANT. Vous devez avoir quelque chose comme ça : 4
Appuyez sur ok -> appliquer -> ok. 2-4 Installation du JPDL Designer : Téléchargez la dernière version de Eclipse pour Windows (pour moi c est : eclipsesdk-3.3.2.win32.zip), copier le dans le dossier designer qui se trouve dans le dossier d installation de JBPM. Toujours dans dossier Designer, ouvrez avec un éditeur de texte le fichier build.properties, vous devez voir quelque chose comme ça : 5
Ce fichier est utilisé par ANT pour installer Eclipse ainsi que le plugin du designer, Comme vous l aurez déjà comprit, il indique à ANT la version de Eclipse à installer ainsi que son chemin accès Donc nous devons changer la version et le chemin de Eclipse, après les modifications, votre fichier doit être comme celui ci : # the next property points to the eclipse zip file on your local # machine. the build script in this directory contains a target # to get eclipse and put it in this directory. in case you have it # in another location, update the property below. eclipse.file.name=eclipse-sdk-3.3.2-win32.zip # Replace the eclipse.local.path with the uncomment version if you want # to supply eclipse in this directory. eclipse.local.path=. #eclipse.local.path=${user.home}/jbpm/repository/eclipse/sdk/3.2.1 eclipse.local.url=${eclipse.local.path}/${eclipse.file.name} #eclipse.remote.path=http://repository.jboss.com/eclipse/sdk/3.2.1 #eclipse.remote.url=${eclipse.remote.path}/${eclipse.file.name} Enregistrer et fermer le fichier. Maintenant ouvrez la ligne de commande (démarrer->exécuter : cm->ok), déplacez vous avec la commande cd vers le dossier designer et lancez la commande : ANT, vous devez avoir quelque chose comme ça : Et c est tout, Pour lancer Eclipse, dans le dossier designer double click sur Designer, 6
Pour vérifier que tout fonctionne bien. Appuyer sur 'workbench, puis File->New- >project, vous devez avoir quelque chose comme ceci : 7
Jusqu à maintenant nous avons vue comment installer JBPM et sa suite d outils, dans la deuxième partie de ce tutorial nous allons voir comment travailler avec ces outils à travers un exemple simple. 8
2-JBPM en action : Dans cette partie nous allons traiter un exemple simple, il s agit du processus de demande de congé dans une entreprise, dans cet exemple un employé fait une demande de congé à un responsable des ressources humaines, ce dernier doit décider, soit il accepte la demande, soit il la rejette. Passons maintenant a l action, Démarrer votre Eclipse à partir du Designer(Astuce : faites un raccourcis vers le designer dans le bureau, comme ça vous n aurez pas a ce déplacer vers le dossier designer chaque fois que vous voulez démarrer Eclipse ) Allez dans file->new->projet et choisissez jbossjbpm->process Project : Cliquez sur next, et puis donnez le nom conge à votre projet, et cliquer sur finish. Dans le package explorer, allez sur src/main/jpdl, click avec le bouton droit->new->other. 9
Puis choisissez jboss jbpm -> Process Definition : 10
Puis cliquez sur next, donnez un nom au processus : conge et cliquez sur finish. 11
Vous n êtes pas supposés comprendre le fonctionnement de tous les outils que le designer a mit votre disposition, nous allons travailler avec le minimum, et dans mon prochain tutorial je vais faire une explication détaillée, basée sur la documentation officielle, des différents composants du JPDL. ( j ai déjà commencé la traduction, contactez moi par email, si vous voulais m aidez) Pour commencer, faites un click sur et cliquez au centre, Faites la même chose avec «Task Node» et «End». Vous devez avoir quelque chose comme ça : Pour chaque nœud faites la chose suivante : Allez dans le volet proprietes-> general et donnez un nom significatif, après cette étape, vous aurez quelque chose comme ça : 12
Maintenant nous devons lier les nœuds de taches en eux, pour cela nous allons utiliser les Transitions. Cliquer sur, puis clique sur le nœud faire une demande et apres le nœud traiter la demande, refaites la même chose pour obtenir le résultat suivant. Pour renommer les transitions, faites la même chose que vous avez fait avec les nœuds : 13
Maintenant, cliquez au centre (ne cliquez sur aucun composant), Dans le volet propriétés, sélectionner «swimlanes», cliquer avec le bouton droit-> New Swimlane : Donnez le nom employe au swimlane, et dans la partie assignement, choisissez expression et dans le champs expression entrer : group(employe) : Créez un autre swimlane avec les données suivantes : Nom : rh, expression : group(rh). Maintenant nous allons créer des taches pour chaque nœud, on va commencer avec le noeud faire demande. Sélectionnez le nœud, dans le volet propriétés, sélectionnez Task -> Configure Task 14
Remplissez le champs Name avec : demande, dans la partie assignement, choisissez : swimlane et remplir le le champs swimlane name avec employe. Dans la partie Controller, remplissez le tableau comme sui : Dans la partie Details, cliquez sur generate form, remplissez le formulaire comme sui, et cliquez sur ok 15
Refaites la même chose pour le nœud : traiter une demande Name : traitement. Assignemnet : o Swimlane Swimlane name : rh Controller : details : Nous avons presque fini avec le Designer, Nous allons maintenant créer les groupes RH, et EMPLOYE dans la base de donnée et en même temps créer deux utilisateurs pour les testes. Pour cela, nous devons tout d abord lancer le serveur, vous vous souvenez du serveur? pour le faire, allez dans le dossier d installation de jbpm, ouvrez le dossier Server et double 16
click sur Start. Lancer le navigateur entrez dans la barre d adresse l adresse : http://localhost:8080, puis ok Cliquez sur JMX Console. Puis sur database=jbpmdb,service=hypersonic Puis invoquez la fonction startdatabasemanager() vous devez voir quelque chose comme ça : 17
par exemple si vous voulez voir la liste des groupes déjà existants, composez la commande SQL suivant : select * from public.jbpm_id_group voici le résultat de cette commande sur ma machine : Maintenant nous allons ajouter les deux groupes avec la commande : Insert into public.jbpm_id_group values (100,'G','employe','organisation',null) Insert into public.jbpm_id_group values (101,'G','rh','organisation',null) on ajoute deux utilisateurs : lamdauf et jerry : insert into public.jbpm_id_user values (100,'U','lamdauf','lamdauf@gmail.com','lamdauf') insert into public.jbpm_id_user values (101,'U','jerry','jerry@gmail.com','jerry') Maintenant on va attribuer des roles aux deux utilisateurs: insert into public.jbpm_id_membership values ( 13,'M',null,null,100,100) insert into public.jbpm_id_membership values ( 14,'M',null,null,101,101) insert into public.jbpm_id_membership values ( 15,'M',null,null,100,5) insert into public.jbpm_id_membership values ( 16,'M',null,null,101,5) Et c est fini, pour vérifier que les deux comptes sont créés correctement, lancer le navigateur avec l adresse suivante http://localhost :8080/jbpm-console, et essayez de se connecter avec le login lamdauf mot de passe lamdauf. En fait il y a une manière plus simple pour ajouter les groupes et les utilisateurs, vous devez juste vous connecter autant que manager, et vous aurez une interface pour ajouter et supprimer les groupes et les utilisateurs, mais je voulais juste mentionner qu il y a une base de donnée derrière JBPM et si vous jetez un regard sur les tables de la base de données vous comprendrez un peu le fonctionnement de JBPM. En effet, JBPM enregistre tout dans la base de donnée : la définition des processus, les instances des processus, les nœuds, les taches,.. 18
Et il les manipule de fur et a mesure que le l exécution du processus continue. Aussi, dans des tutoriaux a venir, je vous expliquerai comment changer le SGBD, par défaut jbpm vient avec hypersonic, mais peut être que vous souhaitez le faire fonctionner avec Mysql par exemple. En resume,, il faut créer la base de donnée dans Mysql et modifier quelques fichiers de configuration.. Maintenant revenons sur Eclipse et sélectionner Deployement. Assurez vous que vous avez déjà lancé le serveur avec la bouton Test Connection, si vous recevez le message : Cela veut dire que vous pouvez déployer l archive du processus sur le serveur, et pour le faire, appuyez sur «Deploy process archive» et c est fini. Allez dans le navigateur web et taper l adresse : http://localhost:8080/jbpm-console, utilisez le compte lamdauf pour s identifier. Si tout s est bien passé vous devez avoir cet écran d accueil. Cliquez sur «examine», puis sur «start» Puis un click sur «examine» et vous serez redirigé vers la page : 19
Remplissez les champs et cliquez sur valider, un message vous informera que vous avez terminé la tache : Maintenant deconnectez vous, et reconnectez vous avec le compte : jerry, Mot de passe : jerry : voila votre page d accueil : 20
Cliquez sur «Task» pour consulter les taches : Cliquer sur «examine» : 21
Faites votre décision et valider pour terminer le processus. Si vous cliquez sur «Task» vous remarquerez qu il n y a pas plus de tache à faire. 22