bpm with bonita open solution @alpesjug
DESCRIPTION
Explain the definition of BPM and Bonita Open Solution, as well as it's powerful functionalityTRANSCRIPT
BPM with Bonita Open Solution
Anthony Birembaut
@alpesjug, February 22nd, 2011
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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 generate a web application?
● Under the hood
● How to develop connectors?
● Use the execution engine's API
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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.
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 5
Processes are everywhere...
●Marketing and sales
●Customer relations
●Human resources
●Communications
●Internal policies and procedures
●Manufacturing
●R&D
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 6
Business Process Management (BPM) is…
a set of tools and methodologies
to model, automate, monitor and optimize
the processes of an organization
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 7
Process lifecycle: continuous improvement
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 11
A Business Process Management System (BPMS) is…
a set of software tools
to implement Business Process Management
in an organization
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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.
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 14
BPMS and continuous improvement
●Open the doors towards monitoring, reporting, business intelligence, simulation...
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 17
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 18
BPMN samples
BPMN defines...
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 19
BPMN samples
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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.
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 22
Process based web applications
Process design
Information System Connectivity
Web Application developmentWeb framework
BPM Solution
Software Main steps
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 23
How to develop a process based web application ?
BPM Execution Engine
Web Application PageFlow and GUI
BPM API
BPM Interface
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 25
How could we go further ?
Generic graphical interface for processes
Process based web applications generation
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 26
Generic graphical interface for processes
BPM Execution Engine
BPM Portal
BPM API
Process 1 Process 2 Process n
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 28
Bonita in a nutshell
2003-2009: Bonita v2, v3 and v4
Since 2009: Bonita Open Solution 5...
2001 – 2003: v1
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 29
Bonita Open Solution
● Version 5.4 available since January the 27th
● 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 30
What is Bonita Open Solution?
Bonita Execution Engine
Bonita Studio Bonita User Experiencedraw and connect run your application manage your processes
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 32
Architecture: big picture
Bonita EngineBonita Engine
Bonita User ExperienceBonita User Experience
Bonita Applications
Bonita Applications Co
nnectors
Connectors
UsersUsers3rd Party
Information System
3rd Party Information
System
MailMail
……
DBDB
LDAPLDAP
Your AppYour App
DB
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 34
Demo
Process modeling
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 35
Demo
Run
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 37
Demo
Customize your end user's forms
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 38
Demo
Generate an application from your process
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 39
Demo
User Experience – as easy as email
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 41
Runtime Architecture
…Transaction HistoryJournal LDR Identity
Services container
Process engine
API
Forms server
App1 App2
BAMBI
Users Management
Tasks management
ProcessManagement
User Experience
Connectors3rd
Party
Users
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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.
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 44
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
EJBJAXRS
HTTP Client(PHP, Python...)
Server
bonita-server.jar HTTP
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 45
Bonita Studio
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 47
User XP
●Is based on GWT
●Provides a modular UI easy to customize
●Supports BIRT and JasperReports
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 50
Demo
Connect
There is a connector for that...
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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)
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 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)
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 54
http://www.bonitasoft.org/blog/tutorial/building-your-applications-with-bonita-runtime-part-1/
BOS Engine: the API
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 55
Product development -Roadmap & Tracking
●Bonita Open Solution development follows Scrum methodology:
● Sprints & Roadmap● Rigorous usage of a tracker● Backlogs & Burn-down chart
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 56
Product development -Continuous Integration
● ~2300 tests for each platform
04/11/2023 www.bonitasoft.com | © BonitaSoft S.A. 57
Questions?
@a_birembaut on
http://www.bonitasoft.com@bonitasoft on
http://www.youtube.com/bonitasoft on
http://www.slideshare.net/bonitasoft on
Contact