Your SlideShare is downloading. ×
0
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
JBUG.Jbpm.2009
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

JBUG.Jbpm.2009

653

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
653
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • This shows the client API Indicate the transactions
  • This shows the client API Indicate the transactions
  • This shows the client API Indicate the transactions
  • Transcript

    • 1. jBPM 4 Tom Baeyens JBoss, Red Hat
    • 2. Agenda
      • What is jBPM
      • jBPM 4 Goals
      • jBPM 4 Use Cases
    • 3. 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,…
    • 4. What is jBPM
      • Business Process Management
        • BPM as a discipline
        • BPM as software engineering
      • jBPM
        • BPM for Java Developer
        • Manage task lists for people
        • Orchestrate POJO code
        • Transactional state machine library
        • Graphical
    • 5. What is jBPM Your App Your Architecture jBPM
    • 6. What is jBPM
      • Model process
        • Declare tasks
        • Bind to your POJO Java code
      • Decorate
        • Asynchronous continuations
        • Timers
    • 7. jBPM 4 Goals
      • Improve supportability
      • Grow to next level of adoption
      • Raise 'ability to execute'
      • Implementation improvements
    • 8. Improve Supportability
      • Separation between normal usage from bleeding edge usage
        • public API vs internal packages
        • Userguide vs devguide
      • More stable database / process definition caching
        • Migration between 4.x releases (plan)
      • Automatic JBoss installation
        • No messing with configs and libs
        • Tested configurations
    • 9. Improve Supportability
      • Continuous integration
        • Ability to reproduce bugs
        • Collect community knowledge in test suite
          • Ability to keep improving over longer time
          • Longer lifespan of jBPM 4
      • Config import system
        • Less error prone
        • Imports for hibernate tx, jta tx, spring tx
        • Allows for default updates in default imports
    • 10. Grow to Next Level of Adoption
      • Lowering the treshold to get started
        • Simpler API
          • Split normal usage from bleeding edge
          • API based queries
        • Better container and app pluggability
      • Much! improved docs
      • Examples
      • Automatic installations
        • Remove need for messing on your own
      • Easier configuration abstraction through imports
    • 11. Increase ‘Ability to Execute'
      • Historical data separated from runtime data
        • Queryable history information
        • Keeps runtime data healthy
      • Improved transaction mappings
      • Proper handling of timers and external triggers
      • More stable database
        • DB data migration becomes possible
      • Improved job executor
    • 12. Implementation Improvements
      • Improved pluggable architecture
        • Changed composition to inheritence. 
        • Direct variable access
      • Interfaces for activity implementations 
        • Only exposing the methods that can be invoked.
      • Changed recursion with iteration
        • Dealing with automatic long loops.
    • 13. Use Case 1: Rapid Prototyping
      • Model the process
      • Include tasks
      • Generate forms
      • Deploy
      • Show live demo
    • 14. Use Cases 2: Transactional Script
      • Model the script process
      • Delegate activities
        • To POJO user code
        • EJBeans
        • SEAM beans
      • Demarcate
        • Asynchonous continuations
        • Timers
      • Update control flow
        • Hot redeploy
        • Changed logic
    • 15. Use Cases 3: Pageflow
      • Pages are activities
      • Navigations are transitions
      • Persistence in HTTP session
      • SEAM
    • 16. jPDL Activities
      • Control flow
        • transition
        • start
        • end
        • end-cancel
        • end-error
        • decision
        • fork
        • join
        • super-state
        • sub-process
      • Functional
        • state
        • sub-process
        • task
        • java
        • script
        • esb
        • hql
        • sql
    • 17. jPDL Features
      • Lots of functional activities
        • mail, java, esb, task,…
      • Concurrency
      • Event listeners
      • Timers
      • Asynchronous continuations
      • Transactional exception handlers
    • 18. State Choice
    • 19. State Choice
      • < process name = &quot;StateChoice&quot; >
      • < start >
      • < transition to = &quot;wait for response&quot; />
      • </ start >
      • < state name = &quot;wait for response&quot; >
      • < transition name = &quot;accept&quot; to = &quot;submit document&quot; />
      • < transition name = &quot;reject&quot; to = &quot;try again&quot; />
      • </ state >
      • < state name = &quot;submit document&quot; />
      • < state name = &quot;try again&quot; />
      • </ process >
    • 20. State Choice
      • // create a configuration
      • Configuration configuration = new Configuration();
      • // build a process engine from a configuration
      • ProcessEngine processEngine = configuration.buildProcessEngine();
      • // Obtain the services from the process engine
      • // ProcessEngine and Services are to be used as singletons.
      • // ( ie they are threadsafe )
      • RepositoryService repositoryService = processEngine.getRepositoryService();
      • ExecutionService executionService = processEngine.getExecutionService();
      • TaskService taskService = processEngine.getTaskService();
    • 21. State Choice
      • repositoryService .createDeployment()
      • .addResourceFromClasspath(
      • &quot;org/jbpm/examples/state/choice/process.jpdl.xml“ )
      • .deploy();
    • 22. State Choice
      • ProcessInstance processInstance = executionService
      • .startProcessInstanceByKey( &quot;StateChoice&quot; );
      • String executionId = processInstance
      • .findActiveExecutionIn( &quot;wait for response&quot; )
      • .getId();
      • processInstance = executionService
      • .signalExecutionById(executionId, &quot;accept&quot; );
      • assertEquals( &quot;submit document&quot; ,
      • processInstance.getActivityName());
    • 23. Designer
    • 24. Console
    • 25. Conclusion
      • jBPM provides overview of application
        • External triggers
        • Wait states
        • Business view
      • jBPM adds a layer on top of TX basics
        • Transactional timers
        • Asynchronous messages
      • Integrates with
        • Standard & Enterprise Java
        • JBoss and other app servers
        • SEAM
        • Spring
    • 26. Q&A
    • 27. Process Concurrency

    ×