SlideShare ist ein Scribd-Unternehmen logo

20090204 JUG BB Jbpm und Drools

1 von 65
Vorstellung JBoss jBPM und Drools
 Geschäftsprozesse und Regeln mit
                Open Source Java
     Java User Group Berlin Brandenburg
                      Berlin, 04.02.2009
           bernd.ruecker@camunda.com
Bernd Rücker
  Wer bin ich?

      •     Berater, Trainer, Coach
      •     Softwareentwickler
      •     Committer im JBoss jBPM-Projekt
      •     Themen:
              –   BPM & SOA
              –   Process Execution (jPDL, BPEL, XPDL, …)
              –   JBoss SOA Platform (jBPM, ESB, Drools, …)
              –   Enterprise Anwendungen mit Java EE


      • Siehe                       www.camunda.com
      • Blog                        www.bpm-guide.de
Bernd Rücker / bernd.ruecker@camunda.com / 2
Eckdaten zum Unternehmen
  Einleitung

  camunda GmbH                                       Unsere Themen
  Gegründet:  November 2002                          • Ganzheitliches BPM
                                                     • Prozessautomatisierung
  camunda services GmbH
  Gegründet:    März 2008                            • SOA, BPEL, XPDL,
                                                     • JBoss SOA Platform (jBPM,
  Mitarbeiter:                  6                      Drools, ESB)
  Sitz:                         Berlin / Stuttgart   • BPMN
                                                     • BPM-Toolauswahl
  Unsere Leistungen
  • Beratung
  • Seminare
  • Process Hosting




Bernd Rücker / bernd.ruecker@camunda.com / 3
Was ist ein Prozess?
  Begriffsdefinition

      „Ein Prozess ist eine Struktur, deren Elemente Aufgaben,
      Aufgabenträger, Sachmittel und Informationen sind, die durch logische
      Folgebeziehungen verknüpft sind. Darüber hinaus werden deren zeitliche,
      räumliche und mengenmäßige Dimensionen konkretisiert. Ein Prozess
      hat ein definiertes Startereignis (Input) und ein Ergebnis (Output) und
      dient dazu, einen Wert für Kunden zu schaffen.“

      Synonyme: Geschäftsprozess, Business Process


                                                 Logische
                Kunde               Input                         Output          Kunde
                                               Aufgabenfolge




                                                                             Fischermanns, Guido:
                                                               Praxishandbuch Prozessmanagement
Bernd Rücker / bernd.ruecker@camunda.com / 4
Einfaches Prozessmodell
  Begriffsdefinition




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




Bernd Rücker / bernd.ruecker@camunda.com / 5
Ein „digitaler“ Prozess
  mit Business Process Engine



                                               ∆ Durchlaufzeit




                                    Task           Service            Task
                                  Zuweisung        Aufruf           Zuweisung



                Process Engine
                                                      IT

                          Human Workflow            EAI          Human Workflow
                                                    SOA




Bernd Rücker / bernd.ruecker@camunda.com / 6
Anzeige

Recomendados

BPMN 2.0 erfolgreich einsetzen mit Signavio
BPMN 2.0 erfolgreich einsetzen mit SignavioBPMN 2.0 erfolgreich einsetzen mit Signavio
BPMN 2.0 erfolgreich einsetzen mit Signaviosignavio
 
BPMN 2.0 und die X4 BPM Suite
BPMN 2.0 und die X4 BPM SuiteBPMN 2.0 und die X4 BPM Suite
BPMN 2.0 und die X4 BPM SuiteSoftProject GmbH
 
Prozessmanagement Bei Banken und Versicherungen
Prozessmanagement Bei Banken und VersicherungenProzessmanagement Bei Banken und Versicherungen
Prozessmanagement Bei Banken und VersicherungenMarina Meinelt
 
Integrierte BPM Projektmethodik
Integrierte BPM ProjektmethodikIntegrierte BPM Projektmethodik
Integrierte BPM ProjektmethodikDirk Slama
 

Más contenido relacionado

Was ist angesagt?

Testgetriebene Geschäftsprozessmodellierung
Testgetriebene GeschäftsprozessmodellierungTestgetriebene Geschäftsprozessmodellierung
Testgetriebene GeschäftsprozessmodellierungZambrovski Simon
 
20071108 W-JAX BPM und SOA - Prozesse sind keine Workflows
20071108 W-JAX BPM und SOA - Prozesse sind keine Workflows20071108 W-JAX BPM und SOA - Prozesse sind keine Workflows
20071108 W-JAX BPM und SOA - Prozesse sind keine Workflowscamunda services GmbH
 
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
 
Camunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM OffensiveCamunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM Offensivecamunda services GmbH
 
Open Source Workflowmanagement mit BPMN und CMMN
Open Source Workflowmanagement mit BPMN und CMMNOpen Source Workflowmanagement mit BPMN und CMMN
Open Source Workflowmanagement mit BPMN und CMMNcamunda services GmbH
 
20140304 einfuehrung-bpmn-v2-rp
20140304 einfuehrung-bpmn-v2-rp20140304 einfuehrung-bpmn-v2-rp
20140304 einfuehrung-bpmn-v2-rpRobert Piehler
 
Vortrag "Prozessmanagement bei MTU Rolls Royce" | 10.10.2017 in Bochum
Vortrag "Prozessmanagement bei MTU Rolls Royce" | 10.10.2017 in BochumVortrag "Prozessmanagement bei MTU Rolls Royce" | 10.10.2017 in Bochum
Vortrag "Prozessmanagement bei MTU Rolls Royce" | 10.10.2017 in BochumBPM&O GmbH
 
BPM-Systeme für ein optimiertes Angebots- und Auftragsmanagement
BPM-Systeme für ein optimiertes Angebots-  und AuftragsmanagementBPM-Systeme für ein optimiertes Angebots-  und Auftragsmanagement
BPM-Systeme für ein optimiertes Angebots- und AuftragsmanagementSoftProject GmbH
 
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
 
IT-Provider-Management: So behalten Sie die Hebel in der Hand
IT-Provider-Management: So behalten Sie die Hebel in der HandIT-Provider-Management: So behalten Sie die Hebel in der Hand
IT-Provider-Management: So behalten Sie die Hebel in der HandGernot Sauerborn
 
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
 
Community Meeting Wien - Camunda Intro
Community Meeting Wien - Camunda IntroCommunity Meeting Wien - Camunda Intro
Community Meeting Wien - Camunda Introcamunda services GmbH
 

Was ist angesagt? (20)

WJAX 2012: BPMN in der Praxis
WJAX 2012: BPMN in der PraxisWJAX 2012: BPMN in der Praxis
WJAX 2012: BPMN in der Praxis
 
Testgetriebene Geschäftsprozessmodellierung
Testgetriebene GeschäftsprozessmodellierungTestgetriebene Geschäftsprozessmodellierung
Testgetriebene Geschäftsprozessmodellierung
 
BPMN in der Praxis
BPMN in der PraxisBPMN in der Praxis
BPMN in der Praxis
 
Camunda BPM 7.2 - Deutsch
Camunda BPM 7.2 - DeutschCamunda BPM 7.2 - Deutsch
Camunda BPM 7.2 - Deutsch
 
20071108 W-JAX BPM und SOA - Prozesse sind keine Workflows
20071108 W-JAX BPM und SOA - Prozesse sind keine Workflows20071108 W-JAX BPM und SOA - Prozesse sind keine Workflows
20071108 W-JAX BPM und SOA - Prozesse sind keine Workflows
 
BPM & SOA - Prozesse sind keine Workflows
BPM & SOA - Prozesse sind keine WorkflowsBPM & SOA - Prozesse sind keine Workflows
BPM & SOA - Prozesse sind keine Workflows
 
20080716 BPMN – Kurzeinfuehrung
20080716 BPMN – Kurzeinfuehrung20080716 BPMN – Kurzeinfuehrung
20080716 BPMN – Kurzeinfuehrung
 
Camunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM OffensiveCamunda Community Day_Wiener BPM Offensive
Camunda Community Day_Wiener BPM Offensive
 
Open Source Workflowmanagement mit BPMN und CMMN
Open Source Workflowmanagement mit BPMN und CMMNOpen Source Workflowmanagement mit BPMN und CMMN
Open Source Workflowmanagement mit BPMN und CMMN
 
20140304 einfuehrung-bpmn-v2-rp
20140304 einfuehrung-bpmn-v2-rp20140304 einfuehrung-bpmn-v2-rp
20140304 einfuehrung-bpmn-v2-rp
 
Vortrag "Prozessmanagement bei MTU Rolls Royce" | 10.10.2017 in Bochum
Vortrag "Prozessmanagement bei MTU Rolls Royce" | 10.10.2017 in BochumVortrag "Prozessmanagement bei MTU Rolls Royce" | 10.10.2017 in Bochum
Vortrag "Prozessmanagement bei MTU Rolls Royce" | 10.10.2017 in Bochum
 
BPM-Systeme für ein optimiertes Angebots- und Auftragsmanagement
BPM-Systeme für ein optimiertes Angebots-  und AuftragsmanagementBPM-Systeme für ein optimiertes Angebots-  und Auftragsmanagement
BPM-Systeme für ein optimiertes Angebots- und Auftragsmanagement
 
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
 
IT-Provider-Management: So behalten Sie die Hebel in der Hand
IT-Provider-Management: So behalten Sie die Hebel in der HandIT-Provider-Management: So behalten Sie die Hebel in der Hand
IT-Provider-Management: So behalten Sie die Hebel in der Hand
 
20100506 JAX BPMN 2.0 in der Praxis
20100506 JAX BPMN 2.0 in der Praxis20100506 JAX BPMN 2.0 in der Praxis
20100506 JAX BPMN 2.0 in der Praxis
 
2012 04-18 bpmn 2
2012 04-18 bpmn 22012 04-18 bpmn 2
2012 04-18 bpmn 2
 
BPMN in der Praxis
BPMN in der PraxisBPMN in der Praxis
BPMN in der Praxis
 
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?
 
saperion_PechaKucha
saperion_PechaKuchasaperion_PechaKucha
saperion_PechaKucha
 
Community Meeting Wien - Camunda Intro
Community Meeting Wien - Camunda IntroCommunity Meeting Wien - Camunda Intro
Community Meeting Wien - Camunda Intro
 

Ähnlich wie 20090204 JUG BB Jbpm und Drools

20080917 Hernstcampus JBoss Process Virtual Machine - Hibernate des BPM
20080917 Hernstcampus JBoss Process Virtual Machine - Hibernate des BPM20080917 Hernstcampus JBoss Process Virtual Machine - Hibernate des BPM
20080917 Hernstcampus JBoss Process Virtual Machine - Hibernate des BPMcamunda services GmbH
 
20080421 JAX Geschaeftsprozesse und Regeln mit jBPM und Drools
20080421 JAX Geschaeftsprozesse und Regeln mit jBPM und Drools20080421 JAX Geschaeftsprozesse und Regeln mit jBPM und Drools
20080421 JAX Geschaeftsprozesse und Regeln mit jBPM und Droolscamunda services GmbH
 
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
 
20080421 JAX BPMN - UML der Geschaeftsprozesse
20080421 JAX BPMN - UML der Geschaeftsprozesse20080421 JAX BPMN - UML der Geschaeftsprozesse
20080421 JAX BPMN - UML der Geschaeftsprozessecamunda services GmbH
 
X days12 im- rubip_henkt
X days12 im- rubip_henktX days12 im- rubip_henkt
X days12 im- rubip_henktTorsten Henke
 
20110505 doag bpm_workshop_2
20110505 doag bpm_workshop_220110505 doag bpm_workshop_2
20110505 doag bpm_workshop_2Jens Hündling
 
201100927 doag sig_bpm_slideshare
201100927 doag sig_bpm_slideshare201100927 doag sig_bpm_slideshare
201100927 doag sig_bpm_slideshareJens Hündling
 
20110505 doag bpm_workshop_1
20110505 doag bpm_workshop_120110505 doag bpm_workshop_1
20110505 doag bpm_workshop_1Jens 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
 
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
 
DNUG2015 Frühjahrskonferenz: Prozessautomatisierung im Domino Kosmos, nicht o...
DNUG2015 Frühjahrskonferenz: Prozessautomatisierung im Domino Kosmos, nicht o...DNUG2015 Frühjahrskonferenz: Prozessautomatisierung im Domino Kosmos, nicht o...
DNUG2015 Frühjahrskonferenz: Prozessautomatisierung im Domino Kosmos, nicht o...JRibbeck
 

Ähnlich wie 20090204 JUG BB Jbpm und Drools (20)

20080917 Hernstcampus JBoss Process Virtual Machine - Hibernate des BPM
20080917 Hernstcampus JBoss Process Virtual Machine - Hibernate des BPM20080917 Hernstcampus JBoss Process Virtual Machine - Hibernate des BPM
20080917 Hernstcampus JBoss Process Virtual Machine - Hibernate des BPM
 
20070705 JFS BPM mit JBoss jBPM
20070705 JFS BPM mit JBoss jBPM20070705 JFS BPM mit JBoss jBPM
20070705 JFS BPM mit JBoss jBPM
 
20080421 JAX Geschaeftsprozesse und Regeln mit jBPM und Drools
20080421 JAX Geschaeftsprozesse und Regeln mit jBPM und Drools20080421 JAX Geschaeftsprozesse und Regeln mit jBPM und Drools
20080421 JAX Geschaeftsprozesse und Regeln mit jBPM und Drools
 
