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

2,161 views

Published on

Vorstellung der Open Source Process Engine JBoss jBPM 4 auf dem Java Forum Stuttgart 2009.

Published in: Technology, Education
  • Be the first to comment

JBoss jBPM 4

  1. 1. Next generation open source BPM<br />JBoss jBPM 4<br />Java Forum Stuttgart<br />02.07.2009<br />bernd.ruecker@camunda.com<br />
  2. 2. Guten Morgen <br />
  3. 3. 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 />
  4. 4. camunda services GmbH<br />Ganzheitliches BPM<br />Beratung<br />Seminare<br />Process Hosting<br />Standort: Berlin / Stuttgart<br />Mitarbeiter: 6<br />
  5. 5. Prozessbeispiel:<br />Designer-Taschen<br />
  6. 6. 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 />
  7. 7. Wie setze ich das bloß technisch um?<br />
  8. 8. Möglichkeit 1:<br />Java-Entwicklung<br />Probleme Geschäftsprozesse<br /><ul><li>Lang laufend
  9. 9. Wartezustände
  10. 10. Timeouts & Eskalation</li></ul>Nachteile<br /><ul><li>Zu viel Arbeit!
  11. 11. 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 />
  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. Die Hüllen fallen gelassen…<br />
  22. 22. 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 />
  23. 23. &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 />
  24. 24. ...<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 />
  25. 25. 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 />
  26. 26. Möglichkeiten & Features<br />
  27. 27. Möglichkeiten & Features<br />
  28. 28. jbpm und die BPMN-Spezifikation<br />„Whycan‘twebefriends?“<br />
  29. 29. 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 />
  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. BPM aus IT-Perspektive<br />Software-Entwicklung<br />Prozess-Automatisierung<br />Prozess-Beschreibung<br />Fachliche Analyse, Modellierung, Dokumentation & Kommunikation<br />Human<br />Workflow<br />GUI-Steuerung<br />Pageflow<br />Integration<br />& EAI<br />Anwendungs-<br />entwicklung<br />
  32. 32. jbpm 3<br />vs. jbpm 4<br />Process Virtual Machine<br />BPMN<br />Saubere Architektur<br />
  33. 33. Und was nehme ich im Projekt?<br />
  34. 34. Doch selber bauen?<br />Quelle: Zitty, Berlin<br />siehe www.bpm-guide.de<br />
  35. 35. Und das Besondere an jbpm?<br />
  36. 36. www.jboss.org/jbossjbpm/<br />Und jetzt?<br />JavaMagazin<br />www.bpm-guide.de<br />Versionsverwirrung<br /><ul><li>Aktuell: 3.2.6 & 4.0
  37. 37. Unsupported community release: 3.3.x
  38. 38. Roadmap: 01.09.  4.1, 01.11.  4.2</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 />+49 711 3278645<br />

×