Middleware and software architecture for distributed applications

Catalog of Télécom SudParis courses

Code

IGYE CSC 5002

Domain

Informatique

Program

Master

Language

English

ECTS Credits

5

Class hours

48

Workload

84

Program Manager(s)

Department

  • Informatique

Educational team

Organisation

Cours/TD/TP/projet/examen :

Learning objectives

After this teaching unit, you should be able to:
- Identify and use the main interaction patterns between distributed components (synchronous call, callbacks, orchestration, asynchronous calls, publish/subscribe) through the study and practise of several middleware (RestFul Services, Web Services, AMQP, JavaEE).
- Design and implement a distributed application made of several functional modules with computing components, persistent components, client components. The application will be realised in the context of a microproject lasting during all the teaching unit.
- Identify design patterns and architectural patterns used by middleware for distributed applications.
- Define the quality of a distributed architecture and discuss architecture choices to respond to the quality requirements a of software architecture (e.g. interoperability, security, scalability).

Prerequisites

Unix user commands, application modeling with UML, object oriented programming, Java language, database systems, fundamentals of distributed applications

Keywords

middleware, microservices, hexagonal architecture, ports and adapters, distributed applications

Content

- Fundamentals of middleware and software architectures
- Monolithic and microservice-based software architectures
- REST Architecture Style, REST with JAX-RS, XML serialisation and Basics of HTTP
- Synchronous and asynchronous interaction patterns, Server-Sent Events
- Hexagonal Architecture, Design Pattern Ports & Adapters
- Domain Driven Design of Microservices Applications
- Fundamentals of application servers, Persistence and Object Relational Mapping
- Distributed Event-Based Systems, AMQP with RabbitMQ
- Feature Flagging; Observability; Benchmarking
- Micro-project
- Conferences by external experts

Evaluation

Class attendance and participation will be taken into account in the evaluation.
The evaluation for this course is based on continuous control (CC) consisting of graded lab assignments and/or a micro-project and/or case studies with oral presentations, as well as a final written exam (FE) taken in class without reference materials.
The course is considered passed if and only if the final grade is 10 or higher.
Only one final exam is administered.

Assessment formula

Final grade = 0.3 * CC + 0.7 * FE

References

- Supports de cours

Bibliographie :
- Hexagonal Architecture Explained: How the Ports & Adapters Architecture Simplifies Your Life, and How to Implement It, by Alistair Cockburn and Juan Manuel Garrido de Paz, Ed. Humans and Technology Press, Series on Object-Oriented Design, EAN 9781737519799, 2024

Pedagogical methods

ASSIDUITE : CC
All the subjects of the module will be illustrated by research articles as well as practical labs. Through a micro-project students will design and implement a distributed application.