Cours Architecture des composants d entreprise Composants distribués pour l entreprise Introduction à Java EE



Documents pareils
24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Compte Rendu d intégration d application

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Cedric Dumoulin (C) The Java EE 7 Tutorial

J2EE - Introduction. Développement web - Java. Plan du chapitre

Java pour le Web. Cours Java - F. Michel

Environnements de Développement

JOnAS Day 5.1. Outils de développements

Java Enterprise Edition

JOnAS 5. Serveur d application d

Auto-évaluation Aperçu de l architecture Java EE

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Création d une application JEE

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

EXA1415 : Annotations

Java Naming and Directory Interface

1. Installation d'un serveur d'application JBoss:

Introduction à la plateforme J2EE

Refonte front-office / back-office - Architecture & Conception -

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

4. SERVICES WEB REST 46

Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Première coupe : Introduction à la plateforme Java EE JAVA JAVA. Introduction à la plateforme Java EE. Introduction à la plateforme Java EE

J2EE. Java2 Enterprise Edition. Pierre Yves Gibello Mise à jour : 30 Septembre 2004

CQP Développeur Nouvelles Technologies (DNT)

10. Base de données et Web. OlivierCuré

Cours en ligne Développement Java pour le web

Utilisation de Jakarta Tomcat

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Comparaison des architectures J2EE et.net

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC

Java EE. Java Enterprise Edition. Pierre-Yves Gibello - pierreyves.gibello@experlog.com (Mise à jour : Septembre 2011)

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Présentation J2EE. Stéphane Croisier, Directeur Serge Huber, Directeur Technique. 13 Juin Jahia Ltd. All rights reserved.

JOnAS Day 5.1. Clustering

Introduction à Java. Philippe Genoud.

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

Java Avancé. LicencePro Olivier Perrin Université de Lorraine

EJB. Karim Bouzoubaa Issam Kabbaj

Formation en Logiciels Libres. Fiche d inscription

Présentation du cours. Sécurité dans Java EE. Plan (1/2) Plan (2/2) Généralités sur la sécurité

Architecture Orientée Service, JSON et API REST

Rapport de projet de fin d études

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

F O R M A T I O N CATALOGUE

les Cahiers du Programmeur 2 e édition EJB 3.0 JPA JSP JSF Web Services JMS GlassFish Ant Antonio Goncalves

Oracle9i Application Server version 2

Web Tier : déploiement de servlets

Groupe Eyrolles, 2003 ISBN : X

Développement des Systèmes d Information

Tolérance aux Fautes des Grappes d Applications J2EE. Applications Internet dynamiques

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP

OBJIS : 10 ans d'expérience en formation JAVA. Programme détaillé formation 'Développeur Java web Mobile' OBJIS Congo

Formations Cours du soir Coaching Stage intensif. Brochure Rencontrez-nous au salon «Solutions Linux» 2010, stand B14

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Applications distribuées: le retour du client "riche"

Application Web et J2EE

Application web de gestion de comptes en banques

Mise en œuvre des serveurs d application

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

Introduction aux «Services Web»

Le passage à l échelle de serveur J2EE : le cas des EJB

Documentation de la plate forme JOnAS

LICENCE PROFESSIONNELLE

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Nouvelles Plateformes Technologiques

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

IBM WebSphere Application Server 5.0 : Administration avancée

Documentation de la plate forme JOnAS. Frederic Maistre

Groupe Eyrolles, 2005, ISBN :

Projet Java EE Approfondi

Une introduction à la technologie EJB (2/3)

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

Modèle d Administration des Systèmes Distribués à Base de Composants.

Hassene BELGACEM. Expériences Professionnelles. JEE architect / Technical leader. Ingénieur Informatique. Cycle Préparatoire

Messagerie asynchrone et Services Web

Réalisation : Encadrés par : BEN GHORBEL Mohamed Zied OUESLATI Cherif. Mr. ROMDHANI Mohamed

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Vulgarisation Java EE Java EE, c est quoi?

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Développement, déploiement et sécurisation d'applications JEE

Création d un service web avec NetBeans 5.5 et SJAS 9

Technologies Web, Serveurs Web et d'applications

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Ociensa Technologies.

IBM DB2 Alphablox. d administration GC

Tuteur Entreprise : Stage IUT 31 Mars Juin Département Informatique 30, Place Salvador Allende

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

Cyrille GUERIN 823, place Soulanges Brossard, J4X1L8

Formation IQ JAVA. Formation IQ JAVA V1.1 1

Yassine EL AZRI. Professionnelles. Consultant ERP Microsoft Dynamics AX. Consultant ERP Microsoft Dynamics AX Depuis octobre 2012

Transcription:

Cours Architecture des composants d entreprise Composants distribués pour l entreprise Introduction à Java EE EMSI Université de Nice Richard Grin Version O 1.3 6/10/15 20 h de cours et TPs Richard Grin, université de Nice Sophia Antipolis ; http://richard.grin.free.fr/emsi/casablanca Page du cours d origine sur le site Web de Michel Buffa : http://miageprojet2.unice.fr/intranet_de_michel_buff a/cours_composants_distribu%c3%a9s_pour_l'ent reprise_%2f%2f_ejb_2013-2014 Richard Grin Présentation Java EE page 2 Contrôle des connaissances Interrogation sans documents à la fin de la semaine (30 %) Projet (à 3) à rendre??**?? (70 %) Informations diverses Me fournir la liste électronique des étudiants : nom, prénom, email (sur 3 colonnes) Installer NetBeans 8.1, version Java EE (ou «All») sur ordinateur personnel Utilisation ordinateur personnel ou machines EMSI pendant TPs? NetBeans 8.1 installé sur machines EMSI? Mon tél. Maroc :??**?? Richard Grin Présentation Java EE page 3 Richard Grin Présentation Java EE page 4 Prérequis / Objectifs Prérequis : n HTML, HTTP n Bonne connaissance de Java n Servlets (les bases) Objectif : Développement d applications Web avec Java EE, en particulier avec JSF, JPA et les EJB Quels cours avez-vous déjà suivis? Servlet JSP JSF JDBC JPA EJB Richard Grin Présentation Java EE page 5 Richard Grin Présentation Java EE page 6 1

Plan du cours Introduction générale, Java EE et JNDI EJB JSF JPA Présentation de Java EE Plan de ce support Serveur d application et containers Composants Formats de distribution Profiles JNDI Richard Grin Présentation Java EE page 7 Richard Grin Présentation Java EE page 8 Architecture d une application d entreprise Les applications d entreprise modernes sont des applications multi-tiers Couches d une application Java EE Sécurité, transactionnel, Souvent Web et mobile DAO, ORM, Les «vrais» traitements Richard Grin Présentation Java EE page 9 Richard Grin Introduction Java EE page 10 Java EE Spécifications (32 dans Java EE 7) pour écrire des applications d entreprise en Java Les composants métier sont des Entreprise Java Beans (EJB) Nous étudierons une interface utilisateur de type Web, implémentée avec Java Server Faces (JSF) Autre solution : serveur RESTful (JAX-RS si Java) et interface utilisateur HTML(5)-JavaScript Richard Grin Présentation Java EE page 11 Composant Java EE utilise la notion de composant, en particulier pour les EJB et les composants JSF Sur le modèle des composants électroniques, les composants logiciels sont des boîtes noires n réutilisables n configurables n qui respectent des interfaces définies par une spécification n qui peuvent être enfichés dans les applications qui respectent ces spécifications Richard Grin Présentation Java EE page 12 2

Développement n plus rapide n plus fiable Intérêt des composants n maintenance facilitée n pas besoin de compétences pointues dans le domaine métier du composant On peut espérer la naissance d une industrie du composant offrant plus de choix que ce qui est proposé aujourd hui Exemples Composant «métier» pour gérer la paie des employés Composant JSF qui affiche une carte «Google Map» dans l interface utilisateur Web Richard Grin Présentation Java EE page 13 Richard Grin Présentation Java EE page 14 Serveur d application Logiciel qui sert de structure d accueil pour les applications ; il leur fournit des services non fonctionnels Les applications Java EE ne peuvent fonctionner que si elles sont intégrées avec un serveur d application qui suit les spécifications Java EE Plusieurs serveurs d application Java EE (Payara, WildFly, ) GlassFish 4 est l implémentation de référence de Java EE 7 Richard Grin Présentation Java EE page 15 Containers Chaque type de composant Java EE est géré par un container qui fait partie du serveur d application : containers pour composants JSF, pour EJB, pour composants CDI, etc. Les containers interceptent les appels aux composants pour ajouter des services non fonctionnels : transactions, gestion de la concurrence, cycle de vie des composants, injection de dépendance, Le développeur est ainsi libéré d une grande charge de travail! Richard Grin Présentation Java EE page 16 Exemple d interception L appel d une méthode d un EJB est intercepté par le container EJB qui n démarre une nouvelle transaction, juste avant de donner la main à la méthode n lance un commit de la transaction à la fin de l exécution de la méthode Format de distribution Une application Java EE est distribuée dans un fichier d archive (de type fichier jar/zip) Un fichier d archive peut contenir n des classes Java (simples classes, composants) n des ressources utilisées par le code Java (images, son, fichiers pour internationalisation, ) n des fichiers XML qui décrivent l application ou la façon de la déployer n d autres fichiers d archive Richard Grin Présentation Java EE page 17 Richard Grin Présentation Java EE page 18 3

