Next generation open source BPM
                                                                  JBoss jBPM 4

                                                  bernd.ruecker@camunda.com
Bernd Rücker / bernd.ruecker@camunda.com / 1
Berater, Trainer, Coach
    Softwareentwickler
                                                   Bernd Rücker
    Committer bei jBPM                         bernd.ruecker@camunda.com
                                               bernd ruecker@camunda com


    Blog: www.bpm-guide.de
    Bl        b     id d




Bernd Rücker / bernd.ruecker@camunda.com / 2
ca u da se ces G b
                                               camunda services GmbH
    Ganzheitliches BPM

            Beratung
             Training
         Process Hosting




                                                 Standort: Berlin
                                                 Mitarbeiter: 7
Bernd Rücker / bernd.ruecker@camunda.com / 3
Prozessbeispiel:
    Designer-
    Taschen




Bernd Rücker / bernd.ruecker@camunda.com / 4
• W
  Was ist ein G
        i t i Geschäftsprozess?
  Begriffsdefinition häft     ?




                                                  Rechnung-
                                                   stellung
                   Bestel-             Bestell-
   Kunde                              annahme
                                                              Versand
                                                                        Lieferung   Kunde
                    lung
                                                   Waren-
                                                  entnahme




Bernd Rücker / bernd.ruecker@camunda.com / 5
Wie setze ich
                               das bloß
                            technisch
                            t h i h um?  ?




Bernd Rücker / bernd.ruecker@camunda.com / 6
Möglichkeit 1:
                                                  Mö li hk it 1
                                               Java-Entwicklungg


   Probleme Geschäftsprozesse
   • Lang laufend
   • Wartezustände
   • Timeouts & Eskalation
   Nachteile
   • Zu viel Arbeit!
   • Prozess unsichtbar
Bernd Rücker / bernd.ruecker@camunda.com / 7
Business
                             Process
                             Engine!
                             E i !




                                               Open Source (LGPL)
                                                POJO + Hibernate
                                                     „Library“
                                               Version 4.0 (10.07.09)
                                               V i 4 0 (10 07 09)
Bernd Rücker / bernd.ruecker@camunda.com / 8
Das Prinzip der Prozessautomatisierung
  Einleitung


                                               Modeling
                                                          Monitoring und
             Technisches
                                                            Reporting
             Prozessmodell



                                                                           Human Workflow
                                                                            Management




                                                                                Service
                                                                              Orchestration
                                                                              O h t ti




Bernd Rücker / bernd.ruecker@camunda.com / 9
Der Prozess
     e    o ess
    (Workflow)




Bernd Rücker / bernd.ruecker@camunda.com / 10
Der Prozess
     e    o ess                                 user task
    (Workflow)

        Business Process Modeling Notation
                               (BPMN 2.0)
                                      2 0)




Bernd Rücker / bernd.ruecker@camunda.com / 11
Der Prozess
     e    o ess                                 java
    (Workflow)




Bernd Rücker / bernd.ruecker@camunda.com / 12
Der Prozess
     e    o ess
    (Workflow)


      gateway = decision




Bernd Rücker / bernd.ruecker@camunda.com / 13
Der Prozess
     e    o ess                                 wait state !=
    (Workflow)                                  task




Bernd Rücker / bernd.ruecker@camunda.com / 14
Demo




Bernd Rücker / bernd.ruecker@camunda.com / 15
Process Execution
  Wie funktioniert das?

                               1.) Aufgabe erzeugen         1.) System aufrufen / Message
                               2.) Aufgabe abschließen      2.) Asynchrone Antwort als Message




 Client                            Tasklist               Externes
                                                           System
                                                                                                 Process Execution Engine
        Transaction / Request


                                                                                    …                    Zeit


                                                    process execution




Bernd Rücker / bernd.ruecker@camunda.com / 16
JBoss Process Virtual
    Machine (PVM)




Bernd Rücker / bernd.ruecker@camunda.com / 17
Eine Prozessinstanz




Bernd Rücker / bernd.ruecker@camunda.com / 18
<process name="Bestellung" xmlns="http://jbpm.org/4.0/jpdl">

            <start name="start" g="18,150,48,48">
               <transition to="Bestellung pruefen"/>
            </start>

            <task candidate-groups="Lager" name="Bestellung_pruefen"
                g="191,149,109,52" form="...">
               <transition name="Problem aufgetreten"
                                            g
                           to="Alternativvorschlag_erarbeiten„
                           g="267,103:-3,27"/>
               <transition name="Auftrag OK" to="Bestellung_buchen"
                           g="268,236:0,-25"/>
                             "268 236 0 25"/>
            </task>

            <java name="Kunden informieren"
             j
                  class="com.camunda.training.jbpm.service.MockService"
                  method="informCustomer" g="493,75,119,52">
                     <arg><object expr="#{order.customer}"/></arg>
                     <arg><object expr="#{problem}"/></arg>
                     <   >< bj t       "#{   bl }"/></    >
               <transition to="Auf Entscheidung warten"/>          jPDL
            </java>
                                                              Quellcode
Bernd Rücker / bernd.ruecker@camunda.com / 19
...

          <decision name="Stornierung?" g="804,84,48,48">
              <transition name="Alternativvorschlag bestellen"
                          to="Bestellung_pruefen"
                          g="828,43;245,43:247,-19">
                            "828 43 245 43 247 19">
                  <condition expr="#{orderChanged}"/>
              </transition>
              <transition name="Stornierung" to="cancel" g="-26,-18"/>
                                          g               g    ,
           </decision>

            <state name="Auf Entscheidung warten" g="695,72,144,52" >
               <transition t "St
               <t    iti   to="Stornierung?"/>
                                    i     ?"/>
            </state>

         ...
         <end name="end" g="906,212,48,48" />
         <end-cancel name="cancel" g="905,152,48,48"/>
      </process>

                                                                   jPDL
                                                              Quellcode
Bernd Rücker / bernd.ruecker@camunda.com / 20
Lokal oder Remote
                                                 Sync oder Async                         APIs &
                                                  JTA oder nicht
                                                                                      Architektur
                      Process
                      P
                      Service                                    Command




                                                         ngine
                    Execution                                     Service
                                                                                     Commands




                                                  ocess En
     Client




                     Service
                  Management
                                                                       Interceptor
                    Service
                       Task                     Pro                    Interceptor
                      Service

                          PVM Interface                             jPDL Implementierung
      ervices




                                          Event Listener
                                              API
     Se




Bernd Rücker / bernd.ruecker@camunda.com / 21
Und ActionHandler?

      <state name="wait" >
        <on event="start">
          <event-listener
           event listener
               class="org.jbpm.examples.eventlistener.LogListener"/>
        </on>
        <transition to="end">
            <event-listener
                  t li t
               class="org.jbpm.examples.eventlistener.LogListener"/>
        </transition>
      </state>
       /


      public class LogListener implements EventListener {
        public void notify(EventListenerExecution execution) {
          bli    id   tif (E   tLi t     E    ti       ti )
          execution.getVariable("logs");
          ...
          execution.setVariable("logs", logs);
                               (   g ,     g );
        }
      }
Bernd Rücker / bernd.ruecker@camunda.com / 22
Möglichkeiten
                                                Mö li hk it
                                                  & Features




Bernd Rücker / bernd.ruecker@camunda.com / 23
Möglichkeiten
    & Features




Bernd Rücker / bernd.ruecker@camunda.com / 24
j p
                                                     jbpm 3
                                                 vs. jbpm 4
         Process Virtual Machine




              Saubere Architektur               BPMN




Bernd Rücker / bernd.ruecker@camunda.com / 25
EJB Container
                 EJB-Container (oder Tomcat oder Java SE)


    Rich-
    Client
                    Session
                     Bean
                                                      jbpm
                                                              Human
                                                                                          Architektur
                                                               Task
                    Web-                                      Mgmnt
                  Anwendung




                                   EJB          JCA     JMS
                                                              WS

                                                                                       BPEL-Server

                                                                      WS


                                       Java                                    WS          WS        WS      WS

                                                                       EJB-Container       .NET      Human   …
                                                                                                      Task
                                                                                                     Mgmnt
                                                                       EJB   JMS, …



Bernd Rücker / bernd.ruecker@camunda.com / 26
Das
    Besondere
    an jbpm




Bernd Rücker / bernd.ruecker@camunda.com / 27
Selber bauen?
                                                      Quelle: Zitty, Berlin
Bernd Rücker / bernd.ruecker@camunda.com / 28   siehe www.bpm-guide.de
BPM & SOA – Blueprint & Vision
     GUI




     Prozesse
                           Bonitäts-              Kunden-       Kredit-
                           prüfung                 anlage      vergabe


     Services
                       Bonitätscheck            Kundendaten    Kreditantrag



     Ressourcen
                       Web-Service              Kundenkonto-
                                                Kundenkonto       SAP
                                                Komponente       Server




Bernd Rücker / bernd.ruecker@camunda.com / 29
Bernd Rücker / bernd.ruecker@camunda.com / 30
Aber…




                                     Business Process Management
                                        ist mehr als nur Workflows…
Bernd Rücker / bernd.ruecker@camunda.com / 31
Das erweiterte BPM-Regelkreismodell (eBPMR)




      BPM-Governance

                                            eBPMR nach Freund/Rücker 2008,
                                            u.a. erschienen in: Wirtschaftsinformatik und Management 03/09, GWV Verlag
Bernd Rücker / bernd.ruecker@camunda.com / 32
Modelling      Monitoring




          Business
          IT
                                                       Magic BPM-Suite




                                       EAI / SOA         Human Workflow




Bernd Rücker / bernd.ruecker@camunda.com / 33
Das camunda BPMN-Framework




Bernd Rücker / bernd.ruecker@camunda.com / 34
Es gibt einen entscheidenden Nachteil
              an der Sache…




Bernd Rücker / bernd.ruecker@camunda.com / 35
… es wird unbequem für den
              Business Analyst!




Bernd Rücker / bernd.ruecker@camunda.com / 36
Aber
    Ab was ist sonst mir Ih
                         Ihren
    Geschäftsprozessen?



f                        Beschaffung                Produktion   Vertrieb   Abwi



    Bernd Rücker / bernd.ruecker@camunda.com / 37
unklar?




Bernd Rücker / bernd.ruecker@camunda.com / 38
teuer?




Bernd Rücker / bernd.ruecker@camunda.com / 39
unbeweglich?




Bernd Rücker / bernd.ruecker@camunda.com / 40
Wie lange können Sie sich
                                                den S
                                                d Status Quo noch leisten?
                                                          Q      hl       ?




Bernd Rücker / bernd.ruecker@camunda.com / 41
BPMN 2.0                                 camunda
                                                    BPMN
         Signavio-
           g
                                                Framework
         Integration




Bernd Rücker / bernd.ruecker@camunda.com / 42
Community




Bernd Rücker / bernd.ruecker@camunda.com / 43
jobs@camunda.com
                       jobs@camunda com




Bernd Rücker / bernd.ruecker@camunda.com / 44
Zum
                                                      Nachlesen

       www.jboss.org/jbossjbpm/
           jb       /jb   jb /




                     JavaMagazin                www.bpm-guide.de




Bernd Rücker / bernd.ruecker@camunda.com / 45
Fragen &
    Antworten
                                                                Bernd Rücker
                                                              Geschäftsführer
                                                     Berater,
                                                     Berater Trainer & Coach
                                                bernd.ruecker@camunda.com
                                                           +49 30 664040901
Bernd Rücker / bernd.ruecker@camunda.com / 46

20091014 J Bpm4 Hamburg

  • 1.
    Next generation opensource BPM JBoss jBPM 4 bernd.ruecker@camunda.com Bernd Rücker / bernd.ruecker@camunda.com / 1
  • 2.
    Berater, Trainer, Coach Softwareentwickler Bernd Rücker Committer bei jBPM bernd.ruecker@camunda.com bernd ruecker@camunda com Blog: www.bpm-guide.de Bl b id d Bernd Rücker / bernd.ruecker@camunda.com / 2
  • 3.
    ca u dase ces G b camunda services GmbH Ganzheitliches BPM Beratung Training Process Hosting Standort: Berlin Mitarbeiter: 7 Bernd Rücker / bernd.ruecker@camunda.com / 3
  • 4.
    Prozessbeispiel: Designer- Taschen Bernd Rücker / bernd.ruecker@camunda.com / 4
  • 5.
    • W Was ist ein G i t i Geschäftsprozess? Begriffsdefinition häft ? Rechnung- stellung Bestel- Bestell- Kunde annahme Versand Lieferung Kunde lung Waren- entnahme Bernd Rücker / bernd.ruecker@camunda.com / 5
  • 6.
    Wie setze ich das bloß technisch t h i h um? ? Bernd Rücker / bernd.ruecker@camunda.com / 6
  • 7.
    Möglichkeit 1: Mö li hk it 1 Java-Entwicklungg Probleme Geschäftsprozesse • Lang laufend • Wartezustände • Timeouts & Eskalation Nachteile • Zu viel Arbeit! • Prozess unsichtbar Bernd Rücker / bernd.ruecker@camunda.com / 7
  • 8.
    Business Process Engine! E i ! Open Source (LGPL) POJO + Hibernate „Library“ Version 4.0 (10.07.09) V i 4 0 (10 07 09) Bernd Rücker / bernd.ruecker@camunda.com / 8
  • 9.
    Das Prinzip derProzessautomatisierung Einleitung Modeling Monitoring und Technisches Reporting Prozessmodell Human Workflow Management Service Orchestration O h t ti Bernd Rücker / bernd.ruecker@camunda.com / 9
  • 10.
    Der Prozess e o ess (Workflow) Bernd Rücker / bernd.ruecker@camunda.com / 10
  • 11.
    Der Prozess e o ess user task (Workflow) Business Process Modeling Notation (BPMN 2.0) 2 0) Bernd Rücker / bernd.ruecker@camunda.com / 11
  • 12.
    Der Prozess e o ess java (Workflow) Bernd Rücker / bernd.ruecker@camunda.com / 12
  • 13.
    Der Prozess e o ess (Workflow) gateway = decision Bernd Rücker / bernd.ruecker@camunda.com / 13
  • 14.
    Der Prozess e o ess wait state != (Workflow) task Bernd Rücker / bernd.ruecker@camunda.com / 14
  • 15.
    Demo Bernd Rücker /bernd.ruecker@camunda.com / 15
  • 16.
    Process Execution Wie funktioniert das? 1.) Aufgabe erzeugen 1.) System aufrufen / Message 2.) Aufgabe abschließen 2.) Asynchrone Antwort als Message Client Tasklist Externes System Process Execution Engine Transaction / Request … Zeit process execution Bernd Rücker / bernd.ruecker@camunda.com / 16
  • 17.
    JBoss Process Virtual Machine (PVM) Bernd Rücker / bernd.ruecker@camunda.com / 17
  • 18.
    Eine Prozessinstanz Bernd Rücker/ bernd.ruecker@camunda.com / 18
  • 19.
    <process name="Bestellung" xmlns="http://jbpm.org/4.0/jpdl"> <start name="start" g="18,150,48,48"> <transition to="Bestellung pruefen"/> </start> <task candidate-groups="Lager" name="Bestellung_pruefen" g="191,149,109,52" form="..."> <transition name="Problem aufgetreten" g to="Alternativvorschlag_erarbeiten„ g="267,103:-3,27"/> <transition name="Auftrag OK" to="Bestellung_buchen" g="268,236:0,-25"/> "268 236 0 25"/> </task> <java name="Kunden informieren" j class="com.camunda.training.jbpm.service.MockService" method="informCustomer" g="493,75,119,52"> <arg><object expr="#{order.customer}"/></arg> <arg><object expr="#{problem}"/></arg> < >< bj t "#{ bl }"/></ > <transition to="Auf Entscheidung warten"/> jPDL </java> Quellcode Bernd Rücker / bernd.ruecker@camunda.com / 19
  • 20.
    ... <decision name="Stornierung?" g="804,84,48,48"> <transition name="Alternativvorschlag bestellen" to="Bestellung_pruefen" g="828,43;245,43:247,-19"> "828 43 245 43 247 19"> <condition expr="#{orderChanged}"/> </transition> <transition name="Stornierung" to="cancel" g="-26,-18"/> g g , </decision> <state name="Auf Entscheidung warten" g="695,72,144,52" > <transition t "St <t iti to="Stornierung?"/> i ?"/> </state> ... <end name="end" g="906,212,48,48" /> <end-cancel name="cancel" g="905,152,48,48"/> </process> jPDL Quellcode Bernd Rücker / bernd.ruecker@camunda.com / 20
  • 21.
    Lokal oder Remote Sync oder Async APIs & JTA oder nicht Architektur Process P Service Command ngine Execution Service Commands ocess En Client Service Management Interceptor Service Task Pro Interceptor Service PVM Interface jPDL Implementierung ervices Event Listener API Se Bernd Rücker / bernd.ruecker@camunda.com / 21
  • 22.
    Und ActionHandler? <state name="wait" > <on event="start"> <event-listener event listener class="org.jbpm.examples.eventlistener.LogListener"/> </on> <transition to="end"> <event-listener t li t class="org.jbpm.examples.eventlistener.LogListener"/> </transition> </state> / public class LogListener implements EventListener { public void notify(EventListenerExecution execution) { bli id tif (E tLi t E ti ti ) execution.getVariable("logs"); ... execution.setVariable("logs", logs); ( g , g ); } } Bernd Rücker / bernd.ruecker@camunda.com / 22
  • 23.
    Möglichkeiten Mö li hk it & Features Bernd Rücker / bernd.ruecker@camunda.com / 23
  • 24.
    Möglichkeiten & Features Bernd Rücker / bernd.ruecker@camunda.com / 24
  • 25.
    j p jbpm 3 vs. jbpm 4 Process Virtual Machine Saubere Architektur BPMN Bernd Rücker / bernd.ruecker@camunda.com / 25
  • 26.
    EJB Container EJB-Container (oder Tomcat oder Java SE) Rich- Client Session Bean jbpm Human Architektur Task Web- Mgmnt Anwendung EJB JCA JMS WS BPEL-Server WS Java WS WS WS WS EJB-Container .NET Human … Task Mgmnt EJB JMS, … Bernd Rücker / bernd.ruecker@camunda.com / 26
  • 27.
    Das Besondere an jbpm Bernd Rücker / bernd.ruecker@camunda.com / 27
  • 28.
    Selber bauen? Quelle: Zitty, Berlin Bernd Rücker / bernd.ruecker@camunda.com / 28 siehe www.bpm-guide.de
  • 29.
    BPM & SOA– Blueprint & Vision GUI Prozesse Bonitäts- Kunden- Kredit- prüfung anlage vergabe Services Bonitätscheck Kundendaten Kreditantrag Ressourcen Web-Service Kundenkonto- Kundenkonto SAP Komponente Server Bernd Rücker / bernd.ruecker@camunda.com / 29
  • 30.
    Bernd Rücker /bernd.ruecker@camunda.com / 30
  • 31.
    Aber… Business Process Management ist mehr als nur Workflows… Bernd Rücker / bernd.ruecker@camunda.com / 31
  • 32.
    Das erweiterte BPM-Regelkreismodell(eBPMR) BPM-Governance eBPMR nach Freund/Rücker 2008, u.a. erschienen in: Wirtschaftsinformatik und Management 03/09, GWV Verlag Bernd Rücker / bernd.ruecker@camunda.com / 32
  • 33.
    Modelling Monitoring Business IT Magic BPM-Suite EAI / SOA Human Workflow Bernd Rücker / bernd.ruecker@camunda.com / 33
  • 34.
    Das camunda BPMN-Framework BerndRücker / bernd.ruecker@camunda.com / 34
  • 35.
    Es gibt einenentscheidenden Nachteil an der Sache… Bernd Rücker / bernd.ruecker@camunda.com / 35
  • 36.
    … es wirdunbequem für den Business Analyst! Bernd Rücker / bernd.ruecker@camunda.com / 36
  • 37.
    Aber Ab was ist sonst mir Ih Ihren Geschäftsprozessen? f Beschaffung Produktion Vertrieb Abwi Bernd Rücker / bernd.ruecker@camunda.com / 37
  • 38.
    unklar? Bernd Rücker /bernd.ruecker@camunda.com / 38
  • 39.
    teuer? Bernd Rücker /bernd.ruecker@camunda.com / 39
  • 40.
    unbeweglich? Bernd Rücker /bernd.ruecker@camunda.com / 40
  • 41.
    Wie lange könnenSie sich den S d Status Quo noch leisten? Q hl ? Bernd Rücker / bernd.ruecker@camunda.com / 41
  • 42.
    BPMN 2.0 camunda BPMN Signavio- g Framework Integration Bernd Rücker / bernd.ruecker@camunda.com / 42
  • 43.
    Community Bernd Rücker /bernd.ruecker@camunda.com / 43
  • 44.
    jobs@camunda.com jobs@camunda com Bernd Rücker / bernd.ruecker@camunda.com / 44
  • 45.
    Zum Nachlesen www.jboss.org/jbossjbpm/ jb /jb jb / JavaMagazin www.bpm-guide.de Bernd Rücker / bernd.ruecker@camunda.com / 45
  • 46.
    Fragen & Antworten Bernd Rücker Geschäftsführer Berater, Berater Trainer & Coach bernd.ruecker@camunda.com +49 30 664040901 Bernd Rücker / bernd.ruecker@camunda.com / 46