Code
IGFF CSC 5002
Niveau
M2
Graduate
Graduate
Semestre
Fall
Domaine
Informatique
Programme
Programme Ingénieur
Langue
Anglais/English
Crédits ECTS
4
Heures programmées
45
Charge de travail
90
Coordonnateur(s)
Département
- Informatique
Equipe pédagogique
Organisation
Cours/TD/TP/projet/examen : 25,5/3/16,5/1,5Acquis d'apprentissage
A la fin de ce module, les étudiants seront capables de :
- Identifier et utiliser les principaux modèles d'interaction entre composants répartis (appels synchrones, callbacks, orchestration, appels asynchrones, pub/sub) à travers l'étude et la mise en pratique de plusieurs middlewares (services REST et services Web, AMQP, JavaEE).
- Concevoir et mettre en œuvre une application répartie composée de plusieurs modules fonctionnels comprenant des composants de calcul, des composants persistants et des composants clients. L'application sera réalisée dans le cadre d'un microprojet s'étalant sur toute la durée du module.
- Identifier les modèles de conception et les modèles architecturaux utilisés par les intergiciels pour les applications réparties.
- Définir la notion de qualité d'une architecture répartie et analyser les choix architecturaux permettant de répondre aux exigences de qualité d'une architecture logicielle (par exemple, l'interopérabilité, la sécurité et le passage à l'échelle).
Compétences CDIO
- 1.3 - Connaissances avancées en ingénierie : méthodes et outils
- 4.3.2 - Définir la fonction, le concept et l'architecture
- 4.4.1 - Processus de conception
- 4.4.3 - Utilisation de connaissances préalables dans le cadre de la conception
- 4.8.5 - Conception de produits et services autour des nouvelles technologies
Prérequis
- 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
Mots-clés
middleware, microservices, hexagonal architecture, ports and adapters, distributed applications
Contenu
- Fondamentaux des intergiciels et des architectures logicielles
- Architectures logicielles monolithiques vs à base de microservices
- Style d'architecture REST, mise en oeuvre avec JAX-RS, sérialisation XML et bases du protocole HTTP
- Patron d'interactions synchrones et asynchrones, Server-Sent Events
- Architecture hexagonale, patron de conception Ports and Adapters
- Conception d'application orientée Domaine à base de microservices
- Fondamentaux des serveurs d'applications, persistance de données et ORM, mise en oeuvre de JPA avec EclipseLink
- Déploiement à base de micro-services et de conteneurs légers
- Réalisation d’un micro-projet
- Conférences par des intervenants extérieurs
Evaluation
La présence en cours et la participation seront prises en compte dans l'évaluation.
L'évaluation de cette UV repose sur un contrôle continu (CC) basé sur la réalisation de TP notés et/ou d'un micro-projet et/ou d'études de cas et/ou de dossiers écrits avec soutenance et d'un contrôle final sur table et sans document.
L'UV est validée si et seulement si la note finale est supérieure ou égale à 10.
Un seul examen final est organisé.
Formule de l'évaluation
Note Finale = 0.3 * CC + 0.7 * CF
Bibliographie
- 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
Approches pédagogiques
ASSIDUITE : CC
L’acquisition des connaissances est assurée à l’aide de cours, travaux-pratiques, micro-projet et conférences