Download
bonita n.
Skip this Video
Loading SlideShow in 5 Seconds..
Bonita PowerPoint Presentation

Bonita

269 Vues Download Presentation
Télécharger la présentation

Bonita

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Bonita J2EE Workflow Cooperative System Miguel Valdés Faura JIAP Project 09/12/2003

  2. Agenda • Bonita project introduction • Basic organisation • Awareness • Advanced features • Web services • Bonita integration • Current work

  3. Bonita Project • Flexible Cooperative Workflow System • Bonita is integrated in the ObjectWeb Consortium (Open Source Middleware). • Bonita is Open Source and is downloadable in LGPL License. • Bonita uses new JOnAS 3.3.1 version.

  4. Short History • Started in 2000 inside the Motu Cooperative plateforme • June 2001 • Beginning of development of version 1 • Ejb 1.1 • June 2002 • Development of version 2 • Ejb 2.0, CMP • June 2003 • Integration in the libresource platform • Port to Jonas

  5. Context (1) • Types of workflow • Production • Administrative • Ad-hoc • Cooperative • Workflow Management System that allows coordination in a cooperative project • co-engineer, co-conception...

  6. Edition Correction Edition Merge Comments Review Correction Edition Context (2) • Existing Workflows • Isolation execution • Sequential execution • Rigid model

  7. Context (3) • Bonita offers a new workflow execution model: • Execution flexibility based on activity anticipation. • Interchange data flexibility Process ... Edition Review Modification Execution (1) Edition Review Mofification Anticipable Edition (2) Review Anticipating Modification Executing

  8. Objectives of Bonita Supporting collaborative processes • Long running activities • Distributed teams coordination • Awareness • Provide a WF engine • Simple • Dynamic • Flexible

  9. Bonita J2EE Application • EJB 2.x compliant and xdoclet code generation engine. • User Authentication by Login Modules • JMS notification module • Web Interface with Struts framework, JSP and JSTL pages • Different databases MySQL, Postgres... • J2EE Workflow Web Services • ...

  10. The basics • Process • Activities (or nodes) • Edges • Users • Roles • External events

  11. Process • A process is the description of • a set of tasks or activities • the dependencies between tasks • a set of roles • a set of users participating to the process • the relationship between roles and tasks • the relationships between user and roles

  12. Activities • Activities are used • To represent tasks that have to be executed • To express synchronisation conditions • AND-JOIN, OR-JOIN • To express execution conditions • Automatic, Traditional, Anticipable • Activities have • A role • A deadline • A state (initial, ready, anticipable, executing, anticipating, dead, terminated,…)

  13. Edges • Edge are used to represent control flow dependencies between activities • Edge have • A state (initial, active, dead) • A condition • Expressed as BeanShell script • Evaluated when the edge becomes active • Edge are also used for basic data flow

  14. Agenda • Bonita project introduction • Basic organisation • Awareness • Advanced features • Web services • Bonita integration • Current work

  15. Basic Organisation • ProcessSessionBean • Provides the Process Instantiation API • UserSessionBean • Provides the user API to • get information on Todo list and started activities • produce events on activities (start, terminate, ...) • EngineBean • Hidden to user • Provides the execution engine. Manage process states and process changes • API are also available as Web Services

  16. ProcessSession Bean • A process session bean provides the interface for • Creation of the process • Definition of nodes and edges • Modifications of properties • A process is enacted immediately.

  17. Process editor • Tool for interactive edition of the process

  18. Process definition • A Web Interface is used for detailled definition

  19. Process execution • Process execution is done by commands • UserSessionBean implements commands and queries • Projects of a user • Todo List • Executing activities • Start/terminate/Cancel commands • Process execution is controlled by a special session bean that implements the state machine (EngineBean)

  20. The activity manager • Client interface for process execution • Provides • User projects • Todo list for a user • Executing activities

  21. Agenda • Bonita project introduction • Basic organisation • Awareness • Advanced features • Web services • Bonita integration • Current work

  22. Awareness (1) • JMS notifications in workflow users definition and visualization • User notifications: • Mail notifications • Jabber notifications

  23. Awareness(2) • The process editor provide a view of the state of the process

  24. Awareness(3) The process editor allows multiple users definition.

  25. Awareness(4) Jabber Notification based in user preferences

  26. Agenda • Bonita project introduction • Basic organisation • Awareness • Advanced features • Web services • Bonita integration • Current work

  27. Advanced features • Anticipation • Runtime process change • Properties • Hooks • Process clone

  28. Anticipation Green activities are anticipable

  29. Process change The process can be changed anytime during its execution

  30. Properties • Properties are data attached to • A process • An activity • Process properties are the global data of the process • Activity properties provide a basic data flow • Implicit propagation along the control flow • Properties can be used in • Activity Scripts • Edge conditions

  31. Hooks • Hooks are used to add automatic behavior to activities for • Integration • Control • Automation • Hook are scripts written in • Tcl, java or beanscript • They are associated to the following events • Before start and after start • Before terminate and after terminate • Executing • On Cancel • On Die

  32. Hooks • Before start and after terminate are executed outside of the activity transactional context • If the before start fails, the activity does not start but does not fail either... it can be retried later. • After start, On execute and before terminate are executed inside the activity transactional context • Failure of one of the hooks makes the activity failed • On Die and On cancel are used to take action in case of activity failure • Recovery, programmatic compensation, instantiation of a compensation process

  33. Process Hook vs Activity Hook • A process hook will be executed for each activity of the process • Allows to specialized the process behavior • An activity hook is executed only for the activities it is attached to • Executing hook can be used for automatic activities

  34. Hooks Implementation • A hook is implemented as a BeanShell script or as a Java class (must be deployed) • The script has access to the current activity bean and to engine bean (change to the process execution status can be done)

  35. Process Clone • Clone is used instead of schema to instantiate processes • A Process clone is an exact copy of an existing process except that • All activity and edge states are reinitialised • Participants to the project are not copied • To use a cloned project the admin has to • set the users • recreate the user/role relationship • No relationship between the copies

  36. Agenda • Bonita project introduction • Basic organisation • Awareness • Advanced features • Web services • Bonita integration • Current work

  37. Web Services • No need to worry about how each Web Service is implemented. • You will easily integrate your software with other pieces of software. • Powerful and easy integration that will enable more efficient business processes.

  38. Business Partner or other system Computer Applets, JWS Applications EJB’s Connectors Servlets Web Services and J2EE Client tier Web Services Technologies RMI IIOP HTTP HTTP View generation XML Parser Web Container JSP, MVC Framework… Web service Container EJB Container SQL Web Services Technologies Proprietary Protocol Back-End Systems Business Partner or other system Existing System ERP System DB

  39. Server-Side Workflowinformation BusinessLogic Web Services Client-Side Presentation MySQL Server-Side Presentation Postgres Struts Oracle BonitaDatabase Bonita Web Services Architecture • Bonita Third Generation Workflow Architecture based on Web Services. • Bonita Definition component • Bonita Execution component • Web environment to define and control the workflow process

  40. SOAP Serialization/ De-serialization HTTP Encoding/ Decoding HTTP Request sent to SOAP server Method Call • Business Partner • Service API • (XML/SOAP) SOAP Package XML HTTP Response from SOAP server Local Interfaces • Business Partner • Server XML Java Parser View generation HTTP Bonita Struts Framework Web Server Bonita 100% Browser-based Bonita & Web Services • 100% browser-based environment • We can use external Web Services and also publish Workflow Web Services.

  41. Integrating Bonita Web Services • Data translation and transformation • Translating the results of the business service into XML • Bonita XML Data Binding Serializer. • XML data binding offers a simpler approach to working with XML • Client Connectivity • Different kinds of clients connect to the web services in a variety of ways: UDDI, WSDL, SOAP, ebXML. • Multiple client views for one web service.

  42. name name state id creator id NodeLightValue name email role description id … node1 2 1 2 toxic@loria.fr admin The admin role admin 2 Bonita Web Services Sample • The XML code returned to the client.

  43. JAXM, JAX/RPC Session Bean XSL/XSLT Castor XML Data Binding JAXR JAXP, JAXB Servlet / JSP s Business Partner or other system Client Request UDDI Registry Bonita Client Connectivity • A particular Bonita Web Service can be adapted to each user view. SOAP and/or ebXML request Register Service in UDDI Registry Locale Service and Service Descriptions (WSDL and/or CPP) Transform XML Web service Container

  44. Agenda • Bonita project introduction • Basic organisation • Awareness • Advanced features • Web services • Bonita integration • Current work

  45. Bonita integration example • Libresource Platform: • A modular platform for cooperative software development • Virtual teams hosting and distributed communities • Data sharing, coordination, awareness, communication http://libresource.loria.fr/

  46. Libresource integration

  47. Agenda • Bonita project introduction • Basic organisation • Awareness • Advanced features • Web services • Bonita integration • Current work

  48. Bonita State • Used in different projects • KVM • Libresource • Coopera • > 5000 downloads at Bonita ObjectWeb site. • Bonita references at: TheServerSide, Apache, Freshmeat, Internet Global Congress... • Stable execution engine