18
HTML5 Taller 2011 Aplicaciones Web en tiempo real

Aplicaciones en tiempo real con nodejs y html5

Embed Size (px)

DESCRIPTION

presentación usada en el taller realizado el 22,23 y 26 de Septiembre de 2011 en las instalaciones de @telmexhub por parte de la comunidad www.programadoreshtml.mx

Citation preview

Page 1: Aplicaciones en tiempo real con nodejs y html5

HTML5 Taller 2011

Aplicaciones Web en tiempo real

Page 2: Aplicaciones en tiempo real con nodejs y html5

DEM

O¿Qué es una aplicación

web en tiempo real?

• http://www.lightstreamer.com/demo/StockListDemo/

Page 3: Aplicaciones en tiempo real con nodejs y html5

Comunicación bidireccional entre el servidor y los usuarios

aa b

b

Servidor Web

Page 4: Aplicaciones en tiempo real con nodejs y html5

1 Antecedentes

Limitaciones de la Web actual

Page 5: Aplicaciones en tiempo real con nodejs y html5

Pull (Así funciona la Web)Servidor Web

Petición

Navegador Web

Respuesta

Page 6: Aplicaciones en tiempo real con nodejs y html5

Push (Lo que necesitamos)Servidor WebNavegador Web

DatosEvento

Page 7: Aplicaciones en tiempo real con nodejs y html5

Desde hace algunos años existen soluciones pero son poco eficientes…

Servidor Web

Ajax (Polling)

peticiónrespuesta

petición

respuesta

petición

respuesta

Page 8: Aplicaciones en tiempo real con nodejs y html5

• 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.

Page 9: Aplicaciones en tiempo real con nodejs y html5

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

Page 10: Aplicaciones en tiempo real con nodejs y html5

2 Servidores tipo Comet

Misma infraestructura, diferente filosofía

Page 11: Aplicaciones en tiempo real con nodejs y html5

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

Page 12: Aplicaciones en tiempo real con nodejs y html5

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

Page 13: Aplicaciones en tiempo real con nodejs y html5

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

Page 14: Aplicaciones en tiempo real con nodejs y html5

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)

Page 15: Aplicaciones en tiempo real con nodejs y html5

3 WebSockets con HTML5

El futuro

Page 16: Aplicaciones en tiempo real con nodejs y html5

Con el API de WebSockets se crea un canal bidirecional…

Servidor con soporte paraWebSockets

respuesta

respuesta

inicio

Page 17: Aplicaciones en tiempo real con nodejs y html5

4 Ejemplos taller con Node.js y Socket.io

El futuro

Page 18: Aplicaciones en tiempo real con nodejs y html5

@tiempor3al

Comunidad HTML5@programashtml

Gracias