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 0000000..fffad5f
Binary files /dev/null and b/cesi/architecture_n_tiers/presentation/img/application_distribue.png differ
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 0000000..9d89285
Binary files /dev/null and b/cesi/architecture_n_tiers/presentation/img/clientserveur.png differ
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 0000000..baa0ffa
Binary files /dev/null and b/cesi/architecture_n_tiers/presentation/img/communication_client_serveur.png differ
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 0000000..c73d336
Binary files /dev/null and b/cesi/architecture_n_tiers/presentation/img/modle_gartner_2_tiers.png differ
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 0000000..9071295
Binary files /dev/null and b/cesi/architecture_n_tiers/ressources/schemas_slides.epgz differ