CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Session Module Java Expert.

Slides:



Advertisements
Présentations similaires
Laboratoire informatique de Paris 6
Advertisements

Exposé de Système - Informatique et Réseau
Cours 6 : XML et les architectures N-tiers – Tier Applicatif

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.
Stéphane Frenot - Département Télécommunication - SID - II - EJBcli 211 Le client EJB.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV J2EE / JNDI Module Java Expert.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
UV J2EE Module Java Expert
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV Borland JBuilder 7 Module WSAD.
Programmation Orientée Objet (POO)
Servlet JAVA.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
JOME, un Composant Logiciel pour le Télé-Enseignement des Mathématiques via le WEB, Compatible OpenMath et MathML Laurent DIRAT OVE / I3S-UNSA.
Introduction à la POO: Les classes vs les objets
Introduction aux Session Beans
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
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,
Principes de programmation (suite)
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Développement d’applications web
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Etude des Technologies du Web services
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
JAVASERVER FACES Un framework Java pour le développement Web.
Serveurs Partagés Oracle
Java Remote Method Invocation (RMI)
Chaque use-case génère un ou des scénarios, traduits par des diagrammes objets, qui permettent d’introduire et/ou de compléter les diagrammes des catégories.
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.
Classes abstraites et Interfaces
Factory Design Patterns Factory Method
1 Objectifs de ce cours (I21) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Résumé du cours précédent.
Gestion des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Module 4 : Création et gestion de comptes d'utilisateur
Création et gestion de comptes d'utilisateur
Structures de données IFT-2000
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
GPA789 Analyse et conception orientées objet 1 Professeur: Tony Wong, Ph.D., ing. Chapitre 6 Correspondance UML et C++
Programmation concurrente
EJB & Serveurs d’applications
PROJET DE GENIE LOGICIEL 2005
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Le diagramme de séquences
Projet de Master première année 2007 / 2008
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
L’architecture J2EE
‘‘Open Data base Connectivity‘‘
Introduction.
Objectifs À la fin de ce cours, vous serez capables de :
Les EJB Samir AZZOUZ Équipe ObjectWeb
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Java Enterprise Edition, anciennement J2EE
Outil de gestion des cartes grises
Gérer la sécurité des mots de passe et les ressources
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Créer des packages.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Le web service
14/04/2015onic1 Zone fonctionnelle Référentiel. 14/04/2015onic2 Sommaire Introduction Cas d’utilisations Le cache principal –La purge –Le remplissage.
Struts.
Les Servlets Présentation Cycle de vie Principe de fonctionnement
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.
Transcription de la présentation:

CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Session Module Java Expert

Module UV EJB Page 2 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Module Java n Vue densemble du langage Java n Le langage Java : syntaxe et sémantique n Programmation multi-tâche : les threads n Accéder aux bases de données n Composants réutilisables : le modèle MVC n Développement Client/Serveur n Présentation d un IDE : WSAD / Forté / JBuilder n Les serveurs dapplications J2EE n Les Enterprise JavaBeans : les EJBs Sessions n Ré-ingénierie dapplications Java

Module UV EJB Page 3 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Définition du Bean de Session n Un bean session représente un simple client J2EE, celui-ci invoque les méthodes du bean pour accéder aux services de lapplication J2EE. n Pour accéder à une application déployée sur un serveur, le client invoque les méthodes du bean session. n Il réalise le travail du client, en lui cachant la complexité applicative en exécutant des opérations métiers à lintérieur du serveur.

Module UV EJB Page 4 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Type de beans Session? n Les beans ne sont pas persistants et ne sont pas partagés par les clients. n Il existe deux types de bean session : –Un bean session est utilisé pour mettre en place une communication avec état (stateful) entre un client et un serveur. –Un bean session sans état (stateless) n implémente pas une telle communication.

Module UV EJB Page 5 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle La session stateful n Létat dun objet consiste en les valeurs de ses variables dinstance. n Dans un bean stateful, les variables dinstance représentent : –létat dun unique client, car le client interagit (" parle ") avec son bean, –cet état est appelé létat conversationnel. n Létat est maintenu pendant la durée de la session du bean client. Si le client supprime le bean (remove) ou quitte la connexion, la session se termine et létat disparaît.

Module UV EJB Page 6 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Quand utiliser les beans session? n En règle générale, on utilise un bean session dans les circonstances suivantes : –A nimporte quel moment, un unique client a accès à linstance dun bean. –Létat dun bean nest pas persistant, car il nexiste que pour une courte période de temps (de lordre de quelques heures).

Module UV EJB Page 7 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Quand utiliser les beans session? n Les beans session stateful sont appropriés dans les conditions suivantes: –Létat du bean représente linteraction entre le bean et un client spécifique. –Le bean a besoin de conserver des informations concernant le client à travers les différentes invocations de méthodes. –Le bean est un médiateur entre le client et les autres composants de lapplication, présentant ainsi une vue simplifiée au client. –Derrière la scène, le bean gère le work flow de plusieurs beans enterprises.

Module UV EJB Page 8 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Quand utiliser les beans session? n Pour améliorer la performance, on peut choisir un bean stateless pour les raisons suivantes : –Létat du bean ne possède pas de données relatives à un client en particulier. –Lors dune simple invocation de méthode, le bean réalise une tâche générique pour tous les clients. exemple, on peut utiliser une bean stateless pour envoyer un e- mail qui confirme une commande en ligne. –Le bean extrait dune base de données un ensemble de données en lecture seule, qui est souvent utilisé par les clients (cache). Un tel bean peut récupérer les lignes dune table qui représentent les produits qui ont été vendus ce mois.

Module UV EJB Page 9 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle La session stateless n Une session stateless ne maintient pas létat conversationnel avec son client. n Lorsquun client invoque une méthode du bean stateless, les variables dinstance peuvent contenir un état, mais uniquement pour la durée de linvocation. n Sauf pendant linvocation de la méthode, toutes les instances dun bean stateless sont identiques, permettant au conteneur EJB dassigner une instance à nimporte quel client.

Module UV EJB Page 10 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle La session stateless n Comme les beans stateless peuvent supporter de multiples clients, ils permettent doffrir une meilleure extensibilité des applications J2EE. n En fait, une application J2EE ne nécessite que très peu de beans stateless par rapport aux beans stateful pour supporter la même charge de clients. n Le conteneur EJB nécrira jamais de beans stateless en mémoire secondaire. Ainsi, ils peuvent offrir de meilleures performances que les beans stateful.

Module UV EJB Page 11 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Utiliser un bean Session? n Pour implanter la logique session dapplications Web. Par exemple : saisir les renseignements de livraison et de facturation concernant un client via des pages JSP. n Pour implanter la logique session dapplications classiques. Par exemple : saisir les renseignements de livraison et de facturation concernant un client, utilisant JFC/Swing (application cliente).

Module UV EJB Page 12 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Cycle de vie n Un bean session avec ou sans état ne dure que le temps de la connexion du client. n Une session est définie entre la création et la suppression du bean session. n L état du client peut être stocké en mémoire secondaire : état conversationnel

Module UV EJB Page 13 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Les clients vis-à-vis du conteneur EJB n Utiliser JNDI pour trouver un composant : Home –Java Naming and Directory Interface –Abstraction des services de nommage (CosNaming, etc.) et des services daccès aux structures arborescentes (répertoires, annuaire LDAP, etc.) n Accès aux services du composant : Remote n Appeler les méthodes du composant à distance pour réaliser les services. EJB Container Home Remote Client Code JNDI Client Stub

Module UV EJB Page 14 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle EJB Container Remote Vue interne du conteneur Remote Home Les objets Home et Remote sont automatiquement générés par le conteneur et implémentent les méthodes définies dans les interfaces Session Bean Session Bean Session Bean Session Bean Entity Bean Entity Bean Entity Bean Entity Bean EJBbeans, écrits par les développeurs et instanciés par le conteneur si nécessaire. Les objets Home et Remote redirigent les appels vers ces beans. Ils sont des objets services qui gèrent des appels à des méthodes particulières. Remote

Module UV EJB Page 15 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Structure des Beans Enterprise n La classe bean enterprise est une classe Java: –les méthodes métiers et –les méthodes du cycle de vie d un objet, –nom de la classe : nomEJB n L API client-vue : –interface home : create(), remove(), find() (uniquement Entité) et nom de la classe : nomHome –interface remote: nom de la classe : nomRemote (Sun préconise nom)

Module UV EJB Page 16 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Etat des Beans Sessions stateful inst1: nomBean inst2: nomBean inst3: nomBean obj1: nom (Remote) Client 1 Client 2 Client 3 obj2: nom (Remote) obj3: nom (Remote) Container EJB délègue toujours à la même instance Objets sessions (répartis) Instances sessions (avec état)

