Cilj predmeta je pridobiti znanja o
postopkih razvoja programske opreme s posebnim poudarkom na razvoju strežniških
(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 in je osnova za aplikacijske strežnike, kot so IBM WebSphere, Oracle
WebLogic, JBoss, TomEE, Oracle GlassFish, ipd.

Spoznali bomo tehnologije RMI (Remote Method Invocation), JDBC in JPA (Java
Persistent Architecture), EJB (Enterprise Java Beans), JMS (Java Message
Service), JAX-WS (Java API for XML Web Services), JAX-RS (Java API for RESTful
Services), JTS (Java Transaction Service), itd.
stores such as
Amazon, eBay and similar).
Those
applications that run on large server systems and must be capable of servicing
a multitude of concurrent users. They also need to work quickly and reliably.

In this course,
we will get familiar Java Enterprise Edition (Java EE, JEE), which is the
de-facto standard for the development of such applications and the basis for
application servers such as IBM WebSphere, Oracle WebLogic, Jboss WildFly,
TomEE,
GlassFish, and the
like.
We
will learn RMI (Remote Method Invocation), JDBC and JPA (Java Persistent
Architecture), EJB (Enterprise Java Beans), JMS (Java Message Service), JAX-WS
(Java API for XML Web Services
),
JAX-RS (Java API for RESTful Services), JTS (Java Transaction Service), etc.

We will also get
familiar with web services – REST and SOAP, WSDL, XSD, JSON, etc. For
client-side web development we will get familiar with HTML5/JavaScript and
AngularJS.

We will also
learn how to develop cloud-ready application using microservices, containers
and scalability. We will get familiar with Docker and Kubernetes.

Students will
also get familiar with Continuous Integration and Deployment, and learn how to
use code repositories (Git), build tools (Maven), build servers (Jenkins) and
artifact repository (Nexus).

The course is
practically oriented with exercises. Students develop an application using an
application server of their choice.
Students
will be prepared for challenging development projects and their management.
The
course will allow students to obtain Oracle or IBM certificates for Java EE
developers.