jBPM Developer Guide

jBPM Developer Guide
eBook: $35.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 45%!
Print + free eBook + free PacktLib access to the book: $95.98    Print cover: $59.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Thoroughly understand how the jBPM framework works
  • Build custom Java Enterprise solutions using the jBPM framework
  • No experience with jBPM required
  • Helpful guidance on converting a business analyst's spec into complete, working software

Book Details

Language : English
Paperback : 372 pages [ 235mm x 191mm ]
Release Date : December 2009
ISBN : 1847195687
ISBN 13 : 9781847195685
Author(s) : Mauricio Salatino
Topics and Technologies : All Books, Enterprise Products and Platforms, Java, JBoss, Open Source

Table of Contents

Chapter 1: Why Developers Need BPM?
Chapter 2: jBPM for Developers
Chapter 3: Setting Up Our Tools
Chapter 4: jPDL Language
Chapter 5: Getting Your Hands Dirty with jPDL
Chapter 6: Persistence
Chapter 7: Human Tasks
Chapter 8: Persistence and Human Tasks in the Real World
Chapter 9: Handling Information
Chapter 10: Going Deeply into the Advanced Features of jPDL
Chapter 11: Advanced Topics in Practice
Chapter 12: Going Enterprise
  • Chapter 1: Why Developers Need BPM?
    • Business Process, why should I know about that?
      • "A sequence of tasks that happen in a repeatable order"
      • "executed by humans and/or systems"
      • "to achieve a business goal"
      • I know what BPs are, but what about the final "M" in BPM?
      • BPM stages
      • BPM stages in a real-life scenario
      • BPM improvements
        • Global understanding of our processes
        • Agile interaction between systems, people, and teams
        • Reduce paperwork
        • Real time process information
        • Process information analysis
        • Statistics and measures about each execution
      • BPM and system integration "history"
    • Some buzzwords that we are going to hear when people talk about BPM
      • Theoretical definitions
        • Integration (system integration)
        • Workflow
        • Service Oriented Architecture (SOA)
        • Orchestration
      • Technological terms
        • Workflow
        • Enterprise Service Bus (ESB)
        • BPEL (WS-BPEL)
    • Business Process Management Systems (BPMS), my tool and your tool from now on
      • BPM systems versus BPM suites
      • Why we really need to know BPM and BPMS, and how do they change/impact on our daily life
      • New approach
      • Homework
    • Summary
  • Chapter 2: jBPM for Developers
    • Graph Oriented Programming
    • Common development process
      • Database model
      • Business logic
      • User interfaces
    • Decoupling processes from our applications
    • Graph Oriented Programming on top of OOP
    • Implementing Graph Oriented Programming on top of the Java language (finally Java code!)
      • Modeling nodes in the object-oriented world
      • Modeling a transition in the object-oriented world
      • Expanding our language
      • Process Definition: a node container
    • Implementing our process definition
      • The Node concept in Java
      • The Transition concept in Java
      • The Definition concept in Java
    • Testing our brand new classes
    • Process execution
    • Wait states versus automatic nodes
      • Asynchronous System Interactions
      • Human tasks
      • Creating the execution concept in Java
    • Homework
    • Creating a simple language
    • Nodes description
      • Stage one
      • Stage two
      • Stage three
    • Homework solution
    • Quick start guide to building Maven projects
    • Summary
  • Chapter 3: Setting Up Our Tools
    • Background about the jBPM project
      • JBoss Drools
      • JBoss ESB
      • JBoss jBPM
        • Supported languages
        • Other modules
    • Tools and software
      • Maven—why do I need it?
        • Standard structure for all your projects
        • Centralized project and dependencies description
        • Maven installation
      • Installing MySQL
        • Downloading MySQL JConnector
      • Eclipse IDE
        • Install Maven support for Eclipse
      • SVN client
    • Starting with jBPM
      • Getting jBPM
        • From binary
        • From source code
    • jBPM structure
      • Core module
      • DB module
      • Distribution module
      • Enterprise module
      • Example module
      • Identity module
      • Simulation module
      • User Guide module
    • Building real world applications
      • Eclipse Plugin Project/GPD Introduction
        • GPD Project structure
        • Graphical Process Editor
        • Outcome
    • Maven project
    • Homework
    • Summary
  • Chapter 4: jPDL Language
    • jPDL introduction
    • jPDL structure
    • Process structure
      • GraphElement information and behavior
      • NodeCollection methods
      • ProcessDefinition properties
      • Functional capabilities
        • Constructing a process definition
        • Adding custom behavior (actions)
    • Nodes inside our processes
      • ProcessDefinition parsing process
    • Base node
      • Information that we really need to know about each node
    • Node lifecycle (events)
      • Constructors
      • Managing transitions/relationships with other nodes
      • Runtime behavior
      • StartState: starting our processes
      • EndState: finishing our processes
      • State: wait for an external event
      • Decision: making automatic decisions
      • Transitions: joining all my nodes
      • Executing our processes
    • Summary
  • Chapter 5: Getting Your Hands Dirty with jPDL
    • How is this example structured?
    • Key points that you need to remember
    • Analyzing business requirements
      • Business requirements
      • Analyzing the proposed formal definition
      • Refactoring our previously defined process
    • Describing how the job position is requested
    • Environment possibilities
      • Standalone application with jBPM embedded
      • Web application with jBPM dependency
    • Running the recruiting example
      • Running our process without using any services
        • Normal flow test
    • Summary
  • Chapter 6: Persistence
    • Why do we need persistence?
      • Disambiguate an old myth
      • Framework/process interaction
      • Process and database perspective
      • Different tasks, different sessions
      • Configuring the persistence service
      • How is the framework configured at runtime?
      • Configuring transactions
        • User Managed Transactions (UMT)
        • What changes if we decide to use CMT?
      • Some Hibernate configurations that can help you
      • Hibernate caching strategies
      • Two examples and two scenarios
        • Running the example in EJB3 mode
    • Summary
  • Chapter 7: Human Tasks
    • Introduction
    • What is a task?
    • Task management module
      • Handling human tasks in jBPM
      • Task node and task behavior
        • TaskNode.java
        • Task.java
        • TaskInstance.java
    • Task node example
      • Business scenario
        • Assigning humans to tasks
      • Managing our tasks
        • Real-life scenario
        • Users and tasks interaction model
    • Practical example
      • Setting up the environment (in the Administrator Screen)
      • It's time to work
        • userScreen.jsp
        • UserScreenController.java
        • taskCheckDeviceForm.jsp
        • TaskFormController.java
    • Summary
  • Chapter 8: Persistence and Human Tasks in the Real World
    • Adding persistence configuration
      • Using our new configurations
      • Safe points
      • Advantages of persisting our process during wait states
      • Persistence in the Recruiting Process example
    • Human tasks in our Recruiting Process
      • Modifying our process definitions
      • Analyzing which nodes will change
      • Modified process definitions
      • Variable mappings
      • Task assignments
        • Assignments in the Recruiting Process example
    • Summary
  • Chapter 9: Handling Information
    • Handling information in jBPM
      • Two simple approaches to handle information
    • Handling process variables through the API
      • ContextInstance proposed APIs
      • ExecutionContext proposed APIs
      • Telephone company example
      • Storing primitive types as process variables
    • How and where is all this contextual information stored?
      • How are the process variables persisted?
      • Understanding the process information
        • Types of information
        • Variables hierarchy
        • Accessing variables
      • Testing our PhoneLineProcess example
        • Storing Hibernate entities variables
    • Homework
    • Summary
  • Chapter 10: Going Deeply into the Advanced Features of jPDL
    • Why do we need more nodes?
      • Fork/join nodes
        • The fork node
        • The join node
      • Modeling behavior
      • Super state node
        • Phase-to-node interaction
        • Node in a phase-to-phase interaction
        • Node-to-node interaction between phases
        • Complex situations with super state nodes
        • Navigation
      • Process state node
        • Mapping strategies
      • The e-mail node
    • Advanced configurations in jPDL
      • Starting a process instance with a human task
      • Reusing actions, decisions, and assignment handlers
        • Properties
        • Bean
        • Constructor
        • Compatibility
    • Summary
  • Chapter 11: Advanced Topics in Practice
    • Breaking our recruiting process into phases
    • Keeping our process goal focused with process state nodes
      • What exactly does this change mean?
      • Sharing information between processes
        • Create WorkStation binding
    • Asynchronous executions
      • Synchronous way of executing things
      • The asynchronous approach
        • How does this asynchronous approach work?
      • What happens if our server crashes?
      • Configuring and starting the asynchronous JobExecutor service
      • Different situations where asynchronous nodes can be placed
    • Summary
  • Chapter 12: Going Enterprise
    • jBPM configurations for Java EE environments
    • JBoss Application Server data source configurations
      • Taking advantage of the JTA capabilities in JBoss
      • Enterprise components architecture
      • The CommandServiceBean
    • JobExecutor service
      • JobExecutor service for Java EE environments
    • Timers and reminders
      • Mail service
      • Calendar
      • Timers
      • How do the timers and reminders work?
    • Summary

Mauricio Salatino

Mauricio Salatino (a.k.a. Salaboy) has been an active part of the Java and open source software community for more than eight years. He got heavily involved in the JBoss jBPM and Drools projects as a community contributor five years ago. After publishing his first book about jBPM for Packt Publishing, he was recognized as a valuable member of both projects at the JBoss Community Awards 2011.

During the last three years, Mauricio has being teaching and consulting on jBPM and Drools in America and Europe. In 2010, he co-founded Plugtree (www.plugtree.com), which is a company that provides consultancy and training around the world. Since then, he has participated in international conferences such as Java One, Rules Fest, Jazoon, JBoss In Bossa, and RuleML, as the main speaker. He is now a Drools and jBPM Senior Software Developer at Red Hat / JBoss, fully dedicated to moving these projects forward.

Code Downloads

Download the code and support files for this book.

Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

jBPM Developer Guide +    Oracle JRockit: The Definitive Guide =
50% Off
the second eBook
Price for both: €42.55

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

  • Key concepts of Business Process Management to understand how the community leads and implements open source software
  • Gain deep understanding of JPDL, the preferred process language, to know how your processes must be defined and implemented
  • Convert your projects into fully featured applications with advanced jBPM features such as the persistence service and human task mechanism
  • Understand the framework's behavior in different environments
  • Create and configure Human Task activities to model situations where human beings interact with the process
  • Understand how the framework handles information that flows through your business process
  • Configure the persistence service to reduce risk and perform successful implementations with jBPM
  • Improve your process definitions using nodes
  • Configure the Eclipse IDE to start modeling your processes

In Detail

jBPM is an open source business process management (BPM) solution used for defining and executing business processes. Java developers can use jBPM to analyze, improve, and maintain their business processes. This book steers you through each point of the jBPM framework and its implementation to model your business processes.

The book starts by explaining the key concepts in a Business Process Management framework. It will help you to learn and practice all of the conceptual and theoretical terms used in the Business Process Management field. Then you will master jPDL, the preferred process language for jBMP, which will let you specify exactly how your processes must be defined and implemented.

From here on, the book takes a closer look at the engine, discussing a broad range of topics from building real business processes inside real applications to learning and implementing advanced capabilities of the jPDL and jBPM framework. It will also help you to handle vital information and tasks related to persistence, integrating jBPM with other enterprise systems, and deploying jBPM to existing J2EE application servers.

By the end of this book, you will gain all the experience required to implement solutions that use the framework as well as to make decisions about how the framework needs to be used in particular situations.

Use the Java language to develop powerful Business Process Management solutions using jBPM


This book is a complete developer's guide to working with jBPM in a J2EE enterprise environment. It is packed with examples of implementations that will provide you with all the experience needed in real-life implementations. Extensive discussions about how the framework is implemented internally will contribute to creating a robust knowledge of when and how your projects will include this framework.

Who this book is for

This book is mainly targeted at Java developers and Java architects who need to have a deep understanding of how frameworks behave in real-life implementations.

The book assumes that you know the Java Language well and also know some widely used frameworks such as Hibernate and Log4J. You should also know the basics of relational databases and the Eclipse IDE. A brief introduction to Maven2 is included in this book but extra experience might be needed for more advanced usages.

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software