Contenu connexe
Similaire à BPM with Bonita Open Solution
Similaire à BPM with Bonita Open Solution (20)
BPM with Bonita Open Solution
- 1. BPM with Bonita Open Solution
Elias Ricken de Medeiros
@dfjug, July 14th, 2011
- 2. Agenda
● What is BPM? Why is this useful?
● What does a BPMS provide?
● What is BPMN?
●
From the process to the application
● What is Bonita Open Solution?
● How to model a process?
● How to generate a web application?
● Under the hood
●
How to develop connectors?
● Use the execution engine's API
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 2
- 3. Agenda
● What is BPM? Why is this useful?
● What does a BPMS provide?
● What is BPMN?
●
From the process to the application
● What is Bonita Open Solution?
● How to model a process?
● How generate a web application?
● Under the hood
●
How to develop connectors?
● Use the execution engine's API
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 3
- 4. A business process is...
● a collection of related, structured activities or
tasks that produce a specific service or product
and have to be executed in a specific sequence.
● It often can be visualized
with a flowchart as a
sequence of activities.
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 4
- 5. Processes are everywhere...
●
Marketing and sales
●
Customer relations
●
Human resources
●
Communications
●
Internal policies and procedures
●
Manufacturing
●
R&D
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 5
- 6. Business Process Management
(BPM) is…
a set of tools and methodologies
to model, automate,
monitor and optimize
the processes of an organization
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 6
- 8. Many applications are process
based
●
BPM should be everywhere in any type of
company
●
BUT ….
It is not the case today
Many processes are hard coded
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 8
- 9. Why ?
●
Because BPM solutions are historically complex to
implement and very expensive
➔
So there are exclusively used by wealthiest companies
for mission critical projects
●
Because it can be tempting to hard code the
processes
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 9
- 10. Agenda
● What is BPM? Why is this useful?
● What does a BPMS provide?
● What is BPMN?
●
From the process to the application
● What is Bonita Open Solution?
● How to model a process?
● How generate a web application?
● Under the hood
●
How to develop connectors?
● Use the execution engine's API
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 10
- 11. A Business Process Management
System (BPMS) is…
a set of software tools
to implement Business Process Management
in an organization
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 11
- 12. BPMS
●
Set of tools to go from Business Process Modeling to
Business Process execution and monitoring.
●
Can include extra BPM features such as process
simulation, or application generation.
●
Helps transforming business logic into something that
can be executed
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 12
- 13. BPMS and agility
●
By uncoupling business logic from technical issues, a
BPMS brings agility to your business.
●
Modify a process =
edit a diagram + redeploy a file
●
Improving business processes is transparent for people
affected by these processes.
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 13
- 14. BPMS and continuous improvement
●
Open the doors towards monitoring, reporting, business
intelligence, simulation...
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 14
- 15. Agenda
● What is BPM? Why is this useful?
● What does a BPMS provide?
● What is BPMN?
●
From the process to the application
● What is Bonita Open Solution?
● How to model a process?
● How generate a web application?
● Under the hood
●
How to develop connectors?
● Use the execution engine's API
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 15
- 16. Business Process Modeling
Notation (BPMN) is…
● A standardized graphical notation for modeling business
processes
● BPMN 2.0 standard released in January 2011
● proposed by the Object Management Group
● contains standard graphical elements
● uses standard semantics
● identifies standard execution
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 16
- 17. 7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 17
- 20. Agenda
● What is BPM? Why is this useful?
● What does a BPMS provide?
● What is BPMN?
●
From the process to the application
● What is Bonita Open Solution?
● How to model a process?
● How generate a web application?
● Under the hood
●
How to develop connectors?
● Use the execution engine's API
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 20
- 21. BPM (for business users)
●
BPM answer to questions such as:
●
“And now, what do I have to do?”
●
“How am I expected to do that?”
●
“What is going on with the things I was involved in?”
●
BPM is all about giving to the end-user the application that
exactly reproduce the way he works with those processes
on a day to day.
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 21
- 22. Process based web applications
Software Main steps
Process design
BPM Solution
Information System Connectivity
Web framework Web Application development
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 22
- 23. How to develop a process based
web application ?
Web Application
PageFlow and GUI
BPM Interface
BPM API
BPM Execution Engine
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 23
- 24. What are the benefits ?
●
Business logic is externalized in a process
●
The BPM solution will manage the life cycle of
the process as well as human and system
interactions
●
Only link between the web application and
the BPM solution is the BPM API
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 24
- 25. How could we go further ?
Generic graphical interface for processes
Process based web applications generation
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 25
- 26. Generic graphical interface for
processes
BPM Portal
Process 1 Process 2 Process n
BPM API
BPM Execution Engine
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 26
- 27. Agenda
● What is BPM? Why is this useful?
● What does a BPMS provide?
● What is BPMN?
●
From the process to the application
● What is Bonita Open Solution?
● How to model a process?
● How generate a web application?
● Under the hood
●
How to develop connectors?
● Use the execution engine's API
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 27
- 28. Bonita in a nutshell
2001 – 2003: v1
2003-2009: Bonita v2, v3 and v4
Since 2009: Bonita Open Solution 5...
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 28
- 29. Bonita Open Solution
●
Version 5.5.1 available since June 30th
●
Very active community (3500+ members)
●
500.000 downloads since the creation of the project
●
Best Modeling Tool 2011
●
GPL license for the studio
●
LGPL for the execution engine and the web applications
●
http://www.bonitasoft.com/products/BPM_download.php
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 29
- 30. What is Bonita Open Solution?
Bonita Studio Bonita User Experience
draw and connect run your application manage your processes
Bonita Execution Engine
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 30
- 31. What is Bonita Open Solution?
●
Bonita Studio
●
model processes
●
connect processes to external information systems
●
design end-user forms
●
Bonita User Experience
●
provides end-user interface for interaction with process
●
allows administrator management of process
●
stand-alone applications
●
Bonita Execution Engine
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 31
- 32. Architecture: big picture
Users
3rd Party
Information
C System
Bonita Bonita User
Your App O
Applications Experience N Mail
N
E DB
C
Bonita Engine T LDAP
O
R
S …
DB
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 32
- 33. Agenda
● What is BPM? Why is this useful?
● What does a BPMS provide?
● What is BPMN?
●
From the process to the application
● What is Bonita Open Solution?
● How to model a process?
● How generate a web application?
● Under the hood
●
How to develop connectors?
● Use the execution engine's API
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 33
- 36. Agenda
● What is BPM? Why is this useful?
● What does a BPMS provide?
● What is BPMN?
●
From the process to the application
● What is Bonita Open Solution?
● How to model a process?
● How generate a web application?
● Under the hood
●
How to develop connectors?
● Use the execution engine's API
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 36
- 40. Agenda
● What is BPM? Why is this useful?
● What does a BPMS provide?
● What is BPMN?
●
From the process to the application
● What is Bonita Open Solution?
● How to model a process?
● How generate a web application?
● Under the hood
●
How to develop connectors?
● Use the execution engine's API
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 40
- 41. Runtime Architecture
Users
App1 App2 User Experience
BAM Users Tasks Process
Forms server BI Management management Management
API
Process engine 3rd
Party
Services container Connectors
Transaction Journal History LDR Identity …
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 41
- 42. BOS Engine
●
Bonita execution Engine can be embedded in
your applications
●
bonita-server and bonita-client are available as
Maven artifacts on repositories
●
It is distributed under LGPL v2.
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 42
- 43. BOS Engine
●
The engine is basically an API to manipulate
processes. (create, instantiate, execute, delete)
●
It deals with persistence of process definitions
and instances, and with execution of the flow.
●
is used for ORM
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 43
- 44. BOS Engine
●
BOS Engine can be accessed locally or remotely with
Java, using the same code
Local Remote
Java Client
Application Server
EJB
JAXRS
bonita-client.jar
HTTP Client
bonita-server.jar bonita-server.jar HTTP (PHP, Python...)
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 44
- 46. Bonita Studio
● Is an Eclipse RCP application. It contains the core of Eclipse,
some other Eclipse projects, and a lot of Bonita specific
plugins.
●
● Relies on Bonita engine for export.
● Imports process in BAR(Bonita archive), BPMN 2, XPDL 1
and jBPM 3
● Exports process in BAR and BMPN 2
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 46
- 47. User XP
●
Is based on GWT
●
Provides a modular UI easy to customize
●
Supports BIRT and JasperReports
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 47
- 48. Process applications
●
The studio exports a forms.xml file that describes the
form.
●
The process application reads this forms.xml build the
form model and render it on the page, using GWT.
●
The UI can be customized using HTML templates
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 48
- 49. Agenda
● What is BPM? Why is this useful?
● What does a BPMS provide?
● What is BPMN?
●
From the process to the application
● What is Bonita Open Solution?
● How to model a process?
● How generate a web application?
● Under the hood
●
How to develop connectors?
● Use the execution engine's API
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 49
- 50. Demo
Connect
There is a connector for that...
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 50
- 51. Agenda
● What is BPM? Why is this useful?
● What does a BPMS provide?
● What is BPMN?
●
From the process to the application
● What is Bonita Open Solution?
● How to model a process?
● How generate a web application?
● Under the hood
●
How to develop connectors?
● Use the execution engine's API
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 51
- 52. BOS Engine: the API
● ManagementAPI
● Operations related to process installation/removal, resources management.
● e.g. deploy(businessArchive), deleteProcess(processUUID), addMetadata(key, value)
● QueryDefinitionAPI
● Query operations related to the ‘Definition’ object model.
● e.g. getProcesses(), getProcess(processUUID), getProcessActivities(processUUID,
activityName)
● RuntimeAPI
● Modification operations related to the ‘Runtime’ object model.
● e.g. executeTask(taskUUID), assignTask(taskUUID, userId),
instantiateProcess(processUUID)
● QueryRuntimeAPI
● Query operations related to the ‘Runtime’ object model.
● e.g. getProcessInstances(), getTaskList(taskState), getVariable(activityInstanceUUID,
variableName)
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 52
- 53. BOS Engine: the API
● RepairAPI
● Advanced administration operations to handle executing process instances that may
be off nominal
● e.g. stopExecution(processInstanceUUID, activityName)
● CommandAPI
● Operations to execute commands available in a given process or in the overall engine
● e.g. execute(command, processUUID), execute(command)
● IdentityAPI
● Operations related to the embedded user module
● e.g. addUser(userName, password), addRole(roleName), getUsers()
● BAMAPI
● Query operations to retrieve statistics from the runtime data
● e.g. getNumberOfOverdueSteps(), getNumberOfOpenStepsPerDay(startDate)
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 53
- 54. BOS Engine: the API
http://www.bonitasoft.org/blog/tutorial/building-your-applications-with-bonita-runtime-part-1/
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 54
- 55. Product development -
Roadmap & Tracking
●
Bonita Open Solution development follows
Scrum methodology:
●
Sprints & Roadmap
●
Rigorous usage of a tracker
●
Backlogs & Burn-down chart
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 55
- 56. Product development -
Continuous Integration
●
~2300 tests for each platform
7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 56