Hey, isn't semantic inadmissibility the basis for thought crimes and
fundamentalism?
:)

I want to thank you Rob for the detailed answer, I get your point
about the higher abstraction level giving you more freedom from the
implementation. That's definitively a good thing.

When you say "callbacks", what do you have in mind? Something like Comet?

Cheers
Jaime



On Feb 5, 2008 3:37 AM, Rob Heittman <[EMAIL PROTECTED]> wrote:
>
> As a third party kibitzer ... I feel like saying "Restlet vs. Servlet" at
> all is a bit semantically inadmissible.  It's not an "or" operation.  You
> can run Restlet with, without, in, outside, talking to, or being talked to
> by Servlet.  The scope of the javax.servlet API is intentionally narrower;
> all it does is model REST-style Uniform message passing
> (service(request,response)) for the purpose of writing server code.
>
> The Restlet framework adds a whole new abstraction layer specifically for
> modeling REST applications.  With this, much or most application work can be
> done with higher-level Representations that are separated nicely from the
> service(request, response) paradigm.  Both client and server can interact
> with the same Representation objects -- and indeed the same Uniform message
> layer -- whether or not any Servlets are involved in the process.
>
> On the "I/O agnostic" topic specifically, this separation of concerns
> becomes very interesting now as we explore things like asynchronous
> processing in the Restlet API.  We can add mechanisms for things like
> callbacks -- things not even remotely modeled in the Servlet API -- that
> affect the message passing aspects in dramatic ways, without
> Representations, or in many cases even Resources, having to be aware of the
> change.
>
> NIO can make an HTTP connector more scalable at dispatching calls to
> Servlets -- obviously both Restlet and Servlet run on top of Jetty, MINA,
> and Grizzly NIO connectors, to name a few -- but the Servlet API does not do
> anything particularly interesting to expose non-blocking/asynchronous design
> advantages.  If it did/when it does, Servlet authors will need to do
> refactoring to take advantage of it.  With a more separated API like
> Restlet, it is easier for major design revolutions to take place in the I/O
> layer -- pluggably and optionally -- while the bulk of the application
> remains stable.
>
> At my company, before we discovered Restlet, we wrote a lot of this SoC
> ourselves -- trivial Servlets that interacted with Resource and
> Representation objects -- but our code was pretty much tied to J2EE
> containers, because there was just too much plumbing in Servlet that we
> didn't want to re-create in a more abstract way.  After porting this all to
> Restlet, we find ourselves able to run the same applications online,
> offline, with or without a J2EE container, and have a nascent ability to do
> so in transcoded environments like GWT.  I feel sometimes like we need to
> get Duke out of retirement to hop around and say "Write Once, Run Anywhere
> ..."  That is really how it feels.
>
> - R
>
>
>
> On 2/5/08, jbarciela jbarciela <[EMAIL PROTECTED]> wrote:
> > Now, are you saying there that there is something conceptual that
> > prevents Servlets to use NIO? (apart from possible implementation
> > details in particular servers like Tomcat)
> > If that's true, then how should we interpret statements like "Jetty
> > can use NIO" or "Glassfish can use NIO" ?
> >
> > Please notice that I don't intend to start a confrontation of the "I
> > say they say" kind, only looking for enlihgtment
> >
>
>

Reply via email to