Reaaliaikainen työkoneen seuranta ratatyökoneiden suoritekirjausjärjestelmässä
Kuikka, Teemu (2019)
Kuikka, Teemu
2019
Tietotekniikka
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ä
2019-05-21
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201905031468
https://urn.fi/URN:NBN:fi:tty-201905031468
Tiivistelmä
Tämä työ käsittelee työvuoronkirjausprosessin tiedonkulun reaaliaikaistamista web-pohjaisessa ratatyökoneiden suoritekirjausjärjestelmässä. Suoritekirjausjärjestelmä koostuu backend-palvelimesta ja verkkoselaimella käytettävistä kirjaus- ja raportointisovelluksista. Järjestelmän kirjaussovellus on tarkoitettu ratatyökoneiden miehistön käyttöön ja sitä käytetään ratatyön yhteydessä työvuorojen tapahtumien kirjaamiseen. Raportointisovellusta käyttävät esimiehet ja sen avulla voidaan esimerkiksi seurata valmiista työvuoroista johdettuja raportteja ja tilastoja, tarkastaa ja hyväksyä tehtyjä työvuoroja ja luoda työvuorosuunnitelmia.
Ennen työn toteuttamista työvuoron kirjausprosessi toimi siten, että konemies kirjasi työvuoronsa tapahtumat kirjaussovellukseen, jonka välimuistissa työvuoroa säilytettiin, kunnes se oli kokonaan valmis. Kun työvuoro oli valmis, se lähetettiin kirjaussovelluksesta järjestelmän backend-palvelimelle, jolloin työvuoro ja sen tiedot tulivat tarkasteltaviksi myös raportointisovelluksessa. Tämän työn pääasiallinen kehitystavoite oli reaaliaikaistaa tätä tiedonkulkua siten, että tietoa työvuoroista saataisiin raportointisovellukseen jo silloin, kun työvuoroa tehdään, eikä vasta sen valmistuttua.
Järjestelmän raportointisovellukseen haluttiin toteuttaa käyttöliittymä, jonka kautta meneillään olevien työvuorojen tapahtumia voidaan seurata työkonekohtaisesti aikajanalla sekä kronologisena listauksena. Tätä varten tarvittiin mekanismi, jolla kirjaussovellus lähettää tapahtumapäivityksiä palvelimelle työvuoron edetessä ja jolla palvelin voi lähettää päivitykset eteenpäin raportointisovellukselle. Tämä ei onnistu yksistään HTTP-protokollaa käyttämällä. Työn tekninen tavoite oli siis löytää palvelimelta raportointisovellukselle suuntautuvalle reaaliaikaiselle tiedonkululle toteutustapa, joka on verkkoyhteyden datankäytön suhteen tehokas, helposti toteutettavissa olemassa olevaan järjestelmään ja joka potentiaalisesti tarjoaisi järjestelmälle uusia jatkokehitysmahdollisuuksia, kun pohjatoteutus on olemassa.
Reaaliaikaisen viestinnän toteutukselle vertailtiin kolmea erilaista menetelmää: HTTP-protokollan soveltamista, WebSocket-protokollaa ja Server Sent Events -teknologiaa. Vertailu tehtiin teknisen tavoitteen perusteella ja toteutustavaksi valittiin WebSocket-protokolla. Server Sent Events -teknologia katsottiin myös hyväksi vaihtoehdoksi, mutta WebSocket-protokollan katsottiin tarjoavan parempia jatkokehitysmahdollisuuksia.
Järjestelmän backend-palvelimelle ja kirjaus- ja raportointisovelluksille toteutettiin tuki WebSocket-protokollalle olemassa olevien kirjastojen avulla. Työvuorojen tapahtumapäivitysten välittämiselle määriteltiin viestintäprotokolla, jolle toteutettiin myös tuki järjestelmän komponentteihin. Viestintäprotokolla suunniteltiin siten, että se mahdollistaa helpon laajennettavuuden ja siten jatkokehitettävyyden uusilla WebSocket-protokolla hyödyntävillä ominaisuuksilla. Raportointisovellukseen luotiin toteutustavoitteiden mukainen seurantakäyttöliittymä.
Toteutusta arvioidessa todettiin, että työn kehitystavoitteet on onnistuneesti saavutettu. WebSocket-protokolla todettiin toimivaksi menetelmäksi reaaliaikaisen kaksisuuntaisen kommunikaation toteutukselle ja sen havaittiin tarjoavan järjestelmälle hyviä jatkokehitysmahdollisuuksia.
Ennen työn toteuttamista työvuoron kirjausprosessi toimi siten, että konemies kirjasi työvuoronsa tapahtumat kirjaussovellukseen, jonka välimuistissa työvuoroa säilytettiin, kunnes se oli kokonaan valmis. Kun työvuoro oli valmis, se lähetettiin kirjaussovelluksesta järjestelmän backend-palvelimelle, jolloin työvuoro ja sen tiedot tulivat tarkasteltaviksi myös raportointisovelluksessa. Tämän työn pääasiallinen kehitystavoite oli reaaliaikaistaa tätä tiedonkulkua siten, että tietoa työvuoroista saataisiin raportointisovellukseen jo silloin, kun työvuoroa tehdään, eikä vasta sen valmistuttua.
Järjestelmän raportointisovellukseen haluttiin toteuttaa käyttöliittymä, jonka kautta meneillään olevien työvuorojen tapahtumia voidaan seurata työkonekohtaisesti aikajanalla sekä kronologisena listauksena. Tätä varten tarvittiin mekanismi, jolla kirjaussovellus lähettää tapahtumapäivityksiä palvelimelle työvuoron edetessä ja jolla palvelin voi lähettää päivitykset eteenpäin raportointisovellukselle. Tämä ei onnistu yksistään HTTP-protokollaa käyttämällä. Työn tekninen tavoite oli siis löytää palvelimelta raportointisovellukselle suuntautuvalle reaaliaikaiselle tiedonkululle toteutustapa, joka on verkkoyhteyden datankäytön suhteen tehokas, helposti toteutettavissa olemassa olevaan järjestelmään ja joka potentiaalisesti tarjoaisi järjestelmälle uusia jatkokehitysmahdollisuuksia, kun pohjatoteutus on olemassa.
Reaaliaikaisen viestinnän toteutukselle vertailtiin kolmea erilaista menetelmää: HTTP-protokollan soveltamista, WebSocket-protokollaa ja Server Sent Events -teknologiaa. Vertailu tehtiin teknisen tavoitteen perusteella ja toteutustavaksi valittiin WebSocket-protokolla. Server Sent Events -teknologia katsottiin myös hyväksi vaihtoehdoksi, mutta WebSocket-protokollan katsottiin tarjoavan parempia jatkokehitysmahdollisuuksia.
Järjestelmän backend-palvelimelle ja kirjaus- ja raportointisovelluksille toteutettiin tuki WebSocket-protokollalle olemassa olevien kirjastojen avulla. Työvuorojen tapahtumapäivitysten välittämiselle määriteltiin viestintäprotokolla, jolle toteutettiin myös tuki järjestelmän komponentteihin. Viestintäprotokolla suunniteltiin siten, että se mahdollistaa helpon laajennettavuuden ja siten jatkokehitettävyyden uusilla WebSocket-protokolla hyödyntävillä ominaisuuksilla. Raportointisovellukseen luotiin toteutustavoitteiden mukainen seurantakäyttöliittymä.
Toteutusta arvioidessa todettiin, että työn kehitystavoitteet on onnistuneesti saavutettu. WebSocket-protokolla todettiin toimivaksi menetelmäksi reaaliaikaisen kaksisuuntaisen kommunikaation toteutukselle ja sen havaittiin tarjoavan järjestelmälle hyviä jatkokehitysmahdollisuuksia.