Veille Technologique : Outils du BPMN 2 -...
Transcript of Veille Technologique : Outils du BPMN 2 -...
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.
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
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
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
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
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
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
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.
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
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
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.
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.
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/
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
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.
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é.
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.
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.
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.