Le premier niveau du serveur client d'architecture multiniveau terminal. Systèmes à serveur client multi-niveaux

Avantages

· Le rend possible, dans la plupart des cas, la distribution des fonctions système informatique Entre plusieurs ordinateurs indépendants sur le réseau. Cela vous permet de simplifier la maintenance du système informatique. En particulier, le remplacement, la réparation, la mise à niveau ou le déplacement du serveur n'affecte pas les clients.

· Toutes les données sont stockées sur un serveur, qui est généralement protégée beaucoup mieux que la plupart des clients. Sur le serveur, il est plus facile de garantir le contrôle de l'autorité de permettre l'accès aux données uniquement aux clients avec les droits d'accès concernés.

· Vous permet de combiner divers clients. Utilisez des ressources uniques Server peut souvent souvent des clients avec différentes plates-formes matérielles, systèmes d'exploitation, etc.

désavantages

· L'inopérabilité du serveur peut créer un réseau informatique complet inopérable.

· La prise en charge du fonctionnement de ce système nécessite un spécialiste séparé - un administrateur système.

· Coût élevé de l'équipement.

Architecture de serveur client multi-niveaux

L'architecture de serveur client multi-niveaux est un type d'architecture client-serveur, dans lequel la fonction de traitement de données est transférée sur un ou plusieurs serveurs individuels. Cela vous permet de diviser les fonctions de stockage, de traitement et de présentation de données pour une utilisation plus efficace des serveurs et des fonctionnalités du client.

Cas privés d'architecture multi-niveaux:

DANS technologies informatiques Architecture à trois niveaux, architecture de synonyme de trois niveaux (anglais. Architecture à trois niveaux ou multiditaires) assume les composants de l'application suivants: application client (dites généralement " client minceOu terminal) connecté au serveur d'applications, qui est à son tour connecté au serveur de base de données.

Vue d'ensemble de l'architecture

Client - Il s'agit d'une composante d'interface (généralement graphique) qui représente le premier niveau, l'application réelle pour l'utilisateur final. Le premier niveau ne doit pas avoir de liens directs avec la base de données (en fonction des exigences de sécurité), à charger par la logique commerciale principale (en fonction de l'évolutivité) et de stocker l'état de l'application (conformément aux exigences de fiabilité). La logique commerciale la plus simple peut être faite au premier niveau: la logique commerciale la plus simple est faite: l'interface d'autorisation, les algorithmes de cryptage, la vérification des valeurs d'entrée pour la recevabilité et la conformité avec le format, les opérations simples (triage, regroupement, valeurs de comptage) avec des données déjà chargées sur le terminal.

Le serveur d'applications est situé au deuxième niveau. Au deuxième niveau, la plupart de la logique commerciale se concentre. En dehors, il reste des fragments exportés vers des terminaux (voir plus élevés), ainsi que des procédures stockées et des déclencheurs immergés au troisième niveau.

Le serveur de base de données fournit un stockage de données et est souscrit au troisième niveau. Ceci est généralement standard SMRM standard et orienté objet. Si le troisième niveau est une base de données avec des procédures stockées, des déclencheurs et un schéma décrivant la demande en termes modèle relationnelLe deuxième niveau est construit comme une interface de programmation connectant des composants clients avec une logique d'application de base de données.

Dans la configuration la plus simple, le serveur d'applications physiquement peut être combiné avec un serveur de base de données sur un ordinateur auquel une ou plusieurs bornes sont connectées sur le réseau.

Dans la configuration de "droite" (en termes de sécurité, de fiabilité, de mise à l'échelle), le serveur de base de données est situé sur un ordinateur dédié (ou un cluster) auquel un ou plusieurs serveurs d'applications sont connectés auquel, à son tour, les terminaux sont connectés sur le réseau. .

Dignité

Par rapport à l'architecture client-serveur ou au serveur de fichiers, les avantages suivants de l'architecture de niveau de Treher peuvent être distingués:

· Évolutivité

· Configurabilité - L'isolement des niveaux les uns des autres permet (avec un déploiement approprié de l'architecture) rapidement et fonds simples reconfigurer le système lorsqu'une échec survient ou lorsqu'un service planifié à un niveau

· Haute sécurité

· Grande fiabilité

· Exigences basses pour la vitesse du canal (réseau) entre les bornes et le serveur d'applications

· Exigences de faible performance et caractéristiques techniques Les terminaux, par conséquent, réduisant leur valeur. Le terminal peut être non seulement un ordinateur, mais aussi, par exemple, un téléphone portable.

désavantages

Inconvénients découlant des avantages. Comparé à une architecture client-serveur ou de serveur de fichiers, les lacunes suivantes d'architecture trahistique peuvent être distinguées:

· Plus grande complexité de la création d'applications;

· Plus difficile dans le déroulement et l'administration;

· Exigences élevées pour la performance des serveurs d'applications et des serveurs de base de données, et cela signifie, le coût élevé de l'équipement de serveur;

· Exigences élevées pour la vitesse du canal (réseau) entre le serveur de base de données et les serveurs d'applications.


Architecture Classic Client Server

Le terme "serveur client" désigne une telle architecture du package logiciel dans lequel ses pièces de fonction interagissent dans le cadre du schéma "Demande-Répontion". Si vous considérez que les deux parties interagissantes de ce complexe, l'une d'elles (client) effectue une fonction active, c'est-à-dire initié les demandes, et l'autre (serveur) y répondit passivement. Étant donné que le système de rôle se développe, un rôle peut modifier, par exemple, certains blocs de programme effectueront simultanément les fonctions du serveur par rapport à un bloc et du client par rapport à l'autre.

Notez que tout système d'information doit avoir un minimum de trois principales pièces fonctionnelles - modules de stockage, leur traitement et l'interface avec l'utilisateur. Chacune de ces pièces peut être mise en œuvre indépendamment des deux autres. Par exemple, sans modifier les programmes utilisés pour stocker et traiter les données, vous pouvez modifier l'interface utilisateur de manière à ce que les mêmes données soient affichées sous forme de tables, de graphiques ou d'histogrammes. Sans modification des programmes de représentation de données et de leur stockage, vous pouvez modifier les programmes de traitement, tels que la modification de l'algorithme de recherche en texte intégral. Enfin, sans modifier les programmes de données et de traitement de données, vous pouvez modifier le logiciel pour stocker des données en passant, par exemple, à un autre système de fichiers.

Dans l'architecture classique, le serveur client doit distribuer trois parties principales de l'application dans deux modules physiques. Habituellement, le stockage est situé sur le serveur (par exemple, un serveur de base de données), l'interface utilisateur est du côté du client, mais le traitement des données doit être distribué entre les unités client et serveur. C'est l'inconvénient principal de l'architecture à deux niveaux, ce qui suit plusieurs caractéristiques désagréables qui compliquent grandement le développement de systèmes client-serveur.

Lors de la séparation des algorithmes de traitement de données, il est nécessaire de synchroniser le comportement des deux parties du système. Tous les développeurs doivent avoir des informations complètes sur les dernières modifications énumérées dans le système et comprendre ces modifications. Cela crée de grandes difficultés dans le développement des systèmes client-serveur, leur installation et leur accompagnement, car il est nécessaire de consacrer des efforts importants pour coordonner les actions de divers groupes de spécialistes. Dans les actions des développeurs, les contradictions se produisent souvent, et cela ralentit le développement du système et oblige les nouveaux éléments éprouvés à modifier.

