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:
Post a Comment