W3C home > Mailing lists > Public > public-ws-chor@w3.org > February 2003

RE: Approaches to Web Services Choreography [was Same model for both Public and Private process ??]

From: Jean-Jacques Dubray <jjd@eigner.com>
Date: Thu, 13 Feb 2003 10:37:50 -0500
To: "'Assaf Arkin'" <arkin@intalio.com>, "'Prasad Yendluri'" <pyendluri@webMethods.com>, "'Martin Chapman'" <martin.chapman@oracle.com>, "'Ricky Ho'" <riho@cisco.com>
Cc: <public-ws-chor@w3.org>
Message-ID: <002801c2d375$f1480ae0$236e050a@JJD>



When we wrote the examples for the WSCI specification we didn't have any
modeling tools. We drew a picture of the choreography, then we wrote the
WSCI choreography, then we wrote the WSDL service definitions. So even
if you write all these documents by hand, you still take the organic
approach to writing the choreography. There is no "one right way for
doing things". And it's great that you can do it in the best possible
way that meets your needs.

[JJ] Assaf, figure 5-3 is really good, it shows precisely how WSCI work,
you should show it to everyone. It is very clear.  Looking at this
picture, and in the light of the discussion that we had, I keep
wondering what is the best way to design a WSCI collaboration
definition? Where do you start? Where do you end? Do you start by
designing WSDL? Then you design the choreography of this interface, but
as you told us the other interface choreographies cannot be designed in
isolation. Are each party responsible for its side? Or is it one party
that designs the whole thing? How do you make sure that the choreography
is doing what you want. Just looking at the global model is not enough
because contrary to what you are saying the global model has no
choreography information, the choreography is in the interface. Do you
need a simulation tool once you are finished to verify that the
definitions do what you need?


I have published over the summer a complete alternative to WSCI
including a simple but efficient notation.
(http://www.ebpml.org/ebpml.doc) This approach (based on BPSS of course)
allows you to express the same multiparty collaborations but from a
neutral point of view. This collaboration definition can then be bound
to WSCI, WSDL, BPML, BPEL,. I'd be happy to powerpoint the travel agent
example with the notation I proposed. It is also neutral from what is
being choreographed and message exchange patterns such as ebXML business
transactions or web service operations can be choreographed within the
same collaboration definition. 


I do agree about the value of exceptions, especially those involving
communication and time. Of course you've read WSCI and BPML so you've
already seen that we paid attention to exceptions, interruptions,
time-outs, time delays, etc.





[JJ] so here is what WSCI says:
"WSCI allows declaring exceptional behavior that is exhibited by a Web
Service at a given point in a choreography. The declaration of
exceptional behavior is part of the context definition, and associates
exceptions with a set of activities that the Web Service will perform in
response to those exceptions. It is possible to declare the occurrence
of the following kinds of exceptions:
  a.. Receipt of a particular message that is considered as exceptional
in that context.
  b.. Occurrence of a fault; this fault might correspond to the receipt
of a WSDL fault message, or to the generation of a fault by the service
  c.. Occurrence of a timeout"
Which I interpret as WSCSI is relying on a) WSDL fault mechanism and b)
adds another possible mechanism by declaring that a certain message
generates an exception but is not necessary modeled as a fault in WSDL.
This has nothing to do with business transaction/collaboration protocol,
unless you are implying that one could implement a collaboration
protocol with the fault mechanism of WSDL. It is not impossible but that
would be quite a stretch you would admit to systematically add fault
messages to every operations. By contrast, BPSS offers a business
transaction protocol completely independent of the semantic of an
operation fault (which is normally an application level exception not a
protocol level exception).
Again, you need to be able to express ALL possible exception that
influence the course of the choreography. WSCI is far from achieving
this result. As you were pointing out recently in an email, there is in
particular the need to signal whether a message has been processed
successfully by the receiving application like BPSS business transaction
protocol allows you to do.




So what you are recommending to use (WSCI/BPEL/BPML) amounts to: a)
modeling choreography that need to be fixed by good tools (watch out,
tools could produce their metamodel which could replace your
specifications), b) something hard to agree on in a bi- or multi-party
collaboration c) a complete lack of business semantic witnessed for
instance by the lack of intersection with a business collaboration


I don't know if everybody agrees that WSCI/BPEL/BPML is the right
approach, maybe there is a better one that can be built that would
address a), b) and c).




-----Original Message-----
From: Assaf Arkin [mailto:arkin@intalio.com] 
Sent: Wednesday, February 12, 2003 1:07 PM
To: Prasad Yendluri; Martin Chapman; 'Jean-Jacques Dubray'; 'Ricky Ho'
Cc: public-ws-chor@w3.org
Subject: RE: Approaches to Web Services Choreography [was Same model for
both Public and Private process ??]




The process-meta-models and specific process definitions based on the
meta-models that have seen acceptance in the industry in terms of
production use thus far have been based on top-down approach. You start
with a business process that you like to accomplish (B2B/B2C/A2A) such
as inventory-managment, order-processing etc., available at a business
definition level that you model in terms of the parties, messages
(documents/schemas) that are exchanged in a well-defined and controlled
order (choreography). We should expect this to be predominent and more
pragmatic case as it supports automating a business process that is
accomplished otherwise (partially or fully manual) in the industry.

It is also possible to take the bottom-up approach where existing Web
services can be composed into higher lever composite Web services and
choreographies, the approach taken by WSCI and BPEL mainly.  


What would it take to dispel the myth that WSCI/BPEL/BPML force you to
do bottom-up modeling?


Durining training sessions we let customers play with our product and
what we see is that customers don't model choreographies strictly
bottom-up or strictly top-down. They do what feels natural and best
meets their needs.


You can see the customer pull a set of existing services to form a new
choreography, where these service are already defined and not subject to
change. Then the customer adds new activities specific to that
choreography for which not service definition exists. Once the
choreography is mapped out visually they start defining the message
schema, in effect defining the service after the choreography.


I'll call this 'the organic approach'. You can decide to only define
choreographies top-down or only bottom-up. But you can mix the two and
do things in the best way that meets your requirements.



I have always imagined though that a higher level collaborative process
modeling language descriptions (e.g. BPSS or PIP definitions) can be put
through a tool that can generate the BPEL or WSCI defintions either
fully or partially. Business will need a way to model their partners
(parties) and interactions with partners in a business process in a way
that is independent of how it is implemented in terms of Web services
(or the full blown details there in). It is more meaningful for them to
speak interms of sending a RequestForQuote and receiving a Quote rather
than a Web service port and operation etc.  

Hence the question for us is, if we want to define a language that
facilitates modeling at the business-level and then break-it down into a
Web service based choreography or limit to the latter only and leave it
upto the tools to bridge the gap.

I guess questions have been raised on the need to model internal or
private processes, which have been mainly flow oriented. I think we need
to accommodate both to facilitate end-end process modeling, though IMO
they need to be clearly separted out and treated separtely instead of
mingling both aspects into one unified model as it seems to have been
done in some of the specs we have been looking at. 

Regards, Prasad

Martin Chapman wrote:

Received on Thursday, 13 February 2003 10:41:41 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:29:54 UTC