Course's prerequisites:
-
Fluency in writing programs in Java, using a Java IDE (we favor
Eclipse), reading UML diagrams (use case, class, sequence),
reading Shell scripts in Bash, versioning with Git.
-
Some knowledge in Maven project construction, SQL programming.
Objectives of the teaching unit: After this teaching unit, you should
be able to:
-
Identify and utilise the main paradigms for interaction between
distributed entities (synchronous call, callbacks, asynchronous
calls, publish/subscribe) through the study and practical
application of various middleware technologies (REST, Server-Sent
Events, AMQP, MQTT, JavaEE).
-
Design and implement a distributed application comprising several
microservices. The application will be developed as part of a
microproject spanning the entire teaching unit.
-
Identify design patterns and architectural patterns that use
middleware for distributed applications: for example,
microservices patterns such as the Ports & Adapters
design pattern.
-
Define the concept of quality in distributed architecture and
analyse the architecture choices that enable software architecture
quality requirements to be met (for example, interoperability and
scalability), and apply these elements when designing a
distributed application: for example, decomposition into
microservices using the Domain Driven Design Approach.
Sequencing