You are previewing Mastering jBPM6.
O'Reilly logo
Mastering jBPM6

Book Description

Design, build, and deploy business process-centric applications using the cutting-edge jBPM technology stack

In Detail

This book provides a complete understanding of the jBPM technology stack. It starts with an introduction to the world of business process management systems, the problem domain addressed by jBPM, explores the main use cases that can be addressed by business process management systems, and illustrates the main design patterns. It takes you through the details of the architecture and available out-of-the-box provisions for customizing, extending, and integrating the features of jBPM to meet the requirements of your application. Moreover, this book will empower you with the knowledge to integrate jBPM with enterprise architecture, debug through the source code of jBPM, and utilize the flexibility provided by a heavily modular system. Finally, it introduces you to the provisions available for a jBPM-based application to put the non-functional characteristics of the system, which are of great importance when we deploy our application in production. The book helps you in putting the knowledge at work by providing you with a lot of ready to use examples, both basic and advanced ones.

What You Will Learn

  • Understand the jBPM tool stack and business process management systems, the standards, patterns, and use cases

  • Build your first BPM application using the jBPM tool stack

  • Monitor and manage the daily operations of business process-centric applications

  • Get a detailed explanation of all the BPMN constructs supported by jBPM

  • Understand the core architecture of jBPM

  • Learn about the extension points and pluggable mechanisms which would help you to extend jBPM core

  • Enhance your application with business process management functionalities by integrating jBPM into your existing application portfolio

  • Configure the jBPM-based application to meet the non-functional requirements in production

  • Integrate jBPM to the JEE, SOA, and EDA environments to use its capabilities

  • Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

    Table of Contents

    1. Mastering jBPM6
      1. Table of Contents
      2. Mastering jBPM6
      3. Credits
      4. About the Authors
      5. About the Reviewers
      6. www.PacktPub.com
        1. Support files, eBooks, discount offers, and more
          1. Why subscribe?
          2. Free access for Packt account holders
      7. Preface
        1. What this book covers
        2. What you need for this book
        3. Who this book is for
        4. Conventions
        5. Reader feedback
        6. Customer support
          1. Downloading the example code
          2. Errata
          3. Piracy
          4. Questions
      8. 1. Business Process Modeling – Bridging Business and Technology
        1. Business process management
          1. Human interaction management
          2. Business activity monitoring
          3. Business process simulation
        2. The business process model and notation
          1. Core elements
            1. Flow Objects
            2. Data
            3. Connecting Objects
            4. Swimlanes
            5. Artifacts
        3. Business process management as applied in industry
          1. Supply chain management
          2. Banking and financial services
        4. Design patterns in business process modeling
          1. Sequence
          2. Parallel split
          3. Synchronization
          4. Simple merge
          5. Exclusive choice
          6. Implicit termination
          7. Deferred choice
          8. Multiple instance without synchronization
          9. Synchronized merge
            1. Arbitrary cycle
        5. Introducing jBPM
          1. The KIE workbench
            1. Process Designer
            2. Operation management
          2. Eclipse tooling
          3. Core engine
          4. The knowledge repository
        6. The business logic integration platform
          1. Drools Guvnor
          2. Drools Expert
          3. Drools Fusion
          4. Working together
        7. Summary
      9. 2. Building Your First BPM Application
        1. Installing the jBPM tool stack
          1. Customizing the installation
            1. Changing the database vendor
            2. Manually installing the database schema
        2. Creating your first jBPM project
          1. Business Process Modeling
          2. Building and deploying the project
          3. Running your first process
        3. Embedding jBPM in a standalone Java application
          1. Modeling the business process using Eclipse tooling
          2. Creating a jBPM project using Eclipse
          3. Deploying the process programmatically
          4. Writing automated test cases
        4. Change management – updating deployed process definitions
        5. Summary
      10. 3. Working with the Process Designer
        1. Web-based tooling
          1. Process modeling
            1. The Object Library
            2. The process canvas
            3. Properties editor
            4. Toolbar
            5. Problem visualization
            6. The Metadata tab
          2. Data object modeling
          3. Form modeling
            1. Creating a form
            2. Setting the field properties
            3. Setting a default value
            4. Inferring field values
            5. Subforms
            6. Multiple subforms
          4. Process simulation
            1. Process paths
            2. Simulation parameters
              1. Process-level parameters
              2. Task-level parameters
              3. Flow element parameters
            3. Running simulation
            4. Simulation results
        2. Eclipse-based tooling
          1. Importing a project created using web-based tooling
          2. Process modeling
          3. Data object modeling
          4. Form modeling
          5. Process simulation
          6. Saving changes to the knowledge repository
        3. Summary
      11. 4. Operation Management
        1. An overview of the KIE workbench, Git, and Maven
          1. Working with Git
            1. Cloning a remote repository
            2. Making changes and committing
            3. Pushing to the remote repository
            4. New repository
            5. Managing assets – managed repositories
              1. Governance workflow
              2. Git cloning and managed repository
              3. Asset management example
                1. Promoting assets
                2. Releasing
                3. Building (single project)
              4. Asset versioning history
              5. Managed repository and Maven
              6. Governance process definitions
            6. A final note
        2. An overview of the kie-config-cli tool
          1. Connecting (online mode)
          2. Creating an organizational unit
          3. Creating a repository
          4. Defining role-based access control rules
          5. Adding jBPM console users
          6. Adding the repository to an organization
          7. Pushing changes to system.git
          8. More on the system.git repository
        3. KIE deployments
          1. Artifacts and KIE modules
          2. Deployment options
          3. Deployment by example – the Pizza projects
            1. The process definition – pizzadelivery
            2. Deploying pizzas
            3. Git and project configuration
            4. Deploying the dependency
            5. Providing artifacts
            6. Deploying
          4. Adding a KIE module manually
          5. Process and task management applied – the PizzaDelivery process
            1. Starting the Process
          6. Undeployment
          7. User management
          8. Task management
        4. Managing jobs and asynchronous commands' execution
          1. Creating, scheduling, and launching a new Job
        5. Process definition conversion
          1. Process definition versioning and instance upgrading
        6. BAM
          1. BPM and BAM
          2. Default history logs
          3. BAM and Dashbuilder – the pizza maker's performance index
            1. Example projects
              1. Configuring persistence
          4. Generating audit data – ProcessBAM unit test
          5. Writing the business query
          6. Adding the data provider
          7. Creating a new dashboard page and the KPI panels
          8. Notes
        7. Summary
      12. 5. BPMN Constructs
        1. Parameters, variables, and data
        2. Sequence flow
        3. Gateways
          1. Parallel (AND) gateway
          2. Conditional branching
            1. Drools
          3. Exclusive (XOR) gateway
          4. Inclusive (OR) gateway
          5. Event-based gateways
            1. Instantiating gateway
          6. Complex gateway
        4. Events
          1. Start events
            1. None Start event
          2. End events
            1. (None) End event
            2. Terminate End event
          3. Boundary events
          4. Signal events
            1. Scope
            2. Signal ID and signal name tips
            3. Signal data mapping
            4. Start Signal event
            5. Intermediate Signal event
            6. Boundary Signal event
            7. End Signal event
          5. Message events
            1. Message data mapping
            2. Start Message event
            3. Intermediate Message event
            4. Boundary Message event
            5. End Message event
            6. jBPM throwing message implementation
          6. Timer events
            1. Start Timer event
            2. Intermediate Timer event
            3. Boundary Timer event
          7. Error events
            1. Boundary Error event
            2. Error Start event
            3. Error End event
          8. Compensation
            1. Intermediate Compensation event
            2. Boundary Compensation event
            3. Compensating activity
            4. Triggering compensations with signals
          9. End Compensation event
            1. Multi-instance compensation
          10. Escalation
          11. Conditional events
        5. Activities
          1. Task
            1. User Task
              1. Human roles
              2. State transitions
              3. Deadlines and escalations
              4. Task reassignment
              5. Notifications
              6. Delegation
              7. Forward
              8. Suspend/resume
              9. Skip
              10. Release
            2. Script Task
            3. Service Task
            4. Rule Task
            5. Send/Receive Task
            6. Manual Task
            7. Ad hoc (Custom or None) Task
              1. Async tasks
          2. Call Activity Task
          3. Subprocess
            1. Ad hoc subprocess
          4. Multiple instances
          5. Lanes
          6. Data objects
        6. Summary
      13. 6. Core Architecture
        1. The KIE API
          1. KieServices
          2. KieContainer – KIE modules and KieBase(s)
          3. The KIE builder API
            1. KieResources
            2. KieModule
            3. KieBuilder
          4. Repositories and scanners
            1. KieScanner
          5. KieLoggers
          6. KieStoreServices
        2. RuntimeManager service and the engine
          1. Runtime strategy
            1. Choosing the right strategy
          2. The RuntimeEnvironment class
          3. Runtime Context
        3. KieSession
          1. Stateless KieSession
          2. Globals
          3. The CommandExecutor interface
            1. Batch execution
          4. Event listeners
          5. Channels
        4. Human Task service
          1. CommandService
          2. TaskCommand and UserGroupCallback
            1. The TaskContext command
          3. Transactions and interceptors
          4. Notification service
          5. The TaskFluent class
        5. Audit and history logs
          1. AuditLoggerFactory
          2. Custom logger
        6. Persistence and transactions
          1. Local transactions with Bitronix
            1. Managing transactions
          2. Locking
        7. Summary
      14. 7. Customizing and Extending jBPM
        1. Custom process nodes
          1. Workitem and handlers
            1. Life cycle
              1. Cacheable and closeable interfaces
          2. Handlers in action
            1. Direct handler registration
            2. Declarative kmodule.xml handler configuration
            3. Handler configuration file
            4. Handler definition file
          3. Workitem handler implementation
            1. Handling input parameters
            2. Returning results to the process
          4. The PizzaTweet example
            1. The main project (the KIE module)
            2. Process and task parameter mappings
            3. Handler project (pizzahandlers)
            4. Model project (pizzamodel)
            5. IDE customization
            6. Console test run
            7. Standalone test run
          5. Service repository
            1. Custom service repository
        2. jBPM identity management
          1. User callback configuration
            1. The DBUserGroupCallbackImpl class
            2. The LDAPUserGroupCallbackImpl class
        3. jBPM serialization
          1. Marshalling
            1. Persisting variables
          2. Strategies
          3. Configuring a marshalling strategy
          4. Persisting variables
        4. Summary
      15. 8. Integrating jBPM with Enterprise Architecture
        1. Setting the context
        2. Services provided by jBPM
        3. Creating custom workitem handlers
        4. Integrating with JEE
          1. EJB remote interfaces
          2. The EJB local interface
        5. Integrating in SOA and EDA environments
          1. Integrating with REST services
            1. The REST service
            2. The client – REST handler configuration
          2. The SOAP WebService
            1. The JAX-WS service
              1. The client – process and service task handler configuration
              2. Process definition
              3. Service task handler
              4. The WebServiceWorkItemHandler class
        6. jBPM as a remote service
          1. The REST API
            1. Authentication
          2. The remote Java API
            1. Dependencies
            2. The REST client
            3. Client for jBPM JMS service
              1. Server JMS configuration
              2. JMS client implementation
          3. The SOAP API
          4. Transactions
        7. Summary
      16. 9. jBPM in Production
        1. Scalability
          1. Scaling the business process modeling facility
          2. Scaling the process runtime
            1. Factors and considerations
              1. Number of processes/process instances
              2. The number of user interactions
              3. Flavors of runtime manager
              4. Task service
              5. Number of timer events
        2. Availability
          1. Applicability to workbench
          2. Applicability to continuous improvements in processes
          3. Applicability to the process runtime
        3. Security
          1. Securing the access of application assets
          2. Securing the process runtime
            1. Access security specific to human tasks
            2. Audit logging
        4. Maintainability
        5. Fault tolerance
          1. Exception handling in process definitions
          2. Exception handling for domain-specific processes
        6. Summary
      17. A. The Future
        1. Business programming
        2. Convergence of enterprise architectures for real-time and predictive analytics
      18. B. jBPM BPMN Constructs Reference
        1. Tasks
          1. User
          2. Send
          3. Receive
          4. Manual
          5. Service
          6. Business rule
          7. Script
          8. None
        2. Subprocesses
          1. Reusable
          2. Multiple instances
          3. Ad hoc
          4. Embedded
          5. Events
        3. Start events
        4. End events
        5. Catching intermediate events
        6. Throwing intermediate events
        7. Gateways
          1. Data-based exclusive (XOR)
          2. Event-based gateway
          3. Parallel
          4. Inclusive
        8. Data objects
        9. Swimlanes
          1. Lane
        10. Artifacts
          1. Group
          2. Annotation
      19. Index