SlideShare uma empresa Scribd logo
1 de 49
Bernd Rücker | camunda services GmbH | bernd.ruecker@camunda.com


Geschäftsprozesse und Regeln mit
jBPM und Drools
ein unschlagbares Team
Bernd Rücker

• Berater, Trainer, Coach
• Softwareentwickler
• Committer im jBPM-Projekt
  – Commands
  – Simulation (BPS)
• Themen: BPM, SOA, Process Execution
  [jBPM, BPEL, XPDL, …], Verbindung mit
  Java EE
                         Bernd Rücker | camunda services GmbH
               bernd.ruecker@camunda.com | 23.04.2008 | Folie 2
Agenda

• Business Process Management (BPM)
• Business Rules Management (BRM)
• Einsatzgebiete, Abgrenzung und
  Kombinationsmöglichkeiten
• Konkretes Beispiel
  – JBoss jBPM
  – JBoss Drools


                   Bernd Rücker | camunda services GmbH
                                      23.04.2008, Folie 3
Was ist ein Geschäftsprozess?

• Erzeugt einen definierten Output aus einem
  gegebenen Input
• Geordnete Aktivitäten
• Erzeugt Wert („business value“)
• Lang laufend (bis zu Monaten oder Jahren)
• Enthält Wartezustände
• Aktivitäten können automatisiert (EAI/SOA) oder
  durch Menschen (Human-Task-Management)
  ausgeführt werden
Werden Prozesse durch Software
unterstützt?


    GUI
                             Paper            Email

                  Gui 1               Gui 2                  Gui 3


    Software

                                       Kunden             SAP
                                     Komponente          Server


                                                  EAI-Tool
               Web-Service
Softwareintegration
 Prozesse
               Activity 1           Activity 2      Activity 3
                                                                 Prozess-
                                                                 integration

                                      Services
 Anwendungen
                      App 1                        App 2
                                                                 Funktions-
                                                                 integration
                                      Middleware



 Daten

                            Logische Datenbank
                                                                 Daten-
                                                                 integration
                DB 1                                 DB 2
Ein „digitaler“ Prozess

                       ∆ Durchlaufzeit



         Execution Engine

           Task             Service         Task
         Zuweisung          Aufruf        Zuweisung
IT                                                        IT




                              IT


      Human Workflow        SOA          Human Workflow
Business Process Engine

 Business Analyst               Sachbearbeiter
                                                           Aufgaben-
                                                           Verwaltung




                                               Prozess-                     Fremd-
                                              Ausführung                 Anwendungen


           Prozess-
          definitionen                                 Administration

                                                                        Administrator
        Prozess-
          Logs

                                                    Persistenz
 Business Process Engine (BPM-Engine)




                                 Entwickler
Das Versprechen der Anbieter: „It‘s All
Magic!“
              Modeling          Monitoring




 Business
 IT
                             Magic Process Engine




            Human Workflow      EAI / SOA
Gemeinsame Sprache




                     Quelle: Tom Baeyens, JBoss
Was leistet die Business Process Engine
• Versionierung, Persistenz & Interpretation
  von Prozessmodellen
• Steuerung & Persistenz von
  Prozessinstanzen
• Task-Management & Wait-States
• Prozesskontext (Variablen zu Prozess
  speichern)
• Einbindung externer Services
• Verwalten von Ereignissen (wie Timeouts, …)

                   Bernd Rücker | camunda services GmbH
                                      23.04.2008, Folie 11
Business Process Engine in Java

• Process Engine ist eigene
  Architekturschicht
• Domänenobjekte oder Referenzen als
  Prozessvariablen
                         EJB-Container
• Ansteuerung ext.                              BPM-Engine


  Services                    Session
                               Bean




                                          EJB       JCA      JMS   …


                 Bernd Rücker | camunda services GmbH
                                   23.04.2008, Folie 12
JBoss jBPM
• Business Process Engine
• POJO-Kern: Interne Prozessrepräsentation
  durch Java-Modelle
• Persistenz über Hibernate (DB-
  Unabhängigkeit)
• Lauffähig mit oder ohne Application-Server
• „Library“
• Klein und flexibel, leicht erweiterbar
• Aktuell Version 3.2, Version 4 in der Entw.
• Open Source (LGPL)
                    Bernd Rücker | camunda services GmbH
                                      23.04.2008, Folie 13
„Graph oriented programming“
                            Node           1
                                                    Token
                                          current
                                          Node
               from                  to
            leaving                  arriving
         Transitions    *        *   Transitions

                       Transition


                                   <process-definition>
                                     ...
                                     <node-type-x name=“serve client”>
                                       <transition name=“ok” to=“order” />
                                       <transition name=“nok” to=“joke” />
                                     </node-type-x>
                                     <node-type-y name=“take order” />
                                     <node-type-z name=“make joke” />
                                     ...
                                   </process-definition>

                              Bernd Rücker | camunda services GmbH
                                                23.04.2008, Folie 14
Verschiedene Node-Typen

•   Task-Node: Human Tasks / Aufgaben
•   State: Wait-States
•   Fork / Join
•   Decision: Automatische Entscheidung
•   Start-State / End-State
•   …
•   Eigene Node-Typen mit Verhalten können
    implementiert werden
                   Bernd Rücker | camunda services GmbH
                                     23.04.2008, Folie 15
Ablaufsteuerung durch Token




               Bernd Rücker | camunda services GmbH
                                 23.04.2008, Folie 16
jBPM & Java

• Einfache Java-API zur Steuerung der
  Engine
  – Prozessstart
  – Aufgabenliste
  –…
• Aufrufen von „User-Code“
  – definierte Stellen im Prozess
  – Interface & Java-Klassen

                     Bernd Rücker | camunda services GmbH
                                       23.04.2008, Folie 17
jBPM & Java
JbpmConfiguration conf = JbpmConfiguration.getInstance();
JbpmContext context = conf. createJbpmContext();

ProcessInstance pi = context.getGraphSession().
          findLatestProcessDefinition("Ticket").createProcessInstance();
pi.getRootToken().signal();

List<TaskInstance> tasks = context.getTaskMgmtSession().
          findTaskInstances("Vertrieb");
tasks.get(0).end("Ticket schliessen");

context.close();


public class MyAction implements ActionHandler {
 public void execute(ExecutionContext ctx) {
  Object var = ctx.getVariable("var");
  result = service.doSomething(var);
  ctx.setVariable("result", result);
 }
}


                                Bernd Rücker | camunda services GmbH
                                                  23.04.2008, Folie 18
Gemeinsame Sprache, Beispiel jBPM




               Bernd Rücker | camunda services GmbH
                                 23.04.2008, Folie 19
Tooling: Eclipse




                   Bernd Rücker | camunda services GmbH
                                     23.04.2008, Folie 20
Was sind Regeln?
• „Wenn ich müde bin, dann gehe ich ins Bett!“

• „WENN .. DANN ..“-Struktur
• Bedingung und Konseqenz (Prämisse und
  Konklusion; Left-Hand-Side LHS und Right-Hand-
  Side RHS)
• Konsequenz wird häufig als „Aktion“ bezeichnet
• Bedingungen prüfen „Fakten“
• Regeln „feuern“, wenn deren Bedingung eintrifft
Wie werden Regeln umgesetzt?
• Direkte Programmierung im Quellcode:

  if ( person.istMuede() == true ) {
    person.putzeZaehne();
    person.geheInsBett();
  }



• Spezifische Lösungen (Codegenerierung,
  DSL, Speziallösungen, …)
• Regelmaschine / Rule Engine
Probleme programmierter Regeln
• Wartbarkeit und Validierbarkeit nicht
  gegeben
• Regeln müssen durch Entwickler in
  Quellcode übersetzt werden
• Fachliche Regeln werden über
  verschiedene Klassen verteilt
• Keine Lesbarkeit der Regeln für den
  Fachbereich
• Konflikt-Lösung muss realisiert werden
Lösung: Rule Engines
• Explizite Formulierung der Regeln als Regeln
• Deklarativ: Welche Regeln wann wie
  ausgeführt werden entscheidet die
  Regelmaschine
• Regeln für Fachbereich verständlich

  Bedingung:
    Person.muede = true

  Konsequenz:
   person.putzeZaehne();
   person.geheInsBett();
Rule Engines in Java

• Fakten (Wissen) = Domänenobjekte
  (POJOs)
• Rule Engine wird generisch in die
  Architektur integriert (Interceptoren, …)
              Client            Anwendung / Server



                                    Interceptor




                                                        Fachlogik




                       Bernd Rücker | camunda services GmbH
                                         23.04.2008, Folie 25
JBoss Drools

• Java Rule Engine (RETE-Implementierung)
• „JBoss Drools“ / „JBoss Rules“
• Lauffähig mit oder ohne Application-Server
• „Library“
• Business Rules Management System
  (BRMS) in der Entwicklung
• Aktuell Version 4.0
• Open Source (ASL)
                   Bernd Rücker | camunda services GmbH
                                     23.04.2008, Folie 26
Beispiel einer Drools-Regel
package com.camunda.demo

import demo.business.*;
import demo.infrastructure.ErrorList;

global ErrorList errors;

rule "Auftragsrabatt bei hohem Bestellwert"
when
   o: Order( value>5000 )
then
   a.setDiscount(0.05);
end

rule "Nachnahme nur bis 2500 € möglich"
when
   o: Order( value>2500, shippingType="COD" )
then
   errors.addError("Nachname nicht möglich bei Auftragswert " + o.getValue()
);
end
Wie funktioniert es?
                                                                  Regeln




                                 POJO‘s
                                                            WorkingMemory

                             fireAllRules


 RuleBaseLoader loader = RuleBaseLoader.getInstance();
 RuleBase ruleBase = loader.loadFromReader(
       new InputStreamReader(this.getClass().getResourceAsStream(
       "/demo.drl")));

 WorkingMemory wm = ruleBase.newStatefulSession();

 wm.insert(meldung);

 wm.fireAllRules();

                                  Bernd Rücker | camunda services GmbH
                       bernd.ruecker@camunda.com | 23.04.2008 | Folie 28
Drools

•   In-memory Knowledge-Repository
•   Basiert auf Rete Algorithm
•   Forward chaining
•   Backward
    chaining ist
    geplant
    (Drools 5)
Für den Fachbereich: Decision Tables
DSL-Support

[when]Versicherter unter {MindestAlter} Jahre alt=
    Person( age >= {MindestAlter} )
[when]Mehr als {Anzahl} Unfälle gebaut=
    Person( accidentCount > {Anzahl} )

...

[then]Police nicht möglich=
    errors.addError("Police kann nicht ausgestellt werden");

rule "Abmeldung - Check mit DSL"
when
  Versicherter unter 25 Jahre alt
  and
  Mehr als 3 Unfälle gebaut
then
  Police nicht möglich
end



                                   Bernd Rücker | camunda services GmbH
                        bernd.ruecker@camunda.com | 23.04.2008 | Folie 31
DSL-Support




                         Bernd Rücker | camunda services GmbH
              bernd.ruecker@camunda.com | 23.04.2008 | Folie 32
Regeleditor ohne DSL




                       Bernd Rücker | camunda services GmbH
            bernd.ruecker@camunda.com | 23.04.2008 | Folie 33
Guided Rule Editor


Verfügbar in
Eclipse &
BRMS




                          Bernd Rücker | camunda services GmbH
               bernd.ruecker@camunda.com | 23.04.2008 | Folie 34
Rule Flow

• Regel-Reihenfolge
• Parallelität
• Bedingungen ob Regeln
  ausgeführt werden




                       Bernd Rücker | camunda services GmbH
            bernd.ruecker@camunda.com | 23.04.2008 | Folie 35
Tooling: Eclipse




                   Bernd Rücker | camunda services GmbH
                                     23.04.2008, Folie 36
BPM vs. BRM | BPM + BRM




              Bernd Rücker | camunda services GmbH
                                23.04.2008, Folie 37
Geschäftsprozesse mit Regeln
umsetzen?
• Möglich!
• Vorteil: Maximale Flexibilität
• Nachteile
  – Keine Visualisierung / Modellierung des
    Prozessflusses
  – Nicht immer offensichtlich, warum was
    passiert
  – Keine „Grenzen“ durch Prozessstruktur
  – Evtl. Performance
                    Bernd Rücker | camunda services GmbH
                                      23.04.2008, Folie 38
Einsatzmöglichkeiten

• BPM (Prozesse)
  – Geschäftsprozesse / Workflows
  – Fachliche Modellierung
  – Hoher Standardisierungs-/Wiederholungsgrad
• BRM (Regeln)
  – Prozessunabhängige Regeln
  – Punktuelle Integration in Prozesse
  – Beeinflussung des Prozessablaufs (80/20
    Regel)
                   Bernd Rücker | camunda services GmbH
                                     23.04.2008, Folie 39
Wann benutze ich was?




                      Bernd Rücker | camunda services GmbH
           bernd.ruecker@camunda.com | 23.04.2008 | Folie 40
Kombinationsmöglichkeiten


                     Regeln treffen Entscheidungen


                     Regeln steuern Zuweisung von
                     Aufgaben

                     Regeln schließen neues Wissen




                                           Und: Beeinflussung des
                                                Prozessablaufs in
                                                     Sonderfällen

               Bernd Rücker | camunda services GmbH
                                 23.04.2008, Folie 41
Entscheidungen
<node name="drools decision">
  <action class="org.jbpm.action.RulesActionHandler“>
    <ruleFile>/com/.../OrderDecisionRules.drl</ruleFile>
    <objectNames>
        <element>order</element>
    </objectNames>
    <signalToken>false</signalToken>
  </action>
  <transition name="conspicuous" to="do something" />
  <transition name="casual" to="determine discount" />
</node>

                rule "Conspicuous Order"
                when
                  Order( price > 500)
                then
                  System.out.println("signal conspicuous order");
                  executionContext.getNode().
                                   leave(executionContext, "conspicuous");
                end
Schließen von neuem Wissen
           rule "Special Discount"
           when
              o : Order( customerName == "Bernd" )
           then
              # 5 % discount
              o.applyDiscount( 0.95 );
              System.out.println("Special discount granted");
           end




              <action
              class="org.jbpm.action.RulesActionHandler">
                <ruleFile>/...OrderPricingRules.drl</ruleFile>
                <objectNames>
                   <element>order</element>
                </objectNames>
              </action>
Actor-Assignment (Wer ist zuständig?)
<assignment class="org.jbpm.assignment.RulesAssignmentHandler">
  <group>underwriting</group>
  <ruleFile>/Assignment.drl</ruleFile>
  <objectNames><element>policy</element></objectNames>
</assignment>

                            rule "Determine Junior Role“
                            when
                              Policy( basePrice < 500)
                            then
                              insert(new Role("junior"));
                            end

                            rule "Determine Actor"
                            salience -100
                            when
                              Role($roleName : roleName)
                              $a : Assignable()
                              $group : Group()
                              Membership( group == $group, role == $roleName,
                                          $user : user )
                            then
                              $a.setActorId($user.getName());
                            end
Beeinflussung des Prozessablaufs
         rule "Order gets cancelled"
         when
            evt : Event( type == "cancel" )
         then
            token.setNode( "end2" );
         end




                                  Token
Fazit
• jBPM & Drools integrieren sehr gut
• Benutzen Sie das richtige Tool für den Job
• Kombinieren Sie!
• jBPM ist eine kleine, flexible Process Engine.
  Bewährt auch in großen Projekten
• Drools ist cool ☺ Steht teuren Rule Engines
  in nichts nach
• BPM & BRM sind Themen der Zukunft!
• Ausblick: Integration in den JBoss ESB
Fazit




                                                            Quelle:
                                                            Lary Ward
                                                            & Jordan
                                                            Masanga

                   Bernd Rücker | camunda services GmbH
        bernd.ruecker@camunda.com | 23.04.2008 | Folie 47
JAX Innovation Award?




Heute:
Halle 1
19:30

Ihre Stimme zählt….
                      Bernd Rücker | camunda services GmbH
           bernd.ruecker@camunda.com | 23.04.2008 | Folie 48
Fragen & Antworten
                                      Bernd Rücker
                                      Geschäftsführer
                                      Berater, Trainer & Coach
                                      bernd.ruecker@camunda.com
                                      +49 711 3278645

                     Unsere Themen
                     • Ganzheitliches BPM
                     • Prozessautomatisierung
                     • SOA, BPEL, XPDL, jBPM, Drools, ESB
                     • BPMN
                     • BPM-Toolauswahl
                     Unsere Leistungen
                     • Beratung
                     • Seminare
                     • Process as a Service
                       (Hosting)
               Bernd Rücker | camunda services GmbH
                                 23.04.2008, Folie 49

Mais conteúdo relacionado

Mais procurados

Open Source BPM - iteratec Architekturtag
Open Source BPM - iteratec ArchitekturtagOpen Source BPM - iteratec Architekturtag
Open Source BPM - iteratec Architekturtagcamunda services GmbH
 
201100927 doag sig_bpm_slideshare
201100927 doag sig_bpm_slideshare201100927 doag sig_bpm_slideshare
201100927 doag sig_bpm_slideshareJens Hündling
 
SOA Days 2012 Bonn Process Control Center
SOA Days 2012 Bonn Process Control CenterSOA Days 2012 Bonn Process Control Center
SOA Days 2012 Bonn Process Control CenterAdam Boczek
 
20100624 jug saxony_bpel.slideshare
20100624 jug saxony_bpel.slideshare20100624 jug saxony_bpel.slideshare
20100624 jug saxony_bpel.slideshareJens Hündling
 
SaaS Web 2.0 Projektmanagement
SaaS Web 2.0 ProjektmanagementSaaS Web 2.0 Projektmanagement
SaaS Web 2.0 ProjektmanagementBjoern Reinhold
 
BPM für "E-Government Schweiz"
BPM für "E-Government Schweiz"BPM für "E-Government Schweiz"
BPM für "E-Government Schweiz"BPMCoP
 
20100506 JAX BPM und BPMN Open Source Roundtrip bei 1&1
20100506 JAX BPM und BPMN Open Source Roundtrip bei 1&120100506 JAX BPM und BPMN Open Source Roundtrip bei 1&1
20100506 JAX BPM und BPMN Open Source Roundtrip bei 1&1camunda services GmbH
 
BPMN - eine Sprache für Business und IT?
BPMN - eine Sprache für Business und IT?BPMN - eine Sprache für Business und IT?
BPMN - eine Sprache für Business und IT?camunda services GmbH
 
20091112 WJAX BPMN 2.0 - Wird BPEL noch gebraucht?
20091112 WJAX BPMN 2.0 - Wird BPEL noch gebraucht?20091112 WJAX BPMN 2.0 - Wird BPEL noch gebraucht?
20091112 WJAX BPMN 2.0 - Wird BPEL noch gebraucht?camunda services GmbH
 
20110505 doag bpm_workshop_1
20110505 doag bpm_workshop_120110505 doag bpm_workshop_1
20110505 doag bpm_workshop_1Jens Hündling
 
20080421 JAX BPM und SOA - Prozesse sind keine Workflows
20080421 JAX BPM und SOA - Prozesse sind keine Workflows20080421 JAX BPM und SOA - Prozesse sind keine Workflows
20080421 JAX BPM und SOA - Prozesse sind keine Workflowscamunda services GmbH
 
20101207 uni leipzig_oraclebpm_suite.slideshare
20101207 uni leipzig_oraclebpm_suite.slideshare20101207 uni leipzig_oraclebpm_suite.slideshare
20101207 uni leipzig_oraclebpm_suite.slideshareJens Hündling
 
Versteckte Schätze in Oracle BPM und SOA Suite - DOAG Konferenz 2011 - OPITZ...
Versteckte Schätze in Oracle BPM und SOA Suite  - DOAG Konferenz 2011 - OPITZ...Versteckte Schätze in Oracle BPM und SOA Suite  - DOAG Konferenz 2011 - OPITZ...
Versteckte Schätze in Oracle BPM und SOA Suite - DOAG Konferenz 2011 - OPITZ...OPITZ CONSULTING Deutschland
 
Freigabe Workflow - elektronische Rechnungsbearbeitung und von weiteren Dokum...
Freigabe Workflow - elektronische Rechnungsbearbeitung und von weiteren Dokum...Freigabe Workflow - elektronische Rechnungsbearbeitung und von weiteren Dokum...
Freigabe Workflow - elektronische Rechnungsbearbeitung und von weiteren Dokum...inPuncto GmbH
 

Mais procurados (20)

Open Source BPM - iteratec Architekturtag
Open Source BPM - iteratec ArchitekturtagOpen Source BPM - iteratec Architekturtag
Open Source BPM - iteratec Architekturtag
 
Boczek+friebe
Boczek+friebeBoczek+friebe
Boczek+friebe
 
201100927 doag sig_bpm_slideshare
201100927 doag sig_bpm_slideshare201100927 doag sig_bpm_slideshare
201100927 doag sig_bpm_slideshare
 
SOA Days 2012 Bonn Process Control Center
SOA Days 2012 Bonn Process Control CenterSOA Days 2012 Bonn Process Control Center
SOA Days 2012 Bonn Process Control Center
 
20100624 jug saxony_bpel.slideshare
20100624 jug saxony_bpel.slideshare20100624 jug saxony_bpel.slideshare
20100624 jug saxony_bpel.slideshare
 
2012 04-18 bpmn 2
2012 04-18 bpmn 22012 04-18 bpmn 2
2012 04-18 bpmn 2
 
WJAX 2012: BPMN in der Praxis
WJAX 2012: BPMN in der PraxisWJAX 2012: BPMN in der Praxis
WJAX 2012: BPMN in der Praxis
 
SaaS Web 2.0 Projektmanagement
SaaS Web 2.0 ProjektmanagementSaaS Web 2.0 Projektmanagement
SaaS Web 2.0 Projektmanagement
 
BPM für "E-Government Schweiz"
BPM für "E-Government Schweiz"BPM für "E-Government Schweiz"
BPM für "E-Government Schweiz"
 
20100506 JAX BPM und BPMN Open Source Roundtrip bei 1&1
20100506 JAX BPM und BPMN Open Source Roundtrip bei 1&120100506 JAX BPM und BPMN Open Source Roundtrip bei 1&1
20100506 JAX BPM und BPMN Open Source Roundtrip bei 1&1
 
BPMN - eine Sprache für Business und IT?
BPMN - eine Sprache für Business und IT?BPMN - eine Sprache für Business und IT?
BPMN - eine Sprache für Business und IT?
 
20080716 BPMN – Kurzeinfuehrung
20080716 BPMN – Kurzeinfuehrung20080716 BPMN – Kurzeinfuehrung
20080716 BPMN – Kurzeinfuehrung
 
2011 05-05 bpmn 2
2011 05-05 bpmn 22011 05-05 bpmn 2
2011 05-05 bpmn 2
 
20091112 WJAX BPMN 2.0 - Wird BPEL noch gebraucht?
20091112 WJAX BPMN 2.0 - Wird BPEL noch gebraucht?20091112 WJAX BPMN 2.0 - Wird BPEL noch gebraucht?
20091112 WJAX BPMN 2.0 - Wird BPEL noch gebraucht?
 
20110505 doag bpm_workshop_1
20110505 doag bpm_workshop_120110505 doag bpm_workshop_1
20110505 doag bpm_workshop_1
 
20080421 JAX BPM und SOA - Prozesse sind keine Workflows
20080421 JAX BPM und SOA - Prozesse sind keine Workflows20080421 JAX BPM und SOA - Prozesse sind keine Workflows
20080421 JAX BPM und SOA - Prozesse sind keine Workflows
 
20101207 uni leipzig_oraclebpm_suite.slideshare
20101207 uni leipzig_oraclebpm_suite.slideshare20101207 uni leipzig_oraclebpm_suite.slideshare
20101207 uni leipzig_oraclebpm_suite.slideshare
 
Versteckte Schätze in Oracle BPM und SOA Suite - DOAG Konferenz 2011 - OPITZ...
Versteckte Schätze in Oracle BPM und SOA Suite  - DOAG Konferenz 2011 - OPITZ...Versteckte Schätze in Oracle BPM und SOA Suite  - DOAG Konferenz 2011 - OPITZ...
Versteckte Schätze in Oracle BPM und SOA Suite - DOAG Konferenz 2011 - OPITZ...
 
Freigabe Workflow - elektronische Rechnungsbearbeitung und von weiteren Dokum...
Freigabe Workflow - elektronische Rechnungsbearbeitung und von weiteren Dokum...Freigabe Workflow - elektronische Rechnungsbearbeitung und von weiteren Dokum...
Freigabe Workflow - elektronische Rechnungsbearbeitung und von weiteren Dokum...
 
20091014 J Bpm4 Hamburg
20091014 J Bpm4 Hamburg20091014 J Bpm4 Hamburg
20091014 J Bpm4 Hamburg
 

Destaque

Regelbasierte Systeme mit JBoss Drools
Regelbasierte Systeme mit JBoss DroolsRegelbasierte Systeme mit JBoss Drools
Regelbasierte Systeme mit JBoss DroolsAndreas Schreiber
 
Como fazer um comentário no Blog
Como fazer um comentário no BlogComo fazer um comentário no Blog
Como fazer um comentário no Blogmarlene_herter
 
Introducción al desarrollo de videojuegos 2D con Wave Engine
Introducción al desarrollo de videojuegos 2D con Wave EngineIntroducción al desarrollo de videojuegos 2D con Wave Engine
Introducción al desarrollo de videojuegos 2D con Wave EngineEduard Tomàs
 
Google app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the uglyGoogle app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the uglyPET Computação
 
Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011get on top gmbh
 
Presentation SEO/SEM
Presentation SEO/SEMPresentation SEO/SEM
Presentation SEO/SEMHicham SBINI
 
Cloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineCloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineFrederico Maia Arantes
 
Adforallprsentation 100914100808 Phpapp02
Adforallprsentation 100914100808 Phpapp02Adforallprsentation 100914100808 Phpapp02
Adforallprsentation 100914100808 Phpapp02fabrice_TALAZAC
 
Performance im Fokus
Performance im FokusPerformance im Fokus
Performance im FokusInxmail GmbH
 
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...PHINEO gemeinnützige AG
 
Tecnicas SEO
Tecnicas SEOTecnicas SEO
Tecnicas SEObluekiu
 
Congreso visión 2012 - taller introducción app engine
Congreso visión 2012 - taller introducción app engineCongreso visión 2012 - taller introducción app engine
Congreso visión 2012 - taller introducción app engineNigeŗ Arce
 
CAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEOCAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEOGary Briceño
 
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in DortmundMaklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in DortmundCybay New Media
 

Destaque (20)

jBPM & Drools
jBPM & DroolsjBPM & Drools
jBPM & Drools
 
Regelbasierte Systeme mit JBoss Drools
Regelbasierte Systeme mit JBoss DroolsRegelbasierte Systeme mit JBoss Drools
Regelbasierte Systeme mit JBoss Drools
 
Como fazer um comentário no Blog
Como fazer um comentário no BlogComo fazer um comentário no Blog
Como fazer um comentário no Blog
 
Communicating sustainibility
Communicating sustainibilityCommunicating sustainibility
Communicating sustainibility
 
SMM-SEO.SEM
SMM-SEO.SEMSMM-SEO.SEM
SMM-SEO.SEM
 
eind presentatie
eind presentatieeind presentatie
eind presentatie
 
Introducción al desarrollo de videojuegos 2D con Wave Engine
Introducción al desarrollo de videojuegos 2D con Wave EngineIntroducción al desarrollo de videojuegos 2D con Wave Engine
Introducción al desarrollo de videojuegos 2D con Wave Engine
 
Google app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the uglyGoogle app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the ugly
 
Aula de Risoto
Aula de Risoto Aula de Risoto
Aula de Risoto
 
Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011
 
Presentation SEO/SEM
Presentation SEO/SEMPresentation SEO/SEM
Presentation SEO/SEM
 
Cloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineCloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App Engine
 
Adforallprsentation 100914100808 Phpapp02
Adforallprsentation 100914100808 Phpapp02Adforallprsentation 100914100808 Phpapp02
Adforallprsentation 100914100808 Phpapp02
 
Noções de Search Engine
Noções de Search EngineNoções de Search Engine
Noções de Search Engine
 
Performance im Fokus
Performance im FokusPerformance im Fokus
Performance im Fokus
 
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
 
Tecnicas SEO
Tecnicas SEOTecnicas SEO
Tecnicas SEO
 
Congreso visión 2012 - taller introducción app engine
Congreso visión 2012 - taller introducción app engineCongreso visión 2012 - taller introducción app engine
Congreso visión 2012 - taller introducción app engine
 
CAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEOCAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEO
 
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in DortmundMaklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
 

Semelhante a 20080421 JAX Geschaeftsprozesse und Regeln mit jBPM und Drools

JBoss jBPM und Drools - Geschäftsprozesse und Regeln mit Open Source Java
JBoss jBPM und Drools - Geschäftsprozesse und Regeln mit Open Source JavaJBoss jBPM und Drools - Geschäftsprozesse und Regeln mit Open Source Java
JBoss jBPM und Drools - Geschäftsprozesse und Regeln mit Open Source Javacamunda services GmbH
 
Pragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das WesentlichePragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das Wesentliche1&1
 
Vortrag auf der SEACON 2013 in Hamburg: Prozessautomatisierung mit BPMN 2.0 u...
Vortrag auf der SEACON 2013 in Hamburg: Prozessautomatisierung mit BPMN 2.0 u...Vortrag auf der SEACON 2013 in Hamburg: Prozessautomatisierung mit BPMN 2.0 u...
Vortrag auf der SEACON 2013 in Hamburg: Prozessautomatisierung mit BPMN 2.0 u...camunda services GmbH
 
Prozessmanagement SaaS, Workflow Management SaaS, Prozesse Software as a Service
Prozessmanagement SaaS, Workflow Management SaaS, Prozesse Software as a ServiceProzessmanagement SaaS, Workflow Management SaaS, Prozesse Software as a Service
Prozessmanagement SaaS, Workflow Management SaaS, Prozesse Software as a ServiceGBS PAVONE Groupware GmbH
 
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...GFU Cyrus AG
 
Integrierte BPM Projektmethodik
Integrierte BPM ProjektmethodikIntegrierte BPM Projektmethodik
Integrierte BPM ProjektmethodikDirk Slama
 
20110505 doag bpm_workshop_2
20110505 doag bpm_workshop_220110505 doag bpm_workshop_2
20110505 doag bpm_workshop_2Jens Hündling
 
BPM & SOA - Prozesse sind keine Workflows
BPM & SOA - Prozesse sind keine WorkflowsBPM & SOA - Prozesse sind keine Workflows
BPM & SOA - Prozesse sind keine Workflowscamunda services GmbH
 
07 06 Xpertivy (Office 2003)
07 06 Xpertivy (Office 2003)07 06 Xpertivy (Office 2003)
07 06 Xpertivy (Office 2003)soreco
 
Jax 2012-activiti-und-camel-presentation
Jax 2012-activiti-und-camel-presentationJax 2012-activiti-und-camel-presentation
Jax 2012-activiti-und-camel-presentationcamunda services GmbH
 

Semelhante a 20080421 JAX Geschaeftsprozesse und Regeln mit jBPM und Drools (20)

20090204 JUG BB Jbpm und Drools
20090204 JUG BB Jbpm und Drools20090204 JUG BB Jbpm und Drools
20090204 JUG BB Jbpm und Drools
 
Bpmn roundtrip
Bpmn roundtripBpmn roundtrip
Bpmn roundtrip
 
JBoss jBPM und Drools - Geschäftsprozesse und Regeln mit Open Source Java
JBoss jBPM und Drools - Geschäftsprozesse und Regeln mit Open Source JavaJBoss jBPM und Drools - Geschäftsprozesse und Regeln mit Open Source Java
JBoss jBPM und Drools - Geschäftsprozesse und Regeln mit Open Source Java
 
Pragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das WesentlichePragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das Wesentliche
 
20110119 activiti jughh
20110119 activiti jughh20110119 activiti jughh
20110119 activiti jughh
 
20110203 jug stuttgart
20110203 jug stuttgart20110203 jug stuttgart
20110203 jug stuttgart
 
Vortrag auf der SEACON 2013 in Hamburg: Prozessautomatisierung mit BPMN 2.0 u...
Vortrag auf der SEACON 2013 in Hamburg: Prozessautomatisierung mit BPMN 2.0 u...Vortrag auf der SEACON 2013 in Hamburg: Prozessautomatisierung mit BPMN 2.0 u...
Vortrag auf der SEACON 2013 in Hamburg: Prozessautomatisierung mit BPMN 2.0 u...
 
20110223 activiti
20110223 activiti20110223 activiti
20110223 activiti
 
Prozessmanagement SaaS, Workflow Management SaaS, Prozesse Software as a Service
Prozessmanagement SaaS, Workflow Management SaaS, Prozesse Software as a ServiceProzessmanagement SaaS, Workflow Management SaaS, Prozesse Software as a Service
Prozessmanagement SaaS, Workflow Management SaaS, Prozesse Software as a Service
 
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
 
20101117 activiti
20101117 activiti20101117 activiti
20101117 activiti
 
Integrierte BPM Projektmethodik
Integrierte BPM ProjektmethodikIntegrierte BPM Projektmethodik
Integrierte BPM Projektmethodik
 
20110311 activiti mathema
20110311 activiti mathema20110311 activiti mathema
20110311 activiti mathema
 
20110505 doag bpm_workshop_2
20110505 doag bpm_workshop_220110505 doag bpm_workshop_2
20110505 doag bpm_workshop_2
 
Jug muenchen bpmn in der praxis
Jug muenchen bpmn in der praxisJug muenchen bpmn in der praxis
Jug muenchen bpmn in der praxis
 
BPM & SOA - Prozesse sind keine Workflows
BPM & SOA - Prozesse sind keine WorkflowsBPM & SOA - Prozesse sind keine Workflows
BPM & SOA - Prozesse sind keine Workflows
 
07 06 Xpertivy (Office 2003)
07 06 Xpertivy (Office 2003)07 06 Xpertivy (Office 2003)
07 06 Xpertivy (Office 2003)
 
Jax 2012-activiti-und-camel-presentation
Jax 2012-activiti-und-camel-presentationJax 2012-activiti-und-camel-presentation
Jax 2012-activiti-und-camel-presentation
 
2011 11-21 BPMN_Luzern_JakobFreund
2011 11-21 BPMN_Luzern_JakobFreund2011 11-21 BPMN_Luzern_JakobFreund
2011 11-21 BPMN_Luzern_JakobFreund
 
20110321 activiti märz
20110321 activiti märz20110321 activiti märz
20110321 activiti märz
 

Mais de camunda services GmbH

Using Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through OperatorsUsing Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through Operatorscamunda services GmbH
 
Predictive Process Monitoring in Camunda
Predictive Process Monitoring in CamundaPredictive Process Monitoring in Camunda
Predictive Process Monitoring in Camundacamunda services GmbH
 
Camunda Product Update – The present and the future of Process Automation
Camunda Product Update – The present and the future of Process AutomationCamunda Product Update – The present and the future of Process Automation
Camunda Product Update – The present and the future of Process Automationcamunda services GmbH
 
Tips on how to build Camunda Run for production
Tips on how to build Camunda Run for productionTips on how to build Camunda Run for production
Tips on how to build Camunda Run for productioncamunda services GmbH
 
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in UnternehmenBlitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmencamunda services GmbH
 
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...camunda services GmbH
 
Extending human workflow preparing people and processes for the digital era w...
Extending human workflow preparing people and processes for the digital era w...Extending human workflow preparing people and processes for the digital era w...
Extending human workflow preparing people and processes for the digital era w...camunda services GmbH
 
[Webinar] Camunda Optimize Release 3.0
[Webinar] Camunda Optimize Release 3.0[Webinar] Camunda Optimize Release 3.0
[Webinar] Camunda Optimize Release 3.0camunda services GmbH
 
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...camunda services GmbH
 
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...camunda services GmbH
 
Process Automation Forum Zurich, finnova AG Bankware
Process Automation Forum Zurich, finnova AG BankwareProcess Automation Forum Zurich, finnova AG Bankware
Process Automation Forum Zurich, finnova AG Bankwarecamunda services GmbH
 
Process Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss LifeProcess Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss Lifecamunda services GmbH
 
Process Automation Forum Vienna, A1 & J-IT
Process Automation Forum Vienna, A1 & J-ITProcess Automation Forum Vienna, A1 & J-IT
Process Automation Forum Vienna, A1 & J-ITcamunda services GmbH
 
Process Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, RaiffeisenProcess Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, Raiffeisencamunda services GmbH
 
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AGProcess Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AGcamunda services GmbH
 
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native Worldcamunda services GmbH
 

Mais de camunda services GmbH (20)

Using Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through OperatorsUsing Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through Operators
 
Predictive Process Monitoring in Camunda
Predictive Process Monitoring in CamundaPredictive Process Monitoring in Camunda
Predictive Process Monitoring in Camunda
 
Camunda Product Update – The present and the future of Process Automation
Camunda Product Update – The present and the future of Process AutomationCamunda Product Update – The present and the future of Process Automation
Camunda Product Update – The present and the future of Process Automation
 
Tips on how to build Camunda Run for production
Tips on how to build Camunda Run for productionTips on how to build Camunda Run for production
Tips on how to build Camunda Run for production
 
Process Driven Customer Interaction
Process Driven Customer InteractionProcess Driven Customer Interaction
Process Driven Customer Interaction
 
Exploring Automation in Government
Exploring Automation in GovernmentExploring Automation in Government
Exploring Automation in Government
 
The Pulse of Process Automation
The Pulse of Process AutomationThe Pulse of Process Automation
The Pulse of Process Automation
 
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in UnternehmenBlitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
 
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
 
Extending human workflow preparing people and processes for the digital era w...
Extending human workflow preparing people and processes for the digital era w...Extending human workflow preparing people and processes for the digital era w...
Extending human workflow preparing people and processes for the digital era w...
 
Camunda BPM 7.13 Webinar
Camunda BPM 7.13 WebinarCamunda BPM 7.13 Webinar
Camunda BPM 7.13 Webinar
 
[Webinar] Camunda Optimize Release 3.0
[Webinar] Camunda Optimize Release 3.0[Webinar] Camunda Optimize Release 3.0
[Webinar] Camunda Optimize Release 3.0
 
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
 
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
 
Process Automation Forum Zurich, finnova AG Bankware
Process Automation Forum Zurich, finnova AG BankwareProcess Automation Forum Zurich, finnova AG Bankware
Process Automation Forum Zurich, finnova AG Bankware
 
Process Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss LifeProcess Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss Life
 
Process Automation Forum Vienna, A1 & J-IT
Process Automation Forum Vienna, A1 & J-ITProcess Automation Forum Vienna, A1 & J-IT
Process Automation Forum Vienna, A1 & J-IT
 
Process Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, RaiffeisenProcess Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, Raiffeisen
 
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AGProcess Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
 
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
 

20080421 JAX Geschaeftsprozesse und Regeln mit jBPM und Drools

  • 1. Bernd Rücker | camunda services GmbH | bernd.ruecker@camunda.com Geschäftsprozesse und Regeln mit jBPM und Drools ein unschlagbares Team
  • 2. Bernd Rücker • Berater, Trainer, Coach • Softwareentwickler • Committer im jBPM-Projekt – Commands – Simulation (BPS) • Themen: BPM, SOA, Process Execution [jBPM, BPEL, XPDL, …], Verbindung mit Java EE Bernd Rücker | camunda services GmbH bernd.ruecker@camunda.com | 23.04.2008 | Folie 2
  • 3. Agenda • Business Process Management (BPM) • Business Rules Management (BRM) • Einsatzgebiete, Abgrenzung und Kombinationsmöglichkeiten • Konkretes Beispiel – JBoss jBPM – JBoss Drools Bernd Rücker | camunda services GmbH 23.04.2008, Folie 3
  • 4. Was ist ein Geschäftsprozess? • Erzeugt einen definierten Output aus einem gegebenen Input • Geordnete Aktivitäten • Erzeugt Wert („business value“) • Lang laufend (bis zu Monaten oder Jahren) • Enthält Wartezustände • Aktivitäten können automatisiert (EAI/SOA) oder durch Menschen (Human-Task-Management) ausgeführt werden
  • 5. Werden Prozesse durch Software unterstützt? GUI Paper Email Gui 1 Gui 2 Gui 3 Software Kunden SAP Komponente Server EAI-Tool Web-Service
  • 6. Softwareintegration Prozesse Activity 1 Activity 2 Activity 3 Prozess- integration Services Anwendungen App 1 App 2 Funktions- integration Middleware Daten Logische Datenbank Daten- integration DB 1 DB 2
  • 7. Ein „digitaler“ Prozess ∆ Durchlaufzeit Execution Engine Task Service Task Zuweisung Aufruf Zuweisung IT IT IT Human Workflow SOA Human Workflow
  • 8. Business Process Engine Business Analyst Sachbearbeiter Aufgaben- Verwaltung Prozess- Fremd- Ausführung Anwendungen Prozess- definitionen Administration Administrator Prozess- Logs Persistenz Business Process Engine (BPM-Engine) Entwickler
  • 9. Das Versprechen der Anbieter: „It‘s All Magic!“ Modeling Monitoring Business IT Magic Process Engine Human Workflow EAI / SOA
  • 10. Gemeinsame Sprache Quelle: Tom Baeyens, JBoss
  • 11. Was leistet die Business Process Engine • Versionierung, Persistenz & Interpretation von Prozessmodellen • Steuerung & Persistenz von Prozessinstanzen • Task-Management & Wait-States • Prozesskontext (Variablen zu Prozess speichern) • Einbindung externer Services • Verwalten von Ereignissen (wie Timeouts, …) Bernd Rücker | camunda services GmbH 23.04.2008, Folie 11
  • 12. Business Process Engine in Java • Process Engine ist eigene Architekturschicht • Domänenobjekte oder Referenzen als Prozessvariablen EJB-Container • Ansteuerung ext. BPM-Engine Services Session Bean EJB JCA JMS … Bernd Rücker | camunda services GmbH 23.04.2008, Folie 12
  • 13. JBoss jBPM • Business Process Engine • POJO-Kern: Interne Prozessrepräsentation durch Java-Modelle • Persistenz über Hibernate (DB- Unabhängigkeit) • Lauffähig mit oder ohne Application-Server • „Library“ • Klein und flexibel, leicht erweiterbar • Aktuell Version 3.2, Version 4 in der Entw. • Open Source (LGPL) Bernd Rücker | camunda services GmbH 23.04.2008, Folie 13
  • 14. „Graph oriented programming“ Node 1 Token current Node from to leaving arriving Transitions * * Transitions Transition <process-definition> ... <node-type-x name=“serve client”> <transition name=“ok” to=“order” /> <transition name=“nok” to=“joke” /> </node-type-x> <node-type-y name=“take order” /> <node-type-z name=“make joke” /> ... </process-definition> Bernd Rücker | camunda services GmbH 23.04.2008, Folie 14
  • 15. Verschiedene Node-Typen • Task-Node: Human Tasks / Aufgaben • State: Wait-States • Fork / Join • Decision: Automatische Entscheidung • Start-State / End-State • … • Eigene Node-Typen mit Verhalten können implementiert werden Bernd Rücker | camunda services GmbH 23.04.2008, Folie 15
  • 16. Ablaufsteuerung durch Token Bernd Rücker | camunda services GmbH 23.04.2008, Folie 16
  • 17. jBPM & Java • Einfache Java-API zur Steuerung der Engine – Prozessstart – Aufgabenliste –… • Aufrufen von „User-Code“ – definierte Stellen im Prozess – Interface & Java-Klassen Bernd Rücker | camunda services GmbH 23.04.2008, Folie 17
  • 18. jBPM & Java JbpmConfiguration conf = JbpmConfiguration.getInstance(); JbpmContext context = conf. createJbpmContext(); ProcessInstance pi = context.getGraphSession(). findLatestProcessDefinition("Ticket").createProcessInstance(); pi.getRootToken().signal(); List<TaskInstance> tasks = context.getTaskMgmtSession(). findTaskInstances("Vertrieb"); tasks.get(0).end("Ticket schliessen"); context.close(); public class MyAction implements ActionHandler { public void execute(ExecutionContext ctx) { Object var = ctx.getVariable("var"); result = service.doSomething(var); ctx.setVariable("result", result); } } Bernd Rücker | camunda services GmbH 23.04.2008, Folie 18
  • 19. Gemeinsame Sprache, Beispiel jBPM Bernd Rücker | camunda services GmbH 23.04.2008, Folie 19
  • 20. Tooling: Eclipse Bernd Rücker | camunda services GmbH 23.04.2008, Folie 20
  • 21. Was sind Regeln? • „Wenn ich müde bin, dann gehe ich ins Bett!“ • „WENN .. DANN ..“-Struktur • Bedingung und Konseqenz (Prämisse und Konklusion; Left-Hand-Side LHS und Right-Hand- Side RHS) • Konsequenz wird häufig als „Aktion“ bezeichnet • Bedingungen prüfen „Fakten“ • Regeln „feuern“, wenn deren Bedingung eintrifft
  • 22. Wie werden Regeln umgesetzt? • Direkte Programmierung im Quellcode: if ( person.istMuede() == true ) { person.putzeZaehne(); person.geheInsBett(); } • Spezifische Lösungen (Codegenerierung, DSL, Speziallösungen, …) • Regelmaschine / Rule Engine
  • 23. Probleme programmierter Regeln • Wartbarkeit und Validierbarkeit nicht gegeben • Regeln müssen durch Entwickler in Quellcode übersetzt werden • Fachliche Regeln werden über verschiedene Klassen verteilt • Keine Lesbarkeit der Regeln für den Fachbereich • Konflikt-Lösung muss realisiert werden
  • 24. Lösung: Rule Engines • Explizite Formulierung der Regeln als Regeln • Deklarativ: Welche Regeln wann wie ausgeführt werden entscheidet die Regelmaschine • Regeln für Fachbereich verständlich Bedingung: Person.muede = true Konsequenz: person.putzeZaehne(); person.geheInsBett();
  • 25. Rule Engines in Java • Fakten (Wissen) = Domänenobjekte (POJOs) • Rule Engine wird generisch in die Architektur integriert (Interceptoren, …) Client Anwendung / Server Interceptor Fachlogik Bernd Rücker | camunda services GmbH 23.04.2008, Folie 25
  • 26. JBoss Drools • Java Rule Engine (RETE-Implementierung) • „JBoss Drools“ / „JBoss Rules“ • Lauffähig mit oder ohne Application-Server • „Library“ • Business Rules Management System (BRMS) in der Entwicklung • Aktuell Version 4.0 • Open Source (ASL) Bernd Rücker | camunda services GmbH 23.04.2008, Folie 26
  • 27. Beispiel einer Drools-Regel package com.camunda.demo import demo.business.*; import demo.infrastructure.ErrorList; global ErrorList errors; rule "Auftragsrabatt bei hohem Bestellwert" when o: Order( value>5000 ) then a.setDiscount(0.05); end rule "Nachnahme nur bis 2500 € möglich" when o: Order( value>2500, shippingType="COD" ) then errors.addError("Nachname nicht möglich bei Auftragswert " + o.getValue() ); end
  • 28. Wie funktioniert es? Regeln POJO‘s WorkingMemory fireAllRules RuleBaseLoader loader = RuleBaseLoader.getInstance(); RuleBase ruleBase = loader.loadFromReader( new InputStreamReader(this.getClass().getResourceAsStream( "/demo.drl"))); WorkingMemory wm = ruleBase.newStatefulSession(); wm.insert(meldung); wm.fireAllRules(); Bernd Rücker | camunda services GmbH bernd.ruecker@camunda.com | 23.04.2008 | Folie 28
  • 29. Drools • In-memory Knowledge-Repository • Basiert auf Rete Algorithm • Forward chaining • Backward chaining ist geplant (Drools 5)
  • 30. Für den Fachbereich: Decision Tables
  • 31. DSL-Support [when]Versicherter unter {MindestAlter} Jahre alt= Person( age >= {MindestAlter} ) [when]Mehr als {Anzahl} Unfälle gebaut= Person( accidentCount > {Anzahl} ) ... [then]Police nicht möglich= errors.addError("Police kann nicht ausgestellt werden"); rule "Abmeldung - Check mit DSL" when Versicherter unter 25 Jahre alt and Mehr als 3 Unfälle gebaut then Police nicht möglich end Bernd Rücker | camunda services GmbH bernd.ruecker@camunda.com | 23.04.2008 | Folie 31
  • 32. DSL-Support Bernd Rücker | camunda services GmbH bernd.ruecker@camunda.com | 23.04.2008 | Folie 32
  • 33. Regeleditor ohne DSL Bernd Rücker | camunda services GmbH bernd.ruecker@camunda.com | 23.04.2008 | Folie 33
  • 34. Guided Rule Editor Verfügbar in Eclipse & BRMS Bernd Rücker | camunda services GmbH bernd.ruecker@camunda.com | 23.04.2008 | Folie 34
  • 35. Rule Flow • Regel-Reihenfolge • Parallelität • Bedingungen ob Regeln ausgeführt werden Bernd Rücker | camunda services GmbH bernd.ruecker@camunda.com | 23.04.2008 | Folie 35
  • 36. Tooling: Eclipse Bernd Rücker | camunda services GmbH 23.04.2008, Folie 36
  • 37. BPM vs. BRM | BPM + BRM Bernd Rücker | camunda services GmbH 23.04.2008, Folie 37
  • 38. Geschäftsprozesse mit Regeln umsetzen? • Möglich! • Vorteil: Maximale Flexibilität • Nachteile – Keine Visualisierung / Modellierung des Prozessflusses – Nicht immer offensichtlich, warum was passiert – Keine „Grenzen“ durch Prozessstruktur – Evtl. Performance Bernd Rücker | camunda services GmbH 23.04.2008, Folie 38
  • 39. Einsatzmöglichkeiten • BPM (Prozesse) – Geschäftsprozesse / Workflows – Fachliche Modellierung – Hoher Standardisierungs-/Wiederholungsgrad • BRM (Regeln) – Prozessunabhängige Regeln – Punktuelle Integration in Prozesse – Beeinflussung des Prozessablaufs (80/20 Regel) Bernd Rücker | camunda services GmbH 23.04.2008, Folie 39
  • 40. Wann benutze ich was? Bernd Rücker | camunda services GmbH bernd.ruecker@camunda.com | 23.04.2008 | Folie 40
  • 41. Kombinationsmöglichkeiten Regeln treffen Entscheidungen Regeln steuern Zuweisung von Aufgaben Regeln schließen neues Wissen Und: Beeinflussung des Prozessablaufs in Sonderfällen Bernd Rücker | camunda services GmbH 23.04.2008, Folie 41
  • 42. Entscheidungen <node name="drools decision"> <action class="org.jbpm.action.RulesActionHandler“> <ruleFile>/com/.../OrderDecisionRules.drl</ruleFile> <objectNames> <element>order</element> </objectNames> <signalToken>false</signalToken> </action> <transition name="conspicuous" to="do something" /> <transition name="casual" to="determine discount" /> </node> rule "Conspicuous Order" when Order( price > 500) then System.out.println("signal conspicuous order"); executionContext.getNode(). leave(executionContext, "conspicuous"); end
  • 43. Schließen von neuem Wissen rule "Special Discount" when o : Order( customerName == "Bernd" ) then # 5 % discount o.applyDiscount( 0.95 ); System.out.println("Special discount granted"); end <action class="org.jbpm.action.RulesActionHandler"> <ruleFile>/...OrderPricingRules.drl</ruleFile> <objectNames> <element>order</element> </objectNames> </action>
  • 44. Actor-Assignment (Wer ist zuständig?) <assignment class="org.jbpm.assignment.RulesAssignmentHandler"> <group>underwriting</group> <ruleFile>/Assignment.drl</ruleFile> <objectNames><element>policy</element></objectNames> </assignment> rule "Determine Junior Role“ when Policy( basePrice < 500) then insert(new Role("junior")); end rule "Determine Actor" salience -100 when Role($roleName : roleName) $a : Assignable() $group : Group() Membership( group == $group, role == $roleName, $user : user ) then $a.setActorId($user.getName()); end
  • 45. Beeinflussung des Prozessablaufs rule "Order gets cancelled" when evt : Event( type == "cancel" ) then token.setNode( "end2" ); end Token
  • 46. Fazit • jBPM & Drools integrieren sehr gut • Benutzen Sie das richtige Tool für den Job • Kombinieren Sie! • jBPM ist eine kleine, flexible Process Engine. Bewährt auch in großen Projekten • Drools ist cool ☺ Steht teuren Rule Engines in nichts nach • BPM & BRM sind Themen der Zukunft! • Ausblick: Integration in den JBoss ESB
  • 47. Fazit Quelle: Lary Ward & Jordan Masanga Bernd Rücker | camunda services GmbH bernd.ruecker@camunda.com | 23.04.2008 | Folie 47
  • 48. JAX Innovation Award? Heute: Halle 1 19:30 Ihre Stimme zählt…. Bernd Rücker | camunda services GmbH bernd.ruecker@camunda.com | 23.04.2008 | Folie 48
  • 49. Fragen & Antworten Bernd Rücker Geschäftsführer Berater, Trainer & Coach bernd.ruecker@camunda.com +49 711 3278645 Unsere Themen • Ganzheitliches BPM • Prozessautomatisierung • SOA, BPEL, XPDL, jBPM, Drools, ESB • BPMN • BPM-Toolauswahl Unsere Leistungen • Beratung • Seminare • Process as a Service (Hosting) Bernd Rücker | camunda services GmbH 23.04.2008, Folie 49