GraphQL esineiden internetissä - Rantala, Paavo (2022)
Esineiden internetin laajentumisen yhteydessä käytettävissä olevien laitteiden ja teknologioiden lukumäärä on kasvanut. Samalla verkkoinfrastruktuurien kuormitus on lisääntynyt, mikä heijastuu väistämättöminä ongelmina resurssirajoittuneissa systeemeissä. Järjestelmällisellä standardoinnilla on onnistuttu parantamaan eri tekniikoiden yhteensopivuutta ja palvelukeskeinen arkkitehtuuri on edistänyt verkkojen skaalautuvuutta. Erityisesti web-palveluna tunnettu REST-arkkitehtuuri on saavuttanut suosiota esineiden internetissä ja mahdollistanut aikaisemmin opitun siirtämisen uuteen laiteympäristöön. HTTP:tä kevyempi CoAP-protokolla on ollut ominaisuuksiltaan järkevä vaihtoehto REST-arkkitehtuurin tuomiseksi esineiden internetiin. Vastaavasti kuten REST, GraphQL on web-palveluna kehittynyt spesifikaatio rajapinta-arkkitehtuurille, jonka tärkeimmät osat ovat kyselykieli ja ajonaikainen järjestelmä. Spesifikaation suunnittelua on lähestytty asiakkaan tarpeista, pyrkien RESTiä joustavampaan viestintään. GraphQL on varteen otettava vaihtoehto esineiden internetille, sillä sen ominaisuuksilla on edellytyksiä vähentää energiankulutusta ja parantaa järjestelmien integroimista keskenään. Lisäksi GraphQL:n kommunikaatiomallit tukevat RESTiä kattavammin muitakin IoT-protokollia kuin CoAPia. Tässä tutkielmassa selvitetään GraphQL:ää ja esineiden internetiä käsittelevissä tutkimuksissa tehtyjä havaintoja ja niiden perusteella kartoitetaan aiheen nykytilannetta. Tutkimuksista opitun perusteella toteutetaan yksinkertainen IoT-järjestelmä, jossa web-sovellukseen haetaan mittausdataa IoT-laitteelta ja toisen osapuolen hallitsemasta web-palvelusta hyödyntäen GraphQL:ää osana arkkitehtuuria.