Every time Microsoft announces some new technology, the hype created by it is so immense it’s almost impossible to avoid that heat. Now, if we look at last year's announcement of the Windows Workflow Framework (WF), it’s pretty much evident that this technology will get much more attention than other technologies due to its domain. Now, let's come to a more interesting part, and that is the impact of this technology on software developers, business users, end users / customers etc. No matter which category you belong to, you will see some amount of lack of understanding and ambiguity, and this is mostly due to our current market trend where people relate technologies before even they can fully jell into it. This is even more of a case when we talk about people standing in the league of non developers, and there you find project managers and business users / stakeholders who are not equipped with acute technical knowledge to thoroughly understand the technology. The result of this is a void generated in the market which must not be overlooked.
In this article, I will try to thoroughly explain the domain of Windows Workflow Foundation (WF) and how business users can relate themselves to it. I will try to amplify the issues that most business level users find very important and directly affect their decision making. This includes general cost factors, the changes to current infrastructure, resource learning curve, futuristic approaches etc. I hope that after reading this article, you will get a clear idea of the WF domain and the basic set of functionality and the feature set it provides. The audience of this article must have proper experience in handling IT projects, specially projects that use Microsoft technologies.
Understanding the Business Domain of Workflows
Human Driven Workflows
If you look around, you will find people everywhere indulging in business processes and acting as a sole player in them. When you analyze these processes, you will find some tasks that are dependent on others before they can be executed. This situation is a prime candidate for human-driven workflow as only humans can make decisions during their engagement in these business processes. One important characteristic of a human workflow is a clear involvement of roles that are actually the reflection of responsibility/roles that are defined in real world. The important point that we must understand is that we should not overlook the fact that humans roles / responsibility can quickly change in an unpredictable fashion within a system, and this has to be handled within the workflow system intelligently. So any workflow system that is targeting human workflows must handle long running processes with delays and dynamic changes, both in the workflow process and roles.
The Windows Workflow Foundation (WF) counters all the above mentioned requirements, and provides a very flexible model to implement them. WF provides a “State Machine Workflow” that can handle events and make progress based on events; moreover, the changes can be addresses through features like the dynamic update feature in the WF.
The bottom line is that WF has the capability to handle situations involving humans along with changes encountered during the process. We will see a detailed example of a workflow in a later section, but here for the purpose of completeness, let us see a simple scenario that is a human workflow. In most organizations, we see some process for handling leave applications. The idea is that every employee that wants a leave must submit an application that will then go through the approval process which likely involves the head of the department and the operational manager(s) depending upon the company's organizational Hierarchy. You can clearly identify here in this workflow, that certain humans will accomplish the roles of the head of the department and operational manager(s). The process can be visualized through the figure below:
System workflows are a class of workflows that inherently involves automation elements in them. In contrast to human workflows, the key players here are not humans, instead services and applications. In today’s world, computers have led to automation in various forms and fields from supply chain management to DNA modeling. Most business processes utilize, and in fact, are built on top of services and enterprise level applications. Likewise, we have situations where these diverse services work interactively in a way that a process flow can be defined. This process flow along with other generic service entities that are considered inevitable (e.g. communication services, email etc.) make system workflows. Although most of the time, in contrast to human workflows, the element of intelligence or informality (the real and literal power of thinking) is not present in system workflows, there is certainly no barrier, and business intelligence can be used within these system to go a step forward.
The Windows Workflow Foundation (WF) provides a solid platform that addresses the needs of system workflows. In the form of “sequential workflow” along with various “activities”, the WF provides a highly flexible way to design and implement all sorts of system workflows. WF's agnostic nature towards any single service or application (unlike other Microsoft products and technologies that have dependency constraints) makes it an excellent candidate for implementing system workflows.
Before moving to the next section, let's take a look at a rational workflow scenario, the “Grievance Management System “ (GMS). The GMS is very common in organizations, and is a way for customers to file their grievance. Typically, a customer logs to a Website or manually makes a phone call, and some one on behalf of this call makes an entry into the GMS. The following figure shows the whole process flow of a Grievance Management System. The important point to note is that like most workflow scenarios, the GMS also consists of human elements as well as some system automation. This blend is what you will see in most of today’s workflows.
Let's analyze the above mentioned GMS, and enlist and identify the steps, actions, rules, and the parties responsible for the actions (human/system).
|Steps||Actions||Rules||System / Human|
|Customer logs in by logging to an ASP.NET website or a SharePoint Portal Server 2003 portal.||Customer enters details of his/her grievance.||Customer must be a valid customer and eligible for filing a grievance.||Human|
|Customer information is validated and the previous history is also checked.||Customer defined grievance is stored in a database. Certain key information elements (e.g. customer name, membership type, etc.) are examined and processed. The priority of the grievance is also set. Lastly, an employee is assigned for this grievance processing.|
- Customer must hold a clear history.
- Customer membership type must be premium in order to give his grievance a high priority.
- Deadline for the grievance processing should not be more than a week from the initial filing date.
|An employee works on the grievance and tries to come up with a number of corrective steps to solve this filed grievance.||Employees take corrective actions which may require physical work on the filed grievance.|
- The grievance category is analyzed and corrective steps must fall into a predefined policy.
- The priority cannot be changed at this step.
|Manager reviews the corrective steps and makes important decisions.||Manager analyzes the corrective steps and, based on multiple factors, mark the corrective steps as satisfactory or unsatisfactory. This is then send to the grievance process management service / application.|
- Manager validates the steps taken based on his/her own expertise along with a set of policies that must be followed.
|Grievance process management service takes the input of the manager and accordingly notifies the Customer.||The customer is notified through email, telephone etc., about the corrective actions taken on his/her filed complaint.|
- The grievance deadline is validated, and if found to be expired, a notification method and metaphor is decided.
- In case of grievances that are marked to be high priority, the notification is done through automated calls, otherwise an email is send.
Microsoft Workflow Strategy
Microsoft brought workflow into the mainstream with WF, and this was not accidental. There is a clear need of it, and this was analyzed by Microsoft. In this section, we will look into some of those areas that Microsoft successfully takes control of with the release of WF.
Seamless Integration with Office 12
It's hard to find office systems that are not using the Microsoft Office Application Suite. Microsoft is now coming up with the next biggest release of Office (Office 12) which will make a huge impact on the current office systems. Microsoft invested heavily on Office 12, and clearly understands that businesses process like document approval, task initialization etc., must be extremely simple to use and should be seamlessly integrated into the office applications. The important point for Microsoft is that they want both technically inclined and non-technically inclined users to be benefited from their system equally.
WF is an important building block to achieve seamless integration as this is the single workflow solution provided by Microsoft. I think an example might help here. Consider a situation where a business user wants to start a process for document approval on an Office Word document. Now, this can simply be done by clicking a button, and in fact, the business user will be completely unaware of what happens in the background. The important point to remember is that there are number of ISVs (Independent Service Vendors) that have workflow solutions that provide good integration with products (specially InfoPath etc.), but the level and magnitude of integration that WF provides is difficult to find. Moreover, the fact that WF is not a product but a technology makes it an ideal candidate for building workflows that are targets for Office 12 applications. So if you have future plans to invest into workflows that will integrate with Office 12 products and applications, then WF is a better solution in terms of cost, integration, and resource consumption (keeping in mind that your developers have same development environment and similar technical paradigm). We will look in more details about interrogation of Office 12 and WF in later sections.
Application development is the backbone for manufacturing software, and workflow solutions are not exceptions. We all know that delays in application development can cause a severe impact on projects, especially in terms of over budgeting. With WF, you certainly minimize application development time drastically because if you have a league of developers who are already tuned and are capable of development on the .NET platform, then WF will only take a minimal learning curve. This is mostly because Microsoft launches WF as a framework, and they provide the same set of tools for developers as they are used to. For example, if your have a developer who is using Visual Studio 2005 for development, then he/she will feel completely at home from the day one with WF. Take a look at the figures below. They are Visual Studio snapshots. The first one shows the application development environment that developers use for Windows development, and the second one shows the application development environment that developers use for WF development.
Extensible platform for ISVs
If you are among or looking forward to be an ISV that develops solutions based on Microsoft technologies, then you will be certainly relieved to know that WF can be used as an underlying technology for building enterprise level solutions. This extensibility is very powerful, and opens doors for investments as the crux is provided. The ISVs like K2.Net and Captaris Template who provide workflow solutions made futuristic approach with the use of WF Technology in their next releases.
So to sum it up, the Microsoft strategy for workflow is to make it accessible to every user of Windows and provide the capability to handle workflow scenarios across a wide range.
Examining the Cost Factor
The cost factor is yet another important factor for project stakeholders. And specially if you are investing in any new technology like WF, it’s very important to analyze the cost factors related to it. In this section, we will first view how Microsoft packages WF so one will get a clear idea about its gross cost (if any). Then we will try to determine the cost relative to other products in the full or partial domain of workflows.
The Windows Workflow Foundation (WF) is a core component of WinFX and is scheduled to be released in Mid-2006. WF is a framework not a product (as .NET is a framework), and it's free with absolutely no cost associated with it. So this implies that anyone can use it without paying any server license or client access license costs. The points that we should understand here are clear differences between the products and the frameworks, and they should not be overshadowed. Following are the list of factors that play an important role in the varying cost between the frameworks and the products.
Out of the Box Functionality
Frameworks, most of the time, acts as a ground brick, and it’s totally up to us that how we develop products on top of that. On the other hand, products target specific domains and provide an area specific feature and functionality set. The WF products provide certain out of the box functionality that are mostly generic and are easily applicable. There is huge support for making things the way you want with it, and that makes it generic. If for instance, WF only provides out of the box support for certain applications, then its usability will not be same. All this affects the cost, and that’s why there is a built-in cost for the out of the box functionality which is embedded in the product.
The framework is highly extensible but you have to do labor to take advantage of it. This is a crucial factor when we compare it with domain specific products; they might not provide extensibility to the level that the WF framework provides, but are ,ostly extensible enough to satisfy the requirements of their domain.
The product is eligible for support. This is further divided into subcategories; the support may be paid or free depending upon its level. This is in contrast to most other frameworks where there is not much support available. There may be development patches available over time, when any severe case of functionally-lapse is found.
WF with Third Party Workflow Suit
WF is a free framework with enriched functionality; some of this functionality is provided from Microsoft and others from partner ISVs to fill the gap. As WF is a workflow framework and is not targeted to any specific product, it made it an ideal candidate for ISVs to use as a backbone for making their own workflow products on top of it. There are certain ISVs that are using WF, and their future releases will be hence WF complaint. The cost is totally dependent on the feature and functionality their product provides. For example, one ISV provides workflow with business monitoring functionality along with a very extensive set of integration option with existing Microsoft products and technologies (e.g., Microsoft Office Application Suite, ASP.NET, WSS etc.). Some other ISVs provide only workflow functionality and integration with a single Microsoft product and technology (e.g. WSS, Share Point Portal Server 2003 etc.).
WF with Current Microsoft Infrastructure / Server & Client Applications
WF can leverage the existing Microsoft infrastructure; moreover, its ability to integrate with Microsoft products open doors to a vast majority of possibilities for various stakeholders. As it's not possible to provide an overview of WF integration with all Microsoft products and technologies, I have selected here two server products that are thickly used, namely Microsoft Content Management Server 2002, and Share Point Portal Server 2003, and also an Active Directory implementation.
Content Management Server 2002
Microsoft Content Management Server 2002 (MCMS 2002) is heavily used by organizations today for handling the bulk of data that is published in any organization. MCMS 2002 has a simple workflow of its own but that is quite limited, and most of the time, organizations want to implement workflows that mimic their existing business processes. WF can be used to fill this gap and implement business processes according to user requirement. But you must remember the fact that MCMS 2002 only provides support for .NET 2.0 through service pack 2, and it’s not a straightforward service pack one will ever use. Moreover, MCMS 2002 is now merged with SharePoint Portal Server 2007, and if your client demands to transfer your WF implementation on MCMS 2002 to SharePoint Portal Server 2007, it will certainly raise a lot of issues and will not be a seamless transformation, as currently the SharePoint Portal Server 2007 is in beta 2. We cannot make a final verdict about the transformation except the fact that normal MCMS 2002 functionality and MCMS 2002 database migration will be provided.
Microsoft Office SharePoint Portal Server 2003
Built on to WSS 2.0, the Microsoft Office SharePoint Portal Server 2003 (SPP 2003) is a collaboration platform for intranet/internet. Features like document libraries, workspaces (places to collaborate), and smooth integration with Office 2003 made it very popular in both small and large organizations. WF can be used with SPS 2003, although this usage is not as smooth and swift as you will find in SPS 2007. But with intelligent investment and some quality development, WF can be utilized from SPS 2003. The point to notice here is the number of tasks that can be performed by WF that were previously either done through third party workflow solutions or by heavy custom development. Simply put, WF can power SPS 2003, but it depends on the degree and magnitude of what exactly you want to achieve through WF.
WF can leverage the Active Directory implementation; this can be done by creating and using custom WF activities which communicate with the Active Directory. Again, there are and will be more of these activities available from here.
The Resource Learning Curve
Microsoft WF might be a new technology but it’s very easy to start working with. This is due to various factors which we will see shortly, but the important thing is that Microsoft made every possible effort to make the learning and development experience as comfortable as possible. The following points will help you understand it better.
No Surprises for Developers
Today, majority of developers working on Microsoft technologies use Microsoft Visual Studio for development, and it would be a blunder if WF requires a different metaphor. Microsoft understands that it will be a very unpleasant surprise for developers if they don’t find the same way of doing things as they are used to. So, WF development can be done in Visual Studio as development in any other Microsoft technology. This heavily minimizes the learning curve for developers which might be needed if this support is not provided.
Microsoft Web Casts
Microsoft provides web casts which make a huge effort to provide a deep drill inside Microsoft technologies. There are WF web casts for varying audiences form system architects to developers. These web casts are presented by technology experts themselves, and hence are excellent sources of learning.
Moreover, the Microsoft MSDN network is an excellent place for understanding new technologies.
WF and Futuristic Approach
Vista is Microsoft's next version of Windows. If you are planning to provide workflow solutions on Vista, WF should be your top choice. WF is one of the core components of the WinFX release, and will be available in mid 2006.
Microsoft Office SharePoint Server 2007
Microsoft SharePoint Portal Server 2007 (SPS 2007) is the next release of the Microsoft SharePoint Server 2003, and also now aggregates Content Management Server 2002 functionality. This release completely utilizes Office 12. WF is the workflow technology that is used in SPS 2007; in fact, there are some workflow scenarios that are provided out of the box (e.g., document/task feedback). The following figure shows a screenshot of the document / task feedback workflow that is provided in SPS 2007.
Please note in the above screenshot that normal business tasks like “Delegation” and “Request Change” are also provided by WF.
Microsoft FrontPage 12
FrontPage 12 allows business users a place to do changes to the SPS 2007 layout, and also create workflows without any prior knowledge of WF and its technical details. The following screenshots shows in detail how easy it is for non-technical users to define workflows using FrontPage12.
In fact, there is a huge set of SharePoint Portal Server 2007 content that can be used, the following screenshot shows this (see the drop down box with a variety of SharePoint Portal Server 2007 contents to chose from, including contacts, discussion boards, links etc.).
Once you select the content on which you want to impose the workflow, you can add as many steps as you want. The following screenshot shows a single step that is added to the workflow.
Once the step is defined, you can add conditions to the step. These are essentially the business rules that you want to get evaluated. The following screenshot shows a simple condition(s) that can be added:
Next, you can define the action(s) that you want to take when the condition(s) that you defined are fulfilled. The screenshot below shows the action(s) that are available:
Early WF Adapter ISVs
There are a whole bunch of early adapter ISVs for WF. This is shown in the figure below. Most of them not only provide workflow solutions but also business process modeling solutions.
Windows Workflow Foundation (WF) is the future to build workflow solutions on the Microsoft platform. It’s free, highly integrateable with Microsoft products and technologies (e.g., Office 12), and the enriched functionality makes it the ideal candidate for developing workflows. We visited a couple of areas that non-technically inclined users normally find ambiguous and make them hesitant in making timely decisions. I hope that this article helps you better understand the WF and its domain technology. Please feel free to post a message on this article's forum. If you want to know more about WF, join this group; here you can pitch any queries and we will try to answer them.