Why don't typical enterprise projects go as smoothly as projects you develop for the Web? Does the REST architectural style really present a viable alternative for building distributed systems and enterprise-class applications?
In this insightful book, three SOA experts provide a down-to-earth explanation of REST and demonstrate how you can develop simple and elegant distributed hypermedia systems by applying the Web's guiding principles to common enterprise computing problems. You'll learn techniques for implementing specific Web technologies and patterns to solve the needs of a typical company as it grows from modest beginnings to become a global enterprise.
Learn basic Web techniques for application integration
Use HTTP and the Web’s infrastructure to build scalable, fault-tolerant enterprise applications
Discover the Create, Read, Update, Delete (CRUD) pattern for manipulating resources
Build RESTful services that use hypermedia to model state transitions and describe business protocols
Learn how to make Web-based solutions secure and interoperable
Extend integration patterns for event-driven computing with the Atom Syndication Format and implement multi-party interactions in AtomPub
Understand how the Semantic Web will impact systems design
Chapter 1 The Web As a Platform for Building Distributed Systems
Architecture of the Web
Thinking in Resources
From the Web Architecture to the REST Architectural Style
The Web As an Application Platform
Web Friendliness and the Richardson Maturity Model
GET on Board
Chapter 2 Introducing Restbucks: How to GET a Coffee, Web Style
Restbucks: A Little Coffee Shop with Global Ambitions
Jim Webber is the SOA practice lead for ThoughtWorks where he works on dependable service-oriented systems. Jim was formerly a senior researcher with the UK E-Science programme where he developed strategies for aligning Grid computing with Web Services practices and architectural patterns for dependable Service-Oriented computing. Jim has extensive Web Services architecture and development experience as an architect with Arjuna Technologies and was the lead developer with Hewlett-Packard on the industry's first Web Services Transaction solution. Jim is an active speaker in the Web Services space and is co-author of the book "Developing Enterprise Web Services - An Architect's Guide." Jim holds a B.Sc. in Computing Science and Ph.D. in Parallel Computing both from the University of Newcastle upon Tyne. His blog is located at http://jim.webber.name.
Savas Parastatidis is a Developer in Microsoft's Technical Computing Cloud group, working on a platform for large scale data- and compute-intensive technologies. Previously he was part of Microsoft's Bing group where he focused on semantic and knowledge representation technologies. He also spent time in Microsoft Research where he led the design and implementation of a number of tools for scientists and a platform for semantic computing applications called Zentity. He originally joined Microsoft as part of the architecture team in the Connected System Division doing the initial work for the Oslo (M language) modeling platform. Prior to joining Microsoft, Savas was a Principal Research Associate at the University of Newcastle where he undertook research in the areas of distributed, service-oriented computing and e-Science. He was also the Chief Software Architect at the North-East Regional e-Science Centre where he oversaw the architecture and the application of Web Services technologies for a number of large research projects. Savas also worked as a Senior Software Engineer for Hewlett Packard where he co-lead the R&D effort for the industry's Web Service transactions service and protocol. Savas' blog is located at http://savas.me.
Ian Robinson is a Principal Consultant with ThoughtWorks, where he specialises in helping clients create sustainable service-oriented development capabilities that align business and IT from inception through to operation. He has written guidance for Microsoft on implementing service-oriented systems with Microsoft technologies, and has published articles on business-oriented development methodologies and distributed systems design - most recently in The ThoughtWorks Anthology (Pragmatic Programmers, 2008). He presents at conferences worldwide on RESTful enterprise integration and distributed systems design and delivery.
REST in Practice provides an excellent introduction to REST in general and how to use it in your projects. The code samples are easy enough to understand, but complex enough to be usable. It's also nice that the examples are provided in both Java and C#.
The only thing I found missing was a more complete discussion of data formats to use with RESTful APIs.
Bottom Line Yes, I would recommend this to a friend
REST in Practice is one of my favorite architecture books. It helped me learn, appreciate, and leverage the power behind http, and think about the basic components of an http request: URIs, headers, and content. Covering the tools then working through examples gives a great balance of informational and practical knowledge. It's well written, concise, and I enjoy referring back to it.
Bottom Line Yes, I would recommend this to a friend