Introduction aux Session Beans

Slides:



Advertisements
Présentations similaires
Didacticiel Mon EBSCOhost
Advertisements

11 - Composants dun routeur. Sommaire 1)Sources de configuration externes 1)Composants de configuration internes et commandes détat associées.
Module 5 : Implémentation de l'impression
Serveur jeu Le serveur fait partie d'un logiciel de jeu en ligne multi joueur en architecture client serveur. Il répond à des demandes.
Connecter des données métier à Office SharePoint Server 2007 via le Business Data Catalog.
TP 7.1 synchronized et join Écrire un programme Java qui crée 1000 threads et maintient un compteur nb du nombre de threads créés jusque-là. Le thread.
Chapitre I : Systèmes d’exploitation
Exposé de Système - Informatique et Réseau
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
Introduction aux Entity Beans
Relations avec les entity beans Michel Buffa UNSA
Tiré du cours de Richard Grin
Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 247 Entity EJB.
Stéphane Frenot - Département Télécommunication - SID - II - EjbServ 227 EJB Session.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Session Module Java Expert.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV Borland JBuilder 7 Module WSAD.
Servlet JAVA.
Oct.-2000DESS IIDEE © B. BAH 1 ASP Caractéristiques dun fichier ASP Son extension : « *.asp » La balise: Son indépendance vis à vis de toute plate–forme,
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Java EE et les EJB Maxime Lefrançois
Module 1 : Préparation de l'administration d'un serveur
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
JAVASERVER FACES Un framework Java pour le développement Web.
1 Sécurité Informatique : Proxy Présenter par : Mounir GRARI.
Serveurs Partagés Oracle
Auto Exterior Scoop SQP PROCESSUS 24 juillet 2006 Version validée V01.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Chapitre 21 Collections Partie I Introduction Une collection : est un objet qui regroupe multiple éléments dans une unité. Une collection est.
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
1 Objectifs de ce cours (I21) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Résumé du cours précédent.
.Net Remoting.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Développement dapplications web Authentification, session.
Développement d’application web
Framework Play 2.0 Démonstration du proof of concept
Un patron de conception
EJB & Serveurs d’applications
PROJET DE GENIE LOGICIEL 2005
Module 2 : Préparation de l'analyse des performances du serveur
COURS DE PROGRAMMATION ORIENTEE OBJET :
Développement dapplication avec base de données Semaine 10 : WCF avec Entité Framework Automne 2013.
Adaptée du cours de Richard Grin
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Créer des packages.
HIBERNATE Mapping Objet / base de données relationnelle
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Les sockets.
PHP 6° PARTIE : LES SESSIONS 1.Introduction 2.Identificateur de session 3.Variables de session 4.Client / Serveur 5.Principe 6.Ouverture de session 7.Enregistrement.
Présentation ESTRABOX
Chapitre VII Techniques plus avancées à travers le concept de classe.
Iup MIAGe 3° année Projet MIAGe Toulouse – Groupe 21 Charte graphique.
EJBs sont des composants distants Minimiser les appels aux EJBs « Design pattern » Data Transfer Object = JavaBean = programmation à gros grain par rapport.
Les Servlets Présentation Cycle de vie Principe de fonctionnement
11° Rencontres Médicales de L’Eure Messagerie Sécurisée de Santé
Service de vidéo à la demande Projet Tutoré : Groupe C3 Université Paris 5.
Architecture Client/Serveur
Les Java Server Pages Dans ce chapitre, nous allons :
SKY.
Java Remote Method Invocation
BlueJ_VII 1 Java, les objets : tout de suite ! Conception de classes (1) Notes de cours associées au chapitre 7 tutorial BlueJ
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
Chapitre 12 Surveillance des ressources et des performances Module S41.
Applications distribuées Introduction Jean-Jacques LE COZ.
Architecture J2EE Web Jean-Jacques LE COZ. J2EE Web Container JSP Page Servlet J ava 2 Standard Edition APIs EJB Container EJB JDBCJMS JNDI JTA JavaMail.
Transcription de la présentation:

Introduction aux Session Beans Michel Buffa (buffa@unice.fr), UNSA 2002 modifié par Richard Grin (version 1.1, 21/11/11)

Plan du cours Introduction générale EJB : Les fondamentaux Introduction aux Session Beans Introduction aux Entity Beans Introduction aux Message-Driven Beans Concepts avancés sur la persistance Relations avec les Entity Beans Gestion des transactions

Session Bean : rappel Un Session Bean représente Exemples une action, un verbe, une logique métier, un algorithme, Un enchaînement de tâches… Exemples Saisie d'une commande, Compression vidéo, Gestion d'un caddy, d'un catalogue de produits, Transactions bancaires…

