IFT604_2_Introduction

publicité
IFT604
Introduction
Programmation client-serveur
Plan
Systèmes répartis
Quelques définitions
Services, serveurs, clients…
Programmation client-serveur
Système réparti
Définition
Systè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
les ordinateurs peuvent être séparés par une
distance quelconque : continents, même édifice,
même pièce
Conséquences
Parallélisme
Partage de ressources matérielles et logicielles
Absence d’horloge globale
Indépendance des bris et des fautes
Internet
intranet
ISP
%
%
%
%
backbone
satellite link
desktop computer:
server:
network link:
Appareils portables et sans fil
dans les systèmes répartis
Internet
Host intranet
WAP
gateway
Wireless LAN
Mobi le
phone
Laptop
Printer
Camera
Host site
Home intranet
Service
Une partie distincte d’un système d’information
qui
gère un ensemble de ressources
présente leurs fonctions aux usagers et aux
applications
les seuls accès aux services se font à travers les
opérations qu’ils exportent
Serveur
 Un programme /processus qui
s ’exécute sur un ordinateur en réseau
accepte les requêtes des programmes qui
s ’exécutent sur d ’autres ordinateurs
active un service
rend une réponse appropriée
Client
 Les processus / programmes qui font des requêtes à un
serveur
 Les requêtes et leurs réponses sont réalisées par le biais
de messages
 Invocation à distance (remote invocation)
interaction 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
Un même processus peut être
à la fois client et serveur
puisque les serveurs peuvent invoquer des
opérations sur les autres serveurs.
Défis des systèmes répartis
 Hétérogénéité : matériel, réseaux, OS, langages…
 Ouverture : ajout / retrait dynamiques d’appareils et de services
 Sécurité : confidentialité, intégrité, disponibilité
 “Scalability” : être capable de passer de 10 usagers à 1 000 000, e.g. web
 Gestion des fautes : les fautes et les bris sont indépendants et répartis
 Parallélisme : coordination, synchronisation, etc.
 Transparence : des réseaux, des appareils…
Architecture
 Eléments de base : processus et objets
 Etape 1
simplifier et abstraire les fonctions des composants individuels
 Etape 2
distribution des composants sur le réseau, en portant attention à la
répartition des données et de la charge
spécification des interactions entre les composants, en particulier leurs
rôles fonctionnels et les patterns de communication
Rôles fonctionnels
 Processus serveurs
 Processus clients
 Processus pair (peer)
aide à identifier les responsabilités de chacun et ainsi d ’estimer
leur charge ainsi que l ’impact de leurs défaillances
permet de les placer sur le réseau de manière à rencontrer les
critères de performance et fiabilité
Modèle client-serveur
Client
invoc ati on
resul t
invoc ati on
Server
resul t
Server
Client
Key:
Proc ess :
Computer:
Modèle de base
Un 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
Application
Application
Coordination
code
Coordination
code
Application
Coordination
code
 Tous 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.
2.
3.
4.
5.
6.
7.
8.
Serveur plante, etc.
ping T-min (EU-USA) = 30 ms
Perte de paquets vs taille des
packets
Intégrer la sécurité dès le départ --quels seront les privilèges requis
pour les comptes
DNS, configuration des serveurs,
etc.
Dans une entreprise, plusieurs
administrateurs… qui contrôlent la
sécurité, les comptes, etc.
Ajouter les coûts de sérialisation
des données + coût de
l’infrastructure de transport
(routeurs, etc.)
Interopérabilité : ne pas utiliser les
protocoles propriétaires, e.g.
Ariane Controls
Autres références
 Arnon Rotem-Gal-Oz, Fallacies of Distributed Computing
Explained
http://www.rgoarchitects.com/Files/fallacies.pdf
 Ingrid Van Den Hoogen, Deutsch's Fallacies, 10 Years
After, Java Sys-con, Published Jan. 8, 2004
http://java.sys-con.com/read/38665.htm
 Jim Waldo, et al., A Note on Distributed Computing, Sun
Microsystems Labs, nov. 1994, SMLI TR-94-29
http://citeseer.ist.psu.edu/waldo94note.html
Téléchargement