Advertisment

Bring order to the workplace

author-image
PCQ Bureau
New Update

Anadi Misra, Anil Chopra and Sanjay Majumder

Advertisment

As the old saying goes, 'experience is the best

teacher', meaning all theory is waste till it's put to practice. Last month,

we took you through workflow automation strategies with the help of a fairly

simple example from a BPO company. This time we're actually putting the theory

into practice and taking you through setting up some commercial as well as Open

Source solutions for workflow automation and business process management. The

concept of workflow automation is nothing new. In fact, just about every

organization already has some amount of automation already in place. A small

organization receiving customer orders via email has already done some amount of

workflow automation. The orders come through email and are forwarded to the

accounts people, who put it into the accounting application, raise an invoice,

and mail it back to the customer. A larger organization would probably deploy

ERP to handle the same job because it's done at a much larger scale. So

what's the need for a workflow solution you might ask? In the first case, the

workflow automation is completely ad-hoc. You have email in place, so you're

using it to speed things up. In the latter case, while ERP definitely helps

automate, how do you ensure that all the processes in it are adhered to? How

well is it being monitored? Is there an escalation procedure put in place to

ensure that the processes are being followed? Can you pull out individual

productivity reports that tell you where the bottlenecks are? Chances are that

at least some of these things are not possible with your current setup. That's

where a workflow solution comes into the picture.

There are several different types of workflow solutions

available, for organizations of all sizes. For instance, if you already have

Microsoft Exchange or Lotus Domino, then both products allow you to establish

simple messaging based workflow solutions. If the organization has several

different applications working across various divisions, and you'd like to

establish communication between them, then you'd probably use BizTalk Server

to establish that workflow. If you already have some enterprise business

applications running, but need to monitor them closely and ensure that the

processes they've automated are enforced and run smoothly, you could look at

OmniFlow. These are all basic examples, which in no way mean that those are the

only capabilities of the products we've talked about. They're just a few

scenarios that they're capable of handling. The value of a workflow solution

is determined by how well you can map your business processes to it. Will the

workflow solution help you to define the process and create a logical flow for

it? How much coding would be required to link the various steps? Would you need

to recruit developers especially for the job? How much would the workflow

solution cost? And more importantly, how much of a change would you need to

bring into the workplace to use it? These are just a few questions you need to

ask when choosing a workflow solution. In this story, like we said, we've

actually tried out various workflow solutions, both Open Source as well as

commercial to see what it really takes to implement workflow in the office.

Advertisment

Choosing a workflow

solution




Steps involved in modeling automated workflow in your

organization, before implementing it 'live'

Business Process Management (BPM) and workflow automation

have proliferated into many organizations today. BPOs, banks and other financial

organizations, and even production houses have all either exploited these

technologies for their benefits or are transiting towards them. BPM and workflow

might seem similar at first glance, but a careful analysis reveals the

differences between the two approaches. BPM encompasses the analysis of the

business process both in its current state and its possible developed stage,

i.e., as it is and as it will be. The exercise mostly precipitates into

developing more efficient processes or integrating technology into certain areas

to improve the overall productivity of a system. It includes manual activities

or processes and represents the conceptual level of the enterprise while keeping

the technical aspects segregated from the entire exercise. Workflow modeling on

the other hand is more inclined towards the technical aspects of implementing an

automated model for existing tasks or processes. It focuses primarily on

processing digital office or business documents and does not consider manual

processes or facilitates at the conceptual level of decision-making. It provides

assistance in these activities.

Advertisment

Analyze your business process



Major factors that affect this exercise are complexity of the

existing system, the environment in which the proposed system will work, and of

course the costs involved. Complexity depends upon the various sub processes

outlined to complete a business task. It doesn't simply mean the intricacies

of the existing system but a broader perspective encompassing the optimal

utilization of resources, processes, and even users along with the system. The

environment generally includes the existing infrastructure in place. This means

that choosing a solution can only be done after the business requirements have

been finalized and questions like what needs to be automated; who are the end

users involved in the system; where and when the activities will take place; and

cost factors such as ROI have been analyzed. Only then can the right workflow

model be chosen.

Identify requirements and the

target users



Bringing in the end-user during identification of the solution that

best suffices your needs is a good option. This is very important as it gives a

better picture down to the workers' level.

The important questions that need to be answered over here

are which end user receives what information; what action succeeds the receipt;

how should this information be utilized; is there any scope of improvement in

the way the information is utilized. Analyzing user requirements gives a more

discrete view of which tools will be best suited.

Advertisment

Change management



A workflow solution has to be able to seamlessly integrate into your

existing IT infrastructure. Thus the scalability and adaptability with

heterogeneous environments is a desirable quality for any workflow or BPM

solution being implemented. Despite having an infrastructure in place, there

might still exist processes or systems that require a complete change or make

over to either increase the productivity or provide a more centralized

architecture to the existing system. There can be two approaches to this, to

re-engineer the entire process (the classical monolithic approach of

development) or to introduce the new system in phases.

Bringing in a change to existing system has its own

challenges; particularly the cost factor becomes one of the most important

metrics here, as an organization might want to first be reassured on the

perspective gain from the new system and particularly the period after which the

organization recovers the cost incurred. In other cases, change might be desired

to improve or centralize the organization structure itself for efficiency

purposes. For example a bank might decide to proliferate operating branches in a

geographical area and concentrate a major chunk of the processing in a single

centralized office for that particular area. Whatever be the reason industry

experts would always accept the fact that this remains one of the most typical

stages in an implementation till date.

Patterns of

an automated workflow process




During the stage of charting out the anticipated process, three patterns of

workflow implementation are available. The Independent pattern is one in which

each component of the workflow process is completely independent of each other.

In such implementation processing, any component is independent of the other.

This pattern can be applied in scenarios such as processing requests for loans,

wherein the evaluation of limit and verification of the applicant can go

independently. In the Sequential Pattern, each work component is dependent on

the preceding component. In this case the preceding component controls the

workflow through subsequent components. The scenarios where such a pattern can

be employed are workflows addressing requests by an employee from his immediate

seniors or from another department. The third pattern is Interdependent or

Network pattern in which each component of the work is dependent on one or a

number of other components being completed. In this case the preceding

components control the workflow through subsequent components. A process for

creating weekly roster for employees within a particular process in a call

center is a scenario where such patterns can exist. The process finalizing the

roster would be dependent on processes for forecasting call flow, process

calculating number of employees available in the coming week, process scheduling

the login hours and break schedules for various teams etc. Once these steps have

been performed, we have enough useful information to look into the available

products and choose the one that would provide the best solution.



                               

Advertisment

Workflow products and technologies



There are many commercial and Open Source workflow solutions

available. But while choosing a solution, you also need to be clear about what

you need. Is it a tool for BPM (Business Process Modeling) or WfM (Workflow

Management).

Microsoft Exchange for instance, is a messaging and

collaboration server. It enables sending and receiving messages in the form of

electronic mail and other forms of interactive communication. It can operate

with clients such as Outlook, Outlook Express, etc. It is also useful in

implementing message based workflow implementations. We've given a sample

application on this platform in this story.

Lotus Domino is another product on the same line. This also

provides a message driven solution for workflows. Microsoft SharePoint is

another product that can be used for workflow automation. It's basically a

portal application that provides features such as content administration,

document repository, message board and e-mail notifications.

Advertisment

Other workflow solutions include PDF Workflow technology,

developed by Oce of UK, which is based on Adobe Acrobat. It's basically an

implementation of a document/image driven workflow. The obvious advantage is the

reduced transfer time achieved due to the usage of PDF files.

Some vendors have also implemented workflow solutions based

on wireless/mobile technologies. For example, Intela Trac developed by SAT Corp

is industry workflow automation software used on rugged mobile handheld devices.

On the Open Source platform, there's Enhydra Shark, which is developed in

Java. It complies with WfMC (Workflow Management Coalition) and OMG (Object

Management Group) specifications. You can integrate this solution with a Swing

Application or a Java Web application also. Another similar product is Bonita.

Omniflow is another BPM solution, which keeps you away from

the hassles of programming while implementing a solution. Plus, it can be

integrated with your existing ERP infrastructure and other existing automated

business processes.

Advertisment

Implementing Workflow in Exchange

2000




We setup a simple leave application process on the server, design

the complete process, and automate the same

Exchange is one of the most popular messaging platforms,

but that's not the only function it can achieve. You can also configure

Exchange to automate small business processes in you office. It has an

entry-level built-in workflow system, which can be leveraged for automating

