Introduction
Before we start digging into workflow, it's important to know something about its history first. We know that the basic objective of all business organizations is to generate revenues and reduce their expenses. With the advent of technology and tremendous experiences, now organizations are able to reduce their costs, generate revenues and satisfy their customers easily.
Workflow is the result of advance technologies and huge experiences of business experts. Workflow Management Coalition (WFMC), a non-profit organization that creates standards for workflow, spent many years in understanding workflow so that organizations can be benefited by this revolutionary idea. To gain the maximum benefits of workflow, it is very important to implement workflow correctly but first of all let's understand, what's this workflow in itself?
What is Workflow?
According to Workflow Management Coalition, workflow is defined as:
|
"The automation of a business process, in whole or part, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules."
|
Generally, in workflow, a business process (or simply a process) is automated and the Work Item (or data) is transferred from one Participant or worker to another participant who processes data and hence, data changes in stages as it continues to move between participants. Finally, the business goals are achieved when the workflow is completed.
Workflow is composed of a series of logical steps called Activities. An activity can invlove the manual or automated interaction of the workflow participants, which increases the efficiency of the workflow processes.
Workflows are controlled by Workflow Engines, special tools to monitor workflows. Not all, but most of the workflow engines have the ability to process very complex series of processes using the complex mathematical expressions. Many new mathematical concepts like Pi-Calculus, Petri Nets etc. are being introduced to deal with the complexities of workflow processes being faced by the workflow industry.
What is Workflow Management System (WFMS)?
Workflow Management System (WFMS) is defined by WFMC as:
|
"A system that defines, creates and manages the execution of workflows through the use of software, running on one or more workflow engines, which is able to interpret the process definition, interact with workflow participants and, where required, invoke the use of IT tools and applications."
|
Workflow Management System; by name, it seems that it is some system to manage workflows but infact manage is a very small word to describe the working and functionality of a WFMS. Workflow Management Systems perform many reponsibilities regarding the workflows. WFMS is used to:
- Accept a workflow definition as an input and then interpret that definition
- Manage all activities and related participants in the workflow
- Manage workflow security
- Manage notifications and triggers
- Manage various workflows running concurrently
- Interoperate with different kinds of applications etc.
The above features of a WFMS are like brief features list. Actual features of a WFMS may vary from vendor to vendor who offer Workflow Managements Systems.
Workflow Example
To describe the importance and understanding of workflow, we are going to discuss a simple example of Contract Preparation Process.
The Manual Process - Before Workflow
A Contractor submits a paper contract, which is reviewed by an authorized person called Reviewer. After reviewing the contract, Reviewer accepts or rejects the contract. If the contract is rejected then it is discarded but if it is accepted then the contract details are sent to a Consultant to advise on that contract. After the Consultant advises, contract is passed to the Invoice Creator, who creates an invoice for that contract after adding amount for that contract. Finally the invoice for the contract is created and Contractor is informed about the contract completion. During the processing of the contract, Contractor may contact the related persons to know about the status of his contract.
The Automated Process - After Workflow
The Contractors visit the website of the company and create contracts securely using password protected pages. Contracts with their details initialize the workflow once they are created. Reviewers login to the company's website and check all contracts created in the mean time. Reviewers review and make decisions to accept or reject the contracts. If a contract is rejected then the workflow of that particular contract stops but if it is accepted then the contract's state is set to reviewed. Consultants would log into the company's website and would check for any reviewed contracts. After checking the reviewed contracts, consultants write their advices for reviewed contracts and submit to the company through its website. Invoice Creators access the website using their user credentials and check for all advised contracts. They enter amounts for all advised contracts and submit to the company. Invoices are automatically created by the company's website and emailed to the contractors. After the invoices are created, states of the contracts are changed to confirm that the contracts are completed. During these different stages of the workflow, contractors are able to see the status of their contracts on the company's website any time to keep themselves updated.
|
|
|
Figure: Workflow process design of Contract Preparation Process
|
There is no doubt that the automated process definitely increases the efficiency of the contracts preparation process. Time and efforts are reduced. Communication between the people is more faster. Automation of this process reduces the cost of the company and most important thing for the company is to achieve a competitive advantage on its competitors.
Types of Workflow
There are many types of Workflow depending upon its uses and user requirements as follows:
Production Workflow
Production Workflows are used to handle large number of similar tasks. They can handle very complex series of processes. In production workflows, it is tried to achieve automation more and more so that the productivity can be increased. Production workflows can also work with company's existing applications.
Production Workflows are further divided into two categories:
Autonomous Workflow Engines
Autonomous Workflow Engines can work without requiring any other special software but they do require database management systems and message queuing middleware. These engines have their own interfaces and they can access data from different applications.
Embedded Workflow Engines
Embedded Workflow Engines cannot work until they are embedded into another system. Being a production workflow, embedded workflow engines can also handle very complex series of processes.
Administrative Workflow
Administrative Workflows target more towards flexibility rather than productivity. The main objective of these workflows is to ease the designing of the processes. Mostly, administrative workflows provide good user interfaces to design the processes graphically that reduce the efforts of process designers.
Collaborative Workflow
Collaborative Workflows facilitate a group or team of people working together to achieve some common goals. These workflows provide a good communication between team members to work together on the same workflows. Process definitions created in these workflows are not rigid and can be modified frequently.
AdHoc Workflow
AdHoc Workflows allow users to design, create and modify process definitions in a quick and easy manner under different cirumstances. Infact, adhoc workflows empower their users to deal with process definition under sudden conditions that increases the flexibility for the users. In such workflows, it is possible to have a greater number of process definitions for the system than necessary. In such working environments where security and output are not big issues, adhoc workflows offer more flexibility.
Components of Workflow
According to Workflow Reference Model of WFMC, Five Interfaces (or workflow components) are defined:
Process Definition Tools (Interface 1)
Process Definition Tools provide an interface between process definitions and the workflow engines. Infact, these tools are used to design process definitions, which can be further interpreted by the workflow engine to manage the workflow. One famous process definition tool offered by WFMC is XPDL, XML Process Definition Language that will be discussed in next topic.
Workflow Client Application (Interface 2)
This interface includes the Workflow APIs for client applications so that they can interact and request services from workflow engine to control workflow processes, activities and work items. In simple words, client applications communicate with workflow engine through these Workflow APIs.
Invoked Application (Interface 3)
It includes the Workflow APIs for allowing the workflow engine to invoke different kinds of applications using common agent (Tool Agent) software. These invoked applications implement the logic of the workflow applications. So, these applications are implemented according to the nature of processes. Whenever, it is needed to perform some activity on client's request, workflow engine invoke these tool agent based applications to fulfill the client's request.
Workflow Interoperability (Interface 4)
This workflow component defines some Interoperability Standards & Models to support the communication between different workflow engines. Using this interface, different workflow engines developed by different vendors can work with each other.
Administration & Monitoring Tools (Interface 5)
This interface defines the Monitoring & Control Functions of the workflow engines by providing workflow audit information. For example, what is the current state of a process instance? Using such information, it is possible to administer and monitor the activities of the workflow engine.