OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
RE: [xml-dev] Here's what I've learned over the last several months about workflow, document-based designs, and system design

A workflow manager is a sequencer.  That is the basic pattern.  You find it
in everything from workflow to musical composition to video editing to
animation.  The difference is the degree of coupling strength from loop to
loop that ensures position.  OTW, a real-time editing system, meaning, the
human can open any sequence or set of sequences at any time and adjust.

Two pieces workflow theories sometimes leave out are pace and transition.  A
system must be operable and comfortable.  


-----Original Message-----
From: Costello, Roger L. [mailto:costello@mitre.org] 
Sent: Tuesday, April 28, 2009 8:43 AM
To: 'xml-dev@lists.xml.org'
Subject: [xml-dev] Here's what I've learned over the last several months
about workflow, document-based designs, and system design

Hi Folks,

Over the last several months I've pored over these extraordinary articles,
technology, and book:

   [Article] Building Workflow Applications by Michael Kay

   [Article] Business artifacts: An approach to operational specification 
   by A. Nigam and N.S. Caswell

   [Technology] XProc (XML Pipeline Language)

   [Book] Workflow Management by Wil van der Aalst and Kees van Hee

Here's what I've learned:

1. For years I've heard "Separate the data from the application" and
"Separate the User Interface (UI) from the application." I've now learned of
the importance of separating process management from applications. Check out
this graphic:


Here's what a workflow management system does:

   The management system ... ensures that no
   steps [in a process] are skipped, that they
   are carried out in the correct order, that
   tasks can be performed in parallel where
   possible, that the correct applications are
   called in to support a task, and so on. 

Separating management from applications has a number of important
advantages, including:

   Applications no longer require any management
   functionality, and hence are simpler and 
   completely independent of their context or
   place in the business process. This makes it
   possible to rearrange the business process
   at a later stage.

(See p. 147-148 of van der Aalst's book for a complete list of advantages)

2. Process is important. It can make or break a system. 

3. Recently it dawned on me that NVDL is a micro workflow management system.
How so? Here's my (short) explanation:


4. XProc is very cool: you create a .xpl file which defines a process
(pipeline), hand it off to an XProc processor (such as Norm Walsh's
Calabash) and the processor takes care of managing the pipeline. XProc can
be used to manage interactions with Web services. Here's an example of an
XProc pipeline interacting with multiple RSS feeds:


5. A workflow management system invokes a task, providing it with the
appropriate information and resources. The task may be activated either by:

   - invoking an API, or
   - sending it a document

"By API" means that you focus on creating a standard interface, i.e. specify
a subroutine's name, parameters, and return value. Thus, you create an
Interface Control Document (ICD).

"By document" means that you focus on creating a standard XML vocabulary.
Thus, you create a Data Specification.

6. There are benefits to having a workflow management system manage the flow
of documents rather than managing API calls. The benefits particularly
accrue when the documents are based on key business documents, i.e. the
documents used in the actual running of a business. One benefit is that you
have an operationally centered view of the business: the process definition
mirrors the business process and the documents mirror the key business
documents. This produces a model that is a rich representation for analyzing
and managing the business.

(See the Nigam/Caswell and Kay articles for further elaboration on the

Based on what I've learned, here's my brief sketch of how to create systems:

   Step 1: Identify the process

   Step 2: Identify the key business documents needed by the process

   Step 3: Identify the data used by the workflow
           management system to route the business 
           documents through the process (van der Aalst
           calls this "case attributes")

   Step 4: Create a data specification for the business
           documents, i.e. write prose that describes the 
           data at an operational level

   Step 5: Derive implementations from the data specification, 
           i.e. create an XML Schema, Schematron schema, and 
           so forth

   Step 6: Create a process definition, e.g. create an
           XProc file and/or a BPEL file

   Step 7: Create your User Interfaces and databases

   Step 8: Deploy your workflow management system

That's a snapshot of what I've learned. I hope that you've found it useful.
I welcome your additional insights.


[1] Michael Kay: http://www.stylusstudio.com/whitepapers/xml_workflow.pdf

[2] Business Artifacts:

[3] XProc Tutorial: http://www.xfront.com/xproc/

[4] Workflow Management:

[5] NVDL tutorial: http://www.xfront.com/nvdl/

XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.

[Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
subscribe: xml-dev-subscribe@lists.xml.org
List archive: http://lists.xml.org/archives/xml-dev/
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS