KDP/Lab 2 nadoknada 2022
< КДП
Pređi na navigaciju
Pređi na pretragu
- Ovaj rok nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.
Druga laboratorijska vežba 2022. godine održana je 27. maja.
Postavka
Potrebno je rešiti problem vožnje toboganom (The Rollercoaster Problem) u distribuiranom okruženju. Posetioci i park predstavljaju klijentske programe koji koristeći centralni server komuniciraju i pristupaju datotekama na serveru.
- Radi pristupanja tekstualnim datotekama koje zahtevaju posetioci i park treba implementirati interfejs
Photokoji ima metode za dohvatanje i postavljanje imena datoteke, kao i za postavljanje i dohvatanje sadržaja same fotografije. Interfejs je dat u prilogu. - Klasa parka (
Park), čiji je kod dat u prilogu, imamainmetodu i koja se povezuje sa serverom radi upravljanja toboganom. Serverski port preko koga se komunicira i IP adresa servera se unose kao argumenti komandne linije. Ostali argumenti su broj tobogana kojim se upravlja i broj putnika koje tobogan može da primi. Komunikacija sa serverom se obavlja koristeći udaljene pozive procedura u programskom jeziku Java (java.rmipaket). - Klasa posetioca (
Visitor), čiji je kod dat u prilogu, imamainmetodu i koja se povezuje sa serverom radi pristupanja toboganu i dohvatanju slika sa vožnje. Serverski port preko koga se komunicira i IP adresa servera se unose kao argumenti komandne linije. Ostali argumenti su broj tobogana kojim se vozi koje je potrebno proslediti na server. Komunikacija sa serverom se obavlja koristeći mrežno programiranje u programskom jeziku Java (java.netpaket). Koristiti objektne tokove podataka. Na serveru treba da postoji veći broj niti - za svaku konekciju po jedna. Klijenti i server treba sve vreme da drže otvorenu priključnicu kroz koju komuniciraju. Ukoliko na klijentskoj ili serverskoj strani dođe do prekida veze ta nit se prekida i njeni resursi se oslobađaju. - Posetioci i park mogu da pristupaju različitim toboganima, tako da može da se desi da dva parka u isto vreme upravljaju različitim toboganima, ili da park upravlja a da posetioci pristupaju različitim toboganima.
- Na serveru se čuvaju podaci o većem broju knjiga.
- Sinhronizacija između niti na serveru se obavlja koristeći monitorsku klasu
RollercoasterMonitor. - Potrebno je implementirati interfejse
PhotoiRollercoasterRMI. Interfejsi koji su dati u prilogu moraju se koristiti kao takvi, bez izmena. - Date
mainmetode u klasama parka i posetioca takođe nije dozvoljeno menjati, uz izuzetak zamenenullstvaranjem konkretnog objekta na označenim mestima.