Welcome!

Java Authors: Maureen O'Gara, Bruce Armstrong, Liz McMillan, Walter H. Pinson, III, Yakov Werde

Related Topics: Java

Java: Article

Migrating Enterprise Applications Between J2EE Application Servers

Migrating Enterprise Applications Between J2EE Application Servers

The analysis phase involves analyzing the gathered information to come up with a feasible migration plan. The final phase is reviews and publication. During this phase, the results of the planning are shared with the stakeholders to then get an agreement on the actual migration of the applications.

Figure 2 illustrates parallel tracks that constitute the migration planning. The architecture planning and strategy track covers the assessment of the architecture, the best possible course for moving toward a standardized J2EE baseline, the migration path to get from the existing architecture for each application to the target architecture, and more. The code migration planning and estimation track deals with the actual migration of the code including the development environment, the steps to migrate from existing versions of the APIs to the target version, the effort estimate for each type of migration (e.g., migration between JSP versions, effort to convert from thick client to thin client, etc.).The test planning and estimation track covers the planning of how to test the application after the migration. The infrastructure planning track deals with the planning of the different runtime environments such as testing, staging, and production. The training plan track addresses the training needs of the development and support teams in order to migrate to the new app server version/vendor.

Best Practices for Enterprise Application Migration
Migrating enterprise applications is a formidable undertaking. However, if planned properly, the migration can proceed smoothly. Some best practices, if followed, can make all the difference between a successful on-time, within-budget migration as opposed to one that can end up being a maintenance nightmare for years to come.

1.  Program Manage the Migration
The best possible approach to managing a large-scale migration is to manage it as a separate program rather than treating it as the migration of individual applications. To do this, a core migration team should be created during the planning phase. This migration team should be responsible for coordinating the migration of all the applications. Although the actual migration is best done by the team that owns the application, the core migration team can undertake tasks such as coordination, and training.

2.  Prepare Your Arsenal
The good news is that application migration between application servers is a well-defined and understood problem. To that effect, J2EE app server vendors have documented the steps to migrate the code and to deploy the applications on the target environment quite well. In addition, IBM, Sun, BEA, and others have also invested in creating tools that automate some of the effort involved in migrating and deploying the code. This is partly to entice application developers to migrate from a competing vendor and partly to facilitate the phasing out of app server versions that will not be supported in the future. The first step, once you have identified the need to migrate your applications, is to obtain the sources of information readily available from the vendors and other parties. Read the literature and become familiar with the tools and the quirks of migration that are particular to your product and the J2EE environment platform.

3.  Invest in a Planning Phase
If you are migrating a few applications with few interdependencies, a planning phase may be overkill. However, in this article the focus is on migrating a large portfolio of applications. To minimize risk and alleviate the impact to the business, make sure you invest in a planning phase. The planning phase should define the characteristics of each application that is being migrated; document the dependencies between applications; estimate the effort in terms of time, money, and resources; produce a roadmap for migration; and produce a step-by-step migration guide for each application that covers all phases of the migration from the migration of code to the deployment of each application in the production environment.

4.  Get Everyone Working Toward the Same Goal
An enterprise-level migration involves several parties with different interests and motivations for the migration. A key to success is to get everyone together and working toward the same objective. Ensure that all the concerned parties understand the priorities and rationale behind the migration and understand their role in the initiative.

5.  Take the Least Common Denominator
To define a structured path for the migration of multiple enterprise applications, you frequently have to take the least common denominator for defining the move. In other words, all the applications may not see the same benefit in the migration. Some may be in a better position to leverage the target platform's capabilities than others.

6.  Invest in Directed Training
When the app server migration is being handled on a large scale, the best way to bring everyone up to speed is to conduct training that is focused purely on the migration. This training can be conducted in-house, or may be provided by the app server vendors themselves. Several training firms have migration tracks that specialize in different types of app server migration.

7.  Wade the Waters Before Jumping In
As with all other large-scale projects, your migration roadmap should include a pilot phase. A few applications should be chosen to test the assumptions made in the planning phase such as the code migration effort and performance benchmarks. Once the pilot applications are successfully launched, the plan should be revisited, tuned, and then finally executed.

8.  Always Leave a Back Door Open
With ample planning, the migration should proceed smoothly. However, the existing environment should be maintained till the applications are all fully tested and operational.

SIDEBAR

Web Services Edge
By the time you get this issue, SYS-CON's Web Services Edge should be in the offing. In fact, that may be where you picked up the copy you are holding in your hands just now. At the conference, we have an App Server shootout event and also a session that I'm hosting on application server migration. If this is of interest to you, be sure to stop by.

More Stories By Ajit Sagar

Ajit Sagar is a principal architect with Infosys Technologies, Ltd., a global consulting and IT services company. Ajit has been working with Java since 1997, and has more than 15 years experience in the IT industry. During this tenure, he's been a programmer, lead architect, director of engineering, and product manager for companies from 15 to 25,000 people in size. Ajit has served as JDJ's J2EE editor, was the founding editor of XML Journal, and has been a frequent speaker at SYS-CON's Web Services Edge series of conferences, JavaOne, and international conference. He has published more than 125 articles.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.