CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV J2EE / JNDI Module Java Expert.

Slides:



Advertisements
Présentations similaires
Présentation de frameworks J2EE
Advertisements

Produit Gammes Nomenclatures Modules Techniques Prix de Revient Prix de Vente Modules Techniques Client Marges Mise en route Temps Unitaire Prix (Ex:
Module 5 : Implémentation de l'impression
13/04/05 - RB1 Montpellier 24/03/2005 Les interactions entre le SSO ESUP et le mécanisme de propagation d'identité
Module SI2 Applications réparties
Invocation de Méthode à des Objets distants Exemple : CORBA Common Object Request Broker Architecture Mise en pratique avec Orbacus en JAVA.
Module SI4 Applications réparties Questions Réponses Extraits de Mireille Blay-Fornarino, Audrey Occello et Didier Donsez.
Module SI4 Applications réparties
© 2006, Occello Audrey, PolytechNice Module SI2 Applications réparties Service de nommage & JNDI Extraits de Mireille Blay-Fornarino, Anne-Marie.
En savoir plus sur le nommage
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Exposé de Système - Informatique et Réseau
(Classes prédéfinies – API Java)
Introduction à Java - les paquetages -
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
Stéphane Frenot - Département Télécommunication - SID - II - EJBcli 211 Le client EJB.
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.
UV JSP JSP : Java Server Page
UV J2EE Module Java Expert
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV Borland JBuilder 7 Module WSAD.
Atelier Portail SAP Durée : 2h.
Plan de formation Chapitre 1 : Présentation de SAP
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.
User management pour les entreprises et les organisations Auteur / section: Gestion des accès.
Introduction aux Session Beans
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
Serveurs Partagés Oracle
JDBC ou comment manipuler une base de données en Java ?
Configuration de Windows Server 2008 Active Directory
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.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Internet : la mémoire courte ? Capture de sites Web en ligne Conférence B.N.F, Avril 2004 Xavier Roche(HTTrack)
Module 4 : Création et gestion de comptes d'utilisateur
Création et gestion de comptes d'utilisateur
Développement d’application web
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.
29/01/09SpringFramework1 SpringFramework Alice GARCIA Fabien FAGOAGA Option Génie Logiciel 3 ème année ENSEIRB.
GPA789 Analyse et conception orientées objet 1 Professeur: Tony Wong, Ph.D., ing. Chapitre 6 Correspondance UML et C++
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
Programmation concurrente
Module 7 : Accès aux ressources disque
Module 5 : Publication de ressources dans Active Directory
COURS DE PROGRAMMATION ORIENTEE OBJET :
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
LA GESTION COLLABORATIVE DE PROJETS Grâce aux outils du Web /03/2011 Académie de Créteil - Nadine DUDRAGNE 1.
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
‘‘Open Data base Connectivity‘‘
4 - Annuaires Les Annuaires d ’Entreprises Offres et solutions
CALENDRIER-PLAYBOY 2020.
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Java Enterprise Edition, anciennement J2EE
Guide de paramétrage RRDI pour CLM v3
Outil de gestion des cartes grises
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
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 10 Accès distant aux bases de données.
Struts.
Module 3 : Création d'un domaine Windows 2000
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
JNDI, dernière mise à jour : vendredi 29 septembre 2006 © - groupe de recherche
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 J2EE / JNDI Module Java Expert

Module J2EE/JNDI Page 2 / 34 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 dun IDE : WSAD / Forté / JBuilder n Les serveurs dapplications J2EE n Les Enterprise JavaBeans n Ré-ingénierie dapplications Java

Module J2EE/JNDI Page 3 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Naming Service n Associer des noms aux objets (bind) n Récupérer les objets par leur nom (resolve) n nom de fichier ==> octets sur le disque n Exemples: –RMI Registry –CORBA Naming Service (COSNaming) –Domain Name Service (DNS) –système de fichiers

Module J2EE/JNDI Page 4 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Contextes n Contient un ensemble de liaisons (binding) et des opérations de recherche (lookup) n Possède ses propres convention de nommage n Exemples –Système de répertoire :/ –domaine DNS :edu –LDAP: c=us n Système de nommage est un ensemble de contextes –noms dun système particulier = espace de nommage (namespace)

Module J2EE/JNDI Page 5 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Noms n Identificateur assigné à un objet n localhost ==> n Convention de nommage définie par le système de nommage –/rép/rép2/file pour UNIX –disque:\rép\string pour DOS –cn=dan, o=ISP pour LDAP –www-lil.univ-littoral.fr pour DNS

Module J2EE/JNDI Page 6 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Noms (suite) n Nom Atomique –nom utilisé dans une liaison –Possède un sens uniquement dans un contexte –Ex. nom de fichier dans un répertoire n Nom composé –séquence de noms atomiques –/usr/bin/ls –conforme à la convention de nommage

Module J2EE/JNDI Page 7 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Names (Cont) n Nom composite –Couvre de multiple systèmes de nommage – URL id: http DNS: UNIX et serveur web: /usr/deruelle/public_html n Résolution Object o = ctx.lookup(usr/deruelle/public_html);

Module J2EE/JNDI Page 8 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Objectifs de JNDI n Proposer une API pour accéder à différents noms. n Différents noms peuvent être combinés dans une seul système logique. n De nouvelles implémentations de services de nommage peuvent être ajoutées sans modifications du client.

Module J2EE/JNDI Page 9 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Architecture JNDI API JNDI Interface JNDI de fournisseurs de service Application Cliente Java Manager de nommage JNDI DNS LDAP CORBA RMI autres

Module J2EE/JNDI Page 10 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Architecture JNDI n Application Programming Interface (API) –API pour les programmeurs dapplications clientes –interface Unifiée n Service Provider Interface (SPI) –Pour les vendeurs permettant un accès JNDI à leur service de nommage

Module J2EE/JNDI Page 11 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle JNDI API n Incluse dans le Java 2 SDK v 1.3 n Doit être téléchargé pour les JDK 1.1 et JDK 1.2 n Packages –javax.naming –javax.naming.directory –javax.naming.event –javax.naming.ldap –javax.naming.spi

Module J2EE/JNDI Page 12 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Service Providers n Implémentation des produits sous-jacents n Incluses dans Java 2 SDK 1.3 –LDAP –COSNaming –JNDI over RMI Registry n Doit être téléchargé pour les versions précédentes –

Module J2EE/JNDI Page 13 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle JNDI Providers n LDAP –com.novell.naming.service.nds.NdsInitialContextFactory n NIS –com.sun.jndi.nis.NISCtxFactory n NIS+ (future) n RMI –com.sun.jndi.rmi.registry.RegistryContextFactory n COSNaming n Fichies –com.sun.jndi.fscontext.[Ref]FSContextFactory

Module J2EE/JNDI Page 14 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Configuration n Pour 1.3, rien à faire. JNDI devrait être inclus dans la distribution avec 3 fournisseurs n Pour Java 2 SDK version 1.2 –jndi.jar in $JAVA_HOME/jre/lib/ext n Pour jdk 1.1 –Ajouter jndi.jar au CLASSPATH

Module J2EE/JNDI Page 15 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Quelques produits LDAP n accessible publiquement : –ldap://ldap.Bigfoot.com –ldap://ldap.four11.com –ldap://ldap.InfoSpace.com

Module J2EE/JNDI Page 16 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Tâches Communes JNDI n Obtenir une référence au contexte initial (InitialContext) n Opérations sur le contexte –Lister les fils dun contexte –Lier (Bind) des noms à des objets –rechercher (Lookup) des objets via leur nom –Créer/détruire des contextes –Note: NamingException peut être envoyée pour la plupart des opérations de contexte.

Module J2EE/JNDI Page 17 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Contextes JNDI

Module J2EE/JNDI Page 18 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Obtenir un contexte initial import javax.naming.*; // non nécessaire pour les serveurs dapplications J2EE java.util.Properties props = new java.util.Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, com.sun.jndi.fscontext.RefFSContextFactory); props.put(Context.PROVIDER_URL, file:///); //obligatoire pour toutes les applications Context initContext = new InitialContext( props );

Module J2EE/JNDI Page 19 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Contexte initial n Point de départ dans lespace de noms. n Toutes les opérations exécutées sont relatives au contexte initial. n Spécifier le fournisseur de service à laide de la propriété : props.put(Context.INITIAL_CONTEXT_FACTORY, com.sun.jndi.fscontext.RefFSContextFactory );

Module J2EE/JNDI Page 20 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Contexte initial (suite) n Spécifier les propriétés spécifiques au fournisseur n LDAP props.put(Context.PROVIDER_URL, ldap://host:port); props.put(Context.SECURITY_PRINCIPAL, user ); props.put(Context.SECURITY_CREDENTIALS, password); n Système de fichier props.put(Context.PROVIDER_URL, file://tmp/); n Créer le contexte initial InitialContext initContext = new InitialContext( props ); –Création sans paramètres provoque la recherche dun fichier jndi.properties, indiquant lAPI JNDI et lespace de nommage à utiliser

Module J2EE/JNDI Page 21 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Lister les fils NamingEnumeration children = initContext.list(); while( children.hasMore() ) { NameClassPair nc = (NameClassPair) children.next(); System.out.println(nc.getName()); System.out.println(nc.getClassName()); } n list() renvoie un NamingEnumeration dobjets NameClassPair n listBindings() renvoie un NamingEnumeration des objets liés

Module J2EE/JNDI Page 22 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle NameClassPair and Binding javax.naming.NameClassPair getClassName() : String getName() : String javax.naming.Binding getObject() : Object Représente une association entre un name et un objet Représente le nom et la classe dun objet lié à un contexte

Module J2EE/JNDI Page 23 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle NamingEnumeration n Spécialise la collection java.util.Enumeration. n Envoie une exception lorsque il ny a plus dentrées dans lénumération. n Permet des résultats partiels qui sont renvoyés et une exception suite à un accès invalide: –i.e. hasMore() renverra une exception

Module J2EE/JNDI Page 24 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Lier des noms à un objet n Lier un nom à un objet à l'intérieur dun contexte File f = new File(/tmp/dan); tmpDirContext.bind(dan, f ); n NameAlreadyBoundException est envoyée si le nom dan est déjà lié dans le contexte tmp. n Peut utiliser unbind() ou rebind()

Module J2EE/JNDI Page 25 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Recherche dun objet n Rechercher un objet dans un contexte –String name; Object o = initContext.lookup(name); –le nom peut être composé : –/usr/tmp/dir/myfile –les séparateurs ne sont pas standardisés ! –La classe renvoyée est chargée par le fournisseur !

Module J2EE/JNDI Page 26 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Paramètre Name n Les opérations de contexte peuvent prendre une String ou un Name dans le paramètre name. n Name –Séquence ordonnée de composants –Noms Composés –Noms Composites n String –Représente un nom composite

Module J2EE/JNDI Page 27 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Exceptions de nommage catch( NamingException e ) { } n Méthodes importantes –toString() : String –getRootCause() : Throwable –getRemainingName() : Name –getExplanation() : String

Module J2EE/JNDI Page 28 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle javax.naming.Context bind(String name, Object obj) createSubcontext(String name) : Context list(String name) : NamingEnumeration listBindings(String name) : NamingEnumeration lookup(String name) : Object > javax.naming.InitialContext InitialContext() InitialContext(java.util.Hashtable env) javax.naming.directory.InitialDirContext InitialDirContext() InitialDirContext(Hashtable env) javax.naming.directory.DirContext getAttributes() : Attributes search(String name, Attributes matchingAttributes) : NamingEnumeration >

Module J2EE/JNDI Page 29 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle Attributs de contexte n Attributs Commun LDAP c = Country o = Organization ou = Organizational Unit cn = Common Name (premier ou nom complet) sn = Users surname (surnom utilisateur)

Module J2EE/JNDI Page 30 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle JNDI and RMI n Propose une interface standard pour le registre RMI Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, com.sun.jndi.rmi.registry.RegistryContextFactory); props.put(Context.PROVIDER_URL, rmi://host:port); Context ctx = new InitialContext(props); ctx.rebind(Teller, unObjetRMI ); …….. Teller t = (Teller) ctx.lookup(Teller);

Module J2EE/JNDI Page 31 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle JNDI et JDBC n Sources de données JDBC (DataSource) –Evolutions du gestionnaire de Driver JDBC –Stockées dans larborescence JNDI –Permettent le pool de connexion –Méthodes dun objet DataSource ds : Connection conn = ds.getConnection(String name, String password ) conn.close()

Module J2EE/JNDI Page 32 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle JNDI et EJB n Objet Home pour un EJB est stocké dans JNDI n Afin de créer un bean: InitialContext ic = new InitialContext( props ); TellerHome th = (TellerHome) ic.lookup(TellerHome);

Module J2EE/JNDI Page 33 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle JNDI et les applications J2EE n InitialContext –fourni par le Container –accédé par un composant en utilisant le constructeur par défaut. InitialContext rootCtx = new InitialContext(); n Propriétés –fournies au Container à laide du descripteur de déploiement –accédées par un composant à travers un contexte spécial Object object = rootCtx.lookup(java:comp/env/monObjet);

Module J2EE/JNDI Page 34 / 34 Deruelle Laurent Copyright © 2002 Laurent Deruelle En résumé Les applications clientes JNDI peuvent accéder à des ressources telles que: –imprimantes –fax –bases de données (JDBC 2.0) –références dobjet qui sont contenues dans de multiples implémentations des services de nommage et en utilisant la même API.