Tilanhallinta moderneissa verkkosovelluksissa
Pullinen, Jaakko (2020)
Pullinen, Jaakko
2020
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2020052012586
https://urn.fi/URN:NBN:fi:amk-2020052012586
Tiivistelmä
Tässä opinnäytetyössä kehitetään toimeksiantajan sähkökäyttöisten linja-autojen latauspisteiden hallinnointisovellukselle tehokas tilanhallintajärjestelmä sekä tutkitaan modernien verkkosovellusten tilanhallinnan osa-alueita.
Reaktiivinen ohjelmointi on keskeinen käsite sovellusten tilanhallinnassa. Reaktiivisen ohjelmoinnin periaattein kehitetyt tilanhallintakirjastot suorittavat ja hallinnoivat muutoksia sovelluksessa reaaliaikaisesti ja tehokkaasti. JavaScript-pohjaisten ohjelmistojen reaktiivisen ohjelmoinnin mahdollistava kirjasto on RxJS, josta on jatkokehitetty FCMS-sovelluksessa käytettävä Akita-tilanhallintakirjasto. Akita hallitsee sovelluksissa tilaa käyttämällä tietovarastoja ja niitä muokkaavia kutsupalveluita sekä kyselymetodeja, jotka noutavat tietoa tietovarastosta.
Fleet Charging Management System eli FCMS on sähköisten linja-autojen lataamispisteiden hallinnointiin ja lataamiseen kehitetty sovellus. Sovelluksessa käyttäjälle tarjotaan varikon hallinnointinäkymä päänäkymänä sekä satelliittinäkymä, jossa on myös suodattamistoimintoja. Molemmat näkymät näyttävät varikolla olevat latauspisteet ja niissä olevat latauslaitteet.
FCMS-sovellus hyödyntää tilanhallinnassaan Akitan lisäksi myös selaimen ja palvelimen välisen reaaliaikaisen kommunikoinnin sallivaa WebSockets-teknologiaa. WebSockets on suosittu teknologia muun muassa pikaviestinpalveluissa ja verkkopeleissä. Sovellus vaatii käyttäjältä sisäänkirjautumisen, joka toimii kolmannen osapuolen (Auth0) rajapinnan kautta. Sovellus on kehitetty TypeScriptiä käyttävällä Angular2+-ohjelmistokehyksellä. TypeScript on verkkosovelluksissa suosittu, JavaScriptiksi suoraan kääntyvä ohjelmointikieli, joka tarjoaa vahvan tyypittämisen tuen.
Työssä kehitettiin Akitaa ja WebSocketsia käyttäen työn toimeksiantajan sovellukselle tehokkaasti toimiva tilanhallinta. Sovelluksen kehityksen aikana keskityttiin ohjelmiston kattavaan dokumentointiin, hyvän ohjelmoinnin periaatteita noudattavan koodin tuottamiseen ja sovelluksen luotettavan toiminnan takaamiseen.
Reaktiivinen ohjelmointi on keskeinen käsite sovellusten tilanhallinnassa. Reaktiivisen ohjelmoinnin periaattein kehitetyt tilanhallintakirjastot suorittavat ja hallinnoivat muutoksia sovelluksessa reaaliaikaisesti ja tehokkaasti. JavaScript-pohjaisten ohjelmistojen reaktiivisen ohjelmoinnin mahdollistava kirjasto on RxJS, josta on jatkokehitetty FCMS-sovelluksessa käytettävä Akita-tilanhallintakirjasto. Akita hallitsee sovelluksissa tilaa käyttämällä tietovarastoja ja niitä muokkaavia kutsupalveluita sekä kyselymetodeja, jotka noutavat tietoa tietovarastosta.
Fleet Charging Management System eli FCMS on sähköisten linja-autojen lataamispisteiden hallinnointiin ja lataamiseen kehitetty sovellus. Sovelluksessa käyttäjälle tarjotaan varikon hallinnointinäkymä päänäkymänä sekä satelliittinäkymä, jossa on myös suodattamistoimintoja. Molemmat näkymät näyttävät varikolla olevat latauspisteet ja niissä olevat latauslaitteet.
FCMS-sovellus hyödyntää tilanhallinnassaan Akitan lisäksi myös selaimen ja palvelimen välisen reaaliaikaisen kommunikoinnin sallivaa WebSockets-teknologiaa. WebSockets on suosittu teknologia muun muassa pikaviestinpalveluissa ja verkkopeleissä. Sovellus vaatii käyttäjältä sisäänkirjautumisen, joka toimii kolmannen osapuolen (Auth0) rajapinnan kautta. Sovellus on kehitetty TypeScriptiä käyttävällä Angular2+-ohjelmistokehyksellä. TypeScript on verkkosovelluksissa suosittu, JavaScriptiksi suoraan kääntyvä ohjelmointikieli, joka tarjoaa vahvan tyypittämisen tuen.
Työssä kehitettiin Akitaa ja WebSocketsia käyttäen työn toimeksiantajan sovellukselle tehokkaasti toimiva tilanhallinta. Sovelluksen kehityksen aikana keskityttiin ohjelmiston kattavaan dokumentointiin, hyvän ohjelmoinnin periaatteita noudattavan koodin tuottamiseen ja sovelluksen luotettavan toiminnan takaamiseen.