Développement Java

Java, programmation avancée

Objectifs de la formation

  • Mettre en œuvre la programmation concurrente à base de threads
  • Mettre en œuvre différentes techniques de communication (Socket, RMI, JMS)
  • Administrer une application Java via JMX, surveiller la JVM
  • Mettre en œuvre la programmation réflexive et à base d’annotations


Programme de la formation

La programmation concurrente

  • Les concepts de la programmation multithread : le modèle d’activités de Java (Runnable et Thread).
  • La création/destruction des threads. Ordonnancement des threads.
  • La synchronisation des threads. Le verrouillage des méthodes et des instructions (synchronized). Les moniteurs.
  • Quelques problèmes du multithread : l'interblocage (caractérisation, évitement, prévention, détection), la famine.
  • Les extensions du modèle introduites dans Java.5 (Callable<T>, Future<T>, ExecutorService. Les nouvelles collections.
  • Le modèle Fork/Join de Java 7. Les extensions de Java 8 (CompletableFuture).
  • Les divers outils de gestion de la concurrence : les verrous partagés/exclusifs, les sémaphores, les barrières cycliques.

Travaux pratiques

Construction d'une application multithread avec contraintes de concurrence.

La communication par socket

  • Rappels sur les principaux concepts réseaux.
  • La communication en mode connecté.
  • Le modèle client/serveur. Serveur séquentiel versus serveur concurrent. Utilisation de la sérialisation.
  • La programmation en mode non connecté. Le modèle Peer to Peer.

Travaux pratiques

Programmation de l'étude de cas en mode client-serveur (séquentiel et concurrent).

La communication par invocation de méthode distante : RMI

  • Les principes généraux des ORB (Object Request Broker).
  • Le modèle RMI (les concepts, les interfaces classes de base).
  • Le service de nommage.
  • Le processus de développement du client et du serveur.
  • Les contraintes de sécurité et de chargement de classes.

Travaux pratiques

Programmation de l'étude de cas à l'aide de RMI.

La communication par messages : JMS

  • Les principes généraux de la communication par messages.
  • Le modèle de base (les concepts de JMS, les interfaces et les classes).
  • Les différentes formes de messages.
  • La communication en mode point à point.
  • La communication en mode publish/subscribe.

Travaux pratiques

Programmation de l'étude de cas à l'aide de JMS.

L’administration des applications : JMX

  • Le modèle JMX (Java Management eXtension) : les concepts, les interfaces et les classes correspondantes.
  • Les MBeans et MBeanServers.
  • La mise en place d’une couche d’administration.
  • La console d'administration (JConsole).
  • La communication à l’aide des adaptateurs et des connecteurs.

Travaux pratiques

Mise en place d'une couche d'administration-supervision pour l'étude de cas.

La programmation réflexive

  • Les objectifs et les principes.
  • La découverte dynamique des informations relatives à une classe ou à un objet.
  • L’instanciation et l’invocation dynamique.
  • La réflexivité et les annotations en Java 5.

Travaux pratiques

Programmation de l'étude de cas en mode client-serveur (séquentiel et concurrent).

Un panorama des extensions de Java 5 à...

  • Les types : les génériques, les énumérations, l’autoboxing/autounboxing, les records.
  • Les lambda-expressions, les interfaces fonctionnelles.
  • Les streams de Java 8.
  • Les modules de Java 9.

Please login to get access to the quiz
Concepts objets et Programmation Java SE 8 (Prev Lesson)
(Next Lesson) Introduction à la programmation, avec Java
Back to Développement Java