24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. Programmer avec Java EE. Besoins des développeurs. Prérequis / Objectifs



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

Java pour le Web. Cours Java - F. Michel

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

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

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

Introduction à la plateforme J2EE

Environnements de Développement

Compte Rendu d intégration d application

JOnAS Day 5.1. Outils de développements

JOnAS 5. Serveur d application d

Mise en œuvre des serveurs d application

Cedric Dumoulin (C) The Java EE 7 Tutorial

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

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

IBM Rational Application Developer pour WebSphere Software V8.5 accélère le développement d'applications de haute qualité.

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

Nouvelles Plateformes Technologiques

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

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Vulgarisation Java EE Java EE, c est quoi?

1 JBoss Entreprise Middleware

Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware

WEBSPHERE & RATIONAL. Jacques Rage

Les nouvelles architectures des SI : Etat de l Art

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

GECKO Software. Introduction à MOBIDICK. Modular But Integrated Application Framework

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

Java Enterprise Edition

Messagerie asynchrone et Services Web

1. Considérations sur le développement rapide d'application et les méthodes agiles

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

CAHIER DES CHARGES D IMPLANTATION

Formation en Logiciels Libres. Fiche d inscription

Systèmes d'informations historique et mutations

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

Serveur d'application à la juste taille

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Urbanisme du Système d Information et EAI

<Insert Picture Here> Maintenir le cap avec Oracle WebLogic Server

Web Application Models

Evaluation Idéopass Cahier d analyse technique

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

2 Chapitre 1 Introduction

Plan. Department of Informatics

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Annuaires LDAP et méta-annuaires

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

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

CQP Développeur Nouvelles Technologies (DNT)

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.

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

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

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

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Documentation de la plate forme JOnAS. Frederic Maistre

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Patrons de Conception (Design Patterns)

Comparaison des architectures J2EE et.net

SOA Open Source Intégration des services et business process dans une architecture SOA Open Source. Bruno Georges JBoss, a Division of Red Hat

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Notre Catalogue des Formations IT / 2015

Introduction à la conception de systèmes d information

RENDRE VOS APPLICATIONS JAVA PLUS EFFICACES Ce qu'il faut savoir

Catalogue des Formations Techniques

Hébergement de sites Web

Documentation de la plate forme JOnAS

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

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

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

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

Programmation Web Avancée Introduction aux services Web

Oracle9i Application Server version 2

Windows (2000/NT), Solaris, AIX, HP-UX, Linux Haute disponibilité : SunCluster 3, Veritas Cluster Server 4. J2EE (JSP, Servlet, EJB, JTA), Open Source

Urbanisation des Systèmes d'information

Module BD et sites WEB

Logiciel Enterprise Guide Version 1.3 Windows

Conférence SIG 2011 Versailles 5-6 Octobre 2011 Atelier Technique ArcGIS for Server en 10.1

Architectures n-tiers Intergiciels à objets et services web

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

et Groupe Eyrolles, 2006, ISBN :

Application web de gestion de comptes en banques

Java à Murex: un retour d'expérience. Jean-Pierre DACHER & Craig MORRISON

IBM WebSphere Application Server Version 5.1

les techniques d'extraction, les formulaires et intégration dans un site WEB

Java Naming and Directory Interface

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA - J2EE. 27 ans - 5 ans d'expérience

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Fusion : l interopérabilité chez Oracle

Mettez les évolutions technologiques au service de vos objectifs métier

2.1 Liferay en un clin d'oeil Forces, faiblesses, opportunités et menaces Résumé de notre évaluation... 5

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Chapitre 1 : Introduction aux bases de données

Introduction aux «Services Web»

IBM WebSphere Application Server 5.0 : Administration avancée

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

Business & High Technology

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

Jean-Philippe VIOLET Solutions Architect

Transcription:

Plan du cours 2 Introduction générale EJB : les fondamentaux Programmer avec Java EE Introduction générale Michel Buffa (buffa@unice.fr), UNSA 2011, modifié par Richard Grin (version 1.0), avec emprunts aux supports de Maxime Lefrançois Session Beans Entités Message-Driven Beans Concepts avancés sur la Relations entre les Entités Gestion des transactions Prérequis / Objectifs 3 Besoins des développeurs Pré-requis : HTML, HTTP Objectifs : développement d Web avec Java EE, en particulier avec JSF et les EJB Applications accessibles depuis un navigateur Web distribuées portables rapides fiables transactionnelles sûres (restriction des accès aux fonctionnalités) qui tirent profit des technologies orientées serveur A considérer lorsqu'on construit une application distribuée Protocoles d'accès distants (CORBA, RMI, IIOP ) Gestion de la charge, Gestion des pannes, Persistence, intégration au back-end, Gestion des transactions, Clustering, Redéploiement à chaud, Arrêt de serveurs sans interrompre l'application, Gestion des traces, règlages (tuning and auditing), Programmation multithread Securité, performances, Gestion des ressources (Resource pooling), Qui s'occupe de tout ceci : le middleware! Dans le passé, la plupart des entreprises programmaient leur propre middleware. Adressaient rarement tous les problèmes, Gros risque : ça revient cher (maintenance, développement) Orthogonal au secteur d'activité de l'entreprise (banque, commerce ) Pourquoi ne pas acheter un produit? Oracle, IBM, BEA proposent depuis plusieurs années des middleware Aussi appelés serveurs d'application. 1

Serveur d'application Serveur d'application Un fournit les services middleware les plus courants Development Tools Permettent de se focaliser sur l'application que l'on développe, sans s'occuper du reste Le code est déployé sur le serveur d'application Séparation des métiers et des spécificités : d'un côté la logique métier, de l'autre la logique middleware. HTML Java Application Presentation HTML Java Business Logic Distributed Objects Transactions Content Management Enterprise Deployment Services Data Access Data Access Objects Enterprise Data Connectors Scalability Reliability Security Manageability Data Encore mieux! Composant logiciel réutilisable Il est possible d'acheter ou de réutiliser une partie de la logique métier! Vous développez votre application à l'aide de composants. Code qui implémente des interfaces prédéfinies. Sorte de boîte noire. Un bout de logique facilement réutilisable. On assemble les composants comme un puzzle, afin de résoudre des problèmes importants. Une entreprise peut acheter un composant et l'intégrer avec des composants qu'elle a développés. Par exemple, un composant qui sait gérer des prix. On lui passe une liste de produits et il calcule le prix total. Simple en apparence, mais la gestion des prix peut devenir très complexe : remises, promotions, lots, clients privilégiés, règles complexes en fonction du pays, des taxes, etc Composant logiciel réutilisable Quel intérêt? Ce composant répond à un besoin récurrent Vente en ligne de matériel informatique, Gestion des coûts sur une chaîne de production automobile, Calcul des prix des expéditions par la poste, Etc Moins d'expertise requise pour répondre à certains points du cahier des charges, Développement plus rapide. Normalement, les vendeurs de composants assurent un service de qualité (BEA, IBM ) Réduction des frais de maintenance. Naissance d'un marché des composants. Pas encore l'explosion attendue mais 2

Architectures de composants Architectures de composants Plus de 50 serveurs d' ont vu le jour depuis une dizaine d'années, Au début, composants propriétaires uniquement. Pas de cohabitation entre composants développés pour différents serveurs d'application Dépendant d'un fabriquant une fois le choix effectué. Dur à avaler pour les développeurs java qui prônent la portabilité et l'ouverture! Nécessité de standardiser la notion de composants Ensemble de définitions d'interfaces entre le et les composants Ainsi n'importe quel composant peut tourner ou être recompilé sur n'importe quel serveur Un tel standard s'appelle une architecture de composants Penser aux CDs audio, à la télé, au VHS, etc Architectures de composants Enterprise JavaBeans (EJB) Le standard EJB est une architecture de composants pour des composants serveur écrits en java. 1. Adopté par l'industrie 2. Permet d'implémenter des "objets métier" d'une manière propre et réutilisable 3. Portable facilement 4. Rapid Application Development (RAD) EJB signifie deux choses : 1. Une spécification 2. Un ensemble d'interfaces Pourquoi java? EJB pour développer des composants business EJB = uniquement en java Robuste et sûr : mécanismes + riche API + spécificité du langage (reflexivité, introspection, chargement dynamique) Portable Autre possibilités Composants Microsoft.NET Ruby on rails, Python turbo gears, Frameworks java plus légers comme WebWork Spring (en Java) Implémenter de la logique métier : calcul des taxes sur un ensemble d'achats, envoyer un mail de confirmation après une commande, etc Accèder à un SGBD Accèder à un autre d'information (CICS, COBOL, SAP R/3, etc ) Applications web : intégration avec JSF/Servlets Web services basés sur XML (SOAP, UDDI, etc ) Exemple : DELL attaque le serveur d'intel directement à travers un protocole XML pour réserver des pièces. 3