Pour éviter les incohérences d'éléments d'architecture différents, essayez de traiter les données sur l'une des deux parties physiques - soit du côté du client (client "épais"), soit sur le serveur ("mince" client ou architecture, appelé "Clients de niveau 2.5 serveur"). Chaque approche a ses inconvénients. Dans le premier cas, le réseau est surchargé de manière déraisonnable, car il est transmis non traité et donc des données redondantes. En outre, la prise en charge du système est compliquée et sa modification est compliquée, car le remplacement de l'algorithme de calcul ou de la correction d'erreur nécessite une exécution simultanée de tous les programmes d'interface, et des erreurs peuvent avoir lieu ou incohérences. Si tout le traitement des informations est effectué sur le serveur (lorsqu'il est possible), le problème de la description des procédures intégrées et de leur débogage. Le fait est que la langue de la conception des procédures intégrées est généralement déclarative et, par conséquent, ne permet pas de déboguer pas à pas. De plus, le système avec traitement d'informations sur le serveur est absolument impossible de transférer sur une autre plate-forme, ce qui est un défavorable grave.

La plupart des moyens modernes de développement d'applications rapides (RAD), qui fonctionnent avec différentes bases de données, implémentent la première stratégie, c'est-à-dire que le client "gras" fournit une interface avec un serveur de base de données via une SQL intégrée. Un tel mode de réalisation d'un système avec un client "épais", en plus des lacunes énumérées ci-dessus, il fournit généralement un niveau de sécurité inacceptablement faible. Par exemple, dans les systèmes bancaires, il représente toute la réalisation des droits d'écrire sur la table principale compte. En outre, ce système Il est presque impossible de traduire la technologie Web, car le logiciel client spécialisé est utilisé pour accéder au serveur de base de données.

Ainsi, les modèles ci-dessus ont les inconvénients suivants.

1. Client "gras":
# La complexité de l'administration;
Il est compliqué par la mise à jour logicielle, car elle doit être remplacée simultanément dans tout le système;
# Une distribution complète des pouvoirs, car la séparation de l'accès ne se produit pas par des actions, mais selon les tables;
# Le réseau est surchargé en raison de la transmission des données brutes à ce sujet;
# Faible protection des données, car il est difficile de répartir correctement les pouvoirs.

2. Serveur "épais":
# Mise en œuvre complète, car les langues de type PL / SQL ne sont pas adaptées pour développer un tel logiciel et non bons outils Débogage;
# La performance des programmes écrits dans les langues de type PL / SQL est nettement inférieure à celles créées dans d'autres langues, ce qui est important pour les systèmes complexes;
# Programmes écrits dans les langages du SGBD, travaillent généralement assez fort; L'erreur d'entre eux peut entraîner l'échec de l'ensemble du serveur de base de données;
De cette manière, les programmes entièrement intolérables d'autres systèmes et plates-formes.

Pour résoudre les problèmes énumérés, une architecture client-serveur client multi-niveaux (trois niveaux ou plus) est utilisée.

Architecture de serveur client multi-niveaux

De telles architectures distribuent des modules de traitement de données plus raisonnables, qui sont effectuées dans ce cas sur un ou plusieurs serveurs individuels. Ces modules logiciels effectuent des fonctions de serveur pour les utilisateurs et les interfaces clients - pour les serveurs de base de données. De plus, divers serveurs d'applications peuvent interagir les uns avec les autres pour une séparation plus précise du système sur des blocs de fonction qui effectuent certains rôles. Par exemple, vous pouvez sélectionner le serveur de gestion du personnel qui effectuera toutes les fonctions nécessaires à la gestion du personnel. Après avoir été connecté à une base de données séparée, vous pouvez masquer à partir des utilisateurs tous les éléments de ce serveur, leur permettant de ne postuler qu'à ses fonctions disponibles publiquement. De plus, un tel système est très facile à adapter sur le Web, car il est plus facile de développer des formulaires HTML pour accéder aux utilisateurs à certaines fonctions de la base de données que pour toutes les données.

Dans l'architecture à trois niveaux, le client "mince" n'est pas surchargé avec les fonctionnalités de traitement de données et effectue son rôle principal du système de soumission d'informations provenant du serveur d'applications. Une telle interface peut être implémentée en utilisant outils standard Technologie Web - Navigateur, CGI et Java. Cela réduit la quantité de données transmises entre le client et le serveur d'applications, ce qui vous permet de connecter des ordinateurs clients même sur les lignes lentes du type de canaux téléphoniques. De plus, la partie client peut être si simple que, dans la plupart des cas, elle est mise en œuvre à l'aide d'un navigateur universel. Mais si cela change toujours, cette procédure peut être effectuée rapidement et sans douleur. Le serveur client d'architecture à trois niveaux vous permet d'accéder à une autorité utilisateur plus précise, car elles reçoivent des droits d'accès non à la base de données elle-même, mais à certaines fonctions du serveur d'applications. Cela augmente la sécurité du système (comparé à l'architecture habituellement) non seulement d'une attaque intentionnelle, mais également d'actions de personnel erronées.

Par exemple, considérons le système, dont les différentes parties travaillent sur plusieurs ami distant de chaque autre serveurs. Supposons que le développeur ait reçu une nouvelle version du système, d'installer lequel dans une architecture à deux niveaux, il est nécessaire de modifier simultanément tous les modules système. Si cela n'est pas fait, l'interaction des anciens clients avec de nouveaux serveurs peut entraîner des conséquences imprévisibles, les développeurs ne comptent généralement pas sur cette utilisation du système. Dans l'architecture de trois niveaux, la situation est simplifiée. Le fait est que, en modifiant le serveur d'applications et le serveur de stockage (il est facile à faire simultanément, car ils sont généralement situés à proximité), nous modifions immédiatement l'ensemble des services disponibles. Ainsi, la probabilité d'erreur due à la non-conformité des versions du serveur et des pièces client est fortement réduite. Si dans nouvelle version Tout service a disparu, puis des éléments d'interface qui l'ont servi dans ancien système, ne fonctionnera tout simplement pas. Si l'algorithme de travail de service a changé, cela fonctionnera correctement, même avec l'ancienne interface.

