Verkostomenetelmät mikropalveluarkkitehtuurin rappeutumisen ehkäisemiseksi
Väitöstilaisuuden tiedot
Väitöstilaisuuden päivämäärä ja aika
Väitöstilaisuuden paikka
L10 OP-Audiotorio, Linnanmaan kampus
Väitöksen aihe
Verkostomenetelmät mikropalveluarkkitehtuurin rappeutumisen ehkäisemiseksi
Väittelijä
Diplomi-insinööri Alexander Bakhtin
Tiedekunta ja yksikkö
Oulun yliopiston tutkijakoulu, Tieto- ja sähkötekniikan tiedekunta, Ohjelmistotuotanto ja tietojärjestelmät (SEIS)
Oppiaine
Tietojenkäsittelytiede
Vastaväittäjä
Apulaisprofessori Vasilios Andrikopoulos, Groningenin Yliopisto
Kustos
Professori Davide Taibi, Oulun Yliopisto, Etelä-Tanskan Yliopisto
Miten monimutkaisia ohjelmistojärjestelmiä voidaan analysoida ja hallita?
Nykyaikainen maailma rakentuu monimutkaisista ja toisiinsa kytkeytyneistä järjestelmistä. Tämä koskee myös ohjelmistojärjestelmiä, joita käytämme päivittäin. Esimerkiksi maksaessasi tuotteen verkkokaupassa kaupan verkkosivuston järjestelmä kommunikoi pankkisi järjestelmän kanssa, joka tarkistaa kortti- ja tilitiedot. Tämän jälkeen verkkokaupan järjestelmä on yhteydessä varastonhallintajärjestelmään tuotteen paikantamiseksi, samalla kun laskutusjärjestelmä kirjaa onnistuneesti maksetun tilauksen. Lopuksi toimitusjärjestelmä kommunikoi valitun kuljetuspalvelun järjestelmän kanssa paketin toimituksen järjestämiseksi. Jokainen edellä mainituista järjestelmistä voidaan puolestaan jakaa pienempiin osiin, joista kukin vastaa omasta rajatusta tehtävästään. Ohjelmistotekniikassa tällaiset järjestelmät toteutetaan mikropalveluarkkitehtuurin avulla.
Mikropalveluarkkitehtuurissa jokainen tehtävä tai toisiinsa liittyvien tehtävien kokonaisuus toteutetaan erillisenä ohjelmana, joka toimii itsenäisesti mutta on riippuvainen muiden ohjelmien välisistä yhteyksistä ja niiden onnistuneesta toiminnasta. Lisäksi eri ohjelmia voivat kehittää eri ohjelmistokehitystiimit, joiden on viestittävä toisilleen selkeästi kunkin ohjelmistokomponentin ominaisuuksista ja vaatimuksista. Tällaisen järjestelmän monimutkaisuus ja hallinnan tarve kasvavat nopeasti. Järjestelmän laatu voi heikentyä, ellei sen hallintaan kiinnitetä riittävästi huomiota tai ellei käytettävissä ole kokonaiskuvaa siitä, miten järjestelmä toimii.
Diplomityössäni olemme tarkastelleet sitä, kuinka tällaisia monimutkaisia ohjelmistojärjestelmiä voidaan mallintaa ja analysoida. Kaikkien komponenttien väliset riippuvuudet ja yhteydet muodostavat verkoston, jota voidaan analysoida erilaisten ominaisuuksien ja havaintojen löytämiseksi. Erityisesti verkostotieteen (Network Science) menetelmiä voidaan hyödyntää tällaisten verkostojen analysoinnissa. Tutkimme komponentin merkitystä verkostossa kuvaavaa mittaria, jota kutsutaan keskeisyydeksi (centrality), ja havaitsimme, ettei se ole yhteydessä muihin ohjelmistojen arvioinnissa ja kuvaamisessa yleisesti käytettyihin mittareihin. Lisäksi usein oletetaan, että ohjelmistoverkostossa keskeisessä asemassa oleva komponentti kantaa liikaa toisistaan riippumattomia vastuita, mitä voidaan arvioida koheesiomittareilla (cohesion metrics). Analysoimme keskeisyysmittareiden ja koheesiomittareiden välistä yhteyttä emmekä löytäneet niiden välillä vahvaa korrelaatiota. Tämä viittaa siihen, että ohjelmistoarkkitehtuurin verkostojen analysointiin tulisi kehittää uusia menetelmiä, jotka tarjoavat ohjelmistokehittäjille käytännössä hyödyllisiä näkemyksiä.
Mikropalveluarkkitehtuurissa jokainen tehtävä tai toisiinsa liittyvien tehtävien kokonaisuus toteutetaan erillisenä ohjelmana, joka toimii itsenäisesti mutta on riippuvainen muiden ohjelmien välisistä yhteyksistä ja niiden onnistuneesta toiminnasta. Lisäksi eri ohjelmia voivat kehittää eri ohjelmistokehitystiimit, joiden on viestittävä toisilleen selkeästi kunkin ohjelmistokomponentin ominaisuuksista ja vaatimuksista. Tällaisen järjestelmän monimutkaisuus ja hallinnan tarve kasvavat nopeasti. Järjestelmän laatu voi heikentyä, ellei sen hallintaan kiinnitetä riittävästi huomiota tai ellei käytettävissä ole kokonaiskuvaa siitä, miten järjestelmä toimii.
Diplomityössäni olemme tarkastelleet sitä, kuinka tällaisia monimutkaisia ohjelmistojärjestelmiä voidaan mallintaa ja analysoida. Kaikkien komponenttien väliset riippuvuudet ja yhteydet muodostavat verkoston, jota voidaan analysoida erilaisten ominaisuuksien ja havaintojen löytämiseksi. Erityisesti verkostotieteen (Network Science) menetelmiä voidaan hyödyntää tällaisten verkostojen analysoinnissa. Tutkimme komponentin merkitystä verkostossa kuvaavaa mittaria, jota kutsutaan keskeisyydeksi (centrality), ja havaitsimme, ettei se ole yhteydessä muihin ohjelmistojen arvioinnissa ja kuvaamisessa yleisesti käytettyihin mittareihin. Lisäksi usein oletetaan, että ohjelmistoverkostossa keskeisessä asemassa oleva komponentti kantaa liikaa toisistaan riippumattomia vastuita, mitä voidaan arvioida koheesiomittareilla (cohesion metrics). Analysoimme keskeisyysmittareiden ja koheesiomittareiden välistä yhteyttä emmekä löytäneet niiden välillä vahvaa korrelaatiota. Tämä viittaa siihen, että ohjelmistoarkkitehtuurin verkostojen analysointiin tulisi kehittää uusia menetelmiä, jotka tarjoavat ohjelmistokehittäjille käytännössä hyödyllisiä näkemyksiä.
Luotu 29.6.2026 | Muokattu 29.6.2026