Sun Java System Application Server Platform Edition 9 Upgrade and Migration Guide

Chapter 4 Understanding Migration

This chapter addresses the following topics:

Migration and Deployment

This section describes the need to migrate Java EE applications and the particular files that must be migrated. Following successful migration, a Java EE application is redeployed to the Application Server.

Redeployment is also described in this section.

The following topics are addressed:

Why is Migration Necessary?

Although Java EE specifications broadly cover requirements for applications, they are nonetheless evolving standards. They either do not cover some aspects of applications or leave implementation details to the application providers.

This leads to different implementations of the application servers, also well as difference in the deployment of Java EE components on application servers. The array of available configuration and deployment tools for use with any particular application server product also contributes to the product implementation differences.

The evolutionary nature of the specifications itself presents challenges to application providers. Each of the component APIs are also evolving. This leads to a varying degree of conformance by products. In particular, an emerging product, such as the Application Server, has to contend with differences in Java EE application components, modules, and files deployed on other established application server platforms. Such differences require mappings between earlier implementation details of the Java EE standard, such as file naming conventions, messaging syntax, and so forth.

Moreover, product providers usually bundle additional features and services with their products. These features are available as custom JSP tags or proprietary Java API libraries. Unfortunately, using these proprietary features renders these applications non-portable.

What Needs to be Migrated?

For migration purposes, the Java EE application consists of the following file categories:

Deployment descriptors (XML files)

Deployment is accomplished by specifying deployment descriptors (DDs) for standalone enterprise beans (EJB JAR files), front-end Web components (WAR files) and enterprise applications (EAR files). Deployment descriptors are used to resolve all external dependencies of the Java EE components/applications. The Java EE specification for DDs is common across all application server products. However, the specification leaves several deployment aspects of components pertaining to an application dependent on product-implementation.

JSP source files

Java EE specifies how to extend JSP by adding extra custom tags. Product vendors include some custom JSP extensions in their products, simplifying some tasks for developers. However, usage of these proprietary custom tags results in non-portability of JSP files. Additionally, JSP can invoke methods defined in other Java source files as well. The JSPs containing proprietary APIs needs to be rewritten before they can be migrated.

Java source files

The Java source files can be EJBs, servlets, or other helper classes. The EJBs and servlets can invoke standard Java EE services directly. They can also invoke methods defined in helper classes. Java source files are used to encode the business layer of applications, such as EJBs.Vendors bundle several services and proprietary Java API with their products. The use of proprietary Java APIs is a major source of non-portability in applications. Since Java EE is an evolving standard, different products can support different versions of Java EE component APIs. This is another aspect that migration addresses.

For information on how to migrate these components, see Chapter 6, Migrating from Other Application Servers to Sun Java System Application Server 9

What is Deployment of Migrated Applications?

Deployment refers to deploying a migrated application that was previously deployed on an earlier version of Sun’s Application Server, or any third party application server platforms.

Deploying a migrated application is described in Chapter 1, Assembling and Deploying Applications, in Sun Java System Application Server Platform Edition 9 Application Deployment Guide. However, when migration activities are performed with automated tools, such as the Migration Tool for Sun Java System Application Server 9 (for Java EE applications) or the Sun ONE Migration Toolbox (for Netscape Application Servers), there might be post-migration or pre-deployment tasks that are needed (and defined) prior to deploying the migrated application.

See Chapter 8, Migration Tools and Resources for more information about migration tools that are available.

Java EE 5 Component Standards

Application Server 9 is a Java EE 5 -compliant server based on the component standards developed by the Java community. Application Server8.0 and 8.1/8.2 versions are J2EE 1,4 compatible, Application Server 7 is a J2EE 1.3-compliant server, and Sun ONE Application Server 6.x is a J2EE 1.2-compliant server. Between the Java EE versions, there are considerable differences with the Java EE application component APIs.

The following table characterizes the differences between the component APIs used with the Java EE-compliant Application Server 9, Application Server 7, and Application Server 6.x.

Table 4–1 Application Server Version Comparison of APIs for Java EE Components

Component API 

Application Server 6.x 

Application Server 7 

Application Server 8.x 

Sun Java System Application Server 9 

JDK 

1.2.2 

1.4 

1.4 

1.5 

Servlet 

2.2 

2.3 

2.4 

2.5 

JSP 

1.1 

1.2 

2.0 

2.1 

JDBC 

2.0 

2.0 

2.1, 3.0 

4.0 

EJB 

1.1 

2.0 

2.0 

3.0 

JNDI 

1.2 

1.2 

1.2.1 

1.2.1 

JMS 

1.0 

1.1 

1.1 

1.1 

JTA 

1.0 

1.01 

1.01 

1.01 

JAX-WS 

2.0 

Java EE 5 Application Components

Java EE 5 simplifies development of enterprise applications by basing them on standardized, modular components, providing a complete set of services to those components, and handling many details of application behavior automatically, without complex programming. Prominent Java EE components include:

Java EE components are packaged separately and bundled into a Java EE application for deployment. Each component, its related files such as GIF and HTML files or server-side utility classes, and a deployment descriptor are assembled into a module and added to the Java EE application. A Java EE application is composed of one or more enterprise bean(s), Web, or application client component modules. The final enterprise solution can use one Java EE application or be made up of two or more Java EE applications, depending on design requirements.

A Java EE application and each of its modules has its own deployment descriptor. A deployment descriptor is an XML document with an .xml extension that describes a component’s deployment settings.

A Java EE application with all of its modules is delivered in an Enterprise Archive (EAR) file. An EAR file is a standard Java Archive (JAR) file with an .ear extension. The EAR file contains EJB JAR files, application client JAR files and/or Web Archive (WAR) files.

The migration process is concerned with moving Java EE application components, modules, and files. For more information on migrating various Java EE components, refer to Chapter 6, Migrating from Other Application Servers to Sun Java System Application Server 9.

For more information on Java EE, see: