Hello, I am communications and electronics engineer with interest in software programming. My interset is about J2SE, JEE and virtual machines. Cruz has posted 4 posts at DZone. View Full User Profile

SOA with REST: Principles, Patterns & Constraints for Building Enterprise Solutions with REST

  • submit to reddit
Published by: Prentice Hall
ISBN: 9780137012510

Reviewer Ratings




Buy it now

One Minute Bottom Line

You should read this book to learn how to build enterprise solutions using SOA (Service-oriented Architecture) and REST ( Representational State Transfer) using activities such as modeling, design and architecture considering principles, patterns and constraints.


The authors of the book explain to the readers how to build enterprise solutions using SOA (Service-oriented Architecture) and REST ( Representational State Transfer). At first glance, the goals of SOA and REST are completely different. However, the well known authors more a big group o software professionals with acknowledgments in the book, have managed to convey an understandable methodology to build enterprise systems with SOA and REST using activities such as modeling, design and architecture considering principles, patterns and constraints.

On the one hand, SOA (Service-oriented Architecture) is the alignment of business objectives and IT and can be implemented with any architecture, technology or products. Considering the technical architecture, SOA has a focus about services like the main abstraction (interfaces are exposing services) commonly using web services.

On the other hand, REST (Representational State Transfer) is more an architectural style (than a real systems architecture) with a set of constraints that are used when is designed a system architecture. In this case the web ( world wide web) is one systems architecture that implements REST with the mechanisms of the Uniform Resource Identifiers (URIs), the Hypertext Transfer Protocol (HTTP), media types, and markup languages such as the Hypertext Markup Language (HTML) and the Extensible Markup Language (XML) without using SOAP.

The authors recommend that this book is for readers with experience like enterprise architects, developers, analysts of the enterprise software area, and SOA or REST specialist.

For the reader starting with SOA or REST, the authors recommend to read other introductory books and after read this book, because this book is not a course of SOA or REST, although there are briefly chapters of them in the book.

This book is interesting for the readers because the book contains the point of views, knowledge and experience of 4 well known authors in the enterprise systems area to take 2 different concepts such as SOA and REST, and combining them for building enterprise software solutions.

The book has 16 chapters and 8 appendixes, distributed in a general introduction and 6 parts.

The general introduction includes the chapters 1 and 2. Here, there is a general explanation of the book and how it is organized, conventions used in the book and interesting websites with information about SOA and REST. Also there is information about 2 case studies that will be used across the book like real world scenarios to solve problems considering the IT and business environments.

The Part I (Fundamentals that include chapters 3 to 5) describes the fundamentals concepts of the book such as services, SOA and REST. Here is introduced terms such as Service, Service Contract, Service Capability, Service Consumer, Service Agent and Service Composition that are crucial concepts in this book. Also, is explained how the service concept is different in REST and SOA. The authors explain with more details about SOA terminology and concepts like SOA design patterns and REST constraints and goals, and how when all the constraints are used, the final system has a RESTful technology architecture.

The Part II named RESTfull Service-Orientation (chapters 6 and 7) describe the Service Contracts with REST identifying the uniform contract elements such as resource identifier syntax , methods and media types . The authors explain how is considered a REST service capability, what represent a REST service contract as well as the characteristics of REST Service Contracts vs. Non-REST Service Contracts. Also there is an explanation of the role of Hypermedia that represents resources using hyperlinks. The authors introduce here a diagram notation to represent the REST service contracts.

Other themes explained here are the design goals with service orientation with REST, as well as the design principles and constraints with a list indicating the page book of principles, patterns and constraints used across the book. The authors explain that any deviation from a REST constraint means that a service inventory architecture is no longer considered REST-compliant.

The part III named Service Oriented Analysis and Design with REST (chapters 8 to 10) includes a brief description of the stages of a SOA project and the REST consideration that must be taking into account when delivering REST services for SOA. Also is explained with more detail the Uniform Contract modeling and Rest Service inventory modeling (service candidates, service capability candidates and service composition candidates) with examples. A collection of design topics to create custom REST services contracts is explained too.

The part IV named Service Composition with REST (chapters 11 to 13) shows that REST must support the Service Composibility principle to be a medium for service orientation to the creation of composition-based enterprise solutions. This part of the book has fundamental explanations about REST service composition with topics such as service models, service layers, and idempotency. Also there are advanced concepts such as cross-service transactions, even-driven messaging, dynamic binding, cross-service inventory transactions, and compliance issues with Stateless constraints. The previous challenging concepts are used in the 2 case studies to understand these concepts at the end of this part.

The part V named Supplemental (chapters 14 to 16) contains the description of 7 new design REST patters based on SOA. In the Appendix E there is a catalog of SOA patterns with 85 patterns. With these new 7 REST based on SOA patterns, now the catalog of SOA pattern has 92 patterns.

Also, the changes in a service contract impact the service consumers and is necessary to register these changes with an effective versioning strategy. Finally, to document the characteristics of a REST-based service is introduced the service profile as a standard definition of a service. To conclude, there is a case study example with the documentation of a uniform contract profile.

The part VI named Appendices (Appendix A to Appendix H) contains appendixes such as Case Study Conclusion, Industry Standards Supporting the Web, REST Constraints Reference, Service-Orientation Principles Reference, SOA Design Patterns Reference, State Concepts and Types, The Annotated SOA Manifesto and Additional Resources.


For some years ago, there is a competition about the advantages and disadvantages of the SOAP versus REST architectural styles for Web Services with SOA.

The fans of SOAP argument that any type of complex applications can be build with SOAP-WSDL style, and many enterprise systems use SOAP style for web services, for example in the banking area. Also these fans of SOAP say that REST style for web services with SOA is very simple and not recommendable to use in the enterprise area.

The fans of REST argument that the simplicity of it, is an advantage to build systems with REST style for web services with SOA. Also, the fans of REST say that SOAP style is very complex and there are commentaries that when there are many SOAP web services with SOA in an enterprise system, increase the problems and the complexity of the system.

I think that an important characteristic of this book, is the presentation of methodical steps ( a methodology) to build enterprise solutions using SOA and REST.

The authors of this book combine their experience and knowledge to transmit to the readers a clear explanation about how to build enterprise solutions and they explain us the general characteristics, advantages, constraints and complementary points of SOA and REST to build enterprise systems, with a logical focus across the book.

Finally, another aspects to highlight of the book are the 2 case studies that are introduced at the beginning of the book, with detailed explanations and after, across the different chapters of the book are used to solve problems in some chapter, and the readers can observe how they are transformed into enterprise systems using SOA with REST architectural style.

Published at DZone with permission of its author, Cruz Castillo.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)