Objectifs pédagogiques de la formation

Cette formation jBPM intensive de 3 jours est destinée aux développeurs Java concernés par des applications « workflow ».
Après avoir introduit les concepts généraux sur la modélisation des processus métier, la formation présente les solutions apportées par la librairie jBPM éditée par JBoss dans une optique très opérationnelle. Après chaque section, un atelier conséquent permet aux participants d’aborder progressivement toutes les problématiques des applications mettant en œuvre des processus métier.

 

Programme de la formation

Introduction
  • Panorama
  • BPM et orchestration de services, définitions et cas d'utilisation
  • Les différents rôles, fonctionnel métier et intégrateur de solution
  • Particularités des projets implémentant des processus métier et facteurs de réussite
  • Présentation des standards

Modélisation de processus
  • Programmation orientée processus, graphes orientés et états en attente
  • Représentation graphiques des processus
  • Noeuds, transitions et jetons
  • Modèle d'éxécution du graphe, variables de processus
  • Persistance, transactions et services

Introduction à jBPM
  • Objectifs du projet
  • Le langage jPDL, comparaison avec BPEL
  • Le moteur de workflow et la gestion de processus
  • Le modeleur graphique
  • La web console
  • Les différentes configurations disponibles
  • Travaux Pratiques
  • Installation de jBPM et mise en place de l'environnement Eclipse

Premier pas
  • Modélisation avec jBPM Designer et syntaxe XML
  • Responsabilité des nœuds
  • Principaux types de noeuds (tâche, état, décision, fork, join)
  • Les transitions
  • Actions et événements
  • Processus et sous processus, transfert d'informations
  • Démonstration avec jBPM Designer, commentaires du fichier XML
  • Générer une application web pour le prototypage

Problématiques de déploiement
  • Librairie jBPM et dépendances
  • Fichiers de configurations (noeuds, actions, calendrier, variables,etc)
  • Base de données jBPM et relation avec Hibernate, configuration du service de persistance
  • Déploiement pour un .war ou .ear
  • Travaux Pratiques
  • Prise en main du designer, modélisation d'un processus de validation et éxécution du processus dans une application web

Programmation client
  • Exécution d'un processus
  • Instanciation d'un processus et notion de token
  • Rôle des états d'attente et la méthode signal ()

Décomposition de l'éxécution d'une transition
  • Mode asynchrone et démarcation des transactions

Stockage d'un jeton dans la base de données jBPM
  • Le contexte de persistance jbpmContext
  • Méthodes de création et de mise à jour d'un jeton
  • Le service DbPersistenceService et DbPersistenceServiceFactory
  • jbpmContext avec d'autres services de persistance (EJB, Hibernate ou DataSource JDBC)

L'utilisation des variables de processus
  • Types supportés
  • Cycle de vie, persistance et périmètre d'application
  • Personnalisation de la persistance avec les convertisseurs

Utiliser des actions personnalisées
  • Configuration et interface ActionHandler
  • Les événements et leur propagation
  • Scripts

Gestion des processus
  • Déployer des processus programmatiquement
  • Versionning et changement à chaud
  • Travaux Pratiques Exécution d'un processus avec conditions via une application web

Gestion de tâches
  • Introduction
  • Définition de tâche et instance
  • Affectation de tâche, les todo list
  • Cycle de vie d'une tâche
  • Fin de tâche et continuation du processus

Affectation de tâche
  • Acteurs, groupe d'acteurs et couloirs d'activité
  • L'interface AssignementHandler
  • Variables de tâche et contrôleurs
  • Actions associées

Annuaire
  • L'annuaire par défaut de jBPM
  • Calcul des affectations
  • Utiliser un annuaire existant
  • Travaux Pratiques
  • Mise en place d'un annuaire et d'une application de gestion de tâches

Problématiques connexes
  • Gestion documentaire
  • Le standard Java Content Repository (JCR) et l'implémentation JackRabbit
  • Variables de processus

Timers
  • Principe et déploiement

Cas d'utilisation (temporisateur, processus d'escalade, etc.)
  • Calendrier métier

Notifications via email
  • Implémentation via des actions

Modélisation d'une notification
  • Notification lors de l'affectation de tâche
  • Reminders
  • Templating et mise en place

Gestion des traces
  • Création des traces d'éxécutions du processus
  • Configuration, mise en place d'entrepôt de données (data warehousing)
  • Analyse des logs et Monitoring (BAM)
  • Travaux Pratiques

Reprise du TP précédent avec ajout de notifications et créations de traces