Architectures n-tiers Intergiciels à objets et services web



Documents pareils
Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Environnements de Développement

Les Architectures Orientées Services (SOA)

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Introduction aux applications réparties

Introduction aux intergiciels

Mise en œuvre des serveurs d application

Patrons de Conception (Design Patterns)

Hébergement de sites Web

1. Introduction à la distribution des traitements et des données

Architectures web/bases de données

Le modèle client-serveur

Messagerie asynchrone et Services Web

Cisco Certified Network Associate

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Les nouvelles architectures des SI : Etat de l Art

Systèmes d'informations historique et mutations

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Module BD et sites WEB

Le passage à l échelle de serveur J2EE : le cas des EJB

Découvrez notre solution Alternative Citrix / TSE

Serveurs de noms Protocoles HTTP et FTP

1.2 - Définition Web 2.0 ( wikipedia )

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

«clustering» et «load balancing» avec Zope et ZEO

Software Engineering and Middleware A Roadmap

Formation en Logiciels Libres. Fiche d inscription

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

Programmation Web. Introduction

Intégration de systèmes client - serveur Des approches client-serveur à l urbanisation Quelques transparents introductifs

«Clustering» et «Load balancing» avec Zope et ZEO

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Prise en compte des ressources dans les composants logiciels parallèles

WEA Un Gérant d'objets Persistants pour des environnements distribués

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Introduction à la plateforme J2EE

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Présentation Alfresco

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

CAHIER DES CHARGES D IMPLANTATION

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Introduction à la conception de systèmes d information

Cours CCNA 1. Exercices

Architecture et infrastructure Web

Description de la formation

Intégration de systèmes

Architectures en couches pour applications web Rappel : Architecture en couches

GEI 465 : Systèmes répartis

2 Chapitre 1 Introduction

18 TCP Les protocoles de domaines d applications

Fiche Technique. Cisco Security Agent

Single Sign-On open source avec CAS (Central Authentication Service)

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Le filtrage de niveau IP

Architectures d'intégration de données

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Présentation Internet

Cours Bases de données

La haute disponibilité de la CHAINE DE

Conception des systèmes répartis


Implémentation des SGBD

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

Guide d installation de ArcGIS server 9.3.1

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

CNAM Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

Technologie des applications client-serveur UE RSX 102. Support de cours Tome 1. Anas ABOU EL KALAM

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Urbanisation des Systèmes d'information

Chapitre 1 Windows Server

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

Introduction aux «Services Web»

Evaluation Idéopass Cahier d analyse technique

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Urbanisme du Système d Information et EAI

L3 informatique TP n o 2 : Les applications réseau

TD sur JMS ) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS?

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

WebSSO, synchronisation et contrôle des accès via LDAP

GENERALITES. COURS TCP/IP Niveau 1

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.

FileMaker Server 14. Aide FileMaker Server

Programmation Web Avancée Introduction aux services Web

FileMaker Server 14. Guide de démarrage

5. Architecture et sécurité des systèmes informatiques 5.1 Architecture technique.

.NET remoting. Plan. Principes de.net Remoting

Business & High Technology

WINDOWS Remote Desktop & Application publishing facile!

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Les Services Web. Jean-Pierre BORG EFORT

RMI le langage Java XII-1 JMF

ArcGIS 10.1 for Server

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Java et les bases de données

NOTIONS DE RESEAUX INFORMATIQUES

Transcription:

Plan pour aujourd hui Architectures n-tiers Intergiciels à objets et services web Clémentine Nebut Nebut LIRMM / Université de Montpellier 2 Clementine.nebut@lirmm.fr Introduction Architectures classiques Architecture client/serveur Architecture n-tiers Architecture 3-tiers Architecture orientée services Les principaux volets d une architecture n-tiers la distribution Persistance utilisateur Sécurisation Conclusion 1 2 Introduction Introduction s distribuées (ou réparties) Définition : une application distribuée est : un ensemble de programmes, distribués sur un réseau de communication, qui collaborent pour assurer un service. Exemples : Une grappe de calculateurs Une application de commerce en ligne Un calendrier partagé... 3 Pourquoi des applications distribuées? Besoin intrinsèque de l'application Les utilisateurs sont répartis (ex : site web) Les sont réparties (ex : stations météos) Partage de /informations (ex :P2P) Mais aussi Besoin de performances (ex : grappe de calcul) Besoin de «disponibilité» (ex : redondance) Besoin de modularité (ex : découplage gestion client / gestion personnel) Utilisation de services externes Et bien sûr toutes les combinaisons possibles 4 Architectures classiques Couplage fort Deux grands types d'architectures Couplage fort Ex : Architecture «peer-to-peer» (tous les processus ont le même rôle) Grappes de calculateurs Couplage faible Architecture client/serveur Architecture N-tiers Architecture 3-tiers Couplage très faible Architecture orientée services 5 Inter-dépendance entre les composants de l application P2 P1 P4 P3 Px Processus x Utilise les services de... Il existe au moins un cycle dans le graphe de dépendances entre les composants de l application Ce type d architecture pose problème tant pour le développement que pour la maintenance. A éviter autant que possible 6

