Egov Innovation Center - Veille Technologique : Outils du BPMN 2.0 HEIA-FR 18.05.2016 - eGov Innovation ...

 
Egov Innovation Center - Veille Technologique : Outils du BPMN 2.0 HEIA-FR 18.05.2016 - eGov Innovation ...
Egov Innovation Center

Veille Technologique :
Outils du BPMN 2.0
HEIA-FR
18.05.2016

Ce document présente l’étude qui a été mise en place afin d’évaluer les outils Bonita et jBPM de JBoss.
Ces deux plateformes permettent de créer, manipuler et exécuter des Bps au format BPMN 2.0. Les
deux outils sont tout d’abord présenté, puis comparé l’un à l’autre. La conclusion de ce document
présente l’option retenue ainsi que les choix décidés quant à la réalisation d’un prototype.
Egov Innovation Center - Veille Technologique : Outils du BPMN 2.0 HEIA-FR 18.05.2016 - eGov Innovation ...
Veille Technologique Outils BPMN 2.0

Table des matières
1     Introduction ................................................................................................................ 3
2     Outils et Base de Données Sémantique ....................................................................... 4
    2.1     Protégé - Modélisation d’ontologie.........................................................................................4
    2.2     Base de données web sémantique ..........................................................................................4
3     Concept BPM ............................................................................................................... 5
    3.1     Composants de base d’un BPM ...............................................................................................5
    3.2     Acteurs et Messages sur un BPM ............................................................................................6
4     Evaluation de logiciel BPM .......................................................................................... 7
    4.1     Présentation de Bonita ............................................................................................................7
    4.2     Présentation de jBPM (solution de JBoss) ...............................................................................9
    4.3     Comparaison des logiciels .....................................................................................................12
    4.4     Choix du logiciel.....................................................................................................................14
5     Conception ................................................................................................................ 14
    5.1     Solution A : Modification du moteur jBPM ...........................................................................15
    5.2     Solution B : Adaptation du code source de l’application ......................................................15
    5.3     Solution C : Gestion des données sur l’application finale .....................................................15
6     Solution Retenue et Conclusion ................................................................................. 16
7     ANNEXE : Problèmes rencontrés avec jBPM ............................................................... 17
    7.1     Problèmes d’affichage ...........................................................................................................17
    7.2     Problèmes occasionnels lors du déploiement de l’application web .....................................17
    7.3     Contradictions entre les validateurs......................................................................................17
    7.4     Limitations dans le moteur de workflow ...............................................................................17
    7.5     Communauté peu présente ..................................................................................................18
    7.6     Le Framework jBPM 6 est une nouvelle release ...................................................................18
    7.7     Gestion des messages ...........................................................................................................18
    7.8     Génération de formulaires ....................................................................................................18
    7.9     Disparition des composants d’un diagramme .......................................................................19
    7.10    Traitement des erreurs ..........................................................................................................19

                                                                                                                                  Page 2 on 19
Egov Innovation Center - Veille Technologique : Outils du BPMN 2.0 HEIA-FR 18.05.2016 - eGov Innovation ...
Veille Technologique Outils BPMN 2.0

Veille Technologique
Outils du BPMN 2.0
1 Introduction
Le web sémantique est un mouvement initié par le groupe international World Wide Web Consortium
(W3C) dans le but d’intégrer un contenu sémantique aux pages web. En effet, sur le web actuel, les
données contenues dans une page HTML sont uniquement lisibles par l’utilisateur. C’est donc à
l’utilisateur de faire lui-même le lien entre différentes pages, par la valeur de leur contenu.
Le web sémantique permet d’ajouter des données dans les pages qui rendent compréhensible le
contenu de celles-ci à l’ordinateur. Cela permettrait par exemple de réaliser directement des
traitements sur les données, et non pas sur le texte, ou de faciliter grandement les recherches sur
n’importe quel moteur. Actuellement, lors de requêtes effectuées sur la plupart des moteurs, les liens
proposés manquent souvent de pertinence par rapport à la recherche. Le web sémantique pourrait
avoir un intérêt non négligeable dans ce type de contexte.
De plus en plus de projets utilisant cette technologie se développent. Le site DBPedia1 par exemple,
vise à une sémantisation du contenu du site Wikipédia; ce projet, initié à l’université libre de Berlin, ne
prend en compte que les pages au contenu anglophone. Un projet similaire qui se concentre davantage
sur les pages francophones a été créée en France sous le nom de SemanticPedia2.
L’outil principale du Web Sémantique est l’ontologie. Une ontologie offre une « spécification explicite
de la conceptualisation d’un domaine ». Cela permet, dans un contexte donné, d’organiser des
concepts sous forme de graphe, et ainsi de proposer une modélisation d’un ensemble de
connaissances.
Le site web Schema.org3 propose des modèles d’ontologie, représentant une grande variété d’entités.
Par exemple, une ontologie représentant une personne est proposée ; elle décrit un schéma possible
qui permet de représenter et de lier les informations d’un individu, et propose un exemple
d’implémentation de ce schéma sous un langage lié au web sémantique : le RDFa.

1
  http://www.dbpedia.org
2
  http://www.semanticpedia.org
3
  http://www.schema.org

                                                                                              Page 3 on 19
Egov Innovation Center - Veille Technologique : Outils du BPMN 2.0 HEIA-FR 18.05.2016 - eGov Innovation ...
Veille Technologique Outils BPMN 2.0

2 Outils et Base de Données Sémantique
Ce chapitre présente une liste non-exhaustive d’outils et de bases de données sémantiques pouvant
être utilisées dans le cadre d’un projet sémantique.

2.1 Modélisation d’ontologie - Protégé
Créé par l’Université de Stanford, Protégé4 est un logiciel qui offre à son utilisateur une interface
graphique lui permettant d’établir des ontologies, sans se soucier des détails du langage RDFS/XML
nécessaires pour modéliser l’ontologie. La création automatique des ontologies à partir d’une
description purement graphique est possible mais nécessite des outils supplémentaires qui ne donnent
pas des résultats satisfaisants à l’heure actuelle.

2.2    Base de données sémantiques
RDF (Resource Description Framework5) est une norme fondamentale pour décrire les ressources dans
le web sémantique. Les données peuvent ainsi être stockées dans une base de données de type
triplestore sous forme de triplets. De la même manière qu’une base de données de type relationnel,
on y stocke les ressources et on les récupère avec des requêtes. Le langage de requête SPARQL6 entre
alors en jeu.

2.2.1 OpenRDF (Sesame)
OpenRDF7 est un Framework open-source pour le traitement des données RDF. Il propose une API
simple d’utilisation qui permet d’interagir avec un système de stockage RDF. Il supporte plusieurs
langages liés au RDF, le SPARQL pour les requêtes et pour le format des données : le RDF/XML, RDFS,
le TriG et le TriX entre autre.
En plus de cela, il dispose également d’une intégration web fonctionnant sous Tomcat gérant la
concurrence d’accès aux données.

2.2.2 Jena
Jena8 est un Framework Java open-source. Jena propose en plus nativement un support pour l’OWL
(Ontology Web Language9) que Sesame ne possède pas. Jena offre divers outils annexes comme la
gestion des données sémantiques à l’aide d’une implémentation Java.
Contrairement à OpenRDF, Jena ne propose pas d’intégration web (ou serveur dédié) pour l’accès aux
données. Jenna est aujourd’hui maintenu par la fondation Apache10.

4
  http://protege.stanford.edu
5
  https://www.w3.org/RDF/
6
  https://www.w3.org/TR/rdf-sparql-query/
7
  http://rdf4j.org
8
  https://jena.apache.org
9
  https://www.w3.org/TR/owl-features/
10
   http://www.apache.org

                                                                                         Page 4 on 19
Egov Innovation Center - Veille Technologique : Outils du BPMN 2.0 HEIA-FR 18.05.2016 - eGov Innovation ...
Veille Technologique Outils BPMN 2.0

3 Concept BPM

3.1 Composants de base d’un BPM
Le BPM (Business Process Modeling) est une approche consistant à modéliser informatiquement les
processus métiers d’une organisation (entreprise, administration publique, etc.) afin d’améliorer et
automatiser leur gestion. Le BPMN (Business Process Model notation) est une norme de notation pour
la modélisation de processus métiers. La première version BPMN 1.2 était une notation graphique non
exécutable. La nouvelle version BPMN 2.0 a évolué vers une notation basée sur XML permettant
l'échange de modèles exécutables.
Ci-dessous est présentée une partie du diagramme BPMN qui représente la première page du
formulaire à l’aide d’un exemple BPM simple :

                        Figure 1 - Partie du diagramme représentant la première page du formulaire

          Objet rond : représente le point de départ du processus, il ne fournit pas d’information
           spécifique (exemple : « Start1 »)
          Objet rectangle : représente une page qui peut porter un formulaire ou une interaction avec
           l’utilisateur (symbole utilisateur), ou un processus (symbole roues dentées)
                o   « Identité » contient un formulaire
                o   « Vérifier Identité » qui porte un service (script GROOVY11, langage qui dérive de Java)
                    dont le rôle est de vérifier la cohérence des données (nommé connecteurs dans
                    BonitaSoft12)
          Objet losange : représente des conditions logiques permettant de faire évoluer le BPM vers
           une étape suivante
                o   « Gateway7 » ramène l’utilisateur à « Identité » dans le cas où une incohérence a été
                    détectée, ou l’envoie à « Valider Identité » dans le cas contraire pour afficher au
                    citoyen les données entrées et demander son consentement.
                o   Si l’utilisateur consent, il passe à la page « Info partenaire », sinon il revient à
                    « Identité ». Presque chaque page du formulaire fonctionne de la même manière que
                    cette première page.

