martes, 20 de agosto de 2013

Real time web ¿cambio en el desarrollo web?

Desde los noventa los desarrolladores web hemos tenido que pelearnos con el problema que supone trabajar en un entorno desconectado como el web. Las comunicaciones son en una única dirección y puntuales.
Bajo el nombre de comet se enumeran una serie de técnicas que permiten simular comunicaciones del servidor al cliente como son: polling, longpolling, forever frame, etc
El IETF propone el protocolo websockets, que permite una comunicación bidireccional entre el servidor y el navegador. Y el W3C decide incluir el estándar en el HTML5, en el momento de escribir estas líneas se encuentra en borrador
Sin estar relacionado con el protocolo propuesto por el IEFT, los chicos del W3C también definen un mecanismo para que el servidor envíe información al servidor: Server-Sent Events, que como su propio nombre sugiere, permite suscribirse desde un navegador a un evento que se notificará desde el servidor.
Estos cambio provocará más tarde o más temprano un cambio en la forma de desarrollar aplicaciones web. Imaginaos lo que puede significa que desde los navegadores nos podamos suscribir a eventos que ocurren en el servidor.
Las funcionalidades y tipos de aplicación aumentan. Juegos, sistemas de monitorización y sí, también las aplicaciones de gestión se verán beneficiadas con estas nuevas características. Podemos implementar otros bloqueos que no estén basados en el bloqueo optimista. Imaginad que a la hora de comprar entradas o el asiento en un avión podemos ver en tiempo real los asientos que se compran o los que están evaluando en comprar otros usuarios.
A la hora de implementar sistemas de soporte al usuario, será mucho más fácil hacer un sistema de chat u otros sistemas colaborativos.
Supongo que todas las plataformas de desarrollo web ofrecerán su api para que no tengamos que programar esto a bajo nivel.
En .Net tenemos SignalR. Originalmente este proyecto opensource fue desarrollado por dos empleados de Microsoft (Damian Edwards y David Fowler) aunque después de un par de años se convertido en un producto soportado oficialmente por Microsoft. Este producto que es utilizado, mantenido y financiado por la compañía de Redmond, sigue estando hospedado en GitHub, utiliza TeamCity como servidor de integración continua, incluso dicen en la documentación que funciona con Mono. Es decir que no están atados a tecnologías Microsoft.
SignalR evalúa qué métodos puede utilizar para habilitar la comunicación bidireccional entre el navegador y el servidor que lo está ejecutando. Además ofrece un api de alto nivel para que no nos preocupemos de los que pasa por debajo. Es realmente sencillo de utilizar y existen muchos ejemplo de uso como:
-JabbR: un chat online
-ShootR: un arcade de naves multijugador
Estamos ante las primeras fase de la web bidireccional, HTML5 con sus websockets y los server-sent events no tardarán en llegar, mientras que las técnicas comet hace tiempo que están entre nosotros. Únicamente hace falta un poco de creatividad para sorprender a los usuarios y sacar provecho a este nuevo paso evolutivo en el desarrollo web. Estamos a punto de poder ofrecer a los usuarios la ineractividad que se ofrecía en los 90 con las aplicaciones de escritorio

No hay comentarios:

Publicar un comentario