Minuto a minuto

13

Click here to load reader

Transcript of Minuto a minuto

Page 1: Minuto a minuto

Minuto a Minuto

Danilo Sousa ~ [email protected]

Page 2: Minuto a minuto

Solução atual

Page 3: Minuto a minuto

LUMIS + HTML Pooling

● Fornecedor envia, via FTP, o XML da narração;

● Extract, transform and load ( ETL ) do LUMIS faz o parse o XML;

● O browser atualiza o conteúdo a cada X segundos;

● A Redação pode alterar ou inserir algum item;

*

Page 4: Minuto a minuto

Problemas

● Demora na atualização;

○ XML parseado pela ETL;

○ Alterações refletidas browser;

● LUMIS

○ Fila de geração página;

○ Troca de URL do jogo;

Page 5: Minuto a minuto

Solução Proposta

Page 6: Minuto a minuto

WebSockets

Node.js

Redis

Page 7: Minuto a minuto

WebSockets

● Padrão W3C / IETF;

● Conexão bi-direcional;

● Funciona através de Proxy / Firewall;

● Menor overhead que as requisições HTTP / Ajax;

● Atualizações em Tempo Real;

● Suporta: Crossdomain, Autenticação, SSL;

Page 8: Minuto a minuto

Node.js

● V8 Engine○ Javascript e C / C++ Addons;

● Orientado à Eventos ( Assíncrono );

● Non-blocking IO;

● CommonJS modules;

● Comunidade e desenvolvimento bastante ativo;

● Facilmente escalável;

Page 9: Minuto a minuto

Redis

● Advanced key-value store;

● Muito rápido: ~5k GET/seg;

● Diversos tipos de dados:○ lists, hash, expires, sorted sets;

● Em memória com persistência:○ Disco, snapshots, append-only log, VM;

● Cluster e Replicação dos dados;

● Publish / Subscribe;

Page 10: Minuto a minuto

Considerações sobre Node.js

● Bem recente ( stable v0.4.1 );

● Desenvolvimento bastante ativo;

● Pouco testado em produção;○ 75 empresas e 83 projetos *

● Nested callback problem;

* https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node

client.open(function(err, p_client) { client.dropDatabase(function(err, done) { client.createCollection('key', function(err, collection) { collection.insert({ 'key': 666 }, function(err, docs) { [ code goes here ] }); }); });});

Page 11: Minuto a minuto

Publicador

RedisFornecedor

Parser

API

Usuários

Socket.io

Socket.io

WebSocket

webservice

webservice

Usuários

Usuários

XM

L

Node.js

PubSub

webse

rvice

Atualizações da Redação

Backend Node.js

Page 13: Minuto a minuto

Perguntas?