Bob La Quey wrote:
A good example of a RESTish approach is NetKernel. See http://1060.org/

Just going thru the whitepaper at http://www.1060research.com/resources/docs/ROCForDevelopers.pdf by the time they get to page six, they're making incorrect assertions about how great their stuff is. It's good to know that they, for example, can aggressively cache the result of an SQL select call, even though the data in the actual database has changed. It's also good to know that because they're using XML, they're not "brittle" with respect to the types of data they return. Let them change <symbol> to a URI and watch stuff break.

REST really only works well when you have data that isn't changing, expiring frequently, and etc. What's the URI for "IBM's current stock price"?

"""
Stateless service design is a major reason the Web scales to a global information application.
"""
Nonsense. There are huge numbers of highly stateful web sites like Amazon that scale just fine. The network with the most state in it is also the biggest and busiest (the PSTS). What makes the web scale to a global information application is the huge piles of money that's thrown at it. There are much better ways of getting scaling, like the store-and-forward semantics of email. If you discount all the sites that actually, you know, have state, like Amazon, Facebook, GMail, etc, then sure, you can dispatch any request to any server.

"active:generateConfig"
Very RESTful, that. NOT! Especially when the micro-kernel starts caching the results, eliminating the value of having the configuration actively generated.

"active:[EMAIL PROTECTED]@ffcpl:/pictures/boxes.png"
I'm not sure that's even a valid URL, or that if it is the scheme is going to be "active".

"""
The gate keeper can then examine the request and its context for security credentials ...
"""
Would be nice if they talked about what kind of security credentials you have, given that everything's identified by a URI.

I actually think that while not RESTful, the Singularity work does a much better job of decoupling than this stuff does. I would think any big program where all the layers are linked by untyped strings is going to be awful to maintain. That's just a guess, tho. I mean, how would you even look at a program and figure out what URIs it might ask for? How do you manage all these baroque rewrite rules, just to talk to the database full of state?


There are a number of ways to make things loosely coupled. REST is one, that
only works well if your problem fits into that sort of domain. Almost none
of the systems I've seen actually implement REST properly.

I would like to see some other good examples.

Good examples of what, specifically?

For example, any web site with a custom login page isn't REST. Amazon's
 cloud stuff isn't REST. They're all RESTish, but fail in the details that
give you the benefits of REST.

I understand the login point as follows: sessions break REST.

Yes. The same request can't go to a different server with the same data and work.

The Amazon stuff fails because altho there aren't sessions, it encodes the user identification in the data (the login problem) and doesn't actually give you URLs inside the results. If you don't know what parts of the XML actually describe URLs and which don't, you can't parse the result.

CouchDB is about as close to an actual REST service I've seen.

Is that your point?

One point of REST is to allow caching in the network and such. If you have a login page, you aren't caching stuff. SSL breaks REST. Cookies break REST. Most everything people use to do actual applications breaks REST.


--
Darren New / San Diego, CA, USA (PST)

--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg

Reply via email to