jBPM 4 BeJUG Event March 20 2009

50 %
50 %
Information about jBPM 4 BeJUG Event March 20 2009

Published on March 20, 2009

Author: tombaeyens

Source: slideshare.net

Description

An introduction to jBPM

JBoss jBPM Business Process Management BPM as a discipline BPM as software engineering Embeddability Modelling jBPM Key Values Status & Roadmap

Business Process Management

BPM as a discipline

BPM as software engineering

Embeddability

Modelling

jBPM Key Values

Status & Roadmap

Tom Baeyens Lead and founder of JBoss jBPM Consulting for numerous BPM projects Bringing BPM mainstream Articles InfoQ, TSS, Dzone, OnJava,… Blogs http://processdevelopments.blogspot.com/ Talks JavaOne, JBossWorld, JAOO, TSS,…

Lead and founder of JBoss jBPM

Consulting for numerous BPM projects

Bringing BPM mainstream

Articles

InfoQ, TSS, Dzone, OnJava,…

Blogs

http://processdevelopments.blogspot.com/

Talks

JavaOne, JBossWorld, JAOO, TSS,…

BPM as a Discipline Management discipline “They all seem very busy” Non technical People to people What, not how Can be vague Unrelated to software architecture Often include diagrams

Management discipline

“They all seem very busy”

Non technical

People to people

What, not how

Can be vague

Unrelated to software architecture

Often include diagrams

BPM as Software Engineering Aspect of software expressed as a graph Specifies execution flow BPMS ‘runs’ process executions It’s software DSL Execute on one system Central dispatcher Multiple participants Wait states

Aspect of software expressed as a graph

Specifies execution flow

BPMS ‘runs’ process executions

It’s software

DSL

Execute on one system

Central dispatcher

Multiple participants

Wait states

Traditional BPM Vendors Stack Integrators Oracle, IBM, SAP BPEL is integration technology Atomic operation is WSDL service invocations Service orchestration as solution for BPM ?  Lost of tooling required to hide clumsy basics Pure plays Top down  Automagical BPM Suite has its own software architecture  Doesn’t embed within user’s software architecture Monolithic server Hard to integrate

Stack Integrators

Oracle, IBM, SAP

BPEL is integration technology

Atomic operation is WSDL service invocations

Service orchestration as solution for BPM ?

 Lost of tooling required to hide clumsy basics

Pure plays

Top down

 Automagical

BPM Suite has its own software architecture

 Doesn’t embed within user’s software architecture

Monolithic server

Hard to integrate

jBPM ! Bottom Up No magic Server or embedded Not monolithic Just a library Freedom Use the most appropriate tech Java, groovy, web services, SQL Java excellent dispatcher technology

Bottom Up

No magic

Server or embedded

Not monolithic

Just a library

Freedom

Use the most appropriate tech

Java, groovy, web services, SQL

Java excellent dispatcher technology

jBPM’s Modelling Advantage Typical user story Order entry Business person goes “ Click on the button in the screen” “ Clerk gets an email” “ Escalate if it takes too long” Developer goes GWT gives me browser RESTfull webservice communication with server SEAM can invoke my ejb 3 beans EJB 3 beans have required transaction demarcation SEAM integrates with my business process layer Sending email must be done asynchronous

Typical user story

Order entry

Business person goes

“ Click on the button in the screen”

“ Clerk gets an email”

“ Escalate if it takes too long”

Developer goes

GWT gives me browser

RESTfull webservice communication with server

SEAM can invoke my ejb 3 beans

EJB 3 beans have required transaction demarcation

SEAM integrates with my business process layer

Sending email must be done asynchronous

jBPM’s Modelling Advantage No forced link between graph and transaction Embeddable Flexible transaction demarcation Hidden event listeners

No forced link between graph and transaction

Embeddable

Flexible transaction demarcation

Hidden event listeners

jBPM’s Modelling Advantage Your App Your Architecture jBPM Business Analyst Developer

jBPM’s Modelling Advantage Your App Your Architecture jBPM Business Analyst Developer

jBPM’s Embeddable Advantage Structure your software Software is a combination of Process Domain model UI Process inside your architecture Binds to user’s transaction (JEE, JSE, SEAM, Spring,…) Stores data in user’s database Links to domain model objects Test inside user’s test suite

Structure your software

Software is a combination of

Process

Domain model

UI

Process inside your architecture

Binds to user’s transaction (JEE, JSE, SEAM, Spring,…)

Stores data in user’s database

Links to domain model objects

Test inside user’s test suite

jBPM’s Embeddable Advantage E.g. plain webapp Spring, hibernate Deployed on Tomcat jBPM has Job executor Transactional timers Asynchronous continuations Transaction 1 Transaction 2

E.g. plain webapp

Spring, hibernate

Deployed on Tomcat

jBPM has Job executor

Transactional timers

Asynchronous continuations

jBPM’s Embeddable Advantage Works with plain Java code High level asynchronous transactional modelling Standard Java thanks to jobexecutor Enterprise Java without deployment descriptor hell Seam Spring

Works with plain Java code

High level asynchronous transactional modelling

Standard Java thanks to jobexecutor

Enterprise Java without deployment descriptor hell

Seam

Spring

jBPM’s Use Cases Orchestrating Human Tasks Transactional Script EJB orchestration Service orchestration Pageflow

Orchestrating Human Tasks

Transactional Script

EJB orchestration

Service orchestration

Pageflow

< process name = &quot;TaskCandidateGroups&quot; > < start > < transition to = &quot;review&quot; /> </ start > < task name = &quot;review&quot; candidate-users = &quot;johndoe, joesmoe&quot; > < transition to = &quot;wait&quot; /> </ task > < state name = &quot;wait&quot; /> </ process >

< process name = &quot;TaskCandidateGroups&quot; >

< start >

< transition to = &quot;review&quot; />

</ start >

< task name = &quot;review&quot;

candidate-users = &quot;johndoe, joesmoe&quot; >

< transition to = &quot;wait&quot; />

</ task >

< state name = &quot;wait&quot; />

</ process >

deployJpdlResource( “… /process.jpdl.xml“ ); Execution execution = executionService .startProcessInstanceByKey( &quot;TaskCandidates&quot; ); String executionId = execution.getId(); List<Task> taskList = taskService.getGroupTaskList( &quot;johndoe&quot; , 0, 10); assertEquals(1, taskList.size()); Task task = taskList.get(0); assertEquals( &quot;review&quot; , task.getName()); taskList = taskService.getGroupTaskList( &quot;joesmoe&quot; , 0, 10); assertEquals(1, taskList.size()); task = taskList.get(0); assertEquals( &quot;review&quot; , task.getName());

deployJpdlResource(

“… /process.jpdl.xml“

);

Execution execution = executionService

.startProcessInstanceByKey( &quot;TaskCandidates&quot; );

String executionId = execution.getId();

List<Task> taskList =

taskService.getGroupTaskList( &quot;johndoe&quot; , 0, 10);

assertEquals(1, taskList.size());

Task task = taskList.get(0);

assertEquals( &quot;review&quot; , task.getName());

taskList =

taskService.getGroupTaskList( &quot;joesmoe&quot; , 0, 10);

assertEquals(1, taskList.size());

task = taskList.get(0);

assertEquals( &quot;review&quot; , task.getName());

Multiple Process Languages

jBPM Key Business Values Step away from Business analysts can work with our tool :-) Real bridge Based on good communication Leaves tech things with developers Creates a common language First generally applicable solution for ‘BPM as a discipline’

Step away from

Business analysts can work with our tool :-)

Real bridge

Based on good communication

Leaves tech things with developers

Creates a common language

First generally applicable solution for ‘BPM as a discipline’

jBPM Key Technical Values No hokus pokus Take away the TX plumbing Structure software Get overview beyond transactions Learn 1 workflow/BPM technology Leverage that knowledge investment it in all your projects The one-stop-shop argument Simple & lightweight

No hokus pokus

Take away the TX plumbing

Structure software

Get overview beyond transactions

Learn 1 workflow/BPM technology

Leverage that knowledge investment it in all your projects

The one-stop-shop argument

Simple & lightweight

jBPM Evolution jBPM 1 EJB state machine jBPM 2 Std Java Embeddable Hibernate state machine jBPM 3 First Activity Pluggability First Multiple Languages First Enterprise Embeddability jBPM 4 Activity Pluggability API Command Based Services Multiple Languages Many Execution modes DB Partitioning DB Evolution Full Embeddability Product Project

