W3C home > Mailing lists > Public > www-ws-arch@w3.org > June 2003

RE: Simple WS Scenarios [Was Counting Noses]

From: Hao He <Hao.He@thomson.com.au>
Date: Tue, 10 Jun 2003 15:18:51 +1000
Message-ID: <686B9E7C8AA57A45AE8DDCC5A81596AB046AE550@sydthqems01.int.tisa.com.au>
To: "'Cutler, Roger (RogerCutler)'" <RogerCutler@chevrontexaco.com>, "Champion, Mike" <Mike.Champion@SoftwareAG-USA.com>, www-ws-arch@w3.org
ok, here is our view about XML HTTP service (Mike's language):

A service pattern is classified as simple and complex according to the
degree of complexity of request from the client side. Note that this
classification is relative without any absolute distinction between simple
and complex request. 

From the server side, the service is characterized by the following:
1. The availability of results: synchronous or asynchronous. 
2. Results delivery methods for asynchronous results: push or pull.

With this classification, we classify common service types:
1. Simple query type.  A client sends a simple query, which consists of a
small number of parameters, to a server, which returns query results.  Those
parameters together with their values can be used as a locator of query
result. Such a query does not cause any changes on the server side. This is
a simple-request-synchronous service or a simple-request-asynchronous
2. Complex query type. A client sends a complex query, which consists of a
large number of typed parameters, to a server, which returns query results.
There are additional relationships and constraints among those parameters.
Those parameters may not be used as a locator of query result. Such a query
usually needs additional work on the server side to validate the query. This
is a complex-request-synchronous service.
3. Processing type. A client sends a complex message usually in XML together
with links to other resources, to a server, which needs to process the
message and take other necessary actions in order to return a message. This
MEP usually causes side effects on the server, usually by means of creating
new resources. This is usually a complex-request-asynchronous service. 
4. Notification type.  A server sends notifications to subscribed clients.
This type of MEP is much less frequent than other types.


-----Original Message-----
From: Cutler, Roger (RogerCutler) [mailto:RogerCutler@chevrontexaco.com]
Sent: Sunday, June 08, 2003 1:54 AM
To: Champion, Mike; www-ws-arch@w3.org
Cc: Hao He
Subject: Simple WS Scenarios [Was Counting Noses]

Glad to try.  This may be particularly useful because getting to
specifics may surface misconceptions on my part.

1 - There is an application resident on a Web server somewhere that I
invoke, from an application on another server, with a simple GET with
some parameters.  The service (or whatever you want to call it) does
something or other and returns a binary image (a png file) as an HTTP
image/png type. That's all it returns -- the image manufactured from
scratch using those parameters -- and that's all I need back.  One of
the two things I had difficulty with in getting this working (the other
is not relevant to this discussion and SOAP certainly would not have
helped that problem) was figuring out how to handle the binary stream of
data.  Eventually I discovered some method in the system library that
would just stream it out to a file on disk, which is what I wanted.  I
believe that my task would have been significantly more difficult if I
had also had to cope with some XML SOAP header that came along with the
image.  That SOAP header would not have done me any good whatsoever, and
I am not interested in any of the addons that it might offer (like
signing the image, for God's sake).  Streaming the header plus the
binary image to a file would definitely not have been what I wanted.

2 - We have an automated XML feed from our Help desk to a service
company.  I'm not positive how it works, but I think it just does a
simple POST and slams the XML into something that stores it as-is.  For
one reason or another that's ALL that is needed.  SOAP headers would
simply be added characters that would be thrown away, and presumably
software would have to be written to strip those headers off.

In both cases, note that the result of the "push" or the "pull" is
simply to take a defined set of data and put it somewhere.  The data are
not processed at that time.  SOAP stuff would require processing to
strip it off.  Cost with no benefit.

It sounds like Hao can probably come up with better scenarios, and I
hope he does so.

-----Original Message-----
From: Champion, Mike [mailto:Mike.Champion@SoftwareAG-USA.com] 
Sent: Friday, June 06, 2003 11:03 PM
To: www-ws-arch@w3.org
Subject: RE: Counting noses on "is SOAP and/or WSDL intrinsic to the def
i nition of Web service"

> -----Original Message-----
> From: Cutler, Roger (RogerCutler)
> [mailto:RogerCutler@chevrontexaco.com]
> Sent: Friday, June 06, 2003 12:33 PM
> To: Hao He; Christopher B Ferris; www-ws-arch@w3.org
> Subject: RE: Counting noses on "is SOAP and/or WSDL intrinsic to the
> defi nition of Web service"
> I agree with Hao -- there are a lot of practical cases where the extra

> features of SOAP are just not necessary, and the SOAP stuff just extra

> overhead, or branding perhaps, that actually has a negative effect 
> because you are now forced to use software that understands it.  That 
> may be something that looks good to a software vendor, but not really 
> to an end user.

It would be useful to have a usage scenario that illustrates this so we
can really come to grips with it.  I think the +10 advocates would say
that SOAP 1.2 can sortof "fade into the wordwork" in situations (e.g.
the RESTful GET) where its format is not necessary but the processing
model and *potential* for headers and intermediaries is present.

The real advantage of putting SOAP into the core definition of the scope
of WSA is that it allows those simple "GET/POST an image" applications
to gracefully accomodate new requirements.  For example, what happens
when the service's requirements/features expand and you need to add
transaction support (e.g., POST a bunch of pictures separately and get
them combined somehow, all or nothing), encryption that works all the
way from client to server, or any of the other features that people are
defining SOAP headers to handle are added?  I suspect we will want to
reference the SOAP model of just adding new headers, not say something
vague like "there's all sorts of things you could do ... SSL ...
WS-Security ... blah blah blah".  

So, again I don't want to say that something like photos.yahoo.com with
formally defined interfaces is not a "web service" in some ontological
sense, but I don't want to have to keep waving our hands over every
little thing that comes up and say "you could do this, you could do
that, or you could use SOAP headers."  I want to just say "use the
freakin' SOAP headers, dammit!" :-)

Users can do what every looks good to them, but I think we want to offer
clear architectural advice like "when the going gets tough, the tough
create a TC to define a new SOAP header and applications/intermediaries
that understand them."  That requires us to put SOAP in a very special
place in the WSA, however we weasel-word it.

Received on Tuesday, 10 June 2003 01:17:36 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 3 July 2007 12:25:21 GMT