Next generation open source BPMJBoss jBPM 4bernd.ruecker@camunda.com
Berater, Trainer, CoachSoftwareentwicklerCommitter bei jBPMBlog: www.bpm-guide.deBernd Rückerbernd.ruecker@camunda.com
camunda services GmbHGanzheitliches BPMMenschenSoftwareStandort:     BerlinMitarbeiter:  7
Prozessbeispiel:Designer-Taschen
Was ist ein Geschäftsprozess?BegriffsdefinitionRechnung-stellungKundeBestel-lungLieferungKundeBestell-annahmeVersandWaren- entnahme
Wie setze ich das bloß technisch um?
Möglichkeit 1:Java-EntwicklungProbleme GeschäftsprozesseLang laufend
Wartezustände
Timeouts & EskalationNachteileZu viel Arbeit!
Prozess unsichtbarBusiness Process Engine!Open Source (LGPL)POJO + Hibernate„Library“Version 4.0 (10.07.09)
Das Prinzip der ProzessautomatisierungEinleitungModelingMonitoring und ReportingTechnisches ProzessmodellHuman Workflow ManagementService Orchestration
Der Prozess (Workflow)
Der Prozess (Workflow)usertaskBusiness Process Modeling Notation (BPMN 2.0)
Der Prozess (Workflow)java
Der Prozess (Workflow)gateway = decision
Der Prozess (Workflow)waitstate != task
Demo
ProcessExecutionWie funktioniert das?Tasklist1.) Aufgabe erzeugen2.) Aufgabe abschließen1.) System aufrufen / Message2.) Asynchrone Antwort als MessageClientExternesSystemProcessExecution EngineTransaction / Request…Zeitprocessexecution
JBossProcess Virtual Machine (PVM)
Eine Prozessinstanz
APIs & ArchitekturLokal oder RemoteSync oder AsyncJTA oder nichtjPDL ImplementierungPVM InterfaceClientProcess EngineCommand ServiceProcess ServiceCommandsExecution ServiceManagement ServiceInterceptorInterceptorTaskServiceServicesEvent Listener API
<processname="Bestellung" xmlns="http://jbpm.org/4.0/jpdl">   <startname="start" g="18,150,48,48">      <transitionto="Bestellung pruefen"/>   </start>   <taskcandidate-groups="Lager" name="Bestellung_pruefen"        g="191,149,109,52">      <transitionname="Problem aufgetreten" to="Alternativvorschlag_erarbeiten„                  g="267,103:-3,27"/>      <transitionname="Auftrag OK" to="Bestellung_buchen"                   g="268,236:0,-25"/>   </task>   <javaname="Kunden informieren" class="com.camunda.training.jbpm.service.MockService" method="informCustomer" g="493,75,119,52">            <arg><objectexpr="#{order.customer}"/></arg>            <arg><objectexpr="#{problem}"/></arg>           <transitionto="Auf Entscheidung warten"/>   </java>jPDL Quellcode
  ...  <decisionname="Stornierung?" g="804,84,48,48">      <transitionname="Alternativvorschlag bestellen" to="Bestellung_pruefen"                   g="828,43;245,43:247,-19">          <conditionexpr="#{orderChanged}"/>                  </transition>      <transitionname="Stornierung" to="cancel" g="-26,-18"/>   </decision>   <statename="Auf Entscheidung warten" g="695,72,144,52" >      <transitionto="Stornierung?"/>   </state>   ...   <endname="end" g="906,212,48,48" />   <end-cancel name="cancel" g="905,152,48,48"/></process>jPDL Quellcode
Und ActionHandler?<statename="wait" >  <on event="start">    <event-listenerclass="org.jbpm.examples.eventlistener.LogListener"/>  </on>  <transitionto="end">      <event-listenerclass="org.jbpm.examples.eventlistener.LogListener"/>  </transition></state>publicclassLogListenerimplementsEventListener {publicvoidnotify(EventListenerExecutionexecution) {execution.getVariable("logs");    ...execution.setVariable("logs", logs);  }}
Möglichkeiten & Features
Möglichkeiten & Features
jbpm 3vs. jbpm 4Process Virtual MachineBPMNSaubere Architektur
Kundenkonto-KomponenteBPM & SOA – Blueprint & VisionGUIProzesseBonitäts-prüfungKunden-anlageKredit-vergabeServicesBonitätscheckKundendatenKreditantragRessourcenWeb-ServiceSAPServer
EJBEJBEJB-Container (oder Tomcat oder Java SE)ArchitekturRich-ClientSessionBeanHumanTaskMgmntWeb-AnwendungjbpmJCAJMSWSWSBPEL-ServerJavaWSWSWSWS.NETHumanTaskMgmntEJB-Container…JMS, …
DasBesondere an jbpm
Selber bauen?Quelle: Zitty, Berlinsiehe www.bpm-guide.de
Aber…BusinessProcess Managementist mehr als nur Workflows…
eBPMR nach Freund/Rücker 2008,u.a. erschienen in: Wirtschaftsinformatik und Management 03/09, GWV VerlagDas erweiterte BPM-Regelkreismodell (eBPMR)BPM-Governance
ModellingMonitoringBusinessITMagic BPM-SuiteEAI / SOAHuman Workflow
Das camunda BPMN-Framework
camunda BPMN Framework BPMN 2.0Signavio-Integration
CommunityWir planen eine deutschsprachige jBPM-Community. Bei Interesse oder spannenden Erfahrungen mit jBPM bitte Email an mich!

JBoss jBPM 4 bei der JBUG München