Entreprise JavaBeans (EJB) Composants d un serveur 19 L architecture Java EE 20 Un Java EE = répond aux spécifications Java EE d Oracle Le va fournir les services s génériques : La sécurité La reprise sur panne Les services transactionnel entre composants La gestion des utilisateurs L'accès aux sources de données etc. Sorte d'architecture à 3 niveaux où la couche présentation est divisée en 2 : Le client léger : un navigateur Web Un serveur Web avec JSF, servlets. Couche de présentation Application standalone Application web Applets Couche métier ; middleware -> Traitements (par des EJB, ou des JavaBeans) Couche de données SGBD ; Stocke les données L architecture Java EE 21 Les conteneurs d EJB et Web 22 Sorte d'architecture à 3 niveaux où la couche présentation est divisée en 2 : Le client léger : un navigateur Web Un serveur Web avec JSF, servlets. Les EJB ne fournissent pas de GUI! GUI = Graphic user interface GUI : rôle de la couche de présentation. Les serveurs contiennent des conteneurs Un conteneur est l'environnement d'exécution des composants Il gère l'interface entre les composants Java EE et les fonctionnalités bas-niveau multi-threading, le cache mémoire, la sécurité, l'accès aux données etc. Les conteneurs d EJB et Web 23 Les conteneurs d EJB 24 Les différents types de conteneurs : Conteneur d'application cliente et d'applet : la machine virtuelle Java Conteneur Web : pour l'exécution des servlet, JSF, etc. Conteneur d'ejb : composants métier Les communications de l extérieur avec les d'ejbs sont interceptées par le conteneur pour fournir un certain nombre de services : cycle de vie du bean accès au bean sécurité d'accès accès concurrents transactions Libère le développeur d une grande charge de travail! 4

Les conteneurs d EJB 25 L ÉCOSYSTÈME DES EJBS 26 Par exemple, pour les transactions, l appel d une méthode du bean est intercepté par le conteneur qui peut démarrer une nouvelle transaction juste avant de donner la main au code de la méthode peut lancer un commit de la transaction à la fin de l exécution de la méthode Pour déployer et exécuter un projet à base d'ejbs, six métiers sont impliqués 27 1-28 du du 1- Peut-être un membre de votre équipe, une entreprise qui vend des EJBs 2-29 3-30 3- d'ejbs 2- du serveur d'application Il s'agit de l'architecte de l'application et des containers Il assemble les fichiers jar et war dans un fichier ear Après que l'application ait été assemblée, elle doit être déployée sur un ou plusieurs serveurs d'application Attention à la sécurité (firewall, etc ) Branchement du de services annexes (LDAP, Lotus Notes, Microsoft Active Directory, etc ) serveur sur d'application le serveur d'. Choix du hardware, des SGBD, etc Modifie les fichiers descripteurs de déploiement Il peut s'agir d'un intégrateur de s, d'un consultant, d'une équipe de développeurs/concepteurs maison Paramétrage du pour configurer les transactions, les accès aux fonctionnalités et aux bases de données Il peut être une équipe ou une personne, un consultant ou un vendeur d'hébergement de serveurs d'. 5

4-31 5- du serveur 32 du 4- L'administrateur Vérifie le bon fonctionnement de l'application en exploitation. Il utilise les outils de monitoring des serveurs d'application. Il effectue la maintenance hardware et software (lancement, arrêt) du. du du serveur d'application et des containers Implémente le serveur en suivant les spécifications Java EE 6 6- Les vendeurs 33 Le "persistence manager" 34 6- d'outils Il fournit des outils pour simplifier les tâches répétitives comme le déploiement, etc Développer une application à base d'ejb est assez lourd. Pourtant la manière de développer, construire, maintenir, déployer les EJBs est standard. Bientôt un nouveau métier : le "persistence manager" Développe des outils qui se "branchent" sur le serveur d'application et implémentent les mécanismes de. Mapping BD relationnelles/objets Mapping BD objet/objets Etc IDEs par exemple : NetBeans, Eclipse. Java EE : les APIs J2EE for the Real World J2EE comprend de très nombreuses API EJB : standard de définition de composants Java 2 RMI et RMI-IIOP : objets distribués JNDI (Java Naming and Directory Interface) JDBC (Java Data Base Connectivity) JTA (Java Transaction API) JMS (Java Messaging Service) Java Servlets, Java Pages (JSP) et Java Server Faces (JSF) JavaMail JAXP (Java API for XML Parsing) JAAS (Java Authentification and Authorization Service) HTML Java Application Presentation Servlets/JSP JSF AJAX Development and Deployment Tools Business Logic EJB Data Access JPA JDBC 2.0 JTS/JTA JNDI JavaMail RMI-IIOP JMS Data Enterprise Deployment Services Scalability Reliability Security Manageability 6