1 Les technologies XML Cours 3 : XML et les architectures N-tiers Janvier 2016 - Version 2.0 -

Slides:



Advertisements
Présentations similaires
Cours 5 : XML et les architectures N-tier Janvier Version 1.0 -
Advertisements

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.
EJB 2 et spécialisation Présentation. Spécialisation La spécialisation Concept objet implémenté dans les langages dits orientés objet. Très souvent accompagné.
Projet de fin d'étude pour l'obtention du Diplôme Nationale d'Ingénieur en Informatique Conception et développement des modules de GED pour l’ indexation.
Composants Matériels de l'Ordinateur Plan du cours : Ordinateurs et applications Types d'ordinateurs Représentation binaires des données Composants et.
Logiciel Assistant Gestion d’Événement Rémi Papillié (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
Système de gestion d'entrées pour un cinéma Scanvion Michel – Etudiant 4.
Les systèmes d'information 1- Une pratique quotidienne 2- Les données 3- Approche conceptuelle 4- Notion de serveur 5- Conception d'un système d'information.
Développement à l'Aide de Langages Dynamiques : Smalltalk module IT308: Méthodologies et outils logiciels Nada Ayad, Damien Cassou et Annabelle Souc.
LES FONCTIONS D'UN SYSTEME D'EXPLOITATION ● Le système d'exploitation contrôle entièrement les ressources matérielles locales. ● Il est responsable de.
Présentation Projet JEE Présentation des Frameworks Java Server Faces & Eclipse Link.
Apache Tomcat Distributeur : Apache Software Foundation Projet : Jakarta Catégorie : Serveur d'applications Technologie : Java.
Le projet L'éditeur Les services associés 10/07/2007 OpenAguila, la gestion d’entreprise libre pour.
Introduction aux technologies du Web Mercredi 12 décembre 2007 Patrice Pillot
Le DOM Le Document Object Model (DOM) est une interface de programmation pour les documents HTML et XML Il fournit une représentation structurée du document.
1 UML: applications, études de cas ● Processus (Extreme Programming, Unified Process) ● Architectures ● Expression du besoin technique Conception Préliminaire.
Plugin Eclipse pour le langage LUA Responsable Fabrice Huet Chef de Projet Jérôme Poisson Développeurs Lu Deng Guillaume Ghibaudo Julien Raverdino Anthony.
Février 2006X. Belanger / Guilde Introduction à. Février 2006X. Belanger / Guilde Qu'est ce que Samba ? ● Implémentation libre du protocole CIFS/SMB (client.
Présentation du programme
1 Y a-t-il une place pour Opensocial dans l'enseignement supérieur ? David Verdin RENATER JRES - Toulouse – novembre 2011.
Fadhel jied Oussama hédhili V - conclusion IV - Les avantages et les inconvénients III - exemples II - aspect informatique I - introduction.
ANNEE ACADEMIQUE Institut Supérieur Emmanuelle D’Alzon de Butembo COURS: THEORIE DE BASE DE DONNEES : 45H PROMOTION: G2 Gestion Informatique.
Windows NT/2000/XP Enjeux et contraintes techniques
Framework EHop/Ecenvir
PPE : Gestion de parc informatique
Les P G I Les Progiciels de Gestion Intégrés
SOMMAIRE 1: ORALE 2: Les 3 systèmes de gestion de base de donnés 3:ORACLE DATA BASE 4:MY SQL 5:Oppen Office.org Base 6:Concurrence Conclusion.
JavaScript.
Master Réseaux et Systèmes Distribués (RSD) Algorithmique des systèmes
INSIA SRT 3 PAM !.
Les Tests de performances
Installation et Configuration Internet Information Server (IIS 5)
Clients riches RIA (Rich Internet Application) / RDA
Les bases de données et le modèle relationnel
LE MASHUP.
fonctionnalités iiS iis
HTML & css.
Asynchronous Javascript And Xml
Module 5 : Gestion des disques.
Programmation système
Développement d’un réseau social de collaboration destiné aux médecins radiologues Soutenance de projet de fin d’étude En vue de l’obtention du diplôme.
Août 2009.
Présentation des EJB Enterprise Java Beans.
SRT2 APACHE.
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Plus de 4000 langages....
Introduction à Internet
Présentation de frameworks J2EE 1 LIU Sizhao LUO Xin MALICK MANDENGUE Serge.
Service web Réalise par: Latifa Gamoun Mariem jridi Majdouline Hassni Service web Réalise par: Latifa Gamoun Mariem jridi Majdouline Hassni 1.
Outils et principes de base. Exemple d’application  Gestion de données d’enquête : Interface de saisie en ligne  insère directement les données dans.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
Chapitre2: SGBD et Datawarehouse. On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure d'informatique décisionnelle.
Auditeur: Léonardo AMODIO Cours: NFE107
Paradigme Orienté Objet
Structuration des documents pédagogiques
BIOS- OS Environnement logiciel PC / Traitement numérique / Contrôle.
Un cloud de production et de stockage
Atos, Atos et le poisson, Atos Origin et le poisson, Atos Consulting ainsi que le poisson seul sont des marques déposées d'Atos Origin SA. © 2006 Atos.
PLATE FORME DE GESTION ÉLECTRONIQUE DE DOCUMENTS Présenté par: Amine LARIBI.
Notions d'architecture client-serveur. Présentation de l'architecture d'un système client/serveur Des machines clientes contactent un serveur qui leur.
Test de performances. Test de performances:  Un test de performance est un test dont l'objectif est de déterminer la performance d'un système informatique.
YII Yes It Is !.
Definition de html sommaire. Présentation de html, css et javascript Module 1.
1 DEPLOIEMENT D’UN SYSTEME DE REPARTITION DE CHARCHE (LOAD BALANCING) Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux.
Qu’est ce qu’une page web? Comment fonctionne un site web?
Business Intelligence en ACube OLAP et Reporting avec ACubeOLAP et GRaM.
Transcription de la présentation:

1 Les technologies XML Cours 3 : XML et les architectures N-tiers Janvier Version 2.0 -

2 SOMMAIRE DU COURS XML ET LES ARCHITECTURES N-TIERS Introduction aux architectures N-tiers Serveurs d’applications Déploiement d’applications J2EE Tier applicatif : servlets Tier présentation : JSP - JSF Tier métier : JPA - accès aux bases de données Les APIs pour lire des documents XML Les APIs pour transformer des documents XML Modèles de conception et frameworks Conclusion : transformation client ou serveur ?

3 INTRODUCTION AUX ARCHITECTURES N-TIER 1/8 Les différentes couches d’une architecture 4-tier :

4 INTRODUCTION AUX ARCHITECTURES N-TIER 2/8 Les différentes couches d’une architecture 4-tier : La couche de présentation contient les différents types de clients, léger (ASP, JSP, JSF) ou lourd (Applet) La couche de présentation contient les différents types de clients, léger (ASP, JSP, JSF) ou lourd (Applet) La couche applicative contient les traitements représentant les règles métier (créer un compte de facturation, calculer un amortissement... ) La couche applicative contient les traitements représentant les règles métier (créer un compte de facturation, calculer un amortissement... ) La couche d'objets métier est représentée par les objets du domaine, c'est à dire l'ensemble des entités persistantes de l'application (Facture, Client... ) La couche d'objets métier est représentée par les objets du domaine, c'est à dire l'ensemble des entités persistantes de l'application (Facture, Client... ) La couche d'accès aux données contient les usines d'objets métier, c'est à dire les classes chargées de créer des objets métier de manière totalement transparente, indépendamment de leur mode de stockage (SGBDR, Objet, Fichiers, Legacy,...) La couche d'accès aux données contient les usines d'objets métier, c'est à dire les classes chargées de créer des objets métier de manière totalement transparente, indépendamment de leur mode de stockage (SGBDR, Objet, Fichiers, Legacy,...)

5 INTRODUCTION AUX ARCHITECTURES N-TIER 3/8 La valeur ajoutée des architectures n-tier : Cette séparation par couches de responsabilités sert à découpler au maximum une couche de l'autre afin d'éviter l'impact d'évolutions futures de l'application. Par exemple : si l’on est amené à devoir changer de base de données relationnelle, seule la couche d'accès aux données sera impactée, la couche de service et la couche de présentation ne seront pas concernées car elles auront été découplées des autres.

6 Les différentes technologies côté client : Les différentes technologies côté client : HTML, XML, XSL sont des langages de marquage/balisage. HTML, CSS, XML, XSL sont des standards du W3C JavaScript et Java sont des langages standards VBScript et Active X sont des langages propriétaires INTRODUCTION AUX ARCHITECTURES N-TIER 4/8

7 Les différentes technologies côté serveur : Les différentes technologies côté serveur : Java / JEE (SUN) Promu par la société Sun, l’avantage principal de java est d'être indépendant du système d'exploitation (interprété par une machine virtuelle). Java offre de plus la particularité de pouvoir être exécuté côté client (applets) ou côté serveur (servlets). Principal inconvénient : il nécessite une bonne connaissance technique et des concepts objet. INTRODUCTION AUX ARCHITECTURES N-TIER 5/8

8 Les différentes technologies côté serveur : Les différentes technologies côté serveur : JSP (Java Server Pages de Sun) Comme la plupart de ses concurrents, il permet d'intégrer des scripts, ici sous forme de code Java, dans les pages html. Lorsqu'une page JSP est appelée pour la première fois, elle est compilée et transformée en servlet (programme côté serveur). Ce servlet est exécuté et produit un contenu au format html. JSF (SUN) À l'inverse des autres frameworks MVC traditionnels à base d'actions, JSF est basé sur la notion de composants dont l'état est enregistré lors du rendu de la page, pour être ensuite restauré au retour de la requête.MVC JSF est agnostique à la technologie de présentation. Il utilise Facelets par défaut depuis la version 2.0, mais peut être utilisé avec d'autres technologies, comme JSP (qui était utilisé jusqu'à la version 1.2) ou XUL.FaceletsJSP XUL INTRODUCTION AUX ARCHITECTURES N-TIER 5/8

9 Les différentes technologies côté serveur : Les différentes technologies côté serveur : ASP (Active Server Pages de Microsoft) Cette technologie est basée sur des scripts côté serveur, écrits en VBscript, Jscript ou Javascript. Ces scripts sont exécutés par le serveur et leur résultat est produit sous forme de pages html standard. Un des avantages d'ASP est sa facilité de mise en œuvre. Largement répandue, cette technologie présente toutefois le désavantage d'être intimement liée à l'environnement Windows NT/2000 et au serveur IIS. C# /.Net (Microsoft) Cette technologie ressemble en de nombreux points à la technologie Java / J2EE. Elle présente cependant encore de nombreuses faiblesses en terme de portabilité serveur, multi-plateformes, scalabilité... INTRODUCTION AUX ARCHITECTURES N-TIER 6/8

10 Les différentes technologies côté serveur : Les différentes technologies côté serveur : PHP (Hypertext PreProcessor) PHP connaît un succès toujours croissant sur le Web et se positionne comme un rival important pour ASP et JSP. L'environnement Linux est sa plateforme de prédilection. Combiné avec le serveur Web Apache et la base de données MySQL, PHP offre une solution particulièrement robuste, stable et efficace, offrant en outre l'avantage d'être gratuite, tous ces logiciels venant du monde des logiciels libres (Open Source). INTRODUCTION AUX ARCHITECTURES N-TIER 7/8

11 INTRODUCTION AUX ARCHITECTURES N-TIER 8/8 Les différents réseaux : Les différents réseaux : Internet : Réseau de portée mondiale interconnectant des ordinateurs et des réseaux personnels et professionnels. Intranet : Réseau de portée locale interconnectant des ordinateurs et des réseaux réservés à une entreprise. Extranet : Réseau interconnectant plusieurs ordinateurs et réseaux de plusieurs entreprises.

12 SERVEURS D’APPLICATION 1/4 Principales fonctionnalités d’un serveur Web : Principales fonctionnalités d’un serveur Web : Réceptionner la requête Re-router les requêtes dynamiques Re-router les requêtes dynamiques Rechercher les pages statiques Rechercher les pages statiques Encapsuler les pages dans la réponse Encapsuler les pages dans la réponse Émettre la réponse Émettre la réponse

13 SERVEURS D’APPLICATION 2/4 Principales fonctionnalités d’un serveur d’application : Principales fonctionnalités d’un serveur d’application : Réceptionner la requête Construire la réponse dynamique Construire la réponse dynamique Renvoyer la réponse au serveur Web Renvoyer la réponse au serveur Web

14 SERVEURS D’APPLICATION 3/4 Les fonctionnalités d’un serveur d’application : Les fonctionnalités d’un serveur d’application : La production de contenu dynamique Le support des plates-formes L'ouverture vers l'existant Le pooling de connexions Le respect des standards L'administration La reprise sur incident La répartition de charges La sécurité La gestion de contexte

15 SERVEURS D’APPLICATION 4/4 L’architecture mise en œuvre dans le cadre du TD : Serveur d’application Tomcat Programmation JEE  Servlet  JSP  JAX-WSJAX-RS HTML 5 HTML 5

16 RAPPEL SUR JEE 1/6 JEE s’appuie sur des concepts objet : Classe : type d’objet caractérisé par sa structure de données (attributs) et son comportement (méthodes). Objet : instance de classe. Héritage : Mécanisme permettant à une classe d’objets de bénéficier de la structure de données et du comportement d’une classe "mère", tout en lui permettant de les affiner et ce, afin de prendre en compte les spécificités de la classe "fille", sans avoir cependant à redéfinir ce que les deux classes ont de commun. Abstraction : Mécanisme permettant la dissociation entre la déclaration d’une classe et son implémentation. Polymorphisme : Mécanisme permettant d’associer à un comportement, une implémentation différente en fonction de l’objet auquel on se réfère. Encapsulation : Mécanisme permettant de dissimuler les détails du fonctionnement interne d’une classe aux autres classes.

17 RAPPEL SUR JEE 2/6 JEE s’appuie sur le langage Java : Java est un langage orienté objet dont la syntaxe est dérivé du C et dont la conception résulte de l’expérience de divers langages (Smalltalk, Ada, C++ …) Java est un langage orienté objet dont la syntaxe est dérivé du C et dont la conception résulte de l’expérience de divers langages (Smalltalk, Ada, C++ …) Java est un langage semi-compilé. Le code obtenu après compilation s’appelle du byte-code et ce code est interprétable par une JVM (Java Virtual Machine). Cependant, Java peut également être complètement compilé (transformé en langage machine) si nécessaire. Cependant, Java peut également être complètement compilé (transformé en langage machine) si nécessaire. Java est portable sur toutes les plate-formes puisqu’il existe des machines virtuelles pour chacune. (Les navigateurs intègrent des machines virtuelles java). Java est portable sur toutes les plate-formes puisqu’il existe des machines virtuelles pour chacune. (Les navigateurs intègrent des machines virtuelles java). Java est un langage conçu, à l’origine, pour être utilisé via un réseau.

18 RAPPEL SUR JEE 3/6 JEE s’appuie sur le langage Java (suite) : Java est un langage intégrant différent mécanisme de sécurité (il permet de définir des stratégies de sécurité permettant par exemple d’interdire l’accès aux ressources locales de la machine). Java est un langage intégrant différent mécanisme de sécurité (il permet de définir des stratégies de sécurité permettant par exemple d’interdire l’accès aux ressources locales de la machine). Java intègre un ramasse-miette automatique facilitant de ce fait le codage et diminuant les risques de mauvaise gestion de la mémoire. Java est un langage multi-thread (il permet la gestion en parallèle de plusieurs processus). Java est un langage multi-thread (il permet la gestion en parallèle de plusieurs processus). Les produits de développement : Les produits de développement :  IBM RAD  NetBeans  Oracle JDevelopper  Eclipse  BEA Workshop

19 RAPPEL SUR JEE 4/6 JEE est principalement une architecture de composants : Objectif des composants : Objectif des composants :   avoir des briques de bases réutilisables. Définition d’un composant : Définition d’un composant :  module logiciel,  qui exporte différents attributs, propriétés et méthodes, méthodes,  qui est prévu pour être configuré,  qui est prévu pour être installé,  qui fournit un mécanisme lui permettant de s’auto -décrire. s’auto -décrire. Composant = objet + configurateur + installateur.

20 RAPPEL SUR JEE 5/6 Les composants de la plate-forme JEE :

21 RAPPEL SUR JEE 6/6 En résumé : Java Enterprise Edition est la définition d’un ensemble de standards, relatifs à des services techniques développés en Java dont l’objectif est de fournir une architecture logicielle permettant le déploiement d’applications transactionnelles critiques. C’est aujourd’hui un standard du marché car il offre :  une simplification de l’architecture, du développement et de la maintenance  un support du transactionnel et de la scalibilité  une intégration homogène avec les SI existants  une indépendance sur le choix des serveurs, des outils et des composants

22 ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS JEE 1/6 Le développement d’applications Web repose sur trois composants J2EE principaux : Les servlets : ce sont des programmes Java exécutés sur un serveur (par sa JVM). Ils permettent d’étendre le comportement du serveur dynamiquement. Les servlets : ce sont des programmes Java exécutés sur un serveur (par sa JVM). Ils permettent d’étendre le comportement du serveur dynamiquement. Les JSP - JSF : ce sont des pages HTML incluant du code JAVA (stocké à l’intérieur de balises). Les JSP - JSF : ce sont des pages HTML incluant du code JAVA (stocké à l’intérieur de balises). Les EJB : ce sont des entités de traitement s’exécutant dans un environnement adapté (conteneur) et possédant des mécanismes de configuration et d’installation. Les EJB : ce sont des entités de traitement s’exécutant dans un environnement adapté (conteneur) et possédant des mécanismes de configuration et d’installation.

23 ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS JEE 2/6 Mécanisme d’une application Web JEE : 3 - La servlet contrôle la validité de la requête HTTP. 4 - Elle instancie les beans de données pour accéder aux données. 6 - Elle invoque la JSP pour générer la page HTML qui contient le résultat de la requête.

24 ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS JEE 3/6 Architecture d’une application JEE : Les modules et les applications correspondent physiquement à des fichiers d'archives : archive EJB JAR (.jar) pour un module EJB, archive WAR pour un module web, archive EAR pour une application. 3 couches : 3 couches :  Les composants.  Les modules regroupant les composants  Les applications regroupant les modules

25 ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS JEE 4/6 Module Web (.war). Selon la spécification JEE, une application Web doit avoir la structure suivante: un répertoire racine public contenant les ressources statiques (images, pages html, fichier js, …) un repertoire WEB-INF situé dans le répertoire racine de l'application web. Celui-ci peut contenir des éléments dynamiques (JSP, JSF, …) un fichier web.xml situé à la racine de WEB-INF : c'est le descripteur de déploiement de l'application web. un répertoire WEB-INF/classes contenant les classes compilées de l'application (servlets, classes auxiliaires...). un répertoire WEB-INF/lib contenant les fichiers JAR de l'application (drivers JDBC, frameworks empaquetés...). Le tout peut être empaqueté dans une archive sous la forme d'un fichier WAR (réalisé avec l'utilitaire jar du JDK).

26 ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS JEE 5/6 Module EJB (.jar). Selon la spécification JEE 1.2, un fichier JAR doit avoir la structure suivante : un répertoire META-INF/ contenant un descripteur de déploiement XML du module EJB, nommé ejb-jar.xml les fichiers.class correspondant aux interfaces locale (home interface) et distante (remote interface), à la classe d'implémentation, et aux classes auxiliaires (classes d'exception par exemple) des EJBs, situées dans leur package. Le tout peut être empaqueté dans une archive sous la forme d'un fichier JAR.

27 ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS JEE 6/6 Application d’entreprise (.ear). Selon les spécifications J2EE, une application d'entreprise doit avoir la structure suivante : un répertoire META-INF/ contenant le descripteur de déploiement XML de l'application J2EE nommé application.xml. C’est dans ce descripteur que l’on définit les modules web et EJB qui constituent l'application d'entreprise. On y précise par exemple sur quelle racine du serveur web (placé en frontal devant le serveur d'application) doit résider l'application web. les fichiers archives.JAR et.WAR correspondant aux modules EJB et aux modules Web de l'application d'entreprise. Le tout peut être empaqueté dans une archive sous la forme d'un fichier EAR.