e martë Pri 19, 2005

Interestingly, one of the most debated SOA architectural aspects  (at least in architecture and development teams) is the granularity of a SOA Service. In the past year, I've tried a few different strategies with customers and fellow architects to describe the appropriate SOA service granularity. I started out saying "a SOA service must be coarse grained". "How large grained?", many would ask. "Very coarse grained", I would answer. Then I would say; "definitely not fine grained".

As you can see, this is a pretty poor definition. So, I thought about it and discussed it with Danny Malks and tried to make it more SOA-like. So, I started talking more about SOA services as  business services and thus having business service granularity. Sounds a bit subtle, but has a strong intent. As I mentioned in a prior blog, we want SOA to take a top-down (problem to architecture to solution) approach. This means that the business unit (user) drives the requirements and essentially (but, not directly) the service granularity. So, one way to think about a  SOA business service is to be able to put it in business speak. For example, we may talk about the  Insurance Quote Service and Inventory Service. We can talk to business people about services using this granularity and not get into tech speak. Notice that we refer to the services as nouns, not verbs. I've seen many services defined by a verb, such as Add Employee Service. Focusing on the actions (verbs) rather than the service (nouns) creates fine grained services and should be avoided.
CoarseGrainedServices