Search This Blog

Wednesday, October 15, 2008

SOA Services Granularity

When discussing about SOA a very common question goes about the granularity of services.

I have always applied two principles to decide for myself if a service has the right granularity :


1. Does it make sense ?

If a Business User of this service reads the service specification, he should be able to understand it. This requires to have servcice specifications in natural language.

2. Is it Human ?

Services are ways to request for information. My basic belief is that it should be possible for a normal human being to process that information. I like to think about services in terms of web pages : how would it look like if it was a web page ? (That's probably because I'm a fan of the Semantic Web vision). The rationale is that if the service provides something that is not human (thousands of records) there is room for service re-factoring (by using an iterator for instance).

A service that would dump all your emails at once on your screen in one page would be useless. What you want is a service to browse emails titles 20 by 20 and the possibility to open an email by selecting it. In addition you want a search function. Paging, Summaries and Searching are examples of human services.

No comments:

Changement de rythme