Code
IGFF CSC 5002
Level
M2
Graduate
Graduate
Semester
Fall
Domain
Informatique
Program
Programme Ingénieur
Language
Anglais/English
ECTS Credits
4
Class hours
45
Workload
90
Program Manager(s)
Department
- Informatique
Educational team
Organisation
Cours/TD/TP/projet/examen : 25,5/3/16,5/1,5Learning 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).
CDIO Skills
- 1.3 - Advanced engineering fundamental knowledge, methods and tools
- 4.3.2 - Defining Function, Concept and Architecture
- 4.4.1 - The Design Process
- 4.4.3 - Utilization of Knowledge in Design
- 4.8.5 - Designing products and services around new technologies
Prerequisites
- Modélisation d’applications avec UML, programmation en Java avec un IDE (Eclipse), scripts en bash, gestion de version avec git, base de données et langage SQL
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
- Microproject
- 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 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
Note Finale = 0.3 * CC + 0.7 * CF
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
L’acquisition des connaissances est assurée à l’aide de cours, travaux-pratiques, micro-projet et conférences