3.3.1 Characteristics of Workflow
The key characteristics of workflow are co-ordination and interaction between different modules, duration of a process, and human interaction. Already we have gone through the modular approach of cloud computing architecture; there are different software-based components or modules which are assigned to different tasks. So, there is a need for workflow co-ordination and proper interaction between different modules. We can also predetermine or measure the approximate duration that can be calculated in weeks, days, hours, and even minutes. Human interaction is a considerable part of the process because, after all, cumulative work of human interaction has made all of this possible.
3.3.2 Need for Workflow
This section discusses the need for workflow.
Workflow modeling is required for monitoring schema, insight, and performance optimization. For monitoring schema, knowing which individuals are contributing work to which business process is very useful when trying to understand costs and workloads. A group of interrelated workflow models is there to be used to gain insight into the stream of the work. Through this workflow model, the service developers can provide the module-wise functionalities; so they can bring the modules together for a particular task to optimize the business process which leads to the performance optimization.
A model-driven approach describes the workflow system. Service developers are using UML diagram and other modeling techniques for implementing the workflow system. Many workflow tools are also used for that purpose only. Workflow system also provides a state machine model and sequential model; these provide an overview of how workflow is going on in the system.
Apart from that, at the end of this discussion, we can conclude that workflow management is also responsible for the following functionalities: Automation of individual business process, compliance report, customization of predefined workflows, ready-to-use forms and workflows, development and integration of company-specific processes, tool sets for graphical process modeling and simulation, transparent workflow process, and email notification for workflow process.
However, in a workflow system, one term is often used, and that is business process, which is defined as a collection of related, structured activities which provide a particular service for the customer.
Davenport [16] defines a (business) process as:
“A structured, measured set of activities designed to produce a specific output for a particular customer or market. It implies a strong emphasis on how work is done within an organization, in contrast to a product’s emphasis on what. A process is thus a specific ordering of work activities across time and space, with a beginning and an end, and clearly defined inputs and outputs: a structure for action... Taking a process approach implies adopting the customer’s point of view. Processes are the structure by which an organization does what is necessary to produce value for its customers.”
Rummler and Brache [17] use a definition that clearly encompasses a focus on the organization’s external customers, when stating that
“A business process is a series of steps designed to produce a product or service. Most processes (...) are cross-functional, spanning the ‘white space’ between the boxes on the organization chart. Some processes result in a product or service that is received by an organization’s external customer. We call these primary processes. Other processes produce products that are invisible to the external customer but essential to the effective management of the business. We call these support processes.”
Following are the basic functionalities that support the workflow system:
Build-time functions are concerned with defining, and possibly modeling, the workflow process and its constituent activities.
Run-time control functions are concerned with managing the workflow processes in an operational environment and sequencing the various activities to be handled as part of each process.
Run-time concerns interactions with human users and IT application tools for processing the various activity steps.
3.4 Examples of Workflow Tools
Various tools are used for the workflows in cloud computing environment. In their paper, Monika Bharti and Anju Bala [15] elaborately describe different workflow tools and their respective operating system, the language they are written in, year of release, developer of the tools, description of the tools, architectural style, database used, and respective companies [16-25].
Table 3.1: Workflow tools in cloud computing.
Tool | Language | Year | Link |
UGENE | C++, QtScript | 12/2011 | ugene.net |
Bonita Open Solution | Java | 01/2011 | www.bonitasoft.com |
Google App Engine | Python, APIs, URL fetch | 2008 | cloud.google.com/appengine |
OrangeScape | Java | 2003 | www.orangescape.com/ |
Kaavo | Java, PHP | 2007 | kaavo.com.cutestat.com/ |
Oozie |