4 Fichier descripteur de déploiement Informe le serveur d application sur la manière de déployer une application Par exemple pour intégrer l application au système de sécurité utilisé par le serveur Java EE définit des fichiers descripteurs standards ; web.xml par exemple pour les applications Web Un serveur d application peut y ajouter ses propres fichiers pour des configurations non standardisées (source de données, clustering ) ; par exemple glassfish-resources.xml pour GlassFish Richard Grin Présentation Java EE page 19 Annotations et fichiers descripteurs XML De nombreuses annotations permettent de configurer une application directement dans les classes Java Le contenu des fichiers XML est ainsi allégé S il y a conflit sur une indication, c est le fichier XML qui l emporte Pourquoi? Richard Grin Présentation Java EE page 20 Types de fichiers d archive Jar (Java ARchive) : contient les EJB, les classes Java ordinaires et les ressources associées War (Web ARchive) : pour les modules liés au Web ; contient les servlets, fichiers HTML, JSF, EJB, et les ressources associées Ear (Entreprise ARchive) : réunit des modules jar ou war Structure EAR Richard Grin Présentation Java EE page 21 Richard Grin Présentation Java EE page 22 Structure JAR pour EJB Structure WAR classes directement sous la racine Richard Grin Présentation Java EE page 23 Richard Grin Présentation Java EE page 24

5 Profile Profiles Pour permettre des serveurs d application allégés, Java EE définit des profiles qui n utilisent pas toutes les technologies de la norme Le profile Web inclut les technologies qui suffisent le plus souvent pour écrire une application Web : servlets, JSF, CDI, EJB Lite, JPA, JTA, validation bean Une application qui se limite au profile Web peut être distribuée dans un seul fichier WAR Richard Grin Présentation Java EE page 25 Richard Grin Présentation Java EE page 26 EJB Lite Ne contient qu une partie de la spécification EJB : n beans stateless, stateful et singleton (donc pas EJB message, MDB) n interfaces locales seulement (pas d interfaces distantes) JNDI Java Naming and Directory Interface Richard Grin Présentation Java EE page 27 Richard Grin Présentation Java EE page 28 Généralités Dans une application distribuée, les composants ont besoin d accéder à d autres composants ou à des ressources (EJB, source de données JDBC, service de messagerie, ressource javamail, ) JNDI est une API Java pour utiliser des annuaires qui permettent de donner des noms à des objets, des services ou des ressources Exemples de noms : java:global/drh/drh-ejb/employemanager java:app/jdbc/employes Utilisation de JNDI En interne le serveur d application utilise JNDI Pour retrouver les EJB et les ressources, le développeur utilisera le plus souvent l injection de dépendance qui est plus simple à utiliser L injection de dépendance n est pas toujours possible et il faut alors utiliser explicitement JNDI ; par exemple pour l écriture d un validateur JSF Richard Grin Présentation Java EE page 29 Richard Grin Présentation Java EE page 30

6 Noms JNDI des EJB EJB 3.1 a standardisé les noms JNDI des EJB (portable JNDI names) java:global/app1/ejb1/bean1 application module (fichier ejb1.jar) java:app/ejb1/bean1 java:module/bean1 nom de l EJB pour référence à l intérieur d une application Richard Grin Présentation Java EE page 31 Code pour récupérer un EJB avec JNDI import javax.naming.initialcontext;... try { InitialContext ic = new InitialContext(); MonEJB monejb = (MonEJB) ic.lookup("java:global/app/mod/monejb");... } catch (NamingException e) { e.printstacktrace(); } Si c est possible, plus simple d injecter l EJB! Richard Grin Présentation Java EE page 32 Injecter un EJB Ajouter une variable d instance et l injecter : @EJB MonEJB monejb; Et c est tout! C est le container qui va fournir l EJB au code Annexe Changer les ports utilisés par GlassFish Richard Grin Présentation Java EE page 33 Richard Grin Présentation Java EE page 34