Skip navigation

Buenas, ya más de una vez me preguntaron y varias veces escuche definiciones no del todo exactas acerca de…

qué es Seam?

Antes de escuchar de mis palabras que es Seam, veamos un poco que dice el sitio oficial.( con mis comentarios )

“Seam is a powerful open source development platform…” ( de lo que solo se desprende que es una plataforma =D )

“Seam integrates technologies such as …. “ ( integra tecnologías )

“… has been designed from the ground up to eliminate complexity at both architecture and API levels.”

Si vamos al doc oficial, en la introducción nos cuentan que:

  • [Seam is] One kind of “stuff” ( no nos dice mucho )
  • Integrate JSF with EJB 3.0 ( integración de tecnologías )
  • Integrated AJAX ( integración de tecnologías )
  • Business process as a first class construct ( integración de tecnologías )
  • Declarative state management ( programación declarativa utilizando meta-información )
  • Bijection ( motor de dependency injection ( … que sirve para integrar ) )
  • Workspace management and multi-window browsing ( producto del nuevo manejo de contextos )
  • Prefer annotations to XML ( marketing )
  • Integration testing is easy ( … marketing )
  • y un par de cosas mas…

Entonces, de esto se desprenden algunas ( no todas ) de las características mas importantes: la habilidad de integrar tecnologías de diferentes ámbitos a través de la inyección de dependencias. A eso se le agrega un trabajo mas fino de los contextos, tenemos mas contextos lo que no quiere decir que ocupemos más memoria, si no que todo lo contrario vamos a tener más opciones para elegir donde guardar nuestras instancias y estas van a permanecer en memoria el tiempo indicado. Y por último Seam en ingles significa costura, los que nos da una idea de integración también, si bien una prenda de vestir no está echa solo de costuras ( la tela con la que está echa es mucho mas importante ) forma una parte importante.

 

En mi trabajo me pidieron que describiera JBoss Seam para un cliente que no está seguro de querer utilizar dicha tecnología, mi respuesta fue:

“JBoss Seam es una plataforma de integración de tecnologías que tiene como objetivo facilitar el desarrollo de aplicaciones JEE ( sobre todo aplicaciones web ). Es un proyecto Open Source con una comunidad abierta y aunque cuenta con el respaldo de JBoss, su funcionalidad no está ligada al servidor de aplicaciones de este. El desarrollo de Seam, utilizando JSF y EJB que son las tecnologías con mas soporte, es muy ágil ya que reduce el nivel de configuración necesario para la integración y aprovecha al máximo las ventajas de cada una de las tecnologías haciendo al proyecto mas estable, legible, predecible y mantenible.  

Dado la importancia de las ventajas, Seam principalmente junto a Google Guice y Spring promovieron un nuevo standard ( jsr-299 ) aprobado recientemente por Oracle, IBM, Google, Apache entre otros para ser implementado en la próxima versión de JEE, la JEE 6.” (es GPL, pueden usarlo mientras nombre al autor con una referencia al post :D )

 

Con esto ya deben tener una visión macro de lo que es el producto. Para entrar mas en detalle necesitaría un par de hojas mas y mas tinta porque es bastante extenso, pero les puedo recomendar un libro muy bueno que me ayudo en mis comienzos.

cómo se relaciona Seam con el jsr-299?

Como recién mencioné, Seam junto a Google Guice y Spring, impulsaron la necesidad de ponerse de acuerdo en la manera de como Java utilizaba Dependency Injection, definir el nuevo concepto de ciclo de vida de los “beans” y normalizar los contextos asociados… sobre todo el revolucionario contexto conversacional. Hicieron un muy buen trabajo por cierto.

Seam cumplirá con el jsr-299?

Por supuesto, va a ser la novedad de la tercera versión de Seam y va a estar disponible para JBoss 5 ( aunque seguramente allá algunos hacks para entonces ;) ). Como no sigo los proyectos de Guice y Spring no se que será de estos frameworks, pero no será distinta la postura.

 

Algunos comentarios mas al respecto:

 

  • JBoss y Apache ya tienen una implementación de referencia de Contexto and Dependency Injection (aka jsr-299) en un  estado entre alpha y beta… radioactivo ( busquen en mis post )
  • Wicket no tiene nada que ver con la especificación, como JSF
  • Mas sobre jsr-299 en el próximo posts =)

 

 

Saludos

Fuentes:

 

Anuncios

One Comment

  1. Hola,
    Si sirve de algo, comentaros que estamos haciendo el portal http://www.ruralbook.com totalmente con JBoss Seam, framework que merece muchísimo la pena.


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: