Universidad Nacional Autónoma de México
Dirección General de Servicios de Cómputo Académico
Año 7 Núm. 74, Publicación Mensual, 27 de Noviembre de 2008

ARTÍCULOS

 

Año 2, Número 20, Junio de 2003
J2EE. Una plataforma para el cómputo empresarial

Gustavo A. Gutiérrez
aldergut@servidor.unam.mx

Entrevista realizada a Hugo Reyes, Víctor Aguilar, Alfredo Landa y Juan Carlos Chávez,
quienes laboran en la Dirección de Sistemas de la DGSCA.

 

Al ver el acrónimo J2EE, probablemente piensas: “Qué horror. Un término más que aprender, como si no hubiera bastantes en cómputo...” Pero, si eres un desarrollador de software, o aspiras a serlo, y de los buenos, te conviene, y mucho, seguir leyendo este artículo y saber qué es esto del J2EE y cómo se aplica.

Había una vez...

Muy buenas historias comienzan así y la del J2EE no es la excepción, ya que nos transporta al año de 1995, cuando la compañía norteamericana Sun Microsystems® introduce al mercado la primera plataforma de software universal diseñada desde y para el crecimiento de Internet y de las Intranets corporativas. Esta tecnología fue denominada Java y permite a los programadores escribir aplicaciones una vez, así como correrlas en cualquier computadora lo que, desde entonces, ha revolucionando al mundo del desarrollo de software por representar un cambio de paradigma.

Pero ¿cómo está esto del cambio de paradigma? Probablemente has tomado alguna clase de introducción a la computación y tu maestro te habrá hablado de la interpretación y de la compilación de programas. Pues bien, con Java las cosas cambian, en tanto es una plataforma de software, que independiente del hardware, se aloja en el sistema mientras exista el elemento conocido como “Máquina Virtual de Java” (MVJ, o JVM por sus siglas en inglés). La MVJ hace posible que una aplicación desarrollada en Java se ejecute en cualquier sistema operativo que soporte esta máquina virtual, como por ejemplo Unix, Linux, Macintosh®, Windows, entre otros.

La principal misión de la MVJ es garantizar la portabilidad de las aplicaciones Java y especificar las instrucciones, llamadas bytecodes, que se pueden ejecutar. El intérprete Java entonces ejecuta las órdenes que se guardan en los archivos cuya extensión es .class.

¿Por qué le gusta tanto Java a los verdaderos programadores?

Java, como lenguaje de programación, reúne todas las características que debiera tener un ambiente orientado a objetos: es sencillo, cuenta con capacidad de generación de aplicaciones distribuidas, es robusto, seguro, de arquitectura neutral, portable, multihilo, dinámico y de alto rendimiento... todo un banquete para el programador.

Los programas más comunes que se pueden hacer con Java son, por una parte, los applets, que son pequeños programas de aplicación que se ejecutan en el navegador de la máquina cliente; y aplicaciones, esto es, programas ejecutados directamente en la MVJ.

Pero esto no es todo, la API (Application Program Interface) de Java es muy rica, ya que está formada por un conjunto de paquetes de clases que proporcionan una gran funcionalidad. Adicionalmente, Java también incluye extensiones que, por ejemplo, permiten definir un API para tercera dimensión, manejo de los servidores, telefonía y reconocimiento de voz, entre otras cuestiones.

El núcleo de la API viene con cada una de las implementaciones de la MVJ: tipos de datos, clases y objetos, applets, manejo de la red (networking), seguridad, y componentes (Java Beans). Este último concepto —los componentes— es básico para la comprensión del tema que nos ocupa en esta ocasión: J2EE.

Nace J2EE: Java 2 Enterprise Edition

Debido a la necesidad del mercado de desarrollo de software, respecto a contar con medios y herramientas que permitan construir aplicaciones “empresariales”, se diseñó la plataforma abierta y estándar de Java para este rubro, mejor conocida como Java 2 Enterprise Edition, (J2EE). Se le denomina plataforma porque proporciona especificaciones técnicas que describen el lenguaje pero, además, provee las herramientas para implementar productos de software (aplicaciones) basados en dichas especificaciones. Suena complicado, pero no lo es.

J2EE ha sido diseñada para aplicaciones distribuidas que son construidas con base en componentes (unidades funcionales de software), los cuales interaccionan entre sí para formar parte de una aplicación J2EE. Un componente de esta plataforma debe formar parte de una aplicación y ser desplegado en un contenedor, o sea en la parte del servidor J2EE que le ofrece al componente ciertos servicios de bajo nivel y de sistema (tales como seguridad, manejo de concurrencia, persistencia y transacciones). Como ves, J2EE no es sólo una tecnología, sino un estándar de desarrollo, construcción y despliegue de aplicaciones.

Los retos de la tecnología para el cómputo empresarial

La plataforma J2EE resulta una propuesta atractiva, interesante y de vanguardia que responde, de manera natural, a la demanda actual para el desarrollo de software, bajo el concepto de arquitectura en capas.

Para una organización que cuenta con una diversidad de equipos de cómputo, con sus respectivos sistemas operativos, una diversidad de “ambientes de trabajo” en las distintas áreas y una diversidad de “entornos de desarrollo” (los sistemas y soluciones informáticas con que cuentan en cada área), la propuesta de J2EE para “unificar” el desarrollo de aplicaciones que puedan utilizarse en la empresa, resulta viable y con posibilidades de amplia aceptación, sobre todo por el incentivo principal de Java: Write Once, Run Anywhere - Programa una vez, ejecuta en cualquier equipo.

¿Cuáles son los retos de estos nuevos esquemas en el desarrollo de software?

Portabilidad. Los componentes deben poder ser “reubicados” del entorno operativo o, bien, del entorno de trabajo (middleware), e incluso del sistema, sin requerir cambios significativos.

Diversidad de ambientes. La empresa actual cuenta con más de un tipo de infraestructura de hardware/software que debe aprovecharse de manera conjunta en aplicaciones de uso común o empresarial.

Oportunidad en su aparición. Los componentes que se desarrollan deben ser implementados y publicados para su integración a las aplicaciones, en el momento en que son requeridos. Si no contamos con el componente, podemos estar afectando el proceso productivo de la organización.

Reutilización. El diseño de componentes de software, con independencia de los servicios que proveen al “exterior”, permite reforzar el concepto de reutilización, que no significa solamente “cortar y pegar” partes del código, sino que proporciona al integrador de aplicaciones la facilidad de generar soluciones completas de software, aprovechando los beneficios de los componentes disponibles.

El J2EE en la UNAM

Con el uso de este lenguaje, la UNAM, a través de la Dirección General de Servicios de Cómputo Académico (DGSCA), y al amparo de un convenio signado con la Secretaría de Gobernación, colabora con la Dirección General de Registro Nacional de Población e Identificación Personal en el desarrollo de sistemas de alcance nacional utilizando, para ello, la plataforma J2EE.

La DGSCA, durante el desarrollo de los distintos sistemas de apoyo a los programas sustantivos del Registro Nacional de Población, ha buscado que éstos proporcionen soluciones integrales que respondan a las necesidades actuales y futuras del país, diseñándolos de tal forma que interaccionen de forma transparente o, bien, que dejen bases sólidas para la implementación futura de soluciones complementarias.

En este marco, la plataforma de estos proyectos informáticos se diseñó para un funcionamiento multicapas, donde además del manejador de bases de datos y teniendo como capas intermedias un servidor de http y Web Caché, se definieron múltiples capas de aplicación desarrolladas con el estándar J2EE.

Otras ventajas con que cuenta J2EE para que se eligiera como pieza fundamental de este proyecto, son la escalabilidad, la posibilidad de tener la lógica del negocio independiente con los clientes, la alta disponibilidad de las aplicaciones y del acceso a las bases de datos, así como el manejo de clientes delgados y del factor seguridad, entre otros.

Entre los principales beneficios que se han desencadenado con la aplicación de J2EE, encontramos:

  • Enriquecimiento y robustecimiento de soluciones.
  • Generación de componentes reutilizables dentro del ámbito de los distintos sistemas del proyecto, con lo cual se han reducido en un 50% los tiempos de desarrollo proyectados para funcionalidades similares en tres proyectos simultáneos.
  • Detección de mecanismos de seguimiento integrales a los proyectos.
  • Disminución de tiempos de investigación y de elaboración de prototipos.
  • Reducción de tiempos en la replicación del conocimiento.

Para explorar y asimilar al J2EE en este proyecto, DGSCA asignó a diez personas del grupo de desarrolladores del mismo, para conformar un Comité de J2EE, que apoyará a los múltiples proyectos en desarrollo, teniendo como objetivo estratégico formar recursos humanos con un nivel especial de dominio en tecnología J2EE y plataformas de cómputo, a fin de dictar, definir, orientar, validar y generar productos de software y documentales para los sistemas que utilizan el paradigma de orientación a objetos con J2EE.

Oportunidades para el desarrollador

Concluiremos señalando un punto importante, sobre todo, en el tema de los patrones orientados al desarrollo de aplicaciones con tecnología J2EE. El mercado está considerando seriamente, la implementación de soluciones basadas en el paradigma de programación orientada a objetos, en tanto no existe una oferta que satisfaga dichos requerimientos del mercado con un nivel aceptable de calidad y que, a largo plazo, asegure la permanencia de los productos de software y disminuya radicalmente los costos de producción y mantenimiento.

Para más información:

http://www.javaworld.com/

http://www.seguridad2003.unam.mx/seguridad2003/index.php?liga=anuies

http://cl.sun.com/

http://java.sun.com/

Inicio | Contacto |