RESTful web services: principles, patterns, emerging technologies

Recent technology trends in Web services indicate that a solution eliminating the perceived complexity of the WS-* standard technology stack may be in sight: advocates of Representational State Transfer (REST) have come to believe that their ideas explaining why the World Wide Web works are just as applicable to solve enterprise application integration problems and to radically simplify the plumbing required to implement a Service-Oriented Architecture (SOA). In this tutorial we give an introduction to the REST architectural style as the foundation for RESTful Web services. The tutorial starts from the basic design principles of REST and how they are applied to service oriented computing. Service-orientation concentrates on identifying selfcontained units of functionality, which should then be exposed as easily reusable and repurposable services. This tutorial focuses not on the identification of those units, but on how to design the services representing them. We explain how decisions on the SOA level already shape the architectural style that will be used for the eventual IT architecture, and how the SOA process itself has to be controlled to yield services which can then be implemented RESTfully. We do not claim that REST is the only architectural style that can be used for SOA design, but we do argue that it does have distinct advantages for loosely coupled services and massive scale, and that any SOA approach already has to be specifically RESTful on the business level to yield meaningful input for IT architecture design.

[1]  Erik Wilde Declarative Web 2.0 , 2007, 2007 IEEE International Conference on Information Reuse and Integration.

[2]  Erik Wilde,et al.  XML Fever , 2008, ACM Queue.

[3]  Steve Vinoski RPC and REST: Dilemma, Disruption, and Displacement , 2008, IEEE Internet Computing.

[4]  Cesare Pautasso,et al.  BPEL for REST , 2008, BPM.

[5]  Cesare Pautasso,et al.  Restful web services vs. "big"' web services: making the right architectural decision , 2008, WWW.

[6]  Roy Fielding,et al.  Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation , 2000 .

[7]  Erik Wilde,et al.  Document design matters , 2008, Commun. ACM.

[8]  Werner Vogels,et al.  Web Services Are Not Distributed Objects , 2003, Int. CMG Conference.

[9]  Cesare Pautasso,et al.  Let It Flow: Building Mashups with Data Processing Pipelines , 2007, ICSOC Workshops.

[10]  Erik Wilde,et al.  Web Engineering Revisited , 2008, BCS Int. Acad. Conf..

[11]  Erik Wilde,et al.  Lightweight linked data , 2008, 2008 IEEE International Conference on Information Reuse and Integration.

[12]  Erik Wilde,et al.  The Plain Web , 2008 .