>>>>> "terrel" == Terrel Shumway <[EMAIL PROTECTED]> writes:

  terrel> WebDAV is a layer of abstraction that presents
  terrel> a filesystem to its client. 

Well, that's not what the WebDAV RFC says the way I read it, but there
you go. I read it, in relevant part, to say that it offers, among
other things, collection management. Every filesystem may be a
collection, in this sense, but every collection is not a filesystem,
and we should be careful to keep that distinction in mind.

          /articles/ (or a WebDAV aware
  terrel> delegate) is another layer of abstraction that presents a
  terrel> filesystem to WebDAV.

No, actually, as I've said, in my example, /articles is a DAV
collection, and /articles/500 is a member-uri of that collection. Now,
how that eventually, if at all, maps to the filesystem of an origin
server is something that, as far as I can tell, the DAV RFC is
completely agnostic about.

  >> We could just treat the underlying servlet, PSP, Cheetah,
  >> et. al. resources as static files; i.e., DELETE /wk/index.psp
  >> simply deletes 'index.psp' from the filesystem; but if that's the
  >> approach, why not just use mod_dav?

  terrel> Yes, mod_dav is more appropriate for that purpose, but that
  terrel> would be for application *developers* not application
  terrel> *users*. The two uses are orthogonal.

Well, it depends. The two sets also very often overlap.

I think we're all clear on the distinction, though, and I think
everyone who's weighed in on this thread agrees that mod_dav is ideal
to handle what the DAV RFC calls "Source Resources" and that we may
well want some DAV in Webware to handle "Output Resources".

  terrel> That is exactly why we should not try too hard to find
  terrel> something "that generalizes to all Webware URIs". Let the
  terrel> servlet/container manage its own namespace.

I think, provisionally, that some parts of DAV infrastructure do
generalize: request parsing, response construction, (maybe) property
and lock management (or perhaps just parts of lock and property
management, like universally unique lock token creation, say). I'm
just suggesting that as much generic DAV infrastructure as possible
should be part of Webware out-of-the-box. I fully agree, and have been
saying in several messages, that when it comes to many DAV methods,
there are no general semantics at the Output Resources level, and
while there are general semantics at the Source Resource level,
mod_dav has that covered nicely already.

  terrel> That is why /articles/ should not expose 500/delete as a
  terrel> GETtable resource to a WebDAV client. 

I agree. Unsafe GETs are unsound.

          That kind of knowledge
  terrel> need not be available outside of the servlet. It is also why
  terrel> /delete is better spelled as /?action=delete:

No, it's why GET should be safe! :>

Spiders, conservative or not, do not issue DELETE methods to origin
servers, after all.

          A conservative
  terrel> spider would probably skip the latter. /print might be
  terrel> acceptable instead of /?view=printable, because it probably
  terrel> is idempotent w.r.t. GET, but it probably doesn't make sense
  terrel> to WebDAV it because it is not an independent resource, but
  terrel> merely a view.

Not necessarily. It may well be an independent resource, which is why
I spelled it /foo/bar/print, rather than /foo/bar?print.

Now, eventually, I think this *kind* of issue gets swallowed up by
content negotiation and media feature tags (RFC 2295). Until then,
however, the distinction between view and variant is wholly
context-specific and interest-relative.

Plus, there is a human factors angle: URLs with ? and & are ugly and
hard for most people to remember. Ordinary, non-hacker types can
remember /foo/bar/print far easier than they can /foo/bar?action=print
-- that matters, I think.

  terrel> Note: Deficiencies in Webware's current handling of the URI
  terrel> space surface when you start trying to divorce URIs from the
  terrel> filesystem. My frustrations in trying to create a workflow
  terrel> app based on this abstract resource view is what motivated
  terrel> me to create URLDecoder
  terrel> (http://jaguar.sourceforge.net/webware/urldecode.html) over
  terrel> a year ago.  Catalina's URI mapping is even better, because
  terrel> it is completely controlled by servlets and containers
  terrel> managing their own private namespaces, instead of
  terrel> Application.serverSidePathForURL() trying to be all-wise and
  terrel> all-knowing. Contexts were a step in the right direction,
  terrel> but only a step.

I agree completely that the way an app server like Webware manages URI
space should make no assumptions about filesystems. That's, in my
view, the major Webware wart. 

Best,
Kendall Clark

_______________________________________________
Webware-discuss mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/webware-discuss

Reply via email to