simple processes. Designing the whole workflow system, however, is a bit

complicated and would require both Exchange administration and some VB skills.

Here, we'll demonstrate how to configure a workflow system for a leave

application process. In this process, a user files a leave application in a

pre-defined mail form in the workflow system. Then, coding in the workflow

system processes the mail and fetches the required data from the mail form and

forwards it with a new mail form to the concerned authority for approval. If the

leave gets approved, it's forwarded to the personnel department and a

notification is sent to the user thereafter about his/her leave application

status. The entire workflow implementation is divided into two parts, server

side and client side. The former requires Exchange administration, while the

latter requires VB skills.

Configure the component service and set the roles for 'Can Register Workflow' and 'Privileged Workflow Authors'

On the server side



Here, you need either a Windows 2000 or a Windows 2003 server with

Active directory, and a MS-Exchange 2000 server fully configured and running. We

used a Windows 2003 server for the job. To configure the workflow on Exchange,

you need to first create a username 'Workflow System', open this user's

properties and add it to the Exchange domain server group. Next, configure a

workflow engine on the Windows domain from Start>Programs>Administrative

tools>Component Service. Here, select Component Services>MyComputer>COM+Applications>



WorkflowEvent.Sink>Roles. You will get two components-'Can Register
Workflow' and 'Privileged Workflow Authors'. In both , add the user that

you just created by right clicking the user icon and selecting 'New' from

the context menu. After this, select the components folder under 'Workflow

Event.Sink' and select 'CdoWfEvt.EventSink.1' and then open its property

by right-clicking on it. On the property sheet, click on the Security tab and

check 'Enforce Component Level Access Check' and in 'Roles Explicitly Set

by Selected Item', check both 'Can register Workflow' and 'Privileged

Workflow Authors Object' and click on Apply.

After this you have to create a public folder, where you

will host your entire workflow system. To do this, start Microsoft Outlook and,

on the View menu, select Folder List. Then expand the public folders node and

then expand All Public Folders. Here right-click 'All Public Folders' and

select New Folder. Give the name for the new folder, such as Leave. This folder

will be used by your Exchange Workflow Engine.

On the client side

A sample workflow design using Exchange Workflow Designer for automating a leave approval process in an organization

On the client side, you need MS-Outlook and Workflow Designer for

Exchange tool. We've given it on this month's PCQuestXtreme CD. The first

thing you need to do after installing it is to create a user interface, which is

basically an Outlook form for the user to fill in the leave application. To

create the user interface, open MS Outlook client and click Tools>

Forms>Design a Form. This will open a window asking to choose the type of

form you want to design. Select 'Post' from the list and click on OK. Now

you will get a design form on your MS Outlook screen. Here, from the tool bar

you will see two buttons 'Edit Compose Page' and  'Edit Read Page view' button. 'Edit Compose Page

View' is used by the person submitting the leave form to input data into the

leave fields. It appears when the leave application is created or composed. You

are shown this view automatically when you are designing a form. The text boxes

on the form provide values to the script used in the workflow. The 'Edit Read

Page View' is used by a manager to approve or reject the leave. It contains an

approval and rejection combo box in addition to the leave text box.

Creating Edit Compose Page View



Open the Outlook mail client and open the public folder that you have

created in the server configuration section. This folder will be used by the

workflow system. Then open a design form as mentioned above and click 'Edit

Compose Page' button from the tool bar and design the form according to your

needs. For example, for the leave form application, resize the message area to

create space for the Leave form fields. On the form right-click and click on

Control Toolbox, then add the following labels

Controls Properties



 Number

(label) Caption: leaves

Next, add the following controls to the form to enter and

display the leave values (number of leaves that one needs to avail). To modify

the associated properties of the controls, right-click the control and then

click on 'Properties'. On the Value tab, click on the 'New' button to

specify a user-defined field that the workflow script can use as a reference.

Controls Properties



Leave textbox

Name: No_leave



Type: Number


Submit checkbox
Name: Submit



Type: Yes/No


Format: True/False


On the submit property sheet, Check 'Set the initial

value to this field' and set 'No' as the default value.

Creating Edit Read Page View



In order to create the Edit Read Page view of the Outlook form, Go to

Edit Compose Page view of the form, select and copy all of the controls you

added to the form. Then click Edit Read Page and resize the message area to

