SlideShare a Scribd company logo
1 of 50
Download to read offline
Drools & jBPM
Workshop 2013
Diciembre · Barcelona

Pere Fernandez

·

Walter Medvedeo

·

Mauricio Salatino
Agenda
●
●
●
●
●
●

Drools & jBPM introduction
New Technology Stack
Tooling
Installation & Configuration
Workshop
Q&A
Short Disclaimer
The tooling that we will be showing is a
SNAPSHOT/Nightly build version of the project
master branch. It can be built downloading the
community projects hosted in github.
com/droolsjbpm.
If you are using Windows (Internet Explorer), you
can expect some issues that are still being fixed for
the next release.
What is jBPM?
● jBPM is a flexible Business Process Engine
● It allows us to define, execute and monitor
Business Processes
● The core is flexible to support any process
definition language, but BPMN2 is the default
one.
● We can embed jBPM in our applications or
● We can use it as a service
jBPM Example
Hiring a new Developer Example
Advantages of using a Process Engine
● The processes says what to do and not how to do it
(declarative nature). They can be used to discuss with non
technical people how the company works.
● The processes can be used to teach new people about the
companies procedures.
● All the process instances will log their activities and the
process data that can be used to show in real time the
company performance
● Making changes to processes are way faster than changing
all the application code
● The development of the processes and the application
infrastructure can be decoupled
What is Drools?
● Drools is a Business Rule Engine
● We can define declaratively how to react to
different scenarios
● The main idea behind using a Rule Engine is to
decouple the business decision and behavior
from the application code
● Rules are composed by:
○ A set of conditions
○ A set of actions
Drools Example
○ One Rule Example
Rule “5% discount to silver customers”
when
$c: Customer( type == ‘silver’ )
$p: Purchase( customer == $c )
then
$p.setDiscount(“0.05”);
end
Advantages of using a Rule Engine
● The rules says what to do and not how to do it (declarative
nature). They can be used to discuss with non technical
people how the company works.
● The rules can be used to teach new people about the
companies decisions and policies.
● All the rules execution will log their activities data that can
be used to show in real time the company performance
● Making changes to rules are way faster than changing all
the application code
● The development of the rules and the application
infrastructure can be decoupled
Drools + jBPM == Platform (KIE)
● Processes gives us a way to formalize and
automate business knowledge
● Rules gives us another way to formalize and
automate business knowledge
● KIE Platform= Knowledge is Everything
○ A platform to formalize, execute and monitor business
knowledge
KIE Platform - New Things
● KIE Projects
○
○
○
○

Provides the Drools and jBPM projects structure
Maven based / standard project structure
Integrated with CDI
Defines a Deployment Units for jBPM

● Whole new Tooling!
● Inside the platform you can also find:
○
○
○
○

Drools Fusion for Complex Event Processing
Drools Chance for Fuzzy Logic
Drools Scorecards
+ Community Driven collaborations
CDI for KIE Project
● From: https://github.com/droolsjbpm/drools/tree/master/droolsexamples-cdi
KIE Project
● Structure (Maven Standard + kmodule.xml)
Standard pom.xml File
Resources / Knowledge Assets

Business Process
KIE Module Descriptor
Forms
KModule
● Convention Driven

● Or you can add custom configurations
Whole new Tooling!!!!
KIE Workbench - Technology Stack
Tooling Tour
● Home
● Authoring Perspective
○
○
○
○

●
●
●
●

Repository Management
Modelling data
Modelling a process
Modelling forms

Building & Deploying a Project
Starting a Process Instance
Task Management
Business Activity Monitoring
Home
● The Knowledge Lifecycle
○
○
○
○
○

Authoring
Runtime Configurations
Process Management
Task Management
Business Activity Monitoring
Authoring Perspective - Administration
● Manage Organization Units
● Creating new repository
● Cloning existing repos
○ https://github.com/droolsjbpm/jbpm-playground

● Removing existing repositories
Authoring Perspective - Assets
● Navigate through Organization Units, KIE
Projects…
● Creating new KIE Projects
● Creating Knowledge Assets
Data Modeler (Tools > Data Modeler)
● Create Data Objects
● Add properties to Data Objects (Simple types or
other Data Objects)
● Data Objects will be stored as Java files
● Use them as Java Objects on runtime
Process Designer (New Item > Business
Process)
●
●
●
●

Based on BPMN 2.0
Context Menu for easy creation of flows
Visual validation
Simulation of business process
Form Modeler (New Item > Form)
● Configure Form data sources
○ Data Modeler Objects
○ Java Class in classpath
○ Simple types (String, Long, Integer, Date…)

● Add fields to Form
○ By source
○ WYSIWYG palette

● Configure fields properties (label, required…)
● Configure Form UI
○ Move fields
○ Edit form HTML
Form Modeler (II)
Building & Deploying a Project
● Project Editor
○ Project Dependencies
○ Build & Deploy
○ Deployment Perspective
What happens when we Build & Deploy a
Project?
Process Management
● Process Definitions
○ Shows only Deployed Process Definitions
○ Create new Process Instances

● Process Instances
○ You can inspect the details of your process instance
○ You can look into the Process Variables (simple types
for now)
Task Management
● Task Lists
○ Work in your assigned tasks
■ Group Tasks
■ Personal Tasks