P2 P1 P4 P3 Px Processus x Pas de cycle dans le graphe de Utilise les dépendances entre les composants services de... de l application Permet de maîtriser la complexité de l architecture : Pour le développement Pour le test Pour la maintenance Couplage faible Pas d inter-dépendance entre les composants de l application 7 Couplage très faible Les composants sont remplaçables, conçus en indépendance, avec des technologies diverses P2 P1 P4 P3 Px Processus x Utilise les services de... Un processus survit à la déconnexion d un autre processus Un processus est facilement remplaçable par un autre rendant les mêmes services Permet de faciliter la construction/maintenance : Services sous-traités Construction par assemblage 8 Couplage Pressman R. S., Software Engineering: A Practitioner's Approach, 3rd Edition. McGraw-Hill. Ch. 10, 1992 Architecture Client/Serveur Sans couplage : pas d'échange d'information. Par : échange par des méthodes avec arguments/paramètres de type simple. Par paquet : échange par des méthodes avec des arguments de type composé (structure, classe). Par contrôle : les composants se passent ou modifient leur contrôle par changement d'un drapeau (verrou). Externe : échange par un media externe (fichier, pipeline, lien de communication). Commun (global) : échange via un ensemble de (variables) commun. Client Client Deux types de noeuds Un serveur Des clients Serveur Par contenu (interne) : échange par lecture/écriture directe dans les espaces de (variables) respectifs des composants. 9 10 Réponse Réponse Architecture client-serveur Classification du Gartner roup Un client fait une requête Et reçoit une réponse du serveur Notion de session ensemble des requêtes et réponses pour un même client nécessite l identification du client ex: session yahoo, session telnet, session ftp interactive Données terminal Présentation utilisateur utilisateur utilisateur utilisateur Appli Gest. utilisateur Appli Gest. 11 Transparent emprunté à Yann Pollet (CNAM) 12

Architecture Client/Serveur Exemples : Client FTP/Serveur FTP Terminal X/Serveur d exécution Navigateur Web/Serveur de noms Navigateur Web/Serveur Web La majorité des architectures sont construites autour du modèle client serveur 13 Architecture Client/Serveur classique Points forts Couplage assez faible (le serveur n a pas besoin des clients) Maintenance et administration du serveur simplifiées Souplesse : possibilité d ajouter/suprimer dynamiquement des clients sans perturber le fonctionnement de l appli Les ressources sont centralisées sur le serveur Sécurisation simple des : 1 seul point d entrée Pas de problème d intégrité/cohérence des Points faibles Un maillon faible : le serveur Coût élevé : le serveur doit être très performant pour honorer tous les clients 14 Architecture Client/Serveur Architectures de plus en plus complexes : de commerce en ligne Radio/télévision numérique interactive Moteur de recherche Dans le modèle client/serveur toute la complexité est concentrée dans le serveur Problème de performance/disponibilité Répartition de charge (load balancing) Problème pour maîtriser la complexité Architectures multicouches (n-tiers) Répartition de charge (load balancing) Un serveur traite simultanément les requêtes de plusieurs clients Les requêtes de deux clients sont indépendantes «load balancing» : paralléliser sur plusieurs serveurs identiques s exécutant sur des machines différentes le traitement des requêtes concurrentes 15 16 Client Client Répartition de charge Les requêtes des clients passent par un répartiteur de charge qui les répartit sur N serveurs identiques. «ferme de serveurs» Réponse Serveur 1 Répartiteur de Serveur 2 charge Réponse Serveur N 17 Le répartiteur de charge Rôle principal : diriger les requêtes des clients en fonction de la charge de chacun des serveurs Rôles annexes Gérer les sessions des clients (2 solutions) Toutes les requêtes d un client sont dirigées vers un seul serveur Les de session sont transmises avec la requête Ex: gestion des concernant un client Gérer les défaillances : Ne plus diriger de requêtes sur un serveur «crashé» Assurer le passage à l échelle (scalabilité) Permettre l ajout et le retrait de serveurs sans interruption de service 18

