- From: Sankar Virdhagriswaran, Crystaliz Inc. <sankar@fcrao1.phast.umass.edu>
- Date: Fri, 01 Dec 1995 21:23:47 +0000
- To: Shel Kaphan <sjk@amazon.com>
- Cc: Jeffrey Mogul <mogul@pa.dec.com>, Dave Kristol <dmk@allegra.att.com>, http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
>Before I cast a vote to get rid of ``logic "bags"(?)'' I'd like to >hear from Roy and anyone else who likes this stuff as to (a) >specifically why they think it is justified, and (b) why worrying >about it is more pressing than some of the other things that need to >get done. I would too. I wonder what the original reasons for it were. Since I spoke up, here are some example areas where I would like to apply it. The simplest ones include testing on content type or content length to provide some hints to the user (build rover the dog within WWW browsers !!). More complex ones include: Building iterators. The general idea is to use the "unless" test (testing for leaf or empty nodes) combined with the "link" header to traverse a tree of related objects. Using this sort of functionality, I can implement a container like concept. This of course means that the client is holding state between a series of get or put or link methods, but such is life in the HTTP land. Protocol upgrade. Another place where I would like to use it is to upgrade to a different (possibly private) protocol based on "unless" tests on content type, and content length. Transactions or Reliability. Let us say that I have an update which consists of many puts, each of which are actually saved to a transactional db. The global transaction is not known to the transactional db. In order to make sure that all my puts have been committed by the transactional database, I would like to use a callback from the transactional db to set an extension header (defined by myself). The puts will check against this tocken to see if the previous put(s) has been committed. If any of them fail (determined by a test with unless and logic bags) I would then use some other mechanism to inform the client that the global transaction did not committ. Notice that this sort of thing would come in very, very handy in HTTP-NG timeframe when request and responses may span connections. Even with HTTP 1.1, since we have the keep-alive notion that spans requests and responses, if one is concerned about transactional capabilities, one needs to perform such tests. Begin SoapBox: The notion of per method dynamic binding of services is very powerful. At OMG we are struggling with those concepts just now. Let us not do the same mistake at WWW. If HTTP systems are to perform as object oriented systems in the WAN, per method dyanmic binding of services is going to be very useful. Currently, the HTTP headers donot have all the needed headers with appropriate semantics to do very useful things. But, unless and logic bags will encourage experimentation in this space and we will be able to learn from those experiences for the next rev. End SoapBox Sankar Virdhagriswaran Phone: (508) 287 4511 Crystaliz Inc. Fax: (508) 287 4512
Received on Friday, 1 December 1995 18:16:21 UTC