Kulunvalvontajärjestelmän skaalautumistestausohjelman suunnittelu ja toteutus
Kalliokoski, Eemeli (2023)
Kalliokoski, Eemeli
2023
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023051210486
https://urn.fi/URN:NBN:fi:amk-2023051210486
Tiivistelmä
Opinnäytetyön tilaajalle Fisplay Oy:lle syntyi tarve mitata kulunvalvontajärjestelmänsä suorituskykyä. Työn aiheeksi muodostui kulunvalvontajärjestelmän skaalautumisohjelman suunnittelu ja toteutus. Työn tarkoituksena oli suunnitella sekä toteuttaa prototyyppiohjelma, jonka avulla kohdekulunvalvontajärjestelmän suorituskykyä pystytään mittaamaan. Opinnäytetyön tekijällä on työkokemusta kulunvalvontajärjestelmien parissa.
Työssä käytiin läpi, millaisista osista kulunvalvontajärjestelmä rakentuu sekä niiden yleinen toimintaperiaate. Lisäksi työssä tutustuttiin skaalautuvan ohjelmiston teoriaan. Kohdekulunvalvontajärjestelmän suorituskykyä mitattiin emuloimalla eli jäljittelemällä ovipäätteitä ja tarkkailemalla ovipäätteiden ja järjestelmän välisten tietoliikenteen vasteaikoja. Vasteajalle säädettiin järjestelmän käytettävyyden näkökulmasta raja, jonka yli mentäessä järjestelmän responsiivisuus sekä toimintavarmuus heikkenee. Prototyyppiohjelma toteutettiin käyttäen C++-kieltä ja ohjelma on terminaalipohjainen. Ohjelmassa hyödynnettiin Thread- sekä Asio-kirjastoja, jotka ovat osa Boost-kirjastokokoelmaa. Thread-kirjastoa käyttämällä testausohjelma säikeistettiin ja siitä saatiin suorituskykyinen. Jokaisen ovipäätteen emulointi suoritetaan omassa säikeessään ja säikeistämisen ansiosta ne tapahtuvat samanaikaisesti. Asio-kirjaston avulla hoidettiin kommunikointi emuloitavan ovipäätteen ja järjestelmän välillä käyttäen TCP-yhteyttä.
Työssä saatiin aikaiseksi prototyyppiohjelma, jonka avulla pystytään testaamaan työn kohdekulunvalvontajärjestelmän suorituskykyä sekä skaalautumista. Ohjelman avulla voidaan selvittää kulunvalvontajärjestelmän maksimikulunvalvontapisteiden määrää, jolla järjestelmä toimii responsiivisesti sekä toimintavarmasti. Testausohjelmaa voidaan käyttää osana kulunvalvontajärjestelmän ohjelmistokehittämistä. Ohjelman avulla voidaan varmistua jokaisen lähdekoodimuutoksen vaikutuksesta koko järjestelmän suorituskykyyn.
Prototyyppiohjelma suoriutui siihen suunnitellussa tehtävässään eli sitä voidaan käyttää kohdekulunvalvontajärjestelmän suorituskyvyn mittausvälineenä. Työn toimeksiantaja voi ennakoida prototyyppiohjelman avulla vaihtelevan kulunvalvontapisteiden määrän vaikutuksen järjestelmän toimintavarmuuteen sekä suorituskykyyn. Tämän ansiosta toimeksiantaja voi säästää palvelinkuluissa käyttämällä prototyyppiohjelmaa selvittääkseen järjestelmän komponenttien todelliset resurssitarpeet.
Työssä käytiin läpi, millaisista osista kulunvalvontajärjestelmä rakentuu sekä niiden yleinen toimintaperiaate. Lisäksi työssä tutustuttiin skaalautuvan ohjelmiston teoriaan. Kohdekulunvalvontajärjestelmän suorituskykyä mitattiin emuloimalla eli jäljittelemällä ovipäätteitä ja tarkkailemalla ovipäätteiden ja järjestelmän välisten tietoliikenteen vasteaikoja. Vasteajalle säädettiin järjestelmän käytettävyyden näkökulmasta raja, jonka yli mentäessä järjestelmän responsiivisuus sekä toimintavarmuus heikkenee. Prototyyppiohjelma toteutettiin käyttäen C++-kieltä ja ohjelma on terminaalipohjainen. Ohjelmassa hyödynnettiin Thread- sekä Asio-kirjastoja, jotka ovat osa Boost-kirjastokokoelmaa. Thread-kirjastoa käyttämällä testausohjelma säikeistettiin ja siitä saatiin suorituskykyinen. Jokaisen ovipäätteen emulointi suoritetaan omassa säikeessään ja säikeistämisen ansiosta ne tapahtuvat samanaikaisesti. Asio-kirjaston avulla hoidettiin kommunikointi emuloitavan ovipäätteen ja järjestelmän välillä käyttäen TCP-yhteyttä.
Työssä saatiin aikaiseksi prototyyppiohjelma, jonka avulla pystytään testaamaan työn kohdekulunvalvontajärjestelmän suorituskykyä sekä skaalautumista. Ohjelman avulla voidaan selvittää kulunvalvontajärjestelmän maksimikulunvalvontapisteiden määrää, jolla järjestelmä toimii responsiivisesti sekä toimintavarmasti. Testausohjelmaa voidaan käyttää osana kulunvalvontajärjestelmän ohjelmistokehittämistä. Ohjelman avulla voidaan varmistua jokaisen lähdekoodimuutoksen vaikutuksesta koko järjestelmän suorituskykyyn.
Prototyyppiohjelma suoriutui siihen suunnitellussa tehtävässään eli sitä voidaan käyttää kohdekulunvalvontajärjestelmän suorituskyvyn mittausvälineenä. Työn toimeksiantaja voi ennakoida prototyyppiohjelman avulla vaihtelevan kulunvalvontapisteiden määrän vaikutuksen järjestelmän toimintavarmuuteen sekä suorituskykyyn. Tämän ansiosta toimeksiantaja voi säästää palvelinkuluissa käyttämällä prototyyppiohjelmaa selvittääkseen järjestelmän komponenttien todelliset resurssitarpeet.