logo de javaEn los últimos 8 años, la plataforma Java EE fue creciendo y madurando en forma constante, y actualmente cubre un amplio rango de necesidades para aplicaciones web y corporativas. Además, la plataforma Java EE cuenta con una enorme y activa comunidad y mercado que crean tecnologías adicionales, frameworks y aplicaciones que funcionan sobre la plataforma. Algunas de estas soluciones brindan facilidades que no se encuentran en la plataforma. Otras proveen alternativas a las facilidades de la propia plataforma.

Java Enterprise Edition 6, definida en JCR 316 y planificada para este año, tiene como objetivo central el incorporar y soportar a estas tecnologías adicionales como parte natural del escenario Java EE, y a la vez continuar simplificando la plataforma para poder llegar a más desarrolladores.

Para lograr esto se proponen dos temas centrales para Java EE 6: extensibilidad y perfiles.

Extensiblidad

No sería apropiado para la plataforma Java EE que crezca sin incluir todas las tecnologías interesantes y útiles que desean usar los desarrolladores de aplicaciones. Por esto, es necesario permitir a todas las tecnologías que puedan integrarse limpiamente con los servidores de aplicaciones Java EE. Se añadirán más puntos de extensión y más interfaces de servicios, de manera que distintas tecnologías puedan incorporarse a la plataforma de manera limpia y eficiente, y así resulten tan simples de usar como todas las otras facilidades propias de la plataforma.

Perfiles

Los Perfiles JEE son una novedad que, si bien no implican nuevas características, son un cambio importantísimo para la plataforma. Como explica Roberto Chinnici, miembro del Grupo de Expertos a cargo de Java EE, los Perfiles son la característica principal de Java EE 6.

El alcance de la plataforma Java EE se volvió tan amplio que en parte perdió su foco original. Para re-enfocar la plataforma hacia tipos particulares de desarrolladores y aplicaciones se propondrá la creación de los Perfiles de la Plataforma Java EE.

Los Perfiles referenciarán a la plataforma Java EE, y podrán:

  • incluir un subgrupo de las tecnologías de la plataforma Java EE
  • incluir tecnologías del JCP que no sean parte de Java EE

El primer perfil que se creará será el Perfil Web Java EE, un subgrupo de la plataforma Java EE orientada hacia el desarrollo de aplicaciones web. Este perfil brindará sólo las tecnologías necesarias para la mayoría de los desarrollos web, sin todos los otros servicios de la plataforma.

Con el tiempo se crearán otros perfiles, que aputen a solucionar distintos temas, aunque inicialmente en Java EE 6 incialmente sólo se definirá el Perfil Web.

Las tecnologías que integrarán el Perfil Web todavía no están definidas, aunque hay 2 propuestas concretas (A y B):

(A)(B)Plataforma completa
Servlet 3.0
JSP 2.2
JSR-45
EL 1.2
JSTL 1.2
JSR-250
Servlet 3.0
JSP 2.2
JSR-45
EL 1.2
JSTL 1.2
JSR-250
Servlet 3.0
JSP 2.2
JSR-45
EL 1.2
JSTL 1.2
JSR-250
EJB 3.1 (Lite)
JTA 1.1
JPA 2.0
JSF 2.0 *
Web Beans 1.0 *
EJB 3.1
JTA 1.1
JPA 2.0
JSF 2.0
Web Beans 1.0
JAX-RS 1.0
Connectors 1.6
JAX-WS 2.2
JAXB 2.2
JSR-109 1.2
JSR-181 1.1
JMS 1.1
JAF 1.1
JavaMail 1.4
JSR-115
JSR-196
JSR-88 1.2
JSR-77 1.1
JAX-RPC1.1
JAXR 1.0

La propuesta A define un grupo mínimo de tecnologías a soportar; cualquier otra necesidad se podrá agregar por el desarrallador, aunque no será parte del perfil (recordemos el punto de extensbilidad de esta misma especificación).

Por otro lado, la propuesta B es más completa, aunque tiene varios puntos de controversia. Por un lado, la inclusión de JSF 2.0 y WebBeans está en discusión, ya que son tecnologías que serán extensibles (y, algunos argumentan, sería innecesario forzarlas en este Perfil). EJB (Lite) se refiere a la posiblidad de implementar sólo un subgrupo de la especificación de EJB 3.1. Todos estos temas están en plena discusión actualmente, y aún no hay definiciones.

Los perfiles son un cambio importante en la plataforma, haciendo incapié en su naturaleza modular (que se había perdido con el tiempo, al hacer de la plataforma un conjunto monolítico de servicios obligatorios). Así, servidores como Tomcat podrán ser "Java EE" compatible dentro del Perfil Web.

Y más...

Java EE 6 tendrá más novedades, como ser el entierro definitivo para los EJB-CMP (una Mala Idea desde el principio, hoy reemplazado con mucho más éxito por Java Persistence), más soporte para aplicaciones SOA, integración con caracterísitcas de Java SE 6 y, como ya vimos, los nuevos EJB 3.1

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw