ALOM Architectures Logicielles Orientées Microservices
Introduction
About You
🍎 IPhone vs Android 🤖
🐱 Cats vs Dogs 🐶
☕ Coffee vs Tea 🍵
Java vs Node
ALOM - Objectifs 🎯
- Vision du développement Java/JEE en entreprise
- Principes fondateurs, besoins, contraintes, architectures
- Comment ça fonctionne ?
- Déploiements distribués, cloud
- Frameworks
- Outils / Middlewares
Planning du cours (prévisionnel)
- Introduction
- Handcrafting everything - 💙 servlets
- Java 5 to 23
- Spring Boot
- Persistance des données
- GUI
- Intéropérabilité
- Traitements asynchrones - Kafka
- Clean Architecture - Hexa
- Patterns avancés/Cloud/Containers...
Planning du TP
- Setup
- Handcrafting everything - 💙 servlets
- Java 5 to 21
- Spring Boot
- Persistance des données, relationnel, NoSQL
- Spring MVC, JSP
- Web services
- Intéropérabilité
- Traitements asynchrones - Kafka
- Clean Architecture - Hexa
- Patterns avancés
Outils
-
IDE : IntelliJ IDEA conseillé 😃
- Eclipse, Netbeans, VSCode sinon
- Tomcat (Embedded)
- Maven
- Git - GitLab
- Java
- Java 17 (release sept. 2021)
- Java 21 (release sept. 2023)
Références
- Cours de CAR
- spring.io -
Notation
Projet + Démo
🗓️ présentation le 11 décembre, rendu le mercredi 10 janvier
Besoins et contraintes
- 💾 Gestion de session/persistance de données
- 🔐 Sécurité
- ⛑️Gestion d’erreur, de transactions 💳
- 💪 Montée en charge (scalabilité)
- Déploiement distribués
- Load-balancing
- 🤝 Interopérabilité avec les partenaires
- 🚂 Intégration aux systèmes existants (legacy)
- ☁️ Compatibilité avec les produits cloud (Cloud Native)
Notions de framework
Fournit des services pour répondre aux besoins & contraintes.
JEE (Jakarta EE) est un framework, Spring est un framework
- Inversion de contrôle, injection de dépendances
- Configuration
- Pools d’objets, montée en charge, gestion de session
- Transactions
- Web services
- Messaging
- Sécurité
Hardware / OS / Middleware / Software
- Hardware : Couche physique (CPU/RAM/Disque), virtualisé ou bare-metal
- OS : Système d'exploitation. Primitives d'usage de la couche physique (POSIX)
- Middleware : Environnement d'exécution d'applications, et services (Java / Tomcat)
- Framework : Support du développement
- Software : c'est nous ! 🖈
Ecriture d'applications
🥊 Monolith Vs Micro-services 🥊
Monolith
Application "tout-en-un"
- IHM (web)
- Services
- Un seul "package"
Ecriture d'applications
🥊 Monolith Vs Micro-services 🥊
Micro-services
- IHM
- Services métiers découpés
- Plusieurs "packages"
Ecriture d'applications
- Développement de composant séparés
- Composants métiers : EJB/Services
- Composants IHM : JSP/Web
- Web services
- Construction d’une application par assemblage de composants
- Composants métier/IHM
- Services middleware
Assemblage d'application