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.