La Technologie Java Enterprise Edition [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Edition La technologie java Enterprise

INTRODUCTION À LA TECHNOLOGIE JEE 1.1 Définition JEE ou Java Entreprise Edition est une technologie java conçu pour les applications (web/desktop) lourdes et qui demande une très bonne organisation pour pouvoir faire une maintenance facilement, séparer le métier de l’application (traitement) de la présentation (interface/maquette) et permettre une extensibilité permanente.

Architecture général de JEE :

La technologie JEE ce base sur ce schéma. Une application JEE est composer principalement de trois couches (pour cela on dit application 3tiers ou n-tiers). -

-

-

Couche présentation Contient les vues que l’utilisateur vas interroger soit pour afficher des données ou envoyer des données. Couche Métier La couche la plus lourd normalement, car elle contient les classes de traitement de données (la logique de l’application) Couche Persistance (ou accès au données) La couche basse, c’est elle qui va stocker nos données (texte, XML, base de données, Excel)

1.2 Les Servlets

Les Servlets sont à la base de la programmation Web JEE. Toute la Conception d’un site web en Java repose sur ces éléments qui sont les Servlets. Une Servlet est une classe Java qui tourne sur la machine du serveur web, et qui est invoquée lorsqu’un navigateur client appelle l’URL liée à ce serveur. La Servlet génère alors automatiquement du code HTML qu’elle envoie au client demandeur.

Servlet = composant Java, accessible à une URL donnée, destiné à : Récupérer les requêtes HTTP de l’utilisateur. Invoquer les traitements applicatifs Java correspondants. Construire la page HTML de réponse pour l’utilisateur.

1.3 Les JSP Une page JSP est une page HTML contenant du code Java. Nous avons déjà dit que la servlet permet de générer du code HTML. Cependant on se trouve limité par le code java et la génération de chaîne de caractères (entre guillemets) contenant du code HTML. Difficile donc à écrire correctement, à corriger et à maintenir (ce qui nécessite une recompilation explicite de la Servlet à chaque modification du code HTML contenu dans celle-ci. Tous ces problèmes sont résolus à l’aide des JSPs. Ces deux entités peuvent alors collaborer ensemble à coté du modèle de données pour constituer un modèle de développement web robuste, souple et satisfaisant : le modèle MVC2. JavaServer Faces (JSF) Framework de composants web basé sur MVC amélioré : modèle = logique + données.

Ce que JSF définit

Composants prédéfinis avec un rendu HTML

Principe

de

JSF

1.4 RMI RMI ou encore, Remote Method Invocation est une technologie développée et fournie par Sun à partir du JDK 1.1 pour permettre des appels distants de méthodes d’objets qui tournent en réseau dans un environnement distribué.

L'appel coté client d’une telle méthode est un peu plus compliqué que l'appel d'une méthode d'un objet local. Il consiste à obtenir une référence sur l'objet distant puis à simplement appeler la méthode à partir de cette référence. La technologie RMI se charge de rendre transparente la localisation de l'objet distant, son appel et le renvoi du résultat. En fait, elle utilise deux classes particulières, le stub et le skeleton, générées automatiquement avec le JDK. Le stub est une classe qui se situe côté client et le skeleton est son homologue coté serveur. Ces deux classes se chargent d'assurer tous les mécanismes d'appel, de communication, d'exécution, de renvoi et de réception du résultat.

1.5 EJB

Les Entreprise Java Bean ou EJB sont des composants serveurs qui tournent sous un serveur d’application permettant de fournir un certain nombre de services métiers par l’intermédiaire d’un premier type d’EJB ; les EJB de session (ou Session Beans). Ils fournissent aussi des services d’accès base de données par l’intermédiaire d’un 2ème type d’EJB : les beans entités « Entity Beans ». Le but des EJB est de faciliter la création d'applications distribuées pour les entreprises. Une des principales caractéristiques des EJB est de permettre aux développeurs de se concentrer sur les traitements orientés métiers car les EJB et l'environnement dans lequel ils s'exécutent prennent en charge un certain nombre de traitements tel que la gestion des transactions, la persistance des données, la sécurité, ...

1.6 JDBC Java DataBase Connectivity est une API Java permettant d’accéder à des bases de données de façons transparente par rapport à la base de données utilisée. Les procédures de connexion, de manipulation et d’administration sont les mêmes indépendamment du SGBD : oracle, MySQL, ODBC ou autre.

1.7 Struts Struts (http://struts.apache.org/), ou encore « Apache Struts », est un framework open source géré par le groupe Jakarta de la communauté Apache, utilisé pour faciliter le développement des applications web J2EE. Il a été créé par Craig McClanahan qui est passé à la fondation Apache en 2000 en sous-partie du projetJakarta. L’objectif du framework Struts est de permettre la mise en place d’une architecture MVC (Modèle-Vue-Contrôleur) plus aisément. Il se base pour cela sur la technologie des Servlets (d’une manière transparente) et celle des JSP en les étendant et en donnant accès à des objets améliorant l’approche de ces dernières. Cela débouche sur une meilleure structuration du code d’une application web Java ; ce qui ainsi une meilleure maintenabilité du code. En plus, Struts se démarque aujourd’hui (avec sa version 2 ; résultat d’une fusion entre le projet Struts et le projet WebWork) par le fait qu’il n’impose aucune implémentation d’interface ou extension de classe du framework. Les objets qu'il gère sont des objets Java ordinaires (ou encore des POJO [Plain Old Java Objects]). Les classes ainsi réalisées (Sauf si le développeur intègre délibérément les API Struts) sont totalement indépendantes du framework. Patron Modèle-Vue-Contrôleur (MVC) Principe = séparation des responsabilités

Vue : gère les sorties = visualisation (interface utilisateur) Contrôleur : gère les entrées Traitement des actions de l’utilisateur et choix des vues Gestion des modifications du modèle Modèle : gère la logique et les données.

Par ailleurs, le framework Struts offre une vaste bibliothèque de balise permettant de réaliser toute la logique de présentation d’une manière simple et assistée.

1.8 Hibernate Les informations ou données, manipulées par une application quelconque sont généralement sauvegardées dans une base de données qui pour la grande majorité des applications est une base de données relationnelle. L’application quant à elle est basée sur les mécanismes de la programmation orientée objets. L’utilisation d’un outil d'ORM (Object Relationnal Mapping) s’impose alors afin de soulager le développeur de l’effort considérable qu’il devrait fournir pour réaliser l’ensemble des classes lui permettant de convertir les objets en des tuples et inversement. Hibernate est l’un des outils les plus populaires, stables et robuste permettant le mapping objet/relationnel pour les applications Java. Il s’agit dont d’un ORM (Objet Relational Mapper) qui consiste à faire le lien entre la représentation objet des données et sa représentation relationnelle basée sur un schéma SQL. Hibernate est un framework open source dont le fondateur est Gavin King, qui fait entre autre partie de l'équipe de développement de JBOSS. Non seulement, Hibernate s'occupe du transfert des classes Java dans les tables de la base de données (et des types de données Java dans les types de données SQL), mais il permet aussi de requêter les données et propose des moyens de les récupérer. Il peut donc réduire de manière considérable le temps de développement réalisé habituellement à base de l’API JDBC avec plusieurs lignes de code permettant de gérer tous les transferts des objets

nécessaires. Le framework Hibernate libère ainsi le développeur de plus que 90% des tâches de programmation liées à la persistance des données. Il offre aussi la gestion automatique du mapping dan les différents cas que sont la composition, les associations, l’héritage, le polymorphisme ainsi que la prise en charge des collections Java. Hibernate rentre ainsi dans le cadre des frameworks basés sur les POJO (Plain Old Java Object) offrant à un POJO la possibilité d’être persitant avec un minimum d’effort; en utilisant un simple moteur de persistance. Le schéma idéal est alors le suivant : PojoClass pojo = new PojoClass() ; PersistanceEngine engine = PersistanceEngineFactory.createEngine(); engine.save(pojo);

1.9 Spring Spring (http://www.springframework.org) est un framework open source créé par Rod Johnson qui le décrit pour la première fois en 2002 dans son livre (sous le nom Interface21) Expert One-on-One : J2EE Design and Development. L'objectif désigné du framework est d'offrir une alternative viable aux EJB plus simple à utiliser dans le cadre du développement d'applications professionnelles. Spring est d'abord un conteneur d'objets Java dans le même sens que Tomcat est un conteneur de servlets ou JBoss un conteneur d'EJB. Néanmoins, Spring se démarque des conteneurs cités du fait que les objets qu'il gère sont des objets Java ordinaires (nommés POJO [Plain Old Java Objects] dans la littérature). Par ailleurs, Spring dispose d'une implémentation AOP qui lui permet d'offrir de nombreux services et ce, sans que les classes Java aient à implémenter une quelconque interface propriétaire. Spring fournit également une riche API qui simplifie la programmation de certaines tâches et l'utilisation d'outils open source répandus.

La plate-forme Java EE est passée par plusieurs étapes nous citons : . La première version standard J2EE 1.2 a été développée par Sun en 1999. Les Entreprises JavaBeans (EJB) permettaient de gérer la couche métier d'accès aux données alors que les Servlets et JavaServer Pages (JSP) permettaient de développer les applications serveur.

. La version J2EE 1.3 (2001) n'apportait pas de nouveautés essentielles mais des améliorations de la plate-forme à la suite des demandes utilisateur, comme la configuration par fichier XML. . La version J2EE 1.4 (2003) Cette version apportait le support des services Web et des EJB version 2.1. Mais cette version conséquente était difficile à utiliser, tester et déployer. Les développements par couches, de type Modèle Vue Contrôleur (MVC), ne facilitent pas la compréhension de l'ensemble, et les technologies Servlet et JSP ne sont pas adaptées pour un développement rapide. En réponse à cela, quelques Framework ou outils spécialisés on vu le jour, comme Struts et Spring pour la partie développement serveur, et Hibernate ou TopLink pour la persistance. . La version Java EE 5 (2006) apportait une réponse à cela en proposant un outil de développement côté serveur adapté au design pattern MVC, nommé JavaServer Faces.

Cette nouvelle version était une étape majeure pour la plate-forme Java EE qui s'orientait vers la simplicité, en proposant les EJB 3. . La version Java EE 6 (2009) se concentre sur la facilité d'utilisation de la plateforme pour le développement, les tests et le déploiement. Cette version propose une simplification des EJB avec la version 3.1. Java EE est devenu un standard utilisé par de nombreuses sociétés à travers le monde professionnel et celui de l'Open Source. Plusieurs outils peuvent être associés à Java EE comme les serveurs d'applications (GlassFish, Websphere, Weblogic, JBoss...), des Framework de développement (Struts, Spring...), des outils de persistance. Ces mécanismes font en sorte qu'un programme puisse se terminer sans que ses données et son état d'exécution ne soient perdus. Ces informations de reprise peuvent être sauvegardées sur disque, éventuellement sur un serveur distant (un serveur de bases de données relationnelles, (EclipseLink, Hibernate...). [Site2] JEE est une plate-forme fortement orientée serveur, autrement dit, une application Java EE s'exécute sur un serveur d'applications. Un serveur d'applications est constitué d'un serveur HTTP et d'un conteneur web (pour exécuter les servlets et les JSP). Conclusion : Java Entreprise Edition a été conçu comme un environnement pour développer, déployer et exécuter des applications réparties pour le monde de l'entreprise. Ce contexte de l'entreprise se caractérise généralement par la nécessité d'assurer des niveaux de qualité de service tels que la sûreté de fonctionnement, la résistance à des charges d'exécution importantes ou encore la sécurité.