Friday 22 June, 2007

Service Identification,Modelling &Realization In SOA

Service Identification

Service represents a key business functionality which is reusable in nature.Service identification plays an important role in SOA projects as the services identified should be of right granularity,reusable etc which other wise will lead to proliferation of services making it complex to maintain and worse is that the services won’t be of reusable nature.

Key factor which drives the identification of services is business process model.Once the business process are identified,modeled and the business functionality is understood then the service identification step starts.

Approach followed for service identification should be a combination of top-down and bottom-up approaches.Following this approach will make sure that none of the services remain unearthed and will produce services which are of right granularity.

Top-down,business driven approach results in coarse garined services.In the bottom-up approach the legacy business functionality is analysed to come up with the services.The services so obtained are fine grained in nature.

Meet-in-the-middle approach is a combination of top-down and bottom-up approaches. Composing the fine grained services in to coarse grained services is a critical challenge which can be overcome by using the meet-in-the-middle approach. Meet-in-the-middle approach helps to unearth the services which are not found in either top-down or bottom-up approaches.

Five steps towards service identification

Identify the business process
Decompose the business process in to sub processes,smaller sub processes
Model the business processes
Identify the services
Define the services


Service Modelling

Service modeling provides abstract details about the services under consideration.Service model helps in understanding how the services are defined at the logical level which inturn will help in designing and developing the services.

Various steps involved in service modeling can be categorized in to

Requirements
Approach
Model the service
Test the model
Refine the model
Transformation to design

I will be providing a high level view of what the above steps means

Understanding the requirements plays an important role in service modeling.This includes understanding the data requirements,data types of the messages,operations,KPI’s,policies,contract information between the consumers and the providers,binding information etc.

Approach for service modeling should be meet-in-the-middle approach which is a combination of top-down and bottom-up approaches. Meet-in-the-middle approach consists of goal-service modeling which ties services to goals and sub-goals, key performance indicators, and metrics.Service modeling starts with a high level model which is more conceptual in nature which is later transformed in to a low level physical model.Once the model is ready test it and identify the improvements.Refine the model as may be required based on the requirements.

Service model which is obtained as a result of service modelling can be transformed to a service interface(ex:- WSDL).WSDL so obtained can be manually or automatically(using service modeling tools) used to generate the desing,code.

Service Realisation

Web services technology is the common way of realizing services.Various standards used for implementing web services technology are SOAP,HTTP,JMS,XML,XSD,WSDL etc. As described in my another blog “Service Development Methodologies in SOA” legacy business functionality can be accessed via adaptors which expose the legacy business functionality as a web service.New services can be custom built using technologies like J2EE etc or using out-of-box functionality provided by some of the vendors.

No comments: