SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
POLYGLOT &
REACTIVE JBPM
Maciej Swiderski - Salaboy
June ‘15
WHO ARE WE?
Maciej Swiderski
Mauricio Salatino
AGENDA
• jBPM Intro (10 minutes)
• Vert.x in a Nutshell (10 minutes)
• Demo
• Polyglot interactions
• Reactive BPM
WHAT IS JBPM?
Pure Java Lightweight Process Engine.
You can embed it in your apps or
infrastructure.
Main Purpose:
• (Micro)Services Orchestration
• Human Workflows support
HOW DOES A PROCESS
LOOK LIKE?
KNOWLEDGE IS
EVERYTHING (KIE)
• Drools (Rule Engine)
• jBPM (Process Engine)
• Optaplanner (Resource Planning Engine)
• Dashbuilder (Data Analytics & Visualization)
• Uberfire (API to create generic Web IDEs)
CORE ENGINE
• Light-weight , Solid, Stable core engine
• Native support for BPMN 2.0
• Automatically/Natively integrated with:
• Rule Engine - Drools Expert
• Complex Event Processing engine - Drools Fusion
• Configurable engine persistence
• Pluggable variable persistence strategies
WORKITEMS
• jBPM as a process engine executes steps defined in
the process - commonly known as activities
• jBPM introduces concept of work items - definition
of work to be performed
• Work Items are composed of two parts
• work item definition - allows to define the work
item once and reuse it across projects - this is the
“what”
• work item handler - allows to execute work item
on runtime environment - this is the “how”
WHY YOU SHOULD
CARE?
• Decouple “what we do” from “how we do
it”
• Decoupled lifecycle between your
knowledge (process model) and your app
infrastructure
• Error Tracking and Auditing for free
RUN YOUR JBPM
• As a Service
• Execution Servers (REST, JMS, SOAP)
• Embedded
• low level API (KIE API)
• services API (CDI, Spring, EJB)
• You can use as much as you need
TOOLING
• KIE Workbench (is our Web IDE)
• Authoring (focused on Business Users)
• Runtime (Focused on the day to day
work)
• Monitoring (Focused on exposing Real
Time Data)
KIE MODULE (KJAR)
• Defines a package with business assets
• Apache Maven is used to:
• keep unified and standardized structure of the project
• provides dependency management
• simplify artifacts distribution and consumption by other projects
• get rid of any proprietary formats of knowledge packages
• kjars can have dependencies to any other artifacts including other
kjars
• DevOps (Jenkins, Nexus, etc) tools can be used to distribute,
host and manager our Kie Modules
• all assets are stored in source 

control system - GIT
• web tooling provides access to GIT server:
• via its UI (allows to work on assets,
create repositories, clone repositories,
etc)
• via IDE (allows to clone, pull, push assets)
• via any GIT tool (GUI or CLI) for any
operation GIT supports
REPOSITORY
KIE MODULES (DEMO)
GAV: org.jbpm:receive-data:1.0 GAV: org.jbpm:send-data:1.0
DEPLOYMENT OF
BUSINESS ASSETS
• It depends on the way jBPM is used
• as a service primary deployment unit is kjar which
is automatically downloaded from Maven if does
not exist locally - identified by GAV (Group, Artifact,
Version)
• embedded within the application
• recommended to rely on kjars as well
• allows to add business assets manually (from any
source - file system, classpath, database, etc)
VERT.X IN A NUTSHELL
“Vert.x is a lightweight, high performance
application platform for the JVM that's
designed for modern mobile, web, and
enterprise applications.”
VERT.X IN A NUTSHELL
• Polyglot
• use your favorite programming language or mix several to develop
applications
• Simplicity
• make use of asynchronous APIs without too much hassle
• Scalability
• Scales using message passing to efficiently utilize your server cores.
• Concurrency
• Simple actor-like concurrency model frees you from the pitfalls of
traditional multi-threaded programming.
VERT.X IN A NUTSHELL
• Verticle
• The packages of code Vert.x executes. Can be written in
various languages (JS, Java, Groovy, etc)
• Module
• Modules can contain multiple verticles, potentially written
in different languages. Modules allow functionality to be
encapsulated and reused
• Vert.x instance
• Verticles run inside a Vert.x instance. A single Vert.x
instance runs inside its own JVM instance
VERT.X TOPOLOGY
Vert.x instance
Event bus
Verticle
instance
Verticle
instance
Verticle
instance
VERT.X EVENT BUS
• Event bus is the nervous system of Vert.x
• Allow Verticles to communicate with each other
regardless what language they were written in
• Clustered - allows to communicate regardless
where verticles are located (on the network)
• Simple addressing - simple strings no complex
addressing schemes
• Publish/Subscribe and Point to Point messaging
JBPM AND VERT.X
• jBPM module for Vert.x
• allows to start instances of Vert.x with jBPM module
dedicated to kjar
• Reactive
• Makes use of clustered event bus to communicate
between instances of jBPM module
• Polyglot
• Allows to use different languages to interact with
running processes
JBPM AND VERT.X
• Configurable via json file (receive-data.conf)
{
"containerId" : "org.jbpm:receive-data:1.0",
"managed" : true
}
• Started as zipped module
vertx runzip jbpm-vertx-module-1.0.0-mod.zip -conf
receive-data.conf
DEMO OVERVIEW
DEMO: POLYGLOT
• Illustrates how jBPM vert.x module can be
used with various languages
• Java Script
• Scala
• Groovy
• Ceylon
DEMO: REACTIVE
• Illustrates how jBPM vert.x module makes
use of (clustered) event bus to exchange
information between processes
• Use of WorkItems to realize/execute
send and receive tasks (BPMN2 activities)
DEMO: BPM TOOLING
INTEGRATION
• Illustrates how to integrate with existing
jBPM tooling to keep track of what is going
on with processing managed by jBPM
vert.x module instance
DEMO: BPM TOOLING
INTEGRATION
DEMO: SCALABILITY
• Illustrates how easy it is to put up more
instances of given kjar to handle increased
load
CONTACT US, BE PART
OF THE COMMUNITY…
HTTP://MSWIDERSKI.BLOGSPOT.COM
@SALABOY
HTTP://SALABOY.COM
ON IRC (24/7)
IRC.FREENODE.ORG
CHANNELS: #JBPM, #DROOLS
QUESTIONS?

Contenu connexe

Tendances

Drools 6.0 (JudCon 2013)
Drools 6.0 (JudCon 2013)Drools 6.0 (JudCon 2013)
Drools 6.0 (JudCon 2013)
Mark Proctor
 
Patroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionPatroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companion
Alexander Kukushkin
 
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
なおき きしだ
 

Tendances (20)

Drools 6 deep dive
Drools 6 deep diveDrools 6 deep dive
Drools 6 deep dive
 
Architectural caching patterns for kubernetes
Architectural caching patterns for kubernetesArchitectural caching patterns for kubernetes
Architectural caching patterns for kubernetes
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
 
ITB2019 CacheBox + LogBox 101 - Brad Wood
ITB2019 CacheBox + LogBox 101 - Brad WoodITB2019 CacheBox + LogBox 101 - Brad Wood
ITB2019 CacheBox + LogBox 101 - Brad Wood
 
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the UglyKubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4oct
 
Mikhail Serkov - Zabbix for HPC Cluster Support | ZabConf2016
Mikhail Serkov - Zabbix for HPC Cluster Support | ZabConf2016Mikhail Serkov - Zabbix for HPC Cluster Support | ZabConf2016
Mikhail Serkov - Zabbix for HPC Cluster Support | ZabConf2016
 
Tce automation-d4
Tce automation-d4Tce automation-d4
Tce automation-d4
 
Cloud foundry on kubernetes
Cloud foundry on kubernetesCloud foundry on kubernetes
Cloud foundry on kubernetes
 
Attack monitoring using ElasticSearch Logstash and Kibana
Attack monitoring using ElasticSearch Logstash and KibanaAttack monitoring using ElasticSearch Logstash and Kibana
Attack monitoring using ElasticSearch Logstash and Kibana
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
Kubernetes #3 security
Kubernetes #3   securityKubernetes #3   security
Kubernetes #3 security
 
Drools 6.0 (JudCon 2013)
Drools 6.0 (JudCon 2013)Drools 6.0 (JudCon 2013)
Drools 6.0 (JudCon 2013)
 
Patroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionPatroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companion
 
Nova: Openstack Compute-as-a-service
Nova: Openstack Compute-as-a-serviceNova: Openstack Compute-as-a-service
Nova: Openstack Compute-as-a-service
 
Trevor McDonald - Nagios XI Under The Hood
Trevor McDonald  - Nagios XI Under The HoodTrevor McDonald  - Nagios XI Under The Hood
Trevor McDonald - Nagios XI Under The Hood
 
Openstack Scheduler and Scalability Issue
Openstack Scheduler and Scalability IssueOpenstack Scheduler and Scalability Issue
Openstack Scheduler and Scalability Issue
 
Reporting Large Environment Zabbix Database
Reporting Large Environment Zabbix DatabaseReporting Large Environment Zabbix Database
Reporting Large Environment Zabbix Database
 
Nodejs - A-quick-tour-v3
Nodejs - A-quick-tour-v3Nodejs - A-quick-tour-v3
Nodejs - A-quick-tour-v3
 
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
 

Similaire à JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM

Performance of Microservice Frameworks on different JVMs
Performance of Microservice Frameworks on different JVMsPerformance of Microservice Frameworks on different JVMs
Performance of Microservice Frameworks on different JVMs
Maarten Smeets
 

Similaire à JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM (20)

Performance of Microservice Frameworks on different JVMs
Performance of Microservice Frameworks on different JVMsPerformance of Microservice Frameworks on different JVMs
Performance of Microservice Frameworks on different JVMs
 
Microservices Platforms - Which is Best?
Microservices Platforms - Which is Best?Microservices Platforms - Which is Best?
Microservices Platforms - Which is Best?
 
JavaEE Microservices platforms
JavaEE Microservices platformsJavaEE Microservices platforms
JavaEE Microservices platforms
 
Microservices with Azure Service Fabric
Microservices with Azure Service FabricMicroservices with Azure Service Fabric
Microservices with Azure Service Fabric
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC
 
Eclipse plug in development
Eclipse plug in developmentEclipse plug in development
Eclipse plug in development
 
Cont0519
Cont0519Cont0519
Cont0519
 
Java1 in mumbai
Java1 in mumbaiJava1 in mumbai
Java1 in mumbai
 
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...
 
Latest (storage IO) patterns for cloud-native applications
Latest (storage IO) patterns for cloud-native applications Latest (storage IO) patterns for cloud-native applications
Latest (storage IO) patterns for cloud-native applications
 
Containers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellContainers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshell
 
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry Meetup
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry MeetupIntro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry Meetup
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry Meetup
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Writing Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly SwarmWriting Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly Swarm
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel Riding
 
MWLUG - Universal Java
MWLUG  -  Universal JavaMWLUG  -  Universal Java
MWLUG - Universal Java
 
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
 
Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)
 
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless  - Serverless Summit 2017 - Krishna KumarKubernetes for Serverless  - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
 

Plus de Mauricio (Salaboy) Salatino

Plus de 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)
 

Dernier

%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Dernier (20)

%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 

JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM

  • 1. POLYGLOT & REACTIVE JBPM Maciej Swiderski - Salaboy June ‘15
  • 2. WHO ARE WE? Maciej Swiderski Mauricio Salatino
  • 3. AGENDA • jBPM Intro (10 minutes) • Vert.x in a Nutshell (10 minutes) • Demo • Polyglot interactions • Reactive BPM
  • 4. WHAT IS JBPM? Pure Java Lightweight Process Engine. You can embed it in your apps or infrastructure. Main Purpose: • (Micro)Services Orchestration • Human Workflows support
  • 5. HOW DOES A PROCESS LOOK LIKE?
  • 6. KNOWLEDGE IS EVERYTHING (KIE) • Drools (Rule Engine) • jBPM (Process Engine) • Optaplanner (Resource Planning Engine) • Dashbuilder (Data Analytics & Visualization) • Uberfire (API to create generic Web IDEs)
  • 7. CORE ENGINE • Light-weight , Solid, Stable core engine • Native support for BPMN 2.0 • Automatically/Natively integrated with: • Rule Engine - Drools Expert • Complex Event Processing engine - Drools Fusion • Configurable engine persistence • Pluggable variable persistence strategies
  • 8. WORKITEMS • jBPM as a process engine executes steps defined in the process - commonly known as activities • jBPM introduces concept of work items - definition of work to be performed • Work Items are composed of two parts • work item definition - allows to define the work item once and reuse it across projects - this is the “what” • work item handler - allows to execute work item on runtime environment - this is the “how”
  • 9. WHY YOU SHOULD CARE? • Decouple “what we do” from “how we do it” • Decoupled lifecycle between your knowledge (process model) and your app infrastructure • Error Tracking and Auditing for free
  • 10. RUN YOUR JBPM • As a Service • Execution Servers (REST, JMS, SOAP) • Embedded • low level API (KIE API) • services API (CDI, Spring, EJB) • You can use as much as you need
  • 11. TOOLING • KIE Workbench (is our Web IDE) • Authoring (focused on Business Users) • Runtime (Focused on the day to day work) • Monitoring (Focused on exposing Real Time Data)
  • 12. KIE MODULE (KJAR) • Defines a package with business assets • Apache Maven is used to: • keep unified and standardized structure of the project • provides dependency management • simplify artifacts distribution and consumption by other projects • get rid of any proprietary formats of knowledge packages • kjars can have dependencies to any other artifacts including other kjars • DevOps (Jenkins, Nexus, etc) tools can be used to distribute, host and manager our Kie Modules
  • 13. • all assets are stored in source 
 control system - GIT • web tooling provides access to GIT server: • via its UI (allows to work on assets, create repositories, clone repositories, etc) • via IDE (allows to clone, pull, push assets) • via any GIT tool (GUI or CLI) for any operation GIT supports REPOSITORY
  • 14. KIE MODULES (DEMO) GAV: org.jbpm:receive-data:1.0 GAV: org.jbpm:send-data:1.0
  • 15. DEPLOYMENT OF BUSINESS ASSETS • It depends on the way jBPM is used • as a service primary deployment unit is kjar which is automatically downloaded from Maven if does not exist locally - identified by GAV (Group, Artifact, Version) • embedded within the application • recommended to rely on kjars as well • allows to add business assets manually (from any source - file system, classpath, database, etc)
  • 16. VERT.X IN A NUTSHELL “Vert.x is a lightweight, high performance application platform for the JVM that's designed for modern mobile, web, and enterprise applications.”
  • 17. VERT.X IN A NUTSHELL • Polyglot • use your favorite programming language or mix several to develop applications • Simplicity • make use of asynchronous APIs without too much hassle • Scalability • Scales using message passing to efficiently utilize your server cores. • Concurrency • Simple actor-like concurrency model frees you from the pitfalls of traditional multi-threaded programming.
  • 18. VERT.X IN A NUTSHELL • Verticle • The packages of code Vert.x executes. Can be written in various languages (JS, Java, Groovy, etc) • Module • Modules can contain multiple verticles, potentially written in different languages. Modules allow functionality to be encapsulated and reused • Vert.x instance • Verticles run inside a Vert.x instance. A single Vert.x instance runs inside its own JVM instance
  • 19. VERT.X TOPOLOGY Vert.x instance Event bus Verticle instance Verticle instance Verticle instance
  • 20. VERT.X EVENT BUS • Event bus is the nervous system of Vert.x • Allow Verticles to communicate with each other regardless what language they were written in • Clustered - allows to communicate regardless where verticles are located (on the network) • Simple addressing - simple strings no complex addressing schemes • Publish/Subscribe and Point to Point messaging
  • 21. JBPM AND VERT.X • jBPM module for Vert.x • allows to start instances of Vert.x with jBPM module dedicated to kjar • Reactive • Makes use of clustered event bus to communicate between instances of jBPM module • Polyglot • Allows to use different languages to interact with running processes
  • 22. JBPM AND VERT.X • Configurable via json file (receive-data.conf) { "containerId" : "org.jbpm:receive-data:1.0", "managed" : true } • Started as zipped module vertx runzip jbpm-vertx-module-1.0.0-mod.zip -conf receive-data.conf
  • 24. DEMO: POLYGLOT • Illustrates how jBPM vert.x module can be used with various languages • Java Script • Scala • Groovy • Ceylon
  • 25. DEMO: REACTIVE • Illustrates how jBPM vert.x module makes use of (clustered) event bus to exchange information between processes • Use of WorkItems to realize/execute send and receive tasks (BPMN2 activities)
  • 26. DEMO: BPM TOOLING INTEGRATION • Illustrates how to integrate with existing jBPM tooling to keep track of what is going on with processing managed by jBPM vert.x module instance
  • 28. DEMO: SCALABILITY • Illustrates how easy it is to put up more instances of given kjar to handle increased load
  • 29. CONTACT US, BE PART OF THE COMMUNITY… HTTP://MSWIDERSKI.BLOGSPOT.COM @SALABOY HTTP://SALABOY.COM ON IRC (24/7) IRC.FREENODE.ORG CHANNELS: #JBPM, #DROOLS