Public Description (Wiki Format)
ASAP / Wf-XML: Workflow Runtime Integration
The best overview of this is at that Wikipedia Article on the subject.
Standards Efforts
This protocol has been developed by the WfMC Working Group 4. The current Wf-XML 2.0 is based on top of the ASAP standard developed at OASIS. Please refer to the OASIS ASAP TC Page for details of this work. The TC is marked as 'completed', but the OASIS has never adopted this as a standard (yet).
Wf-XML-R -- standardizing the REST oriented approach
There recently has been renewed interest in Wf-XML, particularly from a subcommittee of the Open Geospatial Consortium (OGC) for a REST oriented approach. This group is using a WfXML Google Group to coordinate activities.
- Spec Version 0.4 uploaded Jan 28 (latest at the time of writing this)
- Google Data API The Google data APIs ("GData" for short) provide a simple standard protocol for reading and writing data on the web. GData is essentially guidelines for using Atom and RSS (either/or) to represent results of queries about resources. It leverages OpenSearch for batching results.
- Atom Publishing Protocol and RFC5023 : An application-level protocol for publishing and editing Web resources. The protocol at its core is the HTTP transport of Atom-formatted representations. The Atom format is documented in the Atom Syndication Format
- Atom 1.0 Syndication Format: RFC 4287
- Open Search for Filtering - OpenSearch is a collection of simple formats for the sharing of search results. Current specification is " Open Search 1.1 " which does not have a date on it. This describes:
- A metadata format that describes a search interface. Besides title and description, then main element is a URL element that includes substitution parameters in a template that can be used to form a search query.
- Some standardized query parameters that can be used to control pagination and other things
- Some extensions for Atom & RSS formats to key for pagination and complete result set size.
- Does not include an XML Schema nor seems to be oriented toward using XML Schema
- OGC Publish-Subscribe - is this available anywhere?
Committee Meetings
- Sept 13, 2007 - a conference call to discuss reforming this group to move forward.
- Sept 20, 2007 - planned/cancelled. There was a big delay in this activity as we encountered significant bureaucracy in getting an MOU that would allow WfMC to work with OGC. No trouble -- just got lost in the paperwork between people. That is now straightened out, we hope to go back to supporting this.
Last edited by Keith Swenson 9/8/2009 (Effective date 9/8/2009)
I received an email on Sept 8, 2009 asking these questions. I have copied the questions and answers below.
How does WF-XML work? I know, sounds like a broad question.
It is easy to imagine that one process starting another process such that both are running in parallel for a while. This is easily possible using web services, you need only specify the details of the call to make. The problem is that this call can be different for every possible process, and so programming is required. Wf-XML attempts to define a standard structure to this set of interactions, so that a connection can be made between one process and another without requiring programming.
I understand that it is for interoperability between executions engine but i also see it as some sort of webservice composition (“choreographic”, with added services to check on status of a process by passing messages back to the requester of the service without knowing how the process is actually executed).
That is a good description.
Does WF-XML and BPEL work together? Is the scenario something like, wf-xml help provide the services (process) in other for BPEL to execute or can wf-xml execute the processes by itself?
They work together and they are completely different things. Most simply put, BPEL is a language that could be used to implement Wf-XML if you wish. There are two aspects of BPEL: executable and abstract.
In executable BPEL, you define a process execution. You define the messages that can be sent and the message that can be received, and as long as you stick to internet protocols and XML, there are no constraints at all on the messages that might be sent. Wf-XML defines a standard message that is sent for a particular purpose,and so it is easy to program the BPEL to send or receive a Wf-XML message.
Abstract BPEL was designed as a way to describe the messages that a particular service might allow to be received. Again, Wf-XML provides a standard format for those messages, with particular semantics around the particular message. Abstract BPEL can be used to provide a description of those messages without limitation.
What-if the other application was not an execution engine, but was another application exposing a web service e.g an ERP order processing system, how will wf-xml work in this scenario?
The purpose of Wf-XML is to provide for interactions between "Long Running Processes". How long is long running? Things that would often take more than 2 minutes is a good dividing line, and anything that might take days or months. This tends to include all Human Process steps since in most cases a human takes more than 2 minutes to respond to a typical business process request.
Wf-XML requests are entirely regular web requests. The only thing special about them is that they carry a defined meaning. For example, if you have started a process, and later want to terminate it, there is a well defined, standard message, that can be used to terminate that process. Without Wf-XML, you can accomplish the same thing, but the terminate message is likely to be completely different for every service you start.
On which partner engine does wf-xml operate? OR is there some sort of mediator?
Wf-XML is simply a protocol, which means that each engine implements their half of the protocol. There is a client side (called the "Observer") and there is a service side ("Factory" and "Instance"). Services that only want to invoke other processes need only implement the observer side. Services that only want to be invoked need only implement the Factory/Instance side.
Wf-XML requests, being regular web services, can be advertised with standard WSDL descriptions of the calls. WSDL can describe 8 requests that can be made, but WSDL can not by itself define the semantics of those requests. Normally it takes a programmer or system architect reviewing the WSDL interface to decide which service request to make. Wf-XML provide a standard set of requests so that a human does not need to be involved in this decision. A "Terminate" request always looks like a terminate request, and so a client implementing Wf-XML can automatically recognize the standard request without human intervention.
What does it mean when they say BPEL is seen from the view point of one participant?
You may have to ask the source of that saying. I don't have enough context to answer that question here.
On the issues of collaboration policies agreed between trade partners, i would like to know how it ties in with wf-xml, in terms of how does it ensure that collaboration between partners are as specified by their contract. Or is this not necessary?
You still need a collaboration contract that covers many aspects of Service Level Agreements. Wf-XML provide a standard set of messages with which one party may start a process at the site of another party. That process you start might cause the receiving company to do work, but only other agreements exist. For example, I might use Wf-XML to start a process at Amazon.com to have a book delivered to me, but Amazon is not going to deliver that book unless I included a valid Credit Card information (more than just the number) and/or I have an arrangement to agree to pay for the book. You should not think that just because the process is started that there is any guarantee that the other party will do work.
For example, there must be agreements in place about timeliness: for example, if I use Wf-XML to request a plumber to visit my house, then there needs to be a definition around what happens if he does not show up after 4 hours. I might cancel the request, but depending upon local customs, it might be too late to cancel, and I might still have to pay a charge.
I coudl use Wf-XML to schedule an appointment with my dentist. Many professionals require that if you make an appointment, that the appointment be canceled/reshceduled more than 24 hours in advance of the scheduled time, otherwise some charge will be due for late cancellation.
All of these kinds of agreements need to be in place, including agreements about what happens if the server is unavailable at the point in time that you want/need to send a particular message. Wf-XML is only about a standard message for starting, monitoring, and controlling a remote long running process.