SlideShare ist ein Scribd-Unternehmen logo
1 von 90
Downloaden Sie, um offline zu lesen
Mark Proctor
Drools Co-creator
Chief Architect BRMS and BPMS
• Co-founded Drools (early 2000)

The Journey
The Journey
• Co-founded Drools (early 2000)
<import>org.drools.examples.fibonacci.Fibonacci</import>
<rule name="Bootstrap 1" salience="20">
<parameter identifier="f">
<class>Fibonacci</class>
</parameter>
<java:condition>f.getSequence() == 1</java:condition>
<java:condition>f.getValue() == -1</java:condition>
<java:consequence>
f.setValue( 1 );
System.err.println( f.getSequence() + " == " + f.getValue() );
drools.modifyObject( f );
</java:consequence>
</rule>
Drools 2.x XML Syntax
The Journey
• Co-founded Drools (early 2000)
• JBoss (2005)
The Journey
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
The Journey
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
• Drools 3 (2006)
import org.drools.examples.fibonacci.FibonacciExample.Fibonacci;
rule Bootstrap when
f : Fibonacci( sequence == 1 )
then
modify ( f ){ value = 1 };
System.out.println( f.sequence + " == " + f.value );
end
Drools 3.x - 7.x Syntax
The Journey
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
• Drools 3 (2006)
• Drools 4 (2007)
• Increased expressiveness
• ‘from’ keyword for external data
• Drools Flow
• Better Performance
• BRMS
The Journey
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
• Drools 3 (2006)
• Drools 4 (2007)
• Drools 5 (2009)
• Guvnor (BRMS with extjs port)
• CEP
• Drools-Flow full workflow
• Knowledge Agent (Provisioning)
The Journey
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
• Drools 3 (2006)
• Drools 4 (2007)
• Drools 5 (2009)
• Product Manager (2010)
The Journey
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
• Drools 3 (2006)
• Drools 4 (2007)
• Drools 5 (2009)
• Product Manager (2010)
• jBPM 5 (2011)
• incorporated from drools-flow
The Journey
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
• Drools 3 (2006)
• Drools 4 (2007)
• Drools 5 (2009)
• Product Manager (2010)
• jBPM 5 (2011)
• incorporated from drools-flow
The Journey
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
• Drools 3 (2006)
• Drools 4 (2007)
• Drools 5 (2009)
• Product Manager (2010)
• jBPM 5 (2011)
• Polymita acquisition (2012)
The Journey
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
• Drools 3 (2006)
• Drools 4 (2007)
• Drools 5 (2009)
• Product Manager (2010)
• jBPM 5 (2011)
• Polymita acquisition (2012)
• Drools & jBPM 6.0 (2013)
• UberFire Workbench
• Phreak
• Methodolgy based:
• Author, build, deploy, utilise
• Declarative
• OptaPlanner
KIE
Drools jBPMOptaPlanner UberFire
Guvnor
Drools-WB jBPM-WB
KIE-WB
The Journey
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
• Drools 3 (2006)
• Drools 4 (2007)
• Drools 5 (2009)
• Product Manager (2010)
• jBPM 5 (2011)
• Polymita acquisition (2012)
• Drools & jBPM 6.0 (2013)
• Since 2011 tripled engineering team size (2017)
• with dedicated QE and UXD
KIE
Drools jBPMOptaPlanner UberFire
Guvnor
Drools-WB jBPM-WB
KIE-WB
The Journey
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
• Drools 3 (2006)
• Drools 4 (2007)
• Drools 5 (2009)
• Product Manager (2010)
• jBPM 5 (2011)
• Polymita acquisition (2012)
• Drools & jBPM 6.0 (2013)
• Since 2011 tripled engineering team size (2017)
• Remote engineers
• All over the globe
KIE
Drools jBPMOptaPlanner UberFire
Guvnor
Drools-WB jBPM-WB
KIE-WB
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
• Drools 3 (2006)
• Drools 4 (2007)
• Drools 5 (2009)
• Product Manager (2010)
• jBPM 5 (2011)
• Polymita acquisition (2012)
• Drools & jBPM 6.0 (2013)
• Since 2011 tripled engineering team size (2017)
• Remote engineers
• Multipliers
The Journey
KIE
Drools jBPMOptaPlanner UberFire
Guvnor
Drools-WB jBPM-WB
KIE-WB
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
• Drools 3 (2006)
• Drools 4 (2007)
• Drools 5 (2009)
• Product Manager (2010)
• jBPM 5 (2011)
• Polymita acquisition (2012)
• Drools & jBPM 6.0 (2013)
• Since 2011 tripled engineering team size (2017)
• Remote engineers
• Multipliers
The Journey
14k Twitter follows
Top 20 Java influencer 2017
Java Champion
KIE
Drools jBPMOptaPlanner UberFire
Guvnor
Drools-WB jBPM-WB
KIE-WB
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
• Drools 3 (2006)
• Drools 4 (2007)
• Drools 5 (2009)
• Product Manager (2010)
• jBPM 5 (2011)
• Polymita acquisition (2012)
• Drools & jBPM 6.0 (2013)
• Since 2011 tripled engineering team size (2017)
• Remote engineers
• Multipliers
The Journey
KIE
Drools jBPMOptaPlanner UberFire
Guvnor
Drools-WB jBPM-WB
KIE-WB
• Co-founded Drools (early 2000)
• JBoss (2005)
• Red Hat (2006)
• Drools 3 (2006)
• Drools 4 (2007)
• Drools 5 (2009)
• Product Manager (2010)
• jBPM 5 (2011)
• Polymita acquisition (2012)
• Drools & jBPM 6.0 (2013)
• Since 2011 tripled engineering team size (2017)
• Remote engineers
• Multipliers
• Super Stars
The Journey
KIE
Drools jBPMOptaPlanner UberFire
Guvnor
Drools-WB jBPM-WB
KIE-WB
• CI
• Jenkins
• Github Integration
Agile Community
• CI
• Gate Keepers
• Peer reviewed

code merges
Agile Community
• CI
• Gate Keepers
• Sprints
• 2 Weeks
Agile Community
• CI
• Gate Keepers
• Sprints
• JIRA Agile boards
• Updated in sprint meeting
• Includes external contributors
Agile Community
• CI
• Gate Keepers
• Sprints
• JIRA Agile boards
• Feature branches
Agile Community
• CI
• Gate Keepers
• Sprints
• JIRA Agile boards
• Feature branches
• CD
Agile Community
• CI
• Gate Keepers
• Sprints
• JIRA Agile boards
• Feature branches
• CD
• Town Halls
Agile Community
• CI
• Gate Keepers
• Sprints
• JIRA Agile boards
• Feature branches
• CD
• Town Halls
• Keep brief
• Not a tutorial
• Relevance
• Impact
Agile Community
• Branding
• Project Names : Drools, jBPM, OptaPlanner
• Product Names : Red Hat BRMS, Red Hat BPMS
Project and Product
• Branding
• 100% Open Source
Project and Product
• Branding
• 100% Open Source
• Product is a branch off community
Project and Product
• Branding
• 100% Open Source
• Product is a branch off community
• Sanity through sanitisation
Project and Product
• Branding
• 100% Open Source
• Product is a branch off community
• Sanity through sanitisation
• Cross platform and version compatibility
• Fuse, EAP
Project and Product
• Branding
• 100% Open Source
• Product is a branch off community
• Sanity through sanitisation
• Cross platform and version compatibility
• 3rd party certifications
• Oracle DB
Project and Product
• Branding
• 100% Open Source
• Product is a branch off community
• Sanity through sanitisation
• Cross platform and version compatibility
• 3rd party certifications
• Direct impact on roadmap
Project and Product
• Branding
• 100% Open Source
• Product is a branch off community
• Sanity through sanitisation
• Cross platform and version compatibility
• 3rd party certifications
• Direct impact on roadmap
• Community independence
Project and Product
• Drools
• Rule Engine
• CEP
KIE - Current Top Level Projects
• Drools
• Rule Engine
• CEP
• jBPM
• Workflow
• Human Tasks
KIE - Current Top Level Projects
• Drools
• Rule Engine
• CEP
• jBPM
• Workflow
• Human Tasks
• Optaplanner
• Optimisation with Constraint Solving
KIE - Current Top Level Projects
• Drools
• Rule Engine
• CEP
• jBPM
• Workflow
• Human Tasks
• Optaplanner
• Optimisation with Constraint Solving
KIE - Current Top Level Projects
• Drools
• Rule Engine
• CEP
• jBPM
• Workflow
• Human Tasks
• Optaplanner
• Optimisation with Constraint Solving
KIE - Current Top Level Projects
• Drools
• Rule Engine
• CEP
• jBPM
• Workflow
• Human Tasks
• Optaplanner
• Optimisation with Constraint Solving
KIE - Current Top Level Projects
• Drools
• Rule Engine
• CEP
• jBPM
• Workflow
• Human Tasks
• Optaplanner
• Optimisation with Constraint Solving
• Workbench / Console
KIE - Current Top Level Projects
• Drools
• Rule Engine
• CEP
• jBPM
• Workflow
• Human Tasks
• Optaplanner
• Optimisation with Constraint Solving
• Workbench / Console
• Execution Server
KIE - Current Top Level Projects
• Drools
• Rule Engine
• CEP
• jBPM
• Workflow
• Human Tasks
• Optaplanner
• Optimisation with Constraint Solving
• Workbench / Console
• Execution Server
• AppFormer
• Coming Soon
KIE - Current Top Level Projects
• UberFire
• Will become AppFormer-Core
KIE - Projects to be renamed / moved
• UberFire
• Guvnor
• Terminated
• Merged into other projects
KIE - Projects to be renamed / moved
• UberFire
• Guvnor
• DashBuilder
• Moved to AppFormer - Insight
KIE - Projects to be renamed / moved
• Cognitive Platform
• e.g. CDSS
KIE AI - Knowledge is Everything
Because not everyone

is as smart as House
• Cognitive Platform
• Knowledge Representation and Reasoning (KRR)
• Core AI
KIE AI - Knowledge is Everything
• Cognitive Platform
• Knowledge Representation and Reasoning (KRR)
• Hybrid and Integrated Reasoning
• Hybrid - forward, backward, relational, 

object graph, defeasible, beliefs
• Integrated - Drools integration with

jBPM, Optaplanner, 

Bayesian Networks
KIE AI - Knowledge is Everything
• Cognitive Platform
• Knowledge Representation and Reasoning (KRR)
• Hybrid and Integrated Reasoning
• Hybrid - forward, backward, relational, 

object graph, defeasible, beliefs
• Integrated - Drools integration with

jBPM, OptaPlanner, 

