Arnon Rotem-Gal-Oz's Cirrus Minor
"Making IT work" - Musings of a Holistict Architect
Navigation for Arnon Rotem-Gal-Oz's Cirrus Minor - A couple of REST observations
Content
Sidebar
Footer
September 20, 2007
@ 12:25 AM
Comments [0]
A couple of REST observations
Another REST related post - this time I want to share a couple of observations I had after
reading
(
Roy's presentation from RailsConf 2 days ago
via
Pete Lacey
) and
listening
to Roy T. Fielding's presentations.
The first point has to do with a question which is sometimes raised whether you can do REST without HTTP. i.e. can you have a RESTful architecture if you don't use the http protocol and further more not using the http verbs (GET/PUT/HEADER etc.) or as the unifier interface.
I talked about it a while ago
and I think you can. listening to Roy's talk it seems that, at least in http architect's opinion the answer is yes as well.
Another point that occurred to me, watching Roy's talk, which is related to the
"REST magic"
post I wrote a little over a week ago. The use of a uniform interface is tauted by REST proponents (and Roy himself) as coupling reducing formula. After all if you use a uniform interface you are not coupled to the particular semantics of any resource/service you already know the capabilities (actually the maximal capabilities) they offer. What ensues is that instead of using a lot of verbs (ReserveRoom, UpdateOrder etc.) you use a lot of nouns (/rooms/, /orders/order1 etc.)
This works extremely well on the "human" web where my browser can navigate to any-ol'-site without any prior knowledge of what's the site about. When I navigate to Amazon I can buy stuff, when I navigate to New York Times I can read stuff etc. The problem here is the browser is really dumb about what's going on. I, as a human using the browser, understand the context from the content (well, most of the time anyway;) ) so the browser can remain decoupled. However when you translate it to the "programmable" web you usually don't have some mighty AI engine examining the response to understand the context - instead what you do is trade the verb coupling, which with WS-* web-services would be defined in a contract, you are now coupled to the nouns ( this is not to say the nouns aren't discoverable - since they are due to the hypertext or document orientation communication REST encourages). The end result is pretty similar to what you get when you use verb based contracts your software still needs to understand (where "understand" means some level of coupling) what it is doing with the "other" services. not to mention that you still need to understand the content of the message (sorry- response) to do anything useful with it.
In any event, while loose coupling is very desirable, we also need to remember that the only way to truly achieve complete decoupling is to not connect components. So some coupling is always needed if we want to produce meaningful systems.
What do you think?
Tags:
Everything
|
REST
|
SOA
|
Software Architecture
Related posts:
Another WCF gotcha - calling another service/resource within a call
Architecture - It is always a tradeoff
Think Hollistically
A few pithy thoughts on Architecture
"97 Things" - Architect Axioms
Using REST along other architecture styles
« WAKA - A little REST and Relaxation in N...
|
Home
|
Offtopic : Off to a new start »
Comments are closed.
RSS/Subscribe
Navigation
Home
Papers, Articles & Presentations
SPAMMED Architecture Framework
SOA Patterns
About Me
Search
Featured Presentations & Papers
REST introduction (ppt)
SOA Pattern Presentation (pdf)
Fallacies of Distributed Computing (pdf)
Getting SPAMMED for architecture (pdf)
OO Primer (ppt)
Use Case Methodology for large systems (pdf)
Use Cases Methodology for large systems (ppt)
Software Architecture (ppt)
Service Oriented Architecture - Intro (ppt)
What is SOA anyway? (pdf)
O/R Mapping: Why/When (pdf)
Order my SOA Patterns Book
Published Patterns
Edge Component (pdf)
Gridable Service (pdf)
Service Firewall (html @ InfoQ)
Saga (pdf)
What I am reading
Subscribe to RSS headline updates from:
Tag Cloud
.NET (62)
A&D2007 (6)
Agile (19)
BI (2)
dasBlog (1)
data (5)
Design (20)
ESB (1)
Everything (200)
Functional Languages (1)
General (58)
Java (6)
Mobile (1)
new (3)
OO (10)
PaperLnx (6)
Papers (2)
Project Management (7)
refactoring (1)
Requirements (2)
REST (15)
RIA (2)
ruby (8)
scalability (6)
SCRUM (2)
SOA (77)
SOA Patterns (32)
Software Architecture (170)
SPAMMED Process (33)
TDD (4)
Trends (1)
Trends (8)
WCF (1)
xsights (1)
Archives
September, 2008 (4)
August, 2008 (8)
July, 2008 (6)
June, 2008 (5)
May, 2008 (4)
April, 2008 (4)
March, 2008 (6)
February, 2008 (3)
January, 2008 (5)
December, 2007 (9)
November, 2007 (6)
October, 2007 (11)
September, 2007 (11)
August, 2007 (10)
July, 2007 (9)
June, 2007 (9)
May, 2007 (9)
April, 2007 (6)
March, 2007 (4)
February, 2007 (2)
January, 2007 (5)
December, 2006 (4)
November, 2006 (3)
October, 2006 (4)
September, 2006 (2)
August, 2006 (4)
July, 2006 (3)
June, 2006 (4)
May, 2006 (10)
April, 2006 (8)
March, 2006 (8)
February, 2006 (6)
January, 2006 (6)
December, 2005 (3)
November, 2005 (5)
October, 2005 (6)
September, 2005 (10)
August, 2005 (5)
July, 2005 (15)
June, 2005 (16)
All dates
All Posts
Contact the Author
Contact Arnon
Affiliations
Admin
Sign In