Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JBoss jBPM 4 bei der JBUG München

1,146 views

Published on

  • Be the first to comment

  • Be the first to like this

JBoss jBPM 4 bei der JBUG München

  1. 1. Next generation open source BPM<br />JBoss jBPM 4<br />bernd.ruecker@camunda.com<br />
  2. 2. Berater, Trainer, Coach<br />Softwareentwickler<br />Committer bei jBPM<br />Blog: www.bpm-guide.de<br />Bernd Rücker<br />bernd.ruecker@camunda.com<br />
  3. 3. camunda services GmbH<br />Ganzheitliches BPM<br />Menschen<br />Software<br />Standort: Berlin<br />Mitarbeiter: 7<br />
  4. 4. Prozessbeispiel:<br />Designer-Taschen<br />
  5. 5. Was ist ein Geschäftsprozess?<br />Begriffsdefinition<br />Rechnung-<br />stellung<br />Kunde<br />Bestel-lung<br />Lieferung<br />Kunde<br />Bestell-annahme<br />Versand<br />Waren- entnahme<br />
  6. 6. Wie setze ich das bloß technisch um?<br />
  7. 7. Möglichkeit 1:<br />Java-Entwicklung<br />Probleme Geschäftsprozesse<br /><ul><li>Lang laufend
  8. 8. Wartezustände
  9. 9. Timeouts & Eskalation</li></ul>Nachteile<br /><ul><li>Zu viel Arbeit!
  10. 10. Prozess unsichtbar</li></li></ul><li>Business Process Engine!<br />Open Source (LGPL)<br />POJO + Hibernate<br />„Library“<br />Version 4.0 (10.07.09)<br />
  11. 11. Das Prinzip der Prozessautomatisierung<br />Einleitung<br />Modeling<br />Monitoring und Reporting<br />Technisches <br />Prozessmodell<br />Human Workflow Management<br />Service Orchestration<br />
  12. 12. Der Prozess (Workflow)<br />
  13. 13. Der Prozess (Workflow)<br />usertask<br />Business Process Modeling Notation (BPMN 2.0)<br />
  14. 14. Der Prozess (Workflow)<br />java<br />
  15. 15. Der Prozess (Workflow)<br />gateway = decision<br />
  16. 16. Der Prozess (Workflow)<br />waitstate != task<br />
  17. 17. Demo<br />
  18. 18. ProcessExecution<br />Wie funktioniert das?<br />Tasklist<br />1.) Aufgabe erzeugen<br />2.) Aufgabe abschließen<br />1.) System aufrufen / Message<br />2.) Asynchrone Antwort als Message<br />Client<br />Externes<br />System<br />ProcessExecution Engine<br />Transaction / Request<br />…<br />Zeit<br />processexecution<br />
  19. 19. JBossProcess Virtual Machine (PVM)<br />
  20. 20. Eine Prozessinstanz<br />
  21. 21. APIs & Architektur<br />Lokal oder Remote<br />Sync oder Async<br />JTA oder nicht<br />jPDL Implementierung<br />PVM Interface<br />Client<br />Process Engine<br />Command Service<br />Process Service<br />Commands<br />Execution Service<br />Management Service<br />Interceptor<br />Interceptor<br />Task<br />Service<br />Services<br />Event Listener API<br />
  22. 22. &lt;processname=&quot;Bestellung&quot; xmlns=&quot;http://jbpm.org/4.0/jpdl&quot;&gt;<br /> &lt;startname=&quot;start&quot; g=&quot;18,150,48,48&quot;&gt;<br /> &lt;transitionto=&quot;Bestellung pruefen&quot;/&gt;<br /> &lt;/start&gt;<br /> &lt;taskcandidate-groups=&quot;Lager&quot; name=&quot;Bestellung_pruefen&quot; <br /> g=&quot;191,149,109,52&quot;&gt;<br /> &lt;transitionname=&quot;Problem aufgetreten&quot; <br />to=&quot;Alternativvorschlag_erarbeiten„<br /> g=&quot;267,103:-3,27&quot;/&gt;<br /> &lt;transitionname=&quot;Auftrag OK&quot; to=&quot;Bestellung_buchen&quot; <br /> g=&quot;268,236:0,-25&quot;/&gt;<br /> &lt;/task&gt;<br /> &lt;javaname=&quot;Kunden informieren&quot; <br />class=&quot;com.camunda.training.jbpm.service.MockService&quot; <br />method=&quot;informCustomer&quot; g=&quot;493,75,119,52&quot;&gt;<br /> &lt;arg&gt;&lt;objectexpr=&quot;#{order.customer}&quot;/&gt;&lt;/arg&gt;<br /> &lt;arg&gt;&lt;objectexpr=&quot;#{problem}&quot;/&gt;&lt;/arg&gt; <br /> &lt;transitionto=&quot;Auf Entscheidung warten&quot;/&gt;<br /> &lt;/java&gt;<br />jPDL Quellcode<br />
  23. 23. ...<br /> &lt;decisionname=&quot;Stornierung?&quot; g=&quot;804,84,48,48&quot;&gt;<br /> &lt;transitionname=&quot;Alternativvorschlag bestellen&quot; <br />to=&quot;Bestellung_pruefen&quot; <br /> g=&quot;828,43;245,43:247,-19&quot;&gt;<br /> &lt;conditionexpr=&quot;#{orderChanged}&quot;/&gt; <br /> &lt;/transition&gt;<br /> &lt;transitionname=&quot;Stornierung&quot; to=&quot;cancel&quot; g=&quot;-26,-18&quot;/&gt;<br /> &lt;/decision&gt;<br /> &lt;statename=&quot;Auf Entscheidung warten&quot; g=&quot;695,72,144,52&quot; &gt;<br /> &lt;transitionto=&quot;Stornierung?&quot;/&gt;<br /> &lt;/state&gt;<br /> ...<br /> &lt;endname=&quot;end&quot; g=&quot;906,212,48,48&quot; /&gt;<br /> &lt;end-cancel name=&quot;cancel&quot; g=&quot;905,152,48,48&quot;/&gt;<br />&lt;/process&gt;<br />jPDL Quellcode<br />
  24. 24. Und ActionHandler?<br />&lt;statename=&quot;wait&quot; &gt;<br /> &lt;on event=&quot;start&quot;&gt;<br /> &lt;event-listener<br />class=&quot;org.jbpm.examples.eventlistener.LogListener&quot;/&gt;<br /> &lt;/on&gt;<br /> &lt;transitionto=&quot;end&quot;&gt;<br /> &lt;event-listener<br />class=&quot;org.jbpm.examples.eventlistener.LogListener&quot;/&gt;<br /> &lt;/transition&gt;<br />&lt;/state&gt;<br />publicclassLogListenerimplementsEventListener {<br />publicvoidnotify(EventListenerExecutionexecution) {<br />execution.getVariable(&quot;logs&quot;);<br /> ...<br />execution.setVariable(&quot;logs&quot;, logs);<br /> }<br />}<br />
  25. 25. Möglichkeiten & Features<br />
  26. 26. Möglichkeiten & Features<br />
  27. 27. jbpm 3<br />vs. jbpm 4<br />Process Virtual Machine<br />BPMN<br />Saubere Architektur<br />
  28. 28. Kundenkonto-<br />Komponente<br />BPM & SOA – Blueprint & Vision<br />GUI<br />Prozesse<br />Bonitäts-<br />prüfung<br />Kunden-<br />anlage<br />Kredit-<br />vergabe<br />Services<br />Bonitätscheck<br />Kundendaten<br />Kreditantrag<br />Ressourcen<br />Web-Service<br />SAP<br />Server<br />
  29. 29.
  30. 30. EJB<br />EJB<br />EJB-Container (oder Tomcat oder Java SE)<br />Architektur<br />Rich-<br />Client<br />Session<br />Bean<br />Human<br />Task<br />Mgmnt<br />Web-<br />Anwendung<br />jbpm<br />JCA<br />JMS<br />WS<br />WS<br />BPEL-Server<br />Java<br />WS<br />WS<br />WS<br />WS<br />.NET<br />Human<br />Task<br />Mgmnt<br />EJB-Container<br />…<br />JMS, …<br />
  31. 31. Das<br />Besondere an jbpm<br />
  32. 32. Selber bauen?<br />Quelle: Zitty, Berlin<br />siehe www.bpm-guide.de<br />
  33. 33. Aber…<br />BusinessProcess Management<br />ist mehr als nur Workflows…<br />
  34. 34. eBPMR nach Freund/Rücker 2008,<br />u.a. erschienen in: Wirtschaftsinformatik und Management 03/09, GWV Verlag<br />Das erweiterte BPM-Regelkreismodell (eBPMR)<br />BPM-Governance<br />
  35. 35. Modelling<br />Monitoring<br />Business<br />IT<br />Magic BPM-Suite<br />EAI / SOA<br />Human Workflow<br />
  36. 36. Das camunda BPMN-Framework<br />
  37. 37. camunda BPMN Framework <br />BPMN 2.0<br />Signavio-Integration<br />
  38. 38. Community<br />Wir planen eine deutschsprachige jBPM-Community. Bei Interesse oder spannenden Erfahrungen mit jBPM bitte Email an mich!<br />
  39. 39. www.jboss.org/jbossjbpm/<br />Und jetzt?<br />JavaMagazin<br />www.bpm-guide.de<br />Versionsverwirrung<br /><ul><li>Aktuell: 3.2.6 & 4.1
  40. 40. Unsupported community release: 3.3.x
  41. 41. Roadmap: 01.11.  4.2, 01.01.  4.3</li></li></ul><li>Fragen &<br /> Antworten<br />Bernd Rücker<br />Geschäftsführer<br />Berater, Trainer & Coach<br />bernd.ruecker@camunda.com<br />+49 30 664040901<br />

×