The Artima Developer Community
Sponsored Link

Java Buzz Forum
REST as an engineering discipline

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Bill de hÓra

Posts: 1137
Nickname: dehora
Registered: May, 2003

Bill de hÓra is a technical architect with Propylon
REST as an engineering discipline Posted: Aug 15, 2008 5:21 PM
Reply to this message Reply

This post originated from an RSS feed registered with Java Buzz by Bill de hÓra.
Original Post: REST as an engineering discipline
Feed Title: Bill de hÓra
Feed URL: http://www.dehora.net/journal/atom.xml
Feed Description: FD85 1117 1888 1681 7689 B5DF E696 885C 20D8 21F8
Latest Java Buzz Posts
Latest Java Buzz Posts by Bill de hÓra
Latest Posts From Bill de hÓra

Advertisement

Damien Katz: "Simpler is better, and REST is generally simpler than SOAP"

It's hard to imagine anything simpler than SOAP:

<SOAP:Envelope
  xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"/>
   <SOAP:Header />
   <SOAP:Body />
</SOAP:Envelope>

there you go. That's as simple as its gets, TSTTCPW. Way less cruft than Atom or RSS. It even says its simple - the Simple Object Access Protocol. REST is not that simple; you can fit the basics into a few slides, but it's purpose is to induce simplicity into the right places, not be simple.

No, the issue isn't relative simplicity; it's how complexity is organised. Talking about something being simple when not actually looking at how inevitible complexity is going to be dealt with, is asking to get into the weeds. Tesler's Law is very real. REST is an architectural style described in architectural style talk - talk of principled design, constraints, derivation, quality properties. It's the kind of language you expect from cathedral enterprise architect types and IEEE diehards whose idea of a program manager is probably Gene Kranz.  The kind of people Spolsky called astronauts; surely not for desperate Perl/Python/PHP hackers and smart people getting things done on the Web. REST like any architectural style is very much about managing the complexity that won't go away. It's a massive irony that system like the Web, but oftent frowned upon by architects, is so well articulated in its architecture, whereas the WS-* and previous EAI technologies that are used by architects have precious little to say about their overall effect. The important thing about REST is not that it's better or worse than SOAP/WS-* - the important is that REST is architecture turned up to 11, done right, not like the self-indulgence that neccesitated Agile.



So here's the thing for me - REST works. It does what it says on the tin, which is describe an approach to building a class of systems. It can be reasoned about. You can predict what might happen if you relax one constraint or introduce another. That process of taking away and adding to, is about as close to engineering as you can get in our industry  (with the exception of continuous testing). Having REST was enormously when useful I worked on the Atom Protocol, and probably even more so on the Atom format (feeds are a kind of iterator, whereas the web is kind of decentralised hashtable; these are very different and a design tension results, that you wouldn't see with XMPP  where feeds aren't needed). When it comes to designing APIs, having a well understood canon to 'spike' protocol designs against is FTW. I've found REST, and the approach it uses to define architecture, valuable, again and again since I came across the thesis. Want to take away uniformity? Put state in a particular place? Have servers invoke clients? Introduce write-thru cache? Sessions? Ok, we can reason about how that might work out or what the cost/benefits might be. I've never seen anything like that for WS-* or most middleware tech - it's all voodoo and sacrifice by comparison. You use a canon like REST the way building architects and masons once used De architectura.

There is a hype cycle around REST, which will be a problem for a while and then it will go away as hype cycles do. In the meantime the REST canon won't be rewritten to suit 65 day business cycles or strategic vendor concerns. I think somtimes that the problem people have with REST is that it's so well-defined; it's not witchcraft, it's not a cargo cult. You can't argue with it on a relativistic basis or apply clever rhetoric or continously redefine what it means.  An architectural styles isn't "good" or "bad" - you have to decide if it's the right fit for your problem space and if not, you have to come up with a more appropriate one.

 

I linked to "Beyond REST? Building data services with XMPP" recently, where REST is described as non-Newtonian physics. Which is an excellent line, but if we are going to say that, and say there is something up with constraints when we need to hit a server on average 500 times to get an interesting event, we eventually have to show up with another physics. That's how an engineering science should work.  One that offers explanation and predictability. XMPP I think is a great protocol, but it is not that. Happily there is a candidate - Rohit Khare's Extending the REpresentational State Transfer (REST)  Architectural Style for Decentralized Systems. This will be important reading for people who are hitting a scale wall on the client server constraint of REST (as found on the Web), now or the next few years.

Read: REST as an engineering discipline

Topic: Beautiful Machine, Parts 3-4 Previous Topic   Next Topic Topic: Beware of Google AdWords Phishing Scam

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use