Re: Web Service Description and stateful services

* Cutler, Roger (RogerCutler) <RogerCutler@chevrontexaco.com> [2003-06-23 10:43-0500]
> Well put, Eric.  It seems to me that you could dress this up just a bit
> and come up with some candidate verbiage for the document ...  Hint,
> hint ...
[..]

Since we are talking about verbiage for the document...

> -----Original Message-----
> From: Newcomer, Eric [mailto:Eric.Newcomer@iona.com] 
> Sent: Sunday, June 22, 2003 12:21 PM
> To: Assaf Arkin
> Cc: Ugo Corda; www-ws-arch@w3.org
> Subject: RE: Web Service Description and stateful services - (on the
> 'www-ws@w3.org' list) Debating on a) Stateful Web Service Instances b)
> Stateful Interaction - OGSI
> 
> 
> 
> As Roger pointed out, we are often talking on this list about the same
> things using different terms, and about different things using the same
> terms.  The normal case, I guess, without an agreed architecture...
> 
> Anyway, I wanted to clarify a point in the discussion.  There are at
> least two kinds of state mentioned in this thread - application state
> and transport state.  
> 
> It's very true that a majority of Web sites manage some application
> state.  But HTTP does not include stateful sessions - meaning HTTP does
> not define a way to maintain a connection beyond what's necessary to
> execute a single HTTP method.  Many other communication protocols do
> support the notion of connections that live beyond a single method
> invocation (including those used in TP monitors whose applications are
> stateless), but of course that type of connection state requires
> resources impractical if not impossible to allocate over the WAN which
> is the Web.

This is not completely true. HTTP/1.1 does allow you to keep a TCP
connection to a server open that you could use to maintain some state:

	http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html

A few comments though:
- using a proxy would probably make this method fail: the persistent
  connection is hop-to-hop, and the proxy may use its connection to a
  server for 2 of its clients.
- in practice, HTTP connections are not maintained for a long time in
  most servers (something like 30 seconds for Apache whereas Jigsaw
  doesn't close the connection until it's forced to) and firewalls
  often terminate stale TCP after some time.
- using this persistent connection to maintain state is not RESTful
  since the subsequent HTTP requests would not have all the
  information necessary (statelessness).

So I would probably just drop "meaning HTTP does [..] execute a single
HTTP method."

Regards,

Hugo

-- 
Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/

Received on Tuesday, 24 June 2003 04:07:06 UTC