O Push é uma tecnologia capaz de oferecer comunicação em tempo real com dispositivos móveis, característica desejada em aplicativos móveis e essencial em plataformas de gestão de dispositivos (MDM – Mobile Device Management).
O M3 da Mobiltec oferece o M3 Mobile Push em todas as plataformas móveis hoje suportadas, a saber Windows Mobile, Android, iOS e Windows Phone 7. Diversas são as estratégias para implementação do mecanismo de Push (já as comentei neste post), cada uma com suas vantagens e desvantagens.
M3 Mobile Push no Windows Mobile e Android
No produto M3, a estratégia escolhida para implementação do mecanismo de Push para as plataformas Windows Mobile e Android foi o Comet, modelo caracterizado pela manutenção de uma conexão HTTP de longa duração entre dispositivo e servidor de mobilidade.
Essa abordagem oferece diversos benefícios para o dispositivo e para o servidor de mobilidade:
- Facilidade de comunicação: Como o dispositivo inicia a conexão HTTP com o servidor, o acesso ao dispositivo não está sujeito a limitações de conectividade, como bloqueio de firewall, redes NAT privadas e outros.
- Economia de comunicação: A técnica de Pull, de fácil implementação, exige muito tráfego de dados pois realiza comunicação com o servidor constantemente. A comunicação em dispositivos móveis é um recurso ainda caro, e neste sentido o Comet apresenta grande vantagem, pois a manutenção de conexão com timeout longo requer pouco tráfego de dados. O segredo para a minimização da comunicação é justamente o controle minucioso dos timeouts das conexões HTTP, que requer análise de características de rede e de particularidades das operadoras de telecomunicação.
- Escalabilidade do servidor de mobilidade: Por ser um processo passivo de comunicação, a técnica do Comet exige menos recursos do servidor de mobilidade. Enquanto na técnica de Comet o dispositivo realiza conexões com o servidor em ciclos de tempo prolongados (tipicamente minutos ou dezenas de minutos), um mecanismo ativo de pulling precisa realizar conexões em ciclos curtos, tipicamente segundos. Isso significa que um servidor baseado em Comet sofre menor carga e, assim, pode atender um volume de dispositivos muito superior.
- Característica on-line: Com a técnica de Comet, o M3 entrega a notificação ao dispositivo instantaneamente (desprezando-se tempo de comunicação de rede), pois o canal está sempre pronto para envio da mensagem. Para se obter tempo de entrega de notificações próximo ao real em mecanismos ativos de pulling, são necessários ciclos muito curtos de verificação, o que agride o uso de conexão e a escalabilidade da solução.
Considerações adicionais sobre uma solução de Push
Alguns aspectos são importantes para uma boa solução de Push, que aprendemos durante o processo de pesquisa e desenvolvimento do M3 Mobile Push.
A conexão HTTP é mantida pelo dispositivo. Só que um dispositivo móvel pode sofrer oscilações e quedas de sinal de rede, ou mesmo mudanças automáticas de rede, por exemplo saindo de um roteador wi-fi para outro. É importante tratar as situações de erro para que o dispositivo não mantenha referência para uma conexão HTTP de longa duração inválida, acarretando na incapacidade de o servidor enviar notificações ao mesmo.
No que se refere à escalabilidade da solução, é preciso muito cuidado com o uso de recursos do servidor. Se for implementada uma solução simplista com conexões HTTP síncronas, o servidor manterá um fluxo (thread) em execução para cada conexão aberta. E com o crescimento do número de dispositivos, a solução fica sobrecarregada. No caso do M3 Mobile Push, são utilizadas requisições HTTP assíncronas, de forma que, independentemente do número de dispositivos com conexão de Push ativa com o servidor, o número de fluxos de tratamento destas conexões é fixo.
O Push em outras plataformas suportadas pelo M3
Os sistemas iOS, da Apple, e Windows Phone 7, da Microsoft, oferecem sistemas e serviços nativos para implementação do mecanismo de Push. Em postagens futuras iremos abordar estes mecanismos com detalhe.
Escrito por Eduardo Klein



