Migraciones de WebSphere: Migración de JBoss v4.x a IBM WebSphere Application Server Community Edition v2.x

Potencie el soporte y la arquitectura de WebSphere®Application Server y Apache Geronimo como una alternativa superior a JBoss®Application Server. Este documento describe los recursos que lo ayudarán a migrar las aplicaciones que se ejecutan en JBoss hacia WebSphere Application Server Community Edition.

Ashish Jain, Software Engineer, IBM

Author photoAshish Jain is a Software Engineer at IBM India Software Labs in Bangalore India. He is working as Level 3 Technical Support of IBM WebSphere Application Server Community Edition. He received a Bachelors of Engineering in Computer Science from NITK Surathkal, India and joined IBM in 2005 as an ELTP.


Nivel de autor contribuyente en developerWorks

20-11-2009

Introducción

Java Enterprise Edition 5 (Java™EE5™) es una plataforma de programación para el desarrollo y la ejecución de aplicaciones Java distribuidas y multinivel. La aplicación desarrollada se ejecuta en uno de los contenedores Java EE. Cuando dos contenedores implementan la misma especificación, es posible migrar perfectamente una aplicación desarrollada para un servidor de aplicación para que se ejecute en otro servidor de aplicación. Sin embargo, esto involucra cierto nivel de complejidad debido a los diferentes mecanismos cargadores de clases, los paquetes de la aplicación, el uso de código nativo, los planes de implementación, etc.

En este artículo, presentamos los dos servidores de aplicación y sus diferencias y similitudes arquitectónicas. Luego, la sección denominadaMigration Articles[Artículos sobre migración] ilustra los pasos a seguir para migrar una aplicación desarrollada para JBoss Application Server hacia WebSphere Application Server Community Edition (al que, de aquí en más, denominaremos Community Edition). En primer lugar, les ofrecemos una introducción de alto nivel a los dos servidores de aplicación.

El servidor de aplicación JBoss es un servidor de aplicación creado por Red Hat que cumple con los requisitos de Java Enterprise Edition 5 (Java EE5) y sirve para el desarrollo, la prueba y la implementación de aplicaciones. Tenga en cuenta que, desde esta fecha, JBoss v5 ya está disponible en jboss.org, pero todavía no se publicó la versión completa de RedHat JBoss v5. La migración de JBoss v5 debería ser similar.

Community Edition es un servidor de aplicación Java Enterprise Edition 5 (Java EE5) certificado y basado en Apache Geronimo. Éste incluye los siguientes componentes de código abierto (sólo para mencionar algunos):

  • Apache Derby para el servidor de base de datos predeterminado
  • Apache OpenJPA para el motor de persistencia
  • Apache OpenEJB para el contenedor EJB
  • Apache Tomcat para el contenedor Web
  • Active MQ para el proveedor de servicios de mensajería

El kernel Geronimo es el núcleo de Geronimo, que actúa como el pegamento que permite agregar todos los componentes de código abierto.

A continuación, mencionamos algunas de las características de alto nivel de Community Edition:

  • Soporte Java- IBM y Sun Java
  • Soporte de plataformas- SUSE , Ubuntu, Red Hat y Asianux Linux, AIX, Sun Solaris, Windows XP, 2003, 2008 y Vista
  • Soporte de bases de datos- Apache Derby, IBM DB2, IBM Informix, MySQL, Oracle, Microsoft SQL Server (se puede usar cualquier base de datos que cumpla con todos los requisitos de JDBC)
  • Soporte de servicios de mensajería- Apache ActiveMQ, WebSphere MQ
  • Soporte de Directory Server- Apache Directory Server, IBM Tivoli Directory Server, Microsoft Active Directory Server, Open LDAP Server, Sun One Directory Server
  • Poco espacio ocupado- Resulta muy fácil comenzar a usar Community Edition: El archivo a descargar sólo pesa alrededor de 100 MB. Por lo tanto, los desarrolladores pueden descargarlo y comenzarlo a usar con gran facilidad. El pequeño tamaño de Community Edition también significa que es fácil de incrustar en una oferta de mayor envergadura, lo que ayuda a los clientes y a los ISV a construir una solución total usando Community Edition.
  • Configuración y control centralizado- Community Edition ofrece soporte de monitoreo por medio de la consola administrativa. Al usar esta característica, usted puede reunir datos estadísticos y de rendimiento de varios servidores y mostrárselos a los usuarios de manera gráfica.
  • Portabilidad para la familia de productos WebSphere Application Server- Su inversión en WebSphere Application Server Community Edition adquiere un mayor valor con el paso del tiempo a medida que la comunidad de código abierto sigue madurando e innovando. Además, WebSphere Application Server Community Edition le brinda acceso a la cartera integral y probada de productos middleware de WebSphere. A medida que sus necesidades vayan aumentando con el paso del tiempo, IBM podrá ofrecerle un camino claro para tenga acceso a capacidades avanzadas, como por ejemplo SOA, por medio de las configuraciones de WebSphere Application Server.
  • Licencia de producto libre- Gratis para usarlo en tareas de desarrollo, prueba e implementación.
  • Soporte gratuito durante un período de prueba de 30 días- Community Edition le ofrece soporte gratuito durante un período de prueba de 30 días, lo que los clientes pueden usar para adentrarse en las ventajas de IBM Support.
  • Complemento de Eclipsepara el desarrollo, la prueba y la implementación de la aplicación.
  • Unforo abiertopara todas sus consultas y preguntas. Usted puede postear todas sus consultas en el foro de Community Edition de IBM developerWorks.

Diferencias y similitudes arquitectónicas

La siguiente sección le muestra los diagramas arquitectónicos para Community Edition y JBoss Application Server.

Figura 1. Diagramas arquitectónico para Community Edition
Diagramas arquitectónico para Community Edition
Figura 2. Diagramas arquitectónico para JBoss Application Server
Diagramas arquitectónico para JBoss Application Server

La Tabla 1 describe las principales diferencias y similitudes entre JBoss Application Server y Community Edition:

Tabla 1. Comparación de las características de JBoss y Community Edition
CaracterísticaJBossCommunity Edition
Enterprise Java Beans (EJB)Soporta la especificación EJB 3.0Soporta la especificación EJB 3.0
Java Connector Architecture (JCA)Soporta la especificación JCA 1.5Soporta la especificación JCA 1.5
Servlets JavaSoporta la especificación Servlets 2.5Soporta la especificación Servlets 2.5
Java Server Pages (JSP)Soporta la especificación JSP 2.1Soporta la especificación JSP 2.1
Java Server Faces (JSF)Soporta la especificación JSF 1.2Soporta la especificación JSF 1.2
TransaccionesSoporta XA, local y ninguna transacciónSoporta XA, local y ninguna transacción
Implementación de JTASoporte para JTA por medio de JBoss JTASoporte de transacciones provisto por medio de ObjectWeb JOTM y HOWL
Gestión y pool de conexionesEntorno JBossCXCódigo Geronimo personalizado por medio de Codehaus TranQL
Contenedor WebApache Tomcat 6.0Apache Tomcat 6.0.20
Contenedor EJBImplementación propia de JBossApache OpenEJB
Proveedor de persistenciaHibernateApache OpenJPA
Descriptor de implementación de la aplicación EJBConfigurado en jboss.xmlConfigurado en openejb-jar.xml
Descriptor de implementación de la aplicación WebConfigurado en jboss-web.xmlConfigurado en geronimo-web.xml
Descriptor de implementación de la aplicación EARConfigurado en jboss-app.xmlConfigurado en geronimo-application.xml
Descriptor de implementación de JPAConfigurado en persistence.xmlConfigurado en persistence.xml

Problemas comunes de migración

Esta sección discute algunos de los problemas de migración más comunes que usted puede tener que enfrentar.

Diferencias en las implementaciones de Java EE

Durante el proceso de migración, nos hemos encontrado con problemas causados por las diferencias existentes en lo que hace a cómo los proveedores interpretan la especificación de Java EE. Por ejemplo, algunos servidores de aplicación no son tan estrictos como la familia de productos WebSphere en cuanto a validar las aplicaciones Java EE y, a veces, los descriptores de implementación no superan la validación. Otro ejemplo es el uso de comillas simples y dobles en JSP, lo que falla durante la compilación para la familia de productos WebSphere.

Problemas relacionados con el cargador de clases

El cargador de clases de Java es responsable de localizar y cargar clases. Los cargadores de clases del servidor de aplicación son complejos, al igual que la tarea de rastrear y solucionar estos problemas. Cada servidor de aplicación Java EE usa una implementación personalizada de cargadores de clases, ya que, en la actualidad, la especificación de Java EE no incluye a los cargadores de clases. Por ejemplo, Community Edition tiene una jerarquía de cargador de clases padre-hijo, mientras que JBoss usa un enfoque de cargador de clases unificado.

