Bruce Tate is an author and independent consultant in Austin, Texas, and an advocate of lightweight development with Ruby on Rails. Having worked for 13 years at IBM, in roles ranging from a database systems programmer to Java consultant, he contributes articles to the IBM DeveloperWorks Web site. We talked to him about his enthusiasm for building Web services with REST and, of course, Ruby on Rails.
For those who may not be familiar with Representational State Transfer (REST) can you give us an overview of it?
Bruce Tate: REST is essentially from a dissertation by Roy Fielding. For a dissertation topic, he chose to write about Web architecture models. He looked at the way people solve traditional Web services problems because the Web was around a long time before any of the WS-* specifications. He found a pattern where programmers would use existing standards to effectively handle Web services requests. If you think about it, the whole Web is a bunch of little Web services and these Web services basically serve content. The way that we use them is we access named resources. We use the HTTP protocol, and we get a structured response back. So if you bend your brain a little bit, think of HTML as a more specific XML. If you think about Web services in that vein, it's just an HTTP request to a named resource, and XML comes back. This opens up a whole new way of thinking about services. A REST-Web service is basically a simplified model where everything is wrapped around the HTTP send/receive protocol.