InfoQ

InfoQ

Article

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Book Excerpt and Review: OSWorkflow

Posted by Ryan Slobojan on Mar 26, 2008

Sections
Architecture & Design,
Development,
Enterprise Architecture
Topics
Java ,
Workflow / BPM
Tags
JBoss Drools ,
JBoss Rules ,
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
OsWorkflow Integration by Marcos de Sousa Posted
is OsWokflow still be maintained? by anchuan qian Posted
  1. Back to top

    OSworkflow + EJB3.0 + Spring

    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

    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
    www.integratedmodelling.org/software/zk/zkworkf...

    Demo: www.integratedmodelling.org/software/zk/zkworkf...

    Marcos de Sousa

  3. Back to top

    is OsWokflow still be maintained?

    by anchuan qian

    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

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.