Tuesday, 30 November 2010

Migration of Legacy Systems to SOA based on SMART approach

One of the promises of SOA is to enable reuse by leveraging existing investment already made in legacy systems thereby increasing the return of investments. But service enabling the legacy systems is not straight forward task. A detailed process oriented approach needs to be followed to address below areas

  • Feasibility of migration
  • Does it make sense to migrate the legacy system or to build that functionality from scratch and expose it as service?
  • Identifying migration strategy most appropriate based on the risks and cost involved in the migration
  • Approaches for mining of components from legacy application to derive services

High Level Overview of the Process

Multi step process based approach could help in devising a migration strategy which is best suited for the client. The following section will provide an overview of the process

I. First Step in this process involves following

a. Identifying the key stakeholders: Stakeholders includes business sponsor for the exercise, people who currently owns the legacy systems and people who are basically potential consumers to the services of legacy systems. It also includes group who had defined target SOA state or in the process of defining one.

b. It also involves clearly articulating business goals and the potential benefits the migration process could bring in. It also involves defining constraints in terms of budget and timelines.

II. Second step involves analyzing the existing capability of the legacy system. This is involve following tasks

a. Identify the legacy components which are potential candidates for migration. This also involves capturing following information

i. Business functionalities offered by those components. This may also involve viability of migration of multiple legacy components which could be composed to provide particular service. Or in some case, components needs to be split-up and then migrated to provide the service.

ii. Architecture & Design of those systems.

iii. Complexity of existing codebase

iv. Technology stack

v. Level of documentation which could aid in the migration process.

vi. Age of legacy component, maturity & stability of those components

vii. Usage history and any known issues with those components.

viii. Plus other important aspects which is specific to client.

b. Analyze the potential issues involved in the migrating of those components in legacy system as services.

III. This step involves capturing target SOA state. The team should gather information about the same from group who is responsible for defining the target SOA state. If one is not already there, there should be a separate exercise to define one.

This step provides the information like quality of services, tools/technologies/standards involved, service interaction model, quality of service and target runtime environments etc. It also involves identifying the services which could be created from legacy system and also services which are already identified by organization.

IV. In this step, gap analysis is carried out based on the information collected from initial 3 steps. Gap analysis would clearly provide the worthiness of the migration based on cost & risk involved. In some cases, it would be worth building service from scratch rather than going for migration.

V. Migration Strategy: Above activities will provide clear information about effort, cost and risks involved in migration. That information will provide input for devising the migration strategy specific for the client.

It could involve starting a pilot project for migrating initial set of legacy components to services which are highly visible at the same time low risk ones. This may initially involve the mix of simple wrapping plus rewrite of part/whole of legacy component. The pilot project could provide the measurable benefits which could help in organizational buy-in and validating the migration approach. This effort will also help in identifying the gaps in skill sets within an organization for carrying out SOA migration effort and training needs to address the gaps. Based on the outcome of the pilot phase, migration approach could be tuned to address any gaps. This should be continuous process and one which should be carried out after major milestones.

Adoption of well defined process oriented approach will help in making best use of the existing investment client have made and reduce any form of risks.