Serveurs dapplication 1 2 3 4 Architecture Le

  • Slides: 27
Download presentation
Serveurs d’application 1. 2. 3. 4. Architecture Le standard J 2 EE Etude de

Serveurs d’application 1. 2. 3. 4. Architecture Le standard J 2 EE Etude de cas: EDF GDF. NET de Microsoft

1. Architecture avec SA Présentation Application Appareil mobile Serveur WAP Browser Web Serveur Web

1. Architecture avec SA Présentation Application Appareil mobile Serveur WAP Browser Web Serveur Web Client Java Parefeu Client VB/C++ Données SGBD Serveur Web Serveur d’application … … 2 Application ERP Application mainframe

Serveur d’application • Serveur d’entreprise avec • support des composants • standards CORBA, COM,

Serveur d’application • Serveur d’entreprise avec • support des composants • standards CORBA, COM, EJB • middleware objet • support des transactions • standards CORBA, Open Group (XA) • environnement de développement intégré • composants, transactions • équilibrage de charge entre serveurs • support de XML et des Web services • interface avec moniteurs transactionnels et MOM • NB: serveur d’application serveur Web + servlet (ex. Apache+Tomcat) 3

Equilibrage de charge et disponibilité En cas de panne de A, basculement automatique sur

Equilibrage de charge et disponibilité En cas de panne de A, basculement automatique sur B Cookie A, B Serveur A primaire Réplication de l’état des processus clients Serveur B Secondaire Cluster 4

Le problème d’accès aux données Où mettre la logique applicative ? Composants métiers Procédures

Le problème d’accès aux données Où mettre la logique applicative ? Composants métiers Procédures stockées Serveur d’application Serveur de données • Compromis entre performances et flexibilité difficile à obtenir • performances : s’appuyer au maximum sur le serveur BD => procédures stockées • flexibilité : composants métiers encapsulant l’accès aux données 5

Accès BD en C/S 2 tiers • Développement d’applications BD en 2 étapes 1

Accès BD en C/S 2 tiers • Développement d’applications BD en 2 étapes 1 conception de la BD • création des tables et des contraintes d’intégrité 2 programmation des procédures stockées Très efficace • procédures stockées et contraintes d’intégrité exécutées sur le serveur BD Evolution difficile • la modification d’une définition de données implique la recompilation des procédures stockées 6

Composants avec accès BD • Similaire au C/S Gestionnaire de commandes Commande + efficace

Composants avec accès BD • Similaire au C/S Gestionnaire de commandes Commande + efficace - composants non autonomes Produit Select C. a, P. b, … From C, P Where … 7

Composants encapsulant leurs données • Principe d’îlot de données Gestionnaire de commandes Commande •

Composants encapsulant leurs données • Principe d’îlot de données Gestionnaire de commandes Commande • ensemble de données entièrement contenu dans un composant métier • exige une forte localité des données/composant + composants autonomes - performances Produit 8

Comment améliorer les performances • Faire des composants métiers à gros grain • encapsulation

Comment améliorer les performances • Faire des composants métiers à gros grain • encapsulation des données fortement corrélées • par ex. 5 à 10 définitions de tables relationnelles • Exploiter les vues relationnelles • pour les données partagées entre plusieurs composants • Mettre en œuvre un cache de données au niveau du serveur d’application • transformation objet/relationnel 9

2. Le standard J 2 EE (Sun et al. ) • De nombreuses API

2. Le standard J 2 EE (Sun et al. ) • De nombreuses API • • • EJB: modèle de composants serveurs JNDI: accès aux services d’annuaire DNS, LDAP RMI: invocation de méthodes Java à distance JIDL: Java IDL - interface Corba JSP: Java Server Pages (Java ds pages HTML) JMS: Java Messaging Service JTS: Java Transaction Service (basé sur OTS) JDBC: accès aux BD via SQL JDO: Java Data Objects JAX: Java XML JCA: Java Connector Architecture. . . 10

JAX • Pour intégrer XML et les services web • JAX-RPC (Java API for

JAX • Pour intégrer XML et les services web • JAX-RPC (Java API for XML RPC) pour effectuer des appels de messages SOAP • JAXM (Java API for XML Messaging) pour envoyer des documents XML via SOAP • JAXR (Java API for XML Registries) pour accéder des annuaires de services de type UDDI 11

Architecture d’un serveur J 2 EE Logique métier Logique de présentation Container Web Container

Architecture d’un serveur J 2 EE Logique métier Logique de présentation Container Web Container EJB Java Server HTML/XML Page Java Bean Session Bean Entity Bean Servlet Support Comm. Services de base TCP/IP, HTTP, RMI, IIOP, SOAP, etc. JDBC, JTS, JNDI, JMS, JDO, JAX, etc. 12

Principaux serveurs J 2 EE Editeur Produit Points forts Ordre de prix BEA-Oracle Web.

Principaux serveurs J 2 EE Editeur Produit Points forts Ordre de prix BEA-Oracle Web. Logic Transactionnel, outils 10 K€ IBM Websphere 10 K€ Oracle AS Transactionnel, intégration avec DB 2 UDB Intégré dans l’offre Oracle HP Intégré avec les middlewares HP Basé sur Visibroker, outils 10 K€ Borland Total-eserver App. Server Sun Glass. Fish Logiciel libre (dernier né) Gratuit Redhat Jboss Logiciel libre Gratuit Apache Jeronimo Logiciel libre Gratuit Objectweb Jonas Logiciel libre Gratuit 13 10 K€

Web. Sphere Application Server • Support J 2 EE complet • Support des transactions

Web. Sphere Application Server • Support J 2 EE complet • Support des transactions • Interopérabilité avec le moniteur TXSeries • Serveur HTTP basé sur Apache • Support des clusters • partitionnement des applications et équilibrage de charge • Intégration avec • • Studio Application Developer DB 2 pour la gestion de données et le stockage de XML Tivoli pour la gestion de réseau Versant en. Jin pour les objets persistants 14

Web. Logic (BEA-Oracle) • Support J 2 EE complet • Serveur HTTP intégré •

Web. Logic (BEA-Oracle) • Support J 2 EE complet • Serveur HTTP intégré • Plugins pour Apache, IIS, Iplanet • Support des transactions • interopérabilité avec le moniteur BEA Tuxedo • Support des clusters • disponibilité et équilibrage de charge • Environnement de développement • Web. Logic Builder pour le développement Java • Web. Logic Workshop pour les Web services • Intégration avec • Nokia WAP server pour les mobiles • Top. Link (Web. Gain) pour le mapping objet-relationnel • Versant en. Jin pour les objets persistants 15

3. Etude de cas: EDF GDF • Application de relation client (CRM) : Niveau

3. Etude de cas: EDF GDF • Application de relation client (CRM) : Niveau 1 • Utilisée par 25000 agents de clientèle répartis sur 1300 agences • Gestion commerciale, gestion des contacts, outils marketing, utilitaires (mailings, etc. ) • Architecture technique • C/S (client lourd) avec 2 nouvelles versions par an • SI sur mainframes IBM (un centre par département) • Plusieurs BD et une partition CICS par centre • Besoins • Réactivité croissante aux demandes agents • Déploiement plus rapide des nouvelles versions 16

Solution • Architecture n-tiers • Client léger • Web. Logic: serveur J 2 EE

Solution • Architecture n-tiers • Client léger • Web. Logic: serveur J 2 EE sur plusieurs serveurs • Scort: Progiciel d’intégration avec les applications mainframes avec des composants J 2 EE sur Web. Logic • Résultats obtenus • Satisfaction des besoins • Niveau 1 offre 2 modes d’accès transparents aux clients: • Accès aux mainframes en récupérant une connexion pour exécuter des transactions • Smart publishing: navigation en mode publication à la volée 17

Le problème de la persistance des objets • L’état des objets modifiés par les

Le problème de la persistance des objets • L’état des objets modifiés par les entity beans doit être sauvegardé durant l’exécution • Approche classique: BD relationnelle avec mapping objet-relationnel • en général très inefficace avec des entity beans CMP (cf étude de SQLi mars 2002) • Solutions • propriétaire de type Top. Link • mapping vers une BD objet, par ex. Versant en. Jin • la plus productive et efficace selon SQLi 18

Versant en. Jin Serveur d’application Bean Commande Produit Cache partagé transactions SGBDO Versant Mapping

Versant en. Jin Serveur d’application Bean Commande Produit Cache partagé transactions SGBDO Versant Mapping O/R automatique Tiers backend Bases de données 19

Avantages de Versant en. Jin • Persistance des objets Java transparente • simple pour

Avantages de Versant en. Jin • Persistance des objets Java transparente • simple pour le développeur • pas besoin de programmer en JDBC ou autre • Cache d’objets partagés entre différents serveurs • performances et cohérence via le SGBDO Versant • Mapping objet-relationnel automatique vers les BD existantes • définition de la fréquence de synchronisation • online, batch, etc. 20

4. Microsoft. NET • Evolution majeure de la plateforme Windows • les APIs Windows

4. Microsoft. NET • Evolution majeure de la plateforme Windows • les APIs Windows sont remplacées par des bibliothèques de classes objet • intégration de C#, Linq • portabilité des applications. NET • Microsoft Intermediate Language (MSIL) exécuté par CLR • sécurité renforcée avec vérification de code • intégration avec COM et Microsoft Transaction Server (MTS) • support direct des services Web, de XML et de SOAP avec Visual Studio. NET 21

Architecture de MTS Internet Information Server (IIS) HTTP MTS Executive • threads • wrapper

Architecture de MTS Internet Information Server (IIS) HTTP MTS Executive • threads • wrapper • context HTML XML Active Server Page (ASP) ADO • factory • trans. • cache DCOM Windows 22 SQLServer Oracle Autres

Modèle de composants MTS • Composant • pas d’état (équivalent à EJB session bean)

Modèle de composants MTS • Composant • pas d’état (équivalent à EJB session bean) • Container • executive : entre client et composant serveur • context wrapper • définition du comportement trans. du composant par le développeur (par positionnement d’attributs avec Explorer) • context object • appelé automatiquement par MTS pour coordonner les transactions en 2 phases • Serveur Windows 23

Exemple de code applicatif MTS Set ctx. Object = Get. Object. Context () //

Exemple de code applicatif MTS Set ctx. Object = Get. Object. Context () // accès à l’objet contexte de MTS { code applicatif } Set obj. Exemple = ctx. Object. Create. Instance () // création d’un objet MTS { code applicatif } If (OK) ctx. Object. Set. Complete () // validation de la transaction Else ctx. Object. Set. Abort () // annulation de la transaction 24

Le framework. NET VB, C++, C#, Jscript, Java, etc. Outils SOAP et XML ASP.

Le framework. NET VB, C++, C#, Jscript, Java, etc. Outils SOAP et XML ASP. NET Docs HTML XML BCL. NET Base class library ADO. NET Active Data Objects Common Language Runtime (CLR) Windows et COM/MTS 25 Visual Studio. NET

Serveur J 2 EE versus. NET • Serveur J 2 EE • limité à

Serveur J 2 EE versus. NET • Serveur J 2 EE • limité à Java • transactions explicites • généralité • objets avec état: entity beans • problème de performances des beans CMP • portabilité • . NET • multi-langage • transactions implicites • simplicité • objets sans état • utiliser ADO pour l’accès aux données • propriétaire, intégré dans le monde Windows 26

Conclusion sur les serveurs d’application • Un modèle d’architecture réellement distribué • cache la

Conclusion sur les serveurs d’application • Un modèle d’architecture réellement distribué • cache la complexité du middleware • Critères de choix d ’un serveur d’application • support des standards • J 2 EE, Web services • plate-formes supportées • performances et débit transactionnel • environnement de développement 27