20091014 J Bpm4 Hamburg
20091014 J Bpm4 Hamburg20091014 J Bpm4 Hamburg
20091014 J Bpm4 Hamburg
 
Bpmn roundtrip
Bpmn roundtripBpmn roundtrip
Bpmn roundtrip
 
Bpmn in der praxis
Bpmn in der praxisBpmn in der praxis
Bpmn in der praxis
 
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
 
20080421 JAX BPMN - UML der Geschaeftsprozesse
20080421 JAX BPMN - UML der Geschaeftsprozesse20080421 JAX BPMN - UML der Geschaeftsprozesse
20080421 JAX BPMN - UML der Geschaeftsprozesse
 
X days12 im- rubip_henkt
X days12 im- rubip_henktX days12 im- rubip_henkt
X days12 im- rubip_henkt
 
2012 05-30 camunda fox de
2012 05-30 camunda fox  de2012 05-30 camunda fox  de
2012 05-30 camunda fox de
 
Bpmn2010
Bpmn2010Bpmn2010
Bpmn2010
 
2011 05-05 bpmn 2
2011 05-05 bpmn 22011 05-05 bpmn 2
2011 05-05 bpmn 2
 
20110505 doag bpm_workshop_2
20110505 doag bpm_workshop_220110505 doag bpm_workshop_2
20110505 doag bpm_workshop_2
 
201100927 doag sig_bpm_slideshare
201100927 doag sig_bpm_slideshare201100927 doag sig_bpm_slideshare
201100927 doag sig_bpm_slideshare
 
2011 11-21 BPMN_Luzern_JakobFreund
2011 11-21 BPMN_Luzern_JakobFreund2011 11-21 BPMN_Luzern_JakobFreund
2011 11-21 BPMN_Luzern_JakobFreund
 
JBoss jBPM
JBoss jBPMJBoss jBPM
JBoss jBPM
 
20110505 doag bpm_workshop_1
20110505 doag bpm_workshop_120110505 doag bpm_workshop_1
20110505 doag bpm_workshop_1
 
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...
 
20101207 uni leipzig_oraclebpm_suite.slideshare
20101207 uni leipzig_oraclebpm_suite.slideshare20101207 uni leipzig_oraclebpm_suite.slideshare
20101207 uni leipzig_oraclebpm_suite.slideshare
 
DNUG2015 Frühjahrskonferenz: Prozessautomatisierung im Domino Kosmos, nicht o...
DNUG2015 Frühjahrskonferenz: Prozessautomatisierung im Domino Kosmos, nicht o...DNUG2015 Frühjahrskonferenz: Prozessautomatisierung im Domino Kosmos, nicht o...
DNUG2015 Frühjahrskonferenz: Prozessautomatisierung im Domino Kosmos, nicht o...
 

Mehr von 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
 

Mehr von 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
 

