Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Bonita J2EE Workflow Cooperative System Miguel Valdés Faura JIAP Project 09/12/2003."— 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 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 Edition Modification Edition Review Mofification Edition Review Modification... Process Execution (1) (2) Anticipating Anticipable Executing Review

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 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 Hooks

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 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) Hooks Implementation

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 Powerful and easy integration that will enable more efficient business processes. You will easily integrate your software with other pieces of software. No need to worry about how each Web Service is implemented.

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

39 Bonita Web Services Architecture Bonita Third Generation Workflow Architecture based on Web Services. Server-Side Business Logic Struts Server-Side Presentation Web Services Client-Side Presentation Workflow information Bonita Database MySQL Postgres Oracle  Bonita Definition component  Bonita Execution component  Web environment to define and control the workflow process

40 100% browser-based environment We can use external Web Services and also publish Workflow Web Services. HTTP Request sent to SOAP server HTTP Response from SOAP server HTTP Encoding/ Decoding SOAP Serialization/ De-serialization SOAP Package XML Method Call Local Interfaces HTTP View generation XML Java Parser Bonita Struts Framework Web Server Business Partner Server Business Partner Service API (XML/SOAP) Bonita 100% Browser-based Bonita & 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 The XML code returned to the client. NodeLightValue state id creatoridname email role idnamedescription … node12 toxic@loria.fradminThe admin roleadmin 1 2 2 Bonita Web Services Sample

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

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

48

49 Agenda Bonita project introduction Basic organisation Awareness Advanced features Web services Bonita integration Current work

50 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

51 Current work Short term –Completion of MultiInstanction implementation –Integration in the LibreSource platform –New workflow administration web interface. –Hook editor –Import XPDL workflow files. Middle term –XPDL workflow model –Web Services orchestration: BPEL4WS –...

52 XPDL Standard Variety of different tools exists to define workflow processes XPDL defines a common interchange format: – transfer workflow process definitions between different products Separation between the development and run- time environments

53 Bonita & XPDL Standard Jawe Definition Client XPDL representation Bonita Definition Client

54 http://bonita.debian-sf.objectweb.org/ Bonita Home Page


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

Similar presentations


Ads by Google