Architecture à trois niveaux

menu icon

Architecture à trois niveaux

L'architecture à trois niveaux, qui sépare les applications en trois niveaux de calcul logiques et physiques, est l'architecture logicielle prédominante pour les applications client-serveur traditionnelles.

Qu'est-ce que l'architecture à trois niveaux ?

L'architecture à trois niveaux est une architecture d'application logicielle bien établie qui organise les applications en trois niveaux de calcul logiques et physiques : le niveau Présentation, ou interface utilisateur, le niveau Application, où les données sont traitées et le niveau Données, où les données associées à l'application sont stockées et gérées.

L'architecture à trois niveaux offre un avantage essentiel du fait que, comme chaque niveau fonctionne sur sa propre infrastructure, chaque niveau peut être développé simultanément par une équipe de développement distincte, et peut être mis à jour ou mis à l'échelle selon les besoins sans avoir d'incidence sur les autres niveaux.

Pendant des décennies, l'architecture à trois niveaux a été l'architecture dominante pour les applications client-serveur. Aujourd'hui, la plupart des applications à trois niveaux sont destinées à être modernisées, en utilisant des technologies natives cloud, telles que les conteneurs et les microservices, et à migrer vers le cloud.

Les trois niveaux en détail

Niveau Présentation

Le niveau Présentation est l'interface utilisateur et la couche de communication de l'application, où l'utilisateur final interagit avec l'application. Sa principale fonction est d'afficher des informations à l'attention de l'utilisateur et d'en collecter de ce dernier. Ce niveau de niveau supérieur peut s'exécuter sur un navigateur Web, en tant qu'application pour ordinateur de bureau, ou interface graphique utilisateur, par exemple. Les niveaux Présentation Web sont généralement développés à l'aide de HTML, CSS et JavaScript. Les applications pour ordinateur de bureau peuvent être écrites dans divers langages selon la plateforme.

Niveau Application

Le niveau Application, également appelé niveau logique ou niveau intermédiaire, est le cœur de l'application. Dans ce niveau, les informations collectées dans le niveau Présentation sont traitées, parfois par rapport à d'autres informations, dans le niveau Données, en utilisant la logique applicative, un ensemble spécifique de règles métier. Le niveau Application peut également ajouter, supprimer ou modifier des données dans le niveau Données.

Le niveau Application est généralement développé à l'aide de Python, Java, Perl, PHP ou Ruby, et communique avec le niveau Données à l'aide d'appels d'API

Niveau Données

Le niveau Données, parfois appelé niveau Base de données, niveau Accès aux données ou Système dorsal, 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 tel que Cassandra, CouchDB ou MongoDB

Dans une application à trois niveaux, toutes les communications passent par le niveau Application. Le niveau de Présentation et le niveau de Données ne peuvent pas communiquer directement entre eux.

Niveau et couche

Dans les discussions sur l'architecture à trois niveaux, le terme couche  est souvent utilisé indifféremment, à tort,  à la place de niveau, comme c'est le cas dans « couche de présentation » ou « couche logique ». 

Ce n'est la même chose. Une « couche » fait référence à une division fonctionnelle du logiciel, mais un « niveau » se rapporte à une division fonctionnelle du logiciel qui fonctionne sur une infrastructure distincte des autres divisions. L'application Contacts sur votre téléphone, par exemple, est une application à troiscouche, mais une application à 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.

Avantages de l'architecture à trois niveaux

Encore une fois, le principal avantage de l'architecture à trois niveaux est sa séparation logique et physique des fonctionnalités. Chaque niveau peut s'exécuter sur un système d'exploitation et une plateforme serveur distincts, par exemple, un serveur Web, un serveur d'applications, un serveur de base de données, qui correspondent le mieux à ses exigences fonctionnelles. Et chaque niveau fonctionne sur au moins un serveur matériel ou virtuel dédié, de sorte que les services de chaque niveau peuvent être personnalisés et optimisés sans impact sur les autres niveaux. 