3 types de beans sessions Sans état : traite les tâches qui peuvent être accomplies en un seul appel de méthode ; pas d’état maintenu entre 2 appels de méthode Exemple : afficher la liste des comptes bancaires d’un client Avec état : est associé à un seul client ; maintient un état entre plusieurs appels de méthodes ; pour les tâches accomplies en plusieurs étapes Exemple : remplir son caddy avec des articles dont les caractéristiques sont affichées sur des pages différentes

3 types de beans sessions Singleton : quand on veut être assuré qu’il n’y a qu’une seule instance du bean pour tous les utilisateurs de l’application Exemple : cache d’une liste de pays (pour améliorer les performances)

Stateless Session Beans Le client passe toutes les données nécessaires au traitement lors de l'appel de méthode Le container est responsable de la création et de la destruction du Bean Il peut le détruire juste après un appel de méthode, ou le garder en mémoire pendant un certain temps pour réutilisation. Une instance de Stateless Session Bean n'est pas propre à un client donné, elle peut être partagée entre chaque appel de méthode Le serveur maintient un pool de beans sans état

Exemple de bean sans état package fr.unice.ejb.conversion; import java.math.BigDecimal; import javax.ejb.*; @Stateless public class ConvertisseurBean { private BigDecimal tauxEuro = new BigDecimal("0.0093016"); public BigDecimal yenVersEuro(BigDecimal yen) { BigDecimal val = yen.multiply(tauxEuro); return val.setScale(2, BigDecimal.ROUND_UP); } }

Interface locale Si on ne fournit pas d’interface séparé à ConverterBean, il aura automatiquement l’interface composée de sa méthode publique et il ne pourra être utilisé que par les composants qui sont dans le même serveur d’application Ce qui correspondra au code du transparent suivant

Interface locale et implémentation 30/03/2017 Interface locale et implémentation @Local public interface Convertisseur { public BigDecimal yenVersEuro(BigDecimal yen); } @Stateless public class ConvertisseurBean implements Convertisseur { ... } Donner une interface locale explicite permet de ne pas exposer aux clients toutes les méthodes publiques du bean on pourrait annoter l’interface par @ Certaines méthodes publiques peuvent n’être utilisé que pour rendre le service lorsque le service est rendu par plusieurs classes qui ne sont pas dans le même paquetage mais c’est très rarement le cas. Le plus souvent une interface locale est donc superflue.

Interface distante et implémentation 30/03/2017 Interface distante et implémentation Pour que le bean session soit utilisable par un composant situé sur un serveur d’application, il faut lui ajouter une interface distante : @Remote public interface ConvertisseurDistant { public BigDecimal yenVersEuro(BigDecimal yen); } @Stateless public class ConvertisseurBean implements Convertisseur { ... } Un bean peut implémenter 2 interfaces locale et distante.

Stateful Session Beans Certaines conversations se déroulent sous forment de requêtes successives. Exemple : un client surfe sur un site de e-commerce, sélectionne des produits, remplit son caddy… D'une requête HTTP à l'autre, il faut un moyen de conserver un état (le caddy par ex.)

Stateful Session Beans En résumé, un Stateful Session Bean est utile pour maintenir un état pendant la durée de vie du client au cours d'appels de méthodes successifs. Au cours de transactions successives. Si un appel de méthode change l'état du Bean, lors d'un autre appel de méthode l'état sera disponible. Conséquence : une instance de Stateful Session Bean par client.

Exemple de bean avec état 30/03/2017 Exemple de bean avec état @Stateful @StatefulTimeout(300000) // 5 minutes public class CaddyEJB { private List<Item> caddy = new ArrayList<Item>(); public void addItem(Item item) { ... } @Remove public void checkout() { caddy.clear(); } ... } Si le caddy n’a pas reçu d’appel de méthode au bout de 5 minutes, il est supprimé.

Problème de ressource Le client entretient une conversation avec le bean, dont l'état doit être disponible lorsque ce même client appelle une autre méthode. Problème si trop de clients utilisent ce type de Bean en même temps. Ressources limitées (connexions, mémoire, sockets…) Mauvaise scalabilité du système, L'état peut occuper pas mal de mémoire…

Passivation / Activation Passivation : pour économiser la mémoire, le serveur d’application peut retirer temporairement de la mémoire centrale les beans sessions avec état pour les placer sur le disque Activation : le bean sera remis en mémoire dès que possible quand les clients en auront besoin Pendant la passivation il est bon de libérer les ressources utilisées par le bean (connexions avec la BD par exemple) Au moment de l’activation, il faut alors récupérer ces ressources

Activation/Passivation callbacks Lorsqu'un bean va être mis en passivation, le container peut l’avertir (@PrePassivate) Il peut libérer des ressources (connexions…) Idem lorsque le bean vient d'être activé (@PostActivate)

Accès concurrents Le code des beans session n’a pas besoin d’être thread-safe puisque le container ne permettra jamais l’accès par plusieurs requêtes Ca n’est pas nécessairement le cas pour les EJB singletons (configurable) ; on peut laisser le container gérer la concurrence en donnant des annotations (@Lock ou @ConcurrencyManagement)