Tuesday, September 25, 2007
SOA - Principles of Service Design
Just finished Thomas Erl's new SOA book "SOA - Principles of Service Design". Again, it is a quality book, giving real information on SOA and implementation details without the fluff. It is certainly a technical book with very good diagrams and explanations.
There is quite an impressive array of reviews for the book from industry specialists from Google, Oracle, Microsoft, and so on. This book can stand on its own or it can be paired with his "SOA Design Patterns" book. Some patterns are referenced but not the complete set in the Design Pattern book.
There are 3 parts to "SOA - Principles of Service Design": Fundamentals, Design Principles and a Supplemental section.
Firstly, the Fundamental section reviews SOA, Benefits and sets the stage for the Design Principles. "A principle is a generalized, accepted industry practic. In other works, it something others are doing or promoting in association with a common objective..." From the principles, come design patterns.
The second section covers the Design Principles themselves, of which 8 are given:
1. Service Contracts (Standardization and Design)
2. Service Coupling (Intra-Service and Consumer Dependencies)
3. Service Abstraction (Information Hiding and Meta Abstraction Types)
4. Service Reusability (Commercial and Agnostic Design)
5. Service Autonomy (Processing Boundaries and Control)
6. Service Statelessness (State Management Deferral and Stateless Design)
7. Service Discoverability (Interpretability and Communication)
8. Service Composability (Composition Member Design and Complex Composition)
Each principle is profiled and explained. Each provides guidance in shaping your SOA. They work together but there are examples where they conflict and choices must be made. A design paradigm is a composition of the design principles. From the design principles, there are design patterns. So basically, a design paradigm (SOA), is comprised of design principles, which is then made up of the design patterns.
Each design principle is summarized in a Principle Profile, which contains a short definition, long definition, goals, design characteristics, implementation requirements, web service region of influence.
The last section, Supplemental, covers a comparison between SOA and OO, Supporting Practices, and Mapping Service-Orientation Principles to Strategic Goals.
I have to say that reading Erl's books enlighten in a common-sense technical way. He is my favorite SOA author.