ICEfaces

Revisión del 10:09 20 jun 2011 de Joserolando1401ad jc.hlg (discusión | contribuciones) (Página creada con '{{Ficha Software |nombre= ICEFaces Framework |familia=Java Server Faces |imagen= icefaces.jpg |tamaño= |descripción= |imagen2= |tamaño2= |descripción2= |creador= |desarrol...')
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
ICEFaces Framework
Información sobre la plantilla
Parte de la familia Java Server Faces
Icefaces.jpg
Versiones1.7.0
Última versión estable1.6
Sistemas Operativos compatiblesMultiplataforma
Idiomainglés

Es un framework de código abierto para construir aplicaciones web con AJAX tipo RIA (Rich Internet Application). Permite al programador incluir una serie de Ajax-tags en sus JSP o xhtml de tal manera que el código Ajax es generado por el propio framework automáticamente. ICEFaces aisla completamente al desarrollador de AJAX. No hacen falta etiquetas especiales: se ponen los controles en la pantalla e ICEFaces se encarga de enviar sólo la información necesaria entre cliente y servidor. Es decir, ya no se envían los formularios a la antigua usanza, en un POST de HTTP, sino que sólo se envían los cambios que ha hecho el usuario del cliente al servidor, y los cambios en la pantalla del servidor al cliente. Además, con la inclusión de la librería Scriptaculous en ICEFaces, se dispone de arrastrar+soltar y de efectos (fundidos, parpadeos, apariciones,...) para los controles.

Surgimiento

En el entorno de integración con AJAX han surgido varios frameworks (Prototype, DWR, GWT,...) que, si bien aportaban facilidad de uso, no acababan de convencer a la comunidad de programadores. Algunos porque sólo eran clientes Javascript, otros porque, si bien integraban la parte de servidor con la de cliente, no eran realmente frameworks, sino librerías de comunicación. Además, no estaba claro cómo juntarlos con la arquitectura JEE. Con la llegada de JSF (Java Server Faces), se empezó a vislumbrar posibilidades de integración. Si JSF permitía al desarrollador aislarse de la arquitectura web y ver sus aplicaciones como algo parecido a una aplicación de escritorio, debería entonces ser sencillo utilizar AJAX para hacer estos controles más funcionales. Y así fue, empezaron a aparecer AJAX4JSF, ICEFaces, Tobago,... Sin embargo, de estas propuestas, ICEFaces fue una de las más acogidas ya que aísla completamente al desarrollador de AJAX. No hacen falta etiquetas especiales: se ponen los controles en la pantalla e ICEFaces se encarga de enviar entre cliente y servidor sólo la información necesaria.

Elementos de la Arquitectura

  1. Persistent Faces Servlet: Las URLs con extensión ".iface" son mapeadas por el servlet 'Persistent Faces Servlet'. Cuando se realiza una petición de la página inicial en la aplicación, este servlet se hace responsable de la ejecución del ciclo de vida JSF para petición asociada.
  2. Blocking Servlet: Se encarga de la gestión de todas las peticiones de bloqueo y no-bloqueo después de las primeras páginas.
  3. D2D ViewHandler: Se encarga de establecer el Direct-to-DOM, incluyendo la inicialización de la 'DOM Respuesta Writer'. El ViewHandler también invoca al Parser para analizar el árbol de componentes JSF en la página inicial.
  4. Parseador D2D: Responsable del montaje de un componente de documentos JSP. El Parser ejecuta la etiqueta de JSP de procesamiento del ciclo de vida con el fin de crear el árbol, pero lo hace sólo una vez para cada página. La compilación del estándar JSP y el proceso de análisis no es compatible con ICEfaces.
  5. DOM Response Writer: Se encarga de la escritura en el DOM. También inicia la serialización DOM para la primera prestación, y desbloquea el DOM Updater para actualizaciones incrementales.
  6. DOM Serializer: Responsable de la serialización del DOM de la página inicial.
  7. DOM Updater: Se encarga de conjuntar las de las 'DOM mutations' en una única actualización DOM.
  8. Component Suite: Ofrece un conjunto de componentes 'rich JSF' con influencia AJAX y características del puente, proporcionando los elementos básicos para aplicaciones ICEfaces.
  9. Client-side AJAX Bridge: Responsable de la actualización DOM en curso generada por la solicitud y la respuesta del proceso. También es el encargado de centrar la gestión y de presentar el proceso.

