38
Khin Chhoung LAO, Cnam. Architecture Architecture J2EE J2EE

Architecture J2EE

  • Upload
    nikita

  • View
    24

  • Download
    1

Embed Size (px)

DESCRIPTION

Architecture J2EE. Khin Chhoung LAO, Cnam. Introduction. Java a permis la création de nouveaux modèles et technologies de programmation concernant des aspects aussi variés que des équipements. - PowerPoint PPT Presentation

Citation preview

Page 1: Architecture J2EE

Khin Chhoung LAO, Cnam.

Architecture J2EEArchitecture J2EE

Page 2: Architecture J2EE

IntroductionIntroduction

Java a permis la création de nouveaux modèles et Java a permis la création de nouveaux modèles et technologies de programmation concernant des technologies de programmation concernant des aspects aussi variés que des équipements.aspects aussi variés que des équipements.

En parallèle, Java a joué le rôle de catalyseur en En parallèle, Java a joué le rôle de catalyseur en renforçant ou en définissant plus précisément certains renforçant ou en définissant plus précisément certains domaines technologies, comme la plate-forme domaines technologies, comme la plate-forme Java 2 Java 2 Édition EntrepriseÉdition Entreprise (J2EE). (J2EE).

Page 3: Architecture J2EE

Les besoins des Les besoins des entreprises entreprises

• Productivité élevée en Productivité élevée en programmation programmation Il faut savoir utiliser Il faut savoir utiliser pleinement les nouvelles technologies et les combiner pleinement les nouvelles technologies et les combiner harmonieusement avec d ’autres technologies. Il faut avoir la harmonieusement avec d ’autres technologies. Il faut avoir la capacité à développer, puis déployer des applications de capacité à développer, puis déployer des applications de

manière efficace et rapide.manière efficace et rapide.

• Capacité de réaction Capacité de réaction L ’économie actuelle qui se nourrit d ’information à un L ’économie actuelle qui se nourrit d ’information à un

rythme de plus en plus vertigineux exige des réactions rapides rythme de plus en plus vertigineux exige des réactions rapides aux nouvelles orientations afin de prendre et de garder aux nouvelles orientations afin de prendre et de garder

l ’ascendant sur les concurrents.l ’ascendant sur les concurrents.

Page 4: Architecture J2EE

Les besoins des entreprises Les besoins des entreprises (suite)(suite)

• Fiabilité et disponibilitéFiabilité et disponibilitéDans le monde de l ’économie électronique actuel, les Dans le monde de l ’économie électronique actuel, les

temps d ’immobilisation peuvent causer la perte d ’une temps d ’immobilisation peuvent causer la perte d ’une entreprise. Il est indispensable que vos opérations basées sur le entreprise. Il est indispensable que vos opérations basées sur le web fonctionnent en permanence. Vous devez être capable de web fonctionnent en permanence. Vous devez être capable de garantir la fiabilité de vos transactions commerciales. garantir la fiabilité de vos transactions commerciales.

• SécuritéSécurité Internet a non seulement permis Internet a non seulement permis d ’accroître de façon exponentielle le nombre des utilisateurs d ’accroître de façon exponentielle le nombre des utilisateurs potentiels, mais il a aussi multiplié la valeur des informations potentiels, mais il a aussi multiplié la valeur des informations détenues par les sociétés, d ’où l ’importance d ’assurer leur détenues par les sociétés, d ’où l ’importance d ’assurer leur

confidentialité. confidentialité.

Page 5: Architecture J2EE

Les besoins des entreprises Les besoins des entreprises (suite)(suite)

• ÉvolutivitéÉvolutivitéIl est important qu ’une application puisse se développer Il est important qu ’une application puisse se développer pour faire face aux exigences. Pour s ’adapter de façon pour faire face aux exigences. Pour s ’adapter de façon efficace, l ’application doit pouvoir gérer une montée en efficace, l ’application doit pouvoir gérer une montée en charge du nombre des utilisateurs et utiliser de manière charge du nombre des utilisateurs et utiliser de manière optimale les ressources du système.optimale les ressources du système.

• IntégrationIntégrationLes applications doivent être en mesure d ’intégrer les Les applications doivent être en mesure d ’intégrer les systèmes d ’informations existants. C ’est dans la systèmes d ’informations existants. C ’est dans la capacité d ’une entreprise à combiner les anciennes et capacité d ’une entreprise à combiner les anciennes et les nouvelles technologies que réside la clé de son les nouvelles technologies que réside la clé de son

succès.succès.

Page 6: Architecture J2EE

Architecture systèmeArchitecture système

• Les systèmes client-serveur classiques Les systèmes client-serveur classiques s ’appuient sur une architecture à deux niveaux s ’appuient sur une architecture à deux niveaux permettant de séparer nettement les données et permettant de séparer nettement les données et la logique de présentation/ logique métier.la logique de présentation/ logique métier.

• Ces systèmes appuient généralement sur Ces systèmes appuient généralement sur l ’utilisation des données. L ’application réside l ’utilisation des données. L ’application réside entièrement sur le poste client et la base de entièrement sur le poste client et la base de données est hébergée sur un serveur situé données est hébergée sur un serveur situé quelque part dans l ’entreprise.quelque part dans l ’entreprise.

• Même si une telle approche nous permet de Même si une telle approche nous permet de partager les données au sein d ’une entreprise, partager les données au sein d ’une entreprise, elle présente de nombreux inconvénients.elle présente de nombreux inconvénients.

Page 7: Architecture J2EE

Architecture à deux Architecture à deux niveaux niveaux

• Dans une application classique à deux niveaux, la Dans une application classique à deux niveaux, la charge de traitement est attribuée au poste client tandis charge de traitement est attribuée au poste client tandis que le serveur se contente de contrôler le trafic entre que le serveur se contente de contrôler le trafic entre l ’application et la base de données.l ’application et la base de données.

• Par conséquence, les performances de l ’application Par conséquence, les performances de l ’application baissent du fait des ressources limitées du PC.baissent du fait des ressources limitées du PC.

• L ’approche à deux niveaux pose un problème de la L ’approche à deux niveaux pose un problème de la maintenance.maintenance.

• En effet, la moindre modification apportée à En effet, la moindre modification apportée à l ’application peut avoir des répercussions sur la totalité de l ’application peut avoir des répercussions sur la totalité de la base utilisateur.la base utilisateur.

Page 8: Architecture J2EE

Architecture à deux Architecture à deux niveaux niveaux

•Appliation

•DB

Page 9: Architecture J2EE

Architecture à trois Architecture à trois niveaux niveaux

• Pour éliminer les inconvénients d ’architecture à deux Pour éliminer les inconvénients d ’architecture à deux niveaux, on a crée la notion d ’architecture à 3 niveaux, on a crée la notion d ’architecture à 3 niveaux.niveaux.

• Ainsi, une application est divisée en trois niveaux Ainsi, une application est divisée en trois niveaux logiques distincts, chacun d ’entre eux étant pourvu logiques distincts, chacun d ’entre eux étant pourvu d ’un ensemble d ’interface bien défini.d ’un ensemble d ’interface bien défini.

• 1: Niveau présentation1: Niveau présentation

• 2: Niveau métier2: Niveau métier

• 3: Niveau données.3: Niveau données.

Page 10: Architecture J2EE

•DB

Architecture à trois niveaux Architecture à trois niveaux (suite)(suite)

•DB

•Interface utilisateur

•Logique applicative

•Doc XML•DB

Page 11: Architecture J2EE

Architecture à trois niveaux Architecture à trois niveaux (suite)(suite)

• Niveau présentation :Niveau présentation :

– Il est généralement constitué d ’une interface Il est généralement constitué d ’une interface utilisateur graphique.utilisateur graphique.

– Il reçoit les données et les formate en vue de Il reçoit les données et les formate en vue de leur affichage.leur affichage.

– Cette séparation de la logique applicative de Cette séparation de la logique applicative de l ’interface accentue considérablement la l ’interface accentue considérablement la souplesse de conception de l ’application.souplesse de conception de l ’application.

Page 12: Architecture J2EE

Architecture à trois niveaux Architecture à trois niveaux (suite)(suite)

• Niveau métier (logique applicative) :Niveau métier (logique applicative) :– Il recouvre la logique métier et logique Il recouvre la logique métier et logique

applicative. applicative.

Page 13: Architecture J2EE

Architecture à trois niveaux Architecture à trois niveaux (suite)(suite)

• Niveau données :Niveau données :– Ce niveau abrite les données nécessaires à Ce niveau abrite les données nécessaires à

l ’application. l ’application.

– Il peut s ’agit sur n’importe quelle source Il peut s ’agit sur n’importe quelle source d ’information : Oracle, Sybase, Jeu de d ’information : Oracle, Sybase, Jeu de document XML etc..document XML etc..

Page 14: Architecture J2EE

Architecture multiniveauxArchitecture multiniveaux

• Il n ’existe pas de solution toute faite Il n ’existe pas de solution toute faite pour définir les niveaux applicatifs d ’un pour définir les niveaux applicatifs d ’un système multiniveaux. système multiniveaux.

• En réalité, un système multiniveaux peut En réalité, un système multiniveaux peut supporter différentes configurations.supporter différentes configurations.

• Au sein d ’une architecture multiniveaux, Au sein d ’une architecture multiniveaux, la logique applicative se décompose la logique applicative se décompose selon les fonctions.selon les fonctions.

Page 15: Architecture J2EE

Architecture multiniveaux Architecture multiniveaux (suite)(suite)

• Cette architecture se subdivise donc de Cette architecture se subdivise donc de la façon suivante :la façon suivante :– Interface utilisateurInterface utilisateur

– Logique de présentationLogique de présentation

– logique métierlogique métier

– services d ’infrastructureservices d ’infrastructure

– Niveau données.Niveau données.

Page 16: Architecture J2EE

Architecture multiniveaux Architecture multiniveaux (suite)(suite)

• Interface utilisateur Interface utilisateur – chargée de gérer les interactions entre chargée de gérer les interactions entre

l ’utilisateur et l ’application. l ’utilisateur et l ’application.

• Service d ’infrastructureService d ’infrastructure– Qui fournissent des fonctionnalités Qui fournissent des fonctionnalités

supplémentaires nécessaires aux composants supplémentaires nécessaires aux composants de l ’application, tels qu ’un service de de l ’application, tels qu ’un service de messagerie, de support transactionnel, etc..messagerie, de support transactionnel, etc..

Page 17: Architecture J2EE

Architecture d ’entreprise Architecture d ’entreprise

• Pour transformer un système Pour transformer un système multiniveaux en un système multiniveaux en un système d ’entreprise, il suffit d ’étendre le d ’entreprise, il suffit d ’étendre le niveau intermédiaire de sorte qu ’il niveau intermédiaire de sorte qu ’il accueille plusieurs objets applicatifs accueille plusieurs objets applicatifs plutôt qu ’une application unique.plutôt qu ’une application unique.

• Ces objets applicatifs doivent être Ces objets applicatifs doivent être pourvus d ’une interface leur permettre pourvus d ’une interface leur permettre de coopérer les uns avec les autresde coopérer les uns avec les autres. .

Page 18: Architecture J2EE

Architecture d ’entreprise Architecture d ’entreprise (suite)(suite)

•Formulaire HTML•(Navigateur)

•Appet Java•(Navigateur)

•Tout système• capable de •présenter des données

•Interface •Composant applicatif

•Interface •Composant applicatif

•Interface •Composant applicatif

•Middleware de base de données

•DB•DB•Système distant •Documents XML

Page 19: Architecture J2EE

Architecture d ’entreprise Architecture d ’entreprise (suite)(suite)

• Il est important de noter que, lors Il est important de noter que, lors de la conception d ’un objet et de de la conception d ’un objet et de son interface, il est conseillé son interface, il est conseillé d ’opter pour une interface aussi d ’opter pour une interface aussi générique que possible afin générique que possible afin d ’échapper aux risques de d ’échapper aux risques de modifications ultérieures.modifications ultérieures.

Page 20: Architecture J2EE

Les différentes solutions Les différentes solutions

• Microsoft : DNA (.net)Microsoft : DNA (.net)

• Sun : J2EE Sun : J2EE

• Oracle : Oracle 8i Internet Platform Oracle : Oracle 8i Internet Platform etc.. etc..

Page 21: Architecture J2EE

JavaJava

• Indépendance de la plate-forme :Indépendance de la plate-forme :

– Dans une entreprise, les informations Dans une entreprise, les informations sont réparties entre différentes plate-sont réparties entre différentes plate-formes et applications.formes et applications.

– Il est important de disposer d ’un langage Il est important de disposer d ’un langage de programmation capable de fonctionner de programmation capable de fonctionner n ’importe où dans l ’entreprise sans avoir n ’importe où dans l ’entreprise sans avoir devoir passer par des mécanismes de devoir passer par des mécanismes de translation inefficaces et compliqués.translation inefficaces et compliqués.

Page 22: Architecture J2EE

Java Java (suite)(suite)

• Réutilisabilité :Réutilisabilité :– Réutiliser le code représente le but Réutiliser le code représente le but

ultime à atteindre pour tout ultime à atteindre pour tout programmeur.programmeur.

– Java est un langage orienté objet doté, Java est un langage orienté objet doté, de mécanismes de réutilisation.de mécanismes de réutilisation.

Page 23: Architecture J2EE

Java Java (suite)(suite)

• Modularité :Modularité :– Les Les servelets Javaservelets Java, les JavaServer , les JavaServer

Pages (Pages (JSPJSP) et les Entreprise JavaBeans ) et les Entreprise JavaBeans ((EJBEJB) vous permettre de modulariser ) vous permettre de modulariser votre application en la décomposant en votre application en la décomposant en niveaux et en tâches.niveaux et en tâches.

Page 24: Architecture J2EE

Qu ’est ce que J2EE ?Qu ’est ce que J2EE ?

• J2EE est essentiellement un J2EE est essentiellement un environnement serveur environnement serveur d ’applications distribuées.d ’applications distribuées.

Page 25: Architecture J2EE

Qu ’est ce que J2EE ? Qu ’est ce que J2EE ? (suite)(suite)

• C ’est à dire, un environnement Java C ’est à dire, un environnement Java fournissant les outils suivants:fournissant les outils suivants:– une infrastructure d ’exécution pour une infrastructure d ’exécution pour

héberger des applications .héberger des applications .

– Un ensemble d ’Un ensemble d ’APIAPI d ’extension Java d ’extension Java pour concevoir des application.pour concevoir des application.

Page 26: Architecture J2EE

La Plate-forme J2EELa Plate-forme J2EE

• Cette plate-forme est de fournir un Cette plate-forme est de fournir un standard simple et unifié, destiné standard simple et unifié, destiné aux applications via un modèle aux applications via un modèle applicatif basé sur des composants.applicatif basé sur des composants.

Page 27: Architecture J2EE

La Plate-forme J2EE La Plate-forme J2EE (suite)(suite)

• J2EE spécifie les rôles et les interfaces J2EE spécifie les rôles et les interfaces pour les applications, ainsi que pour les applications, ainsi que l ’environnement d ’exécution dans l ’environnement d ’exécution dans lequel les applications pourraient être lequel les applications pourraient être déployées.déployées.

• Il en résulte une séparation claire entre Il en résulte une séparation claire entre les applications et l ’infrastructure les applications et l ’infrastructure d ’exécution.d ’exécution.

Page 28: Architecture J2EE

La Plate-forme J2EE La Plate-forme J2EE (suite)(suite)

• J2EE ne spécifie ni la nature ni la J2EE ne spécifie ni la nature ni la structure de l ’environnement structure de l ’environnement d ’exécution.d ’exécution.

• Il introduit un Il introduit un conteneurconteneur et, via les et, via les APIAPI J2EEJ2EE, il élabore un contrat entre , il élabore un contrat entre les conteneurs et les applications.les conteneurs et les applications.

Page 29: Architecture J2EE

Les API J2EE Les API J2EE

• Les applications distribuées doivent avoir Les applications distribuées doivent avoir accès aux services distribués.accès aux services distribués.

• De tels services comprennent le De tels services comprennent le traitement des transactions, l ’accès aux traitement des transactions, l ’accès aux bases de données, la messagerie etc..bases de données, la messagerie etc..

• L ’architecture J2EE unifie l ’accès à ces L ’architecture J2EE unifie l ’accès à ces services au sein des API de ses services services au sein des API de ses services d ’entreprise.d ’entreprise.

Page 30: Architecture J2EE

Les API J2EE Les API J2EE (suite)(suite)

• Toutefois, plutôt que d ’avoir accès à Toutefois, plutôt que d ’avoir accès à ces services au travers d ’interfaces ces services au travers d ’interfaces propriétaires ou non standard, les propriétaires ou non standard, les applications J2EE peuvent accéder à applications J2EE peuvent accéder à ces API via le conteneur. ces API via le conteneur.

• Une plate-forme commerciale (ou un Une plate-forme commerciale (ou un serveur d ’application) J2EE typique serveur d ’application) J2EE typique comprend un ou plusieurs conteneurs comprend un ou plusieurs conteneurs et a accès aux API d ’entreprise et a accès aux API d ’entreprise spécifiées par J2EE. spécifiées par J2EE.

Page 31: Architecture J2EE

Les API J2EE Les API J2EE (suite)(suite)

• La plate-forme J2EE doit prendre en La plate-forme J2EE doit prendre en charge:charge:– l ’extension JAVA DataBase Connectivity l ’extension JAVA DataBase Connectivity

((JDBCJDBC))

– le protocole standard Remote Method le protocole standard Remote Method Invocation over the Internet Inter-ORB Invocation over the Internet Inter-ORB ((RMI-IIOPRMI-IIOP). Il permet aux applications ). Il permet aux applications RMI et CORBA de se rejoindre.RMI et CORBA de se rejoindre.

Page 32: Architecture J2EE

Les API J2EE Les API J2EE (suite)(suite)

– Entreprise Java Beans (Entreprise Java Beans (EJBEJB) 1.1, il fournit ) 1.1, il fournit moyen standard pour définir les moyen standard pour définir les composants coté serveur. composants coté serveur.

– Java ServeletsJava Servelets 2.2, il fournit une couche 2.2, il fournit une couche d ’abstraction orientée objet dans le d ’abstraction orientée objet dans le cadre de l ’élaboration d ’applications cadre de l ’élaboration d ’applications WEB dynamiques.WEB dynamiques.

– JavaServer Pages (JavaServer Pages (JSPJSP) 1.1, il permet de ) 1.1, il permet de valoriser davantage les applications WEB valoriser davantage les applications WEB J2EE en permettant le développement J2EE en permettant le développement d ’applications Web basées sur les d ’applications Web basées sur les modèles.modèles.

Page 33: Architecture J2EE

Les API J2EE Les API J2EE (suite)(suite)

– Java Message Service (Java Message Service (JMSJMS) 1.0, il ) 1.0, il permet d ’accéder à un service de permet d ’accéder à un service de messages et de publier et souscrire à messages et de publier et souscrire à divers types de services middleware divers types de services middleware orientés message. orientés message.

– Java Naming and Directory Interface Java Naming and Directory Interface ((JNDIJNDI) 1.2, il normalise l ’accès aux ) 1.2, il normalise l ’accès aux différents services de nommage et différents services de nommage et d ’annuaire.d ’annuaire.

Page 34: Architecture J2EE

Les API J2EE Les API J2EE (suite)(suite)

– API Java TransactionAPI Java Transaction 1.0, il est 1.0, il est chargée de la mise en œuvre chargée de la mise en œuvre d ’applications distribuées d ’applications distribuées transactionnelles.transactionnelles.

– Java MailJava Mail 1.1, il conçoit des 1.1, il conçoit des applications de courrier électronique applications de courrier électronique basées sur Java.basées sur Java.

Page 35: Architecture J2EE

Qu ’est ce un Conteneur Qu ’est ce un Conteneur J2EE ?J2EE ?• C ’est un environnement d’exécution C ’est un environnement d’exécution

chargé de gérer des composants chargé de gérer des composants applicatifs et de donner accès aux applicatifs et de donner accès aux API J2EE.API J2EE.

• En d ’autres termes, des instances En d ’autres termes, des instances des composants applicatifs sont des composants applicatifs sont créés et invoquées à l’intérieur de la créés et invoquées à l’intérieur de la JVM( Java Virtuel Machine) du JVM( Java Virtuel Machine) du conteneur.conteneur.

Page 36: Architecture J2EE

Architecture de J2EEArchitecture de J2EE•ConteneurConteneur webweb •ConteneurConteneur EJBEJB

•Les API : JDBC, JAVA Les API : JDBC, JAVA MAIL, RMI etc..MAIL, RMI etc..

•Les API: JDBC, JAVA Les API: JDBC, JAVA MAIL, RMI etc..MAIL, RMI etc..

•EJBEJB•Page JSPPage JSP

•Servlet Servlet JavaJava

•Serveur d ’applications Serveur d ’applications J2EEJ2EE

•DBDB•Clients Clients applicatifsapplicatifs

Page 37: Architecture J2EE

Un Conteneur J2EEUn Conteneur J2EE

• Avec J2EE, le totalité des composants Avec J2EE, le totalité des composants applicatifs sont instanciés et initialisé applicatifs sont instanciés et initialisé dans la JVM du conteneur.dans la JVM du conteneur.

Page 38: Architecture J2EE

L ’architecture typique L ’architecture typique d ’une application web :d ’une application web :

•Navigateur

•Conteneur Web

•JSP

•Servlet

•Entrepôt de de

donnéesdonnées

•Http

•HTML, XML