REST frameworks like JAX-RS bring little value to our JSON/HTTP API,
since it is just a wrapper of the underlying binary detyped DMR protocol. Even if we did
use a framework we would still have to write the marshaling bits, which is the majority of
the implementation.
Good point. The question is if we are building a JSON RPC protocol over HTTP or a REST
interface.
The later requires some more bells and whistles. If we simply need an HTTP access point to
handle a JSON'ish RPC
protocol, then the embedded HTTPD might be sufficient.
I don't want to start a religious war over what REST actually means, but we would at
least need to consider things like
content negotiation, uniform interface constraints, etc. Typical reasons to build a
RESTful interface in the first place.
But let's move this to a separate thread.
> Missing runtime service (b)
that may result in more work are things like integration with a security subsystem
> and configuration. While a the Servlet API provides clear means to integrate with
JAAS for instance, we would need to specify and implement that on our own.
Since JAAS is a SE API, you can use it without using servlet. Also, the jdk http server
provides an impl for basic and digest auth as well as support for ssl (although these are
trivial to implement anyway)
Ok, thats good. I was wondering about TLS. Let's figure out how authentication should
actually work.
I think this will identify the requirements.
I would suggest a separate thread as well.
> c) simply means we constraint ourselves and users a
single deployment option.
> In Neuchatel we discussed the deliverable as a web application (war) that relies in
the remoting protocol internally
> and the flexibility it would have in terms of running the web-UI anywhere in your
system.
Actually what you propose is less flexible. As you know, GWT app the uses REST is just
static content and doesn't even need a java web server. You can run it on apache, in a
war if desired, or even directly off the filesystem.
Although from a topology perspective, I would imagine most would prefer the admin console
be ran from the dc. We would of course need to support additional configurations.
Doing remoting from the web server implies that you would be doing javascript http
requests to the servlet engine (I'm guessing using GWT-RPC?) which would then do a
remoting call to the DC. Instead you can just do a straight http request to the dc, and
you have half the transport and marshaling happening.
See my comments on this in a previous email.
Ike