World Wide Webber


My Books
REST in Practice: Hypermedia and Systems Architecture
Now available on Rough Cuts
Developing Enterprise Web Services by Sandeep Chatterjee and Jim Webber
Amazon:
US, UK, Canada, Germany, France
Now available: Korean Edition

My Bookshelf
Programming Clojure by Stuart Halloway

RESTful Web Services by Leonard Richardson and Sam Ruby
Guilherme Silveira on RESTEasy
Posted: 03 December 2009 @ 09:48 UT from Seattle, US

Guilherme has written an interesting and thought-provoking post on the RESTEasy framework, comparing it to his own Restfulie framework. Overall I think the theme of his analysis is accurate: RESTEasy doesn’t provide support for hypermedia out of the box, and that means it’s anything but RESTful.

But I don’t believe this is RESTEasy’s fault. In fact in the bizzaro-world that RESTEasy inhabits, I imagine it to be an exemplary citizen. Caught between the enterprise and the JCP, what choice would a sensible Java vendor have, other than to follow (and influence) the appropriate JSR? So it’s not RESTEasy (or Jersey, or CXF) that are at fault here, but the committee-driven process where folks with different goals and levels of understanding about REST have convened to drive out a lowest common denominator called JAX-RS (a poor name since at best JAX-RS provides a programmatic layer over a Web server).

So I won’t put the boot in to RESTEasy (or its brethren). They are what they are, and it’s too late now to worry about it. What Guilherme has shown though is just how fast and powerful innovation can be when it’s freed from committee constraints, and left in the hands of folks who are knowledgeable about the domain and passionate about their community. Restfulie (for both Ruby and Java) may well be early in their development, but they’ve already eclipsed JAX-RS (and WCF too) in terms of trying to provide support for RESTful services by embracing hypermedia.

I hope Guilherme will be offered a seat on the JSR for JAX-RS 2.0 so that it can earn the “R” in its acronym. And if a mature Ruby version of Restfulie makes it into Rails at some point, that would be nice too.

Comments:
#

Second attempt (your antispam form caught me out.) 

Have you ever thought about getting involved in these standardization efforts yourself? I don't think anyone would say you don't have an opinion or two on many of these related topics. But all we seem to hear is you blogging about the problems or talking about them in your presentations (which are always fun to attend btw). Maybe it would be better if you got involved directly? Otherwise I'm sure some people will simply see this as noise. Anyway, just a friendly suggestion.

#

Hi Paul, 

Been there, done that during the WS-* days. I wouldn't rule out doing it again, but it's not explicitly something I want to be involved in immediately. 

Still, I think folks like Guilherme (and for that matter Bill Burke) have implementation experience that trumps my aesthetic whims and so they should be driving this stuff based on correctness, not based on pandering to lowest common denominators. 

Jim

#

Much of Guilherme's comments are directed against the use of early-bound interfaces on the client side. This isn't part of JAX-RS which is purely server-side for now.

#

There definitely is some RESTEasy bizzaro-ness because of the reasons you mentioned, but I have tried to add hypertext awareness to the client... take a look at:  

http://www.jroller.com/Solomon/entry/three_forms_of_resteasy_client 

and  

http://www.jroller.com/Solomon/entry/declarative_hyperlinking_in_resteasy

#

"Been there, done that during the WS-* days. " 

Now, now - don't going blame standardization processes for broken technology ;)  

Anyway, please - more criticism, less handwaving - being aesthetically concerned isn't a excuse for missing a good excoriation! I've read this post and Guilherme's, looked at his framework and there's not much beef. I learned that JAXB == bad, but I use Jersey all the time on the server and on the client and have never used or had to use JAXB - that's internal to the implementation (transformation sugar for crappy type systems). Couldn't we taking potshots at almost *any* other "web" framework? Just think of the fun we could have with HttpClient or java.net.*. Just today I whipped up some nice client code on top of Abdera and Jersey client where the low level stuff is driven by links. It all works. If the problem is that the OO paradigm simply sucks for hypertext driven systems I'd buy that...  

Via this tho' I found Ian's "how you link post" - which is great, but real "meaning" unfortunately needs real "semantics" and "link@rel" isn't quite there - if the "rel" hooked into RDF/OWL that could be transformative - I wouldn't need the "type" attribute as much or couple code logic to rel, which is only incrementally better than hardcoding to elements/schema. But I'm not holding my breath for enterprise devs to do actual real business logic in this tech cycle; I'll settle for putting the state in the right place and leaving some bad technology behind ;)

#

...and when's the book out?

#

Restfulie makes some very specific decisions and comes up with a solution that is RESTful. But it's not a generic framework for building (any kind of) RESTful system. I don't think they compete, they address different problems domains.

Author Name:
Email:
Author URL:
Comment:
Antispam:
Please type the following string (note that if the strings don't match, your comment will be lost... sorry!): 'SQLEM'.
 
Recent entries

Recent comments

Feeds:
RSS 2.0 Atom