InfoQ

InfoQ

Presentation

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Recorded at:
Recorded at

REST Eye for the SOA Guy

Presented by Steve Vinoski on Jul 15, 2008 Length 00:57:33
Sections
Architecture & Design,
Enterprise Architecture
Topics
SOA ,
REST ,
Design
Tags
QCon San Francisco 2007 ,
QCon
The next QCon is in London March 5-9, Join us!
 

How would you like to view the presentation?

In case you are having issues watching this video, please follow these simple steps to help us investigate the issue:
1. Right click on the video player and select Copy log
2. Paste the copied information in an email to video-issue@infoq.com (clicking this link will fill in the default details in most email clients).
Note: in case your email client hasn't automatically picked up the email subject, please include in your email the URL of the video too.
3. Done.
We will investigate the issue and get back to you as soon as possible. Thanks for helping us improve our site!
Summary
In a presentation recorded at QCon San Francisco, CORBA guru Steve Vinoski introduces REST from the perspective of a traditional SOA person. He explains the goals of the various constraints REST imposes, and the desirable properties one can gain from adhering to them. In a hypothetical discussion with a "SOA guy", Steve addresses various frequent doubts people express when they first look at REST.

Bio
Steve Vinoski is a very well-known expert on middleware, mostly known for his long-time involvement with CORBA. He is a member of technical staff at Verivue and was previously chief architect and Fellow at IONA Technologies for a decade. Over the past 15 years, Steve has authored or co-authored over 80 highly-regarded publications on distributed computing and 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.
  • This article is part of a featured topic series on SOA
REST by Mark Richman Posted
Re: REST by Steve Vinoski Posted
REST by Torsten Mielke Posted
Re: REST by Steve Vinoski Posted
  1. Back to top

    REST

    by Mark Richman

    Seems like the issue today is not so much SOAP vs. REST, but the
    backlash against interface/contract based programming in general.




    This
    raises the issue of versioning/deprecating interfaces (or resources).



    For me, I see issues with service discovery (a la WSDL) with REST, as there is no way that I can see for a consumer to learn a REST service's API without referring to human-readable documentation. With SOAP, we have the ABCs (address-binding-contract). With REST, the A and B are implicit, which leaves C.



    What I'd like to see happen for REST to mature is a simple way to
    describe the exchange of documents (messages), and not just serialize
    objects, which is all the SOAP/WSDL/XSD mess really describes. In the
    end, I guess REST is about semantics and SOAP is about syntax.



    There is certainly some room for REST to "grow up" with little used HTTP 1.1 verbs such as OPTIONS, HEAD, TRACE, and CONNECT and header fields.



    Thanks,


    Mark

  2. Back to top

    REST

    by Torsten Mielke

    This was a very valuable presentation which I watched with great interest.
    You said: "Specialized interfaces inhibit scalability" and inhibit reuse as they require custom code clients. I fully agree with that remark.

    However does the need for specialized data not inhibit reuse and scalability just as much as specialized interfaces? Don't we spend far more lines of application code on setting up our specialized data structures than on calling the actual specialized interface of a service?

    Does offering a uniform interface while still having specialized data structures really increase reusability and therefore scalability? I kind of question that but would like to get others opinions as well.

  3. Back to top

    Re: REST

    by Steve Vinoski

    Hi Mark, thanks for your comments.



    As I once remarked in a blog entry, I've never seen anyone develop an IDL/SOAP/WSDL-based client without referring to human-readable documentation. Nobody writes a client that simply goes out, discovers such services, and starts using them. Among other problems, the specialized interfaces required to communicate with the newly-discovered service makes this hard to do. Keep in mind that each specialized service interface is effectively a new application protocol.



    IMO you have a better chance at this with REST due to the very important HATEOAS constraint: "hypermedia as the engine of application state." The representations returned by resources direct the client through the application state by giving it hyperlinks and form metadata so it knows what to do next. The client must understand the media type of the resource representation, of course, but the fact that media types are globally standard types registered with the IANA means that clients and servers can be independently developed against them. This is quite different from the specialized data types for each specialized interface that IDL/WSDL encourage, which ends up discouraging independent development of client and server.

  4. Back to top

    Re: REST

    by Steve Vinoski

    Hi Torsten, I hope all is well and thanks for your feedback.



    This is a REST frequently-asked question, and if I recall correctly it was even asked by some of the attendees (Glen and Sanjiva IIRC) during the presentation. It's such a common question that I wrote a whole column about it earlier this year: please read "Demystifying RESTful Data Coupling" as I believe it will answer your question.

Educational Content

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.

Max Protect: Scalability and Caching at ESPN.com

Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.

The Seven Deadly Sins of Enterprise Agile Adoption

Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.

Questions for an Enterprise Architect

Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?

Wrap Your SQL Head Around Riak MapReduce

Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.