InfoQ

Article

Book Excerpt and Review: OSWorkflow

Posted by Ryan Slobojan on Mar 26, 2008 08:00 AM

Community
Java
Topics
Workflow / BPM
Tags
JBoss Rules ,
JBoss Drools ,
Esper
OSWorkflow by Diego Adrian Naya Lazo discusses the open-source OSWorkflow, a Java-based workflow engine. As described on the official website:
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.
The book's publisher, Packt Publishing, also provided InfoQ with an excerpt from Chapter 4 of the book, entitled Using OSWorkflow in your Application.

InfoQ spoke with Diego Naya Lazo about the areas that the book covers and about OSWorkflow in general:

InfoQ: Why would I want a workflow engine in my application?

Diego Naya Lazo: Most business applications today mimic a real life business process. This process is made up activities and transitions between those activities.

A workflow engine enables the developer to model a business process and allows the application to go with the flow of information defined by the process.

InfoQ: What capabilities does OSWorkflow provide to an implementing application?

Diego Naya Lazo: OSWorkflow takes care of the workflow states, posible transitions, conditional checking, splitting and joining and all the business contraints of the process.

InfoQ: What are some examples of where OSWorkflow can be used inside of an application (as both a workflow server and a workflow layer)?

Diego Naya Lazo: For example, JIRA, the popular issue tracker uses OSWorkflow as a workflow layer. It delegates the ticket transition to OSWorkflow.

OSWorkflow as a standalone server is often found in corporate environments where the CIO wants to have a central repository of business process information. This information provides cross process analysis, suited for data mining and data warehousing.

InfoQ: How does OSWorkflow integrate with application development frameworks like Spring, Seam and Struts?

Diego Naya Lazo: OSWorkflow integrates seamlessly with Spring and benefits a lot with the use of transactions and Hibernate persistence.

Struts is a common companion of OSWorkflow, but there's no built in integration classes, the same with Seam.

InfoQ: How does OSWorkflow compare with tools such as JBoss Drools or Codehaus Werkflow?

Diego Naya Lazo: OSWorkflow complements the business process modelling with a business rules framework such as JBoss Rules. Hopefully the work of Mark Proctor in JBoss Rules 5 will enable a smooth transition for OSWorkflow users in a next generation environment, where processes, rules and events are first class citizen. You really want to check out Mark's in progress work.

Werkflow is an alternative to OSWorkflow, but lacks the great user base of it. Additionally, OSW is proven in scalability and performance features.

InfoQ: What is the difference between a workflow and a series of business rules?

Diego Naya Lazo: In the strictest sense a workflow and a rule are pretty much the same. A workflow is a series of steps that you want a user to follow, but according to some business logic. This logic are best represented with rules.

So, a workflow usually embeds business rules at each step. The rules themselves can be nested workflows.

InfoQ: How does OSWorkflow enable testability of an application?

Diego Naya Lazo: OSworkflow is designed with unit testing in mind, so is relatively easy to test your business process. It even allows a transient memory store so you can play with your test without neededing a database.

InfoQ: How does OSWorkflow integrate with components like Esper and Quartz?

Diego Naya Lazo: Esper is a event processing engine and has uses cases within the BPM domain. Mainly by causing a workflow step to emit some event to the engine so it can process it and react to it. Some workflow steps, such as loan approval are business events. These events given in context are relevant information to the business.

Event processing engines are suited for real time processing of those signals. OSWorkflow can emit signals to the engine from several business processes. The engine then correlates those events and detect patterns and raise alerts given a certain business condition, such as a loan of the same person on two different countries. This is a typical application of fraud detection using CEP engines.

On the other hand, Quartz enables OSWorkflow to be an active agent on certain periods of time, such as starting a new workflow every day or triggering certain steps or splits every two hours.

InfoQ: What sort of visualization of the current state of the application is possible using a reporting tool like Pentaho?

Diego Naya Lazo: Pentaho is a great reporting tool. Used in combination with any database can produce incredible results. OSWorkflow has a simple relational model and by using Pentaho you can create a portal, call a BAM (Business Activity Monitoring) portal. This serves the executive business user that wants to take a look at what's happening to his process. The visual representation is the most effective in certain cases.

Sometimes a simple table representation is the most effective visualization of data. Pentaho can help us out on this case too.

InfoQ: What areas do you think OSWorkflow is lacking in, and what is the best way to address those areas?

Diego Naya Lazo: OSWorkflow can improve on the documentation side. I'll be pretty busy updating the OSWorkflow tutorials and how-to guides. That's my grain of salt to help this exciting project.

OSworkflow + EJB3.0 + Spring by Kris Walker Posted Apr 1, 2008 12:34 PM
OsWorkflow Integration by Marcos de Sousa Posted Apr 1, 2008 3:37 PM
is OsWokflow still be maintained? by qian anchuan Posted Apr 29, 2008 1:52 AM
  1. Back to top

    OSworkflow + EJB3.0 + Spring

    Apr 1, 2008 12:34 PM by Kris Walker

    Can we use OSWorkflow with EJB3? I couldn't find any useful information on how to do it. I could easily integrate OSWorkflow with Spring and MemoryWorkflowStore, but what about EJB3.

    Please provide some tutorial or links to use OSWorkflow with Spring + EJB3.

  2. Back to top

    OsWorkflow Integration

    Apr 1, 2008 3:37 PM by Marcos de Sousa

    InfoQ: How does OSWorkflow integrate with application development frameworks like Spring, Seam and Struts?
    
    The popular web framework ZK www.zkoss.org has an integration 
    with OsWorkflow with an Component called ZkOsWorkflow check it in
    http://www.integratedmodelling.org/software/zk/zkworkflow.html
    
    Demo: http://www.integratedmodelling.org/software/zk/zkworkflow/zkworkflow-demo.html
    
    Marcos de Sousa
    

  3. Back to top

    is OsWokflow still be maintained?

    Apr 29, 2008 1:52 AM by qian anchuan

    I used OsWorkflow in my project three yeas ago. It is simple and extremely flexible, I love it, and it can be better.But it seems not bee maintained for a long time.

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.