11
     http://www.groovy-lang.org
12
     http://www.bonitasoft.com

                                                                                                     Page 5 on 19
Egov Innovation Center - Veille Technologique : Outils du BPMN 2.0 HEIA-FR 18.05.2016 - eGov Innovation ...
Veille Technologique Outils BPMN 2.0

3.2 Acteurs et messages sur un BPM
Ci-dessous, un exemple contenant des acteurs et des messages :

                         Figure 2 - Partie du diagramme représentant l’envoie des données

       Le Pool sert à fixer l’acteur, soit l’utilisateur qui a le droit de lancer le processus, donc de
        remplir le formulaire. Ici l’acteur est donc un citoyen quelconque, soit un utilisateur
        appartenant au groupe Citoyen dans la hiérarchie des acteurs qui ont été créés.
            o    Sur la gauche de la figure, la présence des mots « Citoyen » et « Demande de rente »
                 qui caractérisent le « Pool » et le « Lane » dans lesquels se trouve le diagramme.
       La Lane permet la séparation entre plusieurs diagrammes au sein d’un même BPM

                                                                                            Page 6 on 19
Egov Innovation Center - Veille Technologique : Outils du BPMN 2.0 HEIA-FR 18.05.2016 - eGov Innovation ...
Veille Technologique Outils BPMN 2.0

4 Evaluation des logiciels BPM
L’évaluation des logiciels a consisté à réaliser une implémentation BPMN pour un formulaire de
demande AVS. La prise en main d’un outil BPM n’est pas aisée pour un utilisateur non-expert. Un
temps de formation et d’adaptation est nécessaire pour chacun des logiciels.
Deux logiciels ont été retenu : BonitaSoft ainsi que la solution jBPM de JBoss. Afin d’évaluer au plus
juste, un formulaire de demande AVS13 a été modélisé pour chaque logiciel.

                                          Figure 3 - Logique de BonitaSoft

4.1 Présentation de Bonita
Bonita14 (version 6.0.0) est un logiciel gratuit qui offre une interface graphique pour faciliter la création
des processus BPM suivant la norme BPMN 2.0.

                                     Figure 4 - Création de BPM avec Bonitasoft

13
   Le processus de demande de rente AVS a été documenté et modélisé dans le document JBoss jBPM Proof-of-Concept –
Based on the AVS Use Case
14
   http://fr.bonitasoft.com

                                                                                                    Page 7 on 19
Egov Innovation Center - Veille Technologique : Outils du BPMN 2.0 HEIA-FR 18.05.2016 - eGov Innovation ...
Veille Technologique Outils BPMN 2.0

L’interface présente une palette contenant les différents types d’éléments qui constituent un
diagramme. Une sous-fenêtre au bas de la page montre les onglets d’accès aux propriétés de chaque
élément (les variables définies, les formulaires, les connecteurs, etc.). Les détails seront expliqués
ultérieurement.

4.1.1 La validation des données
Bien que BonitaSoft offre la possibilité de créer un validator, ce dernier est limité aux types primitifs
(entier ou réel dans un TextField) et quelques autres types légèrement plus complexes (format email),
mais il est impossible d’imposer une expression régulière à vérifier. La solution apportée était la
création d’un code Java exécuté par un service (Script dans un Service Task) qui fait lui-même la
validation.

            Figure 5 - Création de script Groovy pour la validation et l'adaptation dynamique des formulaires

En présence d’erreurs, un champ apparaît dans la page initiale dans lequel s’affiche le message
d’erreur. Ce problème a largement complexifié le diagramme général.

