Welcome to the third part of the ongoing series of posts on Service Oriented Architecture(SOA). So far we have covered what SOA is and what do we understand by a service. Now let’s look at whether it is possible to categorize a “service“.
In my previous post, I have used the new insurance business process to explain what exactly constitutes a service. I will use the same example to elaborate the different types of services.
A service can be categorized under three distinct types. They are:
- Basic Service
- Intermediary Service
- Process level Service
A basic service is essentially a scenario where we identify a functionality within a business application that can be reused within the enterprise. For example, within the context of an insurance company, alpha search is a common requirement. Let’s understand what alpha search means. The key in life insurance is to ensure that the risk of death of an insured is distributed over a pool of people, preferrably with sound health. Also the cover amount provided to a insured is limited so as to ensure solvency of the insurance company. Whenever a person applies for insurance, the company internally checks if the person has already been provided with an insurance cover. This functionalilty is called alpha search. Typically, for different types of insurance products, companies have multiple business applications. Therefore for conducting alpha search each of this business application will be searched with the person’s profile. Therefore, each business application will provide a service interface accepting a single person profile (first name, last name, dob, ssn etc) and will respond with zero or more matching person profiles. This alpha search service is an example of basic service type.
Now moving on to the next service type intermediary. For understanding this type, let’s leverage the alpha search example used earlier. Each business application exposes an alpha search service. So whenever an client application wants to do an alpha search, it invokes the individual alpha search service on each business application. Whenever, a new business application is added in the enterprise, the client applications would need to be updated with this new business application. Instead if we create a single centralized service which invokes all the relevant underlying alpha search business services, we will have a single place to change in the advent of a new business application. This centralized service is an example of an intermediary service type. Note if the reference of my previous post is used, alpha search functionality is part of the total amount at risk business function.
So now let’s move on to the next service type, process service type. The next level essentially wraps an application workflow. Consider the post application submission process as explained in my previous post. This process can be considered as a process service type. Typically process service types are built on the backbone of basic(product validation, agent validation) and intermediary services(total amount at risk).
Let’s summarize the different services in the following table:
|Implementation Complexity||Low to moderate||Moderate to high||High|
|Frequency of Change||Low||Moderate to low||High|