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

Lisää tapahtuma kalenteriin

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ä.
Luotu 29.6.2026 | Muokattu 29.6.2026