Evtek Reaaliaikaohjelmointi HL TI/TP00S / Kevät 2004 Tehtävä 12 (Client/Server järjestelmä FIFOlla) Tee client/server -järjestelmä, jossa server tarjoaa palveluna arpanumeroita, joiden voittoarvonta tapahtuu joskus myöhemmin. Arpanumerot ovat tässä numeroita väliltä 1 - 9999. Asiakkaat voivat ottaa yhteyttä serveriin ja yhteyspyynnössä ilmoitetaan montako arpanumeroa halutaan. Server generoi arpanumerot ja lähettää ne sitä pyytäneelle asiakkaalle. Asiakkaalla saattaa olla viivettä tietojen vastaanotossa. Tätä voidaan simuloida vaikka siten, että asiakas lukee numeroita putkesta yksi kerrallaan ja tässä lukuloopissa on viivettä. Tällainen jonkin asiakkaan hidas toiminta ei saa tietenkäänestää muiden asiakkaiden palvelua. Testaa järjestelmä siten, että laitat muutamia asiakas- prosesseja pyörimään yhtä aikaa (esimerkiksi 3) ja laita kukin asiakas pyytämään muutamia arpanumeroita. Huomautus 1. Ei tarvitse tässä välittää siitä, että satunnaislukugeneraattori voi antaa mahdollisesti joskus saman luvun uudestaan. Huomautus 2. Ohjelman tulee toimia siten, että palvelimella ei ole välillä yhtään asiakasta ja se jatkaa toimintaansa odottaen uusia asiakkaita. Huomautus 3. Tätä tehtävää voisi laajentaa esimerkiksi siten, että asiakkaan ja palvelimen välille pitäisi tehdä istunnonajaksi jatkuva kaksisuuntainen yhteys esimerkiksi siten, että asiakas voisi tarkastella saamaansa numeroa ja palauttaa sen takaisin ja pytää uuutta, jos ei kelpaa. Palautettu numero voitaisiin sitten tarjota taas seuraavalle asiakkaalle. Silloin tulisi enemmän pohdittavaa kuinka tällainen asiakkiden palvelu saadaan tapahtumaan joustavasti rinnakkain.