Post on 08-Jun-2015
description
HTML5 Taller 2011
Aplicaciones Web en tiempo real
DEM
O¿Qué es una aplicación
web en tiempo real?
• http://www.lightstreamer.com/demo/StockListDemo/
Comunicación bidireccional entre el servidor y los usuarios
aa b
b
Servidor Web
1 Antecedentes
Limitaciones de la Web actual
Pull (Así funciona la Web)Servidor Web
Petición
Navegador Web
Respuesta
Push (Lo que necesitamos)Servidor WebNavegador Web
DatosEvento
Desde hace algunos años existen soluciones pero son poco eficientes…
Servidor Web
Ajax (Polling)
peticiónrespuesta
petición
respuesta
petición
respuesta
• Script de prueba para Apache 2.2 con PHP 5.3
<?phpsleep(3);echo «hola mundo»;?>
Simulamos con un script, una petición que toma3 segundos en ejecutarse.
1 37 73 1091451812172532893253613974334695055415776136496857217577938298659019379730.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
10.0
Tiempo (s)
Los servidores web tienen un número limitado de procesos…
Comportamiento de Apache 2.2 con 1000 peticiones, 100 de ellas concurrentes
Peticiones
2 Servidores tipo Comet
Misma infraestructura, diferente filosofía
Con los servidores tipo Comet nos acercamos mucho más a la solución ideal…
Servidor tipo Comet
Long pollingpetición
respuesta
petición
respuesta
petición
Algunos servidores Comet / Websockets…
Python Java .Net Ruby Javascript
TornadoTwisted…
CometdProtcoloBayeux
GlassFishActiveMQ…
WebSync Protocolo Bayeux
Thin/Faye protocolo Bayeux
Node.js*Es posible ejecutarlo en Windows Azure
Open Source Open Source Comercial Open Source OpenCource
Acerca de Node.js
• Basado en el motor Javascript Google V8
• Todas las operaciones son asíncronas
• Uno de los servidores más rápidos del mercado
• Altamente eficiente• Ideal para la creación de
aplicaciones en tiempo real
En Node.js todas las operaciones son asíncronas. No usa procesos…
Comportamiento de Node.js con 1000 peticiones, 100 de ellas concurrentes
1 41 81 1211612012412813213614014414815215616016416817217618018418819219610.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
10.0
ApacheNode
Tiempo (s)
Peticiones
Tiempo (s)
3 WebSockets con HTML5
El futuro
Con el API de WebSockets se crea un canal bidirecional…
Servidor con soporte paraWebSockets
respuesta
respuesta
inicio
4 Ejemplos taller con Node.js y Socket.io
El futuro
@tiempor3al
Comunidad HTML5@programashtml
Gracias