SOA with REST: Principles, Patterns & Constraints for Building Enterprise Solutions with REST Book Review
|This book does what it patterns book should do. It defines a language for enterprises to use to develop SOA solutions using REST.|
The book starts off with two chapters. The first chapter is an introduction and shows how the book is laid out. Chapter 2 introduces two case studies that are used throughout the book to provide examples of how the patterns can be applied to real-world situations.
After the first two chapters of the book is broken down into six parts. I have listed the parts below with their associated chapters.
Chapter 1: Introduction
Chapter 2: Case Study Background
Part I: Fundamentals Chapter 3: Introduction to Services
Chapter 4: SOA Terminology and Concepts
Chapter 5: REST Design Constraints and Goals
Part II: RESTful Service-Orientation
Chapter 6: Service Contracts with REST
Chapter 7: Service-Orientation and REST
Part III: Service-Oriented Analysis and Design with REST
Chapter 8: Mainstream SOA Methodology
Chapter 9: Analysis and Service Modeling with REST
Chapter 10: Service-Oriented Design with REST
Part IV: Service Composition with REST
Chapter 11: Fundamental Service Composition with REST
Chapter 12: Advanced Service Composition with REST
Chapter 13: Service Composition with REST Case Study
Part V: Supplemental
Chapter 14: Design Patterns for SOA with REST
Chapter 15: Service Versioning with REST
Chapter 16: Uniform Contract Profiles
Part VI: Appendices
Appendix A: Case Study Conclusion
Appendix B: Industry Standards Supporting the Web
Appendix C: REST Constraints Reference
Appendix D: Service-Orientation Principles Reference
Appendix E: SOA Design Patterns Reference
Appendix F: State Concepts and Types
Appendix G: The Annotated SOA Manifesto
Appendix H: Additional Resources
In Chapter 14, Design Patterns for SOA with REST, the author introduces seven new patterns. They include Reusable Contract, Lightweight Endpoint, Entity Linking, Endpoint Redirection, Content Negotiation, Idempotent Capability, and Uniform Contract. All of the new patterns are nicely tied to currently existing patterns that appear in the author's other books.
One of my favorite parts of the book is that it shows the relationship between SOA and REST. REST architecture provides a medium by which service oriented architecture can be implemented. This book does an excellent job of clearly defining the relationship.
Another thing I really like the book is the low-level granularity that it goes into when describing the pattern languages Used for implementing SOA using REST.
The author does a great job of showing how the goals of the rest architectural style meet certain quality attributes. Quality attributes he covers include performance, scalability, simplicity, modifiability, visibility, portability, and reliability.
I would have liked to see more coverage of security. Although mentioned several times, it was not really covered. It would have been nice to see them cover hash-based message authentication code as one of the patterns used in REST architecture. Maybe it isn't used as widely as it appears to be used.
The author does have a Visio stencil available for download that includes all of the modeling symbols used in his SOA books, but does not appear to have updated with the REST symbols yet.
I believe this book did a nice job of filling in an existing gap in the SOA pattern books.
All in all if you are considering learning REST or SOA you should make this book part of your library. I felt the author did a good job of introducing both SOA and REST in the beginning of the book, so this book is perfect for the beginner. I also felt the author went deep enough into detail to make this book valuable to the more experienced developer.
Most importantly I feel the author nailed the goal of a pattern book and accomplished creating a reference for the language of SOA with REST for development teams to have a common vocabulary to communicate with.
SOA with REST: Principles, Patterns & Constraints for Building Enterprise Solutions with REST
For more book recommendations check out my .NET, iOS, and Java Architecture and Development Book Recommendations for 2013