Book Image

OSWorkflow: A guide for Java developers and architects to integrating open-source Business Process Management

Book Image

OSWorkflow: A guide for Java developers and architects to integrating open-source Business Process Management

Overview of this book

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.
Table of Contents (13 chapters)
OSWorkflow
Credits
About the Author
About the Reviewers
Introduction

Different Kinds of BPMS


Every business process has two types of tasks—manual and automated. Manual tasks require essential intervention of a human being, whereas automated tasks are done by computers or machines. A number of BPMS tools are suited to the human aspect, some support only the automated level, and others can implement end-to-end processes without hassle. These are commonly called people to people, system to system, and people to system BPMS.

System Orchestration with System-Oriented BPMS

First, we will talk about the system to system BPMS, so let's see how they were born in order to understand them well.

Some BPMS suites are descendants of Enterprise Application Integration (EAI) tools. EAI began in the mid-nineties to break the barriers placed in the way of integration of legacy systems. Legacy systems were separated into vertical silos and the integration of information and functionality was difficult, costly, and error prone.

Every application that needed to share or gain information from another system had to program a custom interface or connector for integration, thereby taking away time, money, and most importantly agility and flexibility to change.

EAI alleviated this problem by using proprietary connectors to legacy systems and having a central broker of information. This central broker had the ability to talk to several heterogeneous legacy systems (such as ERP, CRM, custom applications, and so on) and made the overall integration process much easier.

Integration became more affordable and faster, but the need for custom connectors made the solution expensive and provider dependent. These custom connectors used the proprietary language of the systems they were integrating, which made them expensive. There was no universal integration protocol to talk to every partner system.

The answer to a universal integration protocol came from standards like HTTP and XML. XML allows applications to share information without taking lower-level details such as the architecture of each system into account.

HTTP, originally designed for web navigation purposes, fit the bill of common transport. XML and HTTP, when used in combination to share information and functionality are called Web Services. The following figure shows an EAI broker sending and receiving information from different applications initially not suited to talk to each other.

The use of Web Services technology by all applications to share information and functionality with each other has made the integration process much easier and standard based. This has brought down the integration costs and allowed companies to embrace business changes faster.

An architecture based on the integration of services is called a Service-Oriented Architecture (SOA).

System Orchestration

Getting back to the different tasks of a business process, the automated activities are usually scattered across several systems, some core, some satellite, some legacy, and some new ones. The use of several disparate user interfaces and applications by an end user to perform a task such as an airline reservation is prone to error, lacks currency of the information, has a high training cost, and causes loses in productivity.

The main concept of system orchestration is to facilitate the business activity of the end user by eliminating the need for several separate information systems to realize the business process.

The orchestration systems query each system to gather information, combine this information, and feed it to other systems. So, to make an airline reservation, the airline clerk uses three to four systems. With orchestration this is reduced to a unique application. This scenario is very common in big companies where legacy systems are responsible for some tasks.

This has several benefits such as better information accuracy, reducing the information lag, and abstracting the end users from needing to know which systems have the functionality required. The following figure shows a sample orchestrator dynamic interaction between information systems.

The orchestration enables us to have higher-level services and composite applications.

Higher-level services use existing infrastructure such as a service for giving customer details and another for customer credit details, and combine the information into one service.

Composite applications allow the user to use only one user interface to query several sources of information and services without knowing the rest of the applications.

Some BPM tools implement only the system orchestrator component and talk only the Web Services standard, while others also have custom connectors to share information with legacy systems.

System orchestration can be done with systems inside an enterprise or across industry partners or in companies using heterogeneous applications. The OSWorkflow workflow engine can be used as a system orchestrator to automate system interactions. We will talk about this in Chapter 7.

Enabling Workgroup Collaboration with People-Oriented BPMS

We have covered the automated part of a business process. Now, let's take a look at the manual tasks requiring frequent or mandatory human intervention.

In our day-to-day life, we often find ourselves coordinating activities with other coworkers. Business processes tend to require a lot of coordination and organization of people's work, and it grows exponentially with the number of people involved. It gets even more complex with a broad geographic distribution as is the case with multinational companies.

The successful completion of a business process depends on the coordination of the people.

BPMS technology can facilitate workgroup collaboration through sequencing of activities, reminders, alerts, escalations, automatic approvals, etc. This automates the operational and tedious task of coordination and enables collaboration between different company departments.

For human interaction, people-to-people BPMS suites provide a user interface (web, fat client, or email) for the users to interact with the business processes and collaborate with each other. Collaboration is sharing knowledge about a process or a work item, increasing productivity, and increasing communication between coworkers.

This user interface guides the user through the process, manages the user roles and to-do tasks, gives search capabilities, and other useful features.

The usability of this user interface is a critical success factor in the implementation of a human-oriented BPMS. The following figure shows a sample BPMS user interface suited for human interaction.

An important thing to notice from the screenshot is the user-friendliness of the interface. This interface orders the processes into folders with user-defined criteria and serves as a unique front end for all business processes. This means that the user interacts with all the business processes through this GUI thereby making the experience more consistent. Moreover, it is easier to use and so significantly less user training is needed.