КДП/Лаб 2 надокнада 2022 — разлика између измена
< КДП
Пређи на навигацију
Пређи на претрагу
(Jučerašnji lab 2 po Bogdanovom predanju) |
м (Prepisan naš drugi lab iz sećanja, možda sam se loše setio doduše) |
||
| Ред 1: | Ред 1: | ||
{{tocright}} | {{tocright}} | ||
{{нерешено}} | {{нерешено}} | ||
'''Надокнада друге лабораторијске вежбе''' одржана је 22. јуна | '''Надокнада друге лабораторијске вежбе''' одржана је 22. јуна. | ||
== Поставка == | == Поставка == | ||
Потребно је решити проблем | Потребно је решити проблем вожње тобоганом (''The Rollercoaster Problem'') у дистрибуираном окружењу. Посетиоци и парк представљају клијентске програме који користећи централни сервер комуницирају и приступају датотекама на серверу. | ||
* Ради приступања текстуалним датотекама које захтевају | * Ради приступања текстуалним датотекама које захтевају посетиоци и парк треба имплементирати интерфејс <code>Photo</code> који има методе за дохватање и постављање имена датотеке, као и за постављање и дохватање садржаја саме фотографије. Интерфејс је дат у прилогу. | ||
* Класа | * Класа парка (<code>Park</code>), чији је код дат у прилогу, има <code>main</code> методу и која се повезује са сервером ради управљања тобоганом. Серверски порт преко кога се комуницира и IP адреса сервера се уносе као аргументи командне линије. Остали аргументи су број тобогана којим се управља и број путника које тобоган може да прими. Комуникација са сервером се обавља користећи удаљене позиве процедура у програмском језику Јава (<code>java.rmi</code> пакет). | ||
* Класа | * Класа посетиоца (<code>Visitor</code>), чији је код дат у прилогу, има <code>main</code> методу и која се повезује са сервером ради приступања тобогану и дохватању слика са вожње. Серверски порт преко кога се комуницира и IP адреса сервера се уносе као аргументи командне линије. Остали аргументи су број тобогана којим се вози које је потребно проследити на сервер. Комуникација са сервером се обавља користећи мрежно програмирање у програмском језику Јава (<code>java.net</code> пакет). Користити објектне токове података. На серверу треба да постоји већи број нити - за сваку конекцију по једна. Клијенти и сервер треба све време да држе отворену прикључницу кроз коју комуницирају. Уколико на клијентској или серверској страни дође до прекида везе та нит се прекида и њени ресурси се ослобађају. | ||
* | * Посетиоци и парк могу да приступају различитим тобоганима, тако да може да се деси да два парка у исто време управљају различитим тобоганима, или да парк управља а да посетиоци приступају различитим тобоганима. | ||
* На серверу се чувају подаци о већем броју књига. | * На серверу се чувају подаци о већем броју књига. | ||
* Синхронизација између нити на серверу се обавља користећи мониторску класу <code> | * Синхронизација између нити на серверу се обавља користећи мониторску класу <code>RollercoasterMonitor</code>. | ||
* Потребно је имплементирати интерфејсе <code> | * Потребно је имплементирати интерфејсе <code>Photo</code> и <code>RollercoasterRMI</code>. Интерфејси који су дати у прилогу морају се користити као такви, без измена. | ||
* Дате <code>main</code> методе у класама | * Дате <code>main</code> методе у класама парка и посетиоца такође није дозвољено мењати, уз изузетак замене <code>null</code> стварањем конкретног објекта на означеним местима. | ||
== Решење == | == Решење == | ||
Верзија на датум 27. јул 2022. у 21:06
- Овај рок није решен. Помозите SI Wiki тако што ћете га решити.
Надокнада друге лабораторијске вежбе одржана је 22. јуна.
Поставка
Потребно је решити проблем вожње тобоганом (The Rollercoaster Problem) у дистрибуираном окружењу. Посетиоци и парк представљају клијентске програме који користећи централни сервер комуницирају и приступају датотекама на серверу.
- Ради приступања текстуалним датотекама које захтевају посетиоци и парк треба имплементирати интерфејс
Photoкоји има методе за дохватање и постављање имена датотеке, као и за постављање и дохватање садржаја саме фотографије. Интерфејс је дат у прилогу. - Класа парка (
Park), чији је код дат у прилогу, имаmainметоду и која се повезује са сервером ради управљања тобоганом. Серверски порт преко кога се комуницира и IP адреса сервера се уносе као аргументи командне линије. Остали аргументи су број тобогана којим се управља и број путника које тобоган може да прими. Комуникација са сервером се обавља користећи удаљене позиве процедура у програмском језику Јава (java.rmiпакет). - Класа посетиоца (
Visitor), чији је код дат у прилогу, имаmainметоду и која се повезује са сервером ради приступања тобогану и дохватању слика са вожње. Серверски порт преко кога се комуницира и IP адреса сервера се уносе као аргументи командне линије. Остали аргументи су број тобогана којим се вози које је потребно проследити на сервер. Комуникација са сервером се обавља користећи мрежно програмирање у програмском језику Јава (java.netпакет). Користити објектне токове података. На серверу треба да постоји већи број нити - за сваку конекцију по једна. Клијенти и сервер треба све време да држе отворену прикључницу кроз коју комуницирају. Уколико на клијентској или серверској страни дође до прекида везе та нит се прекида и њени ресурси се ослобађају. - Посетиоци и парк могу да приступају различитим тобоганима, тако да може да се деси да два парка у исто време управљају различитим тобоганима, или да парк управља а да посетиоци приступају различитим тобоганима.
- На серверу се чувају подаци о већем броју књига.
- Синхронизација између нити на серверу се обавља користећи мониторску класу
RollercoasterMonitor. - Потребно је имплементирати интерфејсе
PhotoиRollercoasterRMI. Интерфејси који су дати у прилогу морају се користити као такви, без измена. - Дате
mainметоде у класама парка и посетиоца такође није дозвољено мењати, уз изузетак заменеnullстварањем конкретног објекта на означеним местима.