Napredno veb programiranje

Cilj i ishod predmeta

Upoznavanje sa konceptima naprednog programiranja aplikacija velikog obima (Enterprise aplikacija).
Upoznavanje sa osnovnim konceptima na kojima se zasniva napredno Enterprise programiranje.
Poznavanje osnovnih koncepata Enterprise aplikacija. Poznavanje višeslojnih aplikacija i uloga svakog
sloja u njima. Upoznavanje sa distribuiranim programiranjem i pojmom aplikativnog servera. Poznavanje
mehanizama za asinhronu razmenu poruka. Poznavanje mehanizama za objektno-relaciono mapiranje.
Poznavanje koncepata transakcija, izolacija i zaključavanja. Poznavanje mehanizama koji omogućuju pisanje
Enterprise aplikacija, kao što su refleksija, instrumentacija i upravnjanje sigurnosnim mehanizmima.
Poznavanje osnova aspekt-orijentisanog programiranja. Poznavanje LDAP tehnologije. Poznavanje veb
servisa.

Teorijska nastava

Višeslojne aplikacije i aplikativni serveri. Pisanje distribuiranih aplikacija. Java Enterprise Edition
skup tehnologija. Enterprise Java Beans skup tehnologija. Objektno-relaciono mapiranje. Veze i upitni
jezici. Transakcije u Enterprise okruženju. Asinhrona razmena poruka. Napredni i serverski JavaScript
koncepti. Refleksija, anotacije, class loaders, Security Managers i instrumentacija. Aspekt-orijentisano
programiranje. Veb servisi. LDAP serveri. Spring Boot okruženje.

Praktična nastava

Angular okruženje za klijentske aplikacije. Enterprise Java Beans i Java Enterprise Edition aplikativni
serveri. Pisanje session EJB beans. Pisanje entiteta, relacija i rad sa JPA upitnim jezikom. Povezivanje
REST i EJB koncepata. Objedinjavanje veb i serverskih aplikacija. Korišćenje JMS koncepata za
asinhronu razmenu poruka. Upotreba Spring Boot okruženja za pisanje serverskih (backend) delova
aplikacija. Pisanje sopstvenih anotacija, upotreba refleksije. Pisanje sopstvenih class loader-a. Pisanje
sopstvenih Security Manager klasa. Upotreba instrumentacije za izmenu programa u toku izvršenja (run
time). Pisanje aspekata za presretanje izvršenja programa.

5702-napredno-xa-web-xa-programiranje