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!

Documents pareils