Skip Headers

Oracle9iAS Migrating From WebSphere
Release 9.0.2

Part Number A95110-01
Go To Documentation Library
Home
Go To Table Of Contents
Contents
Go To Index
Index

Go to previous page Go to next page

1
Overview

This chapter provides you with an overview of the J2EE platform, application servers, and the Oracle9i Application Server (Oracle9iAS). In addition, it provides you with an understanding of what is involved in migrating from WebSphere Advanced Edition 3.5.3 to Oracle9iAS.

The chapter contains these topics:

Overview of J2EE

The application server market is evolving rapidly. In particular, the most significant development over the last few years is the emergence of Sun Microsystems' Java 2 Platform, Enterprise Edition (J2EE) Specification that promises to create a level of cross-vendor standardization.

The J2EE platform and component specifications define, among other things, a standard platform for developing and deploying multi-tier, web-based enterprise applications.

J2EE provides a solution to the problems encountered by companies moving to a multi-tier computing model. The problems addressed include reliability, scalability, security, application deployment, transaction processing, web interface design, and timely software development. It builds upon the Java 2 Platform, Standard Edition (J2SE) to enable Sun Microsystems' "Write Once, Run Anywhere" paradigm for multi-tier computing.

J2EE consists of the components described in Table 1-1:

Table 1-1 J2EE Standard Architecture Components
Component Description

J2EE Application Model

An application model for developing multi-tier, thin client services

J2EE Platform

A platform for hosting J2EE applications

J2EE Compatibility Test Suite

A compatibility test suite for verifying that a J2EE platform product meets the requirements set forth in the J2EE platform and component specifications

J2EE Reference Implementation

A reference implementation of the J2EE platform

What is the J2EE Application Model?

The J2EE application model is a multi-tier application model. Application components are managed in the middle tier by containers. A container is a standard runtime environment that provides services, including life cycle management, deployment, and security services, to application components. This container-based model separates business logic from system infrastructure.

What is the J2EE Platform?

The J2EE platform consists of a runtime environment and a standard set of services that provide the necessary functionality for developing multi-tiered, web-based enterprise applications.

The J2EE platform consists of the components described in Table 1-2.

Table 1-2 J2EE Platform Components
Component Description

J2EE runtime application components

 

Application clients

A Java program, typically used for a GUI, that executes on a desktop computer

Applets

A component of a Java program that typically executes in a web browser

Servlets

A Java program, used to generate dynamic content, that executes on a web server

JSPs

A technology used to return dynamic content to a client, typically a web browser

Enterprise JavaBeans (EJB)

An applications architecture for component-based distributed computing

Containers

An entity that provides services for application components, including life cycle management, deployment, and security services

Resource manager drivers

A system-level component that enables network connectivity to external data sources

Database

A set of related files used for the storage of business data and accessible through the JDBC API

J2EE standard services

 

HTTP

The standard protocol used by the Internet to send and receive messages between web servers and browsers

HTTPS

A protocol used by the Internet to send and receive messages securely between web servers and browsers

Java Transaction API (JTA)

An API that allows applications and application servers to access transactions

RMI-IIOP

RMI: A protocol that enables Java objects to communicate remotely with other Java objects.

IIOP: A protocol that enables browsers and servers to exchange things other than text.

RMI-IIOP is a version of RMI that uses the CORBA IIOP protocol

JavaIDL

A standard language for interface specification primarily used for CORBA object interface definition

JDBC

An API that provides connectivity between databases and the J2EE platform

Java Message Service (JMS)

An API that enables the use of enterprise messaging systems

Java Naming and Directory Interface (JNDI)

An API that provides directory and naming services

JavaMail

An API that provides the ability to send and receive e-mail

JavaBeans Activation Framework (JAF)

An API required by the JavaMail API

What is an Application Server?

An application server is software that runs between web-based client programs and back-end databases and legacy applications. They help separate system complexity from business logic, enabling developers to focus on solving business problems. They help reduce the size and complexity of client programs by enabling these programs to share capabilities and resources in an organized and efficient way.

Application servers provide benefits in the areas of usability, flexibility, scalability, maintainability, and interoperability.

Overview of Oracle9iAS

Oracle9iAS is a comprehensive, integrated application server that provides all of the infrastructure and functionality needed to run every successful e-Business. All development teams face a similar set of challenges--the need to rapidly deliver web sites and applications that run fast over any network and on every device; while providing business intelligence to support operational adjustments and strategic decisions. Oracle9iAS enables teams to address all of these e-business challenges.

Oracle9iAS has generated a great deal of interest in the application server market, and many organizations are embracing it to deploy their web-based enterprise applications.

