Programmer avec Java EE

Slides:



Advertisements
Présentations similaires
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
Advertisements

Cours 5 : XML et les architectures N-tier Janvier Version 1.0 -
Nouveautés pour les développeurs Office System Scott Burmester Responsable des programmes PSPS.
Plan Portlets La norme JSR-168 Qu'est-ce qu'une Portlet ?
Xavier Blanc Web Services Xavier Blanc
Introduction aux environnements répartis
Serveur jeu Le serveur fait partie d'un logiciel de jeu en ligne multi joueur en architecture client serveur. Il répond à des demandes.
19 septembre 2006 Tendances Logicielles MDD/MDA : Génération dapplications avec IBM Rational Software Architect Jean-Pierre Schoch –
Serveurs web pour JSP et Servlets
Stéphanie CLAPIÉ Antoine RENARD
L’architecture .net et ASP.net
Exposé de Système - Informatique et Réseau
1.NET, bilan et perspective – Univ-Bordeaux - vendredi 18 novembre 2005.NET, bilan et perspectives François MERAND Responsable groupe architectes Division.
Cours 2 : Les Web Services Concepts Généraux
51 Les technologies XML Cours 7 : Utilisations dXML Janvier Version 1.0 -
Projet Webase. I. La définition du projet 1. Lexistant : Webase 4 2. Cahier des charges 3. La répartition des données 4. Le modèle de données 5. Le choix.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
UV J2EE Module Java Expert

Introduction aux Session Beans
Introduction aux services WEB
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Les outils d’intégration continue
Etude des Technologies du Web services
Serveurs d’application
Module 1 : Préparation de l'administration d'un serveur
JAVASERVER FACES Un framework Java pour le développement Web.
Serveurs Partagés Oracle
Projet JAVA EE Approfondi
Interopérabilité JOnAS - CORBA
Gestion des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Clients riches RIA (Rich Internet Application) / RDA
EJB & Serveurs d’applications
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Vers un développement ouvert Alexandre Poitras – Développeur indépendant WebÉducation – 24 janvier 2008.
Adaptée du cours de Richard Grin
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‘‘
1 - Architecture Internet
LES CLIENTS WEB RICHES Tuteur : Olivier CARON LEFEBVRE Benoit
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
Module I-C3 : Applications Web IUT R&T 2e année
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Java Enterprise Edition, anciennement J2EE
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
Architecture Logicielle Les blocs d’applications
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Architecture J2EE gfgfgfggf Khin Chhoung LAO, Cnam.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Le web service
Introduction au Génie Logiciel
Séminaire (6-12 Février 2007) Promo. M2 ESCE-Tunis 2006/07
Présentation du framework JSF (Java Server Faces) dans le modèle événementiel MVCII
Struts.
Les différents modèles d’architecture technique
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
L’enseignement de spécialité SLAM
Conférence Témoignages métiers- Supinfo Nantes  Création en 1979  CA de 150 Millions €  Présence nationale et internationale  2300 personnes en France.
Rapport de Stage : Les Web Services ou la communication
21/02/2003DEA DISIC 1 Grid Computing Programming the grid: Distributed Software Components, P2P and Grid Web Services for Scientific Applications Tarak.
Web Services 17/01/2009.
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
9 février 2010 Enrique Ruiz Mateos Architecte avant-vente Microsoft
Architectures Logicielles Java GLG203 GLG204
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.
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:

Programmer avec Java EE 30/03/2017 Programmer avec Java EE Introduction générale Michel Buffa (buffa@unice.fr), UNSA, modifié par Richard Grin (version 1.0), avec emprunts aux supports de Maxime Lefrançois

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

Prérequis / Objectifs Prérequis : Objectifs : HTML, HTTP, Architecture des applications web Servlets / JSP / JSTL Objectifs : développement d’applications Web d’entreprise avec Java EE, en particulier avec JSF et les EJB

Besoins des développeurs 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.

Serveur d'application Un serveur d'application fournit les services middleware les plus courants 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.

Enterprise Data Connectors 30/03/2017 Serveur d'application Development Tools Presentation Java HTML Business Logic Distributed Objects Transactions Content Management Data Access Enterprise Data Connectors Data Access Objects HTML Data Java Application Scalability Reliability Security Manageability Enterprise Deployment Services

Encore mieux ! 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.

Composant logiciel réutilisable 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 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…

Quel intérêt ? 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…

Architectures de composants Plus de 50 serveurs d'applications 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 !

Architectures de composants Nécessité de standardiser la notion de composants Ensemble de définitions d'interfaces entre le serveur d'application 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 Serveur d’application Interfaces standards spécifiées par l’architecture de composants Composants

Enterprise JavaBeans (EJB) Le standard EJB est une architecture de composants pour des composants serveur écrits en java. Adopté par l'industrie Permet d'implémenter des "objets métier" d'une manière propre et réutilisable Portable facilement Rapid Application Development (RAD) EJB signifie deux choses : Une spécification Un ensemble d'interfaces

Pourquoi java ? EJB = uniquement en java Autre possibilités Portable Robuste et sûr : mécanismes java riches API spécificité du langage reflexivité, introspection, chargement dynamique Autre possibilités Composants Microsoft .NET Ruby on rails, Python turbo gears, Frameworks java plus légers comme WebWork Spring (en Java)

EJB pour développer des composants business 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 système 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.

Entreprise JavaBeans (EJB) … Composants d’un serveur d’application Un serveur d'application Java EE = répond aux spécifications Java EE d’Oracle Le serveur d'application va fournir les services systèmes 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.

L’architecture Java EE 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 Source: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html

L’architecture Java EE 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. Source: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html

Les conteneurs d’EJB et Web Les serveurs d’application 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. Source: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html

Les conteneurs d’EJB et Web 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 Source: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html

Les conteneurs d’EJB 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 ! Source: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html

Les conteneurs d’EJB 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 Source: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html

L’écosystème des EJBs

Pour déployer et exécuter un projet à base d'EJBs, Pour déployer et exécuter un projet à base d'EJBs, six métiers sont impliqués Le fournisseur de solution de persistance Le vendeur d’outils Fournit solution de persistance Fournit les outils Construit les applications Déploie le système L’assembleur d’application Le déployeur d’EJBs L’administrateur système (maintenance du déploiement) Développe les EJBs Fournit serveur + conteneur Le fournisseur d’EJBs Le fournisseur du serveur d'application et des containers

1- Le fournisseur d’EJBs Le fournisseur de solution de persistance Le vendeur d’outils Fournit solution de persistance Fournit les outils Construit les applications Déploie le système L’assembleur d’application Le déployeur d’EJBs L’administrateur système (maintenance du déploiement) Développe les EJBs Fournit serveur + conteneur Le fournisseur d’EJBs Le fournisseur du serveur d'application et des containers 1- Le fournisseur d’EJBs Peut-être un membre de votre équipe, une entreprise qui vend des EJBs

2- L’assembleur d’application Le fournisseur de solution de persistance Le vendeur d’outils Fournit solution de persistance Fournit les outils Construit les applications Déploie le système L’assembleur d’application Le déployeur d’EJBs L’administrateur système (maintenance du déploiement) Développe les EJBs Fournit serveur + conteneur 2- L’assembleur d’application Il s'agit de l'architecte de l'application Il assemble les fichiers jar et war dans un fichier ear Modifie les fichiers descripteurs de déploiement Il peut s'agir d'un intégrateur de systèmes, d'un consultant, d'une équipe de développeurs/concepteurs maison… Le fournisseur d’EJBs Le fournisseur du serveur d'application et des containers

3- Le déployeur d’EJBs 3- Le déployeur d'EJBs Le fournisseur de solution de persistance Le vendeur d’outils Fournit solution de persistance Fournit les outils Construit les applications Déploie le système L’assembleur d’application Le déployeur d’EJBs L’administrateur système (maintenance du déploiement) Développe les EJBs 3- Le déployeur d'EJBs 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 de services annexes (LDAP, Lotus Notes, Microsoft Active Directory, etc…) sur le serveur d'applications. Choix du hardware, des SGBD, etc… Paramétrage du serveur d'application 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'applications. Fournit serveur + conteneur Le fournisseur d’EJBs Le fournisseur du serveur d'application et des containers

4- L’administrateur système Le fournisseur de solution de persistance Le vendeur d’outils Fournit solution de persistance Fournit les outils Construit les applications Déploie le système L’assembleur d’application Le déployeur d’EJBs L’administrateur système (maintenance du déploiement) Développe les EJBs Fournit serveur + conteneur Le fournisseur d’EJBs Le fournisseur du serveur d'application et des containers 4- L'administrateur système 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 système.

5- Le fournisseur du serveur d’application et des containers Le fournisseur de solution de persistance Le vendeur d’outils Fournit solution de persistance Fournit les outils Construit les applications Déploie le système L’assembleur d’application Le déployeur d’EJBs L’administrateur système (maintenance du déploiement) Développe les EJBs Fournit serveur + conteneur Le fournisseur du serveur d'application et des containers Implémente le serveur d’application en suivant les spécifications Java EE 6 Le fournisseur d’EJBs Le fournisseur du serveur d'application et des containers

6- Les vendeurs d’outils Le fournisseur de solution de persistance Le vendeur d’outils Fournit solution de persistance Fournit les outils Construit les applications Déploie le système L’assembleur d’application Le déployeur d’EJBs L’administrateur système (maintenance du déploiement) Développe les EJBs Fournit serveur + conteneur 6- Le vendeur 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. IDEs par exemple : NetBeans, Eclipse. Le fournisseur d’EJBs

Le "persistence manager" Le fournisseur de solution de persistance Le vendeur d’outils Fournit solution de persistance Fournit les outils Construit les applications Déploie le système L’assembleur d’application Le déployeur d’EJBs L’administrateur système (maintenance du déploiement) Développe les EJBs 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 persistance. Mapping BD relationnelles/Objets Mapping BD objet/Objets Etc… Fournit serveur + conteneur Le fournisseur d’EJBs

Java EE : les APIs 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) …

J2EE for the Real World Development and Deployment Tools Presentation 30/03/2017 J2EE for the Real World Development and Deployment Tools Presentation Business Logic Data Access Servlets/JSP EJB JPA HTML JSF AJAX JDBC 2.0 Data Java Remote Method Invocation (RMI) interface over the Internet Inter-Orb Protocol (IIOP), Java Database Connectivity Java Application JTS/JTA JNDI JavaMail RMI-IIOP JMS Scalability Reliability Security Manageability Enterprise Deployment Services