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

RE: WS-I and RPC

From: Burdett, David <david.burdett@commerceone.com>
Date: Mon, 6 Jan 2003 10:01:29 -0800
Message-ID: <C1E0143CD365A445A4417083BF6F42CC053D15B5@C1plenaexm07.commerceone.com>
To: "'Assaf Arkin'" <arkin@intalio.com>, Mark Baker <distobj@acm.org>
Cc: www-ws-arch@w3.org

We also shouldn't forget that invoices can sometimes, contain line items
from multiple orders. Seller's don't always wait until the complete order is
satisfied before they generate an invoice.

What I think this means is that the "get" model as used in "getmyinvoice"
doesn't always work. Usually it is the seller, not the buyer who determines
when the invoice is going to be sent. How would this work in a RESTful
approach?

David

-----Original Message-----
From: Assaf Arkin [mailto:arkin@intalio.com]
Sent: Monday, January 06, 2003 1:07 AM
To: Mark Baker
Cc: www-ws-arch@w3.org
Subject: RE: WS-I and RPC



> sendMeInvoiceDetails is an object-specific operation.  If you want that
> to happen, you need to do so within the constraints of the architecture.
> In that case you might invoke GET through an intermediary which returns
> the GET response over email or fax.

Kind of a trap. Specific to what object?

Use your imagination for a second. There's no invoice object in the system
yet because my order has not been completely processed. There's a purchase
order pending. I've concluded that I want to receive the invoice details. So
after performing sendMeInvoiceDetails there's also an object representing my
request to receive invoice details. With my address.

Once there's also an invoice object, hopefully I will be recieving my
invoice (assuming the service is not lying). So the service is actually
performing an operation that is decoupled form any specific object. And yes
it does use a few objects to get the job done, and so does an HTTP server.
But it does not represent an object-specific interface.

In contrast, if I was to retrieve the state of the object through a get
operation (SOAP POST, HTTP GET, FTP RECV) that would be an object-specific
operation.


> e.g.
>
> connect to some-intermediary.org 80 and execute;
>
> GET http://example.org/invoice/2384923849732 HTTP/1.1
> Reply-To: mailto:foo@bar.org
>
> where "Reply-To" would be understood and processed by the intermediary
> (of course, SOAP's processing model would come in handy there, but hey,
> it's a GET 8-).

I like instant gratification. Unfortunately, it's not always possible. A lot
of the patterns you will see in business scenarios are based on
asynchronosity. You request that something be done, it could be a retrieval
of information, and it will be done but it might take some time.

Of course this could also be recast in reverse. I could give my URI and the
service could HTTP PUT the invoice to my URI when it's done. But that would
be an object-specific method, i.e. it will require an object to operate on.

arkin


>
> MB
> --
> Mark Baker.   Ottawa, Ontario, CANADA.        http://www.markbaker.ca
> Web architecture consulting, technical reports, evaluation & analysis
>
Received on Monday, 6 January 2003 13:01:13 GMT

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