Dreamteam „BPM + Java EE“

bernd.ruecker@camunda.com
Dafür…
Leider heute nicht…




            BPMN 2.0 & Java EE 6 –
            eine Prozessanwendung
               in 5 Stunden Zugfahrt
Bernd Rücker
camunda services GmbH
Eine ganz typische Java EE Anwendung
                                     HTML 5




              JSF                     REST / WS   JAX-RS, JAX-WS, JSF, …




                       Order Bean                 EJB, CDI, JTA, …



         Order

      - customer
                                                  JPA
      - state
      - ...




                 Java EE Container


                           DB
Eine ganz normale Anforderung

               „Wenn Ware nicht lieferbar ist dann soll der
              Kunde angerufen werden um ihm was anderes
                             anzudrehen.

              Das Ganze darf nicht länger als nen Tag dauern
                      – sonst ist der Kunde sauer!“
Ein ganz typischer Lösungsansatz
                                         HTML 5
    Neue Liste
       für
  Sachbearbeiter

               JSF                        REST / WS           JAX-RS, JAX-WS, JSF, …




                         Order Bean                           EJB, CDI, JTA, …
                                          Neue Methode

          Order       Filter auf den
                          Status
       - customer    „nicht lieferbar“
                                                              JPA
       - state
       - ...
                                         EJB 3 Timer
                                                                             …
                                                     Polling-
                                                  Mechanismus
                                                  für Eskalation
                   Java EE Container


                             DB
Also…




        Code 
Wie findet ihr das – im Vergleich?
Prozessautomatisierung mit Process Engine
                          <process id="order" isExecutable="true">
                            <startEvent name="Bestellung eingegangen" />
 Monitoring und             <userTask name="Kunde umberaten" />
   Reporting                <exclusiveGateway name="Umberatung erfolgreich?"
                            ...
                                                                                                    Ausführbares
                                                                                                    Prozessmodell
                    Process Engine



                                                       Messung der
                                                       Durchlaufzeit
Human Workflow
 Management
                       Aufgaben-                                                    Aufgaben-
                                        Service-Call            Service-Call
                       Zuweisung                                                    Zuweisung




      Service
   Orchestration




                   Prozessbeteiligter   IT-System                 IT-System    Prozessbeteiligter
Demo




 https://bitbucket.org/camunda/outer-space-demos/src/master/wjax2012-bestellprozess
fox-platform, z.B. auf JBoss 7.1
                     BPMN 2.0 Standard

                     Java / Java EE Standard

                     camunda fox



                         Application         Application
                              1                   n
                                       ...

     fox-cockpit:
     Monitoring &
    Administration                                         WAR




                             fox platform
                              fox engine




JBoss AS 7.1                    DB (H2)
Merker für mich
camunda fox


                        fox-cockpit        fox-designer

                       fox-platform          fox-cycle
      fox-platform
                        enterprise
                                           fox-modeler
       fox-engine
                       https://github.com/camunda/

              Branch


        Activiti
                                          OSS (Apache License)

                                             Enterprise Edition
Anfangen!

                       fox-cockpit       fox-designer

       fox-platform   fox-platform         fox-cycle
        community      enterprise
                                         fox-modeler
       fox-engine




                             www.camunda.com/fox/



                                              Getting
                       Download
                                              Started


                      Apache License     https://github.com/camunda/
Noch nicht nicht genug?

    Donnerstag 16:30

BPMN 2.0 und Activiti für
   Fortgeschrittene
 (Fehlerbehandlung, TX, EAI/SOA, …)
BPM ist doch
                      Buzzword Bingo!




 Warum macht ihr denn so ein
„Alte Männer Thema“ wie BPM?
Missverständnisse & Fehler




                             WRONG
Missverständnisse & Fehler




                             WRONG
Missverständnisse & Fehler




                             WRONG
Unsere Vision




     BPM + Java
Some code             CDI / Spring
                      (if you want)


@Inject
private ProcessEngine engine;

[…]

Deployment deployment = engine.getRepositoryService()
  .createDeployment()                                        Services to talk
  .addClasspathResource("diagrams/fox-invoice.bpmn")          to the engine
  .deploy();


engine.getRuntimeService().startProcessInstanceByKey("fox-invoice");


List<Task> list = engine.getTaskService().createTaskQuery().list();
HashMap<String, Object> variables = new HashMap<String, Object>();
variables.put("approver", "bernd");
engine.getTaskService().complete(list.get(0).getId(), variables);

                                            Use TX / JTA /
                                                  EJB
                                            (if you want)
Some code              Process XML refers
                        CDI/Spring bean
                          or Java Class


<process ...>
  <serviceTask activiti:delegateExpression="#{svnService}"
               name="PDF in SVN ablegen">


                                            Code is executed when
                                            process instances runs
                                                   through


@Named("svnService")
public class StorePDFDelegate implements JavaDelegate {

 public void execute(DelegateExecution execution) throws Exception {
   String someData = (String) execution.getVariable("someData");
Best of breed
                                           You name it!
                                           Beliebige Komponenten aus dem (Java)
                                           Kosmos.




                                     camunda fox
                                     Prozessautomatisierung,
                                     Monitoring, Operations, …




                                                                 BPMN 2.0
                Java EE 6                                        Prozessmodellierung,
                                                                 fachliche Abstimmung,
                Persistenz (JPA), Transaktionen                  Roundtrip, …
                (JTA, EJB3), Clustering,
                Connectivity (JAX-WS, JAX-RS,
                JAX-B), UI (JSF), …
Denn BPM kann uns wirklich helfen!
Gemeinsame Sprache und iteratives Vorgehen!


                                              Prozesslandschaft



                                                                    Inhalt:         Prozess im Überblick
                                                    Ebene 1         Ziel:           Schnelles Verständnis
                                                 Strategisches      Semantik:       logisch-abstrakt
                                                 Prozessmodell

                                                                              Inhalt:        Operative Abläufe
                                                    Ebene 2                   Ziel:          Abstimmung von Details
                      Fachlich              Operatives Prozessmodell          Semantik:      physisch-konkret
                      (Business)

                      Technisch
                      (IT)                 Ebene 3a                                       Inhalt:       Technische Details
                                                           Ebene 3b
                                         Technisches                                      Ziel:         Umsetzung
                                                           IT-Spezifikation
                                       Prozessmodell                                      Semantik:     physisch-konkret


                                   Mit Process Engine
                                                           Ebene 4b
                                                           Implementierung



                                                           Ohne Process Engine
Ein beispielhafter POC (Versicherung)
                                    Sachbearbeiter




                          ESB
Genehmiger
Und wir helfen auch gerne…


               Proof Of
               Concept &             Training &
               Kompakt               Coaching
               Workshops

                                     fox, Activiti,
               Beispiel: 5 Tage      BPMN 2.0, …




               Stabilisierte
               Enterprise         Projekt-
               Edition            unterstützung &
                                  Ressourcen,
               Subscription &     Partner
               24x7 Support
Vielen Dank!
camunda services GmbH
 Vielen Dank!                                          Zossener Str. 55-58
                                                       1096 Berlin
                                                           1
                                                       Telefon: +49 30 664 0409-00
                                                       Telefax: +49 30 664 0409-29
                                                       Email: info@camunda.com




                                    Bernd Rücker
                                     Geschäftsführer
                          bernd.ruecker@camunda.com


Dreamteam BPM + Java EE
München, 06.11.2012

                                                       Der Praxis-Blog zu BPM:
                                                       www.bpm-guide.de

WJAX 2012: Dreamteam "BPM + Java EE"

  • 1.
    Dreamteam „BPM +Java EE“ bernd.ruecker@camunda.com
  • 2.
    Dafür… Leider heute nicht… BPMN 2.0 & Java EE 6 – eine Prozessanwendung in 5 Stunden Zugfahrt
  • 3.
  • 4.
    Eine ganz typischeJava EE Anwendung HTML 5 JSF REST / WS JAX-RS, JAX-WS, JSF, … Order Bean EJB, CDI, JTA, … Order - customer JPA - state - ... Java EE Container DB
  • 5.
    Eine ganz normaleAnforderung „Wenn Ware nicht lieferbar ist dann soll der Kunde angerufen werden um ihm was anderes anzudrehen. Das Ganze darf nicht länger als nen Tag dauern – sonst ist der Kunde sauer!“
  • 6.
    Ein ganz typischerLösungsansatz HTML 5 Neue Liste für Sachbearbeiter JSF REST / WS JAX-RS, JAX-WS, JSF, … Order Bean EJB, CDI, JTA, … Neue Methode Order Filter auf den Status - customer „nicht lieferbar“ JPA - state - ... EJB 3 Timer … Polling- Mechanismus für Eskalation Java EE Container DB
  • 7.
    Also… Code 
  • 8.
    Wie findet ihrdas – im Vergleich?
  • 9.
    Prozessautomatisierung mit ProcessEngine <process id="order" isExecutable="true"> <startEvent name="Bestellung eingegangen" /> Monitoring und <userTask name="Kunde umberaten" /> Reporting <exclusiveGateway name="Umberatung erfolgreich?" ... Ausführbares Prozessmodell Process Engine Messung der Durchlaufzeit Human Workflow Management Aufgaben- Aufgaben- Service-Call Service-Call Zuweisung Zuweisung Service Orchestration Prozessbeteiligter IT-System IT-System Prozessbeteiligter
  • 10.
  • 11.
    fox-platform, z.B. aufJBoss 7.1 BPMN 2.0 Standard Java / Java EE Standard camunda fox Application Application 1 n ... fox-cockpit: Monitoring & Administration WAR fox platform fox engine JBoss AS 7.1 DB (H2)
  • 12.
  • 13.
    camunda fox fox-cockpit fox-designer fox-platform fox-cycle fox-platform enterprise fox-modeler fox-engine https://github.com/camunda/ Branch Activiti OSS (Apache License) Enterprise Edition
  • 14.
    Anfangen! fox-cockpit fox-designer fox-platform fox-platform fox-cycle community enterprise fox-modeler fox-engine www.camunda.com/fox/ Getting Download Started Apache License https://github.com/camunda/
  • 15.
    Noch nicht nichtgenug? Donnerstag 16:30 BPMN 2.0 und Activiti für Fortgeschrittene (Fehlerbehandlung, TX, EAI/SOA, …)
  • 16.
    BPM ist doch Buzzword Bingo! Warum macht ihr denn so ein „Alte Männer Thema“ wie BPM?
  • 17.
  • 18.
  • 19.
  • 20.
    Unsere Vision BPM + Java
  • 21.
    Some code CDI / Spring (if you want) @Inject private ProcessEngine engine; […] Deployment deployment = engine.getRepositoryService() .createDeployment() Services to talk .addClasspathResource("diagrams/fox-invoice.bpmn") to the engine .deploy(); engine.getRuntimeService().startProcessInstanceByKey("fox-invoice"); List<Task> list = engine.getTaskService().createTaskQuery().list(); HashMap<String, Object> variables = new HashMap<String, Object>(); variables.put("approver", "bernd"); engine.getTaskService().complete(list.get(0).getId(), variables); Use TX / JTA / EJB (if you want)
  • 22.
    Some code Process XML refers CDI/Spring bean or Java Class <process ...> <serviceTask activiti:delegateExpression="#{svnService}" name="PDF in SVN ablegen"> Code is executed when process instances runs through @Named("svnService") public class StorePDFDelegate implements JavaDelegate { public void execute(DelegateExecution execution) throws Exception { String someData = (String) execution.getVariable("someData");
  • 23.
    Best of breed You name it! Beliebige Komponenten aus dem (Java) Kosmos. camunda fox Prozessautomatisierung, Monitoring, Operations, … BPMN 2.0 Java EE 6 Prozessmodellierung, fachliche Abstimmung, Persistenz (JPA), Transaktionen Roundtrip, … (JTA, EJB3), Clustering, Connectivity (JAX-WS, JAX-RS, JAX-B), UI (JSF), …
  • 24.
    Denn BPM kannuns wirklich helfen!
  • 25.
    Gemeinsame Sprache unditeratives Vorgehen! Prozesslandschaft Inhalt: Prozess im Überblick Ebene 1 Ziel: Schnelles Verständnis Strategisches Semantik: logisch-abstrakt Prozessmodell Inhalt: Operative Abläufe Ebene 2 Ziel: Abstimmung von Details Fachlich Operatives Prozessmodell Semantik: physisch-konkret (Business) Technisch (IT) Ebene 3a Inhalt: Technische Details Ebene 3b Technisches Ziel: Umsetzung IT-Spezifikation Prozessmodell Semantik: physisch-konkret Mit Process Engine Ebene 4b Implementierung Ohne Process Engine
  • 26.
    Ein beispielhafter POC(Versicherung) Sachbearbeiter ESB Genehmiger
  • 28.
    Und wir helfenauch gerne… Proof Of Concept & Training & Kompakt Coaching Workshops fox, Activiti, Beispiel: 5 Tage BPMN 2.0, … Stabilisierte Enterprise Projekt- Edition unterstützung & Ressourcen, Subscription & Partner 24x7 Support
  • 29.
  • 30.
    camunda services GmbH Vielen Dank! Zossener Str. 55-58 1096 Berlin 1 Telefon: +49 30 664 0409-00 Telefax: +49 30 664 0409-29 Email: info@camunda.com Bernd Rücker Geschäftsführer bernd.ruecker@camunda.com Dreamteam BPM + Java EE München, 06.11.2012 Der Praxis-Blog zu BPM: www.bpm-guide.de