Every major development platform now promotes support for the creation of solutions based on SOA. Historically, the most common means of building services for SOA has been via the Web services (WS-*) platform. There has recently been an emerging paradigm of using the simpler services development paradigm by employing the fundamental principles that makes the Web successful, termed REST (Representational State Transfer). This term was coined by Roy Fielding, as part of his PhD dissertation, which outlined some basic principles for constructing distributed applications.
There are some key characteristics that differentiate the design of services using a RESTful style and this body of work is a first step toward formalizing these characteristics as design patterns.
With the help of Jim Webber, David Booth, Thomas Erl, and others, first drafts of the following five REST-inspired patterns have been contributed as candidate patterns at SOAPatterns.org:
I'd like to encourage you review these patterns and provide feedback using the online form at SOAPatterns.org. The plan is to make the patterns available for public review for at least 6-12 months before they are considered ready for inclusion in the master SOA patterns catalog.
There are additional REST-inspired patterns in development and these will also be published on the Candidate Patterns List page at SOAPatterns.org as they become available. You are also welcome to join this effort by submitting your own candidate patterns (REST-related or otherwise) via this site.
These initial five REST-inspired patterns along some others in development will form the basis of an upcoming book dedicated to exploring the convergence of SOA and REST.
Special thanks to Cesare Pautasso, Benjamin Carlyle, and Stuart Charlton for their input regarding the development of this work. Thanks also to Stefan Tilkov for his assistance.