OSWorkflow: A guide for Java developers and architects to integrating open-source Business Process Management
| 2007-08-31 00:00:00 | | 0 | Java
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 OSWorkflowIntegrating business rules with DroolsTask scheduling with QuartzIn 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.
What you will learn from this book?
In this book we will:Understand basics of BPM technology.See how to create workflows with the help of an examples workflow.Integrate Drools open source engine in our workflow engine.Integrate Quartz task scheduler along with the Workflow.
Approach
This book 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.
Who this book is written 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.
User review
A real hit!
I've been playing around with open source workflow engines for quite some time, Enhydra Shark, JBoss jBPM, etc. At each attempt I feel like I'm playing with a black box, guessing at it's internal behavior, not understanding the results. I hadn't really considered OSWorkflow because it didn't have the 'press' of the other packages. Then I bought this book and found out how much fun one can really have with a workflow engine. All of the components are pluggable, as this book points out, repeatedly. If you don't like the behavior of a component, change it -- and here's how. Need a different persistent store, change it, customize it. This is truly a programmer's workflow engine and this book will appeal to programmers.
This book also shows how, with examples, how to integrate JBoss Rules (aka DROOLS), Quartz scheduling, and Esper complex event processing.
The only downside which I found was not with the book, but with the OSWorkflow distribution, the Hibernate support is old, v2.8.0. At first I was disappointed but with the help of this book, I just wrote my own Hibernate 3.x support in a matter of a few hours and I now know the package much more intimately as result. I went on to customize and *optimize* this for my project.
OSWorkflow is a great workflow engine, let's hope this book give the kick-start which it needs to be even better.
User review
Great Book, Lots of Useful Info
`OSWorkflow`, by Adrian Naya Lazo, published by in August 2007, is for experienced Java developers and system architects wanting to develop complex Java applications that make use of the OSWorkflow engine. Since the OSWorkflow engine is not plug-and-play, but requires low-level configuration, it is not intended for non-technical end users. Despite that, the book doesn't assume prior knowledge of business process management.
The book is divided into eight chapters. Chapter 1, `BPM and Workflow Basics` introduces workflow engines, different types of business process management systems, traceability, and auditing. At the end of this chapter you will have a high level understanding of what Business Process Manaegement technology entails. In Chapter 2, `Introduction and Basics`, you enter the Hello World scenario. For this kind of chapter, there is a lot of information here. It might have been better to have a very short `Hello World` chapter, with just the simplest scenario, because this covers quite a lot. Still, the chapter is very good in laying the basis for the rest of the book. You are shown where to get the OSWorkflow engine on-line, how to navigate a sample user interface, you begin to understand the basics of OSWorkflow, and then look at some important XML definitions and an example workflow, steps, actions, results, splits, and joins. Interestingly, you are shown how to send an e-mail automatically, by configuring an XML file. Then you are shown an alternative approach, not via XML, but using a visual designer. (This part could have been the first `Hello World` chapter, with the earlier XML tags being in a follow up chapter.)
Chapter 3 tells you about adding code to definitions created in the previous chapter. Because chapter 2 covered so much, chapter 3 already touches on advanced topics, such as transient data, function providers, registers, conditions, and BeanShell scripting. Tips such as those relating to Auto and Finish Actions are also outlined here. `Using OSWorkflow in your Application` is the title of chapter 4. Here OSWorkflow APIs are discussed, allowing you to embed OSWorkflow within an application. In addition, persistence, unit testing, Spring integration, and security are discussed in some detail. Chapter 5 tells you about integrating business rules with JBoss Rules. You are shown how the Rules engine works, as well as its connection with the Drools open-source engine. Usefully, it defines its terms as it goes along, even `What is JBoss Rules?` The integration with OSWorkflow rules is well described and the examples given are relevant.
The next chapters dig deeper into the integration between OSWorkflow and other software. For example, in chapter 6 you are taught about `Scheduling with Quartz`. Quartz, a time scheduler, can integrate with OSWorkflow, so that you can sendin events and actions. The location and installation of Quartz is mentioned and briefly introduced, prior to an interesting chapter culminating in a customer support scenario, as well as a claims processing scenario. Both are pretty complex, well described, and really bring the concepts discussed into focus. Further advanced topics are discussed in chapter 7, in particular, Event Stream Processing and Complex Event Processing. The Esper CEP engine is tackled in detail throughout the chapter, and then coupled with the OSWorkflow engine. Examples are given, again, including an interesting one involving event-based mail alerts via patterns and listeners, also using the EQL (Esper Query Language), which is an interesting diversion in this chapter. Finally, chapter 8 outlines how to integrate with Dashboards provided by Pentaho. The Pentaho charting capabilities are discussed and then applied to the OSWorkflow instance database for creating a dashboard relevant to OSWorkflow monitoring and analysis.
In general, the book delivers what it promises. It provides a lot of explanations and diagrams and actual code snippets. It starts from the beginning, referring to on-line resources and continues from there, step by step, with a lot of real life scenarios. However, it would have been good to have seen how OSWorkflow compares with alternatives. Similarly, it is not clear why Quartz and Pentaho, for example, were chosen as endpoints for integration, rather than one of their competitors. The book is clear and well written with many examples. Despite the complexity of the subject and the broad range of topics covered, it was an enjoyable read.
User review
Complete coverage of real workflow solutions
In the past I made some works with OSWorkflow and indeed it was really a hard task to collect the documentation and examples on how to use it. Reading this book I found a lot of useful information about different forms of using OSWorkflow.
There are many intresting topics that you can left behind in an enterprise application that use a workflow, an example is event management, and in this book you can found how to make it with OSWorkflow and Esper, and other main topic in this kind of applications is Business Rules, and there is a good coverage of this using JBoss Rules
Integration with Spring, JUnit, Hibernate are other topics that are very important when you use OSWorkflow also are covered in the book.
User review
Review from the creator of OSWorkflow
I can't believe it's been over 8 years since I first went from `open source user` to `open source developer`, but it was all the way back in 1999 when I released OSWorkflow, which was based on my work at Cisco Systems developing a document management system, to the open source world. It was designed to be a simple, easy-to-use workflow system based on the principles of the `finite state machine`.
While it was considered lower level than other competing business process solutions, it actually got quite a bit of traction due to it's simplicity and the fact that instead of using big `businessy` terms that other offerings used to describe themselves, it never hid what it was: a core finite state machine engine designed to make it easy to manage the workflow of many entities (people, issues, documents, etc).
Since then, OSWorkflow has been a pretty good success: a GUI for creating workflows was built, the development team evolved beyond just me (in fact, I haven't been involved in the project directly for 5+ years), became the core of the super-popular JIRA issue tracker, and now it has it's own book.
As the original creator of OSWorkflow, I was given a copy of the book and read through it the other day. In addition to the tremendous pride at seeing the contents in print, I was actually surprised to learn many new things about OSWorkflow. The book covers topics such as complex branching, rules engine integration, Spring integration (Spring didn't exist back when I used OSWorkflow!), and even tie in to those complex business process solutions I never quite `got`.
Overall, the book is an excellent guide to OSWorkflow and building workflow systems in Java in general.