Carácterísticas

  1. ICEfaces es considerado un framework que integra funcionalidad AJAX y permite a los desarrolladores Java EE crear aplicaciones RIA (Rich Internet Applications) de una manera sencilla.
  2. Las aplicaciones desarrolladas en ICEfaces no necesitan plugins de navegador o applets para ser vistas.
  3. Estas aplicaciones están basadas en JavaServer Faces (JSF), así que permite el desarrollo de aplicaciones Java EE con la posibilidad de utilizar de forma fácil desarrollos basados en Javascript.

Ventajas e Inconvenientes con similares

Las ventajas del uso de ICEfaces para enriquecer las aplicaciones web de escritorio son numerosas. Debido a la cantidad de frameworks existentes, se procede a mostrar una serie de características diferenciadoras respecto a otros frameworks:

  1. Experiencia de usuario enriquecedora: crea una experiencia de usuario superior además de utilizar las ventajas de aplicaciones Java EE. Esto se consigue gracias a los componentes que vienen incluidos dentro de la distribución de ICEfaces.
  2. Está basado en código abierto: ICEfaces es un framework basado en Ajax bajo licencia de código abierto. La comunidad de desarrolladores de ICEfaces incluye cerca de 20.000 desarrolladores en 36 países.
  3. Basado en estándares: ICEfaces es una solución basada en Java, así que los desarrolladores pueden continuar trabajando de la misma forma que lo hacen. Hay multitud de plugins desarrollados para que ICEfaces sea integrado con multitud de IDEs Java.
  4. El Ajax es transparente: ICEfaces aporta a los programadores un desarrollo con mínimo esfuerzo en la sección JSF.
  5. Compatibilidad: ICEfaces soporta todos los servidores de aplicaciones, aporta plugins para los distintos IDEs y efectos javascript de librerías de cualquier empresa que haya desarrollado Ajax del mercado.
  6. Seguridad: ICEfaces es una de las soluciones Ajax más seguras del mercado. Es compatible con SSL, previene los scripts de cross-site, inyección de código malicioso. Es una solución Ajax basada en servidor, la cual no utiliza datos de usuarios, además es especialmente efectivo en la prevención de fallos en los submits de los formularios y el ataque SQL por inyección.
  7. Escalabilidad y clustering: El servidor asíncrono HTTP (AHS) aporta una alta escalabilidad para aplicaciones ICEfaces y pueden ser utilizadas por un gran número de usuarios concurrentes, además aporta despliegue en clúster (un requisito crítico que algunas soluciones no aportan).
  8. Carga de páginas incremental con edición de secciones y sin recargas de página completas.
  9. Se preserva el contexto del usuario durante la actualización de la página, incluyendo posición del foco y scroll.
  10. En aplicaciones de tiempo real, las recargas de páginas son asíncronas.

En una comparativa con un producto similar, se opta por compararlo con Rich Faces. Es la competencia de Rich Faces, tiene tantos o más componentes que ésta y visualmente tiene la misma calidad. La documentación posiblemente es peor que la de RichFaces. El modo en que RichFaces hace funcionar Ajax permite interactuar con otras librerías e incluso añadirle Ajax a componentes que no lo tuvieran, mientras que ICEfaces limita a trabajar con sólo aquellos componentes para los que da soporte.

Integración con IDEs

ICEfaces aporta integración básica con una alto número de interfaces de desarrollo adaptados por la comunidad de desarrolladores. Destacamos los siguientes:

  1. Eclipse (Web Tools Platform + JSF tools).
  2. Sun NetBeans.
  3. MyEclipse Enterprise Workbench.
  4. BEA Workshop Studio 3, Workshop Studio for JSF.
  5. Oracle JDeveloper 10g Studio Edition.

Enlaces Externos

  • ICEFaces.org [1].

Fuentes

  • ICEFaces. [citado 2011 junio,20]; Disponible en:[2].
  • ICEFaces Component Suite. [citado 2011 junio,20]; Disponible en:[3].
  • ICEFaces 1.7. [citado 2011 junio,20]; Disponible en:[4].
  • ICEFaces 1.8. Release Notes [citado 2011 junio,20]; Disponible en:[5].
  • Introducción a ICEFaces. [citado 2011 junio,20] Disponible en:[6].
  • Rich Faces y ICEFaces. [7].