- 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.
- 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
-
LectureDateMaterialKey notions
-
Software InstallationsTODO beforeTODO
-
ForewordForewordForeword
-
Session1Session 1
- Lecture 1: Presentation of the Teaching Unit, Middleware, Software Architectures, Microservices, Presentation of the micro-project
- Microproject: 01—Discover the application
- Addendum: Software Architecture, Examples of Quality Attributes, etc.
- Software architecture, views, quality attributes, tactics, architecture patterns/styles (layered, microkernel, event-driven, microservices)
- Middleware, separation of concerns, models of interaction (request/reply, callback, event-based)
-
Session2Session 2
- Lecture 2: REST Architecture Style
- Discover: REST with JAX-RS
- Microproject: 02—REST for microservice MiniSocs Frontend
- Addendum: XML serialisation and Basics of HTTP
- REST architecture style, client/server, stateless, cacheable, layered system, uniform interface (CRUD)
- Resource (URI, un/marshalling), representation format (JSON, XML)
- JAX-RS (JAVA RESTful Web services), annotations (@Path, @Consumes, @Produces, @GET..., @PathParam, @QueryParam)
-
Session3Session 3
- Microproject: Recommended milestone 1, Monolith application with REST access to the façade
-
Session4Session 4
-
Session5Session 5
-
Session6Session 6
-
Session7Session 7
-
Session8Session 8
-
Session9Session 9
-
Session10Session 10
-
Session11Session 11
-
Session12Lecture 12
-
Session13Session 12
- Conference: Amadeus
- Microproject: 06 and 07
-
Session14Session 14
-
Delivery of the Micro-ProjectDelivery of the Micro-ProjectBefore
at 6pm - Git archive or tag
-
Exam and Project DefenseExam and Project Defense