REST - The Web Style
I give you the slightly updated slides to a talk I gave on Friday to the Lotus Workplace Architecture Board.
The topic was REST - The web style
An argument about an outlook on technology, on complexity, layering and leverage.
(It's also available a Freelance Graphics presentation .prz)
This relates to a question in the presentation:
How did you get on the web?My first web development was implementing the Publish to Web functionality in Freelance Graphics in '96-97 so I typically don't do Powerpoint... I'll try to get a pdf version at some point for printing for those who don't happen to be blessed with Freelance.
The presentation is a recasting of things I've been writing about here at the toli for the past few months. It was intended to be a little cri de coeur and slightly provocative and hopefully I'll be taken to task for some of my commentary both inside Lotus and externally. It draws on a few sources which I'll acknowledge below. It's always interesting to try to distill tens of thousands of words and countless discussions into an hour's talk. One should submit periodically to that kind of critical scrutiny to learn if there is value in one's content. I hope you enjoy it, nod your head or as the case may be, cross your hands and disagree furiously. In any case, here's to the ongoing conversation...
The subtitle is Why I am a RESTafarian
Some preliminary information.
REST stands for Representational State Transfer
The canonical work is Roy Fielding's dissertation. Roy led the effort to build the Apache web server and to define the HTTP specification.
Elevator Pitch version
REST is the architecture of the web
REST is the best of the lessons learned in developing the web.
REST embodies the design patterns of the web.
REST is defined by four interface constraints:
- identification of resources
- manipulation of resources through representations
- self-descriptive messages
- hypermedia as the engine of application state
[Update March 2006] Here's a fuller elaboration of the REST Elevator pitch.
Roy Fielding's Take
A presentation ostensibly about Designing a new protocol for the Web (ppt) but which is revelatory about the motivation of the web.
A short paper on REST (in case you don't want to read a dissertation)
Principled Design of the Modern Web Architecture
Roy Fielding's dissertation
Architectural Styles and the Design of Network-based Software Architectures
The meat is this chapter
It's Just Data
Sam Ruby is participating in an effort at IBM to simplify our technology stack
Attractive Nuisance (Sam Ruby on the View Source imperative, http, html, xml, unicode, encoding etc, excellent presentation)
Radical Simplification (Sam Ruby expounds on shedding layers of complexity in the IBM technology stack)
Adam Bosworth:
"the web succeeded because of Simple Sloppy Standards that Scale"He's now at Google and also believes in Keep it Simple and Sloppy.
Koranteng's take on things
- A REST Intervention
'What feature was it, you might ask? There was no way to bookmark anything in WebSphere Portal."
- The Unloved HTML Button and Other Folktales
A long, long time ago in a far, far-away land, there lived an HTML Button.
- Get on the Bus
Where Mel Brooks' 2000 year-old-man considered Saran Wrap the greatest invention, I suspect for you it's duct tape, spackle and wrenches
- PITTS: Naming an Aesthetic
- Deadwood and the Web Application Leap
- On Bleach, Entertainments, Forms, Atom, Kiss and Sexy MFs
- Technical Arteriosclerosis
- People, Processes and Things
Serendipity
Craigslist + Google maps (the kind of magic that happens when you design for the web)
For those who think that bleach is new... (Lotus was right there in the mix in 1998-99)
The Horseless carriage (a great description of the social implications of the web, blogging etc)
The specs (if you really want to read them, sadly most don't)
Further reading
REST wiki (trying to document the web style and collect design patterns)
Second Generation Web Services
Show Me the Code - Joe Gregorio walks through creating RESTful applications
REST + SOAP
< a href="https://www.xml.com/pub/a/2004/12/01/restful-web.html">How to Create a REST Protocol
RFC 3205 - On the use of HTTP as a Substrate
My rest writings
File under: technology, REST, web, design, architecture, software, lotus, IBM, glue, strategy, patterns, adoption, systems, leverage, layering, comprehension, abstractions, abstraction, simplicity, complexity, humour, neologisms, buzzwords, toli
3 comments:
s/leading/participating in/
Fixed. I knew that of course...
And there I was replying to a post about Proper attribution in blog postings last week. Oh well...
There's a custom over on livejournal to summarize people's phone posts so that people who don't want to listen to the whole audio file can get the gist of the content. So I'd summarize you as:
REST is easy, it works, and it's what's already out there on the web. It enables manufactured serendipity. IBM's technology stack is too complex, and we're ignoring the web style at our peril.
What I'd like to know is how the Lotus Workplace Architecture Board received your talk.
Post a Comment