Cesare Pautasso presents a pattern-based design methodology used to build RESTful services, which is accompanied by an example used to draw a number of patterns: Uniform Contract, Entity Endpoint, Content Negotiation, Endpoint Redirection, Idempotent Capability. Pautasso also mentions a couple of anti-patterns: tunneling everything through HTTP/GET and HTTP/POST.
What is better, a generic solution or a specific one? Stefan Tilkov’s answer is “It depends.” He compares XML vs HTML, DSM-UML, Internal-External DSL, SOAP-REST, and others, outlining the advantages and disadvantages of each solution, showing that there is no certain answer to an architect’s quest to solve his problem, but there are some guidelines helping along the way.
In this presentation, recorded at QCon San Francisco, ThoughtWorks' Ian Robinson explains how a RESTful HTTP approach can be applied in an Enterprise project. He makes use of many of the techniques that make HTTP a powerful protocol, including caching, hypermedia, and the use of standard formats such as Atom Syndication for event notification.
HTTP is one of the most successful protocols in the world, and more and more developers are using it to do more than drive HTML UIs. In this presentation, recorded at QCon San Francisco 2008, HTTPbis WG chair Mark Nottingham gives an update on the current status of the HTTP protocol in the wild, and the ongoing work to clarify the HTTP specification.
Planning reusability is hard, designing for unforeseen reuse might be even harder. In this QCon London 2008 talk, Steve Vinoski presents some of the barriers to reuse found in typical distributed systems development approaches, and discusses how REST not only helps overcome some of these barriers, but also leads to potentially significantly increased chances for achieving serendipitous reuse.
In this presentation, recorded at QCon, WSO2's CEO and WSDL co-inventor Sanjiva Weerawarana tries to address some of the myths and lies surrounding the REST-vs.-WS-* debate. He argues that while both camps claim how "easy" it is to build distributed business applications using their favorite technological approach, building distributed applications simply remains a hard problem.
As the Dutch artist MC Escher once said "Only those who attempt the absurd will achieve the impossible". Hence we are trying to stretch the .NET framework to cover the Cloud such that it will become possible to incrementally and seamlessly design, develop, and debug complex distributed applications using your favorite existing and unmodified .NET compiler and deploy these applications anywhere.