Introduction

Dans ce site nous allons présenter les architectures 3-tier. On écrit bien tier et non tiers. En effet "n tier" est un terme anglais qui ne doit pas être confondu avec le mot français "tiers". Dans toute la présentation suivante tier signifie niveau logique et non 3.


La multiplication et le développement des réseaux nationaux et planétaires ont profondément modifié les méthodes de programmation. Les architectures trois tier ( et n-tier ) sont la solution pour développer des applications permettant une grande flexibilité dans les relations entre l'entreprise, ses clients et ses fournisseurs.

Ce site internet a pour objectif de faire un état des lieux des technologies et des méthodes utilisées pour créer ce type d'application. Nous étudions tout d'abord les l'évolution historique des applications clients serveurs pour arriver aux architectures n-tier. Puis nous étudions les différents outils mis en oeuvre dans ce type d'application. Nous utilisons, de plus, tout au long de notre démonstration l'exemple d'un moteur de recherche pour préciser les différents points.


Les débuts du client serveur

Durant les années 80 de nombreuses applications de gestion sont proposés aux entreprises. Ces applications sont exclusivement propriétaire et les infrastructure les supportants sont celles des constructeurs informatiques qui dominent le marché( IBM, Bull ... ). Souvent une station n'est de travail n'est uilisé que pour une application ce qui entraine un multiplication des stations pour les utilisateurs. Les protocoles de réseaux reliant les postes de travail aux calculateurs sont ceux des différents constructeurs ( comme SNA pour IBM ).

Cette multiplication d'application entraine une donc une mutliplication des terminaux pour les utilisateurs. L'apparition des PCs a permit de résoudre en partie ce problème. Des emulateurs sont installés sur ces PCs grace à eux le nombre de station de travail est considérablement réduit. Au fur et à mesure le protocole IP s'impose pour remplacer les différents protocoles constructeurs.


L'architecture à deux niveaux

Les différentes applications dont nous avons parlé précedement étaient basée sur une architecture à deux niveaux. Une partie des traitements était effectués sur le poste client et la seconde sur le calculateur.

On peut séparer ce type d'application en deux types:

Dans les applications orienté clients, la plupart des traitements sont effectués sur le poste du client qui possède une Interface Homme Machine dite "lourde". Dans celles orientés serveurs c'est le serveur qui effectu tous les traitements. Le client lui possède une IHM légère.

Qu'elle soit légère ou lourde l'IHM est propriétaire est nécéssite donc une instalation sur le poste client. Ceci rend l'installation d'une telle application trés lourde si le nombre de client est important. De plus ont peu trés difficilement réutiliser ce type d'application car l'IHM est dédié et composée d'un seul bloc. Enfin les performances réseaux ne sont pas trés elevés car de nombreuses requêtes doivent transiter par le réseau.

On peut représenter cette architecture par le schéma ci-dessous.

Architecture 2 tier

Pour pallier aux différents inconvénient que nous avon étudié, on a décidé de séparer le traitement applicatif à la fois des données et de l'interface, c'est ce qui a amené l'architecture 3-tier.


L'architecture à n-niveaux

Dans une telle architecture, on a séparé la partie applicative ou traitement de l'IHM et des données. On obtient donc les trois couches suivantes:

La représentation d'une architecture 3-tier est la suivante.

Architecture 3 tier ou à 3 niveaux

Chacune de ces trois couches ont un rôle spécifique.

La couche présentation est chargé du traitement de l'interaction avec l'utilisateur. C'est un rôle d'affichage et d'interaction.

La couche application effectue les traitements applicatifs. Elle effectue de plus le tampon entre la présentation et les données. Elle effectue aussi les rêgles de gestion de l'application

La partie donnée stocke les données pérennes de l'entreprise ou de l'application.

Cette séparation en trois couche, simplifie les procédures d'installations de logiciel, le partage d'information entre applications et enfin la réutilisation de composant.

On parle d'architecture 3 tier mais aussi d'architecture n tier. En effet dans la plupart des applications le niveau intermediaire est une collection de composant qui sont utilisés dans de nombreux traitements transactionnels. Ces composants peuvent être situé sur un ou plusieurs serveurs physique. De plus chacun de ces composants effectue une petite tache et c'est pourquoi on peut séparer cette partie intermediare en n partie d'où le terme architecture n-tier.

Architecture n-tier

Le schéma ci-dessous présente de façon simplifier les différents niveaux d'une architecture logique "3-tier.


Comparaison des architectures 2 et 3 tier

Le tableau ci-dessous présente les différences qu'apportent les architectures 3-tier aux anciennes architectures 2-tier.

  2 tier 3 et n tier
Administration du système Complexe
(la couche application est physiquement répartie sur plusieurs postes clients)
Moins complexe
(les applications peuvent être gérées centralement sur le serveur)
Sécurité Faible
(sécurité au niveau des données)
Elevée
(raffinée au niveau des services ou des méthodes)
Encapsulation
des données
Faible
(les tables de données sont directement accessibles)
Elevée
(le client fait appel à des services ou méthodes)
Performance Faible
(plusieurs requêtes SQL sont transmises sur le réseaux, les données sélectionnées doivent être acheminées vers le client pour analyse)
Bonne
(seulement les ap
pels de services et les réponses sont mis sur le réseau)
Extensibilité Faible
(gestion limitée des liens réseaux avec le client)
Excellente
(possibilité de répartir dynamiquement la charge sur plusieurs serveurs)
Réutilisation Faible
(application monolithique sur le client)
Excellente
(réutilisation des services et des objets)
Facilité de
développement
Elevée En progression
(des outils intégrés pour développer la partie du client et du serveur)
Lien
Serveur-serveur
Non Oui
(via le middleware Serveur/Serveur)
Intégration des
systèmes déjà
en place
Non Oui
(via des passerelles encapsulées par les services ou objets)
Soutien Internet Faible
(les limitations de la bande passante pénalisent le
téléchargement d'applications de type "fat-client")
Excellente
(les applications de type "thin-client" sont facilement téléchargeable et les appels aux services repartissent la charge sur un ou plusieurs serveurs)
Sources de données
hétérogènes
Non Oui
(les applications 3-tier peuvent utiliser plusieurs bases de données dans la même transaction)
Choix de communications
de type "riche"
Non
(synchrone et RPC)
Oui
(gestion asynchrone de messages , files de livraison, publication et abonnement, "broadcast")
Flexibilité d'architecture
matériel
Limitée Excellente
(possibilité de faire résider les couches 2 et 3 sur une ou plusieurs machines)
Relève en cas de pannes Faible Excellente
(possibilité d'avoir la couche du centre "middle-tier" sur plusieurs serveurs)

On peut constater que l'utilisation d'une architecture 3-tier ou n-tier apportent des correctifs a une grande partie des problèmes des architectures 2-tier.