Jacob,
Comments below.
Jacob Beard wrote:
Hi Ed,
Thanks for the quick response.
I have a few questions. I'd like to preface them by saying that I
haven't done very much work developing Web Services before.
Me neither. I.e., none.
I'm mostly a web, front-end developer, albeit on the MDA
and research side (I work on modeling the Abstract Syntax of Concrete
Syntax, and on modeling UI behaviour).
Cool. Sounds like more fun to me.
I'm therefore fairly familiar with consuming RESTful Web
Services from the browser (particularly using dojo.data API's), but I
haven't needed to expose these services myself, or deal with WS-*
services.
Oh the horror. That huge poster I blogged about a while back leaps to
mind...
So some of these questions might be a bit newbish; please
bear with me.
My answers might be naive as well.
In general, I'm concerned with finding the optimal way of exposing
operations on EMF models to the browser via XMLHTTPRequest. If this has
already been accomplished, and is document somewhere, then I believe
this would resolve most the questions I'm about to put forward.
What's involved? I know nothing about this. It's of course easy
enough to save something to XML and to load from XML bytes...
I see that Servus maps Ecore to WSDL 1.1 and 2.0, and generates client
and server stubs in Java. Does this then marry us to SOAP?
Yet more horror.
It is my understanding that SOAP services cannot, in
general be
consumed directly by web browser clients (I think the reason most often
cited is the lack of complete XML support across browsers), and so this
could be problematic.
That may well be.
On the other hand, you said that EMF's resource design is fully
RESTful. Could you please explain this a bit more, or point me to a
resource that does?
Kenn's EclipseCon tutorial was about this topic. Why weren't you
there? :-P
In https://bugs.eclipse.org/bugs/show_bug.cgi?id=191077
there is a little servlet that I used to test that save and delete work
properly via HTTP.
In general REST is just a set of principles around the idea of how the
resources are uniformly addressed and the small number of operations
that can be applied to those resources. An EMF resource set
effectively works like a browser where pages are like resources,
addressed by a URI, and follow links opens new tabs. How more RESTful
can you be? :-P
Please let me know what you think. Thanks,
Jake
|