create space for the controls, and then paste them in place. Arrange the pasted

controls according to your need and add a combo box control to the form. Then

right-click the combo box control and click on 'Properties'. Click 'New to

set a user-defined field and set the properties shown in the following

Property Value



Name

Approved



Type

Yes/No



Format

Yes/No



List type

Dropdown



Possible values   

Yes;No



Initial value

No

Once you have finalized both forms, you need to publish

them to the public folder and make them available for your workflow system. Do

this by going to the Tools> Forms in Outlook and select 'Publish Form

As'. Here, specify the form name and click on Publish.

Note: The name you provide is the name that the users see

when they choose a form to post in the workflow public folder. We've called it

'Leave Application Form'.

Go to the folder list and right-click on the folder you

want to add the workflow in, and click on Properties. Then in the 'When

posting to this folder use' selection box, select the form you published above

(Leave Application), and then click on OK. With this, your form design part is

over. Next comes the coding to make the process work. Before that, the developer

has to plan how the workflow of a particular process needs to be automated by

drawing a workflow process on a piece of paper. In this, the developer needs to

visualize where to add code that will extract data from the mail forms and

process it and then decide where to send the processed data. Once you're ready

with the plan, use Microsoft Workflow Designer for Exchange to design you

workflow process. In our case there were only three elements in the workflow

design-Draft, Submit to manager, and Approved.

Launch Workflow Designer from Program Files>Workflow

Designer for Exchange>Exchange Workflow Designer. On its interface, go to

File>New Workflow Project. Give your project a name and enter your Exchange

Server's name or IP address and public folder location for leave applications

in the location text box. This would be of the format

http://Your-Exchange-Server's-IP/Public/leave application. Click on OK and

you'll be asked to provide a username and password. Give the credentials you

created for this folder in the server setup section. After authentication, you

will get a design window where you have to draw the diagram of your workflow

system. Here, go to the diagram menu, click on Arrange Diagram, and then click

on Vertical. Then right-click the design window and click on Zoom and then click

on 'Zoom to Fit'. Initially, in the diagram window, you will see Item

Created and Delete object. You have to design the process between these two

states.  

Adding States to the workflow

diagram



States are the various stages of your workflow processes. You can add

states to the workflow diagram representing each stage through which an item

might pass during processing. In our example, the states used in the leave

application workflow diagram are: Draft, Submit to Manager, and Approved. You

can drag and drop these state objects form the tool bar. Create the states

according to the diagram of the leave process in this article.

Adding Transition actions to

States



Transition is basically a line connecting the states. This is where

you have to add code for actions like Submit or Reject. These establish

relationships between the states in the workflow and also provide a place to add

the script for automating the workflow. In addition, workflow actions can be

used to evaluate conditions and to trigger scripts that automate your workflow

process. To add an action, just select the Transition actions from the tool bar

and draw a transition between the states that you have created from your

process. Let's see how you can add code to the transition using this leave

application example.

You can divide the code in two segments-Shared script

procedure and user-defined script. A Shared script procedure is created on the

Shared Script tab in the Workflow Designer. Scripts in the shared script tab are

common library of script routines. These procedures are used frequently in all

states. When you plan to use a procedure or function in your workflow process,

you create it once on the Shared Script tab and then call it from the Condition

Expression text box and from the Action Script Procedure text box.

This condition expression is the first script, accessed by

the workflow engine in response to a given workflow action. By default, the

condition expression returns a value of True. You can modify this value by

typing 'False' in the Condition Expression scripting box, creating an

expression, or calling a function from the Shared Script tab to perform the

task. User-defined scripts are written by the developer to perform certain tasks

in the workflow. To create a procedure or function on the Shared Script tab,

click Process List, and select the workflow process that you are working on.

Then in the Workflow Process pane, select the Shared Script tab. Here create

procedure, including Sub and End Sub tag.

 To complete

the leave application example, we have added the action conditions, and script

specified in the following procedure. This script calls user-defined functions

specified in creating the Shared Script procedures. On the diagram, select the

Submit to Manager State, and add the transition. Instructions for setting the

transition properties can be accessed at  http://forums.pcquest.com

under the current issue.

The procedures used in this example rely on each other.

When using the example script, be sure to verify that all parameters and

dependent functions exist in the workflow script.

Script such as Submitleave and Approveleave are

user-defined functions which is used to submit leave applications to the manager

and then the other script deals with accepting or rejecting the leave. You'll

find the code for these also on the PCQuest online forum.

Activating the workflow



Once you're done with the coding, you have to activate the code in

the workflow system. For this, go to properties of the leave application project

and select the Default workflow property. Select the process list that you want

to add in this workflow folder. Then on the same property sheet, set

workflowEnable=True. This will activate the code written in the designer to the

exchange workflow engine.

Using the workflow process



Now a user in the organization can file his leave application from

their Outlook client itself. The leave folder from the Exchange Public folders

will automatically appear on every user's system. Go to this folder and click

New to display the leave Application form. Enter the reason for leave in the

subject field. Fill in the number of days for which you'd like to have leave

and check the submit check box for your manager's approval. An e-mail message

will be sent by the workflow system to your manager. When the manager opens the

mail, then he'll just have to accept or reject the leave. In both cases, the

notification will be sent to you by the workflow system.

Implementing Bonita



An Open Source workflow system

Bonita is a J2EE-based Open Source workflow system

application, which allows you to execute, monitor and coordinate the flow of

work in an organization. It is completely browser based and can be installed on

both Linux and Windows. Bonita can be used for mainly two kinds of processes.

One for controlling and automating processes to make sure that appropriate

policies are enforced for software delivery. Second, to review production

processes, which helps users in doing their day to day work on time.

Requirements



We simply installed Bonita on a Windows XP machine. You'll first

need to download the JOnAS Application Server (JOnAS4.6.3-Tomcat5.5.12). This

can be downloaded from http://forge.objectweb.org/project/download.php?group_id=5&file_id=5017.

Next you need JDK version 1.4, which can be downloaded from http://java.sun.com/.

Then you need a database to save your workflow process data. Bonita supports

databases like mysql, postgres and Oracle, but if you don't have one, then

JOnAS Application server has an embedded database called hsqldb. Using Bonita

with this database doesn't require any configuration. You'll also need

Apache ANT, which is a JAVA based that can be downloaded from http://ant.apache.org/index.html.

Lastly you need Bonita, which can be downloaded from http://bonita.objectweb.org/html/Download/index.html.

We also gave a copy of it on our last month's CD.

Installation

Design workflow on Bonita by selecting the 'Original process instance' under the 'Project Manager' Window

First install JDK 1.4 and set its environment variable to JAVA_HOME =

(eg: c:\jdk1.4\). Next unzip Apache ANT file, apache-ant-1.6.5-bin.zip and copy

the unzipped folder to c:\  and set

an environment variable ANT_HOME=(eg: c:\apache-ant-1.6\). Next run the JOnAS

installer on your machine, which will automatically detect your JDK path and ANT

path and will install the Application server on your machine. Then create

another environment variable JONAS_ROOT and set its value to (c:\JONAS_4_6_3\).

Finally, install Bontia. Unzip the Bonita workflow system and copy the unzipped

folder to c:\ and set its environment variable to BONITA_HOME - your Bonita home

install directory.

Configuration



First you need to configure Bonita with the JOnAS application server.

To do this, open a command prompt window and go to the Bonita home directory.

Here open the .ant.properties file and set the value of your hostname and web

port on which you want to host the Bonita workflow system. Then on same

directory issue this command “Ant config”. This will configure basic stuff

for Bonita on the JOnAS application server. After this you have to configure the

database of Bonita. If you are using the JOnAS embedded database then you

don't have to do any thing. Otherwise for other databases, you have open the

c:\JONAS_4_6_3\conf folder. Here open the config files for your favorite

database (Name_of_Database.properties) file. Open this file in Notepad and fill

the data source configuration according to your setup. Then you have to copy the

database driver jar file to the c:\JONAS_4_6_3\lib\ext folder. You can get the

latest database jar driver from your database vendor's site. Then you have to

configure it on your application server with your database. Open the

c:\JONAS_4_6_3\conf folder and open “jonas.properties” file. Add the bonita

datasource name: jonas.service.dbm.datasources

Then in the same folder open another file c:

\JONAS_4_6_3\conf\a3servers.xml and set the hostname value (localhost by

default) at line: server id="0" name="S0" hostname="localhost".

This value must be the same as what you've defined in BONITA_HOME\.ant.properties.