● Task Forms
○ FTLs -> Freemarker templates
○ Forms -> Graphically Designed Forms using Form
Modeller
Business Activity Monitoring
● Dashboard
○ Generic Business Dashboard
○ Business Process Dashboard
○ Task Dashboard
kie-wb installation and configuration
kie-wb distributions:
● kie-wb-distributions:
https://github.com/droolsjbpm/kie-wb-distributions/
$ mvn clean install -Dfull
kie-wb-6.1.0-SNAPSHOT-eap-6_1.war
kie-wb-6.1.0-SNAPSHOT-jboss-as7.war
kie-wb-6.1.0-SNAPSHOT-tomcat7.war

● jbpm-dashboard:
https://github.com/droolsjbpm/jbpm-dashboard
$ mvn clean install -Dfull
jbpm-dashbuilder-6.1.0-SNAPSHOT-jboss-as7.war
jbpm-dashbuilder-6.1.0-SNAPSHOT-tomcat-7.war
kie-wb installation and configuration
Download Wildfly server:
● Wildfly 8.0.0.Beta1 can be downloaded from:
http://wildfly.org/downloads/
● Jboss AS 7.1.1 can still be downloaded from:
http://www.jboss.org/jbossas/downloads/
kie-wb installation and configuration
Install Wildfly server:
● Unzip the jboss-as-7.1.1.Final.zip file to a given directory
<installation_dir>.
$ unzip jboss-as-7.1.1.Final.zip
● Start server
cd <installation_dir>/jboss-as-7.1.1.Final/bin
$ ./standalone.sh

note: For Windows systems it's recommended to avoid
directories with blank spaces, or too long directories.
kie-wb installation and configuration
Users creation:
● Create the server administrator user using the “add-user.
sh” script.
cd <installation_dir>/jboss-as-7.1.1.Final/bin
$ ./add-user.sh

● Check server installation
http://localhost:9990/console/App.html
note: to create kie-wb application users and roles for
development server, the user.properties and roles .
properties files can be manually edited.
kie-wb installation and configuration
Security domain configuration:
● By default kie-wb application is configured to use the “other”
security domain.
● Set this configuration in the standalone-full.xml file.
<security-domain name=" other" cache-type="default">
<authentication>
<login-module code=" UsersRoles" flag="required">
<module-option name="usersProperties"
value="${jboss.server.config.dir}/ bpms-users.properties"/>
<module-option name="rolesProperties"
value="${jboss.server.config.dir}/ bpms-roles.properties"/>
</login-module>
</authentication>
</security-domain>

note: kie-wb application should use the standalone-full.xml
configuration.
kie-wb installation and configuration
Enable sso for jbpm-dashbuilder:
● Set this configuration in the standalone-full.xml file.
<subsystem xmlns="urn:jboss:domain:web:1.1"
default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http"
socket-binding="http"/>
<virtual-server name="default-host"
enable-welcome-root="true">
<alias name="localhost"/>
<alias name="example.com"/>
<sso/>
</virtual-server>
</subsystem>
kie-wb installation and configuration
Application roles:
● kie-wb application roles (web.xml).
<role-name>admin</role-name>
<role-name>analyst</role-name>
<role-name>developer</role-name>
<role-name>user</role-name>
<role-name>manager</role-name>

● jbpm-dashbuilder application roles (web.xml).
<role-name>admin</role-name>
<role-name>user</role-name>
kie-wb installation and configuration
Users configuration example:
● bpms-users.properties.
admin=admin
john=john
mary=mary
jack=jack
katy=katy

● bpms-roles.properties.
admin=admin,analyst
john=analyst,user,Accounting,PM
mary=analyst,user,HR
jack=analyst,user,IT
katy=analyst,user,HR
kie-wb installation and configuration
Database configuration:
● kie-wb: WEB-INF/classes/META-INF/persistence.xml.
<persistence-unit name=" org.jbpm.domain" transaction-type="JTA">
<provider> org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source> java:jboss/datasources/ExampleDS</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />

<property name="hibernate.max_fetch_depth" value="3" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="false" />
…
</properties>
</persistence-unit>
</persistence>
kie-wb installation and configuration
Datasource configuration:
● kie-wb: standalone-full.xml.
<datasource jndi-name=" java:jboss/datasources/ExampleDS" pool-name="ExampleDS"
enabled="true" use-java-context="true">
<!-- connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url -->
<connection-url> jdbc:h2:~/kie-wb-db;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
kie-wb installation and configuration
Database configuration for jbpm-dashbuilder:
https://github.com/droolsjbpm/jbpmdashboard/blob/master/jbpm-dashboarddistributions/src/main/jbossas7/README.md
kie-wb installation and configuration
Application deployment:
● Deployment should be done in this order, kie-wb
application first, and then jbpm-dashbuilder application.
● Using Wildfly management console.
http://localhost:9990/console/App.html
● Command line scripts, etc.
$ cd <jboss_home>/bin
$ ./jboss-cli.sh --connect --command="deploy
<path_to_war_file>"
<path_to_war_file>: path to the application war file.
$ ./jboss-cli.sh --connect --command="deploy
/home/wmedvede/development/workshopbcn/distributions/kie-wb-6.1.0-SNAPSHOT-jboss-as7.war"
kie-wb installation and configuration
Start and access the application
● Server start
standalone-full.xml

$ ./standalone.sh

-c

$ ./standalone.sh

--server-config=standalone-full.xml

Use the -Dorg.kie.demo=false option to avoid installation of
demo repositories if needed.
$ ./standalone.sh -c
demo=false

standalone-full.xml -Dorg.kie.

● Access the application
http://localhost:8080/kie-wb-6.1.0-SNAPSHOT-jboss-as7
kie-wb installation and configuration
Application state directories:
jboss-as-7.1.1.Final/bin
.niogit: local git repositories data.
.index: lucene index data.
.security: keystore for git ssh authentication.
/repositories/kie: application m2 repository.

jboss-as-7.1.1.Final/standalone/data
Deployed sessions ids information
org.jbpm:HR:1.0-jbpmSessionId.ser
test:Tests:1.0-jbpmSessionId.ser
Workshop
● Look at the jBPM Playground Git repository
● https://github.com/droolsjbpm/jbpm-playground
Human Resources Example
From: https://github.com/droolsjbpm/jbpm-playground
Article: http://salaboy.com/2013/10/11/using-the-jbpm-console-ng-hr-example/
Look for the test project in the jbpm-playground repo
Customer Relationships Example
From: https://github.com/droolsjbpm/jbpm-playground
Uses: http://www.service-repository.com/operation/operations?id=30
Article: http://salaboy.com/2013/10/22/kie-wb-jbpm-console-ng-configurations/
Look for the WorkItemHandlers implementation project
Look for the test project in the jbpm-playground repo
General Configurations
● User/Groups/Roles
○ Where should I configure it?
○ Look here: http://salaboy.com/2013/10/22/kie-wb-jbpm-console-ngconfigurations/

● Work Item Handlers (Service Connectors)
○ What do I need?
○ Look here: http://salaboy.com/2013/10/22/kie-wb-jbpm-console-ngconfigurations/

● Getting access to the GIT repositories
○ How do I access to the local GIT repository?
○ Let’s do it!
REST Endpoints
● For the BPM Side you can interact with the
Process Runtimes using a REST endpoint (https:
//github.com/droolsjbpm/droolsjbpm-integration/wiki)

● You can execute your operations against a KIE
WB running instance
● Project: jbpm-rest-client also from the jbpmplayground repo
Community / Further Reading
● IRC: irc.freenode.net
○ #drools
○ #jbpm

● jBPM Forums / Drools Mailing List
○ www.drools.org and www.jbpm.org
○ New web page coming!

● Blogs
○
○
○
○
○

blog.athico.com
kverlaen.blogspot.com
mswiderski.blogspot.com
salaboy.com
pefernan.wordpress.com
¡Muchas Gracias!
¿Preguntas?

More Related Content

What's hot

Google App Engine Developer - Day4
Google App Engine Developer - Day4Google App Engine Developer - Day4
Google App Engine Developer - Day4Simon Su
 
Using Geoscript Groovy
Using Geoscript GroovyUsing Geoscript Groovy
Using Geoscript GroovyJared Erickson
 
Reporting Large Environment Zabbix Database
Reporting Large Environment Zabbix DatabaseReporting Large Environment Zabbix Database
Reporting Large Environment Zabbix DatabaseAlain Ganuchaud
 
(CMP310) Data Processing Pipelines Using Containers & Spot Instances
(CMP310) Data Processing Pipelines Using Containers & Spot Instances(CMP310) Data Processing Pipelines Using Containers & Spot Instances
(CMP310) Data Processing Pipelines Using Containers & Spot InstancesAmazon Web Services
 
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise SearchRestlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise SearchDataStax Academy
 
Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)Puppet
 
Airflow presentation
Airflow presentationAirflow presentation
Airflow presentationIlias Okacha
 
Filipe paternot - Case Study: Zabbix Deployment at Globo.com
Filipe paternot - Case Study: Zabbix Deployment at Globo.comFilipe paternot - Case Study: Zabbix Deployment at Globo.com
Filipe paternot - Case Study: Zabbix Deployment at Globo.comZabbix
 
ITB2019 CacheBox + LogBox 101 - Brad Wood
ITB2019 CacheBox + LogBox 101 - Brad WoodITB2019 CacheBox + LogBox 101 - Brad Wood
ITB2019 CacheBox + LogBox 101 - Brad WoodOrtus Solutions, Corp
 
Building a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStackBuilding a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStackke4qqq
 
Architectural caching patterns for kubernetes
Architectural caching patterns for kubernetesArchitectural caching patterns for kubernetes
Architectural caching patterns for kubernetesRafał Leszko
 
Infrastructure Management in GCP
Infrastructure Management in GCPInfrastructure Management in GCP
Infrastructure Management in GCPDana Hoffman
 
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話なおき きしだ
 
Device Synchronization with Javascript and PouchDB
Device Synchronization with Javascript and PouchDBDevice Synchronization with Javascript and PouchDB
Device Synchronization with Javascript and PouchDBFrank Rousseau
 
Garbage collection in .net (basic level)
Garbage collection in .net (basic level)Garbage collection in .net (basic level)
Garbage collection in .net (basic level)Larry Nung
 
OrigoDB - take the red pill
OrigoDB - take the red pillOrigoDB - take the red pill
OrigoDB - take the red pillRobert Friberg
 

What's hot (19)

Google App Engine Developer - Day4
Google App Engine Developer - Day4Google App Engine Developer - Day4
Google App Engine Developer - Day4
 
Using Geoscript Groovy
Using Geoscript GroovyUsing Geoscript Groovy
Using Geoscript Groovy
 
Reporting Large Environment Zabbix Database
Reporting Large Environment Zabbix DatabaseReporting Large Environment Zabbix Database
Reporting Large Environment Zabbix Database
 
