OSWorkflow: A guide for Java developers and architects to integrating open-source Business Process Management
()
About this ebook
Related to OSWorkflow
Related ebooks
Data Driven Process Excellence Rating: 0 out of 5 stars0 ratingsBusiness Process Management with JBoss jBPM Rating: 5 out of 5 stars5/5Process Mining: Fundamentals and Applications Rating: 0 out of 5 stars0 ratingsBusiness Process Driven SOA using BPMN and BPEL Rating: 4 out of 5 stars4/5What Is BPM? Rating: 0 out of 5 stars0 ratingsBusiness Process Management BPM Second Edition Rating: 0 out of 5 stars0 ratingsBusiness Process Mapping: How to improve customer experience and increase profitability in a post-COVID world Rating: 0 out of 5 stars0 ratingsInstant Oracle BPM for Financial Services How-to Rating: 0 out of 5 stars0 ratingsOracle BPM Suite 11g Developer's cookbook Rating: 0 out of 5 stars0 ratingsBusiness Process Management: Analyze and Improve Rating: 0 out of 5 stars0 ratingsBusiness Process Automation with BPMS Rating: 0 out of 5 stars0 ratingsSAP Workflow Business Process Automation: Business Process Automation Rating: 0 out of 5 stars0 ratingsBusiness Process Management Rating: 0 out of 5 stars0 ratingsProject Workflow Rating: 0 out of 5 stars0 ratingsBPA Third Edition Rating: 0 out of 5 stars0 ratingsRPath Third Edition Rating: 0 out of 5 stars0 ratingsService Automation Framework Rating: 0 out of 5 stars0 ratingsApplication Development for IBM WebSphere Process Server 7 and Enterprise Service Bus 7 Rating: 0 out of 5 stars0 ratingsWorkflow management Complete Self-Assessment Guide Rating: 0 out of 5 stars0 ratingsWeb integration servers Standard Requirements Rating: 0 out of 5 stars0 ratingsVirtual Labs Third Edition Rating: 0 out of 5 stars0 ratingsBusiness Application Programming Interface BAPI Standard Requirements Rating: 0 out of 5 stars0 ratingsValue-Driven Business Process Management: The Value-Switch for Lasting Competitive Advantage Rating: 5 out of 5 stars5/5B2B Web Services Complete Self-Assessment Guide Rating: 0 out of 5 stars0 ratingsMDM-Aware Applications The Ultimate Step-By-Step Guide Rating: 0 out of 5 stars0 ratingsThe Comprehensive Guide to RPA, IDP, and Workflow Automation: For Business Efficiency and Revenue Growth Rating: 0 out of 5 stars0 ratingsJob stream The Ultimate Step-By-Step Guide Rating: 0 out of 5 stars0 ratingsWinning Workflows Rating: 0 out of 5 stars0 ratingsOpenAPI A Clear and Concise Reference Rating: 0 out of 5 stars0 ratings
Information Technology For You
Creating your MySQL Database: Practical Design Tips and Techniques Rating: 3 out of 5 stars3/5How to Find a Wolf in Siberia (or, How to Troubleshoot Almost Anything) Rating: 0 out of 5 stars0 ratingsGetting started with Audacity 1.3 Rating: 5 out of 5 stars5/5CompTIA A+ CertMike: Prepare. Practice. Pass the Test! Get Certified!: Core 1 Exam 220-1101 Rating: 0 out of 5 stars0 ratingsLearning Microsoft Endpoint Manager: Unified Endpoint Management with Intune and the Enterprise Mobility + Security Suite Rating: 0 out of 5 stars0 ratingsCreating Online Courses with ChatGPT | A Step-by-Step Guide with Prompt Templates Rating: 4 out of 5 stars4/5An Ultimate Guide to Kali Linux for Beginners Rating: 3 out of 5 stars3/5Data Analytics for Beginners: Introduction to Data Analytics Rating: 4 out of 5 stars4/5CompTia Security 701: Fundamentals of Security Rating: 0 out of 5 stars0 ratingsHow to Write Effective Emails at Work Rating: 4 out of 5 stars4/5CompTIA Network+ CertMike: Prepare. Practice. Pass the Test! Get Certified!: Exam N10-008 Rating: 0 out of 5 stars0 ratingsCOMPUTER SCIENCE FOR ROOKIES Rating: 0 out of 5 stars0 ratingsPractical Ethical Hacking from Scratch Rating: 5 out of 5 stars5/5Cyber Security Consultants Playbook Rating: 0 out of 5 stars0 ratingsPersonal Knowledge Graphs: Connected thinking to boost productivity, creativity and discovery Rating: 5 out of 5 stars5/5A concise guide to PHP MySQL and Apache Rating: 4 out of 5 stars4/5A Mind at Play: How Claude Shannon Invented the Information Age Rating: 4 out of 5 stars4/5Health Informatics: Practical Guide Rating: 0 out of 5 stars0 ratingsInkscape Beginner’s Guide Rating: 5 out of 5 stars5/5AWS Certified Cloud Practitioner - Practice Paper 1: AWS Certified Cloud Practitioner, #1 Rating: 5 out of 5 stars5/5Linux Command Line and Shell Scripting Bible Rating: 3 out of 5 stars3/5Risk Management and Information Systems Control Rating: 5 out of 5 stars5/5ChatGPT: The Future of Intelligent Conversation Rating: 4 out of 5 stars4/5Cybersecurity Playbook for Executives Rating: 0 out of 5 stars0 ratingsOracle SQL Developer 2.1 Rating: 0 out of 5 stars0 ratingsUnity Game Development Essentials Rating: 5 out of 5 stars5/5
Reviews for OSWorkflow
0 ratings0 reviews
Book preview
OSWorkflow - Diego Adrian Naya Lazo
Table of Contents
OSWorkflow
Credits
About the Author
About the Reviewers
Introduction
What This Book Covers
Who is This Book For
Conventions
Reader Feedback
Customer support
Downloading the example code for the book
Errata
Questions
1. BPM and Workflow Basics
Business Process Orientation
BPR and BPM
Business Process Improvement
What's a BPMS?
Traceability and Auditing
Different Kinds of BPMS
System Orchestration with System-Oriented BPMS
System Orchestration
Enabling Workgroup Collaboration with People-Oriented BPMS
Components of a BPM Solution
The Workflow Management Coalition
How Components Map to the BPM Lifecycle
Open-Source BPMS
Summary
2. OSWorkflow Introduction and Basics
Downloading and Installing OSWorkflow
Getting a Taste from the Distribution
Navigating the Sample User Interface
OSWorkflow Basics
XML Definition Files
An Example Workflow
Steps, Actions, and Results: The Workflow Building Blocks
Testing the Workflow Definition
Splits and Joins
Setting Status and Old Status Values
Sending an Email Automatically
Visual Process Modeling
Visually Creating the Holiday Example
Looking at the End Result
Ways to Implement OSWorkflow
OSWorkflow as a Workflow Layer
OSWorkflow as a Centralized Workflow Server
Adding the SOAP Bindings
Summary
3. Adding Code to our Definitions
How to Deal with Transient Data
Variable Interpolation in the Definition
PropertySet and Transient Variables
Exploring PropertySet
Using the PropertySet to Store Variable Data
Using the PropertySet to Retrieve Stored Data
Cleaning the PropertySet
Configuring the PropertySet
Adding Code to our Definition
FunctionProviders
Creating our first FunctionProvider
FunctionProvider Types
Defining a Custom Function Provider
BeanShell Scripting
Built-in Functions
Conditions
Creating our own Condition
Registers
Using the LogRegister
Implementing a Register
Validators
Creating a Customer Identifier Validator
BeanShell Validators
Other Useful Descriptor Concepts
Finish Actions
Auto Actions
Summary
4. Using OSWorkflow in your Application
OSWorkflow Configuration
Registering our Process Descriptors
Embedding OSWorkflow into your Application
Starting a Workflow
Executing Actions
What's the Status?
What can I Do?
The Useful Abstract States
Querying the Workflow Store
Querying the Workflow Factory
Inspecting the Workflow Descriptor from Code
Using the Workflow Configuration Object
Workflow Interface Implementations
Loading the Descriptors—the Workflow Factory
Loading Descriptors from a Database
Persisting Instance Information
Persistence Choices
Configuring the JDBC Store
PropertySet Persistence
Configuring the JDBC PropertySet
Unit Testing your Workflow
What is JUnit?
Running the Tests
Integrating with Spring
The Object Registry—BeanFactory
Using our BeanFactory
Transaction Support in Spring
The SpringTypeResolver
Workflow Security
Step Permissions
Action Restrictions
Step Ownership
Extending User and Group Authentication and Authorization
Summary
5. Integrating Business Rules with JBoss Rules
Incorporating Business Logic into Business Processes
Simple Logic with Conditional Results
Complex Business Logic
What is JBoss Rules
?
Creating a Rule
Executing a Rule
Integrating with OSWorkflow
RulesCondition
RulesFunctionProvider
Summary
6. Task Scheduling with Quartz
What is Quartz?
Installing
Basic Concepts
Integration with OSWorkflow
Creating a Custom Job
Trigger Functions
More about Triggers
SimpleTrigger
CronTrigger
Scheduling a Job
Scheduling from a Workflow Definition
Transactions in Quartz
JobStores
Example Application—Customer Support
Example Application—Claims Processing
Summary
7. Complex Event Processing
Complex Event Processing (CEP)
Patterns and Data
CEP in BPM
What is Esper?
The Esper Architecture
Downloading and Installing Esper
Hello World from Esper
Push and Pull Mode
EQL Queries
Integration with OSWorkflow
Esper Function Provider
Real-World Examples
Summary
8. Dashboards with Pentaho
What is Pentaho?
Pentaho Requirements
Downloading and Installing Pentaho
Setting up Pentaho to use the OSWorkflow Database
Using the Design Studio to Create our First Chart
Useful Charts for BAM Consoles
Summary
Index
OSWorkflow
Diego Adrian Naya Lazo
OSWorkflow
Copyright © 2007 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, Packt Publishing, nor its dealers or distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: August 2007
Production Reference: 1210807
Published by Packt Publishing Ltd.
32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.
ISBN 978-1-847191-52-6
www.packtpub.com
Cover Image by Vinayak Chittar (<[email protected]>)
Credits
Author
Diego Adrian Naya Lazo
Reviewers
Gabriel Bruno
Hani Suleiman
Juan Pedro Danculovic
Development Editor
Nanda Padmanabhan
Assistant Development Editor
Rashmi Phadnis
Technical Editors
Rashmi Phadnis
Saurabh Singh
Editorial Manager
Dipali Chittar
Project Manager
Patricia Weir
Project Coordinator
Abhijeet Deobhakta
Indexer
Mithil Kulkarni
Proofreader
Chris Smith
Production Coordinators
Manjiri Nadkarni
Shantanu Zagade
Cover Designer
Shantanu Zagade
About the Author
Diego Naya Lazo is a Chief Enterprise Architect living in Buenos Aires, Argentina. He currently works for Argentina's biggest healthcare provider and has more than 10 years of experience in the IT industry. He has participated in several projects as a hands-on software architect and performed the technical lead role in many companies. His interest in computer programming began with his desire to create the most vivid 3D animations as a graphic designer at the age of 15.
His interests range from Enterprise Architecture to SOA and BPM technology. He is a Sun Certified Enterprise Architect and holds other certifications such as: SCJP, SCWCD, MCSA, and Security+. He is also a member of the WWISA and GEAO enterprise architects' associations as well as an active developer of the OSWorkflow project. He holds a Bachelors degree in IT and is currently enrolled in an MBA program.
Away from work, Diego enjoys traveling all around the world with his family. You can reach him at <[email protected]>.
I want to thank Gustavo Aguirre, my role model and mentor, for giving me advice and my reviewers Juan Pedro Danculovic and Gabriel Bruno, for loving this as much as I do. Hani Suleiman, for your commitment to the project and the whole OSWorkflow team.
This book is dedicated to Mariela and Mauro—You are the light that shines on my path through life.
About the Reviewers
Gabriel A. Brunolives in Argentina and has been working since 1997 in the IT industry. Among his various activities are consulting services in many companies, mainly in the financial industry, and he also has performed activities as an instructor of OO analysis and design, and data structures.
In 1998 he discovered the open-source world through the GNU Linux operating system, which he adopted to perform his duties. Two years later, he began to use Java and subsequently the J2EE platform professionally.
He's currently working as a Java Architect for an important health insurance company in Argentina.
I greatly thank Diego Naya for including me in this endeavor.
Hani Suleiman is the CTO of Formicary, a company specializing in integration and portal solutions for financial firms. He also is an elected individual member of the JCP Executive Committee, as well as serving on a number of enterprise-related Expert Groups.
Juan Pedro Danculovic received his Computer Science Analyst degree at the UNLP-La Plata, Argentina in 2001.
He has researched in several areas such as object-oriented and web applications design, and also web personalization aspects in web services and applications.
He has also taught web application architecture aspects courses at the UNLP.
He is currently working in the IT Architecture department at the biggest health care services company in Argentina.
Introduction
OSWorkflow is a Java-based open-source workflow engine. It helps you to focus your work on the business logic and rules rather than working on heavy coding. Integrating OSWorkflow into your application is very easy and fast. OSWorkflow provides all of the workflow constructs that you might come across in real-life processes like steps, conditions, loops, splits, joins, roles, etc. The latest version of OSWorkflow has a GUI for developing workflows, which simplifies creating workflows for simple needs. To get the best out of it, creating workflows by XML coding is recommended. OSWorkflow takes advantage of many existing Java open-source projects, including:
BeanShell: For workflow scripting
OpenForBusiness: Entity engine persistence support
GLUE: For a SOAP interface
Quartz: For job scheduling
OSWorkflow can work in any J2EE container, including servlet containers (EJB support does not work here). OSWorkflow was designed to be as flexible as possible to fit the needs of many unique requirements.
This book explains OSWorkflow, without assuming any prior knowledge of Business Process Management. Real-life examples are used to clarify concepts. It gives step-by-step instructions on how to do things. The basics are explained first and then examples help to clarify and reinforce the principles.
What This Book Covers
Chapter 1 gives an overview of the BPM technology and the workflow engine, along with an analysis of the different types of BPMS.
Chapter 2 introduces OSWorkflow and teaches the basics of the workflow engine along with a real-life example.
Chapter 3 introduces several key features of OSWorkflow like handling persistent and transient variables, variable interpolation, built-in OSWorkflow functions, Conditions, and BeanShell scripting.
Chapter 4 covers Persistence of variables across invocations, and the FunctionProviders along with integrating OSWorkflow with Spring.
Chapter 5 introduces and integrates Rules engine and Drools open-source rule engine.
In Chapter 6 we explore the Quartz task scheduler and its integration with OSWorkflow and we give a tutorial with Quartz sending events and actions to OSWorkflow.
Chapter 7 introduces Event Stream Processing and Complex Event Processing. We give an OSWorkflow function provider that interfaces with the ESPer CEP engine and allows the monitoring of real-time process information and events.
Chapter 8 gives OSWorkflow visualization of its business process information with the Pentaho open-source BI solution. Using the charting capabilities of Pentaho we build an enterprise process dashboard to monitor and analyze the processes.
Who is This Book For
The book is aimed at experienced Java developers and system architects who want to develop complex Java applications using the OSWorkflow workflow engine. OSWorkflow is a flexible low-level workflow implementation for developers and architects; it is not a quick plug-and-play
solution for non-technical end users.
Conventions
In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.
There are three styles for code. Code words in text are shown as follows: The OSWorkflow descriptor XML must have a root element of workflow and obligatory child elements named steps and initial-actions.
A block of code will be set as follows:
…
Employee request
>
Request holidays
>
2
status=Requested
/>
…
When we wish to draw your attention to a particular part of a code block, the relevant lines or items will be made bold:
Action 1
>
Pending
split=1
/>
New terms and important words are introduced in a bold-type font. Words that you see on the screen, in menus or dialog boxes for example, appear in our text like this: You can simply click on the Authors link located on the books listing page in your browser.
Note
Important notes appear in a box like this.
Note
Tips and tricks appear like this.
Reader Feedback
Feedback from our readers is always welcome. Let us know what you think about this book, what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.
To send us general feedback, simply drop an email to <[email protected]>, making sure to mention the book title in the subject of your message.
If there is a book that you need and would like