A service should usually be the unit of testing and release.
So why else is the granularity of the service important? The most important consideration is the follow-on administration of the services (see Figure 1). You must publish (register) your service to a registry that will let consumers:
• Find the service
• Learn how to connect or bind the service (via the contract)
• Execute the service (bind and invoke).
When an organization goes the route of fine-grained services, the administration becomes difficult because thousands of services probably must be registered. The use of a plain Universal Description, Discovery and Integration (UDDI) or Lightweight Directory Access Protocol (LDAP) type of registry is insufficient to deal with proper categorizing and administering the volume of services. A consumer might find it a challenge to successfully find the service. You must look at true SOA registries and repositories such as the IBM WebSphere Registry and Repository, the BEA AquaLogic Registry Repository, or the SOA Software SOA Registry or Repository. There are hundreds of vendors selling such products. Some are functionally rich and expensive; some are functionally poor and cheap.
The upside of fine-grained services is that a change to a service usually impacts only a small consumer community.