From 34833d8186ec14b6c0734cc701c4509172a86987 Mon Sep 17 00:00:00 2001 From: William Petit Date: Sat, 13 Jan 2018 15:28:05 +0100 Subject: [PATCH] CESI: Architecture N Tiers --- .../img/application_distribue.png | Bin 0 -> 22960 bytes .../presentation/img/clientserveur.png | Bin 0 -> 20824 bytes .../img/communication_client_serveur.png | Bin 0 -> 36127 bytes .../img/modle_gartner_2_tiers.png | Bin 0 -> 21517 bytes .../presentation/slides.md | 171 ++++++++++++++++++ .../communication_client_serveur.msc | 22 +++ .../ressources/schemas_slides.epgz | Bin 0 -> 36339 bytes 7 files changed, 193 insertions(+) create mode 100644 cesi/architecture_n_tiers/presentation/img/application_distribue.png create mode 100644 cesi/architecture_n_tiers/presentation/img/clientserveur.png create mode 100644 cesi/architecture_n_tiers/presentation/img/communication_client_serveur.png create mode 100644 cesi/architecture_n_tiers/presentation/img/modle_gartner_2_tiers.png create mode 100644 cesi/architecture_n_tiers/presentation/slides.md create mode 100644 cesi/architecture_n_tiers/ressources/communication_client_serveur.msc create mode 100644 cesi/architecture_n_tiers/ressources/schemas_slides.epgz diff --git a/cesi/architecture_n_tiers/presentation/img/application_distribue.png b/cesi/architecture_n_tiers/presentation/img/application_distribue.png new file mode 100644 index 0000000000000000000000000000000000000000..fffad5f6b5f44a2a6818dd9355d4566808fc4def GIT binary patch literal 22960 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 Y4qyD-hwr(7iJ9h+>Jycshvu*UA4Z7bS^xk5 literal 0 HcmV?d00001 diff --git a/cesi/architecture_n_tiers/presentation/img/clientserveur.png b/cesi/architecture_n_tiers/presentation/img/clientserveur.png new file mode 100644 index 0000000000000000000000000000000000000000..9d89285e5c65781f660af810a2e86d9fcb8d562c GIT binary patch literal 20824 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 GFXJDn=2eIQ literal 0 HcmV?d00001 diff --git a/cesi/architecture_n_tiers/presentation/img/communication_client_serveur.png b/cesi/architecture_n_tiers/presentation/img/communication_client_serveur.png new file mode 100644 index 0000000000000000000000000000000000000000..baa0ffaf77174a40263fde0e53739742ce7d6d2b GIT binary patch literal 36127 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 literal 0 HcmV?d00001 diff --git a/cesi/architecture_n_tiers/presentation/img/modle_gartner_2_tiers.png b/cesi/architecture_n_tiers/presentation/img/modle_gartner_2_tiers.png new file mode 100644 index 0000000000000000000000000000000000000000..c73d336ca5e5b140bb35d9375ff16e62e77ceaca GIT binary patch literal 21517 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 S$+lk5It5QxKbLh*2~7ZbwwO5p literal 0 HcmV?d00001 diff --git a/cesi/architecture_n_tiers/presentation/slides.md b/cesi/architecture_n_tiers/presentation/slides.md new file mode 100644 index 0000000..e2d5873 --- /dev/null +++ b/cesi/architecture_n_tiers/presentation/slides.md @@ -0,0 +1,171 @@ + + +# Architectures N Tiers +## William Petit - S.C.O.P. Cadoles + +--- + +## Les architectures distribuées (1) + +### Qu'est ce qu'une application distribuée ? + +![center 75%](./img/application_distribue.png) + +> 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 + +![center 100%](./img/clientserveur.png) + +--- + +## 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](https://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats) + +--- + +## Communication client/serveur (2) + +### Modes de communication + +![center](./img/communication_client_serveur.png?3) + +--- + +## 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 + +--- + +## Répartition des traitements (2) + +### Classification des architectures 2 tiers (Gartner Group) + +![center](./img/modle_gartner_2_tiers.png) + +--- + +## Exercice (1) + +Implémenter en NodeJS une application distribuée permettant d'effectuer les opérations arithmétiques simples (addition, soustraction, multiplication et division). Cette application devra répondre aux contraintes suivantes: + +- Elle devra être suivre une architecture 2 tiers de classe 4. +- Le client devra utiliser le transport TCP/IP pour communiquer avec le serveur. +- Elle n'aura pas à supporter de multiples clients. +- Toutes les implémentations de la classe devront être compatibles, i.e. vous devez vous mettre d'accord sur un protocole de sérialisation/désérialisation des messages commun. + +--- + +## Exercice (2) + + +--- + +## L'architecture 3 tiers + +### Principes +### Modèle transactionnel +### Sécurité +### Exercice : Implémentation de couche de présentation (HTML/CSS et ligne de commande) multiple pour une même couche logique et de données + +--- + +## Les architectures n-tiers + +### Principes +### Approche objet et notion de responsabilité +### Communication inter-composants +### Exercice : Présentation de l'architecture orientée « micro-services » et implémentation d'une application basée sur ce patron de conception. + +--- + +# Licence + +## CC BY-NC-SA 3.0 FR + +[Creative Commons - Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France](https://creativecommons.org/licenses/by-nc-sa/3.0/fr/) \ No newline at end of file diff --git a/cesi/architecture_n_tiers/ressources/communication_client_serveur.msc b/cesi/architecture_n_tiers/ressources/communication_client_serveur.msc new file mode 100644 index 0000000..accb707 --- /dev/null +++ b/cesi/architecture_n_tiers/ressources/communication_client_serveur.msc @@ -0,0 +1,22 @@ +msc { + + wordwraparcs=true, hscale=2; + + Client,Serveur; + + --- [ label = "Mode synchrone (bloquant)" ]; + + Client->Serveur [ label = "Requête" ]; + Serveur->Serveur [ label = "Traitement de la requête" ]; + Serveur->Client [ label = "Réponse" ]; + + --- [ label = "Mode asynchrone (non bloquant)" ]; + + Client->Serveur [ label = "Requête" ]; + Serveur->Serveur [ label = "Création de la tâche #N" ]; + Serveur->Client [ label = "Réponse " ]; + ... [ label = "" ]; + Serveur->Serveur [ label = "Exécution de la tâche #N" ]; + Serveur->Client [ label = "Résultat " ]; + +} diff --git a/cesi/architecture_n_tiers/ressources/schemas_slides.epgz b/cesi/architecture_n_tiers/ressources/schemas_slides.epgz new file mode 100644 index 0000000000000000000000000000000000000000..907129504cdb6d9999d90b4bbf12086c46a26a55 GIT binary patch literal 36339 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 literal 0 HcmV?d00001