Задатак: Dining Savages Problem и мрежно програмирање
1. Потребно је решити проблем људождера који једу у дистрибуираном окружењу. Људождери и кувар представљају клијентске програме који користећи централни сервер комуницирају и приступају дистрибуираним објектима, текстуалним датотекама, на серверу. 2. Креирати пакет у који ће бити стављени сви материјали. Назив пакета треба да буде: rs.ac.bg.etf.kdp.imeprezimeindeks. 3. Ради приступања текстуалним датотекама које захтевају људождери и кувар треба имплементирати интерфејс Pot који има методе за дохватање и постављање хране у лонац. Интерфејс је дат у прилогу. 4. Класа за људождера (Savage), чији је код дат у прилогу, има main методу и која се повезује са сервером ради уписа. Серверски порт преко кога се комуницира и IP адреса сервера се уносе као аргументи командне лини. Последњи аргументи су имена датотека (хране) које је потребно дохватити и сачувати локално. 5. Класа за кувара (Cook) чији је код дат у прилогу, има main методу и која се повезује са сервером ради уписа. Серверски порт преко кога се комуницира и IP адреса сервера се уносе као аргументи командне лини. Остали аргументи су број итерација колико кувар дуго треба да спрема храну, колико хране треба да припреми у свакој итерацији, као и имена хране (датотека) које је потребно убацити у заједничке казане. 6. Кувар и људождери могу да приступају различитој храни у исто време. На серверу треба водити рачуна о томе да када кувар ставња неку храну он је ставља у неки бафер који прима само храну са тим именом. У једном баферу се налази више паковања хране која сва имају исто име. Када људождер дохвата неку храну онда се та храна дохвата из бафера који чува храну са датим именом, и исто важи и за кувара. 7. Синхронизација између нити на серверу се обавља користећи мониторску класу DiningSavages коју је такође потребно имплементирати. 8. На клијентској страни је потребно имплементирати интерфејсе Food и Pot. 9. Комуникацију између клијената и сервера реализовати користећи удаљене позиве метода у програмском језику Јава (java.rmi пакет).