Re: Logic Bag concerns

>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