1. BPM with Bonita Open Solution Anthony Birembaut @alpesjug, February 22nd, 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 generate a web application? Under the hood How to develop connectors? Use theexecutionengine's API
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 theexecutionengine's API
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.
13. 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
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 theexecutionengine's API
16. A Business Process Management System (BPMS) is… a set of software tools to implement Business Process Management in an organization
17. 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
18. 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.
19. BPMS and continuous improvement Open the doors towards monitoring, reporting, business intelligence, simulation...
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 theexecutionengine's API
21. 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
25. 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 theexecutionengine's API
26. 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.
27. Process based web applications Software Main steps Process design BPM Solution Information System Connectivity Web Application development Web framework
28. How to develop a process based web application ? PageFlow and GUI Web Application BPM Interface BPM API BPM Execution Engine
29. 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
30. How could we go further ? Generic graphical interface for processes Process based web applications generation
31. Generic graphical interface for processes BPM Portal Process 1 Process 2 Process n BPM API BPM Execution Engine
32. 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 theexecutionengine's API
33. Bonita in a nutshell 2001 – 2003: v1 2003-2009: Bonita v2, v3 and v4 Since 2009: Bonita Open Solution 5...
34. 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
35. What is Bonita Open Solution? Bonita Studio Bonita User Experience run your application draw and connect manage your processes Bonita Execution Engine
36. 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
37. Architecture: big picture Users Connec t o r s 3rd Party Information System Bonita User Experience Bonita Applications Your App Mail DB Bonita Engine LDAP … DB
38. 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 theexecutionengine's API
41. 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 theexecutionengine's API
45. 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 theexecutionengine's API
46. Runtime Architecture Users App1 App2 User Experience Forms server BAM BI Users Management Tasks management Process Management API Process engine Connectors 3rd Party Services container … Transaction History Journal LDR Identity
47. 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.
48. 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
49. 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 (PHP, Python...) bonita-server.jar bonita-server.jar HTTP
51. 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
52. User XP Is based on GWT Provides a modular UI easy to customize Supports BIRT and JasperReports
53. 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
54. 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 theexecutionengine's API
56. 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 theexecutionengine's API
57. 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)
58. 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)
59. BOS Engine: the API http://www.bonitasoft.org/blog/tutorial/building-your-applications-with-bonita-runtime-part-1/
60. Product development -Roadmap & Tracking Bonita Open Solution development follows Scrum methodology: Sprints & Roadmap Rigorous usage of a tracker Backlogs & Burn-down chart