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.
Newsletter d'études
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.
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.
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.
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.
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.
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 :
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.
En développement Web, les niveaux portent des noms différents mais remplissent des fonctions similaires :
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.
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.
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.
Service entièrement géré et à locataire unique pour le développement et la livraison d’applications Java.
Utilisez les logiciels et outils DevOps pour créer, déployer et gérer des applications cloud natives sur de nombreux appareils et environnements.
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ù.