A 2 layer architecture for a public service is useful for a bunch of
reasons- load balancing, service availability during upgrades,
security, separation of concerns (e.g. segregate apps by workload,
offload gzip encoding, ssl endpoint, local static asset caching).

Now, I haven't tried this with restlet yet, but it looks to me like
restlet could be used on both layers.

That said, there is a point at which *running* a public service
requires its own expertise to manage the endpoint, and typically
people focused on that use those tools- HAProxy, nginx, apache, etc.
And they tend to think of a jvm as opaque and hard to manage. Try
telling an ops person that they have to tune GC on their load balancer
and they'll probably quit.

But I definitely see the appeal of having a restlet uberjar, packaging
jetty and spring and a bunch of other connectors, to serve as a kind
of universal REST server that could do load balancing, reverse proxy,
template rendering, or whatever- expose a REST interface to a database
or to other proprietary back end services- all by just swapping in and
out spring bean configuration. There are still some areas of weakness-
I think e.g. the slowloris DoS attack is not defensible from a JVM.
But as a devops tool, it seems like it has potential.


On Fri, Sep 24, 2010 at 10:56 AM, Tim Peierls <[email protected]> wrote:
> I share David's frustration. One of the things that attracted me to Restlet
> in the first place was the hope that I could throw away all the other
> processes and do everything in the JVM. Why couldn't I put whatever
> throttling/defensive logic (that I would otherwise have to put in a separate
> process) right into the Restlet Component? Is a Restlet Component inherently
> "vulnerable" as Tal puts it, or is it just that no one has provided the
> right defensive Restlet Filter so far?
> --tim
>
> On Fri, Sep 24, 2010 at 2:24 AM, David Fogel <[email protected]> wrote:
>>
>> Hi Tal, William-
>>
>> Thanks for your feedback!
>>
>> Regarding putting the JVM behind Apache or some other proxy: well,
>> we're likely to have to use a load-balancer soon, but aside from that,
>> I find it frustrating to put something in front of the JVM- shouldn't
>> java web servers be considered just as robust and fast as ones written
>> in C or something else?  It's not like java web servers are
>> inefficient CGI scripts or something, yet everyone is always saying to
>> stick things in front of them.  I'm not suggesting this is wrong, just
>> that it's frustrating :-)
>>
>> Wouldn't it be nice if products like Jetty, Simple, etc had
>> appropriate built-in features to combat various misuse?  It seems like
>> if they're serious about being web servers, they should consider these
>> features to be important.
>>
>> Anyhow, I'll probably try to block a few things at the Simple or
>> Restlet Filter level, just to make myself feel better...
>>
>> thanks,
>> Dave Fogel
>>
>> ------------------------------------------------------
>>
>> http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2663951
>
>

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2664279

Reply via email to