BPM with Bonita Open Solution



Elias Ricken de Medeiros

@dfjug, July 14th, 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 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
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
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
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
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
Process lifecycle: continuous
       improvement




 7/16/11   www.bonitasoft.com | © BonitaSoft S.A.   7
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
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
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
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
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
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
BPMS and continuous improvement

●
    Open the doors towards monitoring, reporting, business
    intelligence, simulation...




         7/16/11   www.bonitasoft.com | © BonitaSoft S.A.   14
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
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
7/16/11   www.bonitasoft.com | © BonitaSoft S.A.   17
BPMN samples




BPMN defines...




          7/16/11   www.bonitasoft.com | © BonitaSoft S.A.   18
BPMN samples




7/16/11   www.bonitasoft.com | © BonitaSoft S.A.   19
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Demo
Process modeling




   7/16/11   www.bonitasoft.com | © BonitaSoft S.A.   34
Demo
Run




  7/16/11   www.bonitasoft.com | © BonitaSoft S.A.   35
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
Demo
Customize your end user's forms




   7/16/11   www.bonitasoft.com | © BonitaSoft S.A.   37
Demo
Generate an application from your process




   7/16/11   www.bonitasoft.com | © BonitaSoft S.A.   38
Demo
User Experience – as easy as email




   7/16/11   www.bonitasoft.com | © BonitaSoft S.A.   39
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
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
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
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
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
Bonita Studio




7/16/11   www.bonitasoft.com | © BonitaSoft S.A.   45
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
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
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
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
Demo
Connect




             There is a connector for that...
   7/16/11     www.bonitasoft.com | © BonitaSoft S.A.   50
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
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
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
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
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
Product development -
            Continuous Integration




●
    ~2300 tests for each platform


       7/16/11   www.bonitasoft.com | © BonitaSoft S.A.   56
Questions?




7/16/11   www.bonitasoft.com | © BonitaSoft S.A.   57
Contact
elias.ricken@bonitasoft.com
@eliasricken on


http://www.bonitasoft.com
@bonitasoft on
http://www.youtube.com/bonitasoft on
http://www.slideshare.net/bonitasoft on

BPM with Bonita Open Solution

  • 1.
    BPM with BonitaOpen 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 processis... ● 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
  • 7.
    Process lifecycle: continuous improvement 7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 7
  • 8.
    Many applications areprocess 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 ProcessManagement 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 continuousimprovement ● 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
  • 18.
    BPMN samples BPMN defines... 7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 18
  • 19.
    BPMN samples 7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 19
  • 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 businessusers) ● 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 webapplications 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 developa 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 thebenefits ? ● 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 wego further ? Generic graphical interface for processes Process based web applications generation 7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 25
  • 26.
    Generic graphical interfacefor 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 anutshell 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 BonitaOpen 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 BonitaOpen 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
  • 34.
    Demo Process modeling 7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 34
  • 35.
    Demo Run 7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 35
  • 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
  • 37.
    Demo Customize your enduser's forms 7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 37
  • 38.
    Demo Generate an applicationfrom your process 7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 38
  • 39.
    Demo User Experience –as easy as email 7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 39
  • 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
  • 45.
    Bonita Studio 7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 45
  • 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: theAPI ● 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: theAPI ● 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: theAPI 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
  • 57.
    Questions? 7/16/11 www.bonitasoft.com | © BonitaSoft S.A. 57
  • 58.