Formation aux technologies de l'informatiqueformation java

Développer une couche métier avec les EJB 3

FJ320
Prix inter : 2210 € HT Durée: 5 jours
Prix intra*: 5950 € HT
* jusqu'à 8 personnes
Public
Public : développeurs, chefs de projet, architectes
Niveau : expert
Prochaines sessions
Nous contacter au 06 68 36 54 43 ou par mail
Description

L'architecture EJB 3 représente le standard pour développer des composants métiers avec JavaEE 5. Cette nouvelle version des EJB offre un modèle de programmation simplifié, notamment grâce à l'utilisation des annotations.

Ce cours vous apprendra à mettre en oeuvre les différents types d'EJB (Session Beans, MDB, Timers, Entité), ainsi que les techniques de remoting associées (RMI, JMS et Web Service). Il traite en outre des problématiques de gestion tansactionnelle, de la sécurité et du déploiement.

Pré-requis
Les participants doivent posséder une bonne expérience de la programmation Java, ainsi que du langage SQL. La connaissance de la programmation Servlet / JSP et des annotations Java 5 est un plus.
Programme
  • Architecture multi-tiers et composants distribués

    • La plateforme JavaEE 5 : les concepts, les composants et les services
    • Les principes des Enterprise Java Beans et leur utilisation dans l'architecture
    • Les nouveautés de JavaSE 5 et EJB 3
  • Premier pas avec les EJB session

    • Définition d'un Session Bean
    • Développement des classes et interfaces d'EJB
    • Les annotations spécifiques EJB 3
    • Déploiement d'un EJB
    • Développer un client d'EJB
  • Développement avancé de Session Beans

    • Principe d'injection des dépendances
    • Accès local / accès distant
    • EJB Session Stateless et Stateful
    • Le cycle de vie et le pool d'instance
    • Les méthodes de callback
    • Activation et passivation des composants
    • Le descripteur de déploiement XML
  • Gestion des transactions

    • Rappel des propriétés d'une transaction : les propriétés ACID
    • Présentation de l'API JTA
    • La gestion déclarative avec les annotations
    • Principe de propagation des transactions
    • La gestion programmatique des transactions
    • Gestion des exceptions
    • Principe des transactions distribuées : commit à deux phases
  • Persistance des données avec les Entity Beans

    • Les principes du mapping objet/relationnel
    • La nouvelle technique de persistance : JPA
    • Développer une première classe persistante avec JPA
    • Intégration dans un Session Bean
  • Mapping objet / relationnel avec JPA

    • Contexte et objectifs d'un outil de mapping Objet / Relationnel comme JPA
    • Développement des classes persistantes : POJO, unicité des objets, sérialisation, associations
    • Mapping des classes : identifiants, propriétés, données temporelles et types énumérés
    • Mapping des associations : embedded, one-to-one, one-to-many, many-to-one
    • Mapper une hierarchie d'héritage : les différentes stratégies possibles
  • Manipuler les objets persistants JPA

    • Charger les objets persistants : les différentes techniques de lecture
    • Les stratégies de chargement : lazy loading, chargement immédiat, chargement agressif
    • Mécanisme détaillé du lazy loading : comment maîtriser le chargement retardé
    • Les opérations CRUD : insertion, lecture, mise à jour et suppression d'un objet persistant
    • Comprendre le cycle de vie des objets persistants gérés par JPA
    • Synchronisation avec la base de données : les différents modes de flushing
    • Principe de la persistance en cascade lors des opérations d'écriture
    • Les techniques de verrouillage pessimiste et optimiste
  • Utilisation avancée du mapping JPA

    • Mapping des classes et propriétés : clé primaire composée, mapping multi-tables...
    • Contrôler les requêtes INSERT et UPDATE générées par JPA
    • Mapping des associations : sémantiques list et map, associations many-to-many
  • Le langage EJB QL

    • Requêtes d'interrogation : sélection des données, opérateurs de comparaison, opérateurs logiques
    • Opérations sur les chaînes de caractères et les données temporelles
    • Principe des requêtes avec jointures implicites, internes, externes et jointures rapportées
    • Principe des sous-requêtes et des prédicats associés (in, all, any, some, exist)
    • Effectuer des projections et utiliser l'instanciation dynamique
    • Requêtes sur les ensembles : les clauses count, min, max, avg, having, group by
  • Développement de composants orientés message

    • Principe des MOM (Middlewares Orientés Message)
    • Mise en oeuvre avec JMS (Java Message Service)
    • Modèles de messages Publish/Suscribe et Point-To-Point
    • Le développement d'un EJB Message Driven Bean
    • La gestion transactionnelle avec les MDB
    • Le cycle de vie d'un MDB
  • Intégration des EJB dans l'architecture JEE

    • Packaging d'une application JEE
    • Injection des EJB dans les composants web
  • Les EJB Timers

    • Exécuter un service planifié dans un EJB Session Stateless
    • Présentation de l'interface TimerService
    • Les EJB Timer de type Message Driven Bean
  • Gestion de la sécurité

    • Notions d'authentification et d'autorisations
    • Définir des permissions d'accès aux EJB
    • Exécution d'un EJB en mode RunAs
  • Intercepteurs d'EJB

    • Principe des intercepteurs
    • Ecrire un intercepteur d'EJB
    • Appliquer les intercepteurs aux EJB
    • Interception d'évènements du cycle de vie
  • Les Services Web et les EJB

    • Principe des Services Web
    • Créer un Service Web avec un EJB Session et JAX-WS
    • Client d'un Service Web
Travaux Pratiques
Les travaux pratiques sont réalisés avec Eclipse, JBoss 5 ou Glassfish, et MySQL. Les exercices vous donneront l'occasion d'écrire des composants EJB que vous intégrerez à des mini-applications web et Swing qui vous seront fournies.
Intervenants
Olivier Hanny
Olivier est un spécialiste des technologies Java / JEE depuis l'année 2000, après une carrière d'ingénieur dans la sidérurgie. Il est aujourd'hui consultant indépendant, et partage son temps entre des missions de réalisations informatiques (Java, Flex) et l'animation de formations.