jBPM, open source BPM

Embed Size (px)

Citation preview

PowerPoint Presentation

Kris Verlaenen
jBPM Project LeadJune, 2012

jBPM5: Bringing more Power
to your Business Processes

jBPM,
Open Source BPM

jBPM Overview

jBPM Project

jBPM walkthrough

Roadmap

What is BPM?

A business process is a process that describes
the order in which a series of steps need to be executed,
using a flow chart.

Business Process Management

Why BPM?

Visibility

Monitoring

Higher-level

Continuous improvement

Speed of development

Increased agility

jBPM Project

(Executable) business processeslight-weight, native BPMN2 engine

from embedded to as a service

Entire life cycle

Both developers and business users

Advanced, adaptive processes

Model

Deploy

Execute

Monitor

Life
Cycle

BPM

BusinessAnalyst

Developer

EndUser

SystemAdministrator

RulesYourServicesCore
EngineGuvnorRepositoryEclipse EditorWeb-BasedDesigner

HistoryLog

TaskServicejBPM Console

YourApplication

Core Services

BusinessAnalyst

End User

Developer

Model

Deploy

Execute

Monitor

Key Characteristics

Open-source, lightweight

Native BPMN 2.0

High-level business processes

Business user & developer collaborate

Advanced, adaptive processes

Modularized, pluggable, standards

Advanced, adaptive processes

(One of the) most advanced open-source BPMN2 engine

Adaptive, ad-hoc, dynamic processes

Integration and unification with business rules and complex event processing

jBPM Walkthrough

Core engine

From Workflow to BPM

Extra features

Social, Cloud and Mobile

Core Engine

Core engine is a workflow engine in pure Java

state transitions

lightweight

embeddable

generic, extensible

CoreEngine

Core Engine

KnowledgeBaseStatefulKnowledgeSessionProcessDefinition

ProcessInstance

Java Interface

ProcessRuntime interfacestartProcess(processId)

startProcess(processId, parameters)

signalEvent(type, event)

signalEvent(type, event, instanceId)

abortProcessInstance(instanceId)

getProcessInstance(instanceId)

Java Example

// (1) Create knowledge base and add process definitionKnowledgeBuilder kbuilder = ...kbuilder.add( ..., "sample.bpmn", ResourceType.BPMN2);KnowledgeBase kbase = kbuilder.newKnowledgeBase();// (2) Create new stateful knowledge sessionStatefulKnowledgeSession ksession =
kbase.newStatefulKnowledgeSession();// (3) Start a new process instanceksession.startProcess(com.sample.bpmn.hello);

From Workflow
to BPM

From Workflow to BPM

CoreEngineBPMN2.0XML

BPMN 2.0

System.out.println("Hello World");

System.out.println("Hello World");

jBPM Eclipse Plugin

Developer-focused

Features:Wizards, runtimes, perspective

Graphical editor

Testing and debugging

Service repository, generators

Guvnor integration

Web-based Designer

Business User-focused

FeaturesGraphical Editor

Visual validation

Service repository, generators

Guvnor integration

Based on Oryx DesignerJavaScript, JSON

From Workflow to BPM

CoreEngineBPMN2.0XMLPersistenceTrans-actionsJPAJTA

Persistence and Transactions

Persistence (JPA, pluggable)Runtime persistence

History logging

Services

Transactions (JTA, pluggable)Command-scoped

User-defined

Persistence

Core engine no persistence

Macro transactions

Binary persistence of runtime data

Separation of history information

External servicesusing work items, async

independent task service

startProcess

Task
Service

Tasks

addTask

TaskTaskRuntime1 active d/m/yy hh:mm ...

1 Task1 sales ...

2 Task2 HR ...

Process
EngineProcessInstance

complete

Task
Service

Tasks

complete

TaskTaskRuntime1 active d/m/yy hh:mm ...

1 Task1 sales ...

2 Task2 HR ...

Process
EngineProcessInstance

complete

Task
Service

Tasks

complete

TaskTaskRuntime1 active d/m/yy hh:mm ...

1 Task1 sales ...

2 Task2 HR ...

Process
EngineProcessInstance

From Workflow to BPM

CoreEngineBPMN2.0XMLPersistenceTrans-actionsEventsHistoryLogManagementConsoleBAM

Console

Web-based management

Business user

Features

Process instance management

User task lists / forms

Reporting

Console

GWT

Generic BPM consolejBPM integration code

REST API

One embedded sessionPersistence, history logging

Eclipse BIRT reporting: custom reports

From Workflow to BPM

CoreEngineBPMN2.0XMLPersistenceTrans-actionsEventsIntegrationDomain-specificProcessesHuman TaskServiceESB

Domain-specific Processes

Extend palette with domain-specific, declarative service nodes

define input / output parameters

runtime binding

Domain-specific Processes

Why?Domain-specific

Declarative

High-level

Context-defined

Other examplesHuman task

Java method

WS, Rest

Email, Twitter

FTP, RSS, Jabber

Finder, Exec, Archive

Google Calendar

YOUR SERVICES !

Repository !

Service Repository

Example: Notification

[ [ "name" : "Notification", "parameters" : [ "Message" : new StringDataType(), "From" : new StringDataType(), "To" : new StringDataType(), "Priority" : new StringDataType(), ], "displayName" : "Notification", "icon" : "icons/notification.gif" ]]

[ [ "name" : "Notification", "parameters" : [ "Message" : new StringDataType(), "From" : new StringDataType(), "To" : new StringDataType(), "Priority" : new StringDataType(), ], "displayName" : "Notification", "icon" : "icons/notification.gif" ]]

Example: Notification

class NotificationHandler implements WorkItemHandler { public void executeWorkItem(WorkItem wI, WorkItemManager manager) { String from = (String) wI.getParameter("From"); String to = (String) wI.getParameter("To"); String m = (String) wI.getParameter("Message"); // send email EmailService service = ...; service.sendEmail(from, to, "Notification", m); manager.completeWorkItem(wI.getId(), null); }}

class NotificationHandler implements WorkItemHandler { public void executeWorkItem(WorkItem wI, WorkItemManager manager) { String from = (String) wI.getParameter("From"); String to = (String) wI.getParameter("To"); String m = (String) wI.getParameter("Message"); // send email EmailService service = ...; service.sendEmail(from, to, "Notification", m); manager.completeWorkItem(wI.getId(), null); }}

Human task service

User task

Human task service (WS-HT)

Task lists

Task life cycle

Task clients

Task forms

Human Task Service

Independent, pure Java implementation

Different underlying technologiesLocal

Apache Mina, HornetQ, JMS

I18N, calendar, deadlines, escalation

UserGroupCallback

SwitchYard

SwitchYard BPM component

Lightweight service delivery framework providing full life cycle support for developing, deploying, and managing service-oriented applications

Extra Features

Extra features

Process instance migration

JUnit testing

Spring

OSGi

Migration from jBPM3(/4)

Installer

Out-of-the-box working environment

Sample process

ComponentsEclipse (jBPM + Drools)

Guvnor + Designer

jbpm-console

Services

H2 DB, human task service, history log

Examples

Evaluation

Examples moduleLooping

Multi-instances

Human tasks (including user / group assignment, delegation, forms, etc.)

Process + rules integration

Social, Cloud
and Mobile

Ready for the future?

Traditional BPM systems have problems with change, complexity, flexibility, data-intensive applications, etc.

Adaptive Case Management (ACM)

Unstructured, non-lineair or flexible processes

Event-driven BPM (edBPM)

Motivation

A business solution usually involves the interaction between these technologies.Technology overlap

Business overlap

Attribute the same importance to the three complementary business modeling techniques

Business Logic

Events

Processes

Rules

Example: Build Management

Source: Hudson Execution and Scheduling Architecture

Example: Build Management

Source: Hudson Execution and Scheduling Architecture

New

Facts

Reasoning

Inferred

Facts

K

n

o

w

l

e

d

g

e

B

a

s

e

s

CEP

[

Temporal Reasoning

]

Knowledge Based Reasoning

Spatial Reasoning

Vehicle

Event Stream

Aircraft

Event Stream

Traffic Flow

Event Stream

Traffic Incident

Event Stream

Weather

Event Stream

Shipment

Event Stream

Stop

Event Stream

Logistic Company - Solution

Source: E. Tirelli & A. Mollenkopf - ORF2009

Vision

A knowledge-oriented platform for
developers and business users

Exceptional Control Flow

90%

5%3%2%

Exceptional Control Flow

90%Rule1When...Then...Rule2When...Then...Rule3When...Then...5%3%2%

Example: Clinical DSS

Combining Processes,
Rules and Events

IntegrationFrom loose coupling

To advanced integration

UnificationProcesses and (event) rules are different types of business knowledge assets

Tooling (IDE, repository, management)

JBoss AS 7

Blazingly fast

Lightweight

Module core

jBPM5 on AS7: Lightning !

OpenShift

Based on Open Source

Innovation

Choice

Java, PHP, Ruby, Python, Perl & more

Express, Flex, Power

Amazon EC2

jBPM Everywhere

Run jBPM5 natively on Android

Roadmap

3.0

Feb'11Jun'11Dec'11Apr'12jBPM 5.0

5.1

5.2

5.3

Eclipse DesignerForm Builder

Service repositoryWeb DesignerAS7

ExamplesDocumentationJUnit test

6.x

Common ExecutableSimulationOpenShiftAs a service

5.x

JBoss SOA-P 5

Full Support (3yrs)Transition (1yr)Maintenance (1yr)

JBoss BRMS 5.3

Full Support (3yrs)Transition (1yr)

3

3.2

5

4

6

7

Enterprise versions provide long-term support, regular releases including fixes, new features, and new platforms certifications.

New community features may be backported to Enterprise versions

JBoss Enterprise Product Delivery ModelExample: jBPM Community and Enterprise Product

While community projects continue to rapidly evolve,
enterprise middleware products focus on long term stability.

Enterprise versions provide long-term support, regular releases including fixes, new features, and new platforms certifications.

jBPM Community

Flow

Roadmap: jBPM 5.3

Date: May 21st, 2012

Eclipse Designer

Form Builder

Web Designer

Test and form generators

Eclipse BPMN2 editor

http://eclipse.org/projects/project.php?id=soa.bpmn2-modeler

Eclipse BPMN2 editor

eclipse.org project

Using Eclipse BPMN2 EMF model

Graphical editor for full BPMN2 specification (based on Graphiti)

Target engine + profiles

Custom jBPM editors / extensions

Form Builder

Generate form for process / task

Graphically design process (D&D)

Triggers, validation

Integrated into
Guvnor

Roadmap: jBPM 5.x

Simulation and replay

BPM as a serviceExpose as ...

Session mgmt and HA

Integrate with external services

Cloud

Kris Verlaenen
jBPM Project LeadJune, 2012

jBPM5: Bringing more Power
to your Business Processes

jBPM,
Open Source BPM

Click to edit the title text format