flow automation solutions. To this
end, more than 30 commercial ven-
dors and research labs have con-
tributed to the IETF effort.
The work to date has been toward
defining the Simple Workflow Access
Protocol. SWAP is being designed to
allow for interoperability between dif-
ferent workflow systems and the
applications they support. Standard-
izing a protocol rather than defining a
standard software library or API mini-
mizes the implementation constraints
SWAP: on a vendor’s workflow system. The
workflow implementor must define
only the structure of the calls and data
Leveraging the Web To placed on the wire. Interoperability
overhead is minimized and grounded
in a network-based protocol specifica-
Manage Workflow tion rather than the migration of
process definitions from one system
to another according to intersite
Gregory Alan Bolcer • Endeavors Technology Inc., and agreements or common data format
University of California, Irvine • firstname.lastname@example.org definitions.
Gail Kaiser • Columbia University • email@example.com To keep it simple, the scope of
SWAP is limited to the interactions
and requirements between a requester
The Web’s explosive growth has made interfaces offer a mechanism to easily and a workflow service. This approach
it the platform of choice for Internet access distributed information and leverages existing Internet protocol
application developers. Workflow hand off documents and data over the designs and avoids the harder problem
vendors are no exception to this Web, but at the expense of being able of prescribing a general interoperabili-
trend. They are employing Web infra- to effectively manage and track work ty workflow definition or interchange
structure and protocols in traditional activities. Web protocols provide no format.
workflow products to give customers inherent support for automated For its purposes, the working
worldwide connectivity for sharing change notification, handoff of con- group defines a workflow process as a
information both inside and outside trol, or initiation of human- and series of steps that involves coordina-
an organization. computer-executed activities. In tion of tasks, handoff or routing of
Many organizations are beginning essence, there is no standard way for information, and synchronization of
to discover what workflow vendors service requests to trigger a workflow activities. While a user can easily pub-
already know—namely, that the real process and monitor it across plat- lish a Web page to disseminate infor-
value of the Web lies not just in its forms and between organizations. mation, it is very difficult to browse
documents and resources, but also in or publish access to a generic work-
the activities surrounding them. A Network-Based Protocol flow service.
Collaborative work involves not only Solution Current practice is through
handoff and routing of data between An Internet Engineering Task Force Common Gateway Interface scripting,
humans, but the coordination of working group has been proposed to whereby a server maps an HTTP
activities among them and with auto- define a simple, lightweight, extensible method call to execution code resident
mated agents as well. Workflow protocol for communicating informa- on the receiving server. Because the
engines typically ensure that the tion about long-lived workflow activi- code is usually programmed and sup-
information ends up on the right ties over the Internet (see the sidebar, ported in a way particular to the host-
desktop along with the tools to “Related Workflow Standards,” for ing organization, companies have hesi-
accomplish a slated task. links to this group, its work, and other tated to commit their core business
It is difficult to synchronize work relevant Web sites). The ability to processes outside their ability to con-
and activity tracking within a techni- integrate work providers and work trol them. The code representing the
cally diverse organization. Tools and performers to support asynchronous enactable workflow process tends to
formats typically differ among work- services across an intranet, extranet, or evolve, which can cause unexpected
groups, as do skill levels and under- the Internet is a powerful mechanism. errors and exceptions and invocation
standing among individual partici- It allows the use of software from mul- mismatches. This makes maintaining
pants in a process. Browser-based user tiple vendors to build scalable work- interorganizational processes costly.
IEEE INTERNET COMPUTING http://computer.org/internet/ JANUARY • FEBRUARY 1999 85
C O L U M N
Related Workflow Standards
The Web site for the Simple Workflow Access Protocol guidance to the issues and drawbacks of doing publish-
working group is at http://www.ics.uci.edu/~ietfswap/. subscribe and remote procedure notification on the
The site includes more information about SWAP as well as Internet; and various XML standardization groups provide
links to current IETF Internet-draft documents at DTDs for certain types of domain-specific definitions and
http://www.ietf.org/internet-drafts/. It also defines work- common business processes.
flow as “the computerized facilitation or automation of a While all these issues are under consideration by the
business process, in whole or part.” working group, the SWAP participants have determined
that in the interest of time-to-market, external dependencies
Other Workflow Standards will be kept to a minimum. Formal incorporation of other
SWAP has overlapping concerns with many other stan- standards work will be limited, but care will be taken to
dards efforts in the workflow and Web communities. Both ensure future compatibility.
the Workflow Management Coalition (WfMC) and the
Object Management Group (OMG) have proposed work- Why SWAP?
flow standards1,2 that are much more mature than SWAP. SWAP is related to several other protocol standardization
The Web sites for these organizations are efforts, including Remote Procedure Calls using XML
http://www.aiim.org/wfmc/ and http://www.omg.org, encoding (XML/RPC) and HTTP and its extensions
respectively. (HTTP/1.1, HTTP-NG). HTTP has been useful for many
SWAP differs from these efforts in its focus on using HTTP purposes because it doesn’t require programmers to build
as a substrate. This creates both an opportunity and a different protocol engines to support highly related tasks.
problem. For protocols that aren’t supported, the Protocol Extension
The opportunity, of course, is the prospect of capitaliz- Protocol allows extension of HTTP functionality.
ing on HTTP’s wide support, particularly on desktops and Because SWAP involves generic services, several work-
Internet-enabled devices that don’t easily support tradi- ing group members have asked what is workflow-specific
tional workflow installations. The problem is that HTTP about the protocol. The definition of the SWAP workflow
doesn’t currently offer the level of notification and transac- protocol is useful in several ways. First, workflow has a
tion control required for cooperative work on the Web.3 unique requirement in that a generic workflow service,
The WfMC and OMG workflow standards require very once invoked, can take anywhere from minutes to years to
sophisticated technologies to support distributed workflow complete. How will the service change over this time?
execution and participation. Efforts to embrace and inte- What will be the availability? How do updates and notifi-
grate the Web into these standards have proved difficult. cations take place? It is not yet clear whether existing noti-
The Web’s minimalist infrastructure doesn’t easily support fication and transaction protocols can be scaled to a prob-
flexibility, consistency, and assurances of a more robust lem that includes this type of asynchrony.
traditional workflow solution. Second, workflow involves a mix of automated ser-
vices and human-enacted activities. While protocols have
Other Related Standards focused on one or the other, only the workflow communi-
What this specifically means to the SWAP working group ty has explored the issues for seamlessly intermixing of
is that protocol and data type definitions will be borrowed the two.
from other standards and working groups. SWAP intends
to address these particular requirements by leveraging References
work done to date on HTTP and WebDAV. WebDAV has 1. Workflow Management Coalition (WfMC), “The Workflow
been a largely successful HTTP extension that provides a Management Coalition Reference Model,” Tech. Report WFMC-TC-
clean interface for assigning and retrieving properties on a 1003, v.1.1, Jan. 1995.
resource. The home page for WebDAV is 2. G. Taubes, “Taming Virtual Taskmasters,” Networks series, IBM
http://www.ietf.org/html.charters/webdav-charter.html. Research, Vol. 36, No. 3, 1998 pp. 7-9; also available online at
The Internet printing protocol (IPP) shares several con- http://www.research.ibm.com/resources/magazine/1998/issue_2/
cerns regarding asynchronous job processing (see networks398.html.
http://www.ietf.org/html.charters/ipp-charter.html). 3. R. Fielding et al., “Support for the Virtual Enterprise: Web-based
The many notification protocols, such as the Development of Complex Information Products,” Comm. of the ACM,
Generalized Event Notification Architecture, provide Vol. 41, No. 8, Aug. 1998, pp. 84-92.
SWAP would solve these problems Resource and Execution However, after several Birds-of-a-
by using HTTP and WebDAV pro- Model Feather meetings, a consensus is
tocol extensions and transferring SWAP is a work in progress, and defi- emerging on some design approaches
structured information encoded in nitions have yet to be formally and definitions. The SWAP Internet
XML. reviewed and commented on. draft, 1 which expires in February
86 JANUARY • FEBRUARY 1999 http://computer.org/internet/ IEEE INTERNET COMPUTING
C O L L A B O R A T I V E W O R K
1999, identifies the following opera- started, paused, resumed, or engine has the ability to map the pro-
tions as desirable goals: terminated. tocol methods and translate the para-
s Process definition. The named meters to the appropriate workflow
s Initiate. Create, remotely set up, resource from which process process instances and to return the
and invoke a workflow process. instances can be created. The appropriate values. Here’s how it
Set up the work with the appro- process definition URI is the loca- works.
priate values and permissions, or tion of the generic service from Let’s say that a process definition is
provide references to resources which multiple instances are offered at a specific URI. An HTTP
and data as needed. shared. request to the URI invokes a new
s Monitor. Check the work’s current s Observer. A resource interested in process instance. A given workflow
status, get a history of the execu- the completion of a process implementation has complete control
tion, or find out the current and instance. Given a list of observer over how it creates the URI that names
possible states. The latter may URIs, a process instance can noti- the target process. Names serve as a
include collectively reviewing a set fy observers when the process has unique ID for the process involved.
of distributed activities. changed state or completed. They are used as a unique service ID
s Control. Read and set the running s Activity observer. A type of observ- for other requests to that process
state of remote, generic, asynchro- er that allows a process instance to instance. For example, an HTTP
nous workflow services. Pause or be notified upon completion of request can provide data to the process
resume an executing workflow external work. A process instance instance through name-value pairs.
after it is running, or terminate it may need to invoke a subprocess Another request could retrieve the cur-
when it is no longer needed. instance on a remote system. An rent state of the process instance, or
s Notify. Send appropriate notifica- activity observer simply provides pause, resume, or terminate it. Every
tions of status changes to interest- an interface to browse parent- interaction specifies a method, the
ed observers during normal execu- child process dependencies and to standard HTTP header field that con-
tion or when exceptions occur. receive notification of a completed trols what action the server takes.
subprocess. There is still some debate in the
A generic workflow service appears s Work list/work item. A process working group about whether adding
externally as a small number of differ- instance that represents a human- methods particular to SWAP is the
ent resources provided by a server. executed activity. Work items hold appropriate approach. This column
Resources are distinguished by their the references to activities for the describes the current thinking, but the
Web address in the form of a Uniform people who are expected to per- same functionality could easily be sup-
Resource Identifier, as opposed to a form them and who can, in turn, ported using just the HTTP POST
URL—first because a URL often con- search and retrieve all work items method and passing the SWAP-specif-
fuses the name of a resource with its assigned to them. ic directives in the parameter values.
location. Additionally, an expectation All parameters, including scoping
of how named resources are generated A workflow process instance is created and name spaces, are put into an
is implicit in a URI scheme. when actual resources are committed XML encoding to be sent with the
SWAP doesn’t enforce the naming to accomplishing a workflow service, appropriate calls. In the example of
of the actual locator for a particular usually when the service is invoked. Figure 1, the root node has a list of
process resource; it allows the host Resources can support multiple inter- attributes, including interfaces,
company to determine this individu- faces. For example, if it is necessary to process instance key, valid states, actu-
ally. The host company may then invoke a remote service on another al state, and data. From this XML
adopt a generative scheme that machine, a resource can implement snippet, we can determine the values
includes human-friendly identifiers both the process instance and the and state of that process instance as
where appropriate. observer interfaces. well as other possible instances.
Implementation of these resources The example shows a hypothetical
(services and/or objects) is outside the Mapping Control Mechanisms. A purchase order made by the SWAP
protocol’s scope. SWAP is concerned process instance may run for days, working group chair using the config-
only with ensuring that requests are months, or even years. Because of the uration information provided by an
made to valid URIs such that a prop- asynchronous nature of workflow, online PC manufacturer. Upon the
er and consistent result is returned. mechanisms for controlling and man- request, SWAP creates a trackable
SWAP uses the following interface aging it using HTTP need to be process instance but doesn’t begin exe-
definitions in forming a workflow mapped out. Keeping an HTTP con- cuting the process. The method call
model: nection alive long enough to perform in this case returns the HTTP status
changes and monitor progress of a code indicating multiple return values
s Process instance. The actual per- long-running workflow process, while as seen in Figure 2.
former of the workflow service. doable, is not something the hyper- It turns out that the memory size
Every time a service is invoked, a text protocol was designed to support. conflicts with the order configuration.
new process instance is created, SWAP assumes that the workflow The customer can then choose to ter-
IEEE INTERNET COMPUTING http://computer.org/internet/ JANUARY • FEBRUARY 1999 87
C O L U M N
CREATEPROCESSINSTANCE /submit/order?proc=10 HTTP/1.1 >>Response
Host: www.widget-makers.com HTTP/1.1 207 Multi-Status
Content-Type: text/xml Content-Type: text/xml
Content-Length: xxxx Content-Length: xxxxx
Authorization: Digest username=“skreddy”
realm=“firstname.lastname@example.org”, ... <?xml version=“1.0” ?>
<?xml version=“1.0” ?> <s:multistatus>
<s:swap xmlns:s=“SWAP:”> <s:response>
<s:description>New equipment purchase</s:description> <?-- “other items as defined by process” -->
<z:processor xmlns:z=http://conf.pcmanufact.com> <s:propstat>
</z:processor> <s:status>HTTP/1.1 409 Conflict</s:status>
<z:memory xmlns:z=http://conf.pcmanufact.com> <s:comment>part unavailable</s:comment>
<z:size>256 Meg</z:size> </s:propstat>
<z:speed>60 ns</z:speed> <s: propstat>
<z:type>DRAM</z:type> <?-- “other resource properties” -->
<!-- “name, billing address, etc.” --> </s:response>
<s:startImmediately>no</s:startImmediately><!-- “available?” --> </s:swap>
Figure 1. XML encoding of SWAP content. Figure 2. XML return values for a SWAP call.
minate the purchase order or amend tocol specification that leverages work Aug. 1998, available online at http://www.
it using the appropriate PROPFIND to date in both the workflow and ietf.org/internet-drafts/draft-swenson-swap-
and PROPPATCH methods for assign- Web communities. The goal is to prot-00.txt.
ing particular values. increase the Web’s potential as an
infrastructure for building and Gregory Alan Bolcer received a PhD and BS
Conclusions deploying workflow solutions and from the University of California, Irvine,
SWAP has the potential to provide also alleviating the difficulty of con- and an MS from the University of
interoperability between workflow structing such solutions. Southern California. He is the founder
systems using the Web and the An early prototype of a SWAP- and CEO of Endeavors Technology Inc., a
Internet, allowing distributed work- enabled HTTP server was built at supplier of Web-based workflow solutions.
flow solutions to be more easily Netscape, however, no reference
deployed and accessed than at pre- implementation has yet been made. Gail Kaiser is a professor of computer science
sent. SWAP’s simple workflow model Many of the workflow vendors partic- and director of the Programming Systems
and implementation approach allow ipating in the SWAP working group Library at Columbia University. She is on
business processes to be structured support HTTP in some capacity, so the IEEE Internet Computing editorial board.
more naturally. This will encourage discussions about interoperability
people to use the network and com- demos are in the works. In the mean-
puting infrastructure already in place time, the protocol is being iteratively Interested in being an
in their company’s work culture. revised, and the working group open- IC reviewer?
SWAP allows abstraction through ly welcomes participation. s IEEE Internet Computing is seek-
its support of process and subprocess ing referees for article submissions
execution across multiple machines ACKNOWLEDGMENT on Internet technologies. If you are
and between various workflow vendor The authors would like to acknowledge Keith
interested, please send your name,
implementations. Its standardization Swenson, Surendra Reddy, Richard Heim, Lisa
contact information, curriculum
will provide a framework not just for Lippert, and members of the SWAP mailing list
sharing documents but also for coor- for their comments and feedback. vita, and keywords for your areas of
dinating the activities that surround expertise to Steve Woods
them. By limiting the protocol’s REFERENCE <email@example.com>
scope, the SWAP working group 1. K. Swenson, “Simple Workflow Access
hopes to quickly define a usable pro- Protocol (SWAP),” Strawman document,
88 JANUARY • FEBRUARY 1999 http://computer.org/internet/ IEEE INTERNET COMPUTING