Analysis of GraphQL performance: a case study

Atualmente os aplicativos da Web têm um papel relevante, com um grande número de aparelhos conectados à Internet e os dados são transmitidos entre plataformas distintas a um ritmo sem precedentes. Vários sistemas e plataformas de tipos diferentes, como web e móveis, exigem que os aplicativos se adap...

Full description

Bibliographic Details
Main Author: Landeiro, Mafalda Isabel Ferreira (author)
Format: masterThesis
Language:eng
Published: 2020
Subjects:
Online Access:http://hdl.handle.net/10400.22/15946
Country:Portugal
Oai:oai:recipp.ipp.pt:10400.22/15946
Description
Summary:Atualmente os aplicativos da Web têm um papel relevante, com um grande número de aparelhos conectados à Internet e os dados são transmitidos entre plataformas distintas a um ritmo sem precedentes. Vários sistemas e plataformas de tipos diferentes, como web e móveis, exigem que os aplicativos se adaptem de maneira rápida e eficiente às necessidades dos consumidores. Em 2000, o Representation State Transfer (REST) foi apresentado e foi rapidamente adotado pelos desenvolvedores. No entanto, devido ao crescimento dos consumidores e às necessidades distintas, este estilo arquitetónico, na forma como é utilizado, revelou algumas fragilidades relacionadas com o desempenho e flexibilidade das aplicações. Estas são ou podem ser endereçadas com GraphQL. Apesar de ser uma tecnologia recente, já é usada por grandes empresas como Facebook, Netflix, GitHub e PayPal. Recentemente, uma plataforma do INESC TEC, denominada IRIS, enfrentou os mesmos problemas de desempenho e a possibilidade de adoção do GraphQL foi considerada. Várias alternativas com GraphQL foram estudadas e analisadas de forma a verificar se poderiam beneficiar o IRIS em termos de desempenho e flexbilidade. Uma das conclusões deste estudo é que todas as alternativas testadas revelam, no geral, melhores resultados de desempenho, tendo em consideração o tempo de resposta e o tamanho da resposta. No entanto, a utilização de uma alternativa constituída apenas por GraphQL apresenta-se como a melhor solução para melhorar o desempenho e flexibilidade de uma aplicação.