Skip to main content
Login | Suomeksi | På svenska | In English

Reaktiivinen ohjelmointiparadigma palvelinohjelmoinnissa

Show full item record

Title: Reaktiivinen ohjelmointiparadigma palvelinohjelmoinnissa
Author(s): Virtanen, Tomi
Contributor: University of Helsinki, Faculty of Science, Department of Computer Science
Discipline: Computer science
Language: Finnish
Acceptance year: 2016
Abstract:
Nykyaikaiset sovellukset ovat yhä useammin verkkosovelluksia. Verkkosovellukset eivät kuitenkaan toimi perinteisten sovellusten tapaan yhdellä päätelaitteella vaan ne muodostuvat sovelluksia käyttävistä asiakkaista ja asiakkaita palvelevista palvelimista. Verkkosovellusten toimintaympäristö on sellainen, jossa sovellusten toiminta on hajautettu verkon yli. Tällöin tiedon synkronointi asiakkaiden ja palvelinten välillä muodostuu keskeiseksi. Muutokset datassa kulkevat tapahtumina, joiden hallinta on tärkeää sovelluksen toiminnan kannalta. Tapahtumien hallinnan logiikan toteuttaminen virheettömästi osoittautuu usein vaikeaksi. Tutkielmassa käsitellään reaktiivista ohjelmointia verkkosovellusten palvelinpuolella. Reaktiivisen ohjelmoinnin avulla pyritään ratkaisemaan tapahtumien hallinnan ongelmat. Tapahtumien hallinta kärsii usein monimutkaisista riippuvuuksista, vaikeasti ymmärrettävyydestä ja huonosta testattavuudesta. Reaktiivisen ohjelmoinnin avulla pyritään selkeyttämään sovellusten rakennetta. Tutkielmaa varten toteutettiin yksinkertainen verkkosovellus, jossa käyttäjät voivat keskustella sovelluksen välityksellä reaaliaikaisesti keskenään. Käyttäjät voivat lähettää toisille käyttäjille sekä yksityisviestejä että kirjoittaa kaikkien käyttäjien nähtäväksi tarkoitettuja viestejä. Verkkosovelluksen palvelinpuoli toteutettiin kahden reaktiivisen kirjaston avulla, sekä vertailun vuoksi ei-reaktiivisesti. Reaktiivisten versioiden toteutukseen käytettiin RxJs- ja Bacon.js-kirjastoja. Reaktiivisen ohjelmoinnin vaikutusta palvelinohjelmointiin tutkittiin staattisella lähdekoodin analyysillä. Tulosten perusteella reaktiivinen ohjelmointi lisää hieman lähdekoodin kokoa, mutta samalla vähentää sen kompleksisuutta.


Files in this item

Files Size Format View
gradu.pdf 1.233Mb PDF

This item appears in the following Collection(s)

Show full item record