Bayesian Networks
• Coming Soon
• Bayesian Networks
• PMML
• Imperfect Reasoning (fuzzy, probability, certainty factors)
KIE AI - Knowledge is Everything
7.x
Workbench / Data Modeller
Reporting
Execution Server
Workbench
BPM Designer
BPM Designer
DashBuilder
Forms
Old Forms
Bootstrap Grid Views
Bootstrap Grid Views
Web Forms for Java Developers
• Pojo
• JPA
• Bean Validator
Web Forms for Java Developers
Decision Tables
V&V
• For entire Table.
• Rows subsuming each other.
• Row redundancy.
• Conflicting rows.
• Unique single hit.
• Missing range (gap analysis) when row contains
• current supports booleans, number and dates.
• other types on way, such as enumerations
• For each row
• Missing actions/conditions
• Redundant actions/conditions
• Conflicting conditions
Supported Validation and Verification
Data Sources
Datasource management perspective
Datasource management: New driver
Datasource management: New datasource
Datasource management: datasource editor
Datasource management: Browse schema
Datasource management: Browse tables
Datasource management: Browse data
Executable Model
Executable Model
Rule rule = rule( "beta" )
.view(
expr("exprA", markV, p -> p.getName().equals("Mark"))
.indexedBy( String.class, ConstraintType.EQUAL, Person::getName, "Mark" )
.reactOn( "name", "age" ), // also react on age, see RuleDescr.lookAheadFieldsOfIdentifier
expr("exprB", olderV, p -> !p.getName().equals("Mark"))
.indexedBy( String.class, ConstraintType.NOT_EQUAL, Person::getName, "Mark" )
.reactOn( "name" ),
expr("exprC", olderV, markV, (p1, p2) -> p1.getAge() > p2.getAge())
.indexedBy( int.class, ConstraintType.GREATER_THAN, Person::getAge, Person::getAge )
.reactOn( "age" )
)
Thread Safety
State Transition
INACTIVE
FIRE_ALL_RULES FIRE_UNTIL_HALT
HALTING
EXECUTE_TASK
fireAllRules fireUntilHalt
at rest
halt
halt
executeTask
Multi Core Scalability
• Immutable Data
• Supports revision, if new instance provided
• Partitions the rules
• Propagation queue per partition
• Partitioning for most used class + field
• As long as that field is used in each
pattern for that class. And each constraint
on that field is equality, ‘==‘.
• Round robin rule allocation for all other
rules
• Downsides is all data goes to all partitions.
Only shows an advantage if a partition has
enough match attempts to justify the cost
of parallelising.
Focus on Immutable CEP use cases
Units, Guards and
OOPath
Unit
unit HouseUnit
rule WhileAlarmOn when
/house/alarm[power == on]
then
drools.guard( new AlarmUnit(persons, c.age) );
end
unit AlarmUnit
rule TurnSprinklerOn when when
/home/alarm[status == ALERT]
s : /rooms/sprinklers[status == OFF]
then
s.sprinkler(ON)
end
rule TurnSprinklerOf when
/home/alarm[status == NORMAL]
s : /rooms/sprinklers[status == ON]
then
s.sprinkler(OFF)
end
public class HouseUnit implements RuleUnit {
private House house;
private DataSource<Room> rooms;
public HouseUnit( House house

DataSource<Room> rooms ) {
this.house = house;
}
. . .
public class AlarmUnit implements RuleUnit {
private House house;
private DataSource<Room> rooms;
public AlarmUnit( House house

DataSource<Room> rooms ) {
this.house = house;
}
. . .

Weitere ähnliche Inhalte

Was ist angesagt?

Better Front-end Development in Atlassian Plugins
Better Front-end Development in Atlassian PluginsBetter Front-end Development in Atlassian Plugins
Better Front-end Development in Atlassian PluginsWojciech Seliga
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)jeresig
 
DevQA: make your testers happier with Groovy, Spock and Geb
DevQA: make your testers happier with Groovy, Spock and GebDevQA: make your testers happier with Groovy, Spock and Geb
DevQA: make your testers happier with Groovy, Spock and GebAlvaro Sanchez-Mariscal
 
Alfresco Content Modelling and Policy Behaviours
Alfresco Content Modelling and Policy BehavioursAlfresco Content Modelling and Policy Behaviours
Alfresco Content Modelling and Policy BehavioursJ V
 
Gradle: The Build System you have been waiting for!
Gradle: The Build System you have been waiting for!Gradle: The Build System you have been waiting for!
Gradle: The Build System you have been waiting for!Corneil du Plessis
 
Modular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S MakModular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S Makmfrancis
 
MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?DrupalCamp Kyiv
 
Drupalmonitor.com - Drupal User Group Meetup Basel
Drupalmonitor.com - Drupal User Group Meetup BaselDrupalmonitor.com - Drupal User Group Meetup Basel
Drupalmonitor.com - Drupal User Group Meetup BaselNETNODE AG
 
44 Slides About 22 Modules
44 Slides About 22 Modules44 Slides About 22 Modules
44 Slides About 22 Modulesheyrocker
 
Modernizing Legacy Applications in PHP, por Paul Jones
Modernizing Legacy Applications in PHP, por Paul JonesModernizing Legacy Applications in PHP, por Paul Jones
Modernizing Legacy Applications in PHP, por Paul JonesiMasters
 
Taming Functional Web Testing with Spock and Geb
Taming Functional Web Testing with Spock and GebTaming Functional Web Testing with Spock and Geb
Taming Functional Web Testing with Spock and GebC4Media
 
[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration[English version] JavaFX and Web Integration
[English version] JavaFX and Web IntegrationKazuchika Sekiya
 
Thinking in React
Thinking in ReactThinking in React
Thinking in ReactXcat Liu
 
Couch DB/PouchDB approach for hybrid mobile applications
Couch DB/PouchDB approach for hybrid mobile applicationsCouch DB/PouchDB approach for hybrid mobile applications
Couch DB/PouchDB approach for hybrid mobile applicationsIhor Malytskyi
 
Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
Introduction to Drupal 7 - Making a slideshow with Views 3
Introduction to Drupal 7 - Making a slideshow with Views 3Introduction to Drupal 7 - Making a slideshow with Views 3
Introduction to Drupal 7 - Making a slideshow with Views 3Kalin Chernev
 

Was ist angesagt? (20)

Better Front-end Development in Atlassian Plugins
Better Front-end Development in Atlassian PluginsBetter Front-end Development in Atlassian Plugins
Better Front-end Development in Atlassian Plugins
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)
 
DevQA: make your testers happier with Groovy, Spock and Geb
DevQA: make your testers happier with Groovy, Spock and GebDevQA: make your testers happier with Groovy, Spock and Geb
DevQA: make your testers happier with Groovy, Spock and Geb
 
SeaJUG 5 15-2018
SeaJUG 5 15-2018SeaJUG 5 15-2018
SeaJUG 5 15-2018
 
Introduction To Grails
Introduction To GrailsIntroduction To Grails
Introduction To Grails
 
Alfresco Content Modelling and Policy Behaviours
Alfresco Content Modelling and Policy BehavioursAlfresco Content Modelling and Policy Behaviours
Alfresco Content Modelling and Policy Behaviours
 
Gradle: The Build System you have been waiting for!
Gradle: The Build System you have been waiting for!Gradle: The Build System you have been waiting for!
Gradle: The Build System you have been waiting for!
 
Modular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S MakModular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S Mak
 
MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?
 
Drupalmonitor.com - Drupal User Group Meetup Basel
Drupalmonitor.com - Drupal User Group Meetup BaselDrupalmonitor.com - Drupal User Group Meetup Basel
Drupalmonitor.com - Drupal User Group Meetup Basel
 
44 Slides About 22 Modules
44 Slides About 22 Modules44 Slides About 22 Modules
44 Slides About 22 Modules
 
Modernizing Legacy Applications in PHP, por Paul Jones
Modernizing Legacy Applications in PHP, por Paul JonesModernizing Legacy Applications in PHP, por Paul Jones
Modernizing Legacy Applications in PHP, por Paul Jones
 
Taming Functional Web Testing with Spock and Geb
Taming Functional Web Testing with Spock and GebTaming Functional Web Testing with Spock and Geb
Taming Functional Web Testing with Spock and Geb
 
React Vs AnagularJS
React Vs AnagularJSReact Vs AnagularJS
React Vs AnagularJS
 
[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration
 
Thinking in React
Thinking in ReactThinking in React
Thinking in React
 
Couch DB/PouchDB approach for hybrid mobile applications
Couch DB/PouchDB approach for hybrid mobile applicationsCouch DB/PouchDB approach for hybrid mobile applications
Couch DB/PouchDB approach for hybrid mobile applications
 
Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
Introduction to Drupal 7 - Making a slideshow with Views 3
Introduction to Drupal 7 - Making a slideshow with Views 3Introduction to Drupal 7 - Making a slideshow with Views 3
Introduction to Drupal 7 - Making a slideshow with Views 3
 

Ähnlich wie Drools, jBPM and OptaPlanner (NYC and DC Sept 2017 - Keynote Talk Video)

Gwt create2013 Frankfurt: How we built a million dollar business with GWT
Gwt create2013 Frankfurt: How we built a million dollar business with GWTGwt create2013 Frankfurt: How we built a million dollar business with GWT
Gwt create2013 Frankfurt: How we built a million dollar business with GWTinfoqafe
 
Qcon beijing 2010
Qcon beijing 2010Qcon beijing 2010
Qcon beijing 2010Vonbo
 
Windycityrails page performance
Windycityrails page performanceWindycityrails page performance
Windycityrails page performanceJohn McCaffrey
 
Drools, jBPM OptaPlanner presentation
Drools, jBPM OptaPlanner presentationDrools, jBPM OptaPlanner presentation
Drools, jBPM OptaPlanner presentationMark Proctor
 
Supersize me: Making Drupal go large
Supersize me: Making Drupal go largeSupersize me: Making Drupal go large
Supersize me: Making Drupal go largeTom Phethean
 
HTML5 History & Features
HTML5 History & FeaturesHTML5 History & Features
HTML5 History & FeaturesDave Ross
 
John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)Jia Mi
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Niels Frydenholm
 
Beyond DevOps - How Netflix Bridges the Gap
Beyond DevOps - How Netflix Bridges the GapBeyond DevOps - How Netflix Bridges the Gap
Beyond DevOps - How Netflix Bridges the GapJosh Evans
 
Concurrent Product Release Planning with JIRA
Concurrent Product Release Planning with JIRAConcurrent Product Release Planning with JIRA
Concurrent Product Release Planning with JIRAAtlassian
 
JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian GrunertJIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian GrunertAtlassian
 
360|Flex Recap - San Jose 2010
360|Flex Recap - San Jose 2010360|Flex Recap - San Jose 2010
360|Flex Recap - San Jose 2010David Ortinau
 
Open Source in Practice at SNS Bank
Open Source in Practice at SNS BankOpen Source in Practice at SNS Bank
Open Source in Practice at SNS BankEric D. Schabell
 
Software variability management - 2019
Software variability management - 2019Software variability management - 2019
Software variability management - 2019XavierDevroey
 
日本一細かいJavaOne2011報告
日本一細かいJavaOne2011報告日本一細かいJavaOne2011報告
日本一細かいJavaOne2011報告心 谷本
 
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015Dropsolid
 
CI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsCI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsMike North
 

Ähnlich wie Drools, jBPM and OptaPlanner (NYC and DC Sept 2017 - Keynote Talk Video) (20)

Gwt create2013 Frankfurt: How we built a million dollar business with GWT
Gwt create2013 Frankfurt: How we built a million dollar business with GWTGwt create2013 Frankfurt: How we built a million dollar business with GWT
Gwt create2013 Frankfurt: How we built a million dollar business with GWT
 
Cork JUG - Drools basics &amp; pitfalls
Cork JUG - Drools basics &amp; pitfallsCork JUG - Drools basics &amp; pitfalls
Cork JUG - Drools basics &amp; pitfalls
 
Qcon beijing 2010
Qcon beijing 2010Qcon beijing 2010
Qcon beijing 2010
 
DrupalCon 2011 Highlight
DrupalCon 2011 HighlightDrupalCon 2011 Highlight
DrupalCon 2011 Highlight
 
Windycityrails page performance
Windycityrails page performanceWindycityrails page performance
Windycityrails page performance
 
Drools, jBPM OptaPlanner presentation
Drools, jBPM OptaPlanner presentationDrools, jBPM OptaPlanner presentation
Drools, jBPM OptaPlanner presentation
 
Supersize me: Making Drupal go large
Supersize me: Making Drupal go largeSupersize me: Making Drupal go large
Supersize me: Making Drupal go large
 
HTML5 History & Features
HTML5 History & FeaturesHTML5 History & Features
HTML5 History & Features
 
John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...
 
Beyond DevOps - How Netflix Bridges the Gap
Beyond DevOps - How Netflix Bridges the GapBeyond DevOps - How Netflix Bridges the Gap
Beyond DevOps - How Netflix Bridges the Gap
 
Concurrent Product Release Planning with JIRA
Concurrent Product Release Planning with JIRAConcurrent Product Release Planning with JIRA
Concurrent Product Release Planning with JIRA
 
JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian GrunertJIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
 
360|Flex Recap - San Jose 2010
360|Flex Recap - San Jose 2010360|Flex Recap - San Jose 2010
360|Flex Recap - San Jose 2010
 
JS Essence
JS EssenceJS Essence
JS Essence
 
Open Source in Practice at SNS Bank
Open Source in Practice at SNS BankOpen Source in Practice at SNS Bank
Open Source in Practice at SNS Bank
 
Software variability management - 2019
Software variability management - 2019Software variability management - 2019
Software variability management - 2019
 
日本一細かいJavaOne2011報告
日本一細かいJavaOne2011報告日本一細かいJavaOne2011報告
日本一細かいJavaOne2011報告
 
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
 
CI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsCI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page Apps
 

Mehr von Mark Proctor

Rule Modularity and Execution Control
Rule Modularity and Execution ControlRule Modularity and Execution Control
Rule Modularity and Execution ControlMark Proctor
 
Reducing the Cost of the Linear Growth Effect using Adaptive Rules with Unlin...
Reducing the Cost of the Linear Growth Effect using Adaptive Rules with Unlin...Reducing the Cost of the Linear Growth Effect using Adaptive Rules with Unlin...
Reducing the Cost of the Linear Growth Effect using Adaptive Rules with Unlin...Mark Proctor
 
Learning Rule Based Programming using Games @DecisionCamp 2016
Learning Rule Based Programming using Games @DecisionCamp 2016Learning Rule Based Programming using Games @DecisionCamp 2016
Learning Rule Based Programming using Games @DecisionCamp 2016Mark Proctor
 
RuleML2015 : Hybrid Relational and Graph Reasoning
RuleML2015 : Hybrid Relational and Graph Reasoning RuleML2015 : Hybrid Relational and Graph Reasoning
RuleML2015 : Hybrid Relational and Graph Reasoning Mark Proctor
 
Classic Games Development with Drools
Classic Games Development with DroolsClassic Games Development with Drools
Classic Games Development with DroolsMark Proctor
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Mark Proctor
 
Drools and BRMS 6.0 (Dublin Aug 2013)
Drools and BRMS 6.0 (Dublin Aug 2013)Drools and BRMS 6.0 (Dublin Aug 2013)
Drools and BRMS 6.0 (Dublin Aug 2013)Mark Proctor
 
UberFire Quick Intro and Overview (early beta Aug 2013)
UberFire Quick Intro and Overview (early beta Aug 2013)UberFire Quick Intro and Overview (early beta Aug 2013)
UberFire Quick Intro and Overview (early beta Aug 2013)Mark Proctor
 
What's new in Drools 6 - London JBUG 2013
What's new in Drools 6 - London JBUG 2013What's new in Drools 6 - London JBUG 2013
What's new in Drools 6 - London JBUG 2013Mark Proctor
 
Property Reactive RuleML 2013
Property Reactive RuleML 2013Property Reactive RuleML 2013
Property Reactive RuleML 2013Mark Proctor
 
Reactive Transitive Closures with Drools (Backward Chaining)
Reactive Transitive Closures with Drools (Backward Chaining)Reactive Transitive Closures with Drools (Backward Chaining)
Reactive Transitive Closures with Drools (Backward Chaining)Mark Proctor
 
Drools 6.0 (JudCon 2013)
Drools 6.0 (JudCon 2013)Drools 6.0 (JudCon 2013)
Drools 6.0 (JudCon 2013)Mark Proctor
 
Drools 6.0 (CamelOne 2013)
Drools 6.0 (CamelOne 2013)Drools 6.0 (CamelOne 2013)
Drools 6.0 (CamelOne 2013)Mark Proctor
 
UberFire Quick Intro and Overview (early beta Jul 2013)
UberFire Quick Intro and Overview (early beta Jul 2013)UberFire Quick Intro and Overview (early beta Jul 2013)
UberFire Quick Intro and Overview (early beta Jul 2013)Mark Proctor
 
UberFire (JudCon 2013)
UberFire (JudCon 2013)UberFire (JudCon 2013)
UberFire (JudCon 2013)Mark Proctor
 
Drools 6.0 (Red Hat Summit 2013)
Drools 6.0 (Red Hat Summit 2013)Drools 6.0 (Red Hat Summit 2013)
Drools 6.0 (Red Hat Summit 2013)Mark Proctor
 
Games development with the Drools rule engine
Games development with the Drools rule engineGames development with the Drools rule engine
Games development with the Drools rule engineMark Proctor
 
Drools @ IntelliFest 2012
Drools @ IntelliFest 2012Drools @ IntelliFest 2012
Drools @ IntelliFest 2012Mark Proctor
 
Drools Expert and Fusion Intro : London 2012
Drools Expert and Fusion Intro  : London 2012Drools Expert and Fusion Intro  : London 2012
Drools Expert and Fusion Intro : London 2012Mark Proctor
 
JUDCon India 2012 Drools Fusion
JUDCon  India 2012 Drools FusionJUDCon  India 2012 Drools Fusion
JUDCon India 2012 Drools FusionMark Proctor
 

Mehr von Mark Proctor (20)

Rule Modularity and Execution Control
Rule Modularity and Execution ControlRule Modularity and Execution Control
Rule Modularity and Execution Control
 
Reducing the Cost of the Linear Growth Effect using Adaptive Rules with Unlin...
Reducing the Cost of the Linear Growth Effect using Adaptive Rules with Unlin...Reducing the Cost of the Linear Growth Effect using Adaptive Rules with Unlin...
Reducing the Cost of the Linear Growth Effect using Adaptive Rules with Unlin...
 
Learning Rule Based Programming using Games @DecisionCamp 2016
Learning Rule Based Programming using Games @DecisionCamp 2016Learning Rule Based Programming using Games @DecisionCamp 2016
Learning Rule Based Programming using Games @DecisionCamp 2016
 
RuleML2015 : Hybrid Relational and Graph Reasoning
RuleML2015 : Hybrid Relational and Graph Reasoning RuleML2015 : Hybrid Relational and Graph Reasoning
RuleML2015 : Hybrid Relational and Graph Reasoning
 
Classic Games Development with Drools
Classic Games Development with DroolsClassic Games Development with Drools
Classic Games Development with Drools
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)
 
Drools and BRMS 6.0 (Dublin Aug 2013)
Drools and BRMS 6.0 (Dublin Aug 2013)Drools and BRMS 6.0 (Dublin Aug 2013)
Drools and BRMS 6.0 (Dublin Aug 2013)
 
UberFire Quick Intro and Overview (early beta Aug 2013)
UberFire Quick Intro and Overview (early beta Aug 2013)UberFire Quick Intro and Overview (early beta Aug 2013)
UberFire Quick Intro and Overview (early beta Aug 2013)
 
What's new in Drools 6 - London JBUG 2013
What's new in Drools 6 - London JBUG 2013What's new in Drools 6 - London JBUG 2013
What's new in Drools 6 - London JBUG 2013
 
Property Reactive RuleML 2013
Property Reactive RuleML 2013Property Reactive RuleML 2013
Property Reactive RuleML 2013
 
Reactive Transitive Closures with Drools (Backward Chaining)
Reactive Transitive Closures with Drools (Backward Chaining)Reactive Transitive Closures with Drools (Backward Chaining)
Reactive Transitive Closures with Drools (Backward Chaining)
 
Drools 6.0 (JudCon 2013)
Drools 6.0 (JudCon 2013)Drools 6.0 (JudCon 2013)
Drools 6.0 (JudCon 2013)
 
Drools 6.0 (CamelOne 2013)
Drools 6.0 (CamelOne 2013)Drools 6.0 (CamelOne 2013)
Drools 6.0 (CamelOne 2013)
 
UberFire Quick Intro and Overview (early beta Jul 2013)
UberFire Quick Intro and Overview (early beta Jul 2013)UberFire Quick Intro and Overview (early beta Jul 2013)
UberFire Quick Intro and Overview (early beta Jul 2013)
 
UberFire (JudCon 2013)
UberFire (JudCon 2013)UberFire (JudCon 2013)
UberFire (JudCon 2013)
 
Drools 6.0 (Red Hat Summit 2013)
Drools 6.0 (Red Hat Summit 2013)Drools 6.0 (Red Hat Summit 2013)
Drools 6.0 (Red Hat Summit 2013)
 
Games development with the Drools rule engine
Games development with the Drools rule engineGames development with the Drools rule engine
Games development with the Drools rule engine
 
Drools @ IntelliFest 2012
Drools @ IntelliFest 2012Drools @ IntelliFest 2012
Drools @ IntelliFest 2012
 
Drools Expert and Fusion Intro : London 2012
Drools Expert and Fusion Intro  : London 2012Drools Expert and Fusion Intro  : London 2012
Drools Expert and Fusion Intro : London 2012
 
JUDCon India 2012 Drools Fusion
JUDCon  India 2012 Drools FusionJUDCon  India 2012 Drools Fusion
JUDCon India 2012 Drools Fusion
 

Kürzlich hochgeladen

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Kürzlich hochgeladen (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Drools, jBPM and OptaPlanner (NYC and DC Sept 2017 - Keynote Talk Video)

  • 1. Mark Proctor Drools Co-creator Chief Architect BRMS and BPMS
  • 2. • Co-founded Drools (early 2000)
 The Journey
  • 3. The Journey • Co-founded Drools (early 2000) <import>org.drools.examples.fibonacci.Fibonacci</import> <rule name="Bootstrap 1" salience="20"> <parameter identifier="f"> <class>Fibonacci</class> </parameter> <java:condition>f.getSequence() == 1</java:condition> <java:condition>f.getValue() == -1</java:condition> <java:consequence> f.setValue( 1 ); System.err.println( f.getSequence() + " == " + f.getValue() ); drools.modifyObject( f ); </java:consequence> </rule> Drools 2.x XML Syntax
  • 4. The Journey • Co-founded Drools (early 2000) • JBoss (2005)
  • 5. The Journey • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006)
  • 6. The Journey • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006) • Drools 3 (2006) import org.drools.examples.fibonacci.FibonacciExample.Fibonacci; rule Bootstrap when f : Fibonacci( sequence == 1 ) then modify ( f ){ value = 1 }; System.out.println( f.sequence + " == " + f.value ); end Drools 3.x - 7.x Syntax
  • 7. The Journey • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006) • Drools 3 (2006) • Drools 4 (2007) • Increased expressiveness • ‘from’ keyword for external data • Drools Flow • Better Performance • BRMS
  • 8. The Journey • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006) • Drools 3 (2006) • Drools 4 (2007) • Drools 5 (2009) • Guvnor (BRMS with extjs port) • CEP • Drools-Flow full workflow • Knowledge Agent (Provisioning)
  • 9. The Journey • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006) • Drools 3 (2006) • Drools 4 (2007) • Drools 5 (2009) • Product Manager (2010)
  • 10. The Journey • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006) • Drools 3 (2006) • Drools 4 (2007) • Drools 5 (2009) • Product Manager (2010) • jBPM 5 (2011) • incorporated from drools-flow
  • 11. The Journey • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006) • Drools 3 (2006) • Drools 4 (2007) • Drools 5 (2009) • Product Manager (2010) • jBPM 5 (2011) • incorporated from drools-flow
  • 12. The Journey • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006) • Drools 3 (2006) • Drools 4 (2007) • Drools 5 (2009) • Product Manager (2010) • jBPM 5 (2011) • Polymita acquisition (2012)
  • 13. The Journey • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006) • Drools 3 (2006) • Drools 4 (2007) • Drools 5 (2009) • Product Manager (2010) • jBPM 5 (2011) • Polymita acquisition (2012) • Drools & jBPM 6.0 (2013) • UberFire Workbench • Phreak • Methodolgy based: • Author, build, deploy, utilise • Declarative • OptaPlanner KIE Drools jBPMOptaPlanner UberFire Guvnor Drools-WB jBPM-WB KIE-WB
  • 14. The Journey • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006) • Drools 3 (2006) • Drools 4 (2007) • Drools 5 (2009) • Product Manager (2010) • jBPM 5 (2011) • Polymita acquisition (2012) • Drools & jBPM 6.0 (2013) • Since 2011 tripled engineering team size (2017) • with dedicated QE and UXD KIE Drools jBPMOptaPlanner UberFire Guvnor Drools-WB jBPM-WB KIE-WB
  • 15. The Journey • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006) • Drools 3 (2006) • Drools 4 (2007) • Drools 5 (2009) • Product Manager (2010) • jBPM 5 (2011) • Polymita acquisition (2012) • Drools & jBPM 6.0 (2013) • Since 2011 tripled engineering team size (2017) • Remote engineers • All over the globe KIE Drools jBPMOptaPlanner UberFire Guvnor Drools-WB jBPM-WB KIE-WB
  • 16. • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006) • Drools 3 (2006) • Drools 4 (2007) • Drools 5 (2009) • Product Manager (2010) • jBPM 5 (2011) • Polymita acquisition (2012) • Drools & jBPM 6.0 (2013) • Since 2011 tripled engineering team size (2017) • Remote engineers • Multipliers The Journey KIE Drools jBPMOptaPlanner UberFire Guvnor Drools-WB jBPM-WB KIE-WB
  • 17. • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006) • Drools 3 (2006) • Drools 4 (2007) • Drools 5 (2009) • Product Manager (2010) • jBPM 5 (2011) • Polymita acquisition (2012) • Drools & jBPM 6.0 (2013) • Since 2011 tripled engineering team size (2017) • Remote engineers • Multipliers The Journey 14k Twitter follows Top 20 Java influencer 2017 Java Champion KIE Drools jBPMOptaPlanner UberFire Guvnor Drools-WB jBPM-WB KIE-WB
  • 18. • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006) • Drools 3 (2006) • Drools 4 (2007) • Drools 5 (2009) • Product Manager (2010) • jBPM 5 (2011) • Polymita acquisition (2012) • Drools & jBPM 6.0 (2013) • Since 2011 tripled engineering team size (2017) • Remote engineers • Multipliers The Journey KIE Drools jBPMOptaPlanner UberFire Guvnor Drools-WB jBPM-WB KIE-WB
  • 19. • Co-founded Drools (early 2000) • JBoss (2005) • Red Hat (2006) • Drools 3 (2006) • Drools 4 (2007) • Drools 5 (2009) • Product Manager (2010) • jBPM 5 (2011) • Polymita acquisition (2012) • Drools & jBPM 6.0 (2013) • Since 2011 tripled engineering team size (2017) • Remote engineers • Multipliers • Super Stars The Journey KIE Drools jBPMOptaPlanner UberFire Guvnor Drools-WB jBPM-WB KIE-WB
  • 20. • CI • Jenkins • Github Integration Agile Community
  • 21. • CI • Gate Keepers • Peer reviewed
 code merges Agile Community
  • 22. • CI • Gate Keepers • Sprints • 2 Weeks Agile Community
  • 23. • CI • Gate Keepers • Sprints • JIRA Agile boards • Updated in sprint meeting • Includes external contributors Agile Community
  • 24. • CI • Gate Keepers • Sprints • JIRA Agile boards • Feature branches Agile Community
  • 25. • CI • Gate Keepers • Sprints • JIRA Agile boards • Feature branches • CD Agile Community
  • 26. • CI • Gate Keepers • Sprints • JIRA Agile boards • Feature branches • CD • Town Halls Agile Community
  • 27. • CI • Gate Keepers • Sprints • JIRA Agile boards • Feature branches • CD • Town Halls • Keep brief • Not a tutorial • Relevance • Impact Agile Community
  • 28. • Branding • Project Names : Drools, jBPM, OptaPlanner • Product Names : Red Hat BRMS, Red Hat BPMS Project and Product
  • 29. • Branding • 100% Open Source Project and Product
  • 30. • Branding • 100% Open Source • Product is a branch off community Project and Product
  • 31. • Branding • 100% Open Source • Product is a branch off community • Sanity through sanitisation Project and Product
  • 32. • Branding • 100% Open Source • Product is a branch off community • Sanity through sanitisation • Cross platform and version compatibility • Fuse, EAP Project and Product
  • 33. • Branding • 100% Open Source • Product is a branch off community • Sanity through sanitisation • Cross platform and version compatibility • 3rd party certifications • Oracle DB Project and Product
  • 34. • Branding • 100% Open Source • Product is a branch off community • Sanity through sanitisation • Cross platform and version compatibility • 3rd party certifications • Direct impact on roadmap Project and Product
  • 35. • Branding • 100% Open Source • Product is a branch off community • Sanity through sanitisation • Cross platform and version compatibility • 3rd party certifications • Direct impact on roadmap • Community independence Project and Product
  • 36. • Drools • Rule Engine • CEP KIE - Current Top Level Projects
  • 37. • Drools • Rule Engine • CEP • jBPM • Workflow • Human Tasks KIE - Current Top Level Projects
  • 38. • Drools • Rule Engine • CEP • jBPM • Workflow • Human Tasks • Optaplanner • Optimisation with Constraint Solving KIE - Current Top Level Projects
  • 39. • Drools • Rule Engine • CEP • jBPM • Workflow • Human Tasks • Optaplanner • Optimisation with Constraint Solving KIE - Current Top Level Projects
  • 40. • Drools • Rule Engine • CEP • jBPM • Workflow • Human Tasks • Optaplanner • Optimisation with Constraint Solving KIE - Current Top Level Projects
  • 41. • Drools • Rule Engine • CEP • jBPM • Workflow • Human Tasks • Optaplanner • Optimisation with Constraint Solving KIE - Current Top Level Projects
  • 42. • Drools • Rule Engine • CEP • jBPM • Workflow • Human Tasks • Optaplanner • Optimisation with Constraint Solving • Workbench / Console KIE - Current Top Level Projects
  • 43. • Drools • Rule Engine • CEP • jBPM • Workflow • Human Tasks • Optaplanner • Optimisation with Constraint Solving • Workbench / Console • Execution Server KIE - Current Top Level Projects
  • 44. • Drools • Rule Engine • CEP • jBPM • Workflow • Human Tasks • Optaplanner • Optimisation with Constraint Solving • Workbench / Console • Execution Server • AppFormer • Coming Soon KIE - Current Top Level Projects
  • 45. • UberFire • Will become AppFormer-Core KIE - Projects to be renamed / moved
  • 46. • UberFire • Guvnor • Terminated • Merged into other projects KIE - Projects to be renamed / moved
  • 47. • UberFire • Guvnor • DashBuilder • Moved to AppFormer - Insight KIE - Projects to be renamed / moved
  • 48. • Cognitive Platform • e.g. CDSS KIE AI - Knowledge is Everything Because not everyone
 is as smart as House
  • 49. • Cognitive Platform • Knowledge Representation and Reasoning (KRR) • Core AI KIE AI - Knowledge is Everything
  • 50. • Cognitive Platform • Knowledge Representation and Reasoning (KRR) • Hybrid and Integrated Reasoning • Hybrid - forward, backward, relational, 
 object graph, defeasible, beliefs • Integrated - Drools integration with
 jBPM, Optaplanner, 
 Bayesian Networks KIE AI - Knowledge is Everything
  • 51. • Cognitive Platform • Knowledge Representation and Reasoning (KRR) • Hybrid and Integrated Reasoning • Hybrid - forward, backward, relational, 
 object graph, defeasible, beliefs • Integrated - Drools integration with
 jBPM, OptaPlanner, 
 Bayesian Networks • Coming Soon • Bayesian Networks • PMML • Imperfect Reasoning (fuzzy, probability, certainty factors) KIE AI - Knowledge is Everything
  • 52. 7.x
  • 53. Workbench / Data Modeller
  • 57.
  • 58.
  • 61.
  • 63.
  • 64. Forms
  • 68. Web Forms for Java Developers • Pojo • JPA • Bean Validator
  • 69. Web Forms for Java Developers
  • 71.
  • 72. V&V
  • 73. • For entire Table. • Rows subsuming each other. • Row redundancy. • Conflicting rows. • Unique single hit. • Missing range (gap analysis) when row contains • current supports booleans, number and dates. • other types on way, such as enumerations • For each row • Missing actions/conditions • Redundant actions/conditions • Conflicting conditions Supported Validation and Verification
  • 74.
  • 84. Executable Model Rule rule = rule( "beta" ) .view( expr("exprA", markV, p -> p.getName().equals("Mark")) .indexedBy( String.class, ConstraintType.EQUAL, Person::getName, "Mark" ) .reactOn( "name", "age" ), // also react on age, see RuleDescr.lookAheadFieldsOfIdentifier expr("exprB", olderV, p -> !p.getName().equals("Mark")) .indexedBy( String.class, ConstraintType.NOT_EQUAL, Person::getName, "Mark" ) .reactOn( "name" ), expr("exprC", olderV, markV, (p1, p2) -> p1.getAge() > p2.getAge()) .indexedBy( int.class, ConstraintType.GREATER_THAN, Person::getAge, Person::getAge ) .reactOn( "age" ) )
  • 88. • Immutable Data • Supports revision, if new instance provided • Partitions the rules • Propagation queue per partition • Partitioning for most used class + field • As long as that field is used in each pattern for that class. And each constraint on that field is equality, ‘==‘. • Round robin rule allocation for all other rules • Downsides is all data goes to all partitions. Only shows an advantage if a partition has enough match attempts to justify the cost of parallelising. Focus on Immutable CEP use cases
  • 90. Unit unit HouseUnit rule WhileAlarmOn when /house/alarm[power == on] then drools.guard( new AlarmUnit(persons, c.age) ); end unit AlarmUnit rule TurnSprinklerOn when when /home/alarm[status == ALERT] s : /rooms/sprinklers[status == OFF] then s.sprinkler(ON) end rule TurnSprinklerOf when /home/alarm[status == NORMAL] s : /rooms/sprinklers[status == ON] then s.sprinkler(OFF) end public class HouseUnit implements RuleUnit { private House house; private DataSource<Room> rooms; public HouseUnit( House house
 DataSource<Room> rooms ) { this.house = house; } . . . public class AlarmUnit implements RuleUnit { private House house; private DataSource<Room> rooms; public AlarmUnit( House house
 DataSource<Room> rooms ) { this.house = house; } . . .