[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
- From: "Costello, Roger L." <costello@mitre.org>
- To: "'xml-dev@lists.xml.org'" <xml-dev@lists.xml.org>
- Date: Tue, 28 Apr 2009 09:43:00 -0400
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:
http://www.xfront.com/separate-process-management-from-applications.gif
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:
http://lists.dsdl.org/dsdl-comment/2009-04/0005.html
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:
http://lists.w3.org/Archives/Public/xproc-dev/2009Apr/0104.html
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.
/Roger
[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]