jBPM 1

EJB state machine

jBPM 2

Std Java Embeddable

Hibernate state machine

jBPM 3

First Activity Pluggability

First Multiple Languages

First Enterprise Embeddability

jBPM 4

Activity Pluggability API

Command Based Services

Multiple Languages

Many Execution modes

DB Partitioning

DB Evolution

Full Embeddability

Current Status jBPM 3.2.6 Stable Productization being finished jBPM 4.0.0.Alpha2 is released jBPM 4.0.0.GA planned for July First scope for jBPM 4 is jBPM 3 functionality Then Improved node pluggability (easy extension) More integrated language coverage

jBPM 3.2.6

Stable

Productization being finished

jBPM 4.0.0.Alpha2 is released

jBPM 4.0.0.GA planned for July

First scope for jBPM 4 is jBPM 3 functionality

Then

Improved node pluggability (easy extension)

More integrated language coverage

jBPM Roadmap jBPM 4.0.0.Alpha1 released on time Deadlines fixed 4.0.0.GA minimal scope jBPM 3 1 January 1 March 1 May 1 July 1 September 1 April 1 June 4.0.0.Alpha1 4.0.0.Alpha2 4.0.0.Beta1 4.0.0.Beta2 4.0.0.CR1 4.0.0.GA

jBPM 4.0.0.Alpha1 released on time

Deadlines fixed

4.0.0.GA minimal scope jBPM 3

jBPM Improvements QA : From Community To Our Lab

QA : From Community To Our Lab

jBPM Improvements Documentation User guide Developer guide API Basic usage Stable Supported Advanced pluggability Separated Easier to get started

Documentation

User guide

Developer guide

API

Basic usage

Stable

Supported

Advanced pluggability

Separated

Easier to get started

jBPM Improvements DB evolution More flexibility inbetween minor releases Process language partitioning Simplifications Performance improvements

DB evolution

More flexibility inbetween minor releases

Process language partitioning

Simplifications

Performance improvements

Designer

Console

Console

Q&A

Execution Modes

Execution Modes Processes Executions History JVM BPM Engine (1) Persistent Dynamic

Execution Modes Executions History JVM BPM Engine Process Resources (2) Persistent Process resource

Execution Modes Executions History JVM BPM Engine Process Resources (3) Persistent Embedded Referenced INSURANCE_CLAIMS ID … STATE …

Execution Modes History JVM BPM Engine Process Resources (4) Persistent Embedded Included “ review” INSURANCE_CLAIMS ID … STATE …

Execution Modes History JVM BPM Engine Process Resources Execution Objects (5) Memory With Persistent History

Execution Modes JVM BPM Engine Process Resources Execution Objects (6) Memory

Process Concurrency

Add a comment

Related presentations

Related pages

jBPM 4 BeJUG Event March 20 2009 - Technology

1.JBoss jBPM . Business Process Management . BPM as a discipline . BPM as software engineering . Embeddability . Modelling . jBPM Key Values . Status & Roadmap
Read more

Presentation Bejug March 2009 - Technology - documents

Share Presentation Bejug March 2009. ... jBPM 4 BeJUG Event March 20 2009. Telemetry Customer Presentation March 2009. Networking presentation 9 march 2009.
Read more

Tom Baeyens - HubSlide

Sneak Preview of jBPM 4 at JAX conference ... jBPM 4 BeJUG Event March 20 2009 An introduction to jBPM 4 months ago. Economy & Finance. jBPM Community Day: ...
Read more

4 March 2009 - Documents - docslide.us

4 March 2009. www.watersupplyproject-dublinregion.ie ... (2031) Leakage - 43% (1997) 30% (2008) 20% (2031 ...
Read more

March 20, 2009 - Documents

Share March 20, 2009. Embed ...
Read more

Mca Presentation March 20, 2009 - Documents

Mca Presentation March 20, 2009. by kitasoo. on Dec 05, 2014 ...
Read more

Ip For Non Lawyers March 4, 2009 - Documents

Ip For Non Lawyers March 4, 2009; of 25
Read more

BeJUG JAX-RS Event - Documents - docslide.us

Share BeJUG JAX-RS Event. ... Core REST principles 1. Addressability 2. Connectedness 3. Uniform Interface 4. Representations 5. Statelessness ...
Read more