You are on page 1of 45

Awesome Fast Workflow

Joram Barrez
Activiti Core Developer
Activiti?
In a nutshell
Activiti is a lightweight open-source
workow and business process
management (BPM) platform for
natively executing BPMN 2.0 processes
that puts the power in the hands of the
developers
In a nutshell
Activiti is a lightweight open-source
workow and business process
management (BPM) platform for
natively executing BPMN 2.0 processes
that puts the power in the hands of the
developers
Any Java environment
Just a Jar
not an evil/expensive black box server
In a nutshell
Activiti is a lightweight open-source
workow and business process
management (BPM) platform for
natively executing BPMN 2.0 processes
that puts the power in the hands of the
developers
github.com/activiti
Apache license
In a nutshell
Activiti is a lightweight open-source
workow and business process
management (BPM) platform for
natively executing BPMN 2.0 processes
that puts the power in the hands of the
developers
Value
In a nutshell
Activiti is a lightweight open-source
workow and business process
management (BPM) platform for
natively executing BPMN 2.0 processes
that puts the power in the hands of the
developers
In a nutshell
Activiti is a lightweight open-source
workow and business process
management (BPM) platform for
natively executing BPMN 2.0
processes that puts the power in the
hands of the developers
Industry-accepted standard
Species what a certain shape means
Pool of developers/business
analists who speak the same
language
Interoperability
In a nutshell
Activiti is a lightweight open-source
workow and business process
management (BPM) platform for
natively executing BPMN 2.0 processes
that puts the power in the hands of the
developers
(cause they are the most important people in the world)
Overview
BPMN 2.0
Any BPMN 2.0
compliant editor
Or CDI, EJBs, Swing, .... any Java works!
Its not all sunshine and roses
Activiti is great for developers
Integration with Java eco-system
Flexible, customizable & performant
!(black box)
Activiti is not suited for non-tech users ...
BPMN 2.0 learning curve
Learn about deploying processes and related
artifacts
... yet
Can we nd a balance between those two?
Workow in Alfresco today
Workow in Alfresco today
A
B
C
! "#$%&$% (#)&* +#, %-./ 0
! 1#,( "#$+23 +#, %-./ 0
! "#$%&$% (#)&* +#, %-./ 4
! 1#,( "#$+23 +#, %-./ 4
! "#$%&$% (#)&* +#, %-./ 0
! 1#,( "#$+23 +#, %-./ 0
4567 89: ;6<
Describes the properties (type,
constraints, etc.) of a task (XML)
Denes controls for properties +
visualisation (XML)
Denes the ow of steps (XML)
+ forms
Workow in Alfresco today
A
B
C
! "#$%&$% (#)&* +#, %-./ 0
! 1#,( "#$+23 +#, %-./ 0
! "#$%&$% (#)&* +#, %-./ 4
! 1#,( "#$+23 +#, %-./ 4
! "#$%&$% (#)&* +#, %-./ 0
! 1#,( "#$+23 +#, %-./ 0
4567 89: ;6<
Reference through
formKey in
userTask denition
properties
properties
properties
Workow in Alfresco today
A
! "#$%&$% (#)&* +#, %-./ 0
! 1#,( "#$+23 +#, %-./ 0
4567 89: ;6<
Workow in Alfresco today
A
B
C
! "#$%&$% (#)&* +#, %-./ 0
! 1#,( "#$+23 +#, %-./ 0
! "#$%&$% (#)&* +#, %-./ 4
! 1#,( "#$+23 +#, %-./ 4
! "#$%&$% (#)&* +#, %-./ 0
! 1#,( "#$+23 +#, %-./ 0
4567 89: ;6<
Repo
Share
+ Reboot and cross ngers
Workow in Alfresco today
! "#$%&$% (#)&* +#, %-./ 0
! 1#,( "#$+23 +#, %-./ 0
! "#$%&$% (#)&* +#, %-./ 4
! 1#,( "#$+23 +#, %-./ 4
! "#$%&$% (#)&* +#, %-./ 0
! 1#,( "#$+23 +#, %-./ 0
Repo
Share
We can do BETTER!
Dont get me wrong
Current workow in Alfresco
Powerful
Flexible
Customizable
But
Technical
Time-consuming
Introducing Activiti KickStart
Dene workow & its forms through simple UI
No knowledge of BPMN 2.0 needed
No Java skills needed
All (XML) les are generated behind the
scene
But the results should be usable for
advanced customization
The history of KickStart
6 Aug 2010
http://www.jorambarrez.be/blog/2011/01/05/adhoc-workow-with-activiti-kickstart/
(Activiti 5.1)
http://www.jorambarrez.be/blog/2011/08/31/activiti-kickstart-moved-to-github/
(Activiti 5.7)
2 juli 2012
Alfresco 4.x
Now
Demo
Demo Use Case
Sickness
Diagnose
Cure
Prot
Demo Characters
Eric Forman
Dean of Medicine
James Wilson Gregory House
Robert Chase Jessica Adams Chris Taub Chi park
Alfresco group: principal medical sta!
Alfresco group:
diagnostic medicine sta!
Alfresco group:
hospital board
Demo
DIY
https://github.com/jbarrez/Activiti-KickStart
https://github.com/jbarrez/activiti-kickstart-ios
Latest Alfresco Community release
Technically (prototype)
Repo
Activiti
BPMN 2.0 XML
Content model store
Task model XML
KickStart API (REST)
Workflow steps
In json format
JAXB model of
BPMN 2.0 XSD
Task model
XML templates
Share config
XML templates
Steps (json)
Form fields
+ constraints
(json)
Form field
Types (json)
Share
cmis cmis
rest
Real architecture
WF
API
Activiti
B
P
M
N

2
.
0

X
M
L

Content model store
Task model XML
/deploy (json)
DB
SHARE
REPO
Form config store
Form config
cache
Success/failure
R
e
f
r
e
s
h

In a cluster cache refresh
msgs are exchanged (HazelCast)
Mockup
Improvements
Activiti improvements in Alfresco
Performance
http://www.jorambarrez.be/blog/2012/06/28/the-activiti-performance-showdown/
Activiti improvements in Alfresco
Performance
http://www.jorambarrez.be/blog/2012/06/28/the-activiti-performance-showdown/
Activiti improvements in Alfresco
Performance
http://www.jorambarrez.be/blog/2012/06/28/the-activiti-performance-showdown/
Activiti improvements in Alfresco
Performance
http://www.jorambarrez.be/blog/2012/06/28/the-activiti-performance-showdown/
Activiti improvements in Alfresco
Performance
http://www.jorambarrez.be/blog/2012/06/28/the-activiti-performance-showdown/
Activiti improvements in Alfresco
Performance
http://www.jorambarrez.be/blog/2012/06/28/the-activiti-performance-showdown/
Activiti improvements in Alfresco
Asynchronous continuations
N
o
r
m
a
l

t
r
a
n
s
a
c
t
i
o
n
a
l

b
e
h
a
v
i
o
u
r
taskService.complete()
Activiti improvements in Alfresco
Asynchronous continuations
taskService.complete()
activiti:async=true
2 transactions!
job executor
Coping with external
system failures!
Activiti improvements in Alfresco
Signal throw/catch event
Activiti improvements in Alfresco
Message support
Activiti improvements in Alfresco
Compensation
Activiti improvements in Alfresco
Transaction
Activiti improvements in Alfresco
Event subprocesses
The future
Project kickstart
REST API revamp
Dedicated bpmn --> Java converter
External service invocation support
...
Process mining ...
Learn more about Activiti?
http://www.activiti.org/userguide/
http://www.activiti.org
(37% community discount for Activiti in Action. Use promotional code 12aia37)
http://www.manning.com/rademakers2/
http://www.amazon.com/Real-Life-
BPMN-Analyze-Automate-Processes/
dp/1480034983/
Activiti Day Thursday!
http://activiti.org/activiti-day.html

You might also like