4.1.2 La création de formulaire
La création d’une page qui puisse admettre plusieurs « instances de classes » : il s’agit par exemple de
la page pour remplir les détails des enfants de l’assuré. Etant donné que l’on peut avoir un nombre
illimité d’enfants, il est possible de créer une page pour remplir les détails d’un seul, puis cocher une
case « Nouvel enfant ? » pour pouvoir revenir à cette même page et remplir les détails d’un autre.

                                                                                                            Page 8 on 19
Egov Innovation Center - Veille Technologique : Outils du BPMN 2.0 HEIA-FR 18.05.2016 - eGov Innovation ...
Veille Technologique Outils BPMN 2.0

                            Figure 6 - Création assistée des formulaires avec Bonitasoft

Cette solution n’était pas très élégante et elle a été remplacée par un tableau (on peut
ajouter/supprimer des lignes) et un script qui vérifie par exemple que la chaîne de caractères entrée
pour la date de naissance de chaque enfant correspond bien à une date (expression régulière).

4.2 Présentation de jBPM (solution de JBoss)
Le Framework jBPM (version 6.0) est basé sur un système de type relationnel. Par défaut, il utilise une
base de données. Le Framework jBPM rend toutefois possible l’utilisation de DB2, Derby, HSQLDB,
MySQL5, MySQL InnoDB, Oracle, PostreSQL, SQL Server et SQL Server 2008.
La totalité du projet utilise la spécification JPA, implémentée par Hibernate 15. Hibernate permet
justement la communication avec les systèmes susmentionnés au travers de ses différents dialectes.
Le Framework jBPM n’est pas directement un programme « tout-en-un » permettant de modéliser
puis d’exécuter des processus métiers décrits avec la norme BPMN 2.0. Ce Framework est composé
d’une multitude de composants modulaires où chacun a un rôle particulier. Afin de comprendre
l’utilité de chacun, ceux-ci sont présenté ci-dessous.

15
     http://hibernate.org

                                                                                           Page 9 on 19
Veille Technologique Outils BPMN 2.0

4.2.1 Framework jBPM JBoss (Intégration à Eclipse)
La jBPM est une librairie mise en place par JBoss Community. Installée sur Eclipse, elle permet de créer
des processus suivant la norme BPMN 2.0. Les plugins sont à l’origine de l’interface graphique qui
ressemble d’ailleurs à celle de BonitaSoft. Le serveur Tomcat d’Apache supporte l’application « jBPM
Console » à travers laquelle un utilisateur du système se connecte.

                                       Figure 7 - Plugin jBPM pour Eclipse

4.2.2 KIE Workbench
KIE Workbench (jbpm-console-ng) est l’application web qui permet de modéliser des diagrammes, de
lancer des processus et de compléter les tâches y relatives. Elle permet également de gérer les
« repositories » (environnement et groupes de projets BPM). Elle n’est pas encore aboutie et présente
encore quelques bugs.

                             Figure 8 - Paramétrages du BPM via l'interface web KIE

Cette application web a comme avantage de centraliser tout ce dont le développeur a besoin pour
créer et faire fonctionner un BPM contrairement aux versions précédentes où plusieurs applications
web étaient nécessaires (modélisation, déploiement, ...). KIE Workbench permet de modéliser un
diagramme mais également les formulaires de tâches avec un éditeur de formulaire intégré ou avec
un éditeur de code (format HTML/FTL).

                              Figure 9 - Création d'un BPM avec l'interface web KIE

                                                                                          Page 10 on 19
Veille Technologique Outils BPMN 2.0

4.2.3 API
Il est possible de travailler avec l’API proposée par jBPM. Pour autant que le diagramme comporte
uniquement des éléments pris en charge par le moteur de workflow de jBPM, il est possible, au moyen
de librairies fournies, de le charger dans notre propre application et de travailler les différentes tâches
modélisées.

4.2.4 Repositories
Les projets jBPM sont stockés dans un ou plusieurs « repositories » locaux. Ces derniers sont de type
git2. Ce système est extrêmement pratique si l’on veut travailler, par exemple, autant avec KIE
Workbench qu’avec le plugin Eclipse.

                    Figure 10 - Intégration de la gestion des repositories dans l’interface web KIE

4.2.5 Intégration de jUnit
Le Framework jBPM offre la possibilité de tester les diagrammes BPM. Bien que ce ne soit pas du code
en soit, les diagrammes ont un cycle de vie. De plus, comme ils peuvent être mis à jour de manière
dynamique, il peut être judicieux de les tester.
Après avoir modélisé un diagramme BPM, il est possible de l’importer dans Eclipse, grâce à git, par
exemple, et de générer une classe de test, que l’on peut modifier puis de la lancer en tant que test
unitaire jUnit.

                                                                                                      Page 11 on 19
Veille Technologique Outils BPMN 2.0

4.3 Comparaison des logiciels
Lors de la prise en main appliquée à un cas concret, comme attendu, les deux logiciels se sont révélés
équivalents, chacun ayant ses propres caractéristiques. Le Framework jBPM semble être le plus
complet et le plus modulable en comparaison à BonitaSoft mais aussi plus ouvert à l’évolution (jBPM
est OpenSource).
Cette section présente les comparaisons, après utilisation, entre le logiciel BonitaSoft et le Framework
jBPM (JBoss) pouvant-être intégré à Eclipse.

4.3.1 Documentation
En apprenant à utiliser un logiciel ou une librairie, la documentation est une nécessité. Vu que la
technologie BPM est relativement récente et ne cesse d’évoluer, on ne peut pas s’attendre à la
perfection. Mais on peut facilement dire que la documentation de la jBPM est bien meilleure que celle
de BonitaSoft (tutoriels, forums, etc.).

4.3.2 Interfaces graphiques et démarrage
Du point de vue des interfaces graphiques, BonitaSoft est plus facile à apprendre et à utiliser. Un
exemple à l’appui est la création des formulaires illustré ci-dessous. Bonita met à disposition un logiciel
tout-en-un permettant une vue globale de tout le projet. Il est également équipé de nombreux éditeur
graphique (GUI) facilitant la vie de l’utilisateur expert.
L’autre logiciel, jBPM, est quant à lui plus complexe à mettre en place et à utiliser. A l’instar de Bonita,
il s’agit d’un plugin Eclipse nécessitant l’installation de nombreuses dépendances. L’interface
graphique de jBPM est sensiblement celle d’Eclipse. Le plugin étant encore jeune, l’intégration n’est
pas encore parfaite.

                     Figure 11 – Palette de BonitaSoft facilitant la mise en forme des formulaires

La création et l’édition des variables est aussi plus évidente sur BonitaSoft où il suffit d’accéder à un
onglet pour trouver les boutons d’ajout et de suppression des variables.
La jBPM de son côté requiert une connaissance de la librairie et des composants initialisés afin de
pouvoir coder la manipulation des variables. Il existe d’autres différences et ressemblances (création
des diagrammes) - les spécificités du langage ne sont pas présentées dans ce document.

                                                                                                     Page 12 on 19
Veille Technologique Outils BPMN 2.0

4.3.3 Création des formulaires
Il est vrai que BonitaSoft facilite la création des formulaires, mais si l’utilisateur (celui qui crée le
processus) connaît déjà le langage HTML, il préférera certainement créer le formulaire exactement
comme il désire sans être restreint aux éléments de la palette

                                    Figure 12 – Connaissances Web (FTL) requises

4.3.4 Définition des acteurs
La librairie jBPM offre un moyen de spécifier dynamiquement les acteurs d’un processus, mais pas
BonitaSoft. Ceci a une importance majeure illustrée dans notre application même. En effet, le
processus modélisant le système de l’AVS fait intervenir différents types d’acteurs : un citoyen, un
employé de la caisse, et éventuellement des personnes spécifiées par le citoyen durant son
remplissage du formulaire, telles que son représentant, ses enfants, etc.
Le problème qui se lève sous BonitaSoft est le suivant : l’acteur du processus de remplissage du
formulaire appartient à un groupe « Citoyens » qui contient tous les citoyens du système. La tâche
« La personne tierce est informée (enfants par exemple) » requiert pour acteurs les enfants du citoyen
en question. La définition des acteurs étant statique, il faudra créer pour chaque citoyen un groupe
qui lui est lié et qui contient ses enfants. Pire, chaque citoyen devra avoir son propre processus et celui
de ses enfants ! Ceci ne constitue pas une solution. La jBPM résout ce problème en acceptant d’avoir
pour acteur du processus l’identificateur (ID) d’un acteur lu à partir d’une variable définie par le
citoyen ou par programmation (un script qui modifie le contenu de la variable à l’ID de l’enfant tiré
d’une base de données ou n’importe quelle autre source).

4.3.5 Création des processus
Tout comme la définition des acteurs, la jBPM permet de créer des processus entiers de manière
dynamique, alors que sous BonitaSoft les processus sont toujours créés de manière statique.
Cependant il n’est pas facile d’établir tout un processus en Java.

4.3.6 Exportation et réutilisabilité
La BPMN n’est en fait qu’un simple schéma XML devant répondre à une spécification établie16.
Contrairement à ce que l’on pourrait croire, tous les éditeurs de BPM ne respectent pas cette norme.
C’est notamment le cas pour la solution BonitaSoft. Plusieurs balises XML utilisée sont spécifiques au
logiciel et sont donc basées sur d’autres schémas.
A contrario, les fichiers XML produits par la jBPM respectent la norme.

16
     http://www.omg.org/spec/BPMN/2.0/

                                                                                             Page 13 on 19
Veille Technologique Outils BPMN 2.0

4.4 Choix du logiciel
Le logiciel BonitaSoft possède de nombreux avantage. Il s’agit d’un logiciel tout en un (modélisation,
moteur d’exécution, etc.). Son interface graphique permet une utilisation facilitée. De plus, il dispose
d’une communauté grandissante et un forum actif17. Malheureusement, celui-ci est trop fermé et ne
respecte pas entièrement la norme BPMN 2.0 imposée par les standards. Il devient alors inutilisable
si l’on souhaite pouvoir reprendre un BPM ou le faire interagir avec des application tierces.
Ce dernier point suggère l’utilisation de jBPM de JBoss. Bien que plus complexe à prendre en main,
celui-ci s’avère entièrement compatible avec la norme BPMN 2.0.
Après avoir commencé diverses réalisations avec le logiciel BonitaSoft, il a été nécessaire de se
résigner à utiliser le Framework jBPM pour une meilleure intégration. De plus, du point de vue
flexibilité, jBPM s’avère bien plus puissant.

5 Conception
Après le travail d’analyse de la section précédente et dans l’optique d’amener de la sémantique dans
le BPM du point de vue du stockage et de la prise de décision en fonction d’un contexte donné, cette
section présente les alternatives existantes pour une implémentation basée sur la plateforme JBoss.
Pour l’heure, un BPM s’exécute et enregistre ses données le plus souvent dans une base de données
(SGBD) relationnelle. Les interactions BPM/SGBD sont complexes à mettre en place et nécessitent la
création de processus particuliers.
Tout en respectant la norme BPMN 2.0 et en proposant l’intégration d’une communication facilitée
entre formulaires et bases de données, il est proposé ici un système capable d’intercepter les données
saisies par l’utilisateur et de les convertir à la volée dans un format sémantique. Les transformations
à effectuer se font à l’aide de règles définies dans une ontologie, configurables par un utilisateur
expert. Cette interconnexion entre BPM et base de données sémantique, permettra de faire remonter
des informations contextuelles, pouvant permettre l’automatisation de certains choix tout au long du
processus.
Fondamentalement, il y a 3 possibilités qui sont envisageables :
          Modifier les sources du moteur jBPM
          Gérer les requêtes vers le système triplestore au niveau applicatif
          Elaborer un middleware pour traduire les requêtes
Le but étant d’assurer un maximum de transparence pour le développeur et l’utilisateur et d’atteindre
un niveau de généricité adéquat. Il va sans dire que l’intégrité et la cohérence des données doivent
être respectées.

17
     http://community.bonitasoft.com

                                                                                          Page 14 on 19
Veille Technologique Outils BPMN 2.0

5.1 Solution A : Modification du moteur jBPM
Une première modification consisterait à modifier le moteur jBPM. Le Framework jBPM a l’avantage
d’être open source. Bien que sa communauté soit peu active, ses développeurs proposent une bonne
base pour traiter des processus de complexité moyenne. L’entièreté du projet est basée sur les
technologies qui ne sont pas facilement accessibles :
       Structure, découpage et gestion du projet avec Maven
       Persistance assurée par Hibernate qui implémente Java Persistance API
       Déploiement prévu sur un serveur d’application JBoss
       Utilisation courante des EJB4
       Utilisation courante des CDI5 (injections)

5.2 Solution B : Adaptation du code source de l’application
Modifier le code source de jBPM semble une option intéressante. Cette alternative permettrait
d’obtenir le résultat escompté.
L’avantage premier est de pouvoir ainsi agir au plus bas niveau et avoir le contrôle sur la manipulation
des données afin d’en garder la cohérence et l’intégrité. Par contre, le Framework jBPM est un projet
qui n’est pas encore abouti, et il ne prend pas actuellement pas en charge la totalité des éléments de
la norme BPMN 2.0. Il a déjà beaucoup évolué et va encore évoluer. Le fait de modifier les sources de
jBPM à ce stade peuvent demander un travail de maintenance assez conséquent lors des mises à jours
futures de ce dernier.

5.3 Solution C : Gestion des données sur l’application finale
Cette solution serait de gérer toutes les requêtes sémantiques sur notre application finale. Ceci signifie
que notre application finale ferait ses requêtes sur jBPM de manière normale et qu’à chaque appel et
réponse, il sera nécessaire de traiter ces derniers, et aller, au besoin, requêter dans le système
triplestore. Cette manière de faire peut fonctionner, mais, forcément, n’est pas la plus efficace dans
le sens où beaucoup de requêtes supplémentaires devront être faites et beaucoup d’entre elles seront
inutiles.

                                                                                            Page 15 on 19
Veille Technologique Outils BPMN 2.0

6 Solution retenue et conclusion
L’idée principale du projet est d’allier le moteur BPM aux avantages du web sémantique. Dans notre
cas, l’avantage principal apporté par le web sémantique est le partage d’informations communes aux
différentes applications du projet eGov et de gagner en efficacité en évitant les demandes redondantes
à l’utilisateur final.
Pour les raisons évoquées plus haut, dans la section contributions proposées, le logiciel retenu est
jBPM principalement pour sa flexibilité et son respect de la norme BPMN 2.0.
Il est important de différencier deux types d’éléments au niveau de la persistance des données.
       Le Framework jBPM utilise la persistance des données pour sa propre exécution. C’est-à-dire
        qu’il va stocker un certain nombre d’informations utiles à son bon fonctionnement et, bien
        sûr, à l’exécution des workflows.
       D’autre part, il y a les informations recueillies (outputs) ou injectées (inputs) dans les tâches.
C’est sur ce second cas (solution B) que la contribution va-t-être focalisée
Le transfert des données du processus BPM à l’ontologie se fait par programmation, typiquement au
niveau de services (Service Task) ajoutés aux diagrammes BPM. Pour assurer cette communication, il
sera nécessaire d’utiliser la librairie Sesame de OpenRDF pour pouvoir bâtir une base de données
structurée suivant l’ontologie créée sous format RDF/XML. Il faudra ensuite ajouter le fichier RDF qui
contient l’ontologie à un nouveau « Repository » de Sesame. Il sera alors possible d’exécuter des
requêtes dans le langage SPARQL pour lire, insérer et modifier les informations.
Pour mener à bien la suite de ce projet, la contribution B « Adaptation du code source de l’application »
a été retenue. Celle-ci semble être celle offrant le plus de possibilités et extensibilité.

                                                                                             Page 16 on 19
Veille Technologique Outils BPMN 2.0

7 ANNEXE : Problèmes rencontrés avec jBPM
Durant l’évaluation du Framework jBPM plusieurs problèmes auxquels il faudra porter une attention
particulière lors du développement sont apparus. A noter que la plupart de ces problèmes sont liés
directement avec l’interface de programmation et non pas dans la logique de l’application BPM ou de
son moteur d’exécution.
Les problèmes suivants ont été rencontrés dans la version 6.0 de jBPM.

7.1 Problèmes d’affichage
La nouvelle application web KIE Workbench est encore remplie de bug, essentiellement graphiques
tels que des boutons qui ne s’affichent pas, des barres qui disparaissent, des calques à moitié visibles.
Changer de page puis revenir sur la page désirée permet bien souvent de résoudre le problème.

7.2 Problèmes occasionnels lors du déploiement de l’application web
KIE Workbench ne se déploie pas toujours, ou avec un certain retard dans le serveur d’application
JBoss lorsqu’on lance l’environnement de démonstration fourni par jBPM. Ceci ne posera pas de
problème dans un environnement de production où l’on aura un contrôle total de nos actions, plutôt
que d’exécuter le script fourni.

7.3 Contradictions entre les validateurs
Le Framework jBPM permet la modélisation de diagrammes par KIE Workbench mais aussi par le plugin
BPMN 2.0 Modeler pour Eclipse. Tous deux utilisent et respectent la norme BPMN 2.0 mais leurs
validateurs respectifs ne sont pas toujours en adéquation. Le validateur du plugin Eclipse relèvera des
erreurs ou avertissements qui ne seront pas donnée par KIE Workbench et vice-versa. Les forums
officiels prétendent que certaines de ces erreurs peuvent être ignorées.

7.4 Limitations dans le moteur de workflow
A l’heure actuelle, jBPM ne couvre pas encore la totalité des éléments de la norme BPMN 2.0. Bien
que les outils permettent de modéliser une large palette d’éléments, le moteur de workflow n’est pas
encore apte à tous les prendre en compte. Ceci pose notamment problème avec les diagrammes de
communication qui mettent en scène différents utilisateurs dans des swimlanes et pools. On ne peut
donc pas décrire l’interaction avec ces derniers. Le support de ce genre de diagramme ne fait pas
encore partie de la roadmap de jBPM. Un des développeurs de jBPM parle de vouloir consolider
davantage l’exécution des tâches avant d’élargir les possibilités et encourage la communauté à
prendre part au projet.

                                                                                           Page 17 on 19
Veille Technologique Outils BPMN 2.0

7.5 Communauté peu présente
Certaines réponses à nos questions peuvent être trouvées sur internet, notamment sur les forums
officiels de JBoss7. Cependant ces derniers ne sont que très peu réactifs. Beaucoup de questions,
visualisées des centaines de fois, restent sans réponse. Ce sont surtout les développeurs de jBPM qui
répondent aux questions qui paraissent toutes plus spécifiques les unes que les autres. Ceci donne
l’impression que jBPM n’est pas encore assez répandu et que peu de développeurs sont vraiment à
l’aise avec cette solution.
Les tutoriels sont rares et ne couvrent qu’une mineure partie des éléments BPMN 2.0. Il faut bien
souvent se rabattre sur les tests unitaires fournis pour savoir comment les différentes fonctionnalités
interagissent entre elles.

7.6 Le Framework jBPM 6 est une nouvelle release
La documentation officielle pour jBPM 6 existe mais ne couvre pas encore la totalité du projet. Certains
points sont d’ailleurs mentionnés par des titres mais ne comportent pas de texte. Cependant, ce qui a
déjà été fait est valable.
La version 6 est très différente des versions inférieures au niveau du remaniement des outils. C’est
pourquoi beaucoup de tutoriels trouvés présentent des outils obsolètes pour jBPM 6.

7.7 Gestion des messages
Bien que les diagrammes de collaboration ne soient pas pris en charge, il est tout de même possible
de modéliser des processus qui se lancent en fonction de la réception de messages (Message Start
Event). En utilisant jUnit, on peut coder l’envoi d’un message qui réveille bel et bien le processus. Le
message arrive comme il se doit mais le traitement des paramètres n’est pas aussi simple.
Un exemple officiel est fourni avec jBPM 6 CR2. Ce dernier montre le réveil d’un processus grâce à un
message paramétré d’un String, ce qui fonctionne très bien. Mais la tâche suivante, dont le but est
d’afficher ce String, n’affiche rien.

7.8 Génération de formulaires
KIE Workbench permet de générer les formulaires d’un processus. Lors de l’utilisation de Data Modeler
pour créer une classe Person puis l’utiliser dans un processus, le Form Modeler va créer des champs
pour chacun des attributs de la classe Person. Dans le cas où des données sont déjà connues, les
champs correspondant devraient être déjà renseignés. Cependant, ceci n’est pas fait
systématiquement. Cela se produit au lancement d’un processus. Le système réagi comme si le
formulaire de processus n’était pas enregistré avant de partir sur la première tâche.

                                                                                          Page 18 on 19
Veille Technologique Outils BPMN 2.0

7.9 Disparition des composants d’un diagramme
Pour une raison encore indéterminée, la totalité des composants des diagrammes BPM ont disparu,
ne laissant que les connections. À ce stade, Il n’est plus possible d’ajouter aucun élément sur le
diagramme, excepté des connections.
Après quelques jours, plusieurs utilisateurs se sont manifestés avec le même problème. Bien
qu’aucune explication officielle ne soit donnée, cela semble provenir de problèmes d’incompatibilité
(graphique) avec le navigateur Chrome, suite à une de ses dernières mises à jour. Il semblerait que les
navigateurs à favoriser soient Internet Explorer et Firefox.

7.10 Traitement des erreurs
La norme BPMN 2.0 prévoit un élément clé pour le traitement d’erreur. Son but est de « catcher »
l’erreur qui pourrait survenir dans une tâche ou un sous-processus et de rediriger le flux vers un chemin
différent.
Le composant est implémenté et s’active si une exception Java est levée. Cependant, en version 6.0, il
n’est pas prévu de pouvoir récupérer cette exception dans la tâche suivante pour la traiter. Après
discussion avec un développeur jBPM, cette fonctionnalité est prévue pour la version 6.1 de jBPM.

                                                                                           Page 19 on 19
Vous pouvez aussi lire