Oracle9iAS offers the only integrated infrastructure to develop and deploy web sites and applications. It provides a complete J2EE platform for developing enterprise Java applications. It enables developers to develop web applications in any language including Java, Perl, PL/SQL, XML, and Oracle Forms. It enables the reduction of development and deployment costs through a single, unified platform for Java, XML, and SQL.

The J2EE server implementation in Oracle9iAS is called or OC4J. OC4J is J2EE 1.2 compliant and runs on the standard JDK. It is lightweight, provides high performance and scalability, and is simple to deploy and manage. OC4J can be deployed in standalone mode, which is ideal for development environments or with Oracle Enterprise Manager (OEM) to provide enterprise-level monitoring and management facilities.

J2EE Application Migration Challenges

The varying degrees of compliance to J2EE standards can make migrating applications from one application server to another a daunting task. Some of the challenges in migrating J2EE applications from one application server to another are:

These challenges make the migration path daunting, uncertain, and difficult to reliably plan and schedule. This chapter addresses the challenges in migrating your applications from WebSphere to Oracle9i Application Server, providing an approach to migration with solutions based on the J2EE version 1.2 specification.

J2EE Application Architecture

The J2EE platform provides a multi-tiered distributed application model. Central to the J2EE component-based development model is the notion of containers. Containers are standardized runtime environments that provide specific services to components. Thus, Enterprise Java Beans (EJB) developed for a specific purpose in any organization can expect generic services such as transaction and EJB life cycle management to be available on any J2EE platform from any vendor.

Containers also provide standardized access to enterprise information systems; for example, providing RDBMS access through the JDBC API. Containers also provide a mechanism for selecting application behavior at assembly or deployment time.

As shown in Figure 1-1, the J2EE application architecture is a multi-tiered application model. In the middle tier, components are managed by containers: For example, J2EE Web containers invoke servlet behavior, and EJB containers manage life cycle and transactions for EJBs. The container-based model separates business logic from system infrastructure.

Figure 1-1 J2EE Architecture

Text description of j2ee.gif follows.

Text description of the illustration j2ee.gif

Migration Issues

An issue is a condition that could cause unplanned work. Given the inherent challenges outlined above, it is helpful to examine the applications to be migrated in terms of the following before quantifying the migration effort:

Portability

Code may not be portable because it contains embedded references to vendor- specific extensions to the J2EE specification. In such cases, runtime exceptions, (for example, "class not found") may occur when applications are migrated and run from one J2EE-compliant application server to another. In addition, some J2EE application servers still support deprecated APIs and others are strictly compliant to the J2EE specifications. WebSphere contains extenstions to servlets, JSPs, EJBs, JNDI, and JDBC. In such cases, evaluating code and planning for its modification may be a significant part of the migration effort.

Vendor Specificity

If Websphere-specific services are in use, migration of those components becomes difficult or unfeasible. These components may need to be redesigned and reimplemented,instead of being identified as migration candidates. This guide does not address complete redesign toward J2EE specifications. For example, applications using Component Broker (IBM ORB) services, CICS or Encina transaction monitors, MQSeries or DB2 libraries are not candidates for migration as defined in this guide.

Deviations from J2EE 1.2 Specification

Different application server vendors have different levels of support for J2EE standards, and some variations in behavior. For example, WebSphere Advanced Edition 3.5.3 is not fully compliant with the J2EE 1.2 specifications, but Oracle9i Application Server is. This fact alone raises issues with EJBs, JNDI, and security migration. This guide addresses those issues and explains how to migrate to Oracle9i Application Server without major code changes.

Migration Approach

Our approach for this guide is to document our experiences with migrating components and/or example applications from WebSphere Advanced Edition 3.5.3 to Oracle9i Application Server Release 2. Guidelines for migrating from WebSphere Advanced Edition 4.0 to Oracle9i Application Server Release 2 is discussed in Appendix B, "Migrating from WebSphere 4.0".

We selected some of the examples shipped with WebSphere for this migration excercise.We tested these samples with WebSphere and migrated them to Oracle9i Application Server. In doing so, we exposed and documented specific migration issues not identified in the product documentation. As described in "J2EE Application Migration Challenges" these issues exist because WebSphere Advanced Edition 3.5.3 does not comply to the J2EE 1.2 specification, and because Websphere-specific API extensions are used.

Using this Guide

This guide details the migration of components from WebSphere Advanced Edition 3.5.3 to Oracle9i Application Server. While it does not claim to be an exhaustive source of solutions for every possible configuration, it provides solutions for some of the migration issues listed above, which will surface, along with others, in your migration effort. The information in this guide helps you to assess the WebSphere Advanced Edition 3.5.3 applications and plan and execute their migration to Oracle9i Application Server. The material in this guide supports these high-level tasks:


Go to previous page Go to next page
Oracle
Copyright © 2002 Oracle Corporation.

All Rights Reserved.
Go To Documentation Library
Home
Go To Table Of Contents
Contents
Go To Index
Index