(CMP310) Data Processing Pipelines Using Containers & Spot Instances
(CMP310) Data Processing Pipelines Using Containers & Spot Instances(CMP310) Data Processing Pipelines Using Containers & Spot Instances
(CMP310) Data Processing Pipelines Using Containers & Spot Instances
 
Sprint 71
Sprint 71Sprint 71
Sprint 71
 
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise SearchRestlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
 
Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)
 
Airflow presentation
Airflow presentationAirflow presentation
Airflow presentation
 
Filipe paternot - Case Study: Zabbix Deployment at Globo.com
Filipe paternot - Case Study: Zabbix Deployment at Globo.comFilipe paternot - Case Study: Zabbix Deployment at Globo.com
Filipe paternot - Case Study: Zabbix Deployment at Globo.com
 
ITB2019 CacheBox + LogBox 101 - Brad Wood
ITB2019 CacheBox + LogBox 101 - Brad WoodITB2019 CacheBox + LogBox 101 - Brad Wood
ITB2019 CacheBox + LogBox 101 - Brad Wood
 
Sprint 69
Sprint 69Sprint 69
Sprint 69
 
Building a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStackBuilding a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStack
 
Architectural caching patterns for kubernetes
Architectural caching patterns for kubernetesArchitectural caching patterns for kubernetes
Architectural caching patterns for kubernetes
 
Sprint 72
Sprint 72Sprint 72
Sprint 72
 
Infrastructure Management in GCP
Infrastructure Management in GCPInfrastructure Management in GCP
Infrastructure Management in GCP
 
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
 
Device Synchronization with Javascript and PouchDB
Device Synchronization with Javascript and PouchDBDevice Synchronization with Javascript and PouchDB
Device Synchronization with Javascript and PouchDB
 
Garbage collection in .net (basic level)
Garbage collection in .net (basic level)Garbage collection in .net (basic level)
Garbage collection in .net (basic level)
 
OrigoDB - take the red pill
OrigoDB - take the red pillOrigoDB - take the red pill
OrigoDB - take the red pill
 

Similar to Drools & jBPM Workshop Barcelona 2013

jBPM5 - The Evolution of BPM Systems
jBPM5 - The Evolution of BPM SystemsjBPM5 - The Evolution of BPM Systems
jBPM5 - The Evolution of BPM SystemsJBUG London
 
Designing salesforce solutions for reuse - Josh Dennis
Designing salesforce solutions for reuse - Josh DennisDesigning salesforce solutions for reuse - Josh Dennis
Designing salesforce solutions for reuse - Josh DennisSakthivel Madesh
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...Haggai Philip Zagury
 
Snowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD PipelinesSnowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD PipelinesDrew Hansen
 
A guide to modern software development 2018
A guide to modern software development 2018A guide to modern software development 2018
A guide to modern software development 2018Peter Bittner
 
Aws uk ug #8 not everything that happens in vegas stay in vegas
Aws uk ug #8   not everything that happens in vegas stay in vegasAws uk ug #8   not everything that happens in vegas stay in vegas
Aws uk ug #8 not everything that happens in vegas stay in vegasPeter Mounce
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftYaniv cohen
 
Always Be Deploying. How to make R great for machine learning in (not only) E...
Always Be Deploying. How to make R great for machine learning in (not only) E...Always Be Deploying. How to make R great for machine learning in (not only) E...
Always Be Deploying. How to make R great for machine learning in (not only) E...Wit Jakuczun
 
From prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.ioFrom prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.ioMáté Lang
 
Drupal Café October - DrupalCon Highlights
Drupal Café October - DrupalCon HighlightsDrupal Café October - DrupalCon Highlights
Drupal Café October - DrupalCon HighlightsExove
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipsterJulien Dubois
 
2014 11 20 Drupal 7 -> 8 test migratie
2014 11 20 Drupal 7 -> 8 test migratie2014 11 20 Drupal 7 -> 8 test migratie
2014 11 20 Drupal 7 -> 8 test migratiehcderaad
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersJon Peck
 
Curso de JBPM5
Curso de JBPM5Curso de JBPM5
Curso de JBPM5Oscar V
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...OW2
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDoku
 
Parallel Batch Performance Considerations
Parallel Batch Performance ConsiderationsParallel Batch Performance Considerations
Parallel Batch Performance ConsiderationsMartin Packer
 

Similar to Drools & jBPM Workshop Barcelona 2013 (20)

jBPM5 Developer Guide Presentation JBUG London
jBPM5 Developer Guide Presentation JBUG LondonjBPM5 Developer Guide Presentation JBUG London
jBPM5 Developer Guide Presentation JBUG London
 
jBPM5 - The Evolution of BPM Systems
jBPM5 - The Evolution of BPM SystemsjBPM5 - The Evolution of BPM Systems
jBPM5 - The Evolution of BPM Systems
 
DevOps Days Rockies MLOps
DevOps Days Rockies MLOpsDevOps Days Rockies MLOps
DevOps Days Rockies MLOps
 
Designing salesforce solutions for reuse - Josh Dennis
Designing salesforce solutions for reuse - Josh DennisDesigning salesforce solutions for reuse - Josh Dennis
Designing salesforce solutions for reuse - Josh Dennis
 
Drools & jBPM Workshop London 2013
Drools & jBPM Workshop London 2013Drools & jBPM Workshop London 2013
Drools & jBPM Workshop London 2013
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
 
Snowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD PipelinesSnowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD Pipelines
 
A guide to modern software development 2018
A guide to modern software development 2018A guide to modern software development 2018
A guide to modern software development 2018
 
Aws uk ug #8 not everything that happens in vegas stay in vegas
Aws uk ug #8   not everything that happens in vegas stay in vegasAws uk ug #8   not everything that happens in vegas stay in vegas
Aws uk ug #8 not everything that happens in vegas stay in vegas
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
 
Always Be Deploying. How to make R great for machine learning in (not only) E...
Always Be Deploying. How to make R great for machine learning in (not only) E...Always Be Deploying. How to make R great for machine learning in (not only) E...
Always Be Deploying. How to make R great for machine learning in (not only) E...
 
From prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.ioFrom prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.io
 
Drupal Café October - DrupalCon Highlights
Drupal Café October - DrupalCon HighlightsDrupal Café October - DrupalCon Highlights
Drupal Café October - DrupalCon Highlights
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipster
 
2014 11 20 Drupal 7 -> 8 test migratie
2014 11 20 Drupal 7 -> 8 test migratie2014 11 20 Drupal 7 -> 8 test migratie
2014 11 20 Drupal 7 -> 8 test migratie
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
 
Curso de JBPM5
Curso de JBPM5Curso de JBPM5
Curso de JBPM5
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winner
 
Parallel Batch Performance Considerations
Parallel Batch Performance ConsiderationsParallel Batch Performance Considerations
Parallel Batch Performance Considerations
 

More from Mauricio (Salaboy) Salatino

Lessons Learnt from creating platforms on Kubernetes @ Rejekts
Lessons Learnt from creating platforms on Kubernetes @ RejektsLessons Learnt from creating platforms on Kubernetes @ Rejekts
Lessons Learnt from creating platforms on Kubernetes @ RejektsMauricio (Salaboy) Salatino
 
Building Developer Experiences for the Cloud .pdf
Building Developer Experiences for the Cloud .pdfBuilding Developer Experiences for the Cloud .pdf
Building Developer Experiences for the Cloud .pdfMauricio (Salaboy) Salatino
 
KUBEDAY - JAPAN 2022 - Building FaaS Platforms.pdf
KUBEDAY - JAPAN  2022 - Building FaaS Platforms.pdfKUBEDAY - JAPAN  2022 - Building FaaS Platforms.pdf
KUBEDAY - JAPAN 2022 - Building FaaS Platforms.pdfMauricio (Salaboy) Salatino
 
The Challenges of building Cloud Native Platforms
The Challenges of building Cloud Native PlatformsThe Challenges of building Cloud Native Platforms
The Challenges of building Cloud Native PlatformsMauricio (Salaboy) Salatino
 
Functions Working Group Update - August 2022.pdf
Functions Working Group Update - August 2022.pdfFunctions Working Group Update - August 2022.pdf
Functions Working Group Update - August 2022.pdfMauricio (Salaboy) Salatino
 
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022 Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022 Mauricio (Salaboy) Salatino
 
Spring I/O 2022: Knative and Spring - Bringing back the `func`
Spring I/O 2022: Knative and Spring - Bringing back the `func`Spring I/O 2022: Knative and Spring - Bringing back the `func`
Spring I/O 2022: Knative and Spring - Bringing back the `func`Mauricio (Salaboy) Salatino
 
Knative Maintainers KubeConEU 22 Knative Overview and Update
Knative Maintainers KubeConEU 22 Knative Overview and UpdateKnative Maintainers KubeConEU 22 Knative Overview and Update
Knative Maintainers KubeConEU 22 Knative Overview and UpdateMauricio (Salaboy) Salatino
 
CDEventsCon Expanding Interoperability in the CD ecosystem
CDEventsCon Expanding Interoperability in the CD ecosystemCDEventsCon Expanding Interoperability in the CD ecosystem
CDEventsCon Expanding Interoperability in the CD ecosystemMauricio (Salaboy) Salatino
 
A Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
A Polyglot Developer Experience on Kubernetes - KubeCon EU ValenciaA Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
A Polyglot Developer Experience on Kubernetes - KubeCon EU ValenciaMauricio (Salaboy) Salatino
 
KCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre AbstraccionesKCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre AbstraccionesMauricio (Salaboy) Salatino
 
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS OfferingKubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS OfferingMauricio (Salaboy) Salatino
 
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with KnativeCloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with KnativeMauricio (Salaboy) Salatino
 

More from Mauricio (Salaboy) Salatino (20)

Devoxx UK - Platforms on top of K8s
Devoxx UK - Platforms on top of K8sDevoxx UK - Platforms on top of K8s
Devoxx UK - Platforms on top of K8s
 
WTF_is_SRE_DeveloperEnabledPlatforms.pdf
WTF_is_SRE_DeveloperEnabledPlatforms.pdfWTF_is_SRE_DeveloperEnabledPlatforms.pdf
WTF_is_SRE_DeveloperEnabledPlatforms.pdf
 
Lessons Learnt from creating platforms on Kubernetes @ Rejekts
Lessons Learnt from creating platforms on Kubernetes @ RejektsLessons Learnt from creating platforms on Kubernetes @ Rejekts
Lessons Learnt from creating platforms on Kubernetes @ Rejekts
 
Building Developer Experiences for the Cloud .pdf
Building Developer Experiences for the Cloud .pdfBuilding Developer Experiences for the Cloud .pdf
Building Developer Experiences for the Cloud .pdf
 