Les systèmes à serveur client multi-niveaux peuvent être facilement traduits en technologie Web - il suffit de remplacer la pièce du client par un navigateur universel ou spécialisé, et le serveur d'applications est complété par le serveur Web et les petits défis du serveur. Pour développer ces programmes, vous pouvez utiliser une interface de passerelle commune (CGI) et plus encore. technologie moderne Java.

Il convient de noter que dans le système à trois niveaux sur le canal de communication entre le serveur d'applications et la base de données, une information suffisamment importante est transmise. Cependant, cela ne ralentit pas les calculs, car plus de lignes de vitesse peuvent être utilisées pour communiquer ces éléments. Cela nécessitera des coûts minimaux, car les deux serveurs sont généralement dans la même pièce. Ainsi, la performance totale du système augmente - deux serveurs différents fonctionnent sur une tâche et la connexion entre eux peut être effectuée en fonction des lignes la plus à grande vitesse avec coût minimal fonds. Certes, le problème se pose la cohérence de l'informatique conjointe, conçue pour résoudre les gestionnaires de transactions - de nouveaux éléments de systèmes multi-niveaux.

]. Cela vous permet de diviser les fonctions de stockage, de traitement et de présentation de données pour une utilisation plus efficace des serveurs et des fonctionnalités du client.

Parmi l'architecture multi-niveaux, le serveur client est l'architecture de trois niveaux la plus courante ( architecture trois étoiles, Trois niveaux), qui suggère les composants de l'application suivants: application client (disent généralement «client léger» ou terminal) connecté à applications serveurqui à son tour est connecté à base de données du serveur [ , ].

Figure. 5.4.


