2010 06-b2b bypracticesummit

Post on 26-Jan-2015

2.386 views 0 download

description

First Activiti presentation given at B2B by practice summit on June 17th 2010

Transcript of 2010 06-b2b bypracticesummit

Consolidating the BPM market

Agenda What is Business Process Management? What is Activiti? What can Activiti do for you?– As a business person– As a developer– As system admin

What is BPM? Management discipline Software engineering

BPM As A Management Discipline Make your company more efficient Analysing Documenting Optimising Business processes

What do you need for BPMAAMD? Many tools– Napkin, Whiteboard, Word, Excel,…

Many model types Process modeling– Good BPMN drawing– Descriptions– Notes– Versioning– Collaboration

BPM As Software Engineering Draw execution flow in a tool Decorate diagram with technical details Run process on BPMS BPMS – Keeps track of state– Acts as central coordinator– Executes automatic pieces

Essentially a state machine

What do you need for BPMASE? Runtime engine– Executable processes as input– Coordinates executions– Keeps track of state

Getting it wrong Typical product

– We can start from a business level diagram– And then execute it on a system

So many hidden options– Notation vs execution language– General purpose complex language– Specific simple language– Context

• Web services / SOA / ESB• Java • ECM• Human tasks

Result– Graphical programming for business analysts– A lot of niche products– Fragmentation

Activiti’s pragmatical approach Business people don’t write software Executable processes – Combines diagram and tech details– It’s software– Under control of developers – Inside software project

Facilitate collaboration– Diagram provides common language– Level of business people

An example

var a = 1;

a = a + 1;

println(a);

Deploy the executable process

var a = 1;

a = a + 1;

println(a);

BPMS Runtime Engine

Start a new process instance

BPMS Runtime EnginestartProcessInstance

var a = 1;

a = a + 1;

println(a);

BPMS as the central coordinator

A human task activity Create entry in task list Wait– Store state in DB

When task completes– Send event to process instance– Process instance continues

var a = 1;

approve

println(a);

A human task activity

BPMS Runtime Engine

var a = 1;

approve

println(a);

startProcessInstance

event

Tasklist Manager

ProcessInstance

John Doe | Approve

State machines and transactions BPMS acts as coordinator External actor means wait state for BPMS

Examples– Human tasks– Webservice principle: “I’ll call you back”– Wait for arrival of some asynchronous message

Approve

State machines and transactions Upon arrival of execution in wait state– Store current execution state • Position• Context variables

– Commit transaction While waiting– No blocked threads / resources

Upon resume– Load execution from DB– Continue executing

Timers Create a timer when activity is entered Cancel timer when activity is left Fire timer when duedate arrives

approve

escalate

Asynchronous Continuations

pdf-g

Transaction 1 Transaction 2

JobExecutor

Transactional Control Flow Specify overal execution flow Analyse where the external triggers are Activiti wil juggle with – Execution state– Timers– Messages

And call your POJO beans where needed

BPMS DB contents Process definitions repository– Versioned

Process instances– Runtime state

History– Statistics

A Process

An Execution

Execution

History

HISTORY_PROCESS_INSTANCE

ID START END …PROCESS

HISTORY_ACTIVITY_INSTANCE

ID START END …HPI ACTIVITY

2 09:391 Check Credit09:39

3 09:421 Accept Quote09:42

4 10:031 Charge Customer10:0310:04

10:041 09:38Order-1

1 09:381 Calculate Quote

History

What is Activiti New project created by Alfresco BPMN 2.0 BPMS Lead by jBPM founders Apache license Run as independent project

Who’s behind Activiti Alfresco SpringSource Camunda Signavio Next Level Integration Mimacom MuleSoft

jBPM

Activiti

Your Application

Embedded BPM

BPMS History Your domain model

Tasklist ManagerBPMS Runtime Engine

Bring BPM to where it’s used

Activiti Engine

EnterpriseApps CloudECM

Activiti is a complete BPM Suite Activiti Engine– Process repository– Process instances runtime state– Process execution history– Identity component– Tasklist component

Activiti Probe Activiti Explorer Activiti Cycle

Activiti Explorer End user

task list Manage my

tasks Execute

workflows

Activiti Probe

Management console for sys admins

Manage deployments

Manage versioning

See deployed process sources

View database tables

Activiti Modeler

Activiti branded and powered by Signavio

Browser-based design and control tools

Targetted at Business Analysts

Easy to use AJAX tools

Customized file based model repository

Easy scripting

Activiti Cycle

Process In The Dev Cycle

DeveloperAnalyst Sys Admin

ModelRepo

Alfresco SVN MVN Tomcat Activiti

Activiti Cycle (Mockup)

Q&A