Concept: Service Litmus Tests
Service Litmus Tests are applied to prioritize candidate services for exposure.
Relationships
Related Elements
Main Description

When candidate services have been selected and documented in the Candidate Services Portfolio, you then need to determine which ones will be exposed as services. Although, in theory, any candidate service could be exposed by exporting its interface as a service description, not every candidate service should be. It might not be economically and practically feasible to do so (nonfunctional requirements might be compromised). In particular, the naive decision to expose "all methods from all classes" will result in an overwhelming and often unmanageable number of services, leading to the "Service Proliferation Syndrome." This creates huge performance and service management problems, not to mention the fact that you might be giving away the company's intellectual capital. Moreover, you must remember that there is a cost associated with every service that you choose to expose. The funding, governance, and the underlying infrastructure (security, performance, management) of the service and the components that will implement them must be taken into account.

Clearly, some criteria are needed to help decide whether to expose a service. Most importantly, you need to decide whether to fund the creation of the service component that will provide the functionality of the service, as well as the maintenance, monitoring, security, performance, and other service level agreements for the service. 

Value of Service Litmus Tests

Project experiences indicate a set of criteria in the form of the Service Litmus Test can and needs to be used to filter the collections of candidate services. This metaphor is used to denote a set of tests that, when applied, will determine whether a given service is eligible for exposure by using a service description. These tests are employed together and help answer questions such as these:

  • From the list of candidate services, which ones are best to expose?
  • Thus, which ones will we fund?
  • Which ones have business value? 

Example: Service Litmus Test Criteria lists criteria that are commonly used during litmus testing.

At the one extreme, every business use case might be considered to be a candidate service. At the other, only a few services are selected for exposure. Applying the Service Litmus Test usually gives something in the middle: a manageable set of services that the business wants to expose and that can later be used within compositions.

Candidate services that pass all of the Service Litmus Tests should then be exposed as services in the service-oriented architecture (SOA). There might be candidate services that did not pass the Service Litmus Test yet are still implemented as services. The Service Litmus Test is an aid to determine which services to expose.  If a business chooses to expose candidate services that did not pass the Service Litmus Test, the implication is that benefits associated with an SOA will not be maximized.

Candidate services that do not meet the Service Litmus Test criteria will have to be implemented in some fashion, because they still are required to fulfill business needs. They might be implemented as methods on service components and will not require the generation of WSDL (Web Services Description Language) or other forms of service definitions; or they might be used as non-exposable entities.

More Information