du 1 au 2 mars 2021
PROFILS VISÉS :
Développeurs, Chefs de projets
PRÉ-REQUIS
Notions des concepts web et du protocole HTTP. Ne nécessite pas de connaissance en programmation
OBJECTIFS
Cette formation vise à offrir une compréhension de l’architecture REST à travers de nombreux TPs permettant d’illustrer et de mettre en oeuvre les différents concepts et sujets abordés.
PROGRAMME
INTRODUCTION AUX APIs ReST
L’écosystème moderne
Roy Thomas FIELDING : Papa du ReST
Richardson’s maturity model or Web Service Maturity Heuristic
H.A.T.E.O.A.S., Resource Linking & Semantic Web
Les conventions
Les différentes approches de versioning
Les standards
Travaux Pratiques
Définition et conception d’une API ReST.
LA BOITE A OUTILS
Conception d’API ReST avec OpenAPI & Swagger
Test , gestion multi environnement et Assertion avec Postman
Travaux Pratiques
Spécification d’une API ReST avec Swagger
Testing d’une API ReST avec Postman ( sans développement )
INTRODUCTION MICROSERVICE
Les applications monolithiques
Evolution des applications en image
Présentation de l’architecture microservice
Bonus : Démonstration d’une application
AUTHENTIFICATION & AUTORISATIONX
JWT: utilisation d’un jeton JWT
Concept OAuth2
Les différents flow
Travaux Pratiques
Utilisation d’un flow OAuth2 avec postman/ Présentation de Keycloack (facultatif)
API MANAGEMENT
Intérêts et fonctionnalités des solutions d’API Management
Bonus : Prise en main de la solution d’API WSO2
PROFILS VISÉE :
Développeurs, Chefs de projets, Architectes techniques
PRÉ-REQUIS
Connaissance d’un langage de programmation type C/C++, Pascal, Delphi
TRAVAUX PRATIQUES ET DIRIGÉ
Ce cours comporte de nombreux TDs et TPs permettant d’illustrer et de mettre en oeuvre les différents concepts et sujets abordés.
PROGRAMME
ETAT DE L’ART DES TECHNOLOGIE OBJET
> L’évolution des langages de programmation
> Comparaison entre l’approche fonctionnelle et l’approche objet
> Etat de l’art concernant les langages et technologies objet actuelles : C++, Java, C#, PHP.
CONCEPTS JAVA AVANCÉS
> Introspection et notion de méta modèle
> Les classes Class, Method
> Réflexion : invocation dynamique de code
> Les exceptions : principes, utilisation.
INTRODUCTION A JAVA
> La machine virtuelle
> Le classpath
> Les types de base et opérateurs
> Les structures de contrôle
> Les tableaux
> Les chaînes
CONCEPTS ARCHITECTURAUX
>Programmation par contrat de service, notion d’interface
> Notions d’architecture et de composants
> Couplage des composants, organisation en couches applicatives d’un système
LES CONCEPTS OBJETS AVANCÉS
> Abstraction, objets et classes
> Généralisation et spécialisation, classification, principe d’héritage
> Comprendre le polymorphisme
LES CONCEPTS OBJECTS DE BASE
> d’instances, d’états et de comportements
> Messages, communication et collaboration entre les objets
> Encapsulation, attributs et méthodes
> Mise en oeuvre avec Java
> Relations entre les classes, association, agrégation, composition et dépendance
> Réutilisation
> Mise en oeuvre avec Java
PROFILS VISÉE :
Développeurs, Chefs de projets, Architectes techniques
PRÉ-REQUIS
> Connaissance de la syntaxe du langage Java
> Connaissance du concept objet
> Une mise en œuvre du
langage sur une application basique est fortement recommandée
TRAVAUX PRATIQUES ET DIRIGÉ
Les TPs et TDs qui seront réalisés dans cette formation permettront de très bien appréhender la multitude de concepts exposés
PROGRAMME
OPTIMISER LA JVM (Machine Virtuelle)
> Comprendre comment fonctionne le garbage collector et la gestion de la mémoire, forcer un garbage
> Optimiser l’utilisation de la mémoire, modifier les paramètres de lancement
> Comprendre le class loader
> Modifier la stratégie de chargement des classes : écriture d’un classloader
> Piloter la JVM via API
ACCÉDER À UNE BASE DE DONNÉES RELATIONNELLE AVEC JDBC
> Architecture et types de pilotes JDBC
> Charger le pilote et récupérer une connexion à la base de données
> Exécuter des requêtes SQL, requêtes paramétrées
> Exploitation des résultats
> Notion de persistance objet :
• Principes
• Data Transfer Object
• Exemple d’Hibernate
CONCEPTS ET SYNTAXES AVANCÉS DU LANGAGE
> Les « import static »
> Autoboxing et auto-unboxing des types primitifs
> Les types génériques
> Amélioration des boucles avec les collections
> Introspection et réflexion
> Méthodes à nombre d’arguments variable
> Annotations : utilisation, création
GESTION DE FLUX D’ENTRÉES/SORTIES
> Flux binaires, encodages
> Sérialisation/désérialisation d’objets
> Les modifieurs Java et leurs impacts
LA SECURITEE EN JAVA SERVEUR JAVA EE
> Les API de sécurité (JAAS, JCE, JSSE)
> La configuration
ARCHITECTURE À OBJETS DISTRIBUÉS :RMI (Remote Method Invocation)
> Présentation
> Appel de méthodes d’un objet distant (TCP-IP)
> Appel de méthodes d’un objet distant (RMI)
> Annuaire d’objets : RMIRegistry
> Interface Remote
> Le compilateur rmic
> Stub et skeleton
GÉRER LES ACCÈS CONCURRENTS
> Définition d’un thread
> Créer et manipuler les threads
> Synchroniser les threads sur un objet moniteur
> Exemple de temps réel
> Bonnes et mauvaises pratiques
PROFILS VISÉE :
Développeurs, Chefs de projets, Architectes
PRÉ-REQUIS
Bonne pratique de Java
TRAVAUX PRATIQUES ET DIRIGÉ
Les TPs et TDs qui seront réalisés dans cette formation permettront de très bien appréhender la multitude de concepts exposés
PROGRAMME
INTRODUCTION
> Concepts de conteneur léger
> Vue d’ensemble et exemples d’utilisation
> Pattern ‘Inversion de Contrôle (IoC) par Injection de dépendance
MISE EN OEUVRE: LE CONTENEUR LÉGER DE SPRING
> Vue d’ensemble du framework
> Les Beans, BeanFactory et ApplicationContext,
> Mode singleton ou normal,
> Méthodes d’injection de dépendance,
> Configuration de beans spécifiques à Spring, cycle de vie,
> Définition de bean abstrait et héritage,
> Injections automatiques
> APIs d’accès aux ressources,
> Techniques de validations (PropertyEditors, DataBinder, BeanWrapper).
> Configuration de SessionFactory dans le contexte d’application Spring,
> IoC : HibernateTemplate et HibernateCallback,
> Implémentation DAO avec les APIs Hibernate,
> Démarcation de transactions par programmation et déclaration.
PROGRAMMATION ORIENTÉE ASPECT (AOP)
> Les concepts,
> La terminologie utilisée : Aspect, Joinpoint, Advice, Pointcut, Introduction, Target object, AOP Proxy, Weaving,
> Les différents types « advice » : Around, Before, Throws, After,
> Les objectifs et fonctionnalités AOP de Spring,
> Intégration avec le framework AspectJ.
FRAMEWORK MVC WEB SPÉCIFIQUE À SPRING
> Orientations MVC2, rappels
> Configuration du serveur
> Les contrôleurs,
> Les gestionnaires de vues,
> Les mappings
> Spring WebFlow
> Intégration avec JSF et Struts.
GESTION DES TRANSACTIONS
> La couche d’abstraction Spring,
> Les stratégies de transaction : par programmation ou par aspects
> Mise en oeuvre d’une gestion transactionnelle sans programmation et par les aspects
PATTERN DAO, ACCÈS AUX DONNÉES AVEC JDBC
> Classes abstraites pour le support DAO,
> Utilisation de JDBC via les APIs d’encapsulation Spring.
PANORAMA DES « AUTRES » COUCHES D’INTÉGRATION SPRING