Qu’est-ce qu’une architecture à trois niveaux ?

Vue aérienne de Tokyo au crépuscule

Qu’est-ce qu’une architecture à trois niveaux ?

Une architecture à trois niveaux est une architecture logicielle bien établie qui organise les applications en trois niveaux informatiques logiques et physiques : le niveau de présentation, ou interface utilisateur ; le niveau d’application, où les données sont traitées ; et le niveau d’accès au données, où les données d’application sont stockées et gérées.

Le principal avantage de l’architecture à trois niveaux est que chaque niveau fonctionne sur sa propre infrastructure et que les trois peuvent donc être développés simultanément par des équipes de développement différentes. Et il peut être mis à jour ou dimensionné selon les besoins, sans impacter les autres niveaux.

Pendant des décennies, l’architecture à trois niveaux était privilégiée pour les applications client-serveur. Aujourd’hui, la plupart des applications à trois niveaux sont concernées par une modernisation qui utilise des technologies cloud natives comme les conteneurs et les microservices, ainsi que par la migration vers le cloud.

Restez au courant des dernières avancées technologiques

Découvrez les dernières études en matière d’IA, d’informatique quantique, de cloud hybride et plus encore, rédigées par les experts IBM avec notre newsletter mensuelle « Future Forward ». Consultez la Déclaration de confidentialité d’IBM.

Merci ! Vous êtes abonné(e).

Vous recevrez votre abonnement en anglais. Vous trouverez un lien de désabonnement dans chaque newsletter. Vous pouvez gérer vos abonnements ou vous désabonner ici. Consultez la Déclaration de confidentialité d’IBM pour plus d’informations.

Les trois niveaux en détail

Niveau de présentation

Le niveau de présentation constitue l’interface utilisateur et la couche de communication de l’application, où l’utilisateur final interagit avec cette dernière. Son objectif principal est d’afficher des informations et de collecter des informations auprès de l’utilisateur. Ce niveau supérieur peut fonctionner sur un navigateur Web, en tant qu’application de bureau ou sur une interface utilisateur graphique (GUI), par exemple. Les niveaux de présentation Web sont développés à l’aide de HTML, CSS et JavaScript. Les applications de bureau peuvent être écrites dans différents langages en fonction de la plateforme.

Niveau d’application

Le niveau applicatif, également appelé niveau logique ou niveau intermédiaire, est le cœur de l’application. Ici, les informations collectées dans le niveau de présentation sont traitées, parfois en lien avec d’autres informations du niveau de données, selon une logique métier, un ensemble spécifique de règles métier. La couche applicative peut également ajouter, supprimer ou modifier des données dans la couche de données.

La couche applicative est généralement développée en Python, Java, Perl, PHP ou Ruby, et communique avec la couche de données grâce aux appels d’API.

Niveau d’accès aux données

Le niveau de données, parfois appelé niveau de base de données, niveau d’accès aux données ou back-end, est l’endroit où les informations traitées par l’application sont stockées et gérées. Il peut s’agir d’un système de gestion de base de données relationnelle tel que PostgreSQL, MySQL, MariaDB, Oracle, Db2, Informix ou Microsoft SQL Server, ou d’un serveur de base de données NoSQL comme Cassandra, CouchDB ou MongoDB.

Dans une application à trois niveaux, toute communication passe par le niveau applicatif. Le niveau de présentation et le niveau de données ne peuvent pas communiquer directement entre eux.

Développement d’applications

Rejoignez-nous : développement d’applications d’entreprise dans le cloud

Dans cette vidéo, Dr Peter Haumer explique à quoi ressemble actuellement le développement d’applications d’entreprise modernes dans le cloud hybride en présentant divers composants et différentes pratiques, notamment IBM Z Open Editor, IBM Wazi et Zowe. 

Avantages de l’architecture à trois niveaux

Là encore, le principal avantage de l’architecture à trois niveaux réside dans sa séparation logique et physique des fonctionnalités. Chaque niveau peut fonctionner sur un système d’exploitation et une plateforme de serveur distincts, par exemple un serveur Web, un serveur d’application ou un serveur de base de données, qui répondent le mieux à ses exigences fonctionnelles. Et chaque niveau fonctionne sur au moins un serveur dédié ou un serveur virtuel, ce qui fait que les services de chaque niveau peuvent être personnalisés et optimisés sans affecter les autres niveaux.

