Serveur d'impression

Architecture à plusieurs niveaux – Wikipedia – Serveur d’impression

Le 11 octobre 2019 - 10 minutes de lecture

En génie logiciel, architecture à plusieurs niveaux (souvent appelé narchitecture à plusieurs niveaux) ou architecture multicouche est une architecture client-serveur dans laquelle les fonctions de présentation, de traitement de l’application et de gestion des données sont physiquement séparées. L’utilisation la plus répandue de l’architecture à plusieurs niveaux est la architecture à trois niveaux.

NL'architecture des applications à plusieurs niveaux fournit un modèle permettant aux développeurs de créer des applications flexibles et réutilisables. En séparant une application en plusieurs niveaux, les développeurs ont la possibilité de modifier ou d’ajouter un calque spécifique au lieu de retravailler l’ensemble de l’application. Une architecture à trois niveaux est généralement composée d’un présentation niveau, un logique de domaine niveau, et un stockage de données étage.

Bien que les concepts de couche et de niveau soient souvent utilisés de manière interchangeable, un point de vue assez commun est qu'il existe effectivement une différence. Ce point de vue est qu'un couche est un mécanisme de structuration logique des éléments composant la solution logicielle, tandis que étage est un mécanisme de structuration physique de l’infrastructure système.[1][2] Par exemple, une solution à trois couches pourrait facilement être déployée sur un seul niveau, tel qu'un poste de travail personnel.[3]

Le modèle architectural "Layers" a été décrit dans diverses publications.[4]