Répartition de charge Points forts Transparent pour les clients Scalable : nb de serveurs adaptable à la demande Tolérant aux défaillances : la défaillance d un serveur n interrompt pas le service Plus besoin de machines très chères : en mettre + Point faible Les ne sont plus centralisées mais dupliquées Le répartiteur de charge devient le «maillon faible» Répartition de charge : Exemple Le site web de yahoo est hébergé simultanément sur plusieurs serveurs web d adresses différentes $ host www.yahoo.com www.yahoo.com is an alias for www.yahoo.akadns.net. www.yahoo.akadns.net has address 216.109.118.70 www.yahoo.akadns.net has address 216.109.118.71 www.yahoo.akadns.net has address 216.109.118.76 www.yahoo.akadns.net has address 216.109.118.77 www.yahoo.akadns.net has address 216.109.118.78 www.yahoo.akadns.net has address 216.109.118.64 www.yahoo.akadns.net has address 216.109.118.66 www.yahoo.akadns.net has address 216.109.118.67 Le serveur de noms (DNS) joue le rôle de répartisseur de charge en traduisant «www.yahoo.com» par l adresse de chacun des serveur web à tour de rôle 19 20 Maîtriser la complexité : les archis multicouches/n-tiers L application devient complexe : Difficile à développer Difficile à tester Difficile à maintenir Difficile à faire évoluer Solution : les architectures multicouches Inspiré par le développement en couches des protocoles réseaux et des architectures à base de composants 21 Principe Découper l application en un ensemble de composants (ou couches) fonctionnels distincts et faiblement couplés. Chaque composant est ainsi plus simple et l application distribuée reste faiblement couplée Les composants communiquent entre eux sur le modèle client/serveur Les composants de l application peuvent être facilement répartis sur plusieurs machines 22 «Serveur» Chaque couche d une application multicouches est cliente de ses couches inférieures et serveur pour les couches supérieures. Couche 1 (Client) Couche 3 Couche 2 Sens des requêtes Faiblement couplé : pas de cycles La plupart des applications développées se ressemblent et se composent : De De traitements (sur ces ) De présentation (des et des résultats des traitements) On distingue généralement 3 grandes couches dans une application Couche 4 23 24

«Tier»=couche 1/3 Tier=layer Remarque de vocabulaire 25 Les architectures à 3 couches (3-tiers) Le cœur de l application (modèle métier) : modèle objet et traitements propres au domaine de l application (Analyse et conception OO habituelle). Les persistantes (couche d accès aux ) : Couche basse faisant le lien entre le modèle métier et stockage physique des (système de fichier, SGBD ) L interface utilisateur (couche de présentation) permettant à l utilisateur d agir sur le modèle métier (interface graphique, interface web ) 26 Les architectures à 3 couches principales : Exemples de technos Les architectures à 3 couches Client 3 ans Clients Navigateurs web Applets Clients Corba Serveur Web XML Serveur 10 ans Serveurs applicatifs Plateformes OO JAVA.NET Données 20 ans et + Sources de donnés BDR/BDO Annuaires (LDAP) Database Points forts Découplage logique applicative/interface Ce ne sont généralement pas les même équipes de développement. Possibilité de changer ou d avoir plusieurs UI sans toucher à l application elle-même. Découplage /logique applicative Possibilité d utiliser des existantes sans complexifier le modèle métier. Possibilité de changer le mode de stockage des sans modifier la logique métier. Favorise la réutilisation puisque toute la logique propre à l application est concentrée dans le modèle métier 27 28 Multi-couches et Intergiciels Intergiciel (middleware) logiciel servant d'intermédiaire de communication entre plusieurs applications, généralement complexes ou distribuées sur un réseau informatique. Intergiciels : une définition floue Ensemble de fonctionnalités intégrées (persistance, répartition,...) Objectif principal : la répartition/distribution Orientation message Orientation RPC Problèmes génériques Comment échanger des objets entre différentes machines : gestion de la distribution Comment stocker des objets : la persistance Comment présenter des : interface utilisateur Comment sécuriser les et les échanges : cryptage et authentification 29 30

