WebSockets e a sua aplicação no mundo Web - Almeida, Pedro Manuel Oliveira (2020)
Hoje em dia as aplicações são desenhadas e implementadas de forma a que sejam constantemente conectados ao mundo web. Existe um crescimento exponencial da utilização de aplicações web atualmente, e à medida que este crescimento vai acontecendo, novos e inovadores requisitos são enunciados, com o avanço tecnológico. As aplicações web desenvolvidas hoje em dia, baseadas em WebServices (HTTP), genericamente apresentam falhas de comunicação e sincronização entre componentes numa arquitetura cliente-servidor. Problemas de sincronização esses que representam lacunas na comunicação existente entre componentes, atrasos na entrega de mensagens, ou ainda excesso de bytes transferidos, o que leva ao mau desempenho de uma aplicação web, e ao possível abandono por parte dos seus utilizadores por insatisfação. Grande parte destas aplicações são desenvolvidas utilizando WebService APIs, que têm por base o protocolo HTTP. Este protocolo, apesar das suas características o tornarem versátil na sua utilização em aplicações web, existem mecanismos (em determinados contextos) que não são tão eficientes, nomeadamente os utilizados em aplicações web que necessitem de atualizações de dados em tempo real. Nesse sentido foi desenvolvido um protótipo implementando um protocolo diferente – WebSockets – de forma a tentar obter resultados sobre o desempenho do mesmo e que provasse ser a abordagem a seguir na tentativa de solucionar os problemas de comunicação existentes atualmente no mercado das aplicações web. Esses resultados derivam de métricas definidas através de estudos e artigos que definem formas e tipos de testes que se executam nas aplicações web para obter relatórios de desempenho. Após análise das características do protocolo e dos resultados obtidos através do protótipo desenvolvido, conclui-se que o protocolo WebSockets é efetivamente mais eficiente do que o utilizado em WebServices (HTTP), visto que possui mecanismos internos que permitem atingir menores tempos de resposta médios de pedidos efetuados entre cliente-servidor, e também menos dados transferidos.