3. 3www.agentbase.de
Projektübersicht
● Drools, Business Rules (JBoss BRMS)
– Rete Algorythmus von Charles Forgy (1970)
– Enterprise Version: JBoss BRMS
● jBPM, Process Management
– BPMN 2 Prozesse
– Runtime ist Drools
– Enterprise Version: JBoss BPM
● Optaplanner ehemals Drools Planner
– Resourcen Planung / Optimierung
4. 4www.agentbase.de
Historie 2010 – jBPM 4
● jBPM 3.x borns as a BPMS (Business Process
Management System)
● It was classified by JBoss as an integration software
● Until jBPM 4.x Tom Baeyens was in charge of the project
● Tom Baeyens quit JBoss and joins Alfresco
Quelle: http://salaboy.com/2011/01/29/jbpm5-community-training-module-1-jbpm5-introduction/
5. 5www.agentbase.de
Historie 2009 – Dools Flow
● Drools was born as a Rule Engine.
● Mark Proctor is the current project leader.
● In Drools version 4.x a new module appear called Drools Flow.
● The main idea behind Drools Flow was to provide BPMS
capabilities on top of the Rule Engine.
● Kris Verlaenen, Phd was in charge of the Drools Flow initiative,
writing it from the scratch.
● The main goal of Drools is to provide a platform where rules and
business processes can live, coexist and collaborate as
Knowledge Representations.
Quelle: http://salaboy.com/2011/01/29/jbpm5-community-training-module-1-jbpm5-introduction/
6. 6www.agentbase.de
Historie 2010 – jBPM 5
● Drools Flow 5.x was released back in 2009
● The rebranded version of Drools Flow, jBPM5 was released on
December of 2010
● Provides a rock solid BPMS core and a flexible mechanisms to
implement the main stages of the BPM discipline
● Totally based on BPMN2
● jBPM5 was conceived having in mind the code base of Drools
Flow and covering all the functionality provided by jBPM 4.
Quelle: http://salaboy.com/2011/01/29/jbpm5-community-training-module-1-jbpm5-introduction/
11. 11www.agentbase.de
Business Rules – Drools
Regel Schema
● Name
● Attribute
● when
– LHS (left hand side)
● then
– RHS (right hand side)
Quelle: http://blog.athico.com/2013/05/whats-coming-in-drools-60-slides.html
12. 12www.agentbase.de
Business Rules – Drools
Regel Attribute
● salience
– Priorität mit der eine Regel vor anderen Regel gefeuert werden soll.
● date-effective
– Eine Regel kann nur aktiviert werden, wenn das Datum überschritten wrude.
● date-expires
– Eine Regel kann nur aktiviert werden, bis das Datum erreicht wurde.
● ruleflow-group
– Bezeichner der Prozessaufgabe, bei der die Regel gefeuert werden soll.
– Siehe auch agenda-group ohne BPM.
Übersicht: http://docs.jboss.org/drools/release/6.0.0.Beta3/drools-expert-docs/html/ch04.html#d0e5150
13. 13www.agentbase.de
Business Rules – Drools
-Bedingung when: left hand side
Quelle: http://blog.athico.com/2013/05/whats-coming-in-drools-60-slides.html
14. 14www.agentbase.de
Business Rules – Drools
-Aktivierung und Ausführung
Quelle: http://blog.athico.com/2013/05/whats-coming-in-drools-60-slides.html
16. 16www.agentbase.de
Business Rules – Drools
Beispiel DRL (Drools Rules Language)
http://www.redhat.com/promo/jboss_integration_week_sessions/pdf/Business_Rules_And_Event_Modeling_Made_Easy_v2_Tirelli.pdf
17. 17www.agentbase.de
Business Rules – Drools
Beispiel DSL (Domain Specific Languages)
● Focus on „what to do“ instead of „how to do it“
Quelle: http://blog.athico.com/2013/05/whats-coming-in-drools-60-slides.html
18. 18www.agentbase.de
Business Rules – Drools
Beispiel Guided Rule
Quelle: http://blog.athico.com/2013/05/whats-coming-in-drools-60-slides.html
21. 21www.agentbase.de
Business Process – jBPM
jBPM Merkmale
Quelle: http://www.redhat.com/promo/jboss_integration_week_sessions/pdf/2012-10-16-Simplify_the_complexity_of_your_business_processes2.pdf
● (Executable) business processes
– open-source, light-weight engine
– from embedded to as a service
● Native BPMN 2.0 support
● Both developers and business users
● Entire life cycle
● Advanced, adaptive processes
27. 27www.agentbase.de
Business Process – jBPM
BPM im Unternehmen
http://salaboy.com/2011/03/17/jbpm5-community-training-%E2%80%93-module-2-5-bpm-for-developers/
28. 28www.agentbase.de
Stärken von BRMS in jBPM
● Synergetic Business Aspects – Rules, Business Events,
Workflows
● Lightweight Deployment
● Choice of Deployment – Embedded Vs Stand Alone
● Choice of Containers – JBoss Vs Non-JBoss
● Choice of Packages – Integrated Vs Components
● Choice of Tools – Web based Vs Eclipse based
● Pluggable Persistence and Transaction
● Easily Extensible – Rich and Robust APIs
Quelle: http://www.redhat.com/promo/jboss_integration_week_sessions/pdf/BRMS_RoadMap_10-17-12.pdf
31. 31www.agentbase.de
BPM mit BRM in der Fachanwendung
● Synergetic Business Aspects (Process and Rules)
● Lightway
● Pluggable Persistence and Transaction
● Easily Extensible – Rich and Robust APIs
32. 32www.agentbase.de
BPM mit BRM in der Fachanwendung
● Synergetic Business Aspects (Process and Rules)
● Lightway
● Pluggable Persistence and Transaction
● Easily Extensible – Rich and Robust APIs
Warum BPM und BRM
„nur“ als Unternehmenslösung?
33. 33www.agentbase.de
BPM mit BRM in der Fachanwendung
Nur weil es geht?
● Gibt es in der Fachanwendung Geschäftsdaten?
– verändern sich diese?
– wie verändern sie sich?
– wer weiß wie sie sich verändern?
– was passiert wenn sie sich verändert haben?
– wer weiß wann sie fachlich nicht valide sind?
34. 34www.agentbase.de
BPM mit BRM in der Fachanwendung
Nur weil es geht?
● Gibt es in der Fachanwendung Arbeitsabläufe?
– verändern sich diese?
– wer kennt die Arbeitsabläufe?
– sind mehrere Benutzer Rollen beteiligt?
35. 35www.agentbase.de
BPM mit BRM in der Fachanwendung
Nur weil es geht?
● Bleibt die Welt in der Fachanwendung stehen?
Quelle: http://earthengine.google.org/#intro/LasVegas
36. 36www.agentbase.de
BPM mit BRM in der Fachanwendung
Nur weil es geht?
● Wie wichtig ist die Fachanwendung für das Unternehmen?
– „if it ain't broke, don't fix it“ – you can fix it?
– Verständlichkeit, Wartbarkeit, ...
38. 38www.agentbase.de
BPM mit BRM in der Fachanwendung
jBPM Integration
● Beispiel Anwendung
– Maven und GIT
– JEE 6: JSF, CDI, JPA
– JBoss 7.1.1, MySQL 5
● Besonderheit
– jBPM Version 6
– Transaktionsgrenze in der View, kein JTA sondern Resource
Local mit CDI Erweiterung Deltaspike
41. 41www.agentbase.de
BPM mit BRM in der Fachanwendung
jBPM Integration - KieBase
● KieBase ist die Wissensbasis zur Laufzeit
– Beinhaltet Regeln und Prozess Definitionen
● entweder direkt aus dem Projekt
● oder über Repository Server (Guvnor / Kie Workbench)
– Teuer zu erstellen
– Sollte zur Laufzeit nicht verändert werden
● Business Rule Tasks
– Aktivation, Agenda Evaluation, Fire !
– Logik von fact insert, update, delete und fireAllRules obliegt
der Anwendung, kein Default
– AgendaListener und ProcessListener benutzen
– Erstmal passiert gar nichts :-/
42. 42www.agentbase.de
BPM mit BRM in der Fachanwendung
jBPM Integration
● RuntimeManager
– Strategie für KieSession
– Mehrere RuntimeManager möglich
● RuntimeEngine
– KieSession
– TaskService (HumanTask)
43. 43www.agentbase.de
BPM mit BRM in der Fachanwendung
jBPM Integration
● KieSession Strategy
– @Singleton - JavaDoc SingletonRuntimeManager
● BPMN 2.0 Timer Unterstützung
● Sequentielle Ausführung
● KieSession kann Geschäftsdaten referenzieren (Facts)
– @PerProcessInstance - JavaDoc PerProcessInstanceRuntimeManager
● Vermutlich nur bedingt BPMN 2.0 Timer Unterstützung
● KieSession Konflikt möglich
● KieSession kann Geschäftsdaten für den Prozess referenzieren (Facts)
– @PerRequest – JavaDoc PerRequestRuntimeManager
● Vermutlich keine BPMN 2.0 Timer Unterstützung
● KieSession flüchtig, keine Geschäftsdaten, keine KieSession Konflikt möglich
Siehe: https://community.jboss.org/thread/211785
44. 44www.agentbase.de
BPM mit BRM in der Fachanwendung
jBPM Integration
● Demo Beispielanwendung
Siehe: https://community.jboss.org/thread/211785
46. 46www.agentbase.de
jBPM Version 6
● API Änderung, KIE = Knowledge Is Everything
Quelle: http://de.slideshare.net/MarkProctor/drools-60-red-hat-summit
http://blog.athico.com/2013/06/judcon-summit-and-misc-presentation.html
47. 47www.agentbase.de
jBPM Version 6
API Änderung
● Konvention
– droolsjbpm → kie
– knowledge → kie
● Beispiele
– KnowlegeBase → KieBase
– StatefulKnowledgeSession → KieSession
● Legacy API Adapter JAR
● KnowledgeAgents have not been ported
● DRL has not changed !
Quelle: http://de.slideshare.net/MarkProctor/drools-60-red-hat-summit
http://blog.athico.com/2013/06/judcon-summit-and-misc-presentation.html
48. 48www.agentbase.de
jBPM Version 6
Änderung und Neues
● Repository (Guvnor)
– UI, Modular mit UberFire
– Inhalt nicht länger über JCR sondern via GIT
– Projekt Dependencies über Maven statt Guvnor eigene Model jar Verwaltung
– Projekt Versionsverwaltung über Maven statt Guvnor eigenes Paket Management
– Deployment über Maven JARS, nicht mehr über Guvnor Pakete
● KieModules zur Definition von KieBase
● CDI !
● Drools
– RETE+
– Score Cards
– JTMS (Justification-based Truth Maintenance)
– Chaining, Backward Chaining
Quelle: http://de.slideshare.net/MarkProctor/drools-60-red-hat-summit
http://blog.athico.com/2013/06/judcon-summit-and-misc-presentation.html
49. 49www.agentbase.de
Mit jBPM starten
● Demo Installation inkl. Eclipse und JBoss
http://blog.athico.com/2013/05/how-to-build-and-run-drools-and-guvnor.html
● Eclipse Plugins
– bpmn2-modeler
● http://download.eclipse.org/bpmn2-modeler/updates/kepler
– bpmn
●
http://download.eclipse.org/modeling/mdt/bpmn2/updates/milestones/S20130423
– drools
● http://hudson.jboss.org/hudson/job/droolsjbpm-tools/lastSuccessfulBuild/artifact/drools-
eclipse/org.drools.updatesite/target/org.drools.updatesite-6.0.0-SNAPSHOT.zip
● Beispiele
– Unit Tests in den einzelnen Modulen
– jBPM Unit Tests https://github.com/droolsjbpm/jbpm/tree/master/jbpm-examples
– Beispiel Web Projekt https://github.com/jsvitak/jbpm-6-examples