la distribution Communication entre les couches basses Appel de méthode à distance (RPC) Ex : RMI, CORBA,.NET Remoting, Service Web Communication par messages asynchrones Ex : JMS (Java Message System) Communication avec le client Appel de méthode à distance (RPC) Ex : Applet JAVA via RMI, Service Web via Soap Par l intermédiaire d un serveur web Utilisent toujours http Ex : IIS (Internet Information Services - MS.net), Apache (PHP), Tomcat (Java), 31 Appel de méthodes distantes Dans le paradigme objet, les communications sont déjà sur le modèle client serveur : : Appel de méthode Réponse : Valeur de retour Objet client MaMethode(mes, paramètres) UnObjet Réponse Objet serveur 32 Appel de méthodes distantes Appel de méthodes distantes Communication entre les différentes couches : Appel de méthode sur des objets distants. Couche cliente Objet client MaMethode(mes, paramètres) UnObjet Réseau Réponse Couche serveur Objet serveur 33 Avantages : Les communications entre couches restent à un bon niveau d abstraction on manipule toujours des objets (si on le souhaite) Le mode de communication entre les couches est le même qu à l intérieur d une couche Transparence de la distribution : théoriquement on ne s en préoccupe pas à la conception mais au niveau du déploiement. Il existe des technologies permettant l appel de méthodes distantes très simplement RMI (JAVA) : Remote Method Invocation Corba.NET remoting 34 Appel de méthodes distantes Comment transférer des instances d une couche à l autre (ex: callback avec en retour un objet) La couche qui reçoit un objet doit avoir connaissance de sa classe (2 solutions) : La classe est transmise avec l objet Charge réseau importante : il faut transmettre tout l arbre d héritage Toutes les couches ont une copie des classes qu elles sont amenées à manipuler Moins souple, mais plus économique pour le réseau 35 Appel de méthodes distantes Comment transférer des instances d une couche à l autre Les paramètres (2 solutions) Par valeur : on transmet une copie des objets (sérialisation en binaire) Par référence : on transmet un pointeur sur l objet. C est le mode classique des langages OO Utilisation de proxy et stubs pour rendre le passage par référence transparent a:=d.toto(obj) -> a est une instance du proxy accédant à l objet distant. Le proxy spécifie l interface a.coucou -> le code de coucou est exécuté à distance 36

Communication par messages Communication par messages asynchrones Émission d'une information à une couche inférieure sans besoin de réponse : asynchronisme Exemple : notification d évènement, déclenchement d un traitement batch (ex: à minuit envoyer les emails) Technologies : JMS (Java Message System), 37 Message Passing Communication par messages messages envoyés directement d un processus à un autre (calculs répartis sur des machines parallèles/clusters/grilles) Message Queuing messages stockés dans des files de message où ils sont récupérés de façon asynchrone exemple : JMS (Java Message Service), MSMQ applications : en gestion principalement (EAI, Enterprise Integration) 38 Communications par Serveur Web Utilisation du protocole HTTP passe partout : Permet de transmettre les sur de longues distances : le protocole HTTP est toléré par tous les firewalls. compris partout : Tout le monde a un client HTTP : le navigateur web. La gestion de session «web» est prise en charge par le serveur web Permet de créer des interfaces utilisateur (HTML) compris partout : Un navigateur web suffit pour utiliser l application : pas de problème d administration, de mise à jour des clients! Permet à des applications de communiquer (Services Web) Permet de définir et utiliser des API tout en étant indépendant du langage utilisé. 39 Problèmes génériques Comment échanger des objets entre différentes machines : gestion de la distribution Comment stocker des objets : la persistance Comment présenter des : interface utilisateur Comment sécuriser les et les échanges : cryptage et authentification 40 La persistance Stocker de façon permanente les manipulées par l application Permettre d arrêter et redémarrer l application sans perdre d informations Partager des entre plusieurs applications indépendantes Besoin de stocker des instances du modèle métier : Comment rendre persistant des objets? 41 La persistance Par exemple : Stockage sur disque des objets Bases de relationnelles Système de fichiers, xml Bases de objets La couche d accès aux doit rendre transparente la technologie utilisée pour la couche métier et assure l intégrité des 42

L intégrité des Transaction Assurer que les stockées sont cohérentes Exemple : Une appli gère des comptes bancaires Les objets persistants «compte bancaire» comportent entre autres les méthodes «débiter(montant)» et «créditer (montant)». La couche d accès aux permet de charger et enregistrer des objets «compte bancaire» On souhaite implanter un service de virement bancaire : Charger les deux comptes bancaires Débiter le montant du compte source du virement Créditer le compte destination Enregistrer les comptes avec leur nouveau montant Chacune des étapes peut échouer et conduire à un problème d intégrité : Compte destination pas crédité, compte source pas débité, La persistance doit s accompagné d un mécanisme de transactions 43 Un mécanisme de transaction permet de rendre atomique un ensemble d actions Exemple : Début de transaction Charger les deux comptes bancaires Débiter le montant du compte source du virement Créditer le compte destination Enregistrer les comptes avec leur nouveau montant Si tout va bien : Valider la transaction (Commit) Si il se produit une erreur : Annuler la transaction (Rollback) Si il y a une erreur, toute les modifications réalisées dans le corps de la transaction sont annulées. L état du système reste ainsi cohérent même si une erreur se produit. 44 Serveur d application Objectifs Prendre en charge les problèmes récurrents rencontrés lors du développement d applis (Persistance, Accès à distance, transaction, session, ) Exemple : Plateforme J2EE Plateforme.NET Point fort Permet au développeur de se concentrer sur la logique métier. Point faible Comme toute application qui propose de tout prendre en charge, les serveur d application sont assez difficile à maîtriser 45 Problèmes génériques Comment échanger des objets entre différentes machines : gestion de la distribution Comment stocker des objets : la persistance Comment présenter des : interface utilisateur Comment sécuriser les et les échanges : cryptage et authentification 46 utilisateur (couche présentation) Web : peu de traitements locaux Client léger (= le même client pour se connecter à tous les servicesil n y a rien à installer chez les clients - (navigateur web: Internet explorer, firefox, ) Communication via serveur Web Programme client dédié à l application (traitements locaux) Possibilité d adapter le client à l application (ex: calendar interne à un réseau local, Objecteering : interface trop complexe) Mode de communications au choix Serveur web (en utilisant des service web) RPC (RMI, CORBA, ) Déploiement et maintien plus difficile Problèmes génériques Comment échanger des objets entre différentes machines : gestion de la distribution Comment stocker des objets : la persistance Comment présenter des : interface utilisateur La technologie doit être choisie en fonction du nombre et du statut des utilisateurs. 47 Comment sécuriser les et les échanges : cryptage et authentification 48

Cryptage et Authentification Cryptage/Authentification - exemple Les applis sont généralement multi-utilisateurs et peuvent manipuler des sensibles Exemple : les numéros de carte de crédit pour les applications de commerce en ligne. Il est donc nécessaire de prendre en compte très tôt la sécurité des et des échanges. Plusieurs problèmes La personne qui m envoie une requête est-elle bien la personne qu elle prétend être? Authentification Comment être sûr que personne ne va intercepter les messages échangés? Cryptage 49 Zéro-knowledge Do-this Who are you? John 50 Cacher la répartition Le rôle des intergiciels Cacher l'hétérogénéité des différentes parties impliquées Fournir des interfaces de haut niveau pour faciliter le développement et l'intégration Fournir des services communs Avantages/ Inconvénients des intergiciels Cachent le bas niveau (ex : implémentation de la communication à base de sockets) Assurent l'indépendance : langages et/ou plateformes Perte de performance liée à la traversée des couches Architectures complexes, technologies complexes 51 52 Intergiciels : un peu d'histoire Appel de procédure distante : 1984 Terme middlewar : 1990 1988. OSF (Open Software Foundation) maintenant Open Group Devait unifier versions unix Puis spécifier une plateforme intergicielle (Distributed Computing Environnment OMG (1989) Corba (1991) Intergiciels : un peu d'histoire Java (1995) RMI (1996) EJB (1997-1999) J2EE (fin 1999) Microsoft 1997 : DCOM (Distributed Component Object Model) 1999 : COM+ 2002 :.net 53 54

J2EE et.net Conclusion La construction d une application n-tiers nécessite : D en élaborer l architecture Modèle métier Qu est ce qui est distribué? Persistant? Comment les différentes composantes communiquentelles? De définir des stratégies de sécurité De choisir les technologies adéquates 55 56 Conclusion Dans ce cours On s'intéresse essentiellement aux mécanismes de communication Deux grandes catégories étudiées Distribution d'objets (RMI,.NET remoting, CORBA) Services web (avec JAVA/AXIS et.net) Des points communs Notion d'interface Notion de proxy Masquage des couches basses 57