Hajautetut järjestelmät K07 Harjoitustehtävä 3 Harjoitustehtävä palautetaan sähköpostin liitetiedostona (mieluiten pdf-muodossa) viimeistään maanantaina 19.2. klo 23.59 osoitteilla Lea.Kutvonen@cs.helsinki.fi, mika.karlstedt@cs.helsinki.fi . Liitetiedoston nimi voisi olla muotoa [sukunimi].[tiedostotyyppitunnus] 1. "Kahden armeijan ongelma" ja "bysanttilaisten kenraalien ongelma" ovat esimerkkejä hajautetun järjestelmän päätöksenteon vaikeudesta silloin, kun järjestelmän jokin tai jotkin komponenentit eivät ole täysin luotettavia. a) Millaista häiriökäyttäytymistä kummassakin esimerkissä käsitellään? b) Voidaanko toisintamista käyttäen tällaisista järjestelmistä tehdä vikasietoisia? Jos ei voida, perustele (lyhyesti!). Jos voidaan, niin kuvaa algoritmin perusajatus ja perustele sen toimivuus (lyhyesti!) c) Mikä on transaktionkäsittelyn kaksivaiheisen sitoutumisen suhde näihin ongelmiin? (Luennoilla "kahden armeijan ongelma" kuvattiin Alicen ja Bobin lounas- tapaamisesta sopimisena.) 2. Hajautetun sovelluksen komponentit kommunikoivat käyttäen sanoman- välitystä. Sovelluksen vikasietoisuuden parantamiseksi tietyt komponentit on toisinnettu. Yksi keskeinen vaatimus on, että kaikki toisinnot käsittelevät kaikki saamansa sanomat samassa järjestyksessä. a) Esitä sanomanvälitysjärjestelmän osana toimiva täysin hajautettu algoritmi, joka toteuttaa tämän vaatimuksen. b) Perustele algoritmisi toimivuus ja täsmennä, mitä ominaisuuksia toimivuus edellyttää tietoliikenneyhteyksiltä. (Selitys kannattaa perustaa esimerkin käyttöön.)