O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required


Book Description

Get your workflow up and running with this step-by-step guide authored by an active developer of the OSWorkflow project with real-world examples

  • Basics of OSWorkflow

  • Integrating business rules with Drools

  • Task scheduling with Quartz

In Detail

OSWorkflow is an open-source workflow engine written entirely in Java with a flexible approach and a technical user-base target. It is released under the Apache License. You can create simple or complex workflows, depending on your needs. You can focus your work on the business logic and rules. No more Petri Net or finite state machine coding! You can integrate OSWorkflow into your application with a minimum of fuss. OSWorkflow provides all of the workflow constructs that you might encounter in real-life processes, such as steps, conditions, loops, splits, joins, roles, etc.

This book explains in detail all the various aspects of OSWorkflow, without assuming any prior knowledge of Business Process Management. Real-life examples are used to clarify concepts.

This book covers all aspects related to OSWorkflow. No prior knowledge about OSWorkflow is needed. You will learn everything from the basics of Business Process Management (BPM) technology and installing OSWorkflow to integrating the workflow engine with third-party components like Drools, Quartz, and Pentaho.

Table of Contents

  1. OSWorkflow
  2. Credits
  3. About the Author
  4. About the Reviewers
  5. Introduction
    1. What This Book Covers
    2. Who is This Book For
    3. Conventions
    4. Reader Feedback
    5. Customer support
      1. Downloading the example code for the book
      2. Errata
      3. Questions
  6. 1. BPM and Workflow Basics
    1. Business Process Orientation
      1. BPR and BPM
      2. Business Process Improvement
    2. What's a BPMS?
      1. Traceability and Auditing
    3. Different Kinds of BPMS
      1. System Orchestration with System-Oriented BPMS
      2. System Orchestration
      3. Enabling Workgroup Collaboration with People-Oriented BPMS
    4. Components of a BPM Solution
      1. The Workflow Management Coalition
      2. How Components Map to the BPM Lifecycle
    5. Open-Source BPMS
    6. Summary
  7. 2. OSWorkflow Introduction and Basics
    1. Downloading and Installing OSWorkflow
      1. Getting a Taste from the Distribution
    2. Navigating the Sample User Interface
    3. OSWorkflow Basics
      1. XML Definition Files
      2. An Example Workflow
      3. Steps, Actions, and Results: The Workflow Building Blocks
        1. Testing the Workflow Definition
        2. Splits and Joins
    4. Setting Status and Old Status Values
      1. Sending an Email Automatically
    5. Visual Process Modeling
      1. Visually Creating the Holiday Example
      2. Looking at the End Result
    6. Ways to Implement OSWorkflow
      1. OSWorkflow as a Workflow Layer
      2. OSWorkflow as a Centralized Workflow Server
        1. Adding the SOAP Bindings
    7. Summary
  8. 3. Adding Code to our Definitions
    1. How to Deal with Transient Data
      1. Variable Interpolation in the Definition
    2. PropertySet and Transient Variables
      1. Exploring PropertySet
      2. Using the PropertySet to Store Variable Data
      3. Using the PropertySet to Retrieve Stored Data
      4. Cleaning the PropertySet
      5. Configuring the PropertySet
    3. Adding Code to our Definition
      1. FunctionProviders
        1. Creating our first FunctionProvider
        2. FunctionProvider Types
        3. Defining a Custom Function Provider
      2. BeanShell Scripting
      3. Built-in Functions
      4. Conditions
        1. Creating our own Condition
      5. Registers
        1. Using the LogRegister
        2. Implementing a Register
      6. Validators
        1. Creating a Customer Identifier Validator
        2. BeanShell Validators
    4. Other Useful Descriptor Concepts
      1. Finish Actions
      2. Auto Actions
    5. Summary
  9. 4. Using OSWorkflow in your Application
    1. OSWorkflow Configuration
      1. Registering our Process Descriptors
    2. Embedding OSWorkflow into your Application
      1. Starting a Workflow
      2. Executing Actions
      3. What's the Status?
      4. What can I Do?
      5. The Useful Abstract States
      6. Querying the Workflow Store
      7. Querying the Workflow Factory
      8. Inspecting the Workflow Descriptor from Code
      9. Using the Workflow Configuration Object
      10. Workflow Interface Implementations
      11. Loading the Descriptors—the Workflow Factory
        1. Loading Descriptors from a Database
    3. Persisting Instance Information
      1. Persistence Choices
        1. Configuring the JDBC Store
      2. PropertySet Persistence
        1. Configuring the JDBC PropertySet
    4. Unit Testing your Workflow
      1. What is JUnit?
      2. Running the Tests
    5. Integrating with Spring
      1. The Object Registry—BeanFactory
      2. Using our BeanFactory
      3. Transaction Support in Spring
      4. The SpringTypeResolver
    6. Workflow Security
      1. Step Permissions
      2. Action Restrictions
      3. Step Ownership
      4. Extending User and Group Authentication and Authorization
    7. Summary
  10. 5. Integrating Business Rules with JBoss Rules
    1. Incorporating Business Logic into Business Processes
    2. Simple Logic with Conditional Results
    3. Complex Business Logic
      1. What is "JBoss Rules"?
      2. Creating a Rule
      3. Executing a Rule
    4. Integrating with OSWorkflow
      1. RulesCondition
      2. RulesFunctionProvider
    5. Summary
  11. 6. Task Scheduling with Quartz
    1. What is Quartz?
      1. Installing
      2. Basic Concepts
      3. Integration with OSWorkflow
      4. Creating a Custom Job
    2. Trigger Functions
      1. More about Triggers
        1. SimpleTrigger
        2. CronTrigger
    3. Scheduling a Job
    4. Scheduling from a Workflow Definition
      1. Transactions in Quartz
    5. JobStores
    6. Example Application—Customer Support
    7. Example Application—Claims Processing
    8. Summary
  12. 7. Complex Event Processing
    1. Complex Event Processing (CEP)
      1. Patterns and Data
      2. CEP in BPM
    2. What is Esper?
      1. The Esper Architecture
      2. Downloading and Installing Esper
      3. Hello World from Esper
      4. Push and Pull Mode
      5. EQL Queries
    3. Integration with OSWorkflow
      1. Esper Function Provider
    4. Real-World Examples
    5. Summary
  13. 8. Dashboards with Pentaho
    1. What is Pentaho?
    2. Pentaho Requirements
    3. Downloading and Installing Pentaho
    4. Setting up Pentaho to use the OSWorkflow Database
    5. Using the Design Studio to Create our First Chart
    6. Useful Charts for BAM Consoles
    7. Summary