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



Documents pareils
Compte Rendu d intégration d application

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

Java pour le Web. Cours Java - F. Michel

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

Mise en œuvre des serveurs d application

JOnAS Day 5.1. Outils de développements

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

Environnements de Développement

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

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

Patrons de Conception (Design Patterns)

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

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

2 Chapitre 1 Introduction

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

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

Cedric Dumoulin (C) The Java EE 7 Tutorial

EXA1415 : Annotations

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

Messagerie asynchrone et Services Web

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

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)

JOnAS Day 5.1. Clustering

Architectures en couches pour applications web Rappel : Architecture en couches

1 JBoss Entreprise Middleware

Cours en ligne Développement Java pour le web

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

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

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

RAPPORT DE CONCEPTION UML :

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

WEA Un Gérant d'objets Persistants pour des environnements distribués

Introduction à la plateforme J2EE

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.

CORBA. (Common Request Broker Architecture)

Introduction aux «Services Web»

Le moteur de workflow JBPM

IBM WebSphere Application Server 5.0 : Administration avancée

Java Naming and Directory Interface

Evaluation Idéopass Cahier d analyse technique

SITE WEB E-COMMERCE ET VENTE A DISTANCE

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

L EAI. par la pratique. François Rivard. Thomas Plantain. Groupe Eyrolles, 2003 ISBN :

Les Architectures Orientées Services (SOA)

CQP Développeur Nouvelles Technologies (DNT)

Utilisation de Jakarta Tomcat

Bien architecturer une application REST

IBM DB2 Alphablox. d administration GC

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

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Serveur d'application à la juste taille

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Architecture Orientée Service, JSON et API REST

Web Tier : déploiement de servlets

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

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

Projet de Java Enterprise Edition

Urbanisme du Système d Information et EAI

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

et Groupe Eyrolles, 2006, ISBN :

NFP111 Systèmes et Applications Réparties

CORBA haute performance

Francis Mignault. ! Coauteur : Expert Oracle Application Express. ! Membre du Oracle APEX Advisory Board apex.oracle.com/vote

Architectures d'intégration de données

Introduction aux applications réparties

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

Projet Java EE Approfondi

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

JOnAS 5. Serveur d application d

La gouvernance SOA Ses aspects théoriques et pratiques

WEB15 IBM Software for Business Process Management. un offre complète et modulaire. Alain DARMON consultant avant-vente BPM

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

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Conception et Implémentation d un serveur d applications dans le cadre du projet EISMO

Architectures n-tiers Intergiciels à objets et services web

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

Module BD et sites WEB

Le modèle client-serveur

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)

Systèmes d'informations historique et mutations

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

Objet du document. Version document : 1.00

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

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

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

4. SERVICES WEB REST 46

Architecte Logiciel. Unité de formation 1 : Développer en s appuyant sur les modèles et les frameworks 7 semaines

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

ORACLE DATA INTEGRATOR ENTERPRISE EDITION - ODI EE

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

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

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Documentation de la plate forme JOnAS

Business Process Execution Language

Plateforme Applicative Zend PHP Cloud

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

PROSOP : un système de gestion de bases de données prosopographiques

Transcription:

Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime Lefrançois Session Beans Entités Message-Driven Beans Concepts avancés sur la persistance Relations avec les entités Gestion des transactions Enterprise Java Bean 3 Enterprise Java Bean Les facilitent la création d'applications distribuées pour les entreprises. S occupent du traitement métier de l application Permettent aux développeurs de se concentrer sur les traitements orientés métiers Sont réutilisables Sont assemblables Composant serveur qui encapsule une logique métier, qui peut être déployé dans un serveur d application Composé de un ou plusieurs objets Les appels aux méthodes par les clients de l sont interceptés par le conteneur d Rôle du conteneur 2 Types d Le conteneur d s occupe de certains traitements Cycle de vie du bean Injection de dépendance Accès au bean, communication à distance d accès Accès concurrents s, Session Bean Modélise un traitement Représenté par une classe Java et une interface qui expose certaines méthodes Message Driven Bean (MDB) Consomme des messages asynchrones envoyés par des clients Permettent l interconnexion avec des systèmes différents (non Java EE) 1

Session Bean 3 types de Session Bean Modélise un traitement (business process) Correspond à un verbe, à une action Ex : gestion de compte bancaire, affichage de catalogue de produit, vérifieur de bancaires, gestionnaire de prix Les actions impliquent des calculs, des accès à une base de, consulter un service externe (appel téléphonique, etc.) Souvent client d'autres Beans Bean sans état (stateless) Pour traiter les requêtes de plusieurs clients, sans garder un état entre les différentes requêtes Exemple : obtenir la liste de tous les produits Bean avec état (stateful) Pour tenir une conversation avec un seul client, en gardant un état entre les requêtes Exemple : remplir le caddy d un client avant de lancer la commande (le caddy est rempli en cliquant sur les différentes pages des produits) 3 types de Session Bean Message-Driven Bean Bean singleton Garantie de n avoir qu une seule instance du bean dans tout le serveur d application Supporte les accès concurrents (configurable) Exemple : bean qui «cache» une liste de pays, utilisé par les classes de l application pour éviter d interroger la BD Introduits à partir de la norme 2.0 (aujourd hui en 3.0) Similaire aux Session beans : représentent des verbes ou des actions, On les invoque en leur envoyant des messages, souvent d une autre application Ex : message pour déclencher des transactions boursières, des autorisations d'achat par CB Souvent clients d'autres beans Entité s interagissant avec un serveur à base d's Les applications Java EE utilisent aussi des entités Une entité est une classe qui représente des enregistrées dans une base de Correspond à un nom Ex : personne, produit, compte bancaire 2

Application distribuée Une application Java EE peut être distribuée sur plusieurs machines du réseau Objets distribués Les containers gèrent les appels distants pour le développeur (utilisent RMI-IIOP) RMI-IIOP 15 et le middleware = Objet distribué tie Lorsqu'une application devient importante, des besoins récurrents apparaissent :, transactions,etc C'est là qu'intervient le middleware! Deux approches 1. Middleware explicite, 2. Middleware implicite Middleware explicite 17 Middleware explicite 18 = Objet distribué Base de = Objet distribué Base de Exemple : transfert d'un compte bancaire vers un autre : transfert(compte c1, Compte c2, IIOP long Runtime montant) 1.Appel vers l' middleware qui fait une vérification de, 2.Appel vers l' de transaction pour démarrer une transaction, 3.Appel l' pour lire des lignes dans des tables d'une BD, 4.Faire le calcul : enlever de l'argent d'un compte pour le mettre dans l'autre 5.Appeler l' pour mettre à jour les lignes dans les tables, 6.Appeler l' de transaction pour terminer la transaction. 3

Middleware explicite 19 Middleware implicite 20 = Objet distribué Base de = Objet distribué Intercepteur de requète Base de Difficile à écrire Difficile à maintenir Code dépendant des du vendeur de middleware Middleware implicite 21 Les : des objets distribués RMI-IIOP au cœur des s 22 = Objet distribué Intercepteur de requête Base de Conteneur d intercepteur Base de Les besoins sont décrits dans un fichier descripteur L intercepteur de requête sait quoi faire middleware implicite mais pour descendre au bas niveau, Explicite La plupart du temps le développeur demeure au niveau implicite, Mais il peut utiliser des s de J2EE pour contrôler «manuellement» les transactions, la, etc. (travail plus complexe) Object 3.0 simplifie la tâche du développeur en cachant des détails d implémentation Un peu d implémentation avec 2.x L étude de 2.x permet de comprendre comment fonctionnent les Pour chaque écrit par le développeur, le serveur d application crée un objet ( Object) qui contient le code qui va permettre au serveur d intercepter les appels de méthode de l 4

Rôle de l Object Constitution d'un : Object Les clients n'invoquent jamais directement les méthodes de la classe du Bean Les appels de méthodes sont en fait envoyés à l Object Une fois les traitements effectués pour les transactions,,.. le container appelle les méthodes de la classe du bean Que se passe-t-il lors de l'interception? Prise en compte des transactions, : le client est-il autorisé? Gestion des ressources + cycle de vie des composants : threads, sockets, connexions DB, pooling des instances (mémoire), Persistance, Accès distant aux objets, Threading des clients en attente, Clustering, Monitoring : statistiques, graphiques temps réel du comportement du système Constitution d'un : Object : classe du Bean et Object Container = couche d'indirection entre le client et le bean EJ Bean Code simple Cette couche est matérialisée par un objet unique : l' Object Container Génération du code à partir du Bean Le code généré fournit s, Securité, Persistance, Accès Distant, gestion des ressources, etc. Server Container EJ Bean Fournit les services au container Object : génération du code Utilisation du descripteur de déploiement (fourni par l'auteur du Bean) EJ Bean Container Paramètres de déploiement = securité, mappings objets/bd relationelle, etc.) Les interfaces Container Génération du code pour intégrer le bean dans le container, ajout du plumbing (persistance, securité, etc ) EJ Bean Code généré 5

s locale Pour chaque session, le développeur doit fournir une (ou 2) interface qui indique les méthodes de l que les clients de l pourront appeler Les autres méthodes de l servent au bon fonctionnement de l Un session peut avoir une interface locale et une interface distante Si l n a qu une seule interface locale, il ne peut être utilisé que par les classes qui sont dans le même container Le développeur peut ne fournir aucune interface ; en ce cas, une interface locale est automatiquement créée, qui contient toutes les méthodes publiques de l distante Avec les interfaces distantes Indispensable si l peut être utilisé par des classes qui ne sont pas dans le même container (application distribuée) Problème : la création de bean et l'appel de méthode distante coûtent cher! Pour manipuler un à travers une interface locale, le serveur d application utilisera RMI- IIOP, ce qui implique des performances moins bonnes les paramètres et les valeurs de retour sont transmis par recopie des valeurs (références pour un appel local) Avec les interfaces distantes Conclusion Commentaires sur la figure précédente 1. Le client appelle un (souche), 2. Le encode les paramètres dans un format capable de voyager sur le réseau, 3. Le ouvre une connexion sur le (squelette), 4. Le décode les paramètres, 5. Le appelle l' Object, 6. L' Object effectue les appels middleware, 7. L' Object appelle la méthode du bean, 8. Le Bean fait son travail, 9. On fait le chemin inverse pour retourner la valeur de retour vers le client! 10. Sans compter le chargement dynamique des classes nécessaires! Favoriser les interfaces locales Ne jamais utiliser d interfaces distantes si les s et leurs clients sont dans le même container 6

Descripteur de déploiement standard Packaging Pour informer le container des besoins middleware, on utilise un descripteur de déploiement (XML) Standardisé, A l'extérieur de l'implémentation du bean. Attention si on les écrit à la main! Outils d'aide au déploiement : IDEs Descripteurs peuvent être modifiés après le déploiement sans devoir recompiler application.xml, web.xml, ejb-jar.xml, facesconfig.xml Descripteur de déploiement spécifique Format de distribution des applications Descripteurs spécifiques au serveur d'application Chaque vendeur ajoute des trucs en plus : loadbalancing, persistance complexe, clustering, monitoring Dans des fichiers spécifiques (glassfishresource.xml, glassfish-web.xml ou glassfishapplication.xml avec GlassFish) Les applications Java EE sont distribuées avec des fichiers jar (format zip) Le fichier jar contient les interfaces et classes Java, les fichiers de configuration et les ressources utilisées par l application (images, sons, ) Types de fichiers d archive Fichier ear Jar (Java ARchive) : fichier d archive habituel qui contient des, des classes Java ordinaires et les ressources associées War (Web ARchive) : fichier d archive pour le Web, qui contient des servlets, des fichiers HTML, des pages JSF, des et les ressources associées Les applications Web peuvent ne contenir qu un seul fichier war Les applications plus complexes, par exemple qui utilisent des MDB, contiennent plusieurs fichiers jar qui sont réunis en un seul fichier ear (format jar avec une structure particulière qui permet de contenir plusieurs fichiers jar) Ear (Entreprise ARchive) : réunissent des modules jar ou war 7

SOA ( Oriented Architecture) Oriented Architecture SOA = un paradigme de conception pour lequel une application est composée de services faiblement couplés qui peuvent tourner sur des cpu différents et qui sont facilement localisables = composant de l application qui remplit une fonctionnalité bien définie, avec une interface bien définie Un service ne dépend pas d un contexte externe et SOA ( Oriented Architecture) Web = un exemple de SOA, adapté au Web Exemple : Google fournit de nombreux services Web tels que Google Map ou Google Calendar Plusieurs spécifications de Java EE permettent de créer facilement des services Web à partir des (en particulier JAX-WS et JAXB) 8