Module UV EJB Page 17 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Etat des Beans Sessions stateless inst1: nomBean inst2: nomBean inst3: nomBean Client 1 Client 2 Client 3 obj2: nom (Remote) Container EJB délègue à nimporte quelle instance disponible Instances sessions (sans état) Un seul Objet session (réparti)

Module UV EJB Page 18 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Structure dun Bean Enterprise Session > MonEJB_Home create() remove() > MonEJB_Remote AjouterUnProduit() Acheter() > MonEJB_EJB ejbCreate() ejbRemove() AjouterUnProduit() Acheter() métier

Module UV EJB Page 19 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Interface Bean Home n Elle contrôle le cycle de vie des objets EJBs. n Les méthodes permettent de créer, de localiser, et de supprimer des EJBs. n Elles sont héritées des interfaces javax.ejb.EJBHome et java.rmi.Remote

Module UV EJB Page 20 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle LInterface Home n Associée à un Objet Home qui est automatiquement généré par le conteneur EJB –Il sera nécessaire de définir les implémentations des méthodes dans la classe de lEJB: create => ejbCreate –La création effective de l EJB est réalisée par le constructeur de MonEJB. –La méthode create ne remplace pas le constructeur de l objet, elle sert uniquement à initialiser l état de l EJB, à charger des ressources, etc.

Module UV EJB Page 21 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Interface Bean Home n Il peut y avoir plusieurs méthodes create() avec un nombre de paramètres variables. n Un client récupère linterface Remote du bean créé. n Les méthodes create retournent soit linterface Remote, soit une collection de telles interfaces.

Module UV EJB Page 22 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Exemple de bean Home import java.rmi.*; import javax.ejb.*; public interface MonEJB_Home extends javax.ejb.EJBHome { public MonEJB_Remote create(String nomclient) throws RemoteException, CreateException; public void remove(Handle handleEJB) throws RemoteException, RemoveException; }

Module UV EJB Page 23 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Interface Bean Remote n Elle définit les méthodes métiers quun client peut appeler sur chaque objet bean enterprise. n Le Bean hérite des interfaces javax.ejb.EJBObject et java.rmi.Remote

Module UV EJB Page 24 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle L Interface Remote n Elle définit les méthodes qui peuvent être appelées par les clients –Les méthodes sont appelées sur des Objets distants qui sont automatiquement générés par le conteneur EJB n Pas de conventions de nommage n Il est obligatoire dimplémenter dans la classe MonEJB les méthodes déclarées dans cette spécification du métier de lEJB.

Module UV EJB Page 25 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Interface Bean Remote import java.rmi.*; import javax.ejb.*; public interface MonEJB_Remote extends javax.ejb.EJBObject { boolean AjouterUnProduit(int numeroProduit) throws java.rmi.RemoteException; boolean Acheter() throws java.rmi.RemoteException; }

Module UV EJB Page 26 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Interface Bean Enterprise (session) n Elle spécifie des méthodes à implémenter pour la création, la suppression des objets métiers et les méthodes métiers. n Les méthodes métiers accèdent aux classes utilitaires (métiers). n La classe du bean session doit : –être déclarée public, –contenir un constructeur publique sans paramètres, –ne pas être final ou abstract –ne pas définir de destructeurs (finalize) n La classe du bean session implémente linterface javax.ejb.SessionBean

Module UV EJB Page 27 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Interface Bean Enterprise import java.rmi.*; import javax.ejb.*; public class MonEJB_EJB implements SessionBean { public MonEJB_EJB(){ super(); } public boolean AjouterUnProduit(int numeroItem) { // le code pour ajouter des items au panier // peut se connecter via JDBC. } public boolean Acheter() { // le code pour acheter.} public void ejbCreate(String nomClient) { // code d initialisation de l objet} //… plus les méthodes héritées de SessionBean }

Module UV EJB Page 28 / 28 Deruelle Laurent Copyright © 2002 Laurent Deruelle Connexion à un bean session n Le client dun EJB session devra récupérer linterface Home de lEJB via JNDI. n Il devra impérativement effectuer un appel à la méthode create() pour récupérer une référence sur lEJB (remote). MonEJBRemote objremote = home.create(); n Ensuite il sera possible dinvoquer les méthodes métiers de lEJB. objremote.Acheter()