jbpm 4 bejug event march 20 2009

Download jBPM 4 BeJUG Event March 20 2009

If you can't read please download the document

Upload: tom-baeyens

Post on 10-May-2015

3.190 views

Category:

Technology


4 download

DESCRIPTION

An introduction to jBPM

TRANSCRIPT

  • 1.JBoss jBPM
    • Business Process Management
    • BPM as a discipline
    • BPM as software engineering
  • Embeddability
  • Modelling
  • jBPM Key Values
  • Status & Roadmap

2. Tom Baeyens

  • Lead and founder of JBoss jBPM
  • Consulting for numerous BPM projects
  • Bringing BPM mainstream
  • Articles
    • InfoQ, TSS, Dzone, OnJava,
  • Blogs
    • http://processdevelopments.blogspot.com/
  • Talks
    • JavaOne, JBossWorld, JAOO, TSS,

3. BPM as a Discipline

  • Management discipline
  • They all seem very busy
  • Non technical
  • People to people
    • What, not how
    • Can be vague
    • Unrelated to software architecture
  • Often include diagrams

4. BPM as Software Engineering

  • Aspect of software expressed as a graph
  • Specifies execution flow
  • BPMS runs process executions
  • Its software
    • DSL
    • Execute on one system
    • Central dispatcher
    • Multiple participants
    • Wait states

5. Traditional BPM Vendors

  • Stack Integrators
    • Oracle, IBM, SAP
    • BPEL is integration technology
    • Atomic operation is WSDL service invocations
    • Service orchestration as solution for BPM ?
      • Lost of tooling required to hide clumsy basics
  • Pure plays
    • Top down
      • Automagical
    • BPM Suite has its own software architecture
      • Doesnt embed within users software architecture
      • Monolithic server
      • Hard to integrate

6. jBPM !

  • Bottom Up
    • No magic
  • Server or embedded
    • Not monolithic
    • Just a library
  • Freedom
    • Use the most appropriate tech
      • Java, groovy, web services, SQL
    • Java excellent dispatcher technology

7. jBPMs Modelling Advantage

  • Typical user story
    • Order entry
  • Business person goes
    • Click on the button in the screen
    • Clerk gets an email
    • Escalate if it takes too long
  • Developer goes
    • GWT gives me browser
    • RESTfull webservice communication with server
    • SEAM can invoke my ejb 3 beans
    • EJB 3 beans have required transaction demarcation
    • SEAM integrates with my business process layer
    • Sending email must be done asynchronous

8. jBPMs Modelling Advantage

  • No forced link between graph and transaction
    • Embeddable
    • Flexible transaction demarcation
  • Hidden event listeners

9. jBPMs Modelling Advantage Your App Your Architecture jBPM Business Analyst Developer 10. jBPMs Modelling Advantage Your App Your Architecture jBPM Business Analyst Developer 11. jBPMs Embeddable Advantage

  • Structure your software
  • Software is a combination of
    • Process
    • Domain model
    • UI
  • Process inside your architecture
    • Binds to users transaction (JEE, JSE, SEAM, Spring,)
    • Stores data in users database
    • Links to domain model objects
    • Test inside users test suite

12. jBPMs Embeddable Advantage

  • E.g. plain webapp
    • Spring, hibernate
    • Deployed on Tomcat
  • jBPM has Job executor
    • Transactional timers
    • Asynchronous continuations

Transaction 1 Transaction 2 13. jBPMs Embeddable Advantage

  • Works with plain Java code
  • High level asynchronous transactional modelling
    • Standard Javathanks to jobexecutor
    • Enterprise Javawithout deployment descriptor hell
    • Seam
    • Spring

14. jBPMs Use Cases

  • Orchestrating Human Tasks
  • Transactional Script
    • EJB orchestration
    • Service orchestration
  • Pageflow

15.

  • < process name = "TaskCandidateGroups" >
  • < start >
  • < transition to = "review" />
  • start >
  • < task name = "review"
  • candidate-users = "johndoe, joesmoe" >
  • < transition to = "wait" />
  • task >
  • < state name = "wait"/>
  • process >

16.

        • deployJpdlResource(
        • /process.jpdl.xml
        • );
  • Execution execution = executionService
  • .startProcessInstanceByKey( "TaskCandidates" );
  • String executionId = execution.getId();
  • List taskList =
  • taskService.getGroupTaskList( "johndoe" , 0, 10);
  • assertEquals(1, taskList.size());
  • Task task = taskList.get(0);
  • assertEquals( "review" , task.getName());
  • taskList =
  • taskService.getGroupTaskList( "joesmoe" , 0, 10);
  • assertEquals(1, taskList.size());
  • task = taskList.get(0);
  • assertEquals( "review" , task.getName());

17. Multiple Process Languages 18. jBPM Key Business Values

  • Step away from
    • Business analysts can work with our tool :-)
  • Real bridge
    • Based on good communication
    • Leaves tech things with developers
    • Creates a common language
  • First generally applicable solution forBPM as a discipline

19. jBPM Key Technical Values

  • No hokus pokus
  • Take away the TX plumbing
  • Structure software
    • Get overview beyond transactions
  • Learn 1 workflow/BPM technology
    • Leverage that knowledge investment it in all your projects
    • The one-stop-shop argument
  • Simple & lightweight

20. jBPM Evolution

  • jBPM 1
  • EJB state machine
  • jBPM 2
  • Std Java Embeddable
  • Hibernate state machine
  • jBPM 3
  • First Activity Pluggability
  • First Multiple Languages
  • First Enterprise Embeddability
  • jBPM 4
  • Activity Pluggability API
  • Command Based Services
  • Multiple Languages
  • Many Execution modes
  • DB Partitioning
  • DB Evolution
  • Full Embeddability

Product Project 21. Current Status

  • jBPM 3.2.6
    • Stable
    • Productization being finished
  • jBPM 4.0.0.Alpha2 is released
  • jBPM 4.0.0.GA planned for July
  • First scope for jBPM 4 is jBPM 3 functionality
  • Then
    • Improved node pluggability (easy extension)
    • More integrated language coverage

22. jBPM Roadmap

  • jBPM 4.0.0.Alpha1 released on time
  • Deadlines fixed
  • 4.0.0.GA minimal scope jBPM 3

1 January 1 March 1 May 1 July 1 September 1 April 1 June 4.0.0.Alpha1 4.0.0.Alpha2 4.0.0.Beta1 4.0.0.Beta2 4.0.0.CR1 4.0.0.GA 23. jBPM Improvements

  • QA : From Community To Our Lab

24. jBPM Improvements

  • Documentation
    • User guide
    • Developer guide
  • API
    • Basic usage
    • Stable
    • Supported
  • Advanced pluggability
    • Separated
    • Easier to get started

25. jBPM Improvements

  • DB evolution
    • More flexibility inbetween minor releases
    • Process language partitioning
    • Simplifications
    • Performance improvements

26. Designer 27. Console 28. Console 29. Q&A 30. Execution Modes 31. Execution Modes Processes Executions History JVM BPM Engine (1) PersistentDynamic 32. Execution Modes Executions History JVM BPM Engine Process Resources (2) PersistentProcess resource 33. Execution Modes Executions History JVM BPM Engine Process Resources (3) Persistent Embedded Referenced INSURANCE_CLAIMS ID STATE 34. Execution Modes History JVM BPM Engine Process Resources (4) Persistent Embedded Included review INSURANCE_CLAIMS ID STATE 35. Execution Modes History JVM BPM Engine Process Resources Execution Objects (5) Memory With Persistent History 36. Execution Modes JVM BPM Engine Process Resources Execution Objects (6) Memory 37. Process Concurrency