Next open JONAS_4_6_3\conf\carol.properties file and set the value of jrmp URL:

“carol.jrmp.url=rmi://localhost:1099”. Make sure that the host name and port

name values must be the same as what you've defined in $BONITA_HOME\.ant.properties

file for "bonita.host" and "jrmp.port" properties. Then open

JONAS_4_6_3\conf\ jaas.config file and add the following lines

bonita {



   
// Use the resource dsrlm_1



   
org.objectweb.jonas.security.auth.spi.JResourceLoginModule

required



   
resourceName="dsrlm_1";



   
// Use the login module to propagate security to the

JOnAS server



   
org.objectweb.jonas.security.auth.spi.ClientLoginModule

required ;



};


bonita-policy {


   
org.objectweb.jonas.security.auth.spi.JResourceLoginModule

required



   
resourceName="dsrlm_1";



   
// Use the login module to propagate security to the

JOnAS server



   
org.objectweb.jonas.security.auth.spi.ClientLoginModule

required;



};

With this your configuration is over. Now you have to

compile Bonita so that it gets integrated with the JOnAS application server. For

this open a command prompt and go to Bonita home directory and issue the

'ant' command. This will compile Bonita with JOnAS.  Now it's time to start Bonita with the application server.

For this, click Start>Programs> JOnAS>Start JOnAS (back Ground). Then

open a command prompt and go the Bonita home directory and issue the 'ant

initDB' command. This will initialize the Bonita environment. To access the

Bonita workflow system, open a web browser and type the URL

http://localhot:9011/bonita.  On the

Web page, you'll see a list of all the project's processes and their status.

To see the detailed activity, click the project that you want to look for and

you will be asked for a username and password. The default user name and

password for administrator is 'Admin' and 'toto', respectively.

Working model of sample workflow process implemented on Bonita

Using Bonita workflow



To understand and design workflow in Bonita, you need a JAVA

developer because you have to do a bit of coding.  Bonita is divided in two parts. Working on the workflow

process is totally browser based, but managing or creating a workflow process is

done using Java applets. The applet allows you to design the process in a

graphical way unlike some other workflow designers. Let's see how to design a

process. From its Web interface, click on 'Manager' link. This will launch a

manager applet , asking you for admin user name and password. After

authentication, you can create new projects for your process. On this GUI

applet, you have three sections projects, To-do lists, and activity. In project,

you will be shown a list of projects represented as a tree. The tree shows the

detailed project instances in which users are taking part (only for

administrative project). Plus you can do operations like Active/Hide, terminate,

instantiate or clone of existing project.  The

To-do list shows ready and anticipated activity of current project with

associate users, who are working on the project.

The activity in the to-do list is shown in two

colors-yellow and green. Yellow shows activity in ready state and green shows

activity in anticipated state. Coming to the activity section, it shows

executing and anticipated activity of current selected project. To try this out

create new project and instance. After creating the new project, you have to

create instances. Instances are basically processes running under a project.

This allows you to define small pieces of workflow process and then interlink

them together in the project. On double-clicking the instance, the manager will

launch a graphical tool to draw a business process model. On the graph-editor,

down left corner, you will have three objects, which allow you to draw process

activities. Plus the user can identify the workflow execution by means of the

activity's color changes. Here only you can integrate routing of activities to

other users or processes, if the activity is pending or not done. At this you

can add users to the process and assign them roles. Activity can also be hooked

to a subprocess or different processes under the same project using Java syntax.

This can also be used to write code for Bonita runtime to associate process to

activities.

Once you're through with the design part, you need to

instantiate the instances to start off. For this, select the project you have

created and right-click on it. Now from the context menu, click 'Instantiate

Project'. To use the created workflow system, just open the browser and type

in http://localhot:9011/bonita. You will be shown the list of projects that you

have created. Select the project that the user is associated with and it will be

ask you to enter the associated username and password who is authorized to

access it.

OmniFlow



An enterprise workflow solution that integrates with your existing

enterprise applications and provides a graphical tool for creating and modifying

business processes

The Omniflow Process Modeller and the Configuration Server Console show the status of the running process

This is not just a workflow automation solution, but a

complete BPM  solution. The product

let's you create and modify business processes without any programming

efforts. Designing business processes is very easy. While drawing your business

logic, it rapidly automates the process, thereby reducing the deployment time.

You can design your own custom forms to fetch you business data and circulate

according to business rules in form format only. Plus, it also has a document

management system that runs parallel to the workflow system, which allows you to

have a document-based workflow system in place. The software's installation

depends upon the type of organization for which it's being deployed. We had a

chance to check out a basic implementation of the same on a Windows 2003 Server

with SQL Server 2000 as the backend database. 

Server setup



In order to use OmniFlow, you need a server at least a dual CPU

machine with 2 GB RAM, and the storage depends upon the amount of data being

worked upon. It runs on Windows 2000 Server or above, and you also need

Microsoft SQL Server 2000 with service pack 3 for the database. It can also work

with Oracle and DB2. The software can also be configured as a multi-threaded

server, which can manage multiple instances of applications, such as a separate

Omniflow system if running in your organization. It also provides the

flexibility of starting and stopping registered applications, depending on the

workload. Its installation is fast and easy, but its configuration takes same

time, because you have to register each and every component of Omniflow with its

application server. However, you need to do this only once. After the

deployment, you don't have to do any more configurations.

In the User Mapping section of the User Management tab, you can map roles in your workflow process to users in Shark

Designing a process



OmniFlow has a graphical tool to design business processes. Drafting

a process is done in a chart fashion with clear indication of task queues,

conditions and sequences in which tasks must be performed from initiation to

completion. A process manager can design the workflow processes with steps in

series or in parallel. Plus from here only, you can define all activities in a

process, the various processing rules, actions, work to be performed,

relationship, etc. With in this interface, you can view compiled reports on

business definitions in order to check the correctness of definition.

OmniFlow Process Manager



OmniFlow has an in-depth process monitoring system, which gives you a

user-friendly desktop for administration and monitoring of all business

processes from a centralized place. From here only an administrator can control

and refine its business process. In addition you can generate various levels,

which helps you evaluate the level of performance of each and every component of

the process.

Process client and WorkDesk



In order to user the workflow, users can access the workflow from a

Web browser only.

It allows users to log-in to their respective queues, based

on assigned rights, and process the pending work-items in the selected queue. It

provides some standard tools like Check-Lists, Exceptions, Form View, Document

View, Actions, etc. These allow the user to process the work-items more

resourcefully.  To remind users

about work-items that need to be completed in a day, it has to-do lists. These

notify users about their pending work-item for a particular day.

Enhydra Shark



An Open Source workflow engine that can be deployed in diverse

workflow implementations

Enhydra Shark is an Open Source workflow engine written in

Java. The engine can be deployed to various types of workflow implementations.

You can use it in a CORBA-based implementation, as a server side engine for a

web based workflow, as it provides libraries for implementing JSP clients or if

you are designing a Swing based implementation for your workflow, you can

integrate the engine in your Java Swing Application. The engine uses XPDL (XML

Process Definition Language) by WfMC for defining the workflow processes. It can

be used in Workflows for both SMBs and Enterprises.

For installation, it requires Java to be pre-installed on

the system and can be installed as a CORBA service. The installation is simple,

as the only configuration it requires is to choose one option from the available

set. We chose the option for installing without any services.

Shark can be configured with most database servers

available by un-commenting the database connection string of your choice in

Shark's configuration file.

Let's deploy



We will look into deploying a sample workflow application implemented

in Java. The process is for reimbursement of travel expenses to an employee. The

process outline is that an employee sends a claim to the manager who in turn can

approve or reject it. If approved, the claim is forwarded to the account manager

for reimbursing it.

Create a package



First create a process definition, which has to be a standard XPDL

schema. We used Enhydra JaWE to create the same.

A Windows executable for its installer can be downloaded

for free from the URL http://forge.objectweb.org/projects/jawe.

Run the application after installation and create a new

package by clicking File>New. By default the package is named “newpkg”.

To edit properties for the package, right click on it from the navigator window

on left and click Properties from the menu. In the package dialog that opens,

change the Id field to “trv_exp_reim_pcq”, Name field to “TravelClaim”

and choose Non-Blocked for graph conformance drop down list. Also under the

Script heading, populate Type field with “text/java”.

You can also edit additional information such as version,

author name, etc from the Redefinable Tab on the same dialog box. Save the

changes by clicking on the 'tick mark' on top left of the dialog and close

it.

