KDP/Lab 2 nadoknada 2022

Izvor: SI Wiki
< КДП
Datum izmene: 27. jul 2022. u 21:06; autor: KockaAdmiralac (razgovor | doprinosi) (Pogrešan datum)
Pređi na navigaciju Pređi na pretragu
Ovaj rok nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.

Nadoknada druge laboratorijske vežbe 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 Photo koji 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, ima main metodu 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.rmi paket).
  • Klasa posetioca (Visitor), čiji je kod dat u prilogu, ima main metodu 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.net paket). 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 Photo i RollercoasterRMI. Interfejsi koji su dati u prilogu moraju se koristiti kao takvi, bez izmena.
  • Date main metode u klasama parka i posetioca takođe nije dozvoljeno menjati, uz izuzetak zamene null stvaranjem konkretnog objekta na označenim mestima.

Rešenje