SOA Principles of Service Design

by Thomas Erl 

The last few weeks when i had some time i was reading the book SOA Principles of Service Design by Thomas Erl. I really enjoyed reading his book. I wanted to know more about SOA because on my last project we touched some of the issues you could ran into when working with multiple products which must communicate with each other through webservices. SOA is a word which is used very often but i couldn´t see what it´s all about. The Book of Thomas is a very nice book to read when you want to learn more about SOA. I read some comments about the books and these were made by Senior architects and developers with a lot of experience and they all were very entousiastic about the book, so i decided that this was the book who will lead me into the worl of SOA.

The book is devided into 4 parts:

  • Part I Fundamentals
  • Part II Design principles
  • Part III Supplemental
  • Part IV Appendices

Before he starts with the fundamentals part he gives you a case study. This case study will be used to describe how a company implemented each Design principle and what kind of choices they made. I think this case study is very helpful to complete each chapter. In the Appendices you will see the final solution of the case study. After the case study Thomas starts very basic where he is explaining how the book is organized what kind of symbols he is using and what they mean. He describes what kind of Design fundamentals you got and how there are related to each other. The Fundamentals he is talking about are:

  • Design Characteristic
  • Design Principle
  • Design Paradigm
  • Design Pattern
  • Design Pattern Language
  • Design Standard
  • Best Practice

He describes three kinds of service models which he sometimes will refer to when he is describing the design principles. The three service models that are classified are:

  • Task services
  • Entity Services
  • Utility services

These three service models exist in there own logical service abstraction layers. Because these service models have there own responsibility when you compose services to support one kind of task, you can understand that all the design principles have different effect on these models. When there is a difference between these models in combination with the design principles Thomas is explaining how the principle will have effect on them. 

At the end of the fundamentals part he introduces the principles he will explain step by step in the second part of the book. The Design principles he describes are:

  • Standarized Service Contract
  • Service Loose Coupling
  • Service Abstraction
  • Service Reuseability
  • Service Autonomy
  • Service Statelessness
  • Service Discoverability
  • Service Composability

When i saw these principles for the first time i thought why is Service reuseability and Service Composability divided in 2 principles? When you use a service in multiple compositions you are reusing them right? Well you have to read until chapter 13 where Thomas answers that question because they can live without each other :).

All these design principles have sometimes strong and sometimes weak relations with each other. There are a lot of things you will have to ask yourself if you want to implement a good service inventory which will give you a huge benefit along the way. Thomas makes this very clear to the reader. He describes the benefits and the risks you are taking when implementing one of the design principles.

In the third part of the book he is comparing Object-Orientation with Service-orientation. He compares the principles of object orientation with the principles of service orientation. Here you will see that a few of the principles of object orientation will also be used in service orientation. Another chapter in the third part of the book will give some pratices about how to use Service profiles vocabularies and roles within a SOA project.

I definitely recommand this book to every developer who is willing to learn more about SOA. Even if you are new in the SOA-World. It was pretty easy to read and gives you a clear understanding of SOA. Because i liked this book so much i also ordered “Web Service Contract Design for SOA” (also written by Thomas Erl). In this book he will give the technical details.




Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: