Programmering

Administrer dine forretningsprocesser med JBoss jBPM

Virksomheder har flittigt søgt efter en struktureret tilgang til at designe forretningshandlinger / transaktioner og udføre dem fortrinsvis ved hjælp af automatiserede processer. Forretningsprocesstyring (BPM) og styring af workflow tilbyder en løsning på dette problem ved hjælp af begreber som handlinger, opgaver og strømme.

Denne artikel introducerer BPM og diskuterer teknikker og værktøjer til at styrke virksomhedssystemer med BPM og workflow management ved hjælp af JBoss jBPM.

Begrebet Business Process Management refererer typisk til et sæt aktiviteter, som virksomheder kan anvende til at automatisere og optimere forretningsprocesser på en måde, der kan tilpasses til dynamisk skiftende miljøer. Disse aktiviteter søger normalt hjælp fra software engineering og værktøjer; derfor bruges udtrykket BPM ofte direkte til at henvise til tekniske teknikker og værktøjer.

BPM er inkorporeret i tre forskellige fremgangsmåder:

  1. Proces design: Opgaven med at designe eksisterende og nye processer
  2. Processudførelse: Udførelsen af ​​en automatiseret sekvens af relaterede begivenheder, der involverer softwareprocesser og / eller menneskelige aktiviteter
  3. Procesovervågning: Overholdelse og revision af tilstanden for individuelle processer, så statistikken og udførelsen af ​​disse processer kan registreres, rapporteres og optimeres

BPM søger at tillade softwareingeniører at dele de samme koncepter og rammer som forretningsanalytikere; som følge heraf har softwareleverandører forsøgt at skabe værktøjer, der giver virksomheder mulighed for at indfange, designe og optimere forretningsprocesser gennem ansættelse af grafiske modelleringsværktøjer, domænespecifikke sprog og proprietære applikationer.

JBoss jBPM 3.0 leverer muligheden for at udvikle nye automatiserede forretningsprocesser og arbejdsgange med industristandard orkestrering ved hjælp af BPEL (Business Process Execution Language), en fleksibel og tilslutbar API, et indfødt procesdefinitions sprog og et grafisk modelleringsværktøj.

JBoss jBPM er en open source (LGPL licens) ramme over Java API'er, værktøjer og et definitionssprog, der kan fungere som en webapplikation eller en enkeltstående Java-applikation. JBoss jBPM fungerer som en mellemmand mellem forretningsanalytikere og udviklere ved at give dem et fælles procesdefinitionssprog kaldet jPDL.

Oversigt over JBoss jBPM-arkitekturen

JBoss jBPM definerer procesdefinitioner i filer, der er skrevet ved hjælp af JBoss-procesdefinitionssproget. jPDL er et grafisk orienteret programmeringssprog (GOP) baseret på en model af noder, overgange og handlinger. I denne model er noder kommandoer, der udføres, som de opstår under strømmen af ​​en procesdefinition. Overgange styrer strømmen af ​​udførelse af en procesdefinition, og handlinger udfører specifik logik, når der opstår en node eller overgangshændelse.

I jBPM pakkes procesdefinitioner som procesarkiver. Et procesarkiv sendes til jPDL-procesmotoren til udførelse. JPDL-procesmotoren krydser en procesgraf, udfører definerede handlinger, opretholder procestilstand og logger alle proceshændelser.

JBoss jBPM er indkapslet inden for følgende komponenter:

  • Processmotor: Denne komponent udfører definerede proceshandlinger, opretholder procestilstand og logger alle proceshændelser via følgende delegerede komponenter:
    • En anmodningshåndterer
    • En statschef
    • En logmanager
    • En definitionslæsser
    • En henrettelsestjeneste
  • Procesmonitor: Dette modul sporer, audits og rapporterer status for processer, når de udføres
  • Processprog: Processdefinitionssproget (jPDL) er baseret på GOP
  • Interaktionstjenester: Disse tjenester udsætter ældre applikationer som funktioner eller data, der skal bruges i procesudførelser

Forholdet mellem disse komponenter er illustreret i figur 1.

Som vist i figur 1 indlæses og udføres jBPM-procesdefinitioner indeholdende handlingshåndterere af jBPM-procesmotoren. Når procesmotoren støder på en node i procesdefinitionen, der har en handling tilknyttet, påkaldes alle relaterede handlingshåndterere. Handlingshåndterere er forekomster af Java-kode, der interagerer med eksterne systemer, når de udføres.

Følgende er et eksempel på en simpel handlingshåndterer:

import org.jbpm.graph.def. *; import org.jbpm.graph.exe. *;

offentlig klasse MyActionHandler implementerer ActionHandler {public void execute (ExecutionContext executCContext) {System.out.println ("MyActionHandler har udført:" + executionContext); }}

PDL-filen i et procesarkiv hedder process-definition.xml. Denne fil indeholder den formelle beskrivelse af processerne. Et eksempel på en proces-definition.xml-fil illustreres i følgende eksempel:

En procesdefinition er baseret på en rettet graf. Grafen er sammensat af noder, overgange, en starttilstand og en sluttilstand. Typen af ​​hver node definerer kørselsadfærden for noden. Mens en procesdefinition udføres, kommer følgende enheder i spil:

  • Procesforekomst: En procesinstans er en udførelse af en procesdefinition.
  • Polet: Et token er en eksekveringsvej. Et token er runtime-konceptet, der opretholder en markør til en node i grafen. Når der oprettes en procesforekomst, oprettes et token til den vigtigste sti til udførelse. Dette token kaldes procesinstansens rodtoken og er placeret i procesdefinitionens starttilstand.
  • Signal: Et signal instruerer et token om at fortsætte grafudførelse ved overgang ud af en node.
  • Knude: Noder er ansvarlige for fortsættelsen af ​​en grafudførelse. Når et token kommer ind i en node, udføres noden. En node, der ikke formerer eksekvering, betragtes som en tilstand.
  • Handling: Handlinger er forekomster af Java-kode, der udføres, når begivenheder opstår i en procesudførelse. De primære begivenhedstyper er "at indtaste en node", "at forlade en node" og "at tage en overgang."

Processdefinitioner kan let oprettes med jBPM grafisk modelleringsdesigner. Designeren er i øjeblikket installeret som et Eclipse-plug-in. Figur 2 illustrerer en eksempelskærm fra den grafiske modelleringsdesigner.

Den grafiske designer kan bruges til at oprette procesdefinitioner, vedhæfte handlingshåndterere til begivenheder, redigere definitionskilde, oprette procesarkiver, teste procesdefinitioner osv.

Implementering af JBoss jBPM

JBoss jBPM gemmer procesdefinitioner i en database. Derfor involverer implementering af en proces i JBoss jBPM parsing af process-definition.xml og lagring af den i JBoss jBPM-databasen. Dette kan gøres ved:

  • Bruger par Ant opgave leveret med JBoss jBPM for at oprette et procesarkiv.
  • Brug af hjælpeprogrammet deploypar. Dette værktøj opretter også et procesarkiv og distribuerer procesarkivet til jBPM-databasen. Distribueringsværktøjet tager en jBPM.properties-fil som attribut. Denne fil specificerer konfigurationsindstillinger, inklusive den database, som procesarkivet skal distribueres til.
  • Programmering og lagring af process-definition.xml i en datalager.

Kørsel af JBoss jBPM gennem nogle enkle trin

JBoss jBPM fungerer som en orkestrationsmotor, der sidder midt i virksomhedens applikationer, hvilket muliggør integration og koordinering mellem forskellige applikationer.

I denne artikel bruger jeg prøveinstallationen, der leveres med jBPM, til at diskutere, hvordan jBPM og jPDL bruges til at oprette og ændre et simpelt web-aktiveret ordrebehandlingssystem.

Downloader JBoss jBPM

JBoss jBPM startpakke indeholder alt, hvad der er nødvendigt for at udføre JBoss jBPM, med undtagelse af en JDK. JBoss Application Server i JBoss jBPM-startsæt kræver J2SE 1.4 eller en nyere version.

Når du har downloadet startsættet, skal du pakke det ud i en mappe, du vælger. Når du har pakket startpakken ud, har du en bibliotekstruktur svarende til følgende:

  • Jbpm-starters-kit-3.1
    • jbpm: Indeholder kildekoden til JBoss jBPM-produktet
    • jbpm-bpel: Indeholder oplysninger om BPEL-udvidelsen til JBoss jBPM
    • jbpm-db: Indeholder eksempelkonfigurationer til tilslutning af JBoss jBPM til andre databaser
    • jbpm-designer: Indeholder Eclipse-plugin til JBoss jBPM Visual Process Designer
    • jbpm-server: Indeholder JBoss Application Server sammen med JBoss jBPM-motoren og prøveprocessen

Udfør JBoss jBPM-motoren

For at starte JBoss-applikationsserveren med jBPM implementeret skal du gå til jbpm-server-biblioteket og udføre det start-script, der findes der. Et kommandovindue skal dukke op med jBPM-konsolvinduet, svarende til figur 3.

Nu skal du åbne et browservindue og gå til // localhost: 8080 / jbpm. Du vil blive præsenteret med login-siden til eksemplet på webapplikationen til JBoss jBPM, vist i figur 4.

Log ind som cookie monster og vælg linket Opret ny websalgordre. Dette vil skabe en ny forekomst af den forudbyggede "websalg" -proces, illustreret i figur 5.

Den faktiske definitionsfil, processdefinition.xml, findes i websale.par og er illustreret i følgende liste:

$config[zx-auto] not found$config[zx-overlay] not found