4.5 KiB
Architectures N Tiers
William Petit - S.C.O.P. Cadoles
Les architectures distribuées (1)
Qu'est ce qu'une application distribuée ?
Une application distribuée est une application informatique constituée de composants indépendants (i.e. processus distincts et sans partage de mémoire) communiquant via des messages.
Les architectures distribuées (2)
Exemples d'applications distribuées
- Sites/applications Web
- Jeux en ligne multijoueurs
- Gestionnaire de version de code source (SVN, Git, etc...)
- Serveurs de courriel
Les différents modèles d'architectures distribuées
Modèle 2 tiers (ou client/serveur)
Modèle 3 tiers
Modèle N tiers
Modèle Pair à pair
Le modèle 2 tiers (ou "client/serveur")
Définitions
Les différentes topologies
Communication client/serveur
Répartition des traitements
Exercice : Implémentation d'une calculatrice par TCP/IP
La couche intergiciel
Exercice : Utilisation d'un couche JSON-RPC2 pour la calculatrice TCP/IP
Définitions
- Client Processus demandant l’exécution d’une opération à un autre processus par envoi de message contenant le descriptif de l’opération à exécuter et attendant la réponse de cette opération par un message en retour.
- Serveur processus accomplissant une opération sur demande d’un client, et lui transmettant le résultat.
- Requête message transmis par un client à un serveur décrivant l’opération à exécuter pour le compte du client.
- Réponse message transmis par un serveur à un client suite à l’exécution d’une opération, contenant le résultat de l’opération.
Les différentes topologies
Communication client/serveur (3)
Protocole de communication
Une application distribuée étant fondamentalement un environnement hétérogène (composants indépendants). Il est donc nécessaire de définir un "langage commun" (ou "protocole") pour que les composants puissent communiquer entre eux.
La spécification de régles de sérialisation et désérialisation des structures de données échangées (messages) est souvent à la base de la définition des protocoles d'échange.
Exemples de formats de sérialisation sur Wikipédia
Communication client/serveur (2)
Modes de communication
Communication client/serveur (3)
Différences entre les deux modes
Synchrone
- Les messages sont émis aussitôt
- Bloquant
- Pas de file d'attente de traitement
Asynchrone
- Nécessite une file d'attente de traitement
- Non bloquant
- Favorise le multitâche/la montée en charge
Répartition des traitements (1)
Couches de traitement
La conception d'une application distribuée nécessite d'établir une répartition de la responsabilité des traitements sur les différents composants. On peut catégoriser ces traitements par "couche":
- Couche de présentation rendu des interfaces textuelle ou graphique destinée à l'utilisateur de l'application, gestion des interactions, validation des entrées...
- Couche métier/logique traitement appliqués sur les modèles de données de l'application, validation des données...
- Couche de données Persistance et accès aux données de l'application