Usando push na web (Comet, Push Ajax e Ajax Reverso), veja como funciona !

26, julho 2011   •   (Não há comentários)   •   Autor: servicos

Esse será meu primeiro post técnico. Não devo me aprofundar muito na parte da programação, pois o objetivo é demonstrar a tecnologia do Push em aplicações Web, de forma prática e simples.

Inicialmente temos que entender como funciona o processo de abertura de uma página Web. Na imagem abaixo fica mais fácil demonstrar o funcionamento das requisições entre os clientes -Navegadores de internet (Browser) – e os servidores – Computadores que hospedam os sites.

cliente-servidor

Para que tenhamos algum conteúdo em nosso navegador, temos que fazer uma requisição ao servidor, ou seja, um pedido. Ao receber esse pedido o servidor processa sua solicitação e responde assim o seu browser mostra o conteúdo. Destaco que esse é o procedimento normal feito pela grande maioria dos sites.

A  tecnologia de Push prevê uma pequena mudança no processo das requisições dos dados. Ela é conhecida por vários nomes, como: Comet, Server Push, Push ajax, Ajax Reverse e muitas outros. Sua implementação tem o intuito de não depender mais das solicitações vindas pelos clientes. O processo parte agora do lado do servidor, agora o servidor que envia os dados sem nenhuma solicitação vinda do cliente, no qual fica só recebendo as remessas enviadas pelos servidores. Observe na próxima imagem.

Temos várias ramificações no instante da implementação da técnica, a seguir listo as maneiras mais utilizadas:

  • HTTP Pull: É a forma mais tradicional, o cliente faz as requisições ao servidor em intervalos muito curtos.
  • HTTP Streaming: Este método consiste em transmissão de dados do servidor com uma conexão HTTP de longa duração.
  • Reverse AJAX: Como o próprio nome diz, é o processo inverso ao Ajax, permitindo ao servidor enviar dados para o cliente quando ocorre um evento, mesmo sem que o cliente tenha feita algum pedido.
  • Long Polling: Não fugindo da ideologia, esse processo é baseado em etapas de assinatura e publicação. O cliente assina um canal, conectando ao servidor, mantendo aberta por uma quantidade definida de tempo. Caso um evento ocorra, o servidor envia os dados para o cliente, caso o cliente tenham seu tempo limite expirado o servidor envia uma requisição para que o cliente se re-conecte.

Pra facilitar o entendimento fiz um vídeo que demonstra como funciona na prática esse tipo de tecnologia.

Note que utilizei vários browser diferentes com objetivo de simular clientes distintas.

O procedimento é simples, a cada alteração feita no servidor, os clientes recebem a informação que algo foi modificado. Destaquei alem disso o log do servidor para asegurar que não há nenhuma requisição feita enquanto o servidor não altera os dados.

O Projeto do vídeo está disponível para download, baixe e se divirta.
Download

Fico por aqui.

Fontes:
http://www.mindfiresolutions.com/Comet-Server-PushReverse-Ajax–Mindfire-Solutions-897.php
http://www.zeitoun.net/articles/comet_and_php/start
http://www.infoq.com/news/2007/07/pushvspull
http://en.wikipedia.org/wiki/Comet_(programming)