SaaS: Workflow in multitenant environment

As part of writing my thesis about Software
as a Service, I started to collaborate with
Gianpaolo Carraro and Fred Chong from the Architecture
Strategy team
. The interaction with them has been great
so far and some of the topics we’ve been discussing included how to enable
workflow in a multitenant environment.

When designing an application that will be
delivered as SaaS you might want to provide tooling to your tenants to allow
them extending the data model, the business process, the UI, etc. to fit their
unique needs. While thinking about how to customize business processes I came up
with a maturity model that I found descriptive.

First, I asked myself this question: How
a workflow can change?

  • Behavioral
    (decisions/rules)
  • Structural
    (activities)

Behavioral changes

The behavioral changes are related
to decisions that are modeled in the workflow. Like “If the PO is greater than
X then…”. So for TenantA that value might be $3,000, but for TenantB it could
be $1,000,000.

Let's focus on behavioral changes for a
moment. These are the maturity levels I recognize regarding this kind of
changes:

  • Level 1:
    every workflow decision lives inside the workflow

    bc1
  • Level 2:
    same as level 1 but the decisions could be dynamically updated on runtime

    bc2
  • Level 3:
    externalize decisions on policy and rulesets providing change management

    bc3

Level 3 is very interesting because:

  • Rules can be versioned
  • Rules can be stored outside the workflow
  • Rules support forward chaining
  • Rules expose business language

Structural changes

Structural changes, on the other side, are changes to the workflow structure itself.
Like “After the approval of the PO call a webservice on url X”.

Here I also identified a maturity model for
the adoption

  • Level 1:
    design a basic set of workflow flavors and let the tenant decides

    bc4
  • Level 2:
    design a base workflow and let the tenant perform fixed customizations

    bc5
  • Level 3:
    design a base workflow and let the tenant perform modifications using a
    workflow designer which exposes business terms

    bc6

Some images have been taken from the article "The Amazing Race Metaphor", Vignesh Swaminathan, Architect Journal, Issue # 7

In my next post I will write about how can
we achieve some of these maturity levels using

Windows Workflow Foundation!

Published: June 07 2006

blog comments powered by Disqus