W3C home > Mailing lists > Public > www-ws@w3.org > December 2004

Re: Web Services and Distributed Object Systems: a Difference in State.

From: Robert Mark Bram <relaxedrob@optusnet.com.au>
Date: Thu, 30 Dec 2004 12:43:20 +1100
To: Mark Baker <distobj@acm.org>
Cc: w3c-ws <www-ws@w3.org>
Message-ID: <opsjsseiixov81ve@mail.optusnet.com.au>

Hi Mark,

Thank you very much for the feedback. It is most appreciated!

> I think a point of confusion remains in this article.  I agree that
> Roy's terminology in his dissertation is a little bit confusing, but
> where he refers to "client-stateless-server" (that you reference),
> the "stateless" part there isn't an adjective for the noun "server",
> it refers to the connector.  It's true that stateless servers, by
> definition, can only participate in stateless exchanges, but the
> converse isn't true

This is a most interesting distinction that I had not taken into account 
thus far. There are three components in a networked application that may 
or may not have some notion of state: client, service and connector 
(communication mechanism).

HTTP is a stateless connector. But doesn't HTTP 1.1 include persistent 
connections? This must introduce some idea of state.

FTP is an example of a stateful connector since it defines messages 
specifically to open and close connections.

> a server with state can still participate in
> stateless message exchanges.  It just can't have *session* state, aka
> state which can be referenced by messages for the purpose of
> affecting the semantics of those messages.

This still confuses me. What about web applications where the HTTP message 
has a header containing a session ID; isn't this an example of a stateful 
server whose messages reference state?

Or is it the case that when you say "can't have *session* state" you are 
referring to "session state" as being messages whose type changes (as in 
FTP) as opposed to changing content (as in HTTP).

> Regarding "stateless clients", I don't think that's what you mean to
> be discussing.  AFAIK, the only "stateless client" architectural styles
> are "remote session" styles like telnet or VNC where session state is
> *entirely* on the server.  What you appear to be describing in those
> two sections are styles where the state of any session is split between
> client and server.

Good point. I shall correct this.

> I disagree with your summation of the tradeoffs of stateless vs.
> stateful when you say "a stateful server [...] is more amenable to
> message sequences i.e. application level protocols.".

Can you elaborate further on this?

In that section of the article I meant to refer to this message in the 
"Stateful Web Services" thread:
(I have just corrected the link).

In the "PRO STATEFUL" list I found:
- Requests can have sequence numbers, so that the server can detect
duplicate and out-of-order requests. Thus requests need not be
idempotent, and multiple-request interaction patterns can be validated



Robert Mark Bram
B.Comp.(Systems Development/Business Systems)
Doctor of Philosophy Student

School of Network Computing
Faculty of Information Technology
Monash University
Peninsula Campus
McMahons Rd
Frankston, VIC 3199
Received on Thursday, 30 December 2004 01:43:11 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:37:11 UTC