SOAP
Transcription
SOAP
NSY 107 Année 2009-2010 PLAN! !! SOAP Nouvelles Architectures Client-Serveur !! Pair à pair (P2P) !! Réseaux d'agents intelligents F.-Y. VILLEMIN! [email protected] CNAM-CEDRIC! © F.-Y. Villemin 2009! 2! SOAP SOAP SOAP (Simple Object Access Protocol), proposé par Microsoft pour contrer d'abord CORBA puis les EJB) est un protocole de RPC écrit en XML Trois éléments du protocole SOAP : Header / ossature : décrit le contenu et comment effectuer une commande à une application / un objet !! Règles de codage pour les différents types de données !! Convention pour exprimer les procédures de requêtes-réponse Station !! © F.-Y. Villemin 2009! 3! Application partie-client © F.-Y. Villemin 2009! Plugins Serveur Requêtes SOAP Client HTTP Réponses SOAP Serveur HTTP Servlets Application partie-serveur CGI 4! SOAP SOAP Message unidirectionnel Le header d’un message contient des données non applicatives L’attribut mustUnderstand =0 (ou rien) : l’élément est optionnel pour l’application réceptrice =1 : l’élément doit être compris de l’application réceptrice, sinon le traitement du message par le récepteur doit échouer Exemple <SOAP-ENV:Header>! !<t:transaction xmlns:t="une URI" SOAPENV:mustUndertand="1">! ! !5! !</t:transaction>! </SOAP-ENV:Header>! © F.-Y. Villemin 2009! Enveloppe !!Elèment racine !!Namespace pour SOAP-ENV : http://schemas.xmlns.org/soap/envelope Body d’un Message !!Contient des entrées applicatives !!Encodage des entrées !!Namespace pour l’encodage 5! © F.-Y. Villemin 2009! SOAP 6! Pair à pair Exemple (Hanson Brothers) : Pair à pair (peer to peer ou P2P) : à la fois client et à la fois serveur Exemples !!Calcul massivement distribué : SETI@home, GRID !!Partage de fichiers : Napster, GnuTella, FreeNet, Gnapster, Publius… !!Plate-forme de développement : JXTA de Sun… © F.-Y. Villemin 2009! 7! © F.-Y. Villemin 2009! 8! Modèles de déploiement Client-serveur !!Centralisé ou Distribué !!Utilisation de caches pour éviter la congestion !!Information centralisée !Internet Cache! Proxy ! Client ! ! serveur! ! Sans doute la première incarnation du concept de grille Client Client ! !!A partir d’une adresse http !!A partir d’un moteur de recherche ! Client ! Zone de congestion! Client ! Pair-à-pair (P2P) Client/" Serveur ! Client/" Serveur ! ! serveur! Client/" Serveur ! Zone de congestion! Client/" Serveur ! Client/" Serveur ! ! Client! 9! Principe !! Des millions de PC en attente… !! Récupération des cycles processeurs inutilisés (environ 47% en moyenne dans une entreprise*) via un économiseur d’écran) !! Accès à des données via un site unique contenant un index Stockage de données Exemples !! SETI@home (ce n’est pas du P2P !) "!Recherche de signaux extra-terrestres "!33,79 Teraflop/s (à comparer aux 12,3 Teraflop/s de l’ordinateur le plus puissant au monde au LLNL !) !! Décrypthon Exemple : Napster Partage des données Limites de l’approche !! Plutôt du client/serveur que réellement du P2P 10! Modèle de grilles de calcul Entre le client/serveur et le P2P !! Copies multiples sans aucun contrôle D'après T. PRIOL (INRIA) © F.-Y. Villemin 2009! Modèle de grilles de stockage !! Données "inaltérables" Serveur Web! !!Centralisation !!Ne captent qu’une partie de l’information publiée Client/" Serveur D'après T. PRIOL (INRIA) © F.-Y. Villemin 2009! Serveur Web! Moteurs de recherche qui ne passent pas à l’échelle serveur! Client/" Serveur ! Serveur Web! !!On ne sait pas toujours d’où vient l’information Client/" Serveur ! Serveur Web! Transparence lors de l’accès à l’information Internet Client/" Serveur Serveurs! Moteur de " Recherche! Accès à l’information Client serveur! Client Client !!Chaque pair est à la fois client et serveur !!Distribution de la charge dans le réseau (si parité !) !!Information distribuée Moteur de recherche Web: Client ! ! Client Modèle de grilles d’information Serveur Napster Association musique-@IP "! Etablir la carte des 500 000 protéines du vivant Utilisateur A Napster (Client + Serveur) Utilisateur B Napster (Client + Serveur) !! Serveur "vulnérable" !! RSA-155 "!Casser des codes cryptographiques !! XtremWeb (F. Cappello, LRI) "!Environnement logiciel "!par les tribunaux… "!ou par d’autres… © F.-Y. Villemin 2009! D'après T. PRIOL (INRIA) 11! © F.-Y. Villemin 2009! * d’après une enquête d’Omni Consulting Group! D'après T. PRIOL (INRIA) 12! Le metacomputing (GRID) Principe Le supercalculateur virtuel Principe Client !!Acheter du service de calcul sur l’Internet Requête !!Service = applications pré-installées + calculateurs AGENT(S) S2 ! “10 GFlops, EOS data, 20 Mb/sec -- pour 20 minutes” Exemples !!Netsolve (Univ. Tennessee) !!NINF (Univ. Tsukuba) Op(C, A, B) S1 S2 Serveur GRAM Serveur D'après T. PRIOL(INRIA)13! © F.-Y. Villemin 2009! Grilles d’information Grilles de stockage Client/serveur Fork LSF EASYLL Condor etc. GRAM GRAM D'après T. PRIOL (INRIA) 14! P2P: caractéristiques Dynamicité du réseau sous-jacent P2P !!Composition et topologie Sites Web Moteurs de recherche (Altavista, Google, …) Napster Datagrid, … Grilles de calcul SETI@home, Decrypthon Netsolve, Ninf, DIET Globus, Legion, Unicore, XtremWeb1, … © F.-Y. Villemin 2009! Metacomputing Directory Service “50 processeurs + stockage de 10:20 à 10:40 pm” © F.-Y. Villemin 2009! Problèmes Déploiement Grilles / localisation + sélection Courtier de ressource Allocateurs de ressources de GLOBUS GRAM Serveur Service d’information : S4 !!DIET (F. Desprez, ENS Lyon/ INRIA) Serveur Globus Légion Unicore “Quels ordinateurs ?” “Quelle vitesse ?” “Disponibilité ?” “20 Mb/sec” S3 Exemples !! Offrir un supercalculateur parallèle virtuel !! Faire exécuter ses applications sur des ressources distantes Découverte dynamique de pairs et de ressources Extensibilité ? !!Plus de pairs=>plus de performance Haute disponibilité Gnutella,KaZaA, Freenet, JXTA, OceanStore, … !!Pairs interchangeables (réplication) Fiabilité des répertoires de ressources ? D'après T. PRIOL (INRIA) 15! © F.-Y. Villemin 2010! 16! Architectures P2P Architectures P2P Trois types d'architecture P2P : Centralisé : !! Un seul serveur stable est requis !!Centralisé (modèle client-serveur classique) !! Il sert d’index et de stockage des données !! Ce serveur peut être constitue de plusieurs machines tolérantes aux pannes !!Index centralisé / données décentralisées !!Index décentralisé / données décentralisées (architecture pur P2P) © F.-Y. Villemin 2009! Exemple : MP3.com 17! © F.-Y. Villemin 2009! Architectures P2P Architectures P2P Index centralisé / données décentralisées !!Index centralisé (serveur stable) !!Stockage décentralisé (serveurs instables) Principe !! Chaque pair annonce à l’index la liste des ressources qu’il sert !! Un pair requête l’index pour connaître la liste des pairs qui servent une ressource !! Le chargement des données se fait de pair à pair Exemple : Hotline (réseau de hackers PC) © F.-Y. Villemin 2009! 18! 19! Index décentralisé / données décentralisées !!Index décentralisés (serveurs instables/stables) !!Stockage décentralisé (serveurs instables) Principe !! Découverte des pairs qui servent l’index !! IP multicast, Relais de la découverte !! Les pairs qui servent d’index peuvent s’annoncer Exemple : Carracho (réseau de hackers Mac) © F.-Y. Villemin 2009! 20! Applications Plate-forme de P2P 1." Répartition de puissance de calcul 2." Applications de collaboration !! NetMeeting de Microsoft propose la visioconférence en plus de la messagerie pour travailler en groupe !! Groove, services autour du P2P permettant de communiquer, de jouer, de dessiner, de surfer à plusieurs 3." Messageries instantanées !! ICQ, AIM (AOL Instant Messenger)… 4." Indexation et moteurs de recherche 5." Web Services (Recherche de services UDDI, communautés de consommateurs…) 6." Répartition de stockage (Multimédia, …) © F.-Y. Villemin 2009! 21! Environnements de développement d’applications P2P Microsoft : .NET (My Services, ex HailStorm) Embedded Visual Tools + ViaXML Sun : SunOne : JXTA (prononcé « Juxta(pose) ») Architecture en couches Protocoles IP/HTTP et Messages au format XML Applications : InstantP2P, InfraSearch, Shell … © F.-Y. Villemin 2009! 22! Services et applications JXTA Le réseau virtuel JXTA JXTA: infrastructure générique pour le P2P !!Plate-forme ouverte de programmation P2P !!Ensemble de protocoles interopérables (XML) !!Indépendance des langages, systèmes, réseaux !!Projet open source: http://www.jxta.org !!Stockage distribué et partage de données "!Recherche, indexation et partage de fichiers !!Calcul distribué à grande échelle !!Outils de collaboration !!Messagerie P2P !!Monitoring des pairs et des services © F.-Y. Villemin 2010! La présentation suivante pp 23-39 de JTXA est reprise de G. Antoniu, L. Bougé & T.Priol de l'IRISA à Rennes!23! Peer ID Peer ID Peer ID Peer TCP/IPPeer Peer Peer Firewall © F.-Y. Villemin 2010! Peer ID Peer ID Peer ID Peer ID Peer Peer ID Peer Peer Firewall Peer Peer Peer HTTP Peer Réseau physique 24! JXTA: pairs JXTA: pairs de routage Un pair = !!Un identifiant unique (UUID) !!Adressable indépendamment de sa localisation (firewalls, NAT) Peer ID Peer ID !!Plusieurs points d’accès réseau (TCP, HTTP, etc.) Peer ID Plusieurs types de pairs Peer ID Relay Peer Peer ID Peer ID Peer ID Peer Relay ID Peer !!Minimaux !!Simples Peer Peer !!Rendez-vous TCP/IP Peer Peer Firewall !!Routage Peer Peer Peer Peer Peer Peer Peer HTTP Réseau physique © F.-Y. Villemin 2010! 25! © F.-Y. Villemin 2010! JXTA: groupes de pairs 26! JXTA: annonces (advertisements) Ensemble de pairs réunis par un intérêt commun Toute ressource est représentée par une annonce !!Applications collaboratives Pair !! !!Services de groupe Groupe de pairs !! Canal de communication !!Politique de sécurité !! Point d’accès au pair !! Service !! Contenu !! Etat d’un pair NetPeerGroup PeerGroupA Peer ID Peer ID Peer ID Peer ID Peer ID !! Peer ID Peer ID PeerGroup Advertisement:! <?xml version="1.0"?>! <!DOCTYPE jxta:PGA>! <jxta:PGA>! !<GID>! ! !urn:jxta: uuid!BCBCDEABDBBBABEABBBABA000000! !</GID>! !<MSID>! ! !urn:jxta:uuid!BFEFDEDFBABAFRUDBACE00000001! !</MSID>! !<Name>! ! !My Group! !</Name>! !<Desc>! ! !This group is to be used for my own testing! !</Desc>! </jxta:PGA>! Peer ID PeerGroupB © F.-Y. Villemin 2010! 27! © F.-Y. Villemin 2010! 28! Canaux JXTA: communication par canaux !!Asynchrones !!Uni-directionnels !!1-to-1, 1-to-N ou N-to-1 Input Pipe JXTA: pile des protocoles Output Pipe Localisation transparente des services Peer Pipeline de services Receive Haute disponibilité (reconfiguration transparente Point-to-Point Pipe en cas de panne) Peer Discovery Protocol Pipe Binding Protocol Peer Info Protocol Peer Propagate Peer Resolver Protocol Propagate Pipe Peer Peer Send Peer Endpoint Protocol PeerGroup B Peer Rendezvous Protocol Peer Group A © F.-Y. Villemin 2010! 29! © F.-Y. Villemin 2010! JXTA: protocole de découverte 3 2 RdV 1 2 © F.-Y. Villemin 2010! 4 2 3 3 JXTA: architecture 4 RdV 2 30! RdV 4 31! © F.-Y. Villemin 2010! 32! JXTA: services de base Service de partage de mémoire !!Discovery Service !!PeerInfo Service Point de départ: mémoire virtuellement partagée !!Pipe Service !!Resolver Service !!Membership Service Peer ID !!Access Service Peer ID Peer ID Peer ID Peer ID Peer ID Peer ID Peer ID Espace d’adressage global Données communes © F.-Y. Villemin 2010! 33! © F.-Y. Villemin 2010! Service de partage de mémoire P2P 34! Application: couplage de code Une application = un assemblage de plusieurs codes de calcul Nouvelles hypothèses : !!Dynamicité du réseau !!Hétérogénéité des processeurs et des réseaux SAN !!Sécurité !!Cohérence hiérarchique Optique Grappe de PC !!Schémas d’accès aux données Conception de Satellite !!Nommage des nœuds !!Critères d’évaluation à revoir SAN Thermique Dynamique Grappe de PC Pas une mémoire partagée à grande échelle © F.-Y. Villemin 2010! LAN Mécanique des structures WAN Visualisation Supercomputer Application de couplage 35! © F.-Y. Villemin 2010! 36! Application: metacomputing Stockage des données !!Éviter les transferts multiples entre client et serveurs !!Gestion des données distribuées et redistribution Architecture : Partage de mémoire Client Requête AGENT(s) S2 ! Op2(C, A, B) Op1(C, A, B) S1 S2 S3 S4 !!Modèle de déploiement P2P Serveur Serveur Serveur Serveur Service de gestion des données distribuées" persistantes! © F.-Y. Villemin 2010! 37! © F.-Y. Villemin 2010! Systèmes Multiagents JXTA : Conclusion Partage de mémoire pair-à-pair Un système décrit [Newell 1982, 1990] au niveau connaissance comme un agent rationnel doté: !!Principaux défis: dynamicité, hétérogénéité, architecture hiérarchique Applications typiques !! de fins (l'ensemble des buts) !!Couplage de code !!Persistance des données dans les environnements de calcul sur grille !! de moyens physiques d'interaction avec le monde extérieur (l'ensemble des interactions) JXTA: plate-forme ouverte pour des services et applications P2P © F.-Y. Villemin 2010! 38! !! des compétences (le corpus de connaissances) liant fins et moyens selon principe de rationalité 39! © F.-Y. Villemin 2009! 40! Systèmes Multiagents Systèmes Multiagents Automate séquentiel : !!travaux en planification !!Ressources limitées: Bratman, Israel, Pollack... Ensemble de plusieurs agents logiciels capables d’interagir en vue de : !! Coéxister !! Coopérer !! Entrer en compétition Agents réactifs : !!Réseaux neuronaux !!Automate situé: perception et action Rosenschein et Kaelbling !!réseaux d’agents: modules de compétence Maes Chaque agent possède des informations et des compétences restreintes : !! Pas de système central de contrôle !! Données et informations décentralisées !! Fonctionnement asynchrone © F.-Y. Villemin 2009! Systèmes hybrides : !!Georgeff & Lansky: PRS !!Ferguson: TouringMachines !!Müller: InteRRaP archictecture en niveaux 41! © F.-Y. Villemin 2009! Systèmes Multiagents Applications Multiagents Administration ou management: !!atelier flexible !!station électrique !!réseau téléphonique !!transport routier InteRRaP (Fischer, Müller, Pischel 94) : Base de connaissances Modèle social Unité de contrôle SG Planification coopérative PS Planification locale Modèle mental SG Modèle du monde SG PS Comportement Contrôle: !!accélérateur de particules !!vaisseau spatial... PS Interface agent/monde Perception Communication Action Recherche d’informations: !!sur le web !!dans des bibliothèques digitales B= {croyance}, G= {but}, I= {intention}, P= {perception} 3 fonctions de bases: !!révision des croyances & abstraction des connaissances : !BR: PXB!B! !!reconnaissance d’une situation & activation d’un but !SG:BXG!G! !!planification & ordonnancement ! !PS:BXGXI!I! © F.-Y. Villemin 2009! 42! 43! © F.-Y. Villemin 2009! 44! Communication KQML Efficacité d'un système multiagents dépend de l'efficacité de ses communications : !! Utilisation de KQML ou ACL !! Utilisation de JatLite ou JADE !! Création d'un langage de requête NetSA © F.-Y. Villemin 2009! 45! Knowledge Query and Manipulation Language Basé sur les actes du langage Protocole SKTP (Simple Knowledge Transfert Protocol) à 3 couches : 1. La couche contenu : 2 agents intelligents doivent s'accorder sur le langage de communication à utiliser 2. La couche message sert à coder le message, 2 types de messages : !!Les messages de données contiennent une description d'une partie de la connaissance proposée !!Les messages de déclaration annoncent la présence d'un agent, enregistrent son nom, fournissent des descriptions sur le type d'information que l'agent va envoyer ou recevoir, tel que le type d'acte de parole qu'il représente (assertion, requête, réponse, message d'erreur, etc....) 3. La couche communication : les agents échangent des paquets dans la couche communication (enveloppes autour du message qui spécifie des attributs de communication comme ceux concernant l'envoyeur et le destinataire) © F.-Y. Villemin 2009! KQML JATLite Exemples d'utilisation de KQML (Louis Cloutier) Trois agents : Nick, Sonia et Frank Nick transmet le message suivant à Sonia: (ask-one :sender Nick :receiver Sonia :language français :reply-with your-question :content ''Quelle heure est-il?")! Sonia transmet le messsage suivant à Nick: (reply :sender Sonia :receiver Nick :language français :in-reply-toyour-question :content "midi")! Nick transmet le message suivant à Frank: (tell :sender Nick :receiver Frank :language english :content "it is noon")! © F.-Y. Villemin 2009! 46! 47! Plate-forme JATLite (Java Agent Template, Lite) !! Stanford Center for Design Research !! ensemble de classe Java !! création d!’agents de type applet ou application !! envoi/réception de message au standard KQML (langage de communication entre agents) !! basé sur un "Agent Message Router" qui gère la connexion/déconnexion des agents, le routage des messages entre agents, le stockage des messages si nécessaire !! pas de modèles d’agent imposé © F.-Y. Villemin 2009! 48! JATLite JATLite Les couches de JATLite ; Application / Applet Java Accès utilisateur Programme existant Protocol Layer Router Layer Register Connect KQML Layer Messages KQML / ACL Register Connect Base Layer JATLite Agent Message Router (AMR) Abstract Layer © F.-Y. Villemin 2009! 49! © F.-Y. Villemin 2009! Architecture Multi-agent 50! FireFly Pattie Maes (Media Lab au MIT) Exemple de filtre intelligent (au sens I.A.) : !!Service de diffusion d’information basé sur des communautés d’intérêt dans un groupe d’individus (chaque individu est représenté par un agent) Architecture générique pour un système à l’aide de décision basée sur l’architecture NetSA !!Mise en relation des individus (via les agents) !!Caractéristiques du filtre: Domaine : musique, loisirs Auto-apprentissage du logiciel © F.-Y. Villemin 2009! 51! © F.-Y. Villemin 2009! 52!