API J2EE - Cedric/CNAM
Transcription
API J2EE - Cedric/CNAM
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. En parallèle, Java a joué le rôle de catalyseur en renforçant ou en définissant plus précisément certains domaines technologies, comme la plate-forme Java 2 Édition Entreprise (J2EE). Les besoins des entreprises • Capacité de réaction L’ économie actuelle qui se nourrit d ’ information à un rythme de plus en plus vertigineux exige des réactions rapides aux nouvelles orientations afin de prendre et de garder l ’ ascendant sur les concurrents. • Productivité élevée en programmation Il faut savoir utiliser pleinement les nouvelles technologies et les combiner harmonieusement avec d ’ autres technologies. Il faut avoir la capacité à développer, puis déployer des applications de manière efficace et rapide. Les besoins des entreprises (suite) • Fiabilité et disponibilité Dans le monde de l ’ économie électronique actuel, les temps d ’ immobilisation peuvent causer la perte d ’ une entreprise. Il est indispensable que vos opérations basées sur le web fonctionnent en permanence. Vous devez être capable de garantir la fiabilité de vos transactions commerciales. • Sécurité Internet a non seulement permis d ’ accroître de façon exponentielle le nombre des utilisateurs potentiels, mais il a aussi multiplié la valeur des informations détenues par les sociétés, d ’ où l ’ importance d ’ assurer leur confidentialité. Les besoins des entreprises (suite) • Évolutivité Il est important qu ’ une application puisse se développer pour faire face aux exigences. Pour s ’ adapter de façon efficace, l ’ application doit pouvoir gérer une montée en charge du nombre des utilisateurs et utiliser de manière optimale les ressources du système. • Intégration Les applications doivent être en mesure d ’ intégrer les systèmes d ’ informations existants. C ’ est dans la capacité d’ une entreprise à combiner les anciennes et les nouvelles technologies que réside la clé de son succès. Architecture système • Les systèmes client-serveur classiques s ’ appuient sur une architecture à deux niveaux permettant de séparer nettement les données et la logique de présentation/ logique métier. • Ces systèmes appuient généralement sur l ’ utilisation des données. L ’ application réside entièrement sur le poste client et la base de données est hébergée sur un serveur situé quelque part dans l ’ entreprise. • Même si une telle approche nous permet de partager les données au sein d ’ une entreprise, elle présente de nombreux inconvénients. Architecture à deux niveaux • Dans une application classique à deux niveaux, la charge de traitement est attribuée au poste client tandis que le serveur se contente de contrôler le trafic entre l ’ application et la base de données. • Par conséquence, les performances de l ’ application baissent du fait des ressources limitées du PC. • L’ approche à deux niveaux pose un problème de la maintenance. • En effet, la moindre modification apportée à l ’ application peut avoir des répercussions sur la totalité de la base utilisateur. Architecture à deux niveaux •Appliation •DB Architecture à trois niveaux • Pour éliminer les inconvénients d ’ architecture à deux niveaux, on a crée la notion d ’ architecture à 3 niveaux. • Ainsi, une application est divisée en trois niveaux logiques distincts, chacun d ’ entre eux étant pourvu d ’ un ensemble d’ interface bien défini. • 1: Niveau présentation • 2: Niveau métier • 3: Niveau données. Architecture à trois niveaux •Interface utilisateur •Logique applicative •DB •DB •Doc XML •DB (suite) Architecture à trois niveaux (suite) • Niveau présentation : – Il est généralement constitué d ’ une interface utilisateur graphique. – Il reçoit les données et les formate en vue de leur affichage. – Cette séparation de la logique applicative de l’ interface accentue considérablement la souplesse de conception de l ’ application. Architecture à trois niveaux • Niveau métier (logique applicative) : – Il recouvre la logique métier et logique applicative. (suite) Architecture à trois niveaux (suite) • Niveau données : – Ce niveau abrite les données nécessaires à l’ application. – Il peut s ’ agit sur n’ importe quelle source d’ information : Oracle, Sybase, Jeu de document XML etc.. Architecture multiniveaux • Il n ’ existe pas de solution toute faite pour définir les niveaux applicatifs d ’ un système multiniveaux. • En réalité, un système multiniveaux peut supporter différentes configurations. • Au sein d ’ une architecture multiniveaux, la logique applicative se décompose selon les fonctions. Architecture multiniveaux (suite) • Cette architecture se subdivise donc de la façon suivante : – Interface utilisateur – Logique de présentation – logique métier – services d ’ infrastructure – Niveau données. Architecture multiniveaux (suite) • Interface utilisateur – chargée de gérer les interactions entre l’ utilisateur et l ’ application. • Service d ’ infrastructure – Qui fournissent des fonctionnalités supplémentaires nécessaires aux composants de l ’ application, tels qu ’ un service de messagerie, de support transactionnel, etc.. Architecture d ’ entreprise • Pour transformer un système multiniveaux en un système d ’ entreprise, il suffit d’ étendre le niveau intermédiaire de sorte qu ’ il accueille plusieurs objets applicatifs plutôt qu ’ une application unique. • Ces objets applicatifs doivent être pourvus d’ une interface leur permettre de coopérer les uns avec les autres. Architecture d ’ entreprise •Formulaire HTML •(Navigateur) •Appet Java •(Navigateur) •Interface •Composant applicatif •Interface •Composant applicatif (suite) •Tout système • capable de •présenter des données •Interface •Composant applicatif •Middleware de base de données •DB •Système distant •DB •Documents XML Architecture d ’ entreprise (suite) • Il est important de noter que, lors de la conception d ’ un objet et de son interface, il est conseillé d ’ opter pour une interface aussi générique que possible afin d ’ échapper aux risques de modifications ultérieures. Les différentes solutions • Microsoft : DNA (.net) • Sun : J2EE • Oracle : Oracle 8i Internet Platform etc.. Java • Indépendance de la plate-forme : – Dans une entreprise, les informations sont réparties entre différentes plate-formes et applications. – Il est important de disposer d ’ un langage de programmation capable de fonctionner n’ importe où dans l ’ entreprise sans avoir devoir passer par des mécanismes de translation inefficaces et compliqués. Java (suite) • Réutilisabilité : – Réutiliser le code représente le but ultime à atteindre pour tout programmeur. – Java est un langage orienté objet doté, de mécanismes de réutilisation. Java (suite) • Modularité : – Les servelets Java, les JavaServer Pages (JSP) et les Entreprise JavaBeans (EJB) vous permettre de modulariser votre application en la décomposant en niveaux et en tâches. Qu ’ est ce que J2EE ? • J2EE est essentiellement un environnement serveur d ’ applications distribuées. Qu ’ est ce que J2EE ? (suite) •C ’ est à dire, un environnement Java fournissant les outils suivants: – une infrastructure d ’ exécution pour héberger des applications . – Un ensemble d ’ API d ’ extension Java pour concevoir des application. La Plate-forme J2EE • Cette plate-forme est de fournir un standard simple et unifié, destiné aux applications via un modèle applicatif basé sur des composants. La Plate-forme J2EE (suite) • J2EE spécifie les rôles et les interfaces pour les applications, ainsi que l’ environnement d ’ exécution dans lequel les applications pourraient être déployées. • Il en résulte une séparation claire entre les applications et l ’ infrastructure d’ exécution. La Plate-forme J2EE (suite) • J2EE ne spécifie ni la nature ni la structure de l ’ environnement d’ exécution. • Il introduit un conteneur et, via les API J2EE, il élabore un contrat entre les conteneurs et les applications. Les API J2EE • Les applications distribuées doivent avoir accès aux services distribués. • De tels services comprennent le traitement des transactions, l ’ accès aux bases de données, la messagerie etc.. •L ’ architecture J2EE unifie l ’ accès à ces services au sein des API de ses services d’ entreprise. Les API J2EE (suite) • Toutefois, plutôt que d ’ avoir accès à ces services au travers d ’ interfaces propriétaires ou non standard, les applications J2EE peuvent accéder à ces API via le conteneur. • Une plate-forme commerciale (ou un serveur d ’ application) J2EE typique comprend un ou plusieurs conteneurs et a accès aux API d ’ entreprise spécifiées par J2EE. Les API J2EE (suite) • La plate-forme J2EE doit prendre en charge: –l ’ extension JAVA DataBase Connectivity (JDBC) – le protocole standard Remote Method Invocation over the Internet Inter-ORB (RMI-IIOP). Il permet aux applications RMI et CORBA de se rejoindre. Les API J2EE (suite) – Entreprise Java Beans (EJB) 1.1, il fournit moyen standard pour définir les composants coté serveur. – Java Servelets 2.2, il fournit une couche d’ abstraction orientée objet dans le cadre de l’ élaboration d ’ applications WEB dynamiques. – JavaServer Pages (JSP) 1.1, il permet de valoriser davantage les applications WEB J2EE en permettant le développement d’ applications Web basées sur les modèles. Les API J2EE (suite) – Java Message Service (JMS) 1.0, il permet d’ accéder à un service de messages et de publier et souscrire à divers types de services middleware orientés message. – Java Naming and Directory Interface (JNDI) 1.2, il normalise l ’ accès aux différents services de nommage et d ’ annuaire. Les API J2EE (suite) – API Java Transaction 1.0, il est chargée de la mise en œ uvre d ’ applications distribuées transactionnelles. – Java Mail 1.1, il conçoit des applications de courrier électronique basées sur Java. Qu ’ est ce un Conteneur J2EE ? •C ’ est un environnement d’ exécution chargé de gérer des composants applicatifs et de donner accès aux API J2EE. • En d ’ autres termes, des instances des composants applicatifs sont créés et invoquées à l’ intérieur de la JVM( Java Virtuel Machine) du conteneur. Architecture de J2EE •Conteneur web •Conteneur EJB •Servlet Java •EJB •Page JSP •Les API : JDBC, JAVA MAIL, RMI etc.. •Les API: JDBC, JAVA MAIL, RMI etc.. •Serveur d ’ applications J2EE •Clients applicatifs •DB Un Conteneur J2EE • Avec J2EE, le totalité des composants applicatifs sont instanciés et initialisé dans la JVM du conteneur. L’ architecture typique d ’ une application web : •Http •Conteneur Web •JSP •Navigateur •HTML, XML •Servlet •Entrepôt de données