La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Semaine 8: Java 2, Enterprise Edition1 J2EE: les composants distribués et transactionnels Références Chap 9 et 10, Livre « Developping Distributed and.

Présentations similaires


Présentation au sujet: "Semaine 8: Java 2, Enterprise Edition1 J2EE: les composants distribués et transactionnels Références Chap 9 et 10, Livre « Developping Distributed and."— Transcription de la présentation:

1 Semaine 8: Java 2, Enterprise Edition1 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 J2EE Tutorial

2 Semaine 8: Java 2, Enterprise Edition2 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 daffaires Canaux daccè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 dentreprises 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

3 Semaine 8: Java 2, Enterprise Edition3 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

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

5 Semaine 8: Java 2, Enterprise Edition5 Composantes J2EE

6 Semaine 8: Java 2, Enterprise Edition6 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

7 Semaine 8: Java 2, Enterprise Edition7 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 »

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

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

10 Semaine 8: Java 2, Enterprise Edition10 Quoi? Un objet distant Le client appelle lobjet 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.

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

12 Semaine 8: Java 2, Enterprise Edition12 Un composant dentreprise 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 Lutilisation La gestion de la sécurité La gestion des transactions La destruction

13 Semaine 8: Java 2, Enterprise Edition13 La création des EJB Les EJB utilisent le patron de « fabrique dobjet » - Factory pattern Dans la documentation des EJB, Le « factory » est appelé le « Home » On sépare la fabrique dune instance dobjet; Pour créer une nouvelle instance dEJB 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.

14 Semaine 8: Java 2, Enterprise Edition14 Exemple dutilisation 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:

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

16 Semaine 8: Java 2, Enterprise Edition16 EJB Session Représente lactivité 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

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

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

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

20 Semaine 8: Java 2, Enterprise Edition20 Gestion de la persistance (EJB- Entité) Automatiquement (Container-Managed Persistence) Les attributs de lobjet et le graphe de lobjet sont automatiquement traduit en colonnes dune 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

21 Semaine 8: Java 2, Enterprise Edition21 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 lobjet aux tables fait automatiquement par le serveur J2EE Très performant maintenant Objet daccès aux données - DAO

22 Semaine 8: Java 2, Enterprise Edition22 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 lintégration inter- applications

23 Semaine 8: Java 2, Enterprise Edition23 EJB-Message Patron dutilisation 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.

24 Semaine 8: Java 2, Enterprise Edition24 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 nest faite, En cas derreur Un « rollback » est générée

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

26 Semaine 8: Java 2, Enterprise Edition26 Java Naming and Directory Interface 2 rôles Passerelle vers des répertoires dentreprises Répertoire centralisé des objets distribués J2EE Fabrique dobjets « 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

27 Semaine 8: Java 2, Enterprise Edition27 Passerelle vers dautres répertoires dentreprises Adaptables LDAP Lightweight Directory Access Protocol Bottin dentreprise des utilisateurs, standard (Windows NT) Gestion de la sécurité des utilisateurs Mots de passe Certificats et clefs publiques NIS Gestion des utilisateurs dun réseau Unix Fichiers COS (Corba)

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

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

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

31 Semaine 8: Java 2, Enterprise Edition31 Le mode Point-à-Point (PTP) EmetteurDestinataire Queue QueueConnectionFactory QueueSession QueueConnection QueueSession QueueConnection + QueueSender + QueueReceiver send receive

32 Semaine 8: Java 2, Enterprise Edition32 Mode Publication / Souscription (Pub/Sub) EmetteurDestinataire Topic TopicConnectionFactory AB x y TopicSession TopicConnection TopicSession TopicConnection + TopicPublisher publish TopicSubscriber + Listener onMessage

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

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

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

36 Semaine 8: Java 2, Enterprise Edition36 Connecteurs pour J2EE Références Voir Voir Voir

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


Télécharger ppt "Semaine 8: Java 2, Enterprise Edition1 J2EE: les composants distribués et transactionnels Références Chap 9 et 10, Livre « Developping Distributed and."

Présentations similaires


Annonces Google