Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Expo on Google News


2008 West
DIAMOND SPONSOR:
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
GOLD SPONSORS:
Appsense
User Environment Management – The Third Layer of the Desktop
Cordys
Cloud Computing for Business Agility
EMC
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Intel
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Sensedia
Return on Assests: Bringing Visibility to your SOA Strategy
Symantec
Managing Hybrid Endpoint Environments
VMWare
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
PLATINUM SPONSORS:
Appcelerator
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
GOLD SPONSORS:
ICEsoft
How Can AJAX Improve Homeland Security?
Isomorphic
Beyond Widgets: What a RIA Platform Should Offer
Oracle
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
SYS-CON.TV
Top Links You Must Click On


Microsoft .NET Feature — Comparing Migration Methodologies
Preserving functionality is paramount

The purpose of this article is to introduce the concept of a software migration project and compare two migration methodologies.

  • Manual Rewrite Migration: Leverages hand coding to rebuild the legacy codebase from scratch. Optionally this approach may also leverage a low-yield translation tool to convert the legacy application to a new code base that still requires significant manual work to take it to the desired state.
  • High-Yield-Tool-Assisted Migration: Balances customization of translation tools with manual work to convert the legacy application to a new code base.
Why Migrate?
CHANGE HAPPENS
The details of every software system are defined in terms of two foundation technologies:
  • The programming languages used to describe the system
  • The various runtime libraries used to access external services
The programming language dictates how developers can describe data structures, interfaces, and algorithms. The libraries provide an extensive array of advanced services to the program such as data access, communications, and graphical user interface. The language and libraries are called the platform. The platform sets the rules and makes the system possible.

However, over the course of a system's lifespan, the platform can and will change: languages and libraries inevitably evolve and are replaced by next-generation technologies. Usually, the changes are gradual with an appropriate measure of backward compatibility, so we can adapt through standard maintenance activities. Sometimes, however, the changes are more radical and disruptive, so a more focused effort, called a migration project, is called for.

The Business Case for a Migration I will briefly mention that the business case for a migration is predicated on two things:

  1. The migration will allow you to take advantage of the capabilities of the new platform.
  2. The migration will give you access to the community and vendor support for the new platform. We will assume the new platform measurably outperforms the legacy platform in terms of capability and support, but your mileage will vary according to your specific business needs and the value you place on community support, including the supply of skilled developers. Most often, the reality of platform change is that you just have to migrate. The only question is how to do it in a timely and cost-effective fashion.
What Is a Migration Project?
An example of a migration project would be to begin with an application written in Visual Basic and (using various COM libraries) and replace it with a similar application written in C# (using the .NET Framework). The distinguishing assumptions of a typical migration project are:
  1. You have a reason and ideally a clear business case to migrate your legacy system to the new platform.
  2. You have to make architectural improvements as you migrate to the new platform.
  3. You are actively maintaining your legacy code base.
  4. You want to migrate without breaking the legacy functionality.
  5. You want the new system to be more maintainable than the legacy system.
  6. You want to migrate efficiently, with minimal disruption to the users of the system and other ongoing work.
It may be useful to think of a migration project as a refactoring effort.

KeyPoint
The Wikipedia defines Refactoring as the process of rewriting a computer program or other material to improve its structure or readability, while explicitly preserving its meaning or behavior. A migration is more than refactoring; it is modifying a codebase to take advantage of a new platform and to ensure that it can be efficiently maintained with the new tools.

Migration Methodologies
MANUAL REWRITE MIGRATION
A manual rewrite migration is essentially a new system build with some important effects caused by the presence of the legacy system that is being replaced. The biggest effect of the legacy system is that its code can provide some functional and technical requirements for the new system. However, migration planners must be careful not to overestimate the power of this effect. The legacy code may be very large and very complex, having emerged over a period of years. There will also be many subtle, and not so subtle, differences between the legacy and new platforms and these make manual translation very difficult. A developer can quickly get led astray by the many subtle differences and become unproductive due to the overhead of constantly switching back and forth between old and new tools and platforms. A translation tool is not typically employed on a manual rewrite, but one may be used to help developers figure out how to rewrite the code or give them a starting point. Beware that most off-the-shelf translators are low yield and they leave a tremendous amount of difficult work to be done by hand. (Sidebar 1)

The manual rewrite can be executed via a waterfall or a more iterative methodology.

WATERFALL MIGRATION
The waterfall methodology is usually not palatable because it implies a long time between the start of the project and the eventual delivery of the new system. During this time, business requirements will change - a known problem with a waterfall methodology. The changing requirements are even more troubling for a rewrite migration because the changes may have to be made in both the legacy and new systems. If you are using a changing legacy code as the specification for the rewrite, it will soon be out of date.

INCREMENTAL MIGRATION
Instead of a waterfall, you will probably want a more iterative approach or, more precisely, an incremental approach that delivers the new system through a series of migration phases (see Figure 1). In an incremental rewrite methodology, the legacy system continues to run as the new system is built, tested, and deployed. You will want to try to build the new system in a way that seamlessly integrates with the old system to avoid running redundant applications in production. The side-by-side environment will also create overhead for users trying to cope with changing rules for which application to use as functionality moves from the old to the new system. Even if you can hide the complexity from the users, the runtime environment as well as deployment and operations activities needed to support both the old and new platforms and applications may be painfully complex. (Sidebar 2)


About Mark Juras
Mark Juras is president of Great Migrations LLC, a technology solutions provider that specializes in helping people migrate their software applications from one programming language to another.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Thanks for your interest in the article. The diagrams are available at www.greatmigrations.com; there is an updated version of ths material in the downloads section.

A couple of the figures for this article appear to be cut off.

Side-bar-1.gif
Mark-fig-1.gif
side-bar-2.gif (hard to tell on this one)
side-bar-3.gif (hard to tell on this one)
side-bar-4.gif
side-bar-6.gif

Can I get corrected copies of these?

If you found this article informative, you should also see "Five Pillars of Visual Basic Retirement". It is a case study about how the tool-assisted rewrite methodology was selected and applied in a real migration program. Enjoy.

http://dotnet.sys-con.com/read/299072.htm


Your Feedback
Mark wrote: Thanks for your interest in the article. The diagrams are available at www.greatmigrations.com; there is an updated version of ths material in the downloads section.
Earl Truss wrote: A couple of the figures for this article appear to be cut off. Side-bar-1.gif Mark-fig-1.gif side-bar-2.gif (hard to tell on this one) side-bar-3.gif (hard to tell on this one) side-bar-4.gif side-bar-6.gif Can I get corrected copies of these?
Mark Juras wrote: If you found this article informative, you should also see "Five Pillars of Visual Basic Retirement". It is a case study about how the tool-assisted rewrite methodology was selected and applied in a real migration program. Enjoy. http://dotnet.sys-con.com/read/299072.htm
Enterprise Open Source Magazine Latest Stories . . .
Apache Deltacloud, the Red Hat-contributed ReSTful API that abstracts differences between clouds so services on any cloud can be managed – provided of course there’s a driver – has graduated from the Apache Foundation’s incubator and is now a full-fledged Top-Level Project (TLP). The...
With Cloud Expo 2012 New York (10th Cloud Expo) just four months away, what better time to start introducing you in greater detail to the distinguished individuals in our incredible Speaker Faculty for the technical and strategy sessions at the conference... We have technical and st...
AMD said late Tuesday that its chief sales officer Emilio Ghilardi had left the company and that CEO and president Rory Read is going to do his job while a replacement is sought. AMD didn’t say why Ghilardi left but it’s assumed Read wants his own people. Read is relatively new to th...
During the lifespan of M3 (Monitis Monitor Manager) there has always been something lacking – timers. M3 execution procedure was outlined in this previous article. The execution mentioned in the latter was a one-time-execution, whereas server monitoring requires periodic invocati...
Red Hat is putting its bought-in Gluster scale-out NAS storage technology, acquired in October, on the Amazon cloud. It’s styled Red Hat Virtual Storage Appliance for Amazon Web Services and other clouds are supposed to follow in short order.
A new episode of the screencast series is now available at the OpenNebula YouTube Channel. This screencast demonstrates the new easily-customizable self-service portal for cloud consumers. Its aim is to offer a simplified access to shared infrastructure for non-IT end users. The scree...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON Featured Whitepapers
ADS BY GOOGLE