Veille Technologique : Outils du BPMN 2 -...

19
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.

Transcript of Veille Technologique : Outils du BPMN 2 -...

Page 1: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

Egov Innovation Center

VeilleTechnologique:OutilsduBPMN2.0HEIA-FR18.05.2016

Cedocumentprésentel’étudequiaétémiseenplaceafind’évaluerlesoutilsBonitaetjBPMdeJBoss.Cesdeuxplateformespermettentdecréer,manipuleretexécuterdesBpsauformatBPMN2.0.Lesdeuxoutils sont toutd’abordprésenté,puiscomparé l’unà l’autre. Laconclusiondecedocumentprésentel’optionretenueainsiqueleschoixdécidésquantàlaréalisationd’unprototype.

Page 2: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page2on19

Tabledesmatières

1 Introduction................................................................................................................3

2 OutilsetBasedeDonnéesSémantique.......................................................................42.1 Protégé-Modélisationd’ontologie.........................................................................................42.2 Basededonnéeswebsémantique..........................................................................................4

3 ConceptBPM...............................................................................................................53.1 Composantsdebased’unBPM...............................................................................................53.2 ActeursetMessagessurunBPM............................................................................................6

4 EvaluationdelogicielBPM..........................................................................................74.1 PrésentationdeBonita............................................................................................................74.2 PrésentationdejBPM(solutiondeJBoss)...............................................................................94.3 Comparaisondeslogiciels.....................................................................................................124.4 Choixdulogiciel.....................................................................................................................14

5 Conception................................................................................................................145.1 SolutionA:ModificationdumoteurjBPM...........................................................................155.2 SolutionB:Adaptationducodesourcedel’application......................................................155.3 SolutionC:Gestiondesdonnéessurl’applicationfinale.....................................................15

6 SolutionRetenueetConclusion.................................................................................16

7 ANNEXE:ProblèmesrencontrésavecjBPM...............................................................177.1 Problèmesd’affichage...........................................................................................................177.2 Problèmesoccasionnelslorsdudéploiementdel’applicationweb.....................................177.3 Contradictionsentrelesvalidateurs......................................................................................177.4 Limitationsdanslemoteurdeworkflow...............................................................................177.5 Communautépeuprésente..................................................................................................187.6 LeFrameworkjBPM6estunenouvellerelease...................................................................187.7 Gestiondesmessages...........................................................................................................187.8 Générationdeformulaires....................................................................................................187.9 Disparitiondescomposantsd’undiagramme.......................................................................197.10 Traitementdeserreurs..........................................................................................................19

Page 3: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page3on19

VeilleTechnologiqueOutilsduBPMN2.0

1 Introduction

LewebsémantiqueestunmouvementinitiéparlegroupeinternationalWorldWideWebConsortium(W3C)danslebutd’intégreruncontenusémantiqueauxpagesweb.Eneffet,surlewebactuel,lesdonnées contenues dans une page HTML sont uniquement lisibles par l’utilisateur. C’est donc àl’utilisateurdefairelui-mêmelelienentredifférentespages,parlavaleurdeleurcontenu.

Le web sémantique permet d’ajouter des données dans les pages qui rendent compréhensible lecontenu de celles-ci à l’ordinateur. Cela permettrait par exemple de réaliser directement destraitementssur lesdonnées,etnonpassur le texte,oude facilitergrandement les recherchessurn’importequelmoteur.Actuellement,lorsderequêteseffectuéessurlaplupartdesmoteurs,lesliensproposésmanquentsouventdepertinenceparrapportàlarecherche.Lewebsémantiquepourraitavoirunintérêtnonnégligeabledanscetypedecontexte.

Deplusenplusdeprojetsutilisantcettetechnologiesedéveloppent.LesiteDBPedia1parexemple,viseàunesémantisationducontenudusiteWikipédia;ceprojet,initiéàl’universitélibredeBerlin,neprendencomptequelespagesaucontenuanglophone.UnprojetsimilairequiseconcentredavantagesurlespagesfrancophonesaétécrééeenFrancesouslenomdeSemanticPedia2.

L’outilprincipaleduWebSémantiqueestl’ontologie.Uneontologieoffreune«spécificationexplicitede la conceptualisation d’un domaine ». Cela permet, dans un contexte donné, d’organiser desconcepts sous forme de graphe, et ainsi de proposer une modélisation d’un ensemble deconnaissances.

LesitewebSchema.org3proposedesmodèlesd’ontologie,représentantunegrandevariétéd’entités.Parexemple,uneontologiereprésentantunepersonneestproposée;elledécritunschémapossiblequi permet de représenter et de lier les informations d’un individu, et propose un exempled’implémentationdeceschémasousunlangageliéauwebsémantique:leRDFa.

