Cilj predmeta je pridobiti znanja o
postopkih razvoja programske opreme s posebnim poudarkom na razvoju zalednih
(server-side, datacenter, cloud) aplikacij, torej aplikacij, ki se uporabljajo
v velikih informacijskih sistemih podjetij ali velikih spletnih aplikacij (npr.
Facebook, LinkedIn, spletnih trgovin kot so Amazon, mimovrste, ebay in
podobnih). Te aplikacije, ki delujejo na velikih strežniških sistemih, morajo
biti sposobne servisirat množico sočasnih uporabnikov, hkrati pa delovati hitro
in zanesljivo. Pri predmetu se bomo v ta namen spoznali s tehnologijami Java
Enterprise Edition (Java EE oz. JEE), ki je de-facto standard za razvoj takih
aplikacij. Spoznali se bomo s spletnimi
storitvami REST in SOAP, JSON, OpenAPI, Swagger, WSDL, XSD, itd. Za razvoj odjemalnih spletnih
aplikacij se bomo spoznali s HTML5/JavaScript in Angular. Naučili se bomo razvoja aplikacij,
prilagojenih za oblak z uporabo mikrostoritev, vsebnikov in skalabilnosti.
Spoznali se bomo z Dockerjem in Kubernetes. Študentje bodo prav tako spoznali
neprekinjeno integracijo in nameščanje (Continous Integration), se naučili uporabe repozitorijev
izvorne kode (Git), build orodij (Maven), build serverjev (Jenkins) in
repozitorijev artefaktov (Nexus) ter se naučili osnov DevOps.
Ob tem bomo spoznali osnove mikrostoritev na eni strani in aplikacijske strežnike, kot so JBoss WildFly, IBM WebSphere, Oracle WebLogic, GlassFish in drugi.
Spoznali bomo tehnologije JAX-RS, CDI, JAX-P in JAX-B, JPA, JDBC, EJB, JMS, JAX-WS, JTS in napredne sporočilne sisteme AMQP, MQTT in druge. Prav tako se bomo spoznali z event streamingom in reaktivnimi koncepti.
Predmet je praktično orientiran in na vajah študentje razvijajo strežniško
aplikacijo po lastni izbiri, pri kateri uporabljajo omenjene tehnologije. Ob
koncu predmeta je poleg znanja rezultat tudi delujoča aplikacija. Študentje
bodo pripravljeni na zahtevne razvojne projekte in njihovo vodenje.
Znanje predmeta zadošča za pridobitev originalnega certifikata za Java EE razvijalca.