Bibliotecas compartidas

Se trata de bibliotecas disponibles para varias aplicaciones o para todo el servidor. Las bibliotecas compartidas se encuentran en lugares diferentes y están configuradas de manera diferente dependiendo del servidor. Por ejemplo, en Community Edition, existen varias formas de configurar las bibliotecas compartidas:

  • Dentro del directorio del servidor de aplicación, agregue una dependencia a la biblioteca compartida en el plan de implementación.
  • Fuera del directorio del servidor de aplicación, agregue un GBean al plan de implementación.
  • En JBoss, agregue una entrada para la biblioteca-directorio en el plan de implementación específico a JBoss.

Bibliotecas incluidas

Cada plataforma incluye un conjunto exclusivo de entornos y bibliotecas (por ejemplo, Apache Xerces y Apache Xalan). Las versiones de estas bibliotecas y los cargadores de clases son diferentes en cada plataforma.

Descriptores de implementación

La especificación de Java EE no abarca los aspectos relativos a la implementación y a la configuración de la aplicación. Por esta razón, contamos con descriptores de implementación específicos al proveedor. Cada servidor de aplicación usa un conjunto diferente de archivos. Esto es así porque se los implementa de manera diferente y cuentan con conjuntos de características diferentes. Como se lo indica en la Tabla 1, los nombres de los planes de implementación que usa JBoss difieren de aquellos que se usan en Community Edition. Por ejemplo, JBoss denomina al descriptor de implementación de la aplicación Webjboss-web.xml,, mientras que Community Edition lo denominageronimo-web.xml. También pueden llegar a existir diferencias considerables entre las definiciones de esquema que se usan para validar cada uno de los planes de implementación.

Paquetes de aplicación

Los paquetes son muy importantes en lo que hace a la portabilidad y a la migración. Cada aplicación forma parte de un paquete diferente. Esto, en combinación con las implementaciones de cargadores de clases diferentes en cada servidor de aplicación, puede crear problemas al momento de realizar la migración. Para evitar problemas, siempre siga la especificación de Java EE, que incluye especificaciones correspondientes a los paquetes de aplicación. Generalmente, las aplicaciones forman parte de un paquete dentro de un archivo EAR, que puede incluir los siguientes módulos:

  • EJB

    Incluye los archivos de clase del EJB y los descriptores de implementación.

  • WAR

    Módulo de aplicación Web que incluye descriptores de implementación.

  • JAR

    Un archivo JAR que puede incluir las clases comunes que usan otros módulos y descriptores de implementación para un cliente de aplicación de Java EE.

  • RAR

    Resource Adapter Archive es un archivo JAR que incluye adaptadores de recursos para la arquitectura J2C.

Uso de código nativo

La plataforma Java permite el uso de código nativo (por ejemplo, escrito en C o C++) mediante el uso de Java Native Interface (JNI). El uso de código nativo puede llegar a ocasionar problemas al momento de realizar una migración hacia un sistema operativo diferente. Por ejemplo, es posible que una aplicación que se ejecuta en Windows use archivos .DLL. Pero si se realiza la migración hacia una plataforma Linux, es posible que la misma aplicación requiera un archivo .SO.

Extensiones de JBoss

JBoss ha agregado extensiones de servidor específicas a JBoss (JBoss Jars) para ampliar las características de algunas aplicaciones. Estas extensiones deberían ser determinadas por sus especificaciones de Java EE.


Artículos sobre migración

Los pasos de migración que se incluyen en los artículos que figuran a continuación lo ayudarán a comprender las complejidades que hemos discutido con anterioridad y a migrar sus aplicaciones JBoss a Community Edition.


Conclusión

Este artículo le explicó cómo migrar su código desde JBoss Application Server e implementarlo en WebSphere Application Server Community Edition. Las aplicaciones de muestra incluidas en los artículos sobre migración resaltan algunas de las diferencias más notorias entre las dos implementaciones.

Agradecimientos

Agradecemos a Ron Staerker por haber revisado este material.

Recursos

Aprender

Obtener los productos y tecnologías

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=WebSphere, Lotus
ArticleID=448452
ArticleTitle=Migraciones de WebSphere: Migración de JBoss v4.x a IBM WebSphere Application Server Community Edition v2.x
publish-date=11202009