> * the code looks like just the server-side implementation. Would there also > be a client-side implementation to tie into Cayenne.
Yes, we’d need to write an alternative to client HessianConnection to translate Cayenne operations to LinkRest calls. > What about other platforms like a javacript client library? I wanted to write Cayenne-like client in JS at some point, but being an outside in the JS community, I wasn’t sure that’s the right direction. However the existing JS frameworks (Sencha, etc.) can easily use LinkRest as is. > Could a Java client work on Android? No idea. > * could it be tied into servlets so that on the server side we'd have a > GenericServlet subclass like ROPHessianServlet is now? Or is this a very > different implementation? More likely not to servlets, but to JAX-RS resources that work on top of servlets. Also while we can have a single endpoint (say LinkRestResource) that dynamically serves all entities, in this model it will be trivial to add per-entity endpoints , each with its own security characteristics, all tied to a single ServerRuntime. > * I assume it would be easy to wrap the interaction in https and deflate? Of course. > * is it wise to tie it into Jodatime as that library is just now being > replaced by the new Java time classes? I hope LinkRest will be on Java 8 in the next 6 months. Then we drop Joda. Andrus On Sep 1, 2014, at 5:48 AM, Aristedes Maniatis <a...@maniatis.org> wrote: > On 1/09/2014 1:26am, Andrus Adamchik wrote: >> After a marathon of 5 LinkRest [1,2] releases in the last 20 days, I am >> starting to think it soon might become capable enough to replace Hessian in >> ROP. Which is going to be awesome, as the same server will be able to work >> with either Swing/SWT or JS clients, and ROP may break out of its current >> shrinking niche. > > Some questions: > > * the code looks like just the server-side implementation. Would there also > be a client-side implementation to tie into Cayenne. What about other > platforms like a javacript client library? Could a Java client work on > Android? > > * could it be tied into servlets so that on the server side we'd have a > GenericServlet subclass like ROPHessianServlet is now? Or is this a very > different implementation? > > * I assume it would be easy to wrap the interaction in https and deflate? > > * is it wise to tie it into Jodatime as that library is just now being > replaced by the new Java time classes? > >> Aside from the protocol details, the biggest architectural difference >> between current ROP and LinkRest is that the later is not based on blind >> serialization. Instead it has a well-defined query API that the client would >> have to follow. SelectQuery, RelationshipQuery, ObjectIdQuery will all be >> easily translatable to LinkRest. As well as commits (after PATCH [3] is >> implemented). Some consequences of the above: >> >> * A LinkRest server can have fine-grained security. To a point of shaping >> the response objects and attributes per user role. We’ve done that already >> on a number of real projects. > > Are you doing that by controlling access around which RESTful paths which can > be called, or by controlling the objects which are returned? > >> * A LinkRest server can be upgraded without upgrading all the clients. E.g. >> we can use newer Cayenne version on the server and the client wouldn’t know. > > That's very nice. > > >> I am working on improving LinkRest now, and don’t have immediate plans to >> jump on the ROP adapter for that, but still wanted to gauge interest in such >> a technology. And of course in a wider LinkRest discussion. > > > For us, Hessian's main limitations are its lack of documentation, release > notes or clarity in releases. Beyond that it has been extremely robust. It > has been difficult to extend though: adding more cookies, deflate or other > changes have not been trivial for us. > > The one thing that LinkRest could be a regression compared to Hessian is that > Hessian is a very compact binary format. We'd need to compare bandwidth needs > between the two after deflate is applied. > > > Cheers > Ari > > > > -- > --------------------------> > Aristedes Maniatis > GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A >