1064 X Salão de Iniciação Científica PUCRS Projeto de um Medidor de Velocidades de Upload e Download para Dispositivos Móveis Daiane Azevedo de Fraga1, Kleber Hugo Stangherlin1, Paulo Airton Moraes Pereira Junior1, Jorge Guedes Silveira1 (orientador) 1 Faculdade de Engenharia, PUCRS Resumo Este trabalho apresenta a metodologia e os resultados de uma pesquisa realizada no campo de sistemas web para dispositivos móveis. O objetivo é desenvolver um sistema web capaz de medir a vazão de dados nos dois sentidos de uma conexão. O sistema deve ser capaz de operar em dispositivos móveis para, deste modo, aferir a percepção do usuário em relação à qualidade dos serviços oferecidos pela rede. Introdução Os velocímetros, ou medidores de velocidades de upload e download, medem a vazão de dados de uma conexão nos sentidos de ida e volta, conforme definido em (MATHIS, 2001). Eles são utilizados pelos usuários para aferir a qualidade dos serviços presentes na rede (QoS, do inglês, Quality of Service). Contudo, devido à grande demanda de serviços que atuam sobre a rede IP (Internet Protocol), o acesso à web não está mais limitado apenas aos PCs (Personal Computer), ele passou também para as telas dos dispositivos móveis, desde celulares até Smartphones e PDAs (Personal Digital Assistants). Neste cenário, surgiu a necessidade de desenvolver um medidor de velocidade capaz de operar em dispositivos móveis. Entretanto, o desenvolvimento web para estes dispositivos é muito exigente quando comparado ao desenvolvimento para PCs, devido às diversas limitações existentes nos navegadores voltados a estes dispositivos. Pode-se citar como exemplo a incompatibilidade dos navegadores quando interpretam códigos para o PC tradicional, dificuldade na renderização do conteúdo, entre outros. X Salão de Iniciação Científica – PUCRS, 2009 1065 Metodologia Na primeira etapa deste trabalho foi realizada uma pesquisa sobre o desenvolvimento web em dispositivos móveis. Através desta pesquisa observou-se que a maioria dos navegadores para esses dispositivos não possuem suporte ao Flash (tecnologia de desenvolvimento/apresentação de animações e interatividade web). Também foi constatado que deve haver atenção quanto ao uso de JavaScript e CSS (Cascading Style Sheets), visto que estas tecnologias possuem seus recursos limitados em plataformas móveis. Em seguida foram analisados códigos de alguns velocímetros para PCs disponíveis na Internet. Em geral, estes velocímetros possuíam códigos com estruturas simples, utilizando apenas HTML (HyperText Markup Language) e JavaScript. Na maioria das vezes, esses medidores exibem os resultados em uma tela composta por gauges (relógios), que indicam o valor medido com um ponteiro. A interface onde são gerados os resultados geralmente utiliza ActionScript (linguagem de script utilizada em aplicações Flash) ou JavaScript. Com as pesquisas realizadas até o momento, optou-se por utilizar como base o código de um velocímetro desenvolvido apenas em HTML e JavaScript, e distribuído através do site Brandon Checketts sob a licença GPL (General Public License). Este velocímetro trabalha apenas com uma imagem, manipulada dinamicamente pelo JavaScript para gerar as progress bars, que auxiliam na exibição dos resultados (Figura 1). Originalmente, esse velocímetro não funciona em dispositivos móveis, por isso são necessárias diversas mudanças visando adaptar esse sistema às limitações impostas por estas plataformas. Figura 1 (a) Durante o carregamento do teste de velocidade. (b) Apresentação dos resultados. X Salão de Iniciação Científica – PUCRS, 2009 1066 Desta forma, frente às restrições existentes no desenvolvimento com JavaScript voltado à plataforma móvel, não foi possível portar o velocímetro em seu formato original. Estas restrições incluem pontos como a compatibilidade com os principais navegadores, interface de fácil interpretação e moderação no uso da linguagem JavaScript. O velocímetro portado utiliza uma página simples, feita em HTML para exibir os resultados em texto puro, visto que as progress bars foram retiradas. A rotina em Java Script que efetivamente faz a medição foi adaptada às limitações do dispositivo, de modo que ela utiliza o mínimo de recursos, visando principalmente diminuir o tempo de processamento da página no navegador. Foram realizados testes no emulador Device Emulator V2, criado pela Microsoft Corporation. Este emulador disponibiliza um hardware virtual para o desenvolvimento de aplicações voltadas aos dispositivos móveis. Resultados e Conclusões Os testes iniciais realizados no simulador apresentaram valores fora do esperado para a vazão de dados. Entretanto isto se deve a limitações existentes na utilização do emulador em tarefas com temporização crítica. Como trabalhos futuros, podem ser realizados testes em dispositivos móveis reais, uma vez que a página de resultados já é apresentada corretamente. Este trabalho também contribui com a melhor aferição da percepção do usuário final, em relação aos serviços oferecidos pela rede, visto que o medidor desenvolvido disponibiliza uma maneira simples de medir a vazão de dados, por meio de uma página web que é acessível por qualquer navegador compatível. Referências MATHIS, M., ALLMAN, M., A Framework for Defining Empirical Bulk Transfer Capacity Metrics, RFC3148, 2001 Browsers Para Mobile – Nova Era. Disponível em: http://www.tableless.com.br/browsers-para-mobile-novaera. Acesso em: 5 jun. 2009. Brandon Checketts – Open Source Speedtest. Disponível em: http://www.brandonchecketts.com/open-sourcespeedtest. Acesso em: 5 jun. 2009. W3C: Práticas Recomendadas Para Desenvolvimento Web. Disponível em: http://www.mobilelife.com.br/2006/07/03/w3c-praticas-recomendadas-para-desenvolvimento-web. Acesso em: 4 jun. 2009. Microsoft Device Emulator 2.0 -- Standalone Release. Disponível em: http://www.microsoft.com/downloads/details.aspx?FamilyID= dd567053-f231- 4a64-a648fea5e7061303&displaylang=en. Acesso em: 4 jun. 2009. X Salão de Iniciação Científica – PUCRS, 2009