1http://www.dbpedia.org2http://www.semanticpedia.org3http://www.schema.org

Page 4: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page4on19

2 OutilsetBasedeDonnéesSémantique

Cechapitreprésenteunelistenon-exhaustived’outilsetdebasesdedonnéessémantiquespouvantêtreutiliséesdanslecadred’unprojetsémantique.

2.1 Modélisationd’ontologie-Protégé

Créé par l’Université de Stanford, Protégé4 est un logiciel qui offre à son utilisateur une interfacegraphiqueluipermettantd’établirdesontologies,sanssesoucierdesdétailsdulangageRDFS/XMLnécessaires pour modéliser l’ontologie. La création automatique des ontologies à partir d’unedescriptionpurementgraphiqueestpossiblemaisnécessitedesoutilssupplémentairesquinedonnentpasdesrésultatssatisfaisantsàl’heureactuelle.

2.2 Basededonnéessémantiques

RDF(ResourceDescriptionFramework5)estunenormefondamentalepourdécrirelesressourcesdansle web sémantique. Les données peuvent ainsi être stockées dans une base de données de typetriplestoresousformedetriplets.Delamêmemanièrequ’unebasededonnéesdetyperelationnel,onystockelesressourcesetonlesrécupèreavecdesrequêtes.LelangagederequêteSPARQL6entrealorsenjeu.

2.2.1 OpenRDF(Sesame)

OpenRDF7estunFrameworkopen-sourcepour le traitementdesdonnéesRDF. IlproposeuneAPIsimple d’utilisation qui permet d’interagir avec un système de stockage RDF. Il supporte plusieurslangagesliésauRDF,leSPARQLpourlesrequêtesetpourleformatdesdonnées:leRDF/XML,RDFS,leTriGetleTriXentreautre.

En plus de cela, il dispose également d’une intégration web fonctionnant sous Tomcat gérant laconcurrenced’accèsauxdonnées.

2.2.2 Jena

Jena8estunFrameworkJavaopen-source.Jenaproposeenplusnativementunsupportpourl’OWL(OntologyWebLanguage9)queSesamenepossèdepas. Jenaoffrediversoutilsannexescomme lagestiondesdonnéessémantiquesàl’aided’uneimplémentationJava.

ContrairementàOpenRDF,Jenaneproposepasd’intégrationweb(ouserveurdédié)pourl’accèsauxdonnées.Jennaestaujourd’huimaintenuparlafondationApache10.

4http://protege.stanford.edu5https://www.w3.org/RDF/6https://www.w3.org/TR/rdf-sparql-query/7http://rdf4j.org8https://jena.apache.org9https://www.w3.org/TR/owl-features/10http://www.apache.org

Page 5: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page5on19

3 ConceptBPM

3.1 Composantsdebased’unBPM

LeBPM(BusinessProcessModeling)estuneapprocheconsistantàmodéliserinformatiquementlesprocessusmétiersd’uneorganisation (entreprise,administrationpublique,etc.)afind’amélioreretautomatiserleurgestion.LeBPMN(BusinessProcessModelnotation)estunenormedenotationpourlamodélisationdeprocessusmétiers.LapremièreversionBPMN1.2étaitunenotationgraphiquenonexécutable. La nouvelle version BPMN 2.0 a évolué vers une notation basée sur XML permettantl'échangedemodèlesexécutables.

Ci-dessous est présentée une partie du diagramme BPMN qui représente la première page duformulaireàl’aided’unexempleBPMsimple:

Figure1-Partiedudiagrammereprésentantlapremièrepageduformulaire

Objet rond : représente le point de départ du processus, il ne fournit pas d’informationspécifique(exemple:«Start1»)

Objetrectangle:représenteunepagequipeutporterunformulaireouuneinteractionavecl’utilisateur(symboleutilisateur),ouunprocessus(symbolerouesdentées)

o «Identité»contientunformulaire

o «VérifierIdentité»quiporteunservice(scriptGROOVY11,langagequidérivedeJava)dont le rôle est de vérifier la cohérence des données (nommé connecteurs dansBonitaSoft12)

Objetlosange:représentedesconditionslogiquespermettantdefaireévoluerleBPMversuneétapesuivante

o «Gateway7»ramènel’utilisateurà«Identité»danslecasoùuneincohérenceaétédétectée, ou l’envoie à « Valider Identité » dans le cas contraire pour afficher aucitoyenlesdonnéesentréesetdemandersonconsentement.

o Si l’utilisateur consent, il passe à la page « Info partenaire », sinon il revient à«Identité».Presquechaquepageduformulairefonctionnedelamêmemanièrequecettepremièrepage.

11http://www.groovy-lang.org12http://www.bonitasoft.com

Page 6: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page6on19

3.2 ActeursetmessagessurunBPM

Ci-dessous,unexemplecontenantdesacteursetdesmessages:

Figure2-Partiedudiagrammereprésentantl’envoiedesdonnées

Le Pool sert à fixer l’acteur, soit l’utilisateur qui a le droit de lancer le processus, doncderemplir le formulaire. Ici l’acteur est donc un citoyen quelconque, soit un utilisateurappartenantaugroupeCitoyendanslahiérarchiedesacteursquiontétécréés.

o Surlagauchedelafigure,laprésencedesmots«Citoyen»et«Demandederente»quicaractérisentle«Pool»etle«Lane»danslesquelssetrouvelediagramme.

LaLanepermetlaséparationentreplusieursdiagrammesauseind’unmêmeBPM

Page 7: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page7on19

4 EvaluationdeslogicielsBPM

L’évaluation des logiciels a consisté à réaliser une implémentation BPMN pour un formulaire dedemandeAVS. Lapriseenmaind’unoutil BPMn’estpasaiséepourunutilisateurnon-expert.Untempsdeformationetd’adaptationestnécessairepourchacundeslogiciels.

Deuxlogicielsontétéretenu:BonitaSoftainsiquelasolutionjBPMdeJBoss.Afind’évaluerauplusjuste,unformulairededemandeAVS13aétémodélisépourchaquelogiciel.

Figure3-LogiquedeBonitaSoft

4.1 PrésentationdeBonita

Bonita14(version6.0.0)estunlogicielgratuitquioffreuneinterfacegraphiquepourfaciliterlacréationdesprocessusBPMsuivantlanormeBPMN2.0.

Figure4-CréationdeBPMavecBonitasoft

13LeprocessusdedemandederenteAVSaétédocumentéetmodélisédansledocumentJBossjBPMProof-of-Concept–BasedontheAVSUseCase14http://fr.bonitasoft.com

Page 8: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page8on19

L’interface présente une palette contenant les différents types d’éléments qui constituent undiagramme.Unesous-fenêtreaubasdelapagemontrelesongletsd’accèsauxpropriétésdechaqueélément (les variables définies, les formulaires, les connecteurs, etc.). Les détails seront expliquésultérieurement.

4.1.1 Lavalidationdesdonnées

BienqueBonitaSoftoffrelapossibilitédecréerunvalidator,cedernierestlimitéauxtypesprimitifs(entierouréeldansunTextField)etquelquesautrestypeslégèrementpluscomplexes(formatemail),mais il est impossible d’imposer une expression régulière à vérifier. La solution apportée était lacréation d’un code Java exécuté par un service (Script dans un Service Task) qui fait lui-même lavalidation.

Figure5-CréationdescriptGroovypourlavalidationetl'adaptationdynamiquedesformulaires

En présence d’erreurs, un champ apparaît dans la page initiale dans lequel s’affiche le messaged’erreur.Ceproblèmealargementcomplexifiélediagrammegénéral.

4.1.2 Lacréationdeformulaire

Lacréationd’unepagequipuisseadmettreplusieurs«instancesdeclasses»:ils’agitparexempledelapagepourremplirlesdétailsdesenfantsdel’assuré.Etantdonnéquel’onpeutavoirunnombreillimitéd’enfants,ilestpossibledecréerunepagepourremplirlesdétailsd’unseul,puiscocherunecase«Nouvelenfant?»pourpouvoirreveniràcettemêmepageetremplirlesdétailsd’unautre.

Page 9: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page9on19

Figure6-CréationassistéedesformulairesavecBonitasoft

Cette solution n’était pas très élégante et elle a été remplacée par un tableau (on peutajouter/supprimerdeslignes)etunscriptquivérifieparexemplequelachaînedecaractèresentréepourladatedenaissancedechaqueenfantcorrespondbienàunedate(expressionrégulière).

4.2 PrésentationdejBPM(solutiondeJBoss)

LeFrameworkjBPM(version6.0)estbasésurunsystèmedetyperelationnel.Pardéfaut,ilutiliseunebasededonnées.LeFramework jBPMrend toutefoispossible l’utilisationdeDB2,Derby,HSQLDB,MySQL5,MySQLInnoDB,Oracle,PostreSQL,SQLServeretSQLServer2008.

La totalité du projet utilise la spécification JPA, implémentée par Hibernate15. Hibernate permetjustementlacommunicationaveclessystèmessusmentionnésautraversdesesdifférentsdialectes.

LeFramework jBPMn’estpasdirectementunprogramme«tout-en-un»permettantdemodéliserpuisd’exécuterdesprocessusmétiersdécritsaveclanormeBPMN2.0.CeFrameworkestcomposéd’une multitude de composants modulaires où chacun a un rôle particulier. Afin de comprendrel’utilitédechacun,ceux-cisontprésentéci-dessous.

15http://hibernate.org

Page 10: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page10on19

4.2.1 FrameworkjBPMJBoss(IntégrationàEclipse)

LajBPMestunelibrairiemiseenplaceparJBossCommunity.InstalléesurEclipse,ellepermetdecréerdesprocessus suivant lanormeBPMN2.0. Lesplugins sontà l’originede l’interfacegraphiquequiressembled’ailleursàcelledeBonitaSoft.LeserveurTomcatd’Apachesupportel’application«jBPMConsole»àtraverslaquelleunutilisateurdusystèmeseconnecte.

Figure7-PluginjBPMpourEclipse

4.2.2 KIEWorkbench

KIEWorkbench(jbpm-console-ng)estl’applicationwebquipermetdemodéliserdesdiagrammes,delancer des processus et de compléter les tâches y relatives. Elle permet également de gérer les«repositories»(environnementetgroupesdeprojetsBPM).Ellen’estpasencoreaboutieetprésenteencorequelquesbugs.

Figure8-ParamétragesduBPMvial'interfacewebKIE

Cetteapplicationwebacommeavantagedecentralisertoutcedont ledéveloppeurabesoinpourcréeretfairefonctionnerunBPMcontrairementauxversionsprécédentesoùplusieursapplicationsweb étaient nécessaires (modélisation, déploiement, ...). KIEWorkbench permet demodéliser undiagrammemaiségalementlesformulairesdetâchesavecunéditeurdeformulaireintégréouavecunéditeurdecode(formatHTML/FTL).

Figure9-Créationd'unBPMavecl'interfacewebKIE

Page 11: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page11on19

4.2.3 API

Ilestpossibledetravailleravec l’APIproposéepar jBPM.Pourautantque lediagrammecomporteuniquementdesélémentsprisenchargeparlemoteurdeworkflowdejBPM,ilestpossible,aumoyendelibrairiesfournies,delechargerdansnotrepropreapplicationetdetravaillerlesdifférentestâchesmodélisées.

4.2.4 Repositories

LesprojetsjBPMsontstockésdansunouplusieurs«repositories»locaux.Cesdernierssontdetypegit2. Ce système est extrêmement pratique si l’on veut travailler, par exemple, autant avec KIEWorkbenchqu’aveclepluginEclipse.

Figure10-Intégrationdelagestiondesrepositoriesdansl’interfacewebKIE

4.2.5 IntégrationdejUnit

LeFrameworkjBPMoffrelapossibilitédetesterlesdiagrammesBPM.Bienquecenesoitpasducodeensoit,lesdiagrammesontuncycledevie.Deplus,commeilspeuventêtremisàjourdemanièredynamique,ilpeutêtrejudicieuxdelestester.

AprèsavoirmodéliséundiagrammeBPM,ilestpossibledel’importerdansEclipse,grâceàgit,parexemple,etdegénéreruneclassedetest,quel’onpeutmodifierpuisdelalancerentantquetestunitairejUnit.

Page 12: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page12on19

4.3 Comparaisondeslogiciels

Lorsdelapriseenmainappliquéeàuncasconcret,commeattendu,lesdeuxlogicielssesontrévéléséquivalents, chacun ayant ses propres caractéristiques. Le Framework jBPM semble être le pluscompletetleplusmodulableencomparaisonàBonitaSoftmaisaussiplusouvertàl’évolution(jBPMestOpenSource).

Cettesectionprésentelescomparaisons,aprèsutilisation,entrelelogicielBonitaSoftetleFrameworkjBPM(JBoss)pouvant-êtreintégréàEclipse.

4.3.1 Documentation

Enapprenant àutiliserun logiciel ouune librairie, la documentationest unenécessité.Vu que latechnologie BPM est relativement récente et ne cesse d’évoluer, on ne peut pas s’attendre à laperfection.MaisonpeutfacilementdirequeladocumentationdelajBPMestbienmeilleurequecelledeBonitaSoft(tutoriels,forums,etc.).

4.3.2 Interfacesgraphiquesetdémarrage

Dupointdevuedes interfacesgraphiques,BonitaSoft estplus facile à apprendreet àutiliser.Unexempleàl’appuiestlacréationdesformulairesillustréci-dessous.Bonitametàdispositionunlogicieltout-en-unpermettantunevueglobaledetoutleprojet.Ilestégalementéquipédenombreuxéditeurgraphique(GUI)facilitantlaviedel’utilisateurexpert.

L’autrelogiciel,jBPM,estquantàluipluscomplexeàmettreenplaceetàutiliser.Al’instardeBonita,il s’agit d’un plugin Eclipse nécessitant l’installation de nombreuses dépendances. L’interfacegraphiquedejBPMestsensiblementcelled’Eclipse.Lepluginétantencorejeune,l’intégrationn’estpasencoreparfaite.

Figure11–PalettedeBonitaSoftfacilitantlamiseenformedesformulaires

Lacréationetl’éditiondesvariablesestaussiplusévidentesurBonitaSoftoùilsuffitd’accéderàunongletpourtrouverlesboutonsd’ajoutetdesuppressiondesvariables.

La jBPMdesoncôtérequiertuneconnaissancede la librairieetdescomposants initialisésafindepouvoircoderlamanipulationdesvariables.Ilexisted’autresdifférencesetressemblances(créationdesdiagrammes)-lesspécificitésdulangagenesontpasprésentéesdanscedocument.

Page 13: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page13on19

4.3.3 Créationdesformulaires

Il est vrai que BonitaSoft facilite la création des formulaires,mais si l’utilisateur (celui qui crée leprocessus)connaîtdéjàle langageHTML, ilpréféreracertainementcréer leformulaireexactementcommeildésiresansêtrerestreintauxélémentsdelapalette

Figure12–ConnaissancesWeb(FTL)requises

4.3.4 Définitiondesacteurs

La librairie jBPMoffreunmoyendespécifierdynamiquement lesacteursd’unprocessus,maispasBonitaSoft. Ceci a une importance majeure illustrée dans notre application même. En effet, leprocessusmodélisant lesystèmede l’AVSfait intervenirdifférentstypesd’acteurs :uncitoyen,unemployé de la caisse, et éventuellement des personnes spécifiées par le citoyen durant sonremplissageduformulaire,tellesquesonreprésentant,sesenfants,etc.

Le problème qui se lève sous BonitaSoft est le suivant : l’acteur du processus de remplissage duformulaireappartientàungroupe«Citoyens»quicontienttouslescitoyensdusystème.Latâche«Lapersonnetierceestinformée(enfantsparexemple)»requiertpouracteurslesenfantsducitoyenenquestion.Ladéfinitiondesacteursétantstatique,ilfaudracréerpourchaquecitoyenungroupequiluiestliéetquicontientsesenfants.Pire,chaquecitoyendevraavoirsonpropreprocessusetceluidesesenfants!Cecineconstituepasunesolution.LajBPMrésoutceproblèmeenacceptantd’avoirpour acteur du processus l’identificateur (ID) d’un acteur lu à partir d’une variable définie par lecitoyenouparprogrammation(unscriptquimodifielecontenudelavariableàl’IDdel’enfanttiréd’unebasededonnéesoun’importequelleautresource).

4.3.5 Créationdesprocessus

Tout comme ladéfinitiondes acteurs, la jBPMpermetde créerdesprocessusentiersdemanièredynamique, alors que sous BonitaSoft les processus sont toujours créés de manière statique.Cependantiln’estpasfaciled’établirtoutunprocessusenJava.

4.3.6 Exportationetréutilisabilité

La BPMN n’est en fait qu’un simple schéma XML devant répondre à une spécification établie16.Contrairementàcequel’onpourraitcroire,tousleséditeursdeBPMnerespectentpascettenorme.C’estnotammentlecaspourlasolutionBonitaSoft.PlusieursbalisesXMLutiliséesontspécifiquesaulogicieletsontdoncbaséessurd’autresschémas.

Acontrario,lesfichiersXMLproduitsparlajBPMrespectentlanorme.

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

Page 14: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page14on19

4.4 Choixdulogiciel

LelogicielBonitaSoftpossèdedenombreuxavantage.Ils’agitd’unlogicieltoutenun(modélisation,moteurd’exécution,etc.).Soninterfacegraphiquepermetuneutilisationfacilitée.Deplus,ildisposed’unecommunautégrandissanteetunforumactif17.Malheureusement,celui-ciesttropferméetnerespectepasentièrementlanormeBPMN2.0imposéeparlesstandards.Ildevientalorsinutilisablesil’onsouhaitepouvoirreprendreunBPMoulefaireinteragiravecdesapplicationtierces.

Cedernierpointsuggèrel’utilisationdejBPMdeJBoss.Bienquepluscomplexeàprendreenmain,celui-cis’avèreentièrementcompatibleaveclanormeBPMN2.0.

Après avoir commencé diverses réalisations avec le logiciel BonitaSoft, il a été nécessaire de serésigner à utiliser le Framework jBPM pour une meilleure intégration. De plus, du point de vueflexibilité,jBPMs’avèrebienpluspuissant.

5 Conception

Aprèsletravaild’analysedelasectionprécédenteetdansl’optiqued’amenerdelasémantiquedansleBPMdupointdevuedustockageetdelaprisededécisionenfonctiond’uncontextedonné,cettesectionprésentelesalternativesexistantespouruneimplémentationbaséesurlaplateformeJBoss.Pourl’heure,unBPMs’exécuteetenregistresesdonnéesleplussouventdansunebasededonnées(SGBD)relationnelle.LesinteractionsBPM/SGBDsontcomplexesàmettreenplaceetnécessitentlacréationdeprocessusparticuliers.

ToutenrespectantlanormeBPMN2.0etenproposantl’intégrationd’unecommunicationfacilitéeentreformulairesetbasesdedonnées,ilestproposéiciunsystèmecapabled’intercepterlesdonnéessaisiesparl’utilisateuretdelesconvertiràlavoléedansunformatsémantique.Lestransformationsà effectuer se font à l’aide de règles définies dans uneontologie, configurables par unutilisateurexpert.CetteinterconnexionentreBPMetbasededonnéessémantique,permettradefaireremonterdesinformationscontextuelles,pouvantpermettrel’automatisationdecertainschoixtoutaulongduprocessus.

Fondamentalement,ilya3possibilitésquisontenvisageables:

ModifierlessourcesdumoteurjBPM

Gérerlesrequêtesverslesystèmetriplestoreauniveauapplicatif

Elaborerunmiddlewarepourtraduirelesrequêtes

Lebutétantd’assurerunmaximumdetransparencepourledéveloppeuretl’utilisateuretd’atteindreunniveaudegénéricitéadéquat.Ilvasansdirequel’intégritéetlacohérencedesdonnéesdoiventêtrerespectées.

17http://community.bonitasoft.com

Page 15: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page15on19

5.1 SolutionA:ModificationdumoteurjBPM

UnepremièremodificationconsisteraitàmodifierlemoteurjBPM.LeFrameworkjBPMal’avantaged’êtreopensource.Bienquesacommunautésoitpeuactive,sesdéveloppeursproposentunebonnebase pour traiter des processus de complexité moyenne. L’entièreté du projet est basée sur lestechnologiesquinesontpasfacilementaccessibles:

Structure,découpageetgestionduprojetavecMaven

PersistanceassuréeparHibernatequiimplémenteJavaPersistanceAPI

Déploiementprévusurunserveurd’applicationJBoss

UtilisationcourantedesEJB4

UtilisationcourantedesCDI5(injections)

5.2 SolutionB:Adaptationducodesourcedel’application

Modifier le code source de jBPM semble une option intéressante. Cette alternative permettraitd’obtenirlerésultatescompté.

L’avantagepremierestdepouvoirainsiagirauplusbasniveauetavoirlecontrôlesurlamanipulationdesdonnéesafind’engarderlacohérenceetl’intégrité.Parcontre,leFrameworkjBPMestunprojetquin’estpasencoreabouti,etilneprendpasactuellementpasenchargelatotalitédesélémentsdelanormeBPMN2.0.Iladéjàbeaucoupévoluéetvaencoreévoluer.LefaitdemodifierlessourcesdejBPMàcestadepeuventdemanderuntravaildemaintenanceassezconséquentlorsdesmisesàjoursfuturesdecedernier.

5.3 SolutionC:Gestiondesdonnéessurl’applicationfinale

Cettesolutionseraitdegérertouteslesrequêtessémantiquessurnotreapplicationfinale.CecisignifiequenotreapplicationfinaleferaitsesrequêtessurjBPMdemanièrenormaleetqu’àchaqueappeletréponse, il sera nécessaire de traiter ces derniers, et aller, au besoin, requêter dans le systèmetriplestore.Cettemanièredefairepeutfonctionner,mais,forcément,n’estpaslaplusefficacedanslesensoùbeaucoupderequêtessupplémentairesdevrontêtrefaitesetbeaucoupd’entreellesserontinutiles.

Page 16: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page16on19

6 Solutionretenueetconclusion

L’idéeprincipaleduprojetestd’allierlemoteurBPMauxavantagesduwebsémantique.Dansnotrecas,l’avantageprincipalapportéparlewebsémantiqueestlepartaged’informationscommunesauxdifférentesapplicationsduprojeteGovetdegagnerenefficacitéenévitantlesdemandesredondantesàl’utilisateurfinal.

Pour les raisonsévoquéesplushaut,dans la sectioncontributionsproposées, le logiciel retenuestjBPMprincipalementpoursaflexibilitéetsonrespectdelanormeBPMN2.0.

Ilestimportantdedifférencierdeuxtypesd’élémentsauniveaudelapersistancedesdonnées.

LeFrameworkjBPMutiliselapersistancedesdonnéespoursapropreexécution.C’est-à-direqu’ilvastockeruncertainnombred’informationsutilesàsonbonfonctionnementet,biensûr,àl’exécutiondesworkflows.

D’autrepart,ilyalesinformationsrecueillies(outputs)ouinjectées(inputs)danslestâches.

C’estsurcesecondcas(solutionB)quelacontributionva-t-êtrefocalisée

LetransfertdesdonnéesduprocessusBPMàl’ontologiesefaitparprogrammation,typiquementauniveaudeservices(ServiceTask)ajoutésauxdiagrammesBPM.Pourassurercettecommunication,ilsera nécessaire d’utiliser la librairie SesamedeOpenRDFpour pouvoir bâtir une base de donnéesstructuréesuivantl’ontologiecrééesousformatRDF/XML.IlfaudraensuiteajouterlefichierRDFquicontient l’ontologie à un nouveau « Repository » de Sesame. Il sera alors possible d’exécuter desrequêtesdanslelangageSPARQLpourlire,inséreretmodifierlesinformations.

Pourmeneràbienlasuitedeceprojet,lacontributionB«Adaptationducodesourcedel’application»aétéretenue.Celle-cisembleêtrecelleoffrantleplusdepossibilitésetextensibilité.

Page 17: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page17on19

7 ANNEXE:ProblèmesrencontrésavecjBPM

Durantl’évaluationduFrameworkjBPMplusieursproblèmesauxquelsilfaudraporteruneattentionparticulièrelorsdudéveloppementsontapparus.Anoterquelaplupartdecesproblèmessontliésdirectementavecl’interfacedeprogrammationetnonpasdanslalogiquedel’applicationBPMoudesonmoteurd’exécution.

Lesproblèmessuivantsontétérencontrésdanslaversion6.0dejBPM.

7.1 Problèmesd’affichage

LanouvelleapplicationwebKIEWorkbenchestencorerempliedebug,essentiellementgraphiquestelsquedesboutonsquines’affichentpas,desbarresquidisparaissent,descalquesàmoitiévisibles.Changerdepagepuisrevenirsurlapagedésiréepermetbiensouventderésoudreleproblème.

7.2 Problèmesoccasionnelslorsdudéploiementdel’applicationweb

KIEWorkbenchnesedéploiepas toujours,ouavecuncertain retarddans le serveurd’applicationJBoss lorsqu’on lance l’environnement de démonstration fourni par jBPM. Ceci ne posera pas deproblèmedansunenvironnementdeproductionoùl’onaurauncontrôletotaldenosactions,plutôtqued’exécuterlescriptfourni.

7.3 Contradictionsentrelesvalidateurs

LeFrameworkjBPMpermetlamodélisationdediagrammesparKIEWorkbenchmaisaussiparlepluginBPMN2.0Modeler pour Eclipse. Tous deux utilisent et respectent la norme BPMN2.0mais leursvalidateursrespectifsnesontpastoujoursenadéquation.LevalidateurdupluginEclipserelèveradeserreurs ou avertissements qui ne seront pas donnéepar KIEWorkbench et vice-versa. Les forumsofficielsprétendentquecertainesdeceserreurspeuventêtreignorées.

7.4 Limitationsdanslemoteurdeworkflow

Al’heureactuelle,jBPMnecouvrepasencorelatotalitédesélémentsdelanormeBPMN2.0.Bienquelesoutilspermettentdemodéliserunelargepaletted’éléments,lemoteurdeworkflown’estpasencoreapteàtouslesprendreencompte.Ceciposenotammentproblèmeaveclesdiagrammesdecommunicationquimettentenscènedifférentsutilisateursdansdesswimlanesetpools.Onnepeutdoncpasdécrire l’interactionavec cesderniers. Le supportde cegenredediagrammene faitpasencore partie de la roadmap de jBPM. Un des développeurs de jBPM parle de vouloir consoliderdavantage l’exécution des tâches avant d’élargir les possibilités et encourage la communauté àprendrepartauprojet.

Page 18: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page18on19

7.5 Communautépeuprésente

Certaines réponsesànosquestionspeuventêtre trouvées sur internet,notammentsur les forumsofficiels de JBoss7. Cependant ces derniers ne sont que très peu réactifs. Beaucoup de questions,visualiséesdescentainesdefois,restentsansréponse.CesontsurtoutlesdéveloppeursdejBPMquirépondentauxquestionsquiparaissenttoutesplusspécifiques lesunesque lesautres.Cecidonnel’impressionquejBPMn’estpasencoreassezrépanduetquepeudedéveloppeurssontvraimentàl’aiseaveccettesolution.

Les tutoriels sont raresetnecouvrentqu’unemineurepartiedesélémentsBPMN2.0. Il fautbiensouventserabattresurlestestsunitairesfournispoursavoircommentlesdifférentesfonctionnalitésinteragissententreelles.

7.6 LeFrameworkjBPM6estunenouvellerelease

LadocumentationofficiellepourjBPM6existemaisnecouvrepasencorelatotalitéduprojet.Certainspointssontd’ailleursmentionnéspardestitresmaisnecomportentpasdetexte.Cependant,cequiadéjàétéfaitestvalable.

Laversion6esttrèsdifférentedesversions inférieuresauniveauduremaniementdesoutils.C’estpourquoibeaucoupdetutorielstrouvésprésententdesoutilsobsolètespourjBPM6.

7.7 Gestiondesmessages

Bienquelesdiagrammesdecollaborationnesoientpasprisencharge,ilesttoutdemêmepossibledemodéliserdesprocessusquise lancentenfonctionde laréceptiondemessages(MessageStartEvent).EnutilisantjUnit,onpeutcoderl’envoid’unmessagequiréveillebeletbienleprocessus.Lemessagearrivecommeilsedoitmaisletraitementdesparamètresn’estpasaussisimple.

UnexempleofficielestfourniavecjBPM6CR2.Cederniermontreleréveild’unprocessusgrâceàunmessageparamétréd’unString,cequifonctionnetrèsbien.Mais latâchesuivante,dont lebutestd’afficherceString,n’afficherien.

7.8 Générationdeformulaires

KIEWorkbenchpermetdegénérerlesformulairesd’unprocessus.Lorsdel’utilisationdeDataModelerpourcréeruneclassePersonpuisl’utiliserdansunprocessus,leFormModelervacréerdeschampspour chacundes attributs de la classe Person.Dans le cas où des données sont déjà connues, leschamps correspondant devraient être déjà renseignés. Cependant, ceci n’est pas faitsystématiquement. Cela se produit au lancement d’un processus. Le système réagi comme si leformulairedeprocessusn’étaitpasenregistréavantdepartirsurlapremièretâche.

Page 19: Veille Technologique : Outils du BPMN 2 - …egovinnovation.ch/wp-content/uploads/2016/06/2.eGovInnovation... · Veille Technologique Outils BPMN 2.0 Page 3 on 19 Veille Technologique

VeilleTechnologiqueOutilsBPMN2.0

Page19on19

7.9 Disparitiondescomposantsd’undiagramme

Pouruneraisonencoreindéterminée,latotalitédescomposantsdesdiagrammesBPMontdisparu,ne laissant que les connections. À ce stade, Il n’est plus possible d’ajouter aucun élément sur lediagramme,exceptédesconnections.

Après quelques jours, plusieurs utilisateurs se sont manifestés avec le même problème. Bienqu’aucuneexplicationofficiellenesoitdonnée,celasembleprovenirdeproblèmesd’incompatibilité(graphique)aveclenavigateurChrome,suiteàunedesesdernièresmisesàjour.IlsembleraitquelesnavigateursàfavorisersoientInternetExploreretFirefox.

7.10 Traitementdeserreurs

LanormeBPMN2.0prévoitunélémentclépourletraitementd’erreur.Sonbutestde«catcher»l’erreurquipourraitsurvenirdansunetâcheouunsous-processusetderedirigerlefluxversunchemindifférent.

Lecomposantestimplémentéets’activesiuneexceptionJavaestlevée.Cependant,enversion6.0,iln’estpasprévudepouvoir récupérer cetteexceptiondans la tâche suivantepour la traiter.AprèsdiscussionavecundéveloppeurjBPM,cettefonctionnalitéestprévuepourlaversion6.1dejBPM.