КДП/Лаб 2 надокнада 2022 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
м (Prepisan naš drugi lab iz sećanja, možda sam se loše setio doduše)
м (Pogrešan datum)
Ред 1: Ред 1:
{{tocright}}
{{tocright}}
{{нерешено}}
{{нерешено}}
'''Надокнада друге лабораторијске вежбе''' одржана је 22. јуна.
'''Надокнада друге лабораторијске вежбе''' одржана је 27. маја.


== Поставка ==
== Поставка ==

Верзија на датум 27. јул 2022. у 21:06

Овај рок није решен. Помозите SI Wiki тако што ћете га решити.

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

Поставка

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

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

Решење