Askeltava suoritus hajautetussa ympäristössä
Nuutamo, Samu Iisakki (2010)
Nuutamo, Samu Iisakki
2010
Tietotekniikan koulutusohjelma
Tieto- ja sähkötekniikan tiedekunta
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ä
2010-05-05
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201005101115
https://urn.fi/URN:NBN:fi:tty-201005101115
Tiivistelmä
Viestinvälitykseen perustuvissa järjestelmissä on usein haasteena kehittää mekanismit proseduraalisten suorituspolkujen luomiseksi. Viestinvälityksen asynkronisuus ei suoraan salli tällaista, vaan tarvitaan erillinen komponentti, joka ottaa vastuulleen suorituksesta huolehtimisen. Askeltajakomponenttiin on luonnollista sisällyttää myös muuta toiminnallisuutta, jolla voidaan helpottaa koko järjestelmän tilan tarkkailua.
Tässä diplomityössä toteutetaan askeltajakomponentti olemassa olevaan tuoterunkoon. Askeltaja toimii tuoterunkoon liitettynä keskeisessä roolissa koko järjestelmässä. Sen vastuulla on erinäisten sekvenssien suorittaminen, suoritustilan tarkkailu ja kirjanpito. Viestiväylään perustuvassa asynkronisessa ohjelmistossa askeltaja tuo järjestelmään tietynlaista deterministisyyttä, koska suoritusketjut ovat toistettavissa ja jäljitettävissä. Lisäksi askeltaja mahdollistaa suorituksen tarkan hallinnan, jopa tarkemman kuin mihin proseduraalisissa ohjelmistoissa on totuttu.
Askeltajan olemassaolo vaikuttaa väistämättä järjestelmän arkkitehtuuriin. Perinteisissä sovelluksissa pyritään luomaan erilaisia kerroksia, jolloin ohjelmiston eri osien riippuvuudet ovat selkeitä suunnittelijoille. Diplomityön kuvaamassa tuoterungossa viestiväylän takia järjestelmään liittyneet komponentit ovat kuitenkin vertaisiaan, jolloin askeltajan olemassaolo toimii kerrosarkkitehtuurin tavoitetta vastaan. Tämä hankaloittaa komponenttien suhteiden selvittämistä, mutta toisaalta se myös sallii erittäin joustavia toteutusratkaisuja.
Hajautettu järjestelmä tuo myös muita haasteita komponentin toteutukselle. Esimerkiksi verkkoviiveet ja mahdolliset muutokset verkon topologiassa eivät saa jättää järjestelmää virheelliseen tilaan. Perinteisten, hajauttamattomien sovellusten tapauksessa tietyt sekvenssit ovat aina suoritettavissa. Hajautetussa järjestelmässä tämä ei kuitenkaan ole taattua. /Kir10
Tässä diplomityössä toteutetaan askeltajakomponentti olemassa olevaan tuoterunkoon. Askeltaja toimii tuoterunkoon liitettynä keskeisessä roolissa koko järjestelmässä. Sen vastuulla on erinäisten sekvenssien suorittaminen, suoritustilan tarkkailu ja kirjanpito. Viestiväylään perustuvassa asynkronisessa ohjelmistossa askeltaja tuo järjestelmään tietynlaista deterministisyyttä, koska suoritusketjut ovat toistettavissa ja jäljitettävissä. Lisäksi askeltaja mahdollistaa suorituksen tarkan hallinnan, jopa tarkemman kuin mihin proseduraalisissa ohjelmistoissa on totuttu.
Askeltajan olemassaolo vaikuttaa väistämättä järjestelmän arkkitehtuuriin. Perinteisissä sovelluksissa pyritään luomaan erilaisia kerroksia, jolloin ohjelmiston eri osien riippuvuudet ovat selkeitä suunnittelijoille. Diplomityön kuvaamassa tuoterungossa viestiväylän takia järjestelmään liittyneet komponentit ovat kuitenkin vertaisiaan, jolloin askeltajan olemassaolo toimii kerrosarkkitehtuurin tavoitetta vastaan. Tämä hankaloittaa komponenttien suhteiden selvittämistä, mutta toisaalta se myös sallii erittäin joustavia toteutusratkaisuja.
Hajautettu järjestelmä tuo myös muita haasteita komponentin toteutukselle. Esimerkiksi verkkoviiveet ja mahdolliset muutokset verkon topologiassa eivät saa jättää järjestelmää virheelliseen tilaan. Perinteisten, hajauttamattomien sovellusten tapauksessa tietyt sekvenssit ovat aina suoritettavissa. Hajautetussa järjestelmässä tämä ei kuitenkaan ole taattua. /Kir10