20090204 JUG BB Jbpm und Drools

  • 1. Vorstellung JBoss jBPM und Drools Geschäftsprozesse und Regeln mit Open Source Java Java User Group Berlin Brandenburg Berlin, 04.02.2009 bernd.ruecker@camunda.com
  • 2. Bernd Rücker Wer bin ich? • Berater, Trainer, Coach • Softwareentwickler • Committer im JBoss jBPM-Projekt • Themen: – BPM & SOA – Process Execution (jPDL, BPEL, XPDL, …) – JBoss SOA Platform (jBPM, ESB, Drools, …) – Enterprise Anwendungen mit Java EE • Siehe www.camunda.com • Blog www.bpm-guide.de Bernd Rücker / bernd.ruecker@camunda.com / 2
  • 3. Eckdaten zum Unternehmen Einleitung camunda GmbH Unsere Themen Gegründet: November 2002 • Ganzheitliches BPM • Prozessautomatisierung camunda services GmbH Gegründet: März 2008 • SOA, BPEL, XPDL, • JBoss SOA Platform (jBPM, Mitarbeiter: 6 Drools, ESB) Sitz: Berlin / Stuttgart • BPMN • BPM-Toolauswahl Unsere Leistungen • Beratung • Seminare • Process Hosting Bernd Rücker / bernd.ruecker@camunda.com / 3
  • 4. Was ist ein Prozess? Begriffsdefinition „Ein Prozess ist eine Struktur, deren Elemente Aufgaben, Aufgabenträger, Sachmittel und Informationen sind, die durch logische Folgebeziehungen verknüpft sind. Darüber hinaus werden deren zeitliche, räumliche und mengenmäßige Dimensionen konkretisiert. Ein Prozess hat ein definiertes Startereignis (Input) und ein Ergebnis (Output) und dient dazu, einen Wert für Kunden zu schaffen.“ Synonyme: Geschäftsprozess, Business Process Logische Kunde Input Output Kunde Aufgabenfolge Fischermanns, Guido: Praxishandbuch Prozessmanagement Bernd Rücker / bernd.ruecker@camunda.com / 4
  • 5. Einfaches Prozessmodell Begriffsdefinition Rechnung- stellung Bestel- Bestell- Kunde annahme Versand Lieferung Kunde lung Waren- entnahme Bernd Rücker / bernd.ruecker@camunda.com / 5
  • 6. Ein „digitaler“ Prozess mit Business Process Engine ∆ Durchlaufzeit Task Service Task Zuweisung Aufruf Zuweisung Process Engine IT Human Workflow EAI Human Workflow SOA Bernd Rücker / bernd.ruecker@camunda.com / 6
  • 7. Process Execution Business Process Engine 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 Task Service Task Zuweisung Aufruf Zuweisung Bernd Rücker / bernd.ruecker@camunda.com / 7
  • 8. Business Process Engine Middleware für Geschäftsprozesse Business Analyst Sachbearbeiter Aufgaben- Verwaltung Simulation Prozess- Prozess- Fremd- definitionen Ausführung Anwendungen Entwickler Prozess- Administration Logs Administrator Persistenz Definition Laufzeit Business Process Engine (BPM-Engine) Bernd Rücker / bernd.ruecker@camunda.com / 8
  • 9. JBoss jBPM Open Source Process Execution • Business Process Engine • „Library“ • POJO-Kern: Interne Prozessrepräsentation durch Java-Modelle • Persistenz über Hibernate (DB-Unabhängigkeit) • Lauffähig mit oder ohne Application-Server • Klein und flexibel, leicht erweiterbar • Aktuell Version 3.2, Version 4 in der Entwicklung • Open Source (LGPL) Bernd Rücker / bernd.ruecker@camunda.com / 9
  • 10. „Graph oriented programming“ Der Prozess als gerichteter Graph Node 1 Token current Node from to leaving arriving Transitions * * Transitions Transition <process-definition> ... <node name=“serve client”> <transition name=“ok” to=“order” /> <transition name=“nok” to=“joke” /> </node> <node name=“order” /> <node name=“joke” /> ... </process-definition> Bernd Rücker / bernd.ruecker@camunda.com / 10
  • 11. Implementierung Verhalten • Execute Methode implementiert Verhalten • Konfiguration der Node-Typen per XML Bernd Rücker / bernd.ruecker@camunda.com / 11
  • 12. Token-Hierarchie Bernd Rücker / bernd.ruecker@camunda.com / 12
  • 13. Business Process Engine in Java Architektur • Process Engine ist eigene Architekturschicht • Domänenobjekte oder Referenzen als Prozessvariablen • Ansteuerung ext. Services EJB-Container (oder Tomcat oder Java SE) jBPM (jPDL) Human Session Task Bean Mgmnt EJB JCA JMS WS Bernd Rücker / bernd.ruecker@camunda.com / 13
  • 14. Prozess: Grafik / XML Java DB deploy XML jBPM API Neue .class Version DB Bernd Rücker / bernd.ruecker@camunda.com / 14
  • 15. Verschiedene Node-Typen jBPM in a nutshell • Task-Node: Human Tasks / Aufgaben • State: Wait-States • Fork / Join: Parallelisierung • Decision: Automatische Entscheidung • Start-State / End-State • Super-State • Process-State • … • Eigene Node-Typen mit Verhalten können implementiert werden Bernd Rücker / bernd.ruecker@camunda.com / 15
  • 16. jBPM & Java jBPM in a nutshell • Einfache Java-API zur Steuerung der Engine – Prozessstart – Aufgabenliste –… • Aufrufen von „User-Code“ – definierte Stellen im Prozess – Interface & Java-Klassen Bernd Rücker / bernd.ruecker@camunda.com / 16
  • 17. jBPM & Java jBPM in a nutshell 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 / bernd.ruecker@camunda.com / 17
  • 18. Command-Pattern Remote-Zugriffe und Asynchronität public class TaskInstanceEndCommand implements Command { ... public Object execute(JbpmContext jbpmContext) { TaskInstance taskInstance = getTaskInstance(jbpmContext); if (transitionName == null) { taskInstance.end(); } else { taskInstance.end(transitionName); } return taskInstance; } ... } Bernd Rücker / bernd.ruecker@camunda.com / 18
  • 19. Beispiel: EJB3 + Swing Swing-GUI EJB-Container BPM-Engine Commands Command Command Service Service SLSB MDB Webcontainer Message Mit Web-GUI Commands EJB JCA JMS … Korrelation Fremd- systeme Bernd Rücker / bernd.ruecker@camunda.com / 19
  • 20. Process Execution Languages Welche Sprache spricht BPM? Standards BPEL YAML UML Wissenschaftlich XPDL Fachliche Notationen jPDL Proprietär EPC DSL‘s BPMN … Bernd Rücker / bernd.ruecker@camunda.com / 20
  • 21. Sprachen heute: Was nehmen? Komplexität, LOC, Mächtigkeit, Standards? Generierte Artefakte (WSDL & Schema) Deployment-Deskriptor 1000 XSLT 900 WSDL Java-Code (Hooks/Actions) 800 Prozessbeschreibung 700 600 500 400 300 200 100 0 Quelle: Dr. Martin Bartonitz BPEL XPDL jBPM Bernd Rücker / bernd.ruecker@camunda.com / 21
  • 22. JBoss Process Virtual Machine JBoss PVM • Es existieren verschiedenste Prozessausführungs- sprachen (Process Execution Language) – BPEL, XPDL, jPDL, DSL‘s, … • Es gibt nicht die perfekte Sprache • Koexistenz von verschiedenen Sprachen erlauben • Sprache nach Problem auswählen Grundfunktionalität Prozessmaschine in PVM Bernd Rücker / bernd.ruecker@camunda.com / 22
  • 23. Konzepte & Kernabstraktionen Prozesse als Zustandsautomat Verhalten über Sprache definiert Bernd Rücker / bernd.ruecker@camunda.com / 23
  • 24. Just an API PVM definiert keine Sprache ProcessDefinition processDefinition = ProcessFactory.build() .node("accept loan request").initial().behaviour(new WaitState()) .transition().to("loan evaluation") .node("loan evaluation").behaviour(new WaitState()) .transition("approve").to("wire the money") .transition("reject").to("end") .node("wire the money").behaviour(new Display("automatic payment")) .transition().to("end") .node("end").behaviour(new WaitState()) .done(); Bernd Rücker / bernd.ruecker@camunda.com / 24
  • 25. Prozesssprachen Die PVM unterstützt verschiedene Sprachen • Graphen / Blockstruktur • Sprache kann durch entsprechendes Node-Verhalten implementiert werden • Es wird geben – XPDL: Nova Bonita – jPDL: JBoss jBPM JPDL 4 – BPEL: Orchestra • Sprachen sind in XML umgesetzt Bernd Rücker / bernd.ruecker@camunda.com / 25
  • 26. Was ist BPM? Begriffsproblem Organisationslehre Business Process (Orga-) Geschäftsprozess- Ablauforganisation Reengineering - BPR Management - GPM bis 1990 1990 - 2000 ab 2000 Business Business Process Management - BPM IT ab 2004 Prozessautomatisierung ab 2006 Human Serviceorientierte Workflow Management Architekturen (SOA) ab 2000 ab 2005 Dokumenten-Management – Enterprise Appliation Integration – Systeme – DMS (u.a.) EAI Bernd Rücker / bernd.ruecker@camunda.com / 26
  • 27. Aktuelle Ambitionen Der BPM-Kreislauf Prozess- Strategie Prozess- Prozess- KVP entwurf controlling Business IT Prozess- implementierung Bernd Rücker / bernd.ruecker@camunda.com / 27
  • 28. Der Traum der Magic BPM-Suite Der BPM-Kreislauf Modelling Monitoring Business IT Magic BPM-Suite Human Workflow EAI / SOA Bernd Rücker / bernd.ruecker@camunda.com / 28
  • 29. JBoss jBPM 4 jBPM die Vierte • Aufbauend auf PVM • Persistenz über JPA geplant • Unterstützung BPMN • siehe http://www.bpm-guide.de/2009/01/26/ein- erster-blick-auf-jbpm-4/ Bernd Rücker / bernd.ruecker@camunda.com / 38
  • 30. Weitere Änderungen in jBPM 4 jBPM die Vierte • Allgemeingültige API – ProcessService – ExecutionService – TaskService – ManagementService – CommandService • Grafische Informationen im gleichen XML • Deployment in AS/ESB wird verbessert Bernd Rücker / bernd.ruecker@camunda.com / 39
  • 31. Beispielprozess im neuen Designer jBPM die Vierte Bernd Rücker / bernd.ruecker@camunda.com / 40
  • 32. Und das Beispiel als Quellcode BPM die Vierte <process xmlns="http://jbpm.org/4/jpdl" name="TicketProcess"> <start name="Start" g="15,146,48,48"> <flow to="Kundenbetreuer bekannt?"/> </start> <exclusive name="Kundenbetreuer bekannt?" g="84,144,48,48"> <flow to="Kundenbetreuer festlegen" g="108,24"> <condition expr="#{false}"/> </flow> <flow to="join"> <condition expr="#{true}"/> </flow> </exclusive> <task name="Kundenbetreuer festlegen" g="168,0,153,51" assignee="bernd"> <flow to="CRM aktualisieren"/> </task> Bernd Rücker / bernd.ruecker@camunda.com / 44
  • 33. Nicht gut: Regeln im Prozess Prozessmodelle und Geschäftsregeln Preiskalkulation Auftragswert < 50 TEUR Normalpreis 3% Rabatt 50k <= AW < 100k kalkulieren abziehen 5% Rabatt 100k <= AW < 250k abziehen Verhandelten Rabatt individuell verhandelt Rabatt abziehen Bernd Rücker / bernd.ruecker@camunda.com / 45
  • 34. Regeln sinnvoll abbilden Prozessmodelle und Geschäftsregeln Auftragswert Rabatt verhandelt? Rabatt (%) AW < 50 T€ Nein 0 50 T€ <= AW < 100 T€ Nein 3 100 T€ <= AW < 250 T€ Nein 5 <egal> Ja <individuell> Bernd Rücker / bernd.ruecker@camunda.com / 46
  • 35. 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 Bernd Rücker / bernd.ruecker@camunda.com / 47
  • 36. Wie werden Regeln umgesetzt? Alternativen • Direkte Programmierung im Quellcode: if ( person.istMuede() == true ) { person.putzeZaehne(); person.geheInsBett(); } • Spezifische Lösungen (Codegenerierung, DSL, Speziallösungen, …) • Regelmaschine / Rule Engine Bernd Rücker / bernd.ruecker@camunda.com / 48
  • 37. Probleme programmierter Regeln Wie werden Regeln umgesetzt? • 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 Bernd Rücker / bernd.ruecker@camunda.com / 49
  • 38. Vorteile der Rule-Engine Wie werden Regeln umgesetzt? • 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(); Bernd Rücker / bernd.ruecker@camunda.com / 50
  • 39. Rule Engines in Java Architektur • Fakten (Wissen) = Domänenobjekte (POJOs) • Rule Engine wird generisch in die Architektur integriert (Interceptoren, …) • Rule Engine wird gezielt angesprochen Client Anwendung / Server Interceptor Fachlogik Bernd Rücker / bernd.ruecker@camunda.com / 51
  • 40. JBoss Drools Die Open Source Rule Engine • Java Rule Engine (RETE-Implementierung) • „JBoss Drools“ / „JBoss Rules“ • Lauffähig mit oder ohne Application-Server • „Library“ • Business Rules Management System (BRMS) • Aktuell Version 4.0 (Version 5 in der Pipe) • Open Source (ASL) Bernd Rücker / bernd.ruecker@camunda.com / 52
  • 41. Drools-Regeln Beispiel 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 o.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 Bernd Rücker / bernd.ruecker@camunda.com / 53
  • 42. Drools im Einsatz API 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 / bernd.ruecker@camunda.com / 54
  • 43. Beispiel: Golfer Riddle Drools There are four Golfers standing at a tee, in a line from left to right • The golfer to Fred’s immediate right is wearing blue pants • Joe is second in line • Bob is wearing plaid pants • Tom isn’t in position one or four, and he isn’t wearing the orange pants Bernd Rücker / bernd.ruecker@camunda.com / 55
  • 44. Regelbeispiel Example: Golfer Riddle rule "find solution“ when // There is a golfer named Fred, // Whose positions is $p1 $fred : Golfer( name == "Fred" ) // Joe is in position 2 $joe : Golfer( name == "Joe", position == 2, position != $fred.position, color != $fred.color ) ... then System.out.println( "Fred " + $fred.getPosition() + " " + $fred.getColor() ); System.out.println( "Joe " + $joe.getPosition() + " " + $joe.getColor() ); System.out.println( "Bob " + $bob.getPosition() + " " + $bob.getColor() ); System.out.println( "Tom " + $tom.getPosition() + " " + $tom.getColor() ); end Bernd Rücker / bernd.ruecker@camunda.com / 56
  • 45. Drools im Einsatz Wie funktioniert es intern? • In-memory Knowledge-Repository • Basiert auf Rete Algorithm • Forward chaining • Backward chaining ist geplant (Drools 5?) Bernd Rücker / bernd.ruecker@camunda.com / 57
  • 46. Für den Fachbereich: Decision Tables Bernd Rücker / bernd.ruecker@camunda.com / 58
  • 47. DSL-Support Drools [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 / bernd.ruecker@camunda.com / 59
  • 48. DSL-Support Drools Bernd Rücker / bernd.ruecker@camunda.com / 60
  • 49. Regeleditor ohne DSL Drools Bernd Rücker / bernd.ruecker@camunda.com / 61
  • 50. Guided Rule Editor Verfügbar in Eclipse & BRMS Bernd Rücker / bernd.ruecker@camunda.com / 62
  • 51. RuleFlow Grahpical representation • Welche Regeln sollen in welcher Reihenfolge • Parallel oder • unter welchen Bedingungen ausgeführt werden Bernd Rücker / bernd.ruecker@camunda.com / 63
  • 52. Tooling: Eclipse Drools Bernd Rücker / bernd.ruecker@camunda.com / 64
  • 53. Business Rules Management System Drools BRMS Web-GUI Anwendung Drools Rule-Repository (JCR) Server Bernd Rücker / bernd.ruecker@camunda.com / 65
  • 54. BPM + !BRM = ? !BPM + BRM = ? BPM + BRM = ? Bernd Rücker / bernd.ruecker@camunda.com / 66
  • 55. Geschäftsprozesse mit Regeln umsetzen? BPM + BRM • Möglich! • Vorteil: Maximale Flexibilität • Nachteile – Keine Visualisierung / Modellierung des Prozessflusses – Nicht immer offensichtlich, warum was passiert – Keine „Grenzen“ durch Prozessstruktur – Keine out-of-the-box Wartezustände / Persistenz Bernd Rücker / bernd.ruecker@camunda.com / 67
  • 56. Einsatzmöglichkeiten BPM + BRM • 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) In Kombination stabilere Prozesse bei mehr Agilität! Bernd Rücker / bernd.ruecker@camunda.com / 68
  • 57. 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 / bernd.ruecker@camunda.com / 69
  • 58. Schließen von “neuem Wissen” jBPM + Drools 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> Bernd Rücker / bernd.ruecker@camunda.com / 70
  • 59. Entscheidungen jBPM + Drools <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> Besseres Design: rule "Conspicuous Order" when Regeln schreiben Order( price > 500) Ergebnis in then Prozessvariable System.out.println("signal conspicuous order"); und jBPM executionContext.getNode(). leave(executionContext, "conspicuous"); „Decision“ wertet end diese aus Bernd Rücker / bernd.ruecker@camunda.com / 71
  • 60. Beeinflussung des Prozessablaufs Event getrieben reagieren / Ausnahmen rule "Order gets cancelled" when evt : Event( type == "cancel" ) then token.setNode( "end2" ); end Token Bernd Rücker / bernd.ruecker@camunda.com / 72
  • 61. 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()); Bernd Rücker / bernd.ruecker@camunda.com / 73 end
  • 62. Ausblick: ESB / Content Based Routing Beispiel: JBoss jBPM jPDL + JBoss ESB System 1 System 2 Content-Based Router Service Environment JBoss ESB JBoss jBPM Bernd Rücker / bernd.ruecker@camunda.com / 74
  • 63. ESB & Content Based Routing Vergleiche Event Driven Architecture (EDA) Quelle: JBoss Bernd Rücker / bernd.ruecker@camunda.com / 75
  • 64. Fazit Geschäftsprozesse und Regeln mit jBPM und Drools • jBPM ist eine kleine, flexible Process Engine. Bewährt auch in großen Projekten! • Drools ist cool und steht teuren Rule Engines in wenig nach • Integrieren & Kombinieren! • siehe auch JBoss SOA Plattform (ESB) • BPM & BRM bleiben Thema, selbst wenn SOA Tod ist ;-) Bernd Rücker / bernd.ruecker@camunda.com / 76
  • 65. Fragen & Antworten Bernd Rücker Geschäftsführer Berater, Trainer & Coach bernd.ruecker@camunda.com +49 711 3278645 +49 171 1473461 Unsere Themen • Ganzheitliches BPM • Prozessautomatisierung • SOA, BPEL, XPDL, jBPM, Drools, ESB • BPMN • BPM-Toolauswahl Unsere Leistungen • Beratung • Seminare • Process Hosting Bernd Rücker / bernd.ruecker@camunda.com / 77