Publicado ItsNat v1.3: nuevo modo sin estado en el servidor
lunes, junio 10, 2013 at 9:41PM
jmarranz in ItsNat, SEO, SPI, ajax, java, web

He publicado la versión 1.3 de ItsNat, Natural AJAX

ItsNat es un framework AJAX con licencia LGPL orientado al desarrollo de aplicaciones y sitios web Single Page Interface SEO compatibles, dentro de la filosofía del Single Page Interface Manifiesto

Hasta la versión v1.2 el funcionamiento normal era sólo con estado en el servidor, básicamente ItsNat simula un navegador Java W3C en el servidor, el servidor guarda una copia del DOM de la página del usuario tal que los cambios en el DOM servidor se propagan automáticamente al cliente para sincronizarlo con el servidor a través de código JavaScript generado al vuelo normalmente como resultado de peticiones AJAX (o script).

El resultado es una programación web basada en plantillas HTML puro y código Java W3C DOM, básicamente el mismo tipo de programación que harías con JavaScript en el cliente usando las APIs W3C pero en Java y en el mismo espacio de memoria en donde se encuentran los datos a gestionar, es decir en el servidor.

A pesar de las optimizaciones de memoria en el servidor (cacheado de partes estáticas no instanciadas como DOM, posibilidad de eliminar subárboles que ya no se van a usar etc) el modo normal necesita memoria en el servidor asociada a la página del usuario, siendo recomendable el uso de sticky sessions (server affinity) que viene a ser que las requests del usuario vayan siempre al mismo servidor aunque también la compartición de sesiones está soportada.

En el modo stateless no hay tal copia del DOM de la página cliente en el servidor, con ciertos datos enviados al servidor via AJAX es posible reconstruir parcialmente el estado del cliente que va a ser modificado en el servidor, generando el JavaScript DOM correspondiente a las modificaciones, pero ese estado no es salvado permanentemente en el servidor por lo que la aplicación ItsNat stateless es escalable a múltiples nodos sin datos compartidos en la sesión del usuario y sin necesidad de afinidad de servidor.

El funcionamiento stateful o stateless tiene poca relación con el soporte de SEO, pues el soporte de SEO en ItsNat tiene más que ver con el modo fast-load, por lo que este nuevo modo stateless también permite el desarrollo de sitios web SEO compatibles. 

El objetivo final es facilitar el desarrollo de sitios web Single Page Interface SEO compatibles stateless céntricos en el servidor. 

Enlaces:

Web del proyecto

Feature Showcase

Ejemplo stateless 1

Ejemplo stateless 2 (con componentes)

Sitio web demo stateless SEO compatible  (código fuente)

 

Article originally appeared on javaHispano (http://www.javahispano.org/).
See website for complete article licensing information.