lunes, septiembre 26, 2005

DESCOMPLEJIZANDO A J2EE(Java Enterprise Edition)

Hace un tiempo en que un desarrollador Java podía determinar de un vistazo cuales herramientas tenia que utilizar para realizar un proyecto empresarial. Con el avance en las especificaciones de J2EE, han surgido nuevas propuestas y frameworks(marcos de trabajo) para el desarrollador, que muchas veces pueden llegar a complejizar la simple pregunta: Con que herramientas puedo resolver este proyecto empresarial de Java???

Ben Galbrath llama a este problema el Principio de Incertidumbre del Marco de Trabajo Java”, en el cual, tan pronto como se decide utilizar un marco de trabajo, sale una nueva versión de otro marco de trabajo, así una y otra vez.

La mayor parte del problema viene de no conocer que tecnología cubre mejor cada necesidad, y la mejor forma de hacer esto es imaginar en primer lugar cuales son las necesidades de nuestra aplicación. Una vez hecho esto, la elección de la tecnología apropiada se ve más claramente definida y más fácil de entender.

Si empezamos desde la aproximación tradicional de 3 capas, donde separamos la Presentación, La Lógica de Negocio y el Acceso a Datos en tres niveles de diseño coherentes, entonces podemos identificar cinco tipos esenciales de aplicaciones empresariales Java:

1. Stovepipes: es la tradicional aplicación de una sola base de datos. J2EE no esta diseñado para crear estas aplicaciones simples. Para esto es mejor utlizar marcos de trabajo ligero tal como Struts o MVC(Modelo Vista Controlador).

2. Joyas: es aquella que posee varias capas de presentación(de ahí su nombre, una joya tiene varias caras por donde mirar). Aquí entran las aplicaciones que utilizan XML y los servicios web.

3. Agregadores: son los sistemas construidos sobre múltiples motores de base de datos, juntado datos de diferentes recursos y presentándolos de una forma coherente y amigable. Aquí entran en escena los EJB(Enterprise Java Beans), la API Java Transaction y JNDI(Java Naming and Directory Interface(JNDI), el cual facilita la búsqueda de los recursos.

4. Integradores: son las aplicaciones que conectan colecciones de lógica de negocio mantenidas de forma separada. En este escenario, entran en juego el Java Messaging Service. Es el típico caso de comunicar datos entre dos programas de diferente naturaleza.

5. Aplicaciones Empresariales: es aquella donde se presentan de manera simultanea múltiples facetas de las tres capas(Presentación, Lógica y Acceso a Datos). El sistema empresarial tradicional es aquel que necesita presentar datos de varios recursos en una variedad de formatos utilizando una colección de reglas de negocio que se expanden a través de múltiples aplicaciones, lenguajes o plataformas. Este espacio es donde encontramos la mayor complejidad, y es aquí donde realmente brilla J2EE. Una vez aquì, la aparente "sobre-complejidad" de la Especificación J2EE y sus tecnologías asociadas se vuelven mas apropiadas porque con la complejidad viene el poder (y la flexibilidad).

En conclusión, aunque la tecnología J2EE puede parecer en un principio un bosque de especificaciones, marcos de trabajo, herramientas, para cualquier de los cinco tipos de aplicaciones, se puede utilizar cualquier tecnología J2EE.


Fuente: http://www.programacion.com/java/articulo/jap_j2eemaster_1/