Autres avantages (par rapport à l'architecture à un ou deux niveaux)   :

  • Développement plus rapide : Comme chaque niveau peut être développé simultanément par des équipes différentes, une organisation peut mettre l'application sur le marché plus rapidement, et les programmeurs peuvent utiliser les meilleurs langages et outils les plus récents pour chaque niveau.
  • Évolutivité accrue : Chaque niveau peut être étendu indépendamment des autres, selon les besoins.
  • Fiabilité accrue : Une indisponibilité dans un niveau est moins susceptible d'avoir un impact sur la disponibilité ou les performances des autres niveaux.
  • Sécurité accrue : Comme les niveaux Présentation et Données ne peuvent pas communiquer directement, un niveau Application bien conçu peut fonctionner comme une sorte de pare-feu interne, empêchant les injections SQL et d'autres exploits malveillants.

Application à trois niveaux dans le développement Web

Dans le développement Web, les niveaux s'appellent différemment mais exécutent des fonctions similaires :

  • Leserveur Web  est le niveau Présentation et fournit l'interface utilisateur. Il s'agit généralement d'une page Web ou d'un site Web, comme un site de commerce électronique, où l'utilisateur ajoute des produits au panier, ajoute des informations de paiement ou crée un compte. Le contenu peut être statique ou dynamique, et est généralement développé à l'aide de HTML, CSS et Javascript.
  • Leserveur d'applications correspond au niveau intermédiaire, hébergeant la logique applicative utilisée pour traiter les entrées utilisateur. Pour rester dans l'exemple du commerce électronique, il s'agit du niveau qui interroge la base de données des stocks pour connaître la disponibilité des produits, ou qui ajoute des informations au profil d'un client. Cette couche s'est souvent développée à l'aide de Python, Ruby ou PHP et exécute une structure telle que Django, Rails, Symphony ou ASP.NET, par exemple.
  • Le serveur de base de données  est le niveau Données ou le niveau dorsal d'une application Web. Il s'exécute sur des logiciels de gestion de base de données, tels que MySQL, Oracle, DB2 ou PostgreSQL, par exemple.

Autres architectures multiniveaux

Si l'architecture à trois niveaux est sans conteste l'architecture d'application multiniveau la plus largement adoptée, il en existe d'autres que vous pouvez rencontrer dans votre travail ou vos recherches.

Architecture à deux niveaux  

L'architecture à deux niveaux est l'architecture client-serveur d'originale, composée d'un niveau Présentation et d'un niveau Données, la logique applicative se trouvant dans le niveau Présentation, le niveau 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 Données, la logique applicative étant généralement limitée. Une simple application de gestion des contacts, où les utilisateurs peuvent saisir et récupérer des données de contact, est un exemple d'application à deux niveaux. 

Architecture N-tier

L'architecture N-tier, également appelée architecture multiniveau,  fait référence àunearchitecture d'application à plusieurs niveaux. Mais les applications comportant plus de trois couches sont rares, car les couches supplémentaires offrent peu d'avantages et peuvent rendre l'application plus lente, plus difficile à gérer et plus coûteuse à exploiter. Par conséquent, l'architecture n-tiers et l'architecture multiniveau sont généralement synonymes d'architecture à trois niveaux.

Architecture à trois niveaux et IBM Cloud

IBM Cloud propose des produits et des services pour vous aider à moderniser vos applications à trois niveaux existantes dans votre sur votre transition vers le cloud.

Faites le premier pas :

  • Que vous ayez besoin d'aide en matière de stratégie, de processus ou de fonctionnalités, ou souhaitiez bénéficier d'un service complet, découvrez comment IBM peut vous aider à moderniser vos applications.
  • Commencez à utiliser des middleware conteneurisés qui peuvent s'exécuter dans n'importe quel cloud, tous regroupés dans IBM Cloud Paks.
  • Migrez facilement les charges de travail VMWare existantes vers le cloud public à l'aide d'IBM Cloud for VMware Solutions.
  • Planiez et exécutez vos stratégies de modernisation des applications dans le cadre de votre transformation numérique continue en vous appuyant sur les services de modernisation des applications d'IBM.

Démarrez avec un compte IBM Cloud dès aujourd'hui.