Hyppää sisältöön
    • Suomeksi
    • In English
Trepo
  • Suomeksi
  • In English
  • Kirjaudu
Näytä viite 
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat
  • Näytä viite
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat
  • Näytä viite
JavaScript is disabled for your browser. Some features of this site may not work without it.

GraphQL- ja REST-rajapintojen performanssien vertailu

Kujanen, Jussi (2021)

 
Avaa tiedosto
KujanenJussi.pdf (691.9Kt)
Lataukset: 



Kujanen, Jussi
2021

Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2021-05-10
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202104193135
Tiivistelmä
Tässä työssä vertaillaan kahta saman toiminnallisuuden toteuttavaa web-rajapintaa (engl. application programming interface, API). Ensimmäinen API on toteutettu noudattaen Roy Fieldingin määrittelemää Representational State Transfer-arkkitehtuuria (REST). Toinen rajapinta on toteutettu käyttäen Facebookin kehittämää GraphQL-querykieltä. Työssä vertaillaan rajapintojen viivettä ja palautettujen tavujen määrää kahdessa eri tehtävässä.

Työssä esitellään ensin REST-periaatteet, sekä REST-rajapinnan käyttöä ja sen heikkouksia. Työssä todetaan REST-rajapinnan aiheuttavan tietyissä tilanteissa käyttäjälle rasitusta viiveen ja latenssin osa-alueella. Tämän jälkeen esitellään GraphQL-querykielen periaatteellinen toiminta ja käyttö, sekä GraphQL-palvelimen toiminta. Osiossa tuodaan esille GraphQL:n ominaispiirre: vastuun siirtäminen palvelimelta asiakkaalle.

Teoriaosuuden jälkeen työssä tarkastellaan aiempia tutkimuksia, joissa REST- ja GraphQL-rajapintoja on vertailtu. Aiempien tutkimusten pohjalta havaitaan GraphQL:n suoriutuvan paremmin kuin REST-rajapinta, kun palvelimelta haetaan pieniä määriä dataa.

Tutkimusosuudessa esitellään tutkittava järjestelmä, tutkimuksessa käytetyt mittarit ja työkalut, sekä rajapinnoille suoritettavien tehtävien määritelmät. Vertailussa havaitaan GraphQL:n suoriutuvan paremmin kaikilla mittareilla molemmissa tapauksissa. GraphQL:n viive ensimmäisessä tehtävässä oli noin 7.7 \%, ja toisessa tehtävässä noin 2.5 \% pienempi kuin REST-rajapinnan. Tavuja GraphQL palautti ensimmäisessä tehtävässä 11.7 \%, ja toisessa tehtävässä 96 \% vähemmän kuin REST-rajapinta.

Suurimmat vaikuttajat tämän vertailun tulosten kannalta arvioidaan olevan vertailussa käytetyn palvelimen tehottomuus sekä asiakkaan ja palvelimen pieni round-trip time (RTT). Jos palvelimella käytetty laskenta-aika on suuri, RTT:n merkitys korostuu. Aiemmissa tutkimuksissa tilanne on pääsääntöisesti ollut päinvastainen: palvelimet ovat olleet tehokkaampia kuin tässä vertailussa käytetty palvelin, ja aiemmissa tutkimuksissa asiakkaan ja palvelimen RTT on ollut korkeampi.
Kokoelmat
  • Kandidaatintutkielmat [10829]
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste
 

 

Selaa kokoelmaa

TekijätNimekkeetTiedekunta (2019 -)Tiedekunta (- 2018)Tutkinto-ohjelmat ja opintosuunnatAvainsanatJulkaisuajatKokoelmat

Omat tiedot

Kirjaudu sisäänRekisteröidy
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste