J2EE: les composants distribués et transactionnels

Slides:



Advertisements
Présentations similaires
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
Advertisements

Cours 5 : XML et les architectures N-tier Janvier Version 1.0 -
SOA et Services Web Dr. Rim Samia Kaabi 26 mars 2017.
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
Introduction aux environnements répartis
Message Oriented Middleware
Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation.
Module SI4 Applications réparties
Chapitre 1 Introduction
- Couche 7 - Couche application. Sommaire 1)Introduction 1)DNS 1)FTP et TFTP 1)HTTP 1)SNMP 1)SMTP 1)Telnet.
ISP/ASP ISP ASP Conclusion DESS Réseaux 2000/2001
Exposé de Système - Informatique et Réseau
Vue d'ensemble Implémentation de la sécurité IPSec
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
JORAM Java Open Reliable Asynchronous Messaging

Design Pattern MVC En PHP5.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Session Module Java Expert.
UV J2EE Module Java Expert
Introduction aux Session Beans
Programmer avec Java EE
Introduction aux services WEB
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
Cours GLG203 Cours J2EE JDBC, RMI, IIOP, Sécurité, XML
7 - EAI Les EAI : Enterprise Application Integration Marché
Programmation Approche composants Ing5 SI
Accès aux données généralisé SQL est presque une solution! Le problème: Le SQL n'est pas une langue complète, et doit être intégré dans un langage de programmation.
Projet JAVA EE Approfondi
.Net Remoting.
Interopérabilité JOnAS - CORBA
Semaine 8: Java 2, Enterprise Edition1 Patron dintégration dentreprise Architectures de message asynchrone.
EJB & Serveurs d’applications
Architecture dun site de vente au détail1 Modèle d'un site simple de vente Lexemple du livre Ruby on Rails Partie II Java Adventure Builder Demo Réalisé.
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
RPC / MOM : Comparaison.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Adaptée du cours de Richard Grin
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.
L’architecture J2EE
1 - Architecture Internet
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
Présentation de CORBA et de IIOP
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Java Enterprise Edition, anciennement J2EE
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Architecture J2EE gfgfgfggf Khin Chhoung LAO, Cnam.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Le web service
Mastère Professionnel Systèmes de Communication et Réseaux
Page 1Dernière mise à jour: 17 avril 2015 Service de l'enseignement des technologies de l'information, © HEC Montréal, Tous droits réservés.
Module 3 : Création d'un domaine Windows 2000
Les différents modèles d’architecture technique
Module 1 : Vue d'ensemble de Microsoft SQL Server
Web Services 17/01/2009.
Architecture Client/Serveur
Module 2 : Planification de l'installation de SQL Server
Création d’applications distribuées.NET Ziriad Saibi Relation technique éditeurs de logiciels Microsoft France.
9 février 2010 Enrique Ruiz Mateos Architecte avant-vente Microsoft
Java Remote Method Invocation
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
Applications distribuées Introduction Jean-Jacques LE COZ.
Architecture J2EE Web Jean-Jacques LE COZ. J2EE Web Container JSP Page Servlet J ava 2 Standard Edition APIs EJB Container EJB JDBCJMS JNDI JTA JavaMail.
Transcription de la présentation:

J2EE: les composants distribués et transactionnels Références Chap 9 et 10, Livre « Developping Distributed and E-commerce Applications » Simplified Guide to the Java 2, Enterprise Edition http://java.sun.com/j2ee/j2ee_guide.pdf J2EE Tutorial http://java.sun.com/j2ee/tutorial/1_3-fcs/index.html Semaine 8: Java 2, Enterprise Edition 1

Pourquoi une architecture? Flexibilité Le changement est la norme Variation du contenu et du contexte Nouveau produits, nouveaux services, mise à jour Changement dans les processus d’affaires Canaux d’accès variés Personnalisés selon le client, sa langue, son lieu, ses préférences Client HTML, client WAP-WML sur un téléphone, client local… Avec systèmes d’entreprises internes et externes. Sécurité Identification, Confiance, Confidentialité, Contrôle, Intégrité Systèmes multi-tiers Services distribués Plusieurs systèmes coopèrent Intégration Applications et systèmes existants Semaine 8: Java 2, Enterprise Edition 2

Cycle de vie des composants Conception et Développement Déploiement Opération Chaque étape est géré par des personnes différentes et produit ses livrables Semaine 8: Java 2, Enterprise Edition 3

Semaine 8: Java 2, Enterprise Edition 4 Systèmes multi-tiers 4 tiers Client HTML Serveur Web Serveur applicatif Serveur base de données Pourquoi un tier « serveur d’application » Pour séparer la logique de présentation (Web, HTML) la logique d’affaire (Entreprise Java Beans) l’entrepôt des données (SQL) Semaine 8: Java 2, Enterprise Edition 4

Semaine 8: Java 2, Enterprise Edition 5 Composantes J2EE Semaine 8: Java 2, Enterprise Edition 5

Semaine 8: Java 2, Enterprise Edition 6 Composantes J2EE Clients Fureteur HTML ou WML Application ou Applets Java Application DCOM-Microsoft Visual Basic Services de présentation Web Servlets Pages JSP Services applicatifs distribués « Enterprise JavaBeans » Session Entité Message Services de la plateforme Sécurité Transactions Ressources de type connections Semaine 8: Java 2, Enterprise Edition 6

Services auxiliaires J2EE Répertoire central Java Naming and Directory Interface – JNDI Accès aux bases de données Java Database Connectivity – JDBC Messages asynchrones Java Messaging Service – JMS Accès au courrier électronique JavaMail, supporte IMAP4, POP3 et SMTP Manipulation de documents XML Java API for XML Pack - JAXP Identification et sécurité JAAS - Java Authentification and Autorisation Service Version Java de PAM, « Plugable Authentification Module » Semaine 8: Java 2, Enterprise Edition 7

Service Web et base de données Déjà vue Semaine 8: Java 2, Enterprise Edition 8

Service applicatif distribué Composants d’entreprise Java Distribués sur plusieurs systèmes Enterprise Java Beans, EJB un objet distant Un patron d’utilisation Création, appels et destruction Semaine 8: Java 2, Enterprise Edition 9

Semaine 8: Java 2, Enterprise Edition 10 Quoi? Un objet distant Le client appelle l’objet distant sur le serveur La souche (stub) et le squelette (skeleton ), respectivement sur le client et le serveur, assurent la conversion des communications entre les systèmes. Stub et Skeleton sont aussi appelés « Proxy object » La couche de référence (RRL, remote Reference Layer) est chargé du système de localisation afin de fournir un moyen aux objets d'obtenir une référence à l'objet distant. La couche de transport permet d'écouter les appels entrants ainsi que d'établir les connexions et le transport des données sur le réseau par l'intermédiaire du protocole TCP. Semaine 8: Java 2, Enterprise Edition 10

Semaine 8: Java 2, Enterprise Edition 11 Quoi? Un objet distant Séquence d’appel 1- Trouver dans le registre l’objet distant 2- Le registre retourne un objet souche 3- Le client utilise cette souche locale pour communiquer avec l’objet distant Exemple RMI, CORBA DCOM+ SOAP pour les Web services Semaine 8: Java 2, Enterprise Edition 11

Un composant d’entreprise Java Un “Entreprise Java Beans” - EJB Il définit: Les objets proxy, du côté client et du côté serveur; Un répertoire de référence Java Naming Directory Interface, JNDI Entre autres, contient le dictionnaire aux objets et services disponibles aux objets et services actifs Le cycle de vie, des 2 côtés La création L’utilisation La gestion de la sécurité La gestion des transactions La destruction Semaine 8: Java 2, Enterprise Edition 12

Semaine 8: Java 2, Enterprise Edition 13 La création des EJB Les EJB utilisent le patron de « fabrique d’objet » - Factory pattern Dans la documentation des EJB, Le « factory » est appelé le « Home » On sépare la fabrique d’une instance d’objet; Pour créer une nouvelle instance d’EJB On localise et instancie le « Home » dans JNDI; Puis, sur ce Home, on fait un appel à la méthode « create », qui retourne sur le client la souche. Semaine 8: Java 2, Enterprise Edition 13

Exemple d’utilisation 1.Create a JNDI naming context. See About JNDI Naming for background on naming contexts. Context initial = new InitialContext(); 2.Retrieve the object bound to the name ejb/SimpleConverter. Object objref = initial.lookup ("java:comp/env/ejb/SimpleConverter") 3.Narrow the reference to a ConverterHome object. ConverterHome home = (ConverterHome) PortableRemoteObject.narrow(objref, ConverterHome.class); 4.Creating an Enterprise Bean Instance Converter currencyConverter = home.create(); To create the bean instance, the client invokes the create method on the ConverterHomeobject. The create method returns an object whose type is Converter. The remote Converter interface defines the business methods of the bean that the client may call. When the client invokes the create method, the EJB container instantiates the bean and then invokes the ConverterBean.ejbCreate method. The client invokes the create method as follows: Semaine 8: Java 2, Enterprise Edition 14

4 types de composants d’entreprise Java Session sans état Exemple: http Session avec état Exemple: un terminal Entité Exemple: un compte client Message Traitement en différé (batch) Semaine 8: Java 2, Enterprise Edition 15

Semaine 8: Java 2, Enterprise Edition 16 EJB Session Représente l’activité des clients La façade des clients 2 catégories de composants de type session Sans conservation de l’état de la conversation Avec conservation de l’état de la conversation Semaine 8: Java 2, Enterprise Edition 16

Semaine 8: Java 2, Enterprise Edition 17 Composant sans état (Stateless Session Bean) Comme HTTP Dessert un appel distant à la fois D’un appel à l’autre, on peut changer de client Le même composant peut être partagé entre les clients d’un appel à l’autre Semaine 8: Java 2, Enterprise Edition 17

Semaine 8: Java 2, Enterprise Edition 18 Avec état (Statefull Session Bean) Conserve l’état de la conversation Unique pour chaque client Se ferme à la fin de la conversation Semaine 8: Java 2, Enterprise Edition 18

Semaine 8: Java 2, Enterprise Edition 19 EJB Entité Représentent les données d’affaires complexes et persistentes Une ou plusieurs tables L’identité de la donnée est indépendante du logiciel client Utilisés par un ou plusieurs clients Aussi accessible à partir des EJB-Sessions Semaine 8: Java 2, Enterprise Edition 19

Gestion de la persistance (EJB- Entité) Automatiquement (Container-Managed Persistence) Les attributs de l’objet et le graphe de l’objet sont automatiquement traduit en colonnes d’une table ou de plusieurs tables SQL Manuellement (Bean-Managed Persistence) Le code du programmeur gère la lecture et l’écriture dans les tables SQL Semaine 8: Java 2, Enterprise Edition 20

EJB Entité VS « Data Access Object » Les entités EJB sont très lourdes: Accès réseaux Vérification de sécurité à refaire à chaque appel Solutions: EJB en mode local Traduction de l’objet aux tables fait automatiquement par le serveur J2EE Très performant maintenant Objet d’accès aux données - DAO Semaine 8: Java 2, Enterprise Edition 21

Semaine 8: Java 2, Enterprise Edition 22 EJB Message Un objet qui reçoit les messages asynchrones Activés par Java Messaging Service, JMS Les message peuvent contenir un document XML, un objet sérialisé ou tout autre texte Ces objets sont complètement découplés des logiciels qui envoient les messages Essentiels pour les applications de B2B et l’intégration inter-applications Semaine 8: Java 2, Enterprise Edition 22

EJB-Message Patron d’utilisation Aussi appelé traitement en différé - « batch » Le logiciel client envoie un message asynchrone et confirme au client que le message est bien transmis; Le EJB-Message reçoit et traite le message; Le EJB-Message produit un résultat dans un message asynchrone et/ou un résultat persistant dans une base de données; Le logiciel client reçoit le message asynchrone et/ou interroge la base de données pour connaître le résultat de sa requête. Semaine 8: Java 2, Enterprise Edition 23

Semaine 8: Java 2, Enterprise Edition 24 Transactions Les appels aux EJB se font dans un contexte transactionnel. Une transaction garantie que toutes les modifications À un enregistrement À plusieurs enregistrements À plusieurs tables Dans une même base de données, Ou plusieurs, se font et sont persistantes, ou aucune modification n’est faite, En cas d’erreur Un « rollback » est générée Semaine 8: Java 2, Enterprise Edition 24

Gestion de la transaction Automatique doOrder() throws EJBException Début de transaction Avant l’appel à une méthode d’une EJB Fin de transaction Après l’appel à une méthode d’une EJB Exception et erreurs automatiquement traduit en Rollback pour la base de données Manuelle Commit() ou Rollback() peuvent faits à l’intérieur de la méthode doOrder() de l’EJB Semaine 8: Java 2, Enterprise Edition 25

Java Naming and Directory Interface 2 rôles Passerelle vers des répertoires d’entreprises Répertoire centralisé des objets distribués J2EE Fabrique d’objets « Home » Variables partagées Ressources partagées et critiques Les références à ces ressources sont mises dans JNDI Connections à la base de données JDBC Source de données JDBC Noms des queues JMS Semaine 8: Java 2, Enterprise Edition 26

Passerelle vers d’autres répertoires d’entreprises Adaptables LDAP Lightweight Directory Access Protocol Bottin d’entreprise des utilisateurs, standard (Windows NT) Gestion de la sécurité des utilisateurs Mots de passe Certificats et clefs publiques NIS Gestion des utilisateurs d’un réseau Unix Fichiers COS (Corba) Semaine 8: Java 2, Enterprise Edition 27

Java Database Connectivity Base: Accès aux bases de données Optionnel: Pool de connections Transactions distribuées Ensemble d’enregistrements Rowset Semaine 8: Java 2, Enterprise Edition 28

Java Messaging Service But: connecter entre eux un grand nombre de services et de systèmes asynchrones Messages asynchrones Au travers d’une queue, FIFO 2 garanties de livraison Au moins une fois Seulement une fois Écriture et lecture sont inclus dans une transaction Semaine 8: Java 2, Enterprise Edition 29

2 modèles de distribution Point à point Une application à une autre Un utilisateur à un autre (comme pour un courrier électronique fiable) Publier/souscrire D’un émetteur à un groupe de lecteurs newsgroup côtes de la bourse Différenciés par le contenu du sujet Semaine 8: Java 2, Enterprise Edition 30

Le mode Point-à-Point (PTP) Emetteur Destinataire QueueConnectionFactory QueueSession QueueConnection QueueSession QueueConnection Queue + QueueSender + QueueReceiver receive Systèmes PTP construits autour du concept de queue de message. Les messages sont adressés sur une queue spécifique au destinataire. Le destinataire extrait ses messages de la queue. send Semaine 8: Java 2, Enterprise Edition 31

Mode Publication / Souscription (Pub/Sub) Emetteur Destinataire Topic TopicConnectionFactory A B x y TopicSession TopicConnection + TopicPublisher publish TopicSubscriber Listener onMessage Les messages sont adressés à un nœud particulier. Émetteurs et abonnés sont anonymes. Le système distribue les messages arrivés aux différents abonnés. Semaine 8: Java 2, Enterprise Edition 32

Infrastructure basée sur un bus à messages Acheminement des notifications Exécution de la réaction du destinataire Distribution: forte interconnexion des bus locaux Agent Agent Agent Agent SendTo React Server A Channel Engine Channel Engine Server B mq mq Semaine 8: Java 2, Enterprise Edition 33

Semaine 8: Java 2, Enterprise Edition 34 Disponibilité de JMS Plusieurs implémentations et passerelles vers des systèmes de messagerie existants IBM MQSeries MSMQ de Microsoft TIBCO Oracle BEA Semaine 8: Java 2, Enterprise Edition 34

Semaine 8: Java 2, Enterprise Edition 35 JavaMail Classes pour envoyer et recevoir des courriers électroniques SMTP, IMAP4, POP3 Construit les en-têtes d’un message Supporte les messages MIME Permet d’envoyer et de recevoir Du HMTL, du XML, des attachements, etc… Semaine 8: Java 2, Enterprise Edition 35

Semaine 8: Java 2, Enterprise Edition 36 Connecteurs pour J2EE Références Voir http://java.sun.com/j2ee/connector Voir http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Connector.html Voir http://www.eaijournal.com/Article.asp?ArticleID=347&DepartmentID=5 Semaine 8: Java 2, Enterprise Edition 36

Semaine 8: Java 2, Enterprise Edition 37 Connecteurs Pourquoi? Se connecter aux systèmes applicatifs existants SAP, PeopleSoft, autres Quoi? Réaliser l’application au niveau des systèmes de l’entreprise Équivalent à l’accès JDBC pour les applications Transactionnel Un enregistrement à la fois Semaine 8: Java 2, Enterprise Edition 37