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.
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:
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)