Programmering

Administrer forretningsprosessene dine med JBoss jBPM

Bedrifter har søkt flittig etter en strukturert tilnærming for å designe forretningshandlinger / transaksjoner og utføre dem, fortrinnsvis ved hjelp av automatiserte prosesser. Forretningsprosessadministrasjon (BPM) og arbeidsflytstyring tilbyr en løsning på dette problemet ved hjelp av begreper som handlinger, oppgaver og flyter.

Denne artikkelen introduserer BPM og diskuterer teknikker og verktøy for å styrke virksomhetssystemer med BPM og arbeidsflytstyring ved hjelp av JBoss jBPM.

Begrepet styring av forretningsprosesser refererer vanligvis til et sett med aktiviteter bedrifter kan benytte for å automatisere og optimalisere forretningsprosesser på en måte som kan tilpasses til dynamisk skiftende miljøer. Disse aktivitetene søker vanligvis hjelp fra programvareteknikk og verktøy; derfor brukes begrepet BPM ofte direkte for å referere til tekniske teknikker og verktøy.

BPM er nedfelt i tre forskjellige praksiser:

  1. Prosessdesign: Oppgaven med å designe eksisterende og nye prosesser
  2. Prosessutførelse: Utførelsen av en automatisert sekvens av relaterte hendelser som involverer programvareprosesser og / eller menneskelige aktiviteter
  3. Prosessovervåking: Overholdelse og revisjon av tilstanden til individuelle prosesser slik at statistikken og ytelsen til disse prosessene kan registreres, rapporteres og optimaliseres

BPM søker å tillate programvareingeniører å dele de samme konseptene og rammene som forretningsanalytikere; Følgelig har programvareleverandører forsøkt å lage verktøy som gjør det mulig for bedrifter å fange, designe og optimalisere forretningsprosesser ved å bruke grafiske modelleringsverktøy, domenespesifikke språk og proprietære applikasjoner.

JBoss jBPM 3.0 gir muligheten til å utvikle nye automatiserte forretningsprosesser og arbeidsflyter med industristandard orkestrering ved hjelp av Business Process Execution Language (BPEL), et fleksibelt og pluggbart API, et innfødt prosessdefinisjonsspråk og et grafisk modelleringsverktøy.

JBoss jBPM er et rammeverk med åpen kildekode (LGPL-lisens) av Java APIer, verktøy og et definisjonsspråk som kan fungere som et webapplikasjon eller et frittstående Java-program. JBoss jBPM fungerer som et mellomledd mellom forretningsanalytikere og utviklere ved å gi dem et felles prosessdefinisjonsspråk referert til som jPDL.

Oversikt over JBoss jBPM-arkitekturen

JBoss jBPM definerer prosessdefinisjoner i filer skrevet ved hjelp av JBoss prosessdefinisjonsspråk. jPDL er et grafisk orientert programmeringsspråk (GOP) basert på en modell av noder, overganger og handlinger. I denne modellen er noder kommandoer som utføres når de oppstår under flyt av en prosessdefinisjon. Overganger styrer gjennomføringsflyten av en prosessdefinisjon, og handlinger utfører spesifikk logikk når en node eller overgangshendelse oppstår.

I jBPM er prosessdefinisjoner pakket som prosessarkiv. Et prosessarkiv blir sendt til jPDL-prosessmotoren for utføring. JPDL-prosessmotoren krysser en prosessgraf, utfører definerte handlinger, opprettholder prosesstilstand og logger alle prosesshendelser.

JBoss jBPM er innkapslet i følgende komponenter:

  • Prosessmotor: Denne komponenten utfører definerte prosesshandlinger, opprettholder prosesstilstand og logger alle prosesshendelser via følgende delegatkomponenter:
    • En forespørselsbehandler
    • En statlig leder
    • En loggsjef
    • En definisjonslaster
    • En henrettelsestjeneste
  • Prosessovervåker: Denne modulen sporer, reviderer og rapporterer prosessens tilstand når de utføres
  • Prosess språk: Prosessdefinisjonsspråket (jPDL) er basert på GOP
  • Interaksjonstjenester: Disse tjenestene avslører eldre applikasjoner som funksjoner eller data som skal brukes i prosessutførelser

Forholdet mellom disse komponentene er illustrert i figur 1.

Som vist i figur 1 lastes og kjøres jBPM-prosessdefinisjoner som inneholder handlingshåndterere av jBPM-prosessmotoren. Når prosessmotoren møter en node i prosessdefinisjonen som har en handling tilknyttet, blir alle relaterte handlingshåndterere påkalt. Handlingshåndterere er forekomster av Java-kode som samhandler med eksterne systemer når de kjøres.

Følgende er et eksempel på en enkel handlingsbehandler:

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 utført:" + executionContext); }}

PDL-filen i et prosessarkiv heter prosess-definition.xml. Denne filen inneholder den formelle beskrivelsen av prosessene. Et eksempel på en prosessdefinisjon.xml-fil er illustrert i følgende eksempel:

En prosessdefinisjon er basert på en rettet graf. Grafen er sammensatt av noder, overganger, en starttilstand og en slutttilstand. Typen av hver node definerer kjøretidsoppførselen for noden. Mens en prosessdefinisjon kjøres, kommer følgende enheter inn i bildet:

  • Prosessforekomst: En prosessforekomst er en utførelse av en prosessdefinisjon.
  • Token: Et token er en utførelsesvei. Et token er kjøretidskonseptet som holder en peker til en node i grafen. Når en prosessforekomst opprettes, opprettes et token for hovedveien til utførelse. Dette token kalles prosessforekomstens rot-token og er plassert i prosessdefinisjonens starttilstand.
  • Signal: Et signal instruerer et token om å fortsette grafutførelse ved overgang ut av en node.
  • Node: Noder er ansvarlige for fortsettelsen av en grafutførelse. Når et token kommer inn i en node, kjøres noden. En node som ikke forplanter utførelse blir sett på som en tilstand.
  • Handling: Handlinger er forekomster av Java-kode utført når hendelser oppstår i en prosessutførelse. De primære hendelsestypene er "å angi en node", "å forlate en node" og "å ta en overgang."

Prosessdefinisjoner kan enkelt opprettes med grafisk modelleringsdesigner jBPM. Designeren er for øyeblikket installert som en Eclipse-plugin. Figur 2 illustrerer et eksempelskjerm fra den grafiske modelleringsdesigneren.

Den grafiske designeren kan brukes til å lage prosessdefinisjoner, feste handlingshåndterere til hendelser, redigere definisjonskilde, opprette prosessarkiv, teste prosessdefinisjoner og så videre.

Implementering av JBoss jBPM

JBoss jBPM lagrer prosessdefinisjoner i en database. Derfor innebærer distribusjon av en prosess i JBoss jBPM å analysere prosess-definition.xml og lagre den i JBoss jBPM-databasen. Dette kan gjøres ved å:

  • Bruker par Ant oppgave levert med JBoss jBPM for å lage et prosessarkiv.
  • Bruker distribusjonsverktøyet. Dette verktøyet oppretter også et prosessarkiv og distribuerer prosessarkivet til jBPM-databasen. Distribusjonsverktøyet tar en jBPM.properties-fil som attributt. Denne filen spesifiserer konfigurasjonsalternativer, inkludert databasen som prosessarkivet skal distribueres til.
  • Programmering og lagring av prosessdefinisjon.xml i en datalager.

Kjører JBoss jBPM gjennom noen enkle trinn

JBoss jBPM fungerer som en orkestrasjonsmotor som sitter midt i bedriftens applikasjoner, noe som muliggjør integrering og koordinering mellom forskjellige applikasjoner.

For denne artikkelen bruker jeg prøveutplasseringen som ble levert med jBPM for å diskutere hvordan jBPM og jPDL brukes til å opprette og endre et enkelt nettaktivert ordrebehandlingssystem.

Laster ned JBoss jBPM

JBoss jBPM startpakke inneholder alt som trengs for å utføre JBoss jBPM, med unntak av en JDK. JBoss Application Server i JBoss jBPM startpakke krever J2SE 1.4 eller en nyere versjon.

Etter at du har lastet ned startpakken, pakker du den ut til en katalog du velger. Når du har pakket ut startsettet, vil du ha en katalogstruktur som ligner på følgende:

  • Jbpm-starters-kit-3.1
    • jbpm: Inneholder kildekoden for JBoss jBPM-produktet
    • jbpm-bpel: Inneholder informasjon om BPEL-utvidelsen for JBoss jBPM
    • jbpm-db: Inneholder eksempelkonfigurasjoner for å koble JBoss jBPM til andre databaser
    • jbpm-designer: Inneholder Eclipse-plugin-modulen for JBoss jBPM Visual Process Designer
    • jbpm-server: Inneholder JBoss Application Server sammen med JBoss jBPM-motoren og prøveprosessen

Utfør JBoss jBPM-motoren

For å starte JBoss-applikasjonsserveren med jBPM distribuert, gå til jbpm-server-katalogen og kjør oppstartsskriptet som finnes der. Et kommandovindu skal dukke opp med jBPM-konsollvinduet, i likhet med figur 3.

Nå, ta opp et nettleservindu og gå til // localhost: 8080 / jbpm. Du vil bli presentert med påloggingssiden for eksemplet på webapplikasjon for JBoss jBPM, vist i figur 4.

Logg inn som kakemonster og velg Opprett ny websalgbestillingslenke. Dette vil skape en ny forekomst av den forhåndsbygde "Nettsalg" -prosessen, illustrert i figur 5.

Den faktiske definisjonsfilen, processdefinition.xml, ligger i websale.par og er illustrert i følgende liste:

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