Les autres avantages (par rapport à une architecture à un ou deux niveaux) sont les suivants :

  • Développement plus rapide : comme chaque niveau peut être développé simultanément par des équipes différentes, l’entreprise peut mettre l’application sur le marché plus rapidement. Et les programmeurs peuvent utiliser les langages et les outils les plus récents et les plus performants pour chaque niveau.

  • Évolutivité améliorée : chaque niveau peut être mis à l’échelle indépendamment des autres, selon les besoins.

  • Fiabilité améliorée : une panne à l’un des niveaux est moins susceptible d’impacter la disponibilité et la performance des autres.

  • Sécurité renforcée : étant donné que la couche de présentation et la couche de données ne peuvent pas communiquer directement, un niveau applicatif bien conçu peut faire office de pare-feu interne, empêchant les injections SQL et autres exploits malveillants.

Niveaux ou couches

Dans les discussions sur l’architecture à trois niveaux, le terme « couche » est souvent utilisé à tort de manière interchangeable avec « niveau », comme dans « couche de présentation » ou « couche de logique métier ».

Ce n’est pas la même chose. Une « couche » fait référence à une division fonctionnelle du logiciel, tandis qu’un « niveau » fait référence à une division fonctionnelle du logiciel qui s’exécute sur une infrastructure distincte des autres divisions. L’application Contacts de votre téléphone, par exemple, est une application à trois couches, mais à un seul niveau, car les trois couches s’exécutent sur votre téléphone.

La différence est importante car les couches ne peuvent pas offrir les mêmes avantages que les niveaux.

Application à trois niveaux dans le développement Web

En développement Web, les niveaux portent des noms différents mais remplissent des fonctions similaires :

  • Le serveur Web constitue le niveau de présentation et fournit l’interface utilisateur. Il s’agit généralement d’une page ou d’un site Web, comme un site e-commerce où l’utilisateur ajoute des produits à son panier, renseigne ses informations de paiement ou crée un compte. Le contenu, statique ou dynamique, est développé avec HTML, CSS et JavaScript.

  • Le serveur d’application correspond au niveau intermédiaire, qui héberge la logique métier utilisée pour traiter les entrées des utilisateurs. Pour poursuivre l’exemple du e-commerce, il s’agit du niveau qui interroge la base de données des stocks pour renvoyer la disponibilité des produits ou ajouter des détails au profil d’un client. Cette couche est souvent développée à l’aide de Python, Ruby ou PHP et exécute un cadre tel que Django, Rails, Symphony ou ASP.NET.

  • Le serveur de base de données est la couche de données ou backend d’une application Web. Il fonctionne sur un logiciel de gestion de base de données, tel que MySQL, Oracle, DB2 ou PostgreSQL.

Autres architectures multi-niveaux

Si l’architecture à trois niveaux est sans conteste l’architecture d’application multi-niveaux la plus adoptée, il en existe d’autres, que vous rencontrerez peut-être dans le cadre de votre travail ou de vos recherches.

Architecture à deux niveaux

Une architecture à deux niveaux est une architecture client-serveur d’origine, composée d’un niveau de présentation et d’un niveau d’accès aux données ; la logique métier réside dans le niveau de présentation, le niveau d’accès aux données ou les deux. Dans une architecture à deux niveaux, le niveau de présentation (et donc l’utilisateur final) a un accès direct au niveau d’accès aux données, et la logique métier est souvent limitée. Une application simple de gestion des contacts, dans laquelle les utilisateurs peuvent saisir et récupérer des données de contact, est un exemple d’application à deux niveaux.

Architecture à N niveaux

Une architecture à N niveaux, également appelée architecture multiniveau, désigne toute architecture d’application comportant plus d’un niveau. Cependant, les applications comportant plus de trois niveaux sont rares, car les niveaux supplémentaires offrent peu d’avantages et peuvent ralentir l’application, la rendre plus difficile à gérer et plus coûteuse à exploiter. Par conséquent, les termes « architecture à N niveaux » et « architecture multiniveau » sont généralement synonymes d’architecture à trois niveaux.

Solutions connexes
IBM Enterprise Application Service for Java

Service entièrement géré et à locataire unique pour le développement et la livraison d’applications Java.

Découvrir les applications Java
Solutions DevOps

Utilisez les logiciels et outils DevOps pour créer, déployer et gérer des applications cloud natives sur de nombreux appareils et environnements.

Découvrir les solutions DevOps
Services de développement d’applications d’entreprise

Le développement d’applications cloud implique de les créer une fois, de les itérer rapidement et de les déployer n’importe où.

Services de développement d’applications
Passez à l’étape suivante

Les services de conseil en développement d’applications IBM Cloud proposent des conseils d’expert et des solutions innovantes pour rationaliser votre stratégie cloud. Faites équipe avec les experts en cloud et développement d’IBM pour moderniser, faire évoluer et accélérer vos applications, et obtenez des résultats transformateurs pour votre entreprise.

Découvrir les services de développement d’applications Commencez à créer sur IBM Cloud, gratuitement