Application Client
Application Client
Application Client
serveur et web
6
Un intranet est un réseau informatique privé basé sur les
technologies Internet, utilisé à l'intérieur d'une organisation pour
permettre la communication, le partage d'informations et la
collaboration entre ses membres. Contrairement à Internet, qui est
un réseau public accessible à tous, un intranet est accessible
uniquement aux employés ou aux membres autorisés de
l'organisation.
7
Un extranet est une extension d'un intranet qui permet à des
parties externes, telles que des clients, des fournisseurs, des
partenaires commerciaux ou d'autres parties autorisées, d'accéder à
certaines parties de l'intranet de manière sécurisée. Contrairement à
l'intranet, qui est généralement accessible uniquement aux
membres internes d'une organisation, l'extranet élargit l'accès aux
utilisateurs externes tout en maintenant des contrôles d'accès stricts
pour assurer la confidentialité et la sécurité des informations
partagées.
8
TCP/IP, ou Transmission Control Protocol/Internet Protocol, est une
suite de protocoles de communication utilisée pour interconnecter
des réseaux informatiques sur Internet et d'autres réseaux. Il s'agit
d'un ensemble de règles et de normes qui définissent comment les
données doivent être transmises et reçues sur un réseau.
9
Il existe de très nombreuses manières de mettre les réseaux en
catégories suivant la variable d'analyse choisie. Nous présentons
dans ce qui suit les typologies les plus usitées et qui nous semblent
les plus utiles.
10
Suivant la relation fonctionnelle (hiérarchique presque) entre les
éléments constituant le réseau, on peut identifier trois grandes
architectures réseaux :
11
Il faut distinguer deux topologies
vLa topologie logique ( électrique ) :
Elle désigne le mode de circulation des données sur le média et
donc le mode d'échange des messages sur le réseau.
La topologie physique:
Elle désigne le mode d'interconnexion physique des différents
éléments du réseau.
Remarque :
Un réseau ayant une topologie physique en étoile peut très bien avoir une
topologie logique en bus. 12
La technologie Peer to Peer se base sur le réseau Internet
pour permettre l'échange de fichiers entre les internautes.
La différence avec un téléchargement classique c'est que le
fichier téléchargé ne se trouve pas sur un serveur FTP
accessible via un site web mais directement sur le disque
dur d'un autre internaute. 13
Chaque internaute peut ainsi disposer sur son disque dur
d'un nombre important de fichiers musicaux, films et autres
17
Si le peer to peer est une vraie bénédiction pour les internautes, les
professionnels de la musique et du cinéma mènent une véritable
guerre contre ce mode d'échange de fichiers qui met sérieusement
en dangers leurs entreprises.
18
19
Ø Une adresse de transport = une adresse IP + un numéro de port (16
bits) -> adresse de socket
21
Ø Pourquoi un service non fiable sans connexion ?
vsimple donc rapide (pas de délai de connexion, pas d'état entre
émetteur/récepteur)
22
Ø Performance sans garantie de délivrance
§ sensibles au débit
24
§ contrôle la validité des données reçues
25
§ protocole du web
§ assure la correspondance entre un nom symbolique et une adresse Internet (adresse IP)
27
Historique
o architecture centralisée
28
L'architecture client-serveur est un modèle de fonctionnement
Un des principes fondamentaux est que le serveur réalise un traitement pour le client. 30
Primitives de service :
SendRequest()
ReceiveResponse()
ReceiveRequest()
SendResponse()
31
Trois grands types de message :
REQ (Request)
REP (Reply)
ACK (Acknowledgment)
32
Ø Dans un environnement hétérogène, on doit effectuer une
présentation adéquate des données.
33
Modes de dialogue
38
Ø Programme demandant un service à un autre programme ET/ou
39
Programme fournissant des services à d’autres programme ET
Par exemple :
Ø le lien entre le client et le serveur est maintenu même quand il ne se passe rien
41
Un serveur traite plusieurs clients en même temps et contrôle leurs accès aux
ressources.
Il est possible d’ajouter et de retirer des stations clientes. Il est possible de faire
évoluer les serveurs. 42
Les données du serveur sont gérées sur le serveur de façon centralisée. Les
clients restent individuels et indépendants.
43
Le message transmis par le client au serveur s'appelle la : il décrit
Exemple
exemple DNS).
45
Web
protocole : HTTP
serveurs : serveur web (Apache, Nginx, IIS (Internet Information Server), Google
Servers ...)
(port = 80)
46
47
48
v Client lourd
• stocke les données et les applications localement. Le serveur stocke les fichiers mis à
jour
v Serveur lourd
• On effectue plus de traitements sur le serveur : transactions, groupware, etc
49
v Client léger
• Client à fonctionnalité minimale (terminaux X, périphérique réseau (Network Appliance),
ordinateur réseau (network computer))
50
les différences sont essentiellement liées aux services qui sont assurés par le serveur.
On distingue couramment :
Le client-serveur de donnée
Dans ce cas, le serveur assure des tâches de gestion, stockage et de traitement de données. C'est
le cas le plus connu de client-serveur qui est utilisé par tous les grands SGBD :
La base de données avec tous ses outils (maintenance, sauvegarde …) est installée sur un poste
serveur. Sur les clients, un logiciel d'accès est installé permettant d'accéder à la base
de donnée du serveur. Tous les traitements sur les données sont effectués sur le serveur qui
renvoie les Informations demandées (souvent à travers une requête SQL) par
le client.
51
Le Client-serveur de présentation
Dans ce cas la présentation des pages affichées par le client est intégralement prise en charge par
le serveur. Cette organisation présente l'inconvénient de générer un fort trafic réseau.
Le client-serveur de traitement
Dans ce cas, le serveur effectue des traitements à la demande du client. Il peut s'agir de traitement
particulier sur des données, de vérification de formulaires de saisie, de traitements d'alarmes …
Ces traitements peuvent être réalisés par des programmes installé sur des serveurs mais
également intégrés dans des bases de données (triggers, procédures, stockées), dans ce cas, la
partie donnée et traitement sont intégrées.
52
Le client-serveur est une architecture récente qui, néanmoins, à déjà connu trois générations
successives. Chaque génération a donné naissance à une architecture ; ainsi nous avons :
La première génération, née au début des années 80, est directement issue de l'évolution des
systèmes informatiques distribués autour d'un serveur central de base de données (généralement
un mainframe) accessibles par des postes de travail via un réseau de nature étoilée.
Dans une architecture deux tiers, encore appelée client-serveur de première génération ou client-
serveur de données, le poste client se contente de déléguer la gestion des données à un service
spécialisé. Le cas typique de cette architecture est une application de gestion fonctionnant sous
Windows ou Linux et exploitant un SGBD centralisé.
53
Première génération : le «client-serveur» centralisé L'architecture 2 tiers
Ce type d'application permet de tirer partie de la puissance des ordinateurs déployés en réseau
pour fournir à l'utilisateur une interface riche, tout en garantissant la cohérence des données, qui
restent gérées de façon centralisée.
La gestion des données est prise en charge par un SGBD centralisé, s'exécutant le plus souvent
sur un serveur dédié. Ce dernier est interrogé en utilisant un langage de requête qui, le plus
souvent, est SQL. Le dialogue entre client et serveur se résume donc à l'envoi de requêtes et au
retour des données correspondant aux requêtes.
54
Cet échange de messages transite à travers le réseau reliant les
deux machines. Il met en oeuvre des mécanismes relativement
complexes qui sont, en général, pris en charge par un middleware.
55
Première génération : le «client-serveur» centralisé L'architecture 2 tiers
L'expérience a démontré qu'il était coûteux et contraignant de vouloir faire porter l'ensemble des
traitements applicatifs par le poste client. On en arrive aujourd'hui à ce que l'on appelle le client
lourd, avec un certain nombre d'inconvénients :
• On ne peut pas soulager la charge du poste client, qui supporte la grande majorité des
traitements applicatifs ;
• Le poste client est fortement sollicité, il devient de plus en plus complexe et doit être mis à jour
régulièrement pour répondre aux besoins des utilisateurs;
• Les applications se prêtent assez mal aux fortes montées en charge car il est difficile de modifier
l'architecture initiale;
56
Première génération : le «client-serveur» centralisé L'architecture 2 tiers
• La relation étroite qui existe entre le programme client et l'organisation de la partie serveur
complique les évolutions de cette dernière;
• Ce type d'architecture est grandement rigidifié par les coûts et la complexité de sa maintenance.
Malgré tout l’architecture deux tiers présente de nombreux avantages qui lui permettent de
présenter un billan positif :
57
Première génération : le «client-serveur» centralisé L'architecture 2 tiers
Pour résoudre les limitations du client-serveur deux tiers tout en conservant ses avantages, on a
cherché une architecture plus évoluée, facilitant les forts déploiements à monidre coût. La réponse
est apportée par les architectures distribuées.
58
Deuxième génération : le «client-serveur» coopératif L'architecture 3 tiers
Les limites de l'architecture deux tiers proviennent en grande partie de la nature du client utilisé :
• le frontal est complexe et non standard (même s'il s'agit presque toujours d'un PC sous
Windows),
• le middleware entre client et serveur n'est pas standard (dépend de la plateforme, du SGBD …).
La solution résiderait donc dans l'utilisation d'un poste client simple communicant avec le serveur
par le biais d'un protocole standard.
59
Deuxième génération : le «client-serveur» coopératif L'architecture 3 tiers
Cette architecture trois tiers, également appelée client-serveur de deuxième génération ou client-
serveur distribué sépare l'application en 3 niveaux de services distincts, conformes au principe
précédent :
• Premier niveau : l'affichage et les traitements locaux (contrôles de saisie, mise en forme de
données...) sont pris en charge par le poste client,
60
• Deuxième niveau : les traitements applicatifs globaux sont pris en charge par le service
applicatif,
• Troisième niveau : les services de base de données sont pris en charge par un SGBD
61
Deuxième génération : le «client-serveur» coopératif L'architecture 3 tiers
Tous ces niveaux étant indépendants, ils peuvent être implantés sur des machines différentes, de ce
fait :
• Le poste client ne supporte plus l'ensemble des traitements, il est moins sollicité et peut être moins
évolué, donc moins coûteux,
• Les ressources présentes sur le réseau sont mieux exploitées, puisque les traitements applicatifs
peuvent être partagés ou regroupés (le serveur d'application peut s'exécuter sur la même machine
que le SGBD),
• La fiabilité et les performances de certains traitements se trouvent améliorées par leur centralisation,
• Il est relativement simple de faire face à une forte montée en charge, en renforçant le service
applicatif.
62
Deuxième génération : le «client-serveur» coopératif L'architecture 3 tiers
Dans l’architecture trois tiers, le poste client est communément appelé client léger ou Thim Client,
par opposition au client lourd des architectures deux tiers. Il ne prend en charge que la présentation
de l’application avec, éventuellement, une partie de logique applicative permettant une vérification
immédiate de la mise en forme des données.
63
Troisième génération : le «client-serveur» réparti L'architecture n-tiers
L'architecture n-tiers a été pensée pour pallier aux limitations des architectures trois tiers et concevoir
des applications puissantes et simples à maintenir. Ce type d'architecture permet de distribuer plus
librement la logique applicative, ce qui facilite la répartition de la charge entre tous les niveaux.
Cette évolution des architectures trois tiers met en oeuvre une approche objet pour offrir une plus grande
souplesse d'implémentation et faciliter la réutilisation des développements.
64
Troisième génération : le «client-serveur» réparti L'architecture n-tiers
• Elle permet l'utilisation d'interfaces utilisateurs riches ;
65
Troisième génération : le «client-serveur» réparti L'architecture n-tiers
L'appellation « n-tiers » pourrait faire penser que cette architecture met en oeuvre un nombre
indéterminé de niveaux de service, alors que ces derniers sont au maximum trois (les trois niveaux
d'une application informatique). En fait, l'architecture n-tiers qualifie la distribution d'application entre
de multiples services et non la multiplication des niveaux de service.
Cette distribution est facilitée par l'utilisation de composants « métier », spécialisés et indépendants,
introduits par les concepts orientés objets (langages de programmation et middleware). Elle permet
de tirer pleinement partie de la notion de composants métiers réutilisables.
66
Troisième génération : le «client-serveur» réparti L'architecture n-tiers
Ces composants rendent un service si possible générique et clairement identifié. Ils sont capables
de communiquer entre eux et peuvent donc coopérer en étant implantés sur des machines
distinctes.
La distribution des services applicatifs facilite aussi l'intégration de traitements existants dans les
nouvelles applications. On peut ainsi envisager de connecter un programme de prise de commande
existant sur le site central de l'entreprise à une application distribuée en utilisant un middleware
adapté.
67
Troisième génération : le «client-serveur» réparti L'architecture n-tiers
Ces nouveaux concepts sont basés sur la programmation objet ainsi que sur des communications
standards entre application. Ainsi est né le concept de Middleware objet.
68
On appelle middleware (ou logiciel médiateur en français), littéralement ‘élément
du milieu’, l'ensemble des couches réseau et services logiciel qui permettent le
dialogue entre
69
L'objectif principal du middleware est d'unifier, pour les applications, l'accès et la
70
Conversion : Service utilisé pour la communication entre machines mettant en oeuvre
des formats de données différents
Adressage : Permet d'identifier la machine serveur sur laquelle est localisé le service
Communication : Permet la transmission des messages entre les deux systèmes sans
72
SQL*Net : Interface propriétaire permettant de faire dialoguer une application cliente avec
une base de données Oracle. Ce dialogue peut aussi bien être le passage de requêtes
SQL que l'appel de procédures stockées.
ODBC : (Object Data Base Connexion) Interface standardisée isolant le client du serveur
de données. C'est l'implémentation par Microsoft d'un standard défini par le SQL Access
Group. Elle se compose d'un gestionnaire de driver standardisé, d'une API s'interfaçant
avec l'application cliente (sous Ms Windows) et d'un driver correspondant au SGBD utilisé.
73
Le choix d'un middleware est déterminant en matière d'architecture, il joue un
grand rôle dans la structuration du système d'information.
74
Pour permettre la répartition d'objets entre machines et l'intégration des systèmes non objets,
il doit être possible d'instaurer une communication entre tous ces éléments. Ainsi est né le
concept de middleware objet qui a donné naissance à plusieurs spécifications, dont
l'architecture CORBA 5common Object Request Broker Architecture) préconisée par l'OMG
(Object Management Group) et DCOM développée par Microsoft.
La communication entre objets gomme la différence entre ce qui est local ou distant. Les
appels de méthodes d'objet à objet sont traités par un mécanisme se chargeant d'aiguiller les
messages vers les objets (locaux ou distants). 75
Dans le cadre d'un Intranet ou d'un Extranet, le poste client prend la forme d'un simple
navigateur Web, le service applicatif est assuré par un serveur HTTP et la communication
avec le SGBD met en oeuvre les mécanismes bien connus des applications client-serveur de
la première génération.
Ce type d'architecture fait une distinction nette entre deux tronçons de communic
• le premier tronçon relie le poste client au serveur Web pour permettre l'interaction avec
l'utilisateur et la visualisation des résultats. Ce premier tronçon n'est composé que de
standards (principalement HTML et HTTP) et est basé sur un simple navigateur Web. Le
serveur Web tient le rôle de frontal HTTP,
76
Répartition des tâches
• le deuxième tronçon permet la collecte des données. Les mécanismes utilisés sont
comparables à ceux mis en oeuvre pour une application deux tiers. Ils ne franchissent
jamais la façade HTTP et, de ce fait, peuvent évoluer sans influence sur la
77
Ce type d'architecture est définie par certain comme le client-serveur universel dans la mesure où il
s'appuie sur des standards existant sur toutes les plate-formes.
De plus, dans la même approche, on peut dire au vu de l'explosion des architectures Internet que le
navigateur Web est le client universel, puisque de plus en plus utilisé pour tout type de
développement, ou d'interface.
L'avantage de ce client universel est qu'il est aujourd'hui présent sur tout type de
machine :
Postes de bureau
Portables
Pockets PC
Téléphones portables
De plus, tous les constructeurs de produits embarqués embarquent dans leurs applicatifs un
78
serveur http qui permet d'administrer facilement à distance leurs machines.
Pour revenir aux architectures 3 tiers de l'Internet, cette solution peut s'appuyer sur
toutes les nouvelles technologies, et permet de répartir en fonction des besoins les
traitements coté client ou coté serveur.
79
Les technologies côté client font appel à :
• du javascript
Côté serveurs, toutes les techniques permettant de faire du Web dynamique à savoir :
• du côte PHP
80
Le futur appelé par certains Web 2.0 s’oriente néanmois vers des clients plus riche
afin de pouvoir bénéficier d’interfaces plus conviviaux, tout en gardant le côté
universel du poste clients. Un exemple en est donnée aujourd’hui à travers
certains de messgerie (Yahoo, MSN)
81