Couches communes[[[[modifier]

Dans une architecture logique multicouche pour un système d’information de conception orientée objet, les quatre plus communes sont les plus courantes:

Le livre Conception axée sur le domaine décrit certaines utilisations courantes des quatre couches ci-dessus, bien que son objectif principal soit la couche de domaine.[8]

Si l'architecture de l'application ne fait pas de distinction explicite entre la couche de gestion et la couche de présentation (c'est-à-dire que la couche de présentation est considérée comme faisant partie de la couche de gestion), un modèle client-serveur traditionnel (à deux niveaux) a été mis en œuvre.[[[[citation requise]

La convention la plus courante est que la couche d'application (ou couche de service) est considérée comme une sous-couche de la couche de gestion, encapsulant généralement la définition de l'API recouvrant la fonctionnalité d'entreprise prise en charge. En fait, les couches d’application / métier peuvent être subdivisées afin de mettre en évidence des sous-couches supplémentaires à responsabilité distincte. Par exemple, si le modèle modèle – vue – présentateur est utilisé, la sous-couche de présentateur peut être utilisée comme couche supplémentaire entre la couche d'interface utilisateur et la couche métier / application (représentée par la sous-couche de modèle).[[[[citation requise]

Certains identifient également une couche distincte appelée couche d'infrastructure métier (BI), située entre la ou les couches métier et la ou les couches infrastructure. On l'appelle aussi parfois "couche métier de bas niveau" ou "couche de services métier". Cette couche est très générale et peut être utilisée dans plusieurs niveaux d’application (par exemple, un CurrencyConverter).[9]

La couche infrastructure peut être divisée en différents niveaux (services techniques de haut ou bas niveau).[9] Les développeurs se concentrent souvent sur les fonctionnalités de persistance (accès aux données) de la couche infrastructure et ne parlent donc que de la couche de persistance ou de la couche d'accès aux données (au lieu d'une couche d'infrastructure ou de services techniques). En d'autres termes, les autres types de services techniques ne sont pas toujours explicitement considérés comme faisant partie d'une couche particulière.[[[[citation requise]

Un calque est au-dessus d'un autre, car cela en dépend. Chaque couche peut exister sans les couches situées au-dessus et nécessite que les couches situées en dessous fonctionnent. Un autre point de vue courant est que les calques ne dépendent pas toujours strictement du calque adjacent situé en dessous. Par exemple, dans un système stratifié détendu (par opposition à un système stratifié strict), une couche peut également dépendre de toutes les couches situées en dessous.[4]

Architecture à trois niveaux[[[[modifier]

Vue d'ensemble d'une application à trois niveaux.

Une architecture à trois niveaux est un modèle d'architecture logicielle client-serveur dans lequel l'interface utilisateur (présentation), la logique de processus fonctionnelle ("règles métier"), le stockage de données informatiques et l'accès aux données sont développés et gérés en tant que modules indépendants, le plus souvent sur des plates-formes distinctes. .[10] Il a été développé par John J. Donovan d'Open Environment Corporation (OEC), une entreprise d'outils qu'il a fondée à Cambridge, dans le Massachusetts.

Outre les avantages habituels des logiciels modulaires dotés d'interfaces bien définies, l'architecture à trois niveaux est conçue pour permettre à chacun des trois niveaux d'être mis à niveau ou remplacé indépendamment en fonction de l'évolution des exigences ou de la technologie. Par exemple, un changement de système d'exploitation dans le niveau de présentation n'affecterait que le code de l'interface utilisateur.

En règle générale, l'interface utilisateur s'exécute sur un ordinateur de bureau ou un poste de travail et utilise une interface utilisateur graphique standard, une logique de processus fonctionnelle pouvant consister en un ou plusieurs modules distincts s'exécutant sur un poste de travail ou un serveur d'application, ainsi qu'un SGBDR sur un serveur de base de données ou un ordinateur central. contient la logique de stockage des données informatiques. Le niveau intermédiaire peut être lui-même à plusieurs niveaux (auquel cas l’architecture globale est appelée "n-tier architecture ").

Niveau présentation
C'est le niveau le plus élevé de l'application. Le niveau présentation affiche des informations relatives à des services tels que la navigation dans les produits, les achats et le contenu du panier. Il communique avec les autres niveaux en transmettant les résultats au niveau navigateur / client et à tous les autres niveaux du réseau. En termes simples, il s'agit d'une couche à laquelle les utilisateurs peuvent accéder directement (telle qu'une page Web ou l'interface graphique d'un système d'exploitation).
Niveau d'application (logique métier, niveau logique ou niveau intermédiaire)
Le niveau logique est extrait du niveau présentation et, en tant que couche propre, il contrôle les fonctionnalités d’une application en effectuant un traitement détaillé.
Niveau de données
Le niveau de données comprend les mécanismes de persistance des données (serveurs de base de données, partages de fichiers, etc.) et la couche d'accès aux données qui encapsule les mécanismes de persistance et expose les données. La couche d'accès aux données doit fournir une API au niveau application qui expose les méthodes de gestion des données stockées sans exposer ni créer de dépendances sur les mécanismes de stockage de données. Le fait d'éviter les dépendances sur les mécanismes de stockage permet d'effectuer des mises à jour ou des modifications sans que les clients du niveau applicatif ne soient affectés par la modification, voire au courant. Comme pour la séparation de tous les niveaux, la mise en œuvre entraîne des coûts, souvent liés aux performances, en contrepartie d'une évolutivité et d'une maintenabilité améliorées.

Utilisation du développement Web[[[[modifier]

Dans le domaine du développement Web, trois niveaux sont souvent utilisés pour faire référence à des sites Web, généralement des sites Web de commerce électronique, construits à l'aide de trois niveaux:

  1. Un serveur Web frontal servant du contenu statique et éventuellement du contenu dynamique mis en cache. Dans une application Web, le frontal est le contenu rendu par le navigateur. Le contenu peut être statique ou généré dynamiquement.
  2. Un serveur d'applications de niveau de génération et de traitement de contenu dynamique moyen (Symfony, Spring, ASP.NET, Django, Rails, Node.js, par exemple).
  3. Base de données ou magasin de données back-end, comprenant à la fois des ensembles de données et le logiciel du système de gestion de base de données qui gère les données et leur donne accès.

Autres considérations[[[[modifier]

Le transfert de données entre les niveaux fait partie de l'architecture. Les protocoles impliqués peuvent inclure un ou plusieurs des protocoles suivants: SNMP, CORBA, RMI Java, .NET Remoting, Windows Communication Foundation, sockets, UDP, services Web ou autres protocoles standard ou propriétaires. Souvent, un middleware est utilisé pour connecter les différents niveaux. Des niveaux distincts s'exécutent souvent (mais pas nécessairement) sur des serveurs physiques distincts et chaque niveau peut lui-même s'exécuter sur un cluster.

Traçabilité[[[[modifier]

La traçabilité de bout en bout des flux de données à travers nLes systèmes à plusieurs niveaux constituent une tâche difficile, qui devient d'autant plus importante que la complexité des systèmes augmente. Application Response Measurement définit des concepts et des API pour mesurer les performances et corréler les transactions entre les niveaux.
Généralement, le terme "niveaux" est utilisé pour décrire la distribution physique des composants d'un système sur des serveurs, ordinateurs ou réseaux distincts (nœuds de traitement). Une architecture à trois niveaux aura alors trois nœuds de traitement. Le terme "couches" désigne un groupement logique de composants qui peuvent ou non être physiquement situés sur un noeud de traitement.

Voir également[[[[modifier]

Références[[[[modifier]

  1. ^ Modèles de déploiement (architecture d'entreprise Microsoft, modèles et pratiques)
  2. ^ Fowler, Martin "Modèles d'architecture d'application d'entreprise" (2002). Addison Wesley.
  3. ^ Modèles de déploiement (architecture d'entreprise Microsoft, modèles et pratiques)
  4. ^ une b Buschmann, Frank; Meunier, Régine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael (1996-08). Architecture logicielle orientée modèle, volume 1, Un système de modèles. Wiley, août 1996. ISBN 978-0-471-95869-7. Extrait de http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471958697.html.
  5. ^ Couche de service de Martin Fowler
  6. ^ Martin Fowler explique que la couche de service est identique à la couche d'application
  7. ^ Comparaison / discussion de la couche de contrôleur GRASP et de la couche application / service
  8. ^ Domain-Driven Design, le livre pp. 68-74. Extrait de http://www.domaindrivendesign.org/books#DDD.
  9. ^ une b Application de UML et de patterns, 3ème édition, page 203 ISBN 0-13-148906-2
  10. ^ Eckerson, Wayne W. "Architecture client / serveur à trois niveaux: atteindre évolutivité, performance et efficacité dans les applications client-serveur." Open Information Systems 10, 1 (janvier 1995): 3 (20)

Liens externes[[[[modifier]

Cet article est basé sur du matériel tiré de la Dictionnaire informatique en ligne gratuit avant le 1 er novembre 2008 et intégré dans les conditions de «licence» de la GFDL, version 1.3 ou ultérieure.


Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.