IFT604 zIntroduction zProgrammation client-serveur
Plan zSystèmes répartis yQuelques définitions yServices, serveurs, clients… zProgrammation client-serveur
Système réparti zDéfinition zSystème dont les composants matériels et logiciels situés sur des ordinateurs en réseau communiquent et coordonnent leurs actions seulement par échange de messages yles ordinateurs peuvent être séparés par une distance quelconque : continents, même édifice, même pièce
Conséquences zParallélisme yPartage de ressources matérielles et logicielles zAbsence d’horloge globale zIndépendance des bris et des fautes
Internet
Appareils portables et sans fil dans les systèmes répartis
Service zUne partie distincte d’un système d’information qui ygère un ensemble de ressources yprésente leurs fonctions aux usagers et aux applications yles seuls accès aux services se font à travers les opérations qu’ils exportent
Serveur zUn programme /processus qui ys ’exécute sur un ordinateur en réseau yaccepte les requêtes des programmes qui s ’exécutent sur d ’autres ordinateurs yactive un service yrend une réponse appropriée
Client zLes processus / programmes qui font des requêtes à un serveur zLes requêtes et leurs réponses sont réalisées par le biais de messages zInvocation à distance (remote invocation) yinteraction complète entre un client et un serveur, de l ’émission de la requête par le client jusqu ’à la réception de la réponse
Clients vs serveurs zUn même processus peut être yà la fois client et serveur ypuisque les serveurs peuvent invoquer des opérations sur les autres serveurs.
Défis des systèmes répartis zHétérogénéité : matériel, réseaux, OS, langages… zOuverture : ajout / retrait dynamiques d’appareils et de services zSécurité : confidentialité, intégrité, disponibilité z“Scalability” : être capable de passer de 10 usagers à , e.g. web zGestion des fautes : les fautes et les bris sont indépendants et répartis zParallélisme : coordination, synchronisation, etc. zTransparence : des réseaux, des appareils…
Architecture zEléments de base : processus et objets zEtape 1 ysimplifier et abstraire les fonctions des composants individuels zEtape 2 ydistribution des composants sur le réseau, en portant attention à la répartition des données et de la charge yspécification des interactions entre les composants, en particulier leurs rôles fonctionnels et les patterns de communication
Rôles fonctionnels zProcessus serveurs zProcessus clients zProcessus pair (peer) yaide à identifier les responsabilités de chacun et ainsi d ’estimer leur charge ainsi que l ’impact de leurs défaillances ypermet de les placer sur le réseau de manière à rencontrer les critères de performance et fiabilité
Modèle client-serveur zModèle de base yUn processus client interagit avec un processus serveur situé sur un autre ordinateur pour accéder aux ressources que le serveur gère.
Architecture peer-to-peer zTous les processus jouent un rôle similaire et coopèrent comme des pairs pour effectuer le calcul réparti sans distinction entre clients et serveurs
Bill Joy, Dave Lyon, James Gosling, Peter Deutsch 1.Serveur plante, etc. 2.ping T-min (EU-USA) = 30 ms 3.Perte de paquets vs taille des packets 4.Intégrer la sécurité dès le départ --- quels seront les privilèges requis pour les comptes 5.DNS, configuration des serveurs, etc. 6.Dans une entreprise, plusieurs administrateurs… qui contrôlent la sécurité, les comptes, etc. 7.Ajouter les coûts de sérialisation des données + coût de l’infrastructure de transport (routeurs, etc.) 8.Interopérabilité : ne pas utiliser les protocoles propriétaires, e.g. Ariane Controls
Autres références zArnon Rotem-Gal-Oz, Fallacies of Distributed Computing Explained yhttp:// zIngrid Van Den Hoogen, Deutsch's Fallacies, 10 Years After, Java Sys-con, Published Jan. 8, 2004 yhttp://java.sys-con.com/read/38665.htmhttp://java.sys-con.com/read/38665.htm zJim Waldo, et al., A Note on Distributed Computing, Sun Microsystems Labs, nov. 1994, SMLI TR yhttp://citeseer.ist.psu.edu/waldo94note.htmlhttp://citeseer.ist.psu.edu/waldo94note.html