Serveurs dapplication 1 2 3 4 Architecture Le
- Slides: 27
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 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, 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 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 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 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 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 • 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 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 • • • 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 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 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. 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 • 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é • 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 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 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 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 O/R automatique Tiers backend Bases de données 19
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 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 • 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) • 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 () // 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. 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é à 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 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
- Bus architecture in computer architecture
- Call and return architecture in software engineering
- Integral architecture example
- Product architecture examples
- What is architecture business cycle?
- Lstm cec
- Tmn
- Reference monitor cissp
- Dbms standardization are based on
- Bapo business architecture process organization
- Saharsa college of engineering
- Startup architecture firm
- 8086 architecture
- Broker software architecture
- Virtual data integration architecture
- Centralized shared memory architecture
- San storage architecture
- Application of statistics in architecture
- Gsm network architecture
- Dependability via redundancy
- David patterson computer architecture
- Architectural thesis presentation
- Software architecture foundations theory and practice
- Very long instruction word architecture
- Cisco nso ansible
- Call and return architecture
- Medieval architecture
- System bus in computer