The aim of the
course is to gain knowledge about the software development processes and
principles, with particular emphasis on the development of server-side, datacenter,
and cloud applications, ie. applications that are used in large enterprise information
systems or large web applications (eg. Facebook, LinkedIn, online 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.

We will learn the basics of microservice arhitevture and cloud-native development.

We will get familiar with developing microservices in Java and get to know JAX-RS, CDI, JAX-P and JAX-B, JPA, JDBC, JMS, JAX-WS, JTS and advanced AMQP, MQTT and other messaging systems. We will also get acquainted with event streaming and reactive concepts.

We will also get familiar with web services
REST, JSON, OpenAPI, Swagger, etc. For the development of client web pages
applications will get familiar with HTML5 / JavaScript and Angular.

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 provide enough knowledge for students obtain certificates for Java EE
developers.