BPM with Bonita Open Solution @AlpesJUG

2,927 views 58 slides Feb 23, 2011
Slide 1
Slide 1 of 58
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58

About This Presentation

Explain the definition of BPM and Bonita Open Solution, as well as it's powerful functionality


Slide Content

BPM with Bonita Open Solution Anthony Birembaut @alpesjug, February 22 nd , 2011

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

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

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.

Processes are everywhere... Marketing and sales Customer relations Human resources Communications Internal policies and procedures Manufacturing R&D

Business Process Management (BPM) is… a set of tools and methodologies to model , automate , monitor and optimize the processes of an organization

Process lifecycle: continuous improvement

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

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

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

A Business Process Management System (BPMS) is… a set of software tools to implement Business Process Management in an organization

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

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.

BPMS and continuous improvement Open the doors towards monitoring, reporting, business intelligence, simulation...

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

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

BPMN samples BPMN defines...

BPMN samples

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

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.

Process based web applications Process design Information System Connectivity Web Application development Web framework BPM Solution Software Main steps

How to develop a process based web application ? BPM Execution Engine Web Application PageFlow and GUI BPM API BPM Interface

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

How could we go further ? Generic graphical interface for processes Process based web applications generation

Generic graphical interface for processes BPM Execution Engine BPM Portal BPM API Process 1 Process 2 Process n

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

Bonita in a nutshell 2003-2009: Bonita v2, v3 and v4 Since 2009: Bonita Open Solution 5... 2001 – 2003: v1

Bonita Open Solution Version 5.4 available since January the 27 th Very active community (3500+ members) 500.000 downloads since the creation of the project GPL license for the studio LGPL for the execution engine and the web applications http://www.bonitasoft.com/products/BPM_download.php

What is Bonita Open Solution? Bonita Execution Engine Bonita Studio Bonita User Experience draw and connect run your application manage your processes

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

Architecture: big picture Bonita Engine Bonita User Experience Bonita Applications Connec t o r s Users 3 rd Party Information System Mail … DB LDAP Your App DB

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

Demo Process modeling

Demo Run

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

Demo Customize your end user's forms

Demo Generate an application from your process

Demo User Experience – as easy as email

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

Runtime Architecture … Transaction History Journal LDR Identity Services container Process engine API Forms server App1 App2 BAM BI Users Management Tasks management Process Management User Experience Connectors 3rd Party Users

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.

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

BOS Engine BOS Engine can be accessed locally or remotely with Java, using the same code Local Application bonita-server.jar Remote Java Client bonita-client.jar EJB JAXRS HTTP Client (PHP, Python...) Server bonita-server.jar HTTP

Bonita Studio

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

User XP Is based on GWT Provides a modular UI easy to customize Supports BIRT and JasperReports

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

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

Demo Connect There is a connector for that...

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

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 )

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 )

http://www.bonitasoft.org/blog/tutorial/building-your-applications-with-bonita-runtime-part-1/ BOS Engine: the API

Product development - Roadmap & Tracking Bonita Open Solution development follows Scrum methodology: Sprints & Roadmap Rigorous usage of a tracker Backlogs & Burn-down chart

Product development - Continuous Integration ~2300 tests for each platform

Questions?

[email protected] @a_birembaut on http://www.bonitasoft.com @bonitasoft on http://www.youtube.com/bonitasoft on http://www.slideshare.net/bonitasoft on Contact