InfoQ

Interview

Recorded at:
Recorded at

Ian Robinson and Jim Webber on Web-based Integration

Interview with Ian Robinson and Jim Webber by Stefan Tilkov on Jun 12, 2009

Community
SOA
Topics
REST ,
Web Services ,
WOA
Tags
HTTP ,
QCon London 2009 ,
Web services ,
QCon
Summary
In this interview, recorded at QCon London 2009, Ian Robinson and Jim Webber talk to Stefan Tilkov about the Web as a platform for integration, the usefulness of various degrees of RESTful HTTP and the benefits of REST in theory and practice.

Bio
Ian Robinson is a Principal Consultant with ThoughtWorks, where he specializes in the design and delivery of service-oriented and distributed systems. Dr. Jim Webber is the Global Head of Architecture for ThoughtWorks where he works with clients on delivering dependable service-oriented systems. Ian and Jim are currently co-authoring a book on Web-friendly enterprise integration.

About the conference
QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community. QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.
Welcome to this interview with Ian Robinson and Jim Webber, here at QCon London 2009. As usual, we'd like to start off with you very briefly introducing yourself. Jim, why don't you start?
If you talk about this book you mentioned, the title is Web Based Integration. Is this the same thing as REST or is it something different? Can you briefly explain what you mean by this? Give us the elevator pitch on that?
I personally remember that a few years ago, when you mentioned REST, you got really strange looks and people wondered what you were talking about and this obviously has changed. At least people talk about it a lot these days and the tracks are visited very well and and the conference sessions are packed. What do you think is the current state of actual adoption in practice? Do people use it, actually?
Are these different degrees - if you may call them that -, the different degrees of RESTfulness or of adoption of the REST things, is this also the way that you introduce REST or the web based integration approach into a company? Do you start with the first step and then gradually add more and more from that REST stuff?
Do you think some of the things that the people consider an abuse of HTTP are also valid steps on that path? Is it just something that you have to do or is it avoidable? Do you have to at some time tunnel method invocations through GET to change something or is this just something you never can justify?
I actually think that Roy Fielding would very much agree with you that HTTP and the current web is not a perfect REST implementation - it's something he keeps saying all the time.
I just noticed that we have used the term REST without really explaining it, so there may still be some people who don't know what we're talking about. Can you just give us a 60 second intro to what is REST?
You mentioned some stuff that's missing and all and that's problematic in the infrastructure, such as the browser limitation to GET andPOST and then the caches, intermediaries and other stuff ignoring or blocking some of those methods. Do you think there are other things that are missing currently in the current web space? Is there stuff that we should have to use this more effectively? If so, what would that be?
What are the good places to use REST and the web and what are the places where you should avoid using that stuff?
As you mentioned transactions, one of the critiques that I hear most often about REST is that there are so many enterprise features missing from it. In web services you have the transaction protocols: WS-Coordination with Atomic Transactions and WS-Business Activity and all that stuff. Do you perceive that as something that's lacking? Do we need a transactions protocol on HTTP that's RESTful?
Reporter: Now, that we've dealt with transactions, what do you think about having a BPM/BPEL-like thing for REST? Do we need something like that?
Does it? I'm not sure. This is a real honest question. Those engines … never mind the program language used to program them, but those engines deal with things like coordinating multiple requests to multiple systems where the answers get delivered asynchronously and they coordinate them again and do something else. That seems like a useful capability. Shouldn't we have the same thing for the RESTful world?
Let's get to some practical things. We talked about theoretical advantages so let's talk practice. What kind of tools do you recommend to people who actually are convinced and want to build something RESTful? From the different technologies spaces that we have, what are your favorite tools to build HTTP RESTful systems?
You mentioned the word "contract". How do you see contracts relating to REST? Because in the web services world, the contract is really at the heart of everything. It's the great WSDL description that Jim is a very big fan of - as I know - that actually really describes very formally and very completely what methods your service exposes. How are you supposed to interact with a service that has no formal description? How could you possibly work with something without having that WSDL file?
Is it perhaps to say that hypermedia formats assume the role of contracts?
Let's assume you have managed to convince some people that REST is a good thing, but they, in their turn, want to convince their co-workers to actually start it. Do you have recommendations? How do you go about evangelizing REST in your company? What's the best way to do that?
Audience Question: REST lies on top of HTTP, which is has quite old specifications. We've been using that for a few years and maybe would REST be cut back to what the HTTP specification was meant to be like. We are using the HTTP verbs in a more interesting way, despite the way we've been using that for the past 20 years, maybe, and still we have browsers or clients which do not implement HTTP specification fully. We know, for instance, it's very difficult to use Flex with REST - that's quite scary! What do you see in front of you? Do you see that we need a new specification, an update, so that we could also address problems that we didn't have when we were using HTTP as we have done, but maybe now we need also more power from HTTP? Or do you see that in 1-2 years all the browsers will implement the current 1.1 specification and we will be happy for the next 20 years?
Audience question: Lately, we are seeing, even here in the conference, that in programming there was Lisp a long time ago and then we were going so much like we are trying to do more abstractions and we go to objects and big stuff components. Now we see that people are going back to functional programming. The same thing has been with the web: we got this simple HTTP specification, we started to build a lot of abstractions, SOAP and BPEL, and then we go back to simplicity, to REST. Is it like a trend now to go back to simplicity or does it happen all the time this way in software, to go back and forth?
show all  show all
Great Interview! by Sadek Drobi Posted Jun 24, 2009 7:11 PM
  1. Back to top

    Great Interview!

    Jun 24, 2009 7:11 PM by Sadek Drobi

    Great interview, answered a lot of questions for me. Thanks Stephan, Jim and Ian!

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.