KUBEDAY - JAPAN 2022 - Building FaaS Platforms.pdf
KUBEDAY - JAPAN  2022 - Building FaaS Platforms.pdfKUBEDAY - JAPAN  2022 - Building FaaS Platforms.pdf
KUBEDAY - JAPAN 2022 - Building FaaS Platforms.pdf
 
The Challenges of building Cloud Native Platforms
The Challenges of building Cloud Native PlatformsThe Challenges of building Cloud Native Platforms
The Challenges of building Cloud Native Platforms
 
Functions Working Group Update - August 2022.pdf
Functions Working Group Update - August 2022.pdfFunctions Working Group Update - August 2022.pdf
Functions Working Group Update - August 2022.pdf
 
JBCNConf 2022: Go vs Java (Kubernetes)
JBCNConf 2022: Go vs Java (Kubernetes)JBCNConf 2022: Go vs Java (Kubernetes)
JBCNConf 2022: Go vs Java (Kubernetes)
 
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022 Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022
 
Spring I/O 2022: Knative and Spring - Bringing back the `func`
Spring I/O 2022: Knative and Spring - Bringing back the `func`Spring I/O 2022: Knative and Spring - Bringing back the `func`
Spring I/O 2022: Knative and Spring - Bringing back the `func`
 
KnativeCon 2022 - Knative Functions
KnativeCon 2022 - Knative FunctionsKnativeCon 2022 - Knative Functions
KnativeCon 2022 - Knative Functions
 
Knative Maintainers KubeConEU 22 Knative Overview and Update
Knative Maintainers KubeConEU 22 Knative Overview and UpdateKnative Maintainers KubeConEU 22 Knative Overview and Update
Knative Maintainers KubeConEU 22 Knative Overview and Update
 
CDEventsCon Expanding Interoperability in the CD ecosystem
CDEventsCon Expanding Interoperability in the CD ecosystemCDEventsCon Expanding Interoperability in the CD ecosystem
CDEventsCon Expanding Interoperability in the CD ecosystem
 
A Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
A Polyglot Developer Experience on Kubernetes - KubeCon EU ValenciaA Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
A Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
 
Pave the Golden Path On Your Internal Platform
Pave the Golden Path On Your Internal PlatformPave the Golden Path On Your Internal Platform
Pave the Golden Path On Your Internal Platform
 
Knative and Spring - Bringing back the func.pdf
Knative and Spring - Bringing back the func.pdfKnative and Spring - Bringing back the func.pdf
Knative and Spring - Bringing back the func.pdf
 
KCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre AbstraccionesKCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre Abstracciones
 
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS OfferingKubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
 
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with KnativeCloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
 
Intro to the Cloud with Knative (Spanish)
Intro to the Cloud with Knative (Spanish) Intro to the Cloud with Knative (Spanish)
Intro to the Cloud with Knative (Spanish)
 

Recently uploaded

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney
 

Recently uploaded (20)

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
 

