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]
Here's what I've learned over the last several months aboutworkflow, 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 benefits)

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: http://findarticles.com/p/articles/mi_m0ISJ/is_3_42/ai_108049865/

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

[4] Workflow Management: http://www.amazon.com/Workflow-Management-Methods-Cooperative-Information/dp/0262720469/ref=sr_1_1?ie=UTF8&s=books&qid=1239573871&sr=8-1

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

[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