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.

Monday 18 June, 2007

Testing Approach In SOA

1)Testing methodologies
2)Pitfall’s
3)Key factors to success
4)Selecting an appropriate testing tool

Difference between traditional projects and SOA projects is that SOA projects involves integration between various distributed systems.This distributed nature of SOA projects throws challenge for testing as the requirements for each individual system and the entire application as a whole needs to be understood properly and the coordination between the various testing teams needs to be managed.Traditional testing methodologies can be applied with agile nature keeping in view of the iterative nature of SOA projects.

Testing methodologies:
Since SOA projects follow iterative approach,the effective way of testing SOA projects is to start with unit testing to uncover the errors in the individual components once the construction phase is over.Follow with Integration and functional testing.In the integration testing phase all the applications are integrated to perform end-to-end data flow and functional testing is carried out for validating the business functionality.In the UAT phase business users will test the application to verify whether the application meets the requirements. Another critical testing phase is Regression testing which plays an important role as even a small piece of code change can effect the entire application.This phased nature of testing provides full validation of the entire applications.

Following are the normally followed testing methodologies in SOA projects:
Unit testing,Component testing,Integration testing,User Acceptance testing.
Non functional testing like connectivity testing,performance testing,security testing etc.

Pitfall’s:
One of the key factors for failure of SOA projects is the non agile nature of the testing approach.Another key factor is incomplete understanding of the integration system requirements.

Few pitfall’s
Test approach is not agile.
No focus on integration testing.
Non availability of the systems.
No proper understanding of the business process.
No proper understanding of the entire application as individual testing teams focus only on their respective applications participating in integration.

Key factors to success:
· Create a test plan which should accommodate agile testing.
· Create a test strategy with integration testing in focus.
· Understanding the Business process and the services and the associated meta data.
· Defect tracking system which helps in tracking all the defects during various testing phases.
· Availability of master data,systems.
· Automating testing process.

Tools:
Selecting an appropriate tool which suits the overall testing requirements of an organization plays an important role in effective testing of SOA projects.

Some of the tools vailable in the market for SOA testing projects are:
· iTKO:LISA
· Mindreef:ebizq
· Empirix Inc: e-Test Suite

Thursday 14 June, 2007

Business Process Modelling Approach

Approach for business process modeling comprises the following:

• Gather BP requirements
• Effective Business Process Modeling
• Transforming Models into Designs
• Standardisation

1) Gather BP requirements

Requirements gathering approach should ensure consistency and thoroughness in capturing relevant information so that the business requirements that are captured in the model are clearly understood.

BP requirements gathering comprises the following:

• Conduct workshops with analyst,BP owners,business users,domain experts to get all of the information required to build the BP model.
• Identify the business process
• Analyse existing process models to create new process models by modifying existing models rather than recreating it from scratch
• Decompose the business process in to sub process,services
• Identify the business transaction information needs
• Identify policies,KPI’s.
• Identify roles,tasks,sequence information,resources,data etc.
• Identify management reporting needs
• Identify decision support needs

2) Effective Business Process Modeling

The task of modeling a process consists of defining the details of a business process flow and modeling all the data, resources, and other elements that the flow uses. A business process is composed of process steps that are normally connected through control flows, and these control flows connect activities with decision nodes. A decision node holds the business rules (transition conditions) that are evaluated to decide what path in the process should be followed.

Effective BP modeling comprises the following:
• Undersatnding & Capturing Relevant Activity Details
• Gathering associated data
• Creating Business Process Specification
• Model Business Process
• Simulate the model
• Analyze the model for key factors such as KPI's,policies and other metrics
• Identifying Improvement Opportunities
• Refine the model

3) Transforming Models into Designs

Business Process, which are to be supported by a system, need to be analysed further to identify system-level operations. System model from the business process model can be created by transforming activities to their corresponding artefacts. The system model consists of use cases etc, which is a higher-level view of the technology model artefacts.

The first-cut mapping is to create Use Cases for each BP to be automated. This can be achieved either by manual mapping of the BP’s to Use Cases or automatic generation of the system models from the business process models using standard BPEL compliant tools. The use cases thus obtained are used to generate the technology models which are used for design purpose.

4) Standardisation

Following the standards and patterns helps in providing the base for the very much needed interoperability,Maintainability etc.
Following are the few of the standards used in BP modelling
Ex:-BPEL,WS-BPEL,BPMN,UML etc.

Wednesday 23 May, 2007

Service Development Methodologies In SOA

Broadly service development methodologies are categorized in to two types.
1)Wrapping legacy functionality
2)Green field development

Wrapping legacy functionality:
To meet the changing business requirements,the existing business functional­ity in the legacy systems(ex:-Mainframes) needs to be re-used as far as possible.One of the approaches to implement this is to wrapp Legacy business functionality as service and expose to service consumers.Legacy business functionality can be exposed as service through the use of adaptors which will enable to connect to the legacy applications and access the business functionality through native API’s.EAI tools comes with application specific adaptors which can be used to access the business functionality and uses webservice adaptors to expose these functionalities as services.

Green field development:
In the green field development methodology services are developed from scratch.Service consumer,Service provider & Service Mediator forms the core part of service development.A service requires an interface(ex:-WSDL) through which it can be exposed to the service consumers.A service interface contains the operations,method signature, binding information etc.Service requests from a service consumer to a service provider happens through a service mediator.Service mediator(ex:-ESB) could be used to receive,transform&route messages from service consumers to service providers.Service provider implements the service and publishes the corresponding WSDL to a registry(ex:-UDDI).Service consumer make a look up in the registry and searches for a particular service and invokes the service through a service mediator. Communication between various participants can be acheived by using various communication protocols ex:-soap/http,soap/https,soap/jms etc.There are many traditional EAI tools in the market which provides out-of-box functionality to build services and technologies like J2EE,.NET to build new custom services.