КДП/Лаб 2 2022

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
Овај рок није решен. Помозите SI Wiki тако што ћете га решити.

Друга лабораторијска вежба 2022. године одржана је 27. маја.

Поставка

Потребно је решити проблем вожње тобоганом (The Rollercoaster Problem) у дистрибуираном окружењу. Посетиоци и парк представљају клијентске програме који користећи централни сервер комуницирају и приступају датотекама на серверу.

  • Ради приступања текстуалним датотекама које захтевају посетиоци и парк треба имплементирати интерфејс Photo који има методе за дохватање и постављање имена датотеке, као и за постављање и дохватање садржаја саме фотографије. Интерфејс је дат у прилогу.
  • Класа парка (Park), чији је код дат у прилогу, има main методу и која се повезује са сервером ради управљања тобоганом. Серверски порт преко кога се комуницира и IP адреса сервера се уносе као аргументи командне линије. Остали аргументи су број тобогана којим се управља и број путника које тобоган може да прими. Комуникација са сервером се обавља користећи удаљене позиве процедура у програмском језику Јава (java.rmi пакет).
  • Класа посетиоца (Visitor), чији је код дат у прилогу, има main методу и која се повезује са сервером ради приступања тобогану и дохватању слика са вожње. Серверски порт преко кога се комуницира и IP адреса сервера се уносе као аргументи командне линије. Остали аргументи су број тобогана којим се вози које је потребно проследити на сервер. Комуникација са сервером се обавља користећи мрежно програмирање у програмском језику Јава (java.net пакет). Користити објектне токове података. На серверу треба да постоји већи број нити - за сваку конекцију по једна. Клијенти и сервер треба све време да држе отворену прикључницу кроз коју комуницирају. Уколико на клијентској или серверској страни дође до прекида везе та нит се прекида и њени ресурси се ослобађају.
  • Посетиоци и парк могу да приступају различитим тобоганима, тако да може да се деси да два парка у исто време управљају различитим тобоганима, или да парк управља а да посетиоци приступају различитим тобоганима.
  • На серверу се чувају подаци о већем броју књига.
  • Синхронизација између нити на серверу се обавља користећи мониторску класу RollercoasterMonitor.
  • Потребно је имплементирати интерфејсе Photo и RollercoasterRMI. Интерфејси који су дати у прилогу морају се користити као такви, без измена.
  • Дате main методе у класама парка и посетиоца такође није дозвољено мењати, уз изузетак замене null стварањем конкретног објекта на означеним местима.

Решење