JSR 299 al rescate

29.02.2008 @ 14:02 \02\Fri, 29 Feb 2008 14:02:50 +0000\50 +0000 UTC

Este post es un poquiiiito técnico para los estándares de PaQueSepas.

En este post trato de dar el background de manera muy breve de los motivos para la JSR 299. Por lo que la información aquí está muy resumida respecto a la funcionalidad de los frameworks mencionados. Si tienen preguntas, háganlas en los comentarios.

Pues algunos de ustedes sabrán que hacer aplicaciones web en Java no es un proceso muy mmmm straightforward que digamos. Uno tiene que hacer malabares con múltiples frameworks para poder simplificar de manera significativa el proceso de desarrollo.

Uno de los frameworks más usados es Hibernate. Hibernate es un framework para la capa de persistencia y básicamente te permite mapear las bases de datos relacionales a objetos. Hibernate, con ayuda de otras librerías, se encarga del tedioso trabajo de mantener conexiones y simplifica enormemente el trabajo en la capa de persistencia. Más aún, en mi humilde opinión, si es usado con JPA (Java Persistence API). Aunque Hibernate no es un framework exclusivo de una aplicación web, es bastante usado en este tipo de aplicaciones ya que resuelve de manera eficiente el problema de la capa de persistencia.

Bueno, pues ahí está ya la capa de persistencia. Ahora falta la capa de presentación. En esta parte hay bastantes frameworks como Struts, Tapestry, Spring MVC y JSF. Este último siendo el estándar. Aún así, JSF es bastane incogruente en el sentido de que los desarrolladores tienen que hacer uso extenso de anti-patterns para hacer funcionar JSF de acuerdo a sus necesidades. Además confiugrar JSF para que funcione con EJB (Enterprise Java Beans) es un verdadero pain in the ass.

Pero entonces llegó SEAM al rescate. SEAM es un framework para aplicaciones web en Java desarrollado por el mísmisimo Gavin King, quien fue el que desarrolló Hibernate. Básicamente lo que hace SEAM es la integración de mucha funcionalidad y servicios, por lo que el desarrollador solamente se tiene que ocupar de implementar la aplicación en sí, sin preocuparse de aspectos muy técnicos. SEAM ofrece por ejemplo el servicio de la capa de persistencia a través de Hibernate (obvio). Además ofrece nuevos contextos para aplicaciones. Actualmente en las aplicaciones web existen contextos como el de Session, Application, Request, etc. pero ninguno de ellos es adecuado para manejar requests de AJAX. Es por eso que SEAM introduce el contexto de converstaion.

Adicionalmente SEAM ofrece funcionalidad para seguridad. Es decir, resuelve problemas típicos de las aplicaciones web como acceso a funcionalidad de la aplicación dependiendo del rol del usuario. Con SEAM es posible también usar EJB o simple POJO (Plain Old Java Objects). SEAM puede ser usado en un servidor de aplicaciones como JBOSS o en un simple Servlet Container como Tomcat o Jetty. Además se integra con Spring.

En fin, como ven SEAM pareciera ser la respuesta a las súplicas de miles de desarrolladores de aplicaciones web en Java. Claro que tienen que tomar en cuenta que estarían dependiendo demasiado en un framework (cosa que en estos días pareciera no ser tan malo) y que el framework en sí mide aproximadamente 120 Mb.

Ustedes pensarán: Bueno, si SEAM es tan bueno, por queélos seniores de JAVA no hacen algo parecido. Por qué no integran esa funcionalidad de usar EJB en aplicaciones web? Por qué no modifican JSF de manera que pueda ser integrado con DI (Dependency Injection). Por qué no implementan JSF de manera que soporte Annotations? Pues la respuesta a sus preguntas es nada más y nada menos que JSR 299 también conocida como WebBeans.

Curiosamente el lider de la especificación es, una vez más, Gavin King y se pretende que se integre a J2EE 5 y se aniadirá más funcionalidad en J2EE 6.

Si todo sale como lo planeado (que en el mundo del software es algo difícil), podría suceder que desarrollar aplicaciones web con Java sea tan fácil y rápido que con PHP y/o Ruby on Rails

Pueden leer la especificación aquí.

One Response to “JSR 299 al rescate”


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: