Applications réparties à composants et JavaEE

Documents pareils
Java pour le Web. Cours Java - F. Michel

Introduction à la plateforme J2EE

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

Environnements de Développement

JOnAS 5. Serveur d application d

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

Vulgarisation Java EE Java EE, c est quoi?

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

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

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

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

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

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

Mise en œuvre des serveurs d application

Les nouvelles architectures des SI : Etat de l Art

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

Annexe : La Programmation Informatique

Compte Rendu d intégration d application

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

Java Enterprise Edition

Introduction à Java. Philippe Genoud.

Programmation Orientée Objet

Programmation Web Avancée Introduction aux services Web

CQP Développeur Nouvelles Technologies (DNT)

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

TP1 : Initiation à Java et Eclipse

Introduction aux applications réparties

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

Java Naming and Directory Interface

Urbanisation des Systèmes d'information

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

JOnAS Day 5.1. Clustering

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

Messagerie asynchrone et Services Web

Chapitre I Notions de base et outils de travail

Bases Java - Eclipse / Netbeans

Comparaison des architectures J2EE et.net

Documentation de la plate forme JOnAS. Frederic Maistre

Nouvelles Plateformes Technologiques

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

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

Introduction aux intergiciels

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

Développer avec les technologies ESRI. ESRI Developer Network (EDN) Gaëtan LAVENU ESRI France Jérémie MAJEROWICZ ESRI France

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)

DotNet. Plan. Les outils de développement

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

Plan. Department of Informatics

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

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

TP1 : Initiation à Java et Eclipse

1 JBoss Entreprise Middleware

Documentation de la plate forme JOnAS

Intergiciels orientés composants.

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

IBM WebSphere Application Server 5.0 : Administration avancée

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

Cours en ligne Développement Java pour le web

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

CAHIER DES CHARGES D IMPLANTATION

Cloud et SOA La présence du Cloud révolutionne-t-elle l approche SOA?

Formation en Logiciels Libres. Fiche d inscription

JOnAS 5 Enterprise OSGi javaee compliant

Le cadre des Web Services Partie 1 : Introduction

Direction des Technologies de l Information. Présentation OCDE. Contribution du Parlement européen. L utilisation de l OPEN SOURCE au PE

Evaluation Idéopass Cahier d analyse technique

NSY102. Conception de logiciels Intranet Introduction

Quel ENT pour Paris 5?

Initiation à JAVA et à la programmation objet.

Description de la formation

Introduction aux «Services Web»

Catalogue des Formations Techniques

2 Chapitre 1 Introduction

Jean-Philippe VIOLET Solutions Architect

Cedric Dumoulin (C) The Java EE 7 Tutorial

Informatique en nuage Cloud Computing. G. Urvoy-Keller

Open Source & Innovation exo Platform Oualid Chaker,

Quick Start Installation de MDweb version 2.3

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

Hébergement de sites Web

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA. 28 ans - 7 ans d'expérience

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Etude analytique des architectures applicatives

Rapport d activité. Mathieu Souchaud Juin 2007

LICENCE PROFESSIONNELLE

31 ans - 8 ans d'expérience

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

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

Intégration de systèmes client - serveur Des approches client-serveur à l urbanisation Quelques transparents introductifs

ELO Office / Pro Les avantages : Archivage et gestion documentaire

Notes de version de Sun Java System Application Server Enterprise Edition

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

«Consultant en système d'information et cloud computing»

Java - la plateforme

Eléments d architecture technique Jalios JCMS 8.0

emuseum PUBLIEZ VOS COLLECTIONS SUR INTERNET Pourquoi choisir emuseum? Intégration facile avec TMS Puissante fonction de recherche

Architectures n-tiers Intergiciels à objets et services web

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

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

Transcription:

Applications réparties à composants et JavaEE Jonathan Lejeune UPMC/LIP6-INRIA SRCS Master 1 SAR 2016/2017 sources : Développons en Java, Jean-Michel Doudoux Cours précédent de Lionel Seinturier Wikipédia Cours de Jérôme Hugues et Ada Diaconescu (Telecom ParisTech) c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 1 / 15

Application répartie Un cycle de vie complexe Dénition des interfaces, de la topologies de l'application Implantation des interfaces Tests Conguration Paramétrage des entités applicatives et de l'env. d'exécution Déploiement sur plusieurs n uds Positionner les entités applicatives et les préparer à s'exécuter Et des évolutions Correction de bugs Évolutions/extensions des interfaces Déploiement sur une nouvelle architecture (topologie, OS,...) c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 2 / 15

Construire une application répartie Les outils à notre disposition Modèles abordés : Remote Procedure Call : Sun RPC Objets répartis : OMG CORBA, Java RMI Modèle non abordé : Message Oriented Middleware : Java Message Service, OMG DDS Leurs limites Ces outils butent sur : le passage à l'échelle de l'application (nombre d'entités) l'évolution de l'application c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 3 / 15

Limites des intergiciels Orientés Objet (ex : CORBA) Pas de standard de déploiement et de conguration Instanciation des servants et des clients sur le système Politiques de conguration à plusieurs niveaux : ORB, POA, objet, connexion Conguration et déploiement noyés dans le code applicatif Solution : séparer le code d'une entité des mécanismes de conguration et de leur mise en place Dicile d'étendre les fonctionnalités des objets impossibilité de connaître les clients d'une interface dicile d'assurer le suivi des modications simplement Solution : étendre le modèle de programmation pour ajouter la notion "d'interface requise" à celle "d'interface publiée" c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 4 / 15

La notion de composant Dénition selon [Szyperski 97] Unité de composition qui a, par contrat, spécié uniquement ses interfaces et ses dépendances explicites de contextes. Un composant logiciel peut être déployé indépendamment et est sujet à composition par des entités tierces. Une notion commune à plusieurs systèmes sous diérentes formes Logicielle : EJB, Java Beans, OSGi Modélisation : composants UML Matérielle : composants électronique En résumé Outil facilitant la réutilisation, la composition et le déploiement c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 5 / 15

Composants vs. objets Propriétés des composants unité de déploiement indépendante Séparation forte par rapport à l'environnement Déploiement partiel impossible unité de composition par une entité tierce unité qui n'a pas d'état persistant notion de copie non dénie un composant est soit disponible soit indisponible Propriétés des objets Unité d'instanciation ; il a un identiant unique instanciation partielle impossible plan de construction : la classe Encapsule son état et son comportement État change, pas son identiant L'état peut être persistant c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 6 / 15

Composants vs. objets Apports du composant sur l'objet plus haut niveau abstraction meilleure encapsulation, protection, autonomie communications plus explicites port, interface, connecteur connectables/composables séparation de la partie métier de la partie technique meilleure couverture du cycle de vie conception, implémentation, packaging, déploiement, exécution c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 7 / 15

Vers des applications réparties à composants Un nouveau modèle de programmation Structuration d'une application répartie en dénissant : Des composants implantant une fonctionnalité Un container dénissant les frontières des composants Un framework à composants permettant l'automatisation de : la connexion et l'assemblage la conguration l'instanciation et du déploiement c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 8 / 15

Java Enterprise Edition c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 9 / 15

Java Enterprise Edition Qu'est ce que c'est? Un ensemble de concepts et de spécications dénies par Oracle pour le développement d'applications Java réparties pour les entreprises. En pratique Une Extension de l'api de de Java Standard Edition (Java SE) : Correspondance objet Java et données relationnelles (SGBD) services Web architectures distribuées multi-tier Des composants modulaires s'exécutant dans un conteneur JavaEE Un serveur d'applications automatisant interactions, dépendance et déploiement des conteneurs et des composants Domaines applicatifs E-commerce, Systèmes d'informations, Sites web, services,... c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 10 / 15

Positionnement de Java Enterprise Edition Java EE JDK (JavaEE) Java SE JDK (JavaSE) JRE JRE Library JVM JSR JSE JSR JEE Entités associées à chaque version de Java EE Java Specication Requests (JSR) : spécif. de la version considérée Java Development Kit (JDK) : les bibliothèques logicielles Java Runtime Environment (JRE) : le seul env. d'exécution c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 11 / 15

Technologies intégrées à Java Enterprise Edition API de communications Java RMI : requête/réponse entre objets Java Java IDL : requête/réponse entre objets Java et non-java (via CORBA) JAX-RPC/JAX-WS : requête/réponse Web Service (HTTP+SOAP+XML) JMS : messages + boite à lettres API de connexion JNDI : annuaires (LDAP, DNS,...), et espace de noms d'objet (ENC) JDBC : bases de données JavaMail : serveur mail API de développement de composants d'application JavaEE EJB : Composants distribués transactionnels Servlet : Composants Web c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 12 / 15

Java Enterprise Edition : bref historique Déc. 1999 : J2EE 1.2 EJB 1.1, JDBC 2.0, JNDI 1.2, RMI-IIOP 1.1, Servlet 2.2, JMS 1.0, JavaMail API 1.2 Nov. 2003 : J2EE 1.4 ajout de supports pour Web Services (JAXP, JAX-RPC, JAXR) Mai 2006 : Java EE 5 EJB 3.0 Dec. 2009 : Java EE 6 EJB 3.1 Juin 2013 : Java EE 7 EJB 3.2 Prévu pour n 2017 : Java EE 8 support pour HTML5, HTTP 2.0 et Cloud computing c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 13 / 15

Plates-formes JavaEE Implémentations existantes Une implémentation de référence : Oracle GlassFish 4.0 Commerciales : WebSphere (IBM), JEUS 8 (TmaxSoft),... Open-source : Wildy 10.0/JBoss (RedHat), Geronimo (Apache),... Processus de certication payant sauf pour plates-formes open-source assez-lourd à mettre en uvre (plusieurs dizaines de millier de tests) une certication par version de JavaEE c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 14 / 15

Applications JavaEE Caractéristiques Composée de : conteneur(s) de composants de type EJB conteneur(s) de composants Web (Servlet)... Des connecteurs ou/et des dépendances entre composants L'ensemble archivé dans une Enterprise Application archive (EAR) Un serveur d'applications déployant et gérant le tout Serveur d Applications JEE Conteneur EJB EJB EJB EJB EJB Conteneur Web Servlet Servlet Servlet Application JEE App JEE c Jonathan Lejeune (UPMC/LIP6) Appli. réparties à composants et JavaEE 15 / 15