Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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:
• (Micr...
HOW DOES A PROCESS
LOOK LIKE?
KNOWLEDGE IS
EVERYTHING (KIE)
• Drools (Rule Engine)
• jBPM (Process Engine)
• Optaplanner (Resource Planning Engine)
• Da...
CORE ENGINE
• Light-weight , Solid, Stable core engine
• Native support for BPMN 2.0
• Automatically/Natively integrated w...
WORKITEMS
• jBPM as a process engine executes steps defined in
the process - commonly known as activities
• jBPM introduce...
WHY YOU SHOULD
CARE?
• Decouple “what we do” from “how we do
it”
• Decoupled lifecycle between your
knowledge (process mod...
RUN YOUR JBPM
• As a Service
• Execution Servers (REST, JMS, SOAP)
• Embedded
• low level API (KIE API)
• services API (CD...
TOOLING
• KIE Workbench (is our Web IDE)
• Authoring (focused on Business Users)
• Runtime (Focused on the day to day
work...
KIE MODULE (KJAR)
• Defines a package with business assets
• Apache Maven is used to:
• keep unified and standardized struc...
• all assets are stored in source 

control system - GIT
• web tooling provides access to GIT server:
• via its UI (allows...
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...
VERT.X IN A NUTSHELL
“Vert.x is a lightweight, high performance
application platform for the JVM that's
designed for moder...
VERT.X IN A NUTSHELL
• Polyglot
• use your favorite programming language or mix several to develop
applications
• Simplici...
VERT.X IN A NUTSHELL
• Verticle
• The packages of code Vert.x executes. Can be written in
various languages (JS, Java, Gro...
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 w...
JBPM AND VERT.X
• jBPM module for Vert.x
• allows to start instances of Vert.x with jBPM module
dedicated to kjar
• Reacti...
JBPM AND VERT.X
• Configurable via json file (receive-data.conf)
{
"containerId" : "org.jbpm:receive-data:1.0",
"managed" ...
DEMO OVERVIEW
DEMO: POLYGLOT
• Illustrates how jBPM vert.x module can be
used with various languages
• Java Script
• Scala
• Groovy
• Ce...
DEMO: REACTIVE
• Illustrates how jBPM vert.x module makes
use of (clustered) event bus to exchange
information between pro...
DEMO: BPM TOOLING
INTEGRATION
• Illustrates how to integrate with existing
jBPM tooling to keep track of what is going
on ...
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.FREENOD...
QUESTIONS?
Upcoming SlideShare
Loading in …5
×

of

JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 1 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 2 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 3 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 4 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 5 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 6 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 7 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 8 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 9 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 10 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 11 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 12 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 13 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 14 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 15 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 16 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 17 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 18 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 19 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 20 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 21 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 22 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 23 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 24 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 25 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 26 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 27 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 28 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 29 JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM Slide 30
Upcoming SlideShare
Knowledge drivenmicroservices
Next
Download to read offline and view in fullscreen.

4 Likes

Share

Download to read offline

JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM

Download to read offline

JBCNConf slides about jBPM and Vert.x

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM

  1. 1. POLYGLOT & REACTIVE JBPM Maciej Swiderski - Salaboy June ‘15
  2. 2. WHO ARE WE? Maciej Swiderski Mauricio Salatino
  3. 3. AGENDA • jBPM Intro (10 minutes) • Vert.x in a Nutshell (10 minutes) • Demo • Polyglot interactions • Reactive BPM
  4. 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. 5. HOW DOES A PROCESS LOOK LIKE?
  6. 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. 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. 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. 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. 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. 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. 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. 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. 14. KIE MODULES (DEMO) GAV: org.jbpm:receive-data:1.0 GAV: org.jbpm:send-data:1.0
  15. 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. 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. 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. 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. 19. VERT.X TOPOLOGY Vert.x instance Event bus Verticle instance Verticle instance Verticle instance
  20. 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. 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. 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
  23. 23. DEMO OVERVIEW
  24. 24. DEMO: POLYGLOT • Illustrates how jBPM vert.x module can be used with various languages • Java Script • Scala • Groovy • Ceylon
  25. 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. 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
  27. 27. DEMO: BPM TOOLING INTEGRATION
  28. 28. DEMO: SCALABILITY • Illustrates how easy it is to put up more instances of given kjar to handle increased load
  29. 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
  30. 30. QUESTIONS?
  • sky_wu

    Mar. 27, 2016
  • GiovanniBaleani

    Nov. 18, 2015
  • TravisCarlson

    Jul. 1, 2015
  • McRose

    Jun. 27, 2015

JBCNConf slides about jBPM and Vert.x

Views

Total views

2,344

On Slideshare

0

From embeds

0

Number of embeds

159

Actions

Downloads

32

Shares

0

Comments

0

Likes

4

×