Figure. 5.4.Représentation d'une architecture de serveur client multi-niveaux

  • Le terminal est une composante interface (généralement graphique) qui représente le premier niveau, l'application réelle pour l'utilisateur final. Le premier niveau ne doit pas avoir de liens directs avec la base de données (en fonction des exigences de sécurité), à charger par la logique commerciale principale (en fonction de l'évolutivité) et de stocker l'état de l'application (conformément aux exigences de fiabilité). La logique commerciale la plus simple peut être faite au premier niveau: la logique commerciale la plus simple est faite: l'interface d'autorisation, les algorithmes de cryptage, la vérification des valeurs d'entrée pour la recevabilité et la conformité avec le format, les opérations simples (triage, regroupement, valeurs de comptage) avec des données déjà chargées sur le terminal.
  • Serveur d'applications Situé au deuxième niveau. Au deuxième niveau, la plupart de la logique commerciale se concentre. En dehors, il reste des fragments exportés vers des terminaux, ainsi que les procédures stockées et les déclencheurs immergés au troisième niveau.
  • Serveur de base de données Fournit un stockage de données et mis fin au troisième niveau. Ceci est généralement standard SMRM standard et orienté objet. Si le troisième niveau est une base de données avec les procédures stockées, les déclencheurs et un diagramme décrivant l'application en termes de modèle relationnel, le deuxième niveau est construit comme une interface logicielle qui connecte les composants clients avec une logique d'application de base de données.

Dans la configuration la plus simple physiquement serveur d'applications peut être combiné avec base de données du serveur Sur un ordinateur auquel un ou plusieurs terminaux sont connectés sur le réseau.

Dans la "droite" (en termes de sécurité, de fiabilité, de mise à l'échelle) de configuration serveur de base de données est situé sur un ordinateur dédié (ou un cluster) auquel une ou plusieurs sont connectées sur le réseau serveurs d'applicationÀ laquelle, à son tour, les terminaux sont connectés sur le réseau.

Les avantages de cette architecture sont [,,,]:

  • le logiciel client n'a pas besoin d'administration;
  • évolutivité;
  • configurabilité - L'isolement des niveaux les uns des autres vous permet de reconfigurer le système rapidement et de simples moyens en cas de défaillance ou lors de la maintenance prévue à un niveau;
  • haute sécurité;
  • grande fiabilité;
  • exigences faibles pour la vitesse du canal (réseau) entre les terminaux et serveur d'application;
  • les basses exigences relatives aux performances et aux caractéristiques techniques des terminaux, en conséquence, ont réduit leur valeur.
  • pousse la complexité de la partie serveur et, par conséquent, le coût de l'administration et de la maintenance;
  • complexité plus élevée de créer des applications;
  • plus difficile dans le déroulement et l'administration;
  • exigences de haute performance serveurs d'application et serveurs de base de données, par conséquent, le coût élevé de l'équipement de serveur;
  • exigences élevées pour la vitesse du canal (réseau) entre base de données du serveur et serveurs d'application.
  1. Représentation;
  2. Niveau de présentation;
  3. Niveau logique;
  4. Niveau de données;
  5. Données.


Figure. 5.5Cinq niveaux d'architecture multipartite "client-serveur"

La présentation inclut toutes les informations directement affichées par l'utilisateur: pages HTML générées, feuilles de style, images.

Le niveau de présentation couvre tout ce qui est lié à la communication de l'utilisateur avec le système. Les principales caractéristiques de la couche de présentation incluent l'affichage des informations et l'interprétation des commandes saisies par l'utilisateur avec leur conversion vers les opérations appropriées dans le contexte de la logique et des données.

Le niveau logique contient les fonctions de base du système conçues pour atteindre l'objectif défini devant lui. Ces fonctions comprennent des calculs basés sur des données saisies et stockées, en vérifiant tous les éléments de données et les commandes de traitement provenant de la couche de vue, ainsi que de transmettre des informations au niveau de données.

Le niveau d'accès aux données est un sous-ensemble de fonctions assurant une interaction avec des systèmes tiers qui effectuent des tâches dans l'intérêt de l'application.

Ces systèmes sont généralement stockés dans la base de données.

5.1.6. Architecture des systèmes distribués

Ce type de systèmes est plus difficile en termes d'organisation du système. Essence distribué système Il est de stocker des copies locales de données importantes.

Schématiquement, une telle architecture peut être représentée comme indiqué sur la Fig. 5.6.


Figure. 5.6.

Plus de 95% des données utilisées dans la gestion de l'entreprise peuvent être placées sur une ordinateur personnel, assurant la possibilité de son travail indépendant. Le flux de flux et des ajouts créés sur cet ordinateur sont négligeables par rapport à la quantité de données utilisées. Par conséquent, si vous stockez les données utilisées en continu sur les ordinateurs eux-mêmes et organisez l'échange entre eux avec des corrections et des ajouts aux données stockées, le trafic total de transmission diminuera fortement. Cela vous permet de réduire les exigences relatives aux canaux de communication entre des ordinateurs et d'utiliser plus souvent une communication asynchrone et, grâce à cela, créez un fonctionnement fiable distribué. systèmes d'informationutilisé pour communiquer des éléments individuels type de communication instable d'Internet, communications mobiles, Canaux de satellite commerciaux. Une minimisation de la circulation entre éléments fera un coût équitablement abordable d'une telle connexion. Bien entendu, la mise en œuvre d'un tel système n'est pas élémentaire et nécessite une solution à un certain nombre de problèmes, dont une synchronisation de données en temps utile.

Chaque indépendante AWS ne contient que les informations avec lesquelles les données doivent fonctionner et que la pertinence des données dans tout le système est assurée par l'échange continu de messages avec d'autres armes. La messagerie entre Armami peut être mise en œuvre différentes façons, d'envoi de données à e-mail Avant d'envoyer des données sur les réseaux.

Pour résoudre les problèmes énumérés, une architecture client-serveur client multi-niveaux (trois niveaux ou plus) est utilisée.

Ces architectures distribuent des modules de traitement de données plus raisonnables qui sont dans cette l'affaire est effectuée sur un ou plusieurs serveurs individuels. Ces modules logiciels effectuent des fonctions de serveur pour les utilisateurs et les interfaces clients - pour les serveurs de base de données. De plus, divers serveurs d'applications peuvent interagir les uns avec les autres pour une séparation plus précise du système sur des blocs de fonction qui effectuent certains rôles.

Par exemple, vous pouvez sélectionner le serveur de gestion du personnel qui effectuera toutes les fonctions nécessaires à la gestion du personnel. Après avoir été connecté à une base de données séparée, vous pouvez masquer à partir des utilisateurs tous les éléments de ce serveur, leur permettant de ne postuler qu'à ses fonctions disponibles publiquement. De plus, un tel système est très facile à adapter sur le Web, car il est plus facile de développer des formulaires HTML pour accéder aux utilisateurs à certaines fonctions de la base de données que pour toutes les données.

Dans une architecture de trois niveaux, le client n'est pas surchargé de fonctionnalités de traitement de données et effectue son rôle principal du système de soumission d'informations provenant du serveur d'applications. Une telle interface peut être mise en œuvre à l'aide de la technologie Web standard - Navigateur, CGI et Java. Cela réduit la quantité de données transmises entre le client et le serveur d'applications, ce qui vous permet de connecter des ordinateurs clients même sur les lignes lentes du type de canaux téléphoniques. De plus, la partie client peut être si simple que, dans la plupart des cas, elle est mise en œuvre à l'aide d'un navigateur universel.Mais si cela change toujours, cette procédure peut être effectuée rapidement et sans douleur. Le serveur client d'architecture à trois niveaux vous permet d'accéder à une autorité utilisateur plus précise, car elles reçoivent des droits d'accès non à la base de données elle-même, mais à certaines fonctions du serveur d'applications. Cela augmente la sécurité du système (comparé à l'architecture habituellement) non seulement d'une attaque intentionnelle, mais également d'actions de personnel erronées.

Par exemple, considérez le système, dont les différentes parties fonctionnent sur plusieurs serveurs supprimés les uns des autres. Supposons que le développeur ait reçu une nouvelle version du système, d'installer lequel dans une architecture à deux niveaux, il est nécessaire de modifier simultanément tous les modules système. Si cela n'est pas fait, l'interaction des anciens clients avec de nouveaux serveurs peut entraîner des conséquences imprévisibles, les développeurs ne comptent généralement pas sur cette utilisation du système. Dans l'architecture de trois niveaux, la situation est simplifiée. Le fait est que, en modifiant le serveur d'applications et le serveur de stockage (il est facile à faire simultanément, car ils sont généralement situés à proximité), nous modifions immédiatement l'ensemble des services disponibles. Ainsi, la probabilité d'erreur due à la non-conformité des versions du serveur et des pièces client est fortement réduite. Si une nouvelle version a disparu, les éléments de l'interface qui la servaient dans l'ancien système ne fonctionneront tout simplement pas. Si l'algorithme de travail de service a changé, cela fonctionnera correctement, même avec l'ancienne interface.

Les systèmes à serveur client multi-niveaux peuvent être facilement traduits en technologie Web - il suffit de remplacer la pièce du client par un navigateur universel ou spécialisé, et le serveur d'applications est complété par le serveur Web et les petits défis du serveur. Vous pouvez utiliser une interface de passerelle commune (CGI) et une technologie Java plus moderne pour développer ces programmes.

Il convient de noter que dans le système à trois niveaux sur le canal de communication entre le serveur d'applications et la base de données, une information suffisamment importante est transmise. Cependant, cela ne ralentit pas les calculs, car plus de lignes de vitesse peuvent être utilisées pour communiquer ces éléments. Cela nécessitera des coûts minimaux, car les deux serveurs sont généralement dans la même pièce. Ainsi, la performance totale du système augmente - deux serveurs différents fonctionnent désormais au-dessus d'une tâche et la connexion entre elles peut être effectuée en fonction des lignes les plus élevées possibles avec des coûts minimes. Certes, le problème se pose la cohérence de l'informatique conjointe, conçue pour résoudre les gestionnaires de transactions - de nouveaux éléments de systèmes multi-niveaux.

Traduction de Anglais: Tchernobay Yu. A.

Développement de systèmes client-serveur

Architecture système d'ordinateur Développé avec des capacités matérielles à utiliser des applications lancées. Le plus simple (et le plus tôt) de tous était "Architecture centrale", dans laquelle toutes les opérations et fonctionnalités sont produites dans le serveur (ou "hôte") de l'ordinateur. Les utilisateurs interagissaient avec un serveur via des terminaux Dumb qui ont distribué les instructions, capturant la touche de frappe, le serveur et ont montré les résultats des instructions de l'utilisateur. Ces applications étaient typiques et, malgré la puissance de calcul relativement importante des ordinateurs de serveur, étaient principalement relativement lentes inconfortables à utiliser, en raison de la nécessité de transférer chaque appui de la clé du serveur.

Introduction et PC largement répandus, avec sa propre puissance de calcul et l'interface utilisateur graphique autorisée aux applications de devenir plus complexes et plus complexes systèmes de réseau conduit au deuxième type principal d'architecture système, "séparation des fichiers". Dans cette architecture PC (ou " station de travail") Charge des fichiers à partir d'un" fichier de serveur "spécialisé, puis contrôlent l'application (y compris les données) localement. Il fonctionne bien lorsqu'il est petit à utiliser des données communes, à la mise à jour des données et à la quantité de données qui seront transmises. Toutefois, Il est devenu évident que la séparation du fichier est tout le réseau a grimpé le réseau et les applications sont devenues plus complexes et demandaient qu'une quantité croissante de données a été transférée dans les deux sens.

Les problèmes associés au traitement des applications de données via le fichier divisé par le réseau ont conduit au développement de l'architecture client-serveur au début des années 1980. Dans cette approche, le serveur de fichiers est remplacé par un serveur de base de données, qui, au lieu de simplement transférer et enregistrer des fichiers connectés à des postes de travail (clients), reçoit et effectue réellement des demandes de données, qui ne renvoyant que le résultat demandé par le client. En ne transmettant que les données demandées par le client, et non l'ensemble du fichier, cette architecture réduit considérablement la charge sur le réseau. Cela a permis de créer un système dans lequel de nombreux utilisateurs pourraient mettre à jour les données via des interfaces GUI associées à une seule base de données divisée.

Habituellement, une langue de requête structurée (SQL) ou une procédure à distance (RPC) est utilisée pour échanger des données entre le client et le serveur. Ce qui suit décrit plusieurs options de base pour organiser l'architecture client-serveur.

Dans une architecture à deux niveaux, la charge est distribuée entre le serveur (contenant la base de données) et le client (dans lequel se trouve interface utilisateur). En règle générale, ils sont situés sur différentes machines physiques, mais ce n'est pas une exigence obligatoire. À condition que les niveaux soient séparés logiquement, ils peuvent être affichés (par exemple, pour développer et tester) sur un ordinateur (Fig. 1).

Figure 1: Architecture à deux niveaux

La distribution de la logique d'application et du traitement des données dans ce modèle était et reste problématique. Si le client "intelligent" et effectue le traitement des données de base, il existe des problèmes liés à la distribution, à l'installation et à la maintenance de l'application, car chaque client a besoin de sa propre copie locale. logiciel. Si le client "muet", l'utilisation de la logique et du traitement doit être implémentée dans la base de données et, par conséquent, il devient complètement dépendant de la SGBD spécifique utilisée. Dans tous les cas, chaque client doit s'inscrire et en fonction des droits d'accès qu'ils ont reçus effectuent certaines fonctions. Cependant, le serveur client d'architecture à deux niveaux était bonne décisionLorsque le nombre d'utilisateurs était relativement petit (environ 100 utilisateurs de travail simultanément), mais avec une augmentation des utilisateurs, un certain nombre de restrictions à l'utilisation de cette architecture sont apparues.

Performance: Puisque le nombre d'utilisateurs augmente, la performance commence à se détériorer. La détérioration de la productivité est directement transférée par le nombre d'utilisateurs, chacune ayant sa propre connexion au serveur, ce qui signifie que le serveur doit prendre en charge toutes ces connexions (à l'aide des messages "Garder-vie"), même lorsque vous travaillez avec le la base n'est pas menée.

Sécurité: chaque utilisateur doit avoir son propre accès individuel à la base de données et avoir des droits fournis pour faire fonctionner l'application. Pour ce faire, stockez les autorisations d'accès pour chaque utilisateur de la base de données. Lorsque vous devez ajouter des fonctionnalités à l'application et vous devez mettre à jour les droits personnalisés.

Fonctionnalité: Peu importe le type de client utilisé, la majeure partie du traitement des données doit être dans la base de données, cela signifie qu'il dépend complètement des capacités du fabricant fourni dans la base de données. Cela peut sérieusement limiter la fonctionnalité de l'application, puisque diverses bases Les données prennent en charge diverses fonctions, utilisent différentes langages de programmation et même mettre en œuvre de tels actifs immobilisés comme des déclencheurs de différentes manières.

Mobilité: l'architecture de deux niveaux est donc donc dépendant de mise en œuvre spécifique bases de données qui transfèrent applications existantes Pour divers SGBD, cela devient un problème grave. Ceci est particulièrement évident dans le cas d'applications sur les marchés verticaux, où le choix de la SGBD n'est pas défini par le fournisseur.

Mais malgré cela, l'architecture à deux niveaux trouvée nouvelle vie À l'ère d'Internet. Il peut bien fonctionner dans l'environnement déconnecté, où l'interface utilisateur est "muette" (par exemple, un navigateur). Cependant, à bien des égards, cette implémentation est remboursée à l'architecture d'origine du mainframe.

Dans le désir de surmonter les limitations de l'architecture à deux niveaux décrite ci-dessus, un niveau supplémentaire a été introduit. Une telle architecture est le modèle client-serveur standard avec une architecture de trois niveaux. Le niveau supplémentaire du niveau supplémentaire (généralement appelé niveau «moyen» ou «règles») est de gérer la gestion de l'application et de la base de données. Comme avec un modèle à deux niveaux, les niveaux peuvent être situés ou sur différents ordinateurs (Figure 2), ou sur un ordinateur en mode test.

Figure 2: Architecture de trois niveaux

En entrant dans le nombre moyen, les limites de l'architecture à deux niveaux ont été largement éliminées, par conséquent, il s'est avéré beaucoup plus flexible et évolutif, système. Étant donné que les clients ne sont connectés qu'avec le serveur d'applications, et non directement sur le serveur de données, la charge lors de la sauvegarde des connexions est supprimée, ainsi que la nécessité de mettre en œuvre la logique d'application dans la base de données. La base de données peut désormais effectuer uniquement les fonctions de stockage et de recherche de données, et la tâche des applications de réception et de traitement peut effectuer le niveau moyen de l'architecture de trois niveaux. Développement systèmes d'exploitationComprendre de tels éléments en tant que pool de connexions, files d'attente et traitement des transactions distribuées renforcées (et simplifiées) le développement du niveau moyen.

Faites attention à cela, dans ce modèle, le serveur d'applications ne contrôle pas l'interface utilisateur et l'utilisateur ne se réfère pas directement aux bases de données directement. Au lieu de cela, il permet de nombreux clients de partager la logique commerciale, les calculs et l'accès à moteur de recherche Les données. Le principal avantage est que le client nécessite moins de logiciels et il n'est plus nécessaire connexion directe À la base de données, qui améliore la sécurité. Par conséquent, l'application est plus évolutive, les coûts de support et l'installation sur un serveur sont significativement plus petits que de maintenir les applications directement sur l'ordinateur du client ou même sur une architecture de deux niveaux.

Il existe de nombreuses options pour les principaux modèles de trois niveaux conçus pour effectuer diverses fonctions. Celles-ci incluent le traitement des transactions distribuées (lorsque plusieurs SDBM sont mis à jour dans un protocole), les applications basées sur des messages (dans lesquelles les applications ne communiquent pas en temps réel) et la compatibilité inter-plate-forme (Courtier de demande d'objet ou des applications Orb).

Architecture multi-niveaux ou architecture Niveau N

Avec le développement d'applications Internet dans le contexte d'une augmentation générale du nombre d'utilisateurs, le modèle client-serveur client de trois niveaux a été élargi en introduisant des niveaux supplémentaires. Ces architectures appellent "" multi-niveaux ", généralement à quatre niveaux (figure 3), où le serveur est responsable du traitement de la connexion entre le navigateur client et le serveur d'applications. L'avantage est que plusieurs serveurs Web peuvent se connecter à un. serveur d'applications. Ainsi, augmentant ainsi le traitement d'un plus grand nombre d'utilisateurs connectés simultanément.

Figure 3: Architecture Niveau N

Niveaux contre les couches

Ces termes (malheureusement) sont souvent confus. Cependant, il y a une grande différence entre eux et a une certaine signification. La principale différence est que les niveaux sont situés niveau physiqueet couches sur logique. En d'autres termes, le niveau, théoriquement, peut être déployé de manière indépendante ordinateur séparéet une séparation logique de couche dans le niveau (Figure. 4). Le modèle typique de trois niveaux décrit ci-dessus, en règle générale, contient au moins sept couches divisées à tous les trois niveaux.

L'essentiel est que vous devez vous rappeler que l'architecture à plusieurs niveaux est que les demandes et les réponses de chaque flux dans une seule direction passent à travers toutes les couches et que les couches ne peuvent jamais être manquées. Ainsi, dans le modèle illustré à la figure 4, la seule couche pouvant se référer à la couche "E" (couche d'accès aux données) est une couche "D" (couche de règles). De même, la couche "C" (couche appliquée de ratification) ne peut répondre aux demandes de la couche "B" (couche de manipulation des erreurs).

Figure 4: Les lignes sont divisées en couches logiques

Avez-vous aimé l'article? Partager avec des amis: