Legacy System Migration

When considering what to do with your legacy applications, migration is often significantly more cost-effective than application re-design. Migration is the process of moving an application from one operating system to another while reusing as much code as possible.

Three paths may be considered when performing a migration..

Manual Migration

This migration option involves manually replacing all unsupported operating system calls and data access calls.

Toolkit Migration

Unsupported calls are left untouched. Instead, the calls refer to exact duplicates of the routines that have been built for the new environment.

Emulation Migration

The original source code is untouched and the original executable is actually utilized. The process of emulation involves imitating the original environment that the application was intended to run in.

Often, the latter migration approaches do not produce satisfactory results for complex applications. On the other hand, a manual migration will result in an application that truly "fits" onto the new platform.

The major drawback for migration projects is that they have a tendency to "evolve" into a complete rewrite. The primary reason for this is because the flow control, process control and inter-process communications mechanisms of most applications do not easily map to the newer architectures.

What Ibridge has done is combine the manual approach with the toolkit approach. The key to this library is that it maintains legacy style flow control on a modern platform. Ibridge has successfully used this approach in order to migrate complex applications without changing existing system design. In these cases, the vast majority of the existing code (which had already been tested, debugged, and commissioned years earlier) was kept.

We helped our customers to leverage the millions of dollars in software development and commissioning costs that were put into their existing applications over several years.

The software library consists of 5 parts:

  • Run-Time Library Many of the more commonly used RTL routines are converted.
  • String Manipulation (language conversion issue)
  • Mailbox / Pipe Emulation Package (inter-process communications).
  • IO Emulation Package (for asynchronous disk file operations).
  • Thread control Emulation Package - allows you to mimic the control mechanisms to execute timed tasks or lengthy asynchronous tasks.

Copyright Ibridge Inc., 2010