The XPDL schema of our sample workflow process, created using Enhydra JaWE

Create a process



Create process by clicking on the processes button on the toolbar.

Right click on process from Navigator and again choose properties. In General

Tab populate name with “Travel ClaimReimburseProcess” and choose public

access level from the Access Level drop down list. Our process involves

communication between three types of roles, Employee, Manager and Accounts

Manager. To create these three as participants go to the participants tab and

click on new button, edit its name to Employee. Similarly add participants

Accounts Manager and Manager. We need two process variables cliam_amount of type

Integer and initial value zero, and Boolean variable Approve with initial value

false. Go to the Workflow Variables and add these variables by clicking on new

button on the variables tab and editing specified properties from the dialog box

that opens.

After defining the participants and variables, click on the

Activity tab to add a workflow activity called send_claim. Here choose the

performer as Employee, Start Mode as Manual, and the Finish Mode as Automatic

from the respective drop down lists. Go to the Extended Attribute tab, populate

the name field with “Variable ToProcess_UPDATE” and the value field with

claim_amount. Similarly create activity process_claim, whose performer is

Manager, start mode is automatic, finish mode is manual, and the extended

attribute attribute name is “Variable ToProcess_UPDATE” with value Approve.

We now need to define “Transitions” from one workflow

activity to another. Go to the Transitions Tab and click on new button. Populate

the name field with “toTransport”, choose source as send_claim in the From

drop down list and approve_claim from the To drop down list. Similarly define a

transition “toReimburse” from source approve claim to destination

reimburse_claim, here provide condition “approve = = true”.

This completes our modeling of the process. Save the XPDL

schema to the disk and exit JaWE.

Application to implement

activities



Create three java classes SendClaimAgent for activity send_claim,

ProcessAgent for activity process_claim and ReimburseClaimAgent for activity

reimburse_claim. Since Shark provides a JavaClassToolAgent for implementing

ToolAgents in Java, all these three claases are to be inherited from this class.

For this you need to include the following three jar files in the \lib

folder to your system classpath: sharkinternalapi.jar; sharkcommonapi.jar and

sharkclientapi.jar.  After

implementing these classes we are all ready to run our sample process in Enhydra

Shark.

Running the process



Open shark.conf from \conf folder to configure

shark to include the path where the Java Classes have been defined by editing

ToolAgentPluginDir to the folder where these java classes are present. Save and

close Shark.conf file. Start shark admin by executing runA.bat from \bin

folder.

Go to the "Package management" section, press

"Load", select "test-JavaScript.xpdl" and press

"Load". Then double-click on the XPDL schema from its saved location.

Wait while shark loads the package into memory, and press "Exit". Then

go to User Management to add users. Populate User Group with “EmployeeGroup“,

user name with emp, password as emp and provide arbitrary name and last name.

Similarly create a user of EmployeeGroup for Transport Manager. To map these

users to roles in the schema click on Mapping Tab under User Management, click

on Employee on Left Pane, and user emp on right pane and then click on Apply

Button. Similarly map role Transports Manager to the other user created.

To map the activities to Applications from the

"Application mapping" section, press "Add" button. In the

left panel Select "send_claim", and in the right panel select "org.enhydra.shark.toolagent.JavaClassToolAgent". Populate

"Application name" field in the right pane with "SendClaimAgent".

Finally, press the "Apply" button. Similarly Map the activities

process_claim and reimburse_claim to respective java classes.

Now that everything is prepared for the process execution,

you can return to the "Process instantiation management" and press

"Instantiate" button when you select "TravelClaimReimburseProcess"

.

Execute runWH.bat from sharks bin directory, login as

employee choose emp from the User drop down list. You will see the emp worklist

item for send_claim appearing. Double click on the row or click on the check box

for the entry and click on complete button. Click yes when asked to update

process variables and enter the reimburse claim amount in the dialog box that

opens and click on OK.

Now login as Transport Manager from another instance of

worklist handler appliocation and similarly finish the activity process_claim by

updating process variable Approve to true. Switch back to Admin application and

go the Worklist Handler Section , choose the worklist item and click on complete

to complete the sample workflow process.

This was a very simple process to explain you the procedure

for implementing a workflow solution in Enhydra Shark. You can implement more

complex processes by provifding more appropriate schemas and Java Class

implementations for activities.

Advertisment