Monday, July 14, 2008

SOA Design - Service Coupling

Following figure depicts less-than-ideal service coupling. Service coupling can occur at various levels including at the persistence layer, where we can have services "being aware of each others data models, through query joins
Following figure depicts ideal services coupling. Services should be decoupled and should inteact with each other through "formal service interfaces"

A common problem in SOA deals with deciding data access with respect to services. Should each service have its own data model?Should one service be allowed to access another service data tables at cost of increased coupling?Should a common data access service be modelled?What about interaction / coupling between such a data access service and other functional services?

The following is one proposed approach for data access in context of SOA service design

The challenge here is to try and reduce:
the common data model size and keep it to minimal
the amount of access to common data model, instead prefering formal interfaces
the extent of access to common data model, prefer giving read access as compared to write access

No comments: