Introduction Technologies distribuées ! Plan " Présentation générale • L’entreprise et le Java EE • Définition " Le Java EE • L’architecture multicouche • Présentation des composants • Le serveur d’application & les composants Java EE 5 " Les composants et leur clients • • • • • " 1 Introduction ! " " Plan Compréhension Interventions Affranchir des contraintes ! Profil ! Intérêts " " " Exemple & mise en œuvre 2 Compétences acquises " " Présentation générale • L’entreprise et le Java EE " Le Java EE • Définition • L’architecture multicouche • Présentation des composants • Le serveur d’application & les composants " POO, Design Pattern Les composants et leur clients • • • • • Professionnalisation Démystifier " 4 L’entreprise et le Java EE Plan Editeurs Service (encore) public ! Banques ! Assurance ! Santé ! … ! " Les composants de la logique de présentation Les composants métier de type EJB Les clients EJB Les composants de type services web Les clients WS Exemple & mise en œuvre 3 Présentation générale • L’entreprise et le Java EE ! • Définition " Le Java EE • L’architecture multicouche • Présentation des composants • Le serveur d’application & les composants " Les composants et leur clients • • • • • " 5 Les composants de la logique de présentation Les composants métier de type EJB Les clients EJB Les composants de type services web Les clients WS Les composants de la logique de présentation Les composants métier de type EJB Les clients EJB Les composants de type services web Les clients WS Exemple & mise en œuvre 6 1 Définition ! Plan Java Enterprise Edition Norme Sun " Plateforme Java EE " " Présentation générale " Étude du JEE • L’architecture multicouche • Présentation des composants • Le serveur d’application & les composants • Infrastructure d’exécution (Serveur d’applications) • Ensemble de services : " • • • • • • Transaction, localisation, concurrence, sécurité, persistance, connectivité … " 7 Les composants de la logique de présentation Les composants métier de type EJB Les clients EJB Les composants de type services web Les clients WS Exemple & mise en œuvre 8 L’architecture J2EE ! Les composants et leur clients Interface utilisateur Architecture multi niveaux ! Interface utilisateur " Logique de présentation & Services Web " Logique métier " Service d’infrastructure (Transverse) " Données " ! ! ! ! Application de bureau Navigateur WAP WEB Browser Tiers applications … Couche 1 Client 9 10 Logique de présentation & Services web Services d’infrastructure Serveur d'application J2EE ! Conteneur Web Logique présentation " Composant web " Composant web ! Couche 2 Client Logique de présentation Services Web 11 Conteneur Web Composant web Composant web Serveur d'application J2EE Services jdbc ! Fonctionnalités fournies aux composants jndi … Services Web " Couche 1 Règles d’affichage Traitement des requêtes Serveur d'application J2EE Echange de données entre applications Couche 2 Couche Transverse Logique de presentation Couche transverse de services internes Services Web 12 2 Logique métier Serveur d'application J2EE Serveur d'application J2EE Conteneur Web ! Services d’infrastructure Règles métiers de l’entreprise Conteneur métier Serveur d'application J2EE Serveur d'application J2EE Conteneur métier ! Services jdbc Composant web jndi Fonctionnalités fournies aux composants … Composant web Couche 2 Couche 3 Logique de presentation Logique métier Couche 3 Couche 4 Logique métier Couche transverse de services Services Web 13 14 Architecture multi couches MVC Données Serveur d'application Java EE Serveur d'application J2EE jndi jdbc … Serveur de données SGBD Conteneur métier Conteneur Web Base Conteneur métier Composant web Couche 3 Couche 4 Logique métier Données Couche 2 Couche 3 Couche 4 Client Logique de presentation Logique métier Données 16 Plan Présentation des composants ! Présentation générale " Le Java EE Services Web Les composants web " Rôle : • Logique de présentation • Génération du code IHM client • Traitement des requêtes client • Appel du métier • L’architecture multicouche • Présentation des composants • Service Web • Le serveur d’application & les composants " " 17 • Traitement des requêtes tiers d’application • Appel du métier Les composants et leur clients • • • • • Base Couche 1 15 " Serveur de données SGBD Composant web Les composants de la logique de présentation Les composants métier de type EJB Les clients EJB Les composants de type services web Les clients WS " " Présenté par un descripteur XML Archive WAR my-app-web.war Exemple & mise en œuvre desc.xm l Composants couche de présentation 18 3 Présentation des composants ! Présentation des composants Les composants métiers " Rôle : ! Une application Java EE ? Composée de composants " " " Archive entreprise (EAR) • Archive Web • Archive Métier • Descripteur XML : application.xml • Chargé des traitements • Factorisation Présenté par un descripteur XML Archive JAR my-app.ear application.xml my-app-web.war my-app-ejb.jar desc.xml desc.xm l Composants couche métier Composants couche de présentation my-app-ejb.jar desc.xml Composants couche métier 19 20 Plan Le serveur d’application & les composants " Présentation générale " Le Java EE Plateforme J2EE " • L’architecture multicouche • Présentation des composants • Le serveur d’application & les composants " Les composants et leur clients • • • • • " Infrastructure d’exécution • Conteneur WEB • Conteneur EJB • Services d’infrastructures et de communication Les composants de la logique de présentation Les composants métier de type EJB Les clients EJB Les composants de type services web Les clients WS Serveur d’application Services Conteneur Web Étude d’un exemple & mise en œuvre Conteneur EJB 21 22 Le serveur d’application & les composants Plan " Conteneur Web Services " my-app-web.war web.xml " Couche de présentation • • • • • Conteneur EJB my-app-ejb.jar ejb-jar.xml Couche métier Présentation générale Le Java EE Les composants et leur clients Conteneur Web " Les composants de la logique de présentation Les composants métier de type EJB Les clients EJB Les composants de type services web Les clients WS Exemple & mise en œuvre Composant web 23 24 4 Architecture multi couches MVC Étude des composants web La logique de présentation Serveur d'application Java EE jndi jdbc Conteneur Web Conteneur métier Composant web • Les données • Les procédures de contrôle de validité des données • Il ne connaît pas les vues Serveur de données SGBD Composant web • Fonctionnement : MVC • Le modèle : … • La vue : Représente la visualisation des données • Représente les données pour l’utilisateur • Passe les actions de l’utilisateur au contrôleur Base • Le contrôleur : • Traite les actions des utilisateurs • Gère la cinématique • Appel aux procédures « métiers » Conteneur Web Couche 1 Couche 2 Couche 3 Couche 4 Client Logique de presentation Logique métier Données 25 Composant web 26 Services Web Étude des composants de la couche métier Plan " " " • • • • • " Conteneur métier ! Présentation générale Étude du J2EE Les composants et leur clients " Encapsule la logique métier Implémentation : EJB ! Avantages ! Les composants de la logique de présentation Les composants métier de type EJB Les clients EJB Les composants de type services web Les clients WS Étude d’un exemple & mise en œuvre Composant métier (rappel) : " Simplification des développements • Services du conteneur Décharge le client de la logique métier " Factorisation " Conteneur métier 27 28 EJB, le composant métier EJB Session ! Composition d’un EJB " " ! L’interface REMOTE ou LOCAL L’implémentation ! Avec état ! Sans état " Les types d’EJB " EJB Session " EJB Entity " Message-Driven • Rend un service " Relation client : 1-1. Relation client : 1-N. • Représente une entité métier Conteneur métier • Listener de fil 29 Conteneur métier 30 5 L’implémentation L’interface REMOTE Conteneur métier Conteneur métier 31 32 EJB Entité ! Représente un Objet persistant " Prise en charge de la persistance : • Par l’EJB Entité lui-même • Par le conteneur Conteneur métier Conteneur métier 33 34 Rappel EJB Session Object d’accès aux données Conteneur métier Conteneur métier 35 36 6 Plan " " " Présentation générale Le J2EE Les composants et leur clients • • • • • " EJB Client ! ! JNDI Contexte Les composants de la logique de présentation Les composants métier de type EJB Les EJB clients Les composants de type services web Les clients WS. Exemple & mise en œuvre 37 38 EJB Client Plan " " " Présentation générale Étude du J2EE Les composants et leur clients • • • • • Conteneur Web " Les composants de la logique de présentation Les composants métier de type EJB Les clients EJB Les composants de type services web Les clients WS Étude d’un exemple & mise en œuvre Composant web 39 40 Étude des composants web Étude des composants web Les services web " Les services web Introduction aux web services " " Qu’est ce qu’un Web service • Composant enveloppée d’XML • Fournis des fonctionnalités basiques " Conteneur Web Conteneur Web Composant web Composant web 41 Le concept de Web service • Non propriétaire • Multiplateforme • SOAP / WSDL / UDDI • Echange de données inter-applicatif Pourquoi faire ? • Collaboration de plateformes hétérogènes 42 7 Conteneur Web Composant web 43 44 Plan Web Service Client " " " Présentation générale Le J2EE Les composants et leur clients • • • • • " ! Génération des classes cliente via la WSDL Les composants de la logique de présentation Les composants métier de type EJB Les clients EJB Les composants de type services web Les clients WS Exemple & mise en œuvre 45 46 Web service client Plan Présentation générale Le J2EE " Les composants et de leur collaboration " " " Exemple 47 & mise en œuvre 48 8 Conclusion Sources d'informations ! " Résumé • • • • • • " L’entreprise et le Java EE Définition : Norme L’architecture multicouches Composants Web & Métier Services d’infrastructure & de communications Complémentarité EJB & Web Services Critique • Gros système • Forte utilisation du 1.4 49 ! ! http://www.labo-sun.com http://penserenjava.free.fr/ http://java.sun.com/reference/blueprints/ ! http://struts.apache.org/ http://www.springframework.org/ http://www.hibernate.org/ ! http://maven.apache.org/ ! ! 50 THAT’S ALL FOLKS !! ! Questions ? Commentaires ! Contact ! " [email protected] 51 9