Drools & jBPM Workshop Barcelona 2013

  • 1. Drools & jBPM Workshop 2013 Diciembre · Barcelona Pere Fernandez · Walter Medvedeo · Mauricio Salatino
  • 2. Agenda ● ● ● ● ● ● Drools & jBPM introduction New Technology Stack Tooling Installation & Configuration Workshop Q&A
  • 3. Short Disclaimer The tooling that we will be showing is a SNAPSHOT/Nightly build version of the project master branch. It can be built downloading the community projects hosted in github. com/droolsjbpm. If you are using Windows (Internet Explorer), you can expect some issues that are still being fixed for the next release.
  • 4. What is jBPM? ● jBPM is a flexible Business Process Engine ● It allows us to define, execute and monitor Business Processes ● The core is flexible to support any process definition language, but BPMN2 is the default one. ● We can embed jBPM in our applications or ● We can use it as a service
  • 5. jBPM Example Hiring a new Developer Example
  • 6. Advantages of using a Process Engine ● The processes says what to do and not how to do it (declarative nature). They can be used to discuss with non technical people how the company works. ● The processes can be used to teach new people about the companies procedures. ● All the process instances will log their activities and the process data that can be used to show in real time the company performance ● Making changes to processes are way faster than changing all the application code ● The development of the processes and the application infrastructure can be decoupled
  • 7. What is Drools? ● Drools is a Business Rule Engine ● We can define declaratively how to react to different scenarios ● The main idea behind using a Rule Engine is to decouple the business decision and behavior from the application code ● Rules are composed by: ○ A set of conditions ○ A set of actions
  • 8. Drools Example ○ One Rule Example Rule “5% discount to silver customers” when $c: Customer( type == ‘silver’ ) $p: Purchase( customer == $c ) then $p.setDiscount(“0.05”); end
  • 9. Advantages of using a Rule Engine ● The rules says what to do and not how to do it (declarative nature). They can be used to discuss with non technical people how the company works. ● The rules can be used to teach new people about the companies decisions and policies. ● All the rules execution will log their activities data that can be used to show in real time the company performance ● Making changes to rules are way faster than changing all the application code ● The development of the rules and the application infrastructure can be decoupled
  • 10. Drools + jBPM == Platform (KIE) ● Processes gives us a way to formalize and automate business knowledge ● Rules gives us another way to formalize and automate business knowledge ● KIE Platform= Knowledge is Everything ○ A platform to formalize, execute and monitor business knowledge
  • 11. KIE Platform - New Things ● KIE Projects ○ ○ ○ ○ Provides the Drools and jBPM projects structure Maven based / standard project structure Integrated with CDI Defines a Deployment Units for jBPM ● Whole new Tooling! ● Inside the platform you can also find: ○ ○ ○ ○ Drools Fusion for Complex Event Processing Drools Chance for Fuzzy Logic Drools Scorecards + Community Driven collaborations
  • 12. CDI for KIE Project ● From: https://github.com/droolsjbpm/drools/tree/master/droolsexamples-cdi
  • 13. KIE Project ● Structure (Maven Standard + kmodule.xml) Standard pom.xml File Resources / Knowledge Assets Business Process KIE Module Descriptor Forms
  • 14. KModule ● Convention Driven ● Or you can add custom configurations
  • 16. KIE Workbench - Technology Stack
  • 17. Tooling Tour ● Home ● Authoring Perspective ○ ○ ○ ○ ● ● ● ● Repository Management Modelling data Modelling a process Modelling forms Building & Deploying a Project Starting a Process Instance Task Management Business Activity Monitoring
  • 18. Home ● The Knowledge Lifecycle ○ ○ ○ ○ ○ Authoring Runtime Configurations Process Management Task Management Business Activity Monitoring
  • 19. Authoring Perspective - Administration ● Manage Organization Units ● Creating new repository ● Cloning existing repos ○ https://github.com/droolsjbpm/jbpm-playground ● Removing existing repositories
  • 20. Authoring Perspective - Assets ● Navigate through Organization Units, KIE Projects… ● Creating new KIE Projects ● Creating Knowledge Assets
  • 21. Data Modeler (Tools > Data Modeler) ● Create Data Objects ● Add properties to Data Objects (Simple types or other Data Objects) ● Data Objects will be stored as Java files ● Use them as Java Objects on runtime
  • 22. Process Designer (New Item > Business Process) ● ● ● ● Based on BPMN 2.0 Context Menu for easy creation of flows Visual validation Simulation of business process
  • 23. Form Modeler (New Item > Form) ● Configure Form data sources ○ Data Modeler Objects ○ Java Class in classpath ○ Simple types (String, Long, Integer, Date…) ● Add fields to Form ○ By source ○ WYSIWYG palette ● Configure fields properties (label, required…) ● Configure Form UI ○ Move fields ○ Edit form HTML
  • 25. Building & Deploying a Project ● Project Editor ○ Project Dependencies ○ Build & Deploy ○ Deployment Perspective
  • 26. What happens when we Build & Deploy a Project?
  • 27. Process Management ● Process Definitions ○ Shows only Deployed Process Definitions ○ Create new Process Instances ● Process Instances ○ You can inspect the details of your process instance ○ You can look into the Process Variables (simple types for now)
  • 28. Task Management ● Task Lists ○ Work in your assigned tasks ■ Group Tasks ■ Personal Tasks ● Task Forms ○ FTLs -> Freemarker templates ○ Forms -> Graphically Designed Forms using Form Modeller
  • 29. Business Activity Monitoring ● Dashboard ○ Generic Business Dashboard ○ Business Process Dashboard ○ Task Dashboard
  • 30. kie-wb installation and configuration kie-wb distributions: ● kie-wb-distributions: https://github.com/droolsjbpm/kie-wb-distributions/ $ mvn clean install -Dfull kie-wb-6.1.0-SNAPSHOT-eap-6_1.war kie-wb-6.1.0-SNAPSHOT-jboss-as7.war kie-wb-6.1.0-SNAPSHOT-tomcat7.war ● jbpm-dashboard: https://github.com/droolsjbpm/jbpm-dashboard $ mvn clean install -Dfull jbpm-dashbuilder-6.1.0-SNAPSHOT-jboss-as7.war jbpm-dashbuilder-6.1.0-SNAPSHOT-tomcat-7.war
  • 31. kie-wb installation and configuration Download Wildfly server: ● Wildfly 8.0.0.Beta1 can be downloaded from: http://wildfly.org/downloads/ ● Jboss AS 7.1.1 can still be downloaded from: http://www.jboss.org/jbossas/downloads/
  • 32. kie-wb installation and configuration Install Wildfly server: ● Unzip the jboss-as-7.1.1.Final.zip file to a given directory <installation_dir>. $ unzip jboss-as-7.1.1.Final.zip ● Start server cd <installation_dir>/jboss-as-7.1.1.Final/bin $ ./standalone.sh note: For Windows systems it's recommended to avoid directories with blank spaces, or too long directories.
  • 33. kie-wb installation and configuration Users creation: ● Create the server administrator user using the “add-user. sh” script. cd <installation_dir>/jboss-as-7.1.1.Final/bin $ ./add-user.sh ● Check server installation http://localhost:9990/console/App.html note: to create kie-wb application users and roles for development server, the user.properties and roles . properties files can be manually edited.
  • 34. kie-wb installation and configuration Security domain configuration: ● By default kie-wb application is configured to use the “other” security domain. ● Set this configuration in the standalone-full.xml file. <security-domain name=" other" cache-type="default"> <authentication> <login-module code=" UsersRoles" flag="required"> <module-option name="usersProperties" value="${jboss.server.config.dir}/ bpms-users.properties"/> <module-option name="rolesProperties" value="${jboss.server.config.dir}/ bpms-roles.properties"/> </login-module> </authentication> </security-domain> note: kie-wb application should use the standalone-full.xml configuration.
  • 35. kie-wb installation and configuration Enable sso for jbpm-dashbuilder: ● Set this configuration in the standalone-full.xml file. <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false"> <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> <virtual-server name="default-host" enable-welcome-root="true"> <alias name="localhost"/> <alias name="example.com"/> <sso/> </virtual-server> </subsystem>
  • 36. kie-wb installation and configuration Application roles: ● kie-wb application roles (web.xml). <role-name>admin</role-name> <role-name>analyst</role-name> <role-name>developer</role-name> <role-name>user</role-name> <role-name>manager</role-name> ● jbpm-dashbuilder application roles (web.xml). <role-name>admin</role-name> <role-name>user</role-name>
  • 37. kie-wb installation and configuration Users configuration example: ● bpms-users.properties. admin=admin john=john mary=mary jack=jack katy=katy ● bpms-roles.properties. admin=admin,analyst john=analyst,user,Accounting,PM mary=analyst,user,HR jack=analyst,user,IT katy=analyst,user,HR
  • 38. kie-wb installation and configuration Database configuration: ● kie-wb: WEB-INF/classes/META-INF/persistence.xml. <persistence-unit name=" org.jbpm.domain" transaction-type="JTA"> <provider> org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source> java:jboss/datasources/ExampleDS</jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" /> <property name="hibernate.max_fetch_depth" value="3" /> <property name="hibernate.hbm2ddl.auto" value="update" /> <property name="hibernate.show_sql" value="false" /> … </properties> </persistence-unit> </persistence>
  • 39. kie-wb installation and configuration Datasource configuration: ● kie-wb: standalone-full.xml. <datasource jndi-name=" java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true"> <!-- connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url --> <connection-url> jdbc:h2:~/kie-wb-db;DB_CLOSE_DELAY=-1</connection-url> <driver>h2</driver> <security> <user-name>sa</user-name> <password>sa</password> </security> </datasource>
  • 40. kie-wb installation and configuration Database configuration for jbpm-dashbuilder: https://github.com/droolsjbpm/jbpmdashboard/blob/master/jbpm-dashboarddistributions/src/main/jbossas7/README.md
  • 41. kie-wb installation and configuration Application deployment: ● Deployment should be done in this order, kie-wb application first, and then jbpm-dashbuilder application. ● Using Wildfly management console. http://localhost:9990/console/App.html ● Command line scripts, etc. $ cd <jboss_home>/bin $ ./jboss-cli.sh --connect --command="deploy <path_to_war_file>" <path_to_war_file>: path to the application war file. $ ./jboss-cli.sh --connect --command="deploy /home/wmedvede/development/workshopbcn/distributions/kie-wb-6.1.0-SNAPSHOT-jboss-as7.war"
  • 42. kie-wb installation and configuration Start and access the application ● Server start standalone-full.xml $ ./standalone.sh -c $ ./standalone.sh --server-config=standalone-full.xml Use the -Dorg.kie.demo=false option to avoid installation of demo repositories if needed. $ ./standalone.sh -c demo=false standalone-full.xml -Dorg.kie. ● Access the application http://localhost:8080/kie-wb-6.1.0-SNAPSHOT-jboss-as7
  • 43. kie-wb installation and configuration Application state directories: jboss-as-7.1.1.Final/bin .niogit: local git repositories data. .index: lucene index data. .security: keystore for git ssh authentication. /repositories/kie: application m2 repository. jboss-as-7.1.1.Final/standalone/data Deployed sessions ids information org.jbpm:HR:1.0-jbpmSessionId.ser test:Tests:1.0-jbpmSessionId.ser
  • 44. Workshop ● Look at the jBPM Playground Git repository ● https://github.com/droolsjbpm/jbpm-playground
  • 45. Human Resources Example From: https://github.com/droolsjbpm/jbpm-playground Article: http://salaboy.com/2013/10/11/using-the-jbpm-console-ng-hr-example/ Look for the test project in the jbpm-playground repo
  • 46. Customer Relationships Example From: https://github.com/droolsjbpm/jbpm-playground Uses: http://www.service-repository.com/operation/operations?id=30 Article: http://salaboy.com/2013/10/22/kie-wb-jbpm-console-ng-configurations/ Look for the WorkItemHandlers implementation project Look for the test project in the jbpm-playground repo
  • 47. General Configurations ● User/Groups/Roles ○ Where should I configure it? ○ Look here: http://salaboy.com/2013/10/22/kie-wb-jbpm-console-ngconfigurations/ ● Work Item Handlers (Service Connectors) ○ What do I need? ○ Look here: http://salaboy.com/2013/10/22/kie-wb-jbpm-console-ngconfigurations/ ● Getting access to the GIT repositories ○ How do I access to the local GIT repository? ○ Let’s do it!
  • 48. REST Endpoints ● For the BPM Side you can interact with the Process Runtimes using a REST endpoint (https: //github.com/droolsjbpm/droolsjbpm-integration/wiki) ● You can execute your operations against a KIE WB running instance ● Project: jbpm-rest-client also from the jbpmplayground repo
  • 49. Community / Further Reading ● IRC: irc.freenode.net ○ #drools ○ #jbpm ● jBPM Forums / Drools Mailing List ○ www.drools.org and www.jbpm.org ○ New web page coming! ● Blogs ○ ○ ○ ○ ○ blog.athico.com kverlaen.blogspot.com mswiderski.blogspot.com salaboy.com pefernan.wordpress.com