Explain the definition of BPM and Bonita Open Solution, as well as it's powerful functionality
Size: 3.48 MB
Language: en
Added: Feb 23, 2011
Slides: 58 pages
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