Напредно веб програмирање

Циљ и исход предмета

Упознавање са концептима напредног програмирања апликација великог обима (Enterprise апликација).
Упознавање са основним концептима на којима се заснива напредно Enterprise програмирање.
Познавање основних концепата Enterprise апликација. Познавање вишеслојних апликација и улога сваког
слоја у њима. Упознавање са дистрибуираним програмирањем и појмом апликативног сервера. Познавање
механизама за асинхрону размену порука. Познавање механизама за објектно-релационо мапирање.
Познавање концепата трансакција, изолација и закључавања. Познавање механизама који омогућују писање
Enterprise апликација, као што су рефлексија, инструментација и управњање сигурносним механизмима.
Познавање основа аспект-оријентисаног програмирања. Познавање LDAP технологије. Познавање веб
сервиса.

Теоријска настава

Вишеслојне апликације и апликативни сервери. Писање дистрибуираних апликација. Java Enterprise Edition
скуп технологија. Enterprise Java Beans скуп технологија. Објектно-релационо мапирање. Везе и упитни
језици. Трансакције у Enterprise окружењу. Асинхрона размена порука. Напредни и серверски JavaScript
концепти. Рефлексија, анотације, class loaders, Security Managers и инструментација. Аспект-оријентисано
програмирање. Veb сервиси. LDAP сервери. Spring Boot окружење.

Практична настава

Angular окружење за клијентске апликације. Enterprise Java Beans и Java Enterprise Edition апликативни
сервери. Писање session EJB beans. Писање ентитета, релација и рад са JPA упитним језиком. Повезивање
REST и EJB концепата. Обједињавање веб и серверских апликација. Коришћење JMS концепата за
асинхрону размену порука. Употреба Spring Boot окружења за писање серверских (backend) делова
апликација. Писање сопствених анотација, употреба рефлексије. Писање сопствених class loader-а. Писање
сопствених Security Manager класа. Употреба инструментације за измену програма у току извршења (run
time). Писање аспеката за пресретање извршења програма.

5702-napredno-xa-web-xa-programiranje