CodeGym/Blog Java/Random-FR/Partie 2. Parlons un peu de l'architecture logicielle
John Squirrels
Niveau 41
San Francisco

Partie 2. Parlons un peu de l'architecture logicielle

Publié dans le groupe Random-FR
membres
Ce matériel fait partie de la série "Introduction au développement d'entreprise" . La première partie, sur le réseautage, est ici . Partie 2. Parlons un peu de l'architecture logicielle - 1L'architecture logicielle fait référence à la structure créée au sein d'une application, c'est-à-dire l'ensemble des modules et composants du programme et leur interaction. Les programmeurs travaillent sur de bonnes architectures depuis très longtemps, il n'est donc pas surprenant que nous ayons entendu parler de beaucoup de modèles architecturaux. Vous devez les comprendre : lors de l'écriture d'une application Web, il est essentiel de proposer une bonne architecture, car une application Web a plus de composants et de modules qu'une application classique. Un modèle architecturalest un moyen intelligent de résoudre certains problèmes de conception de logiciels. Vous avez probablement rencontré des modèles de conception tels que la méthode d'usine, l'usine abstraite, le constructeur, le prototype, le singleton et peut-être d'autres. Nous les utilisons pour écrire du code, créer des classes et planifier la façon dont les classes vont interagir. Les modèles architecturaux sont utilisés à un niveau d'abstraction plus élevé, lors de la planification de l'interaction de l'utilisateur avec les serveurs, les données et d'autres composants. Jetons un coup d'œil à certains modèles et comment les utiliser.

Architecture client-serveur

Le nom donne l'impression que tout ce qui concerne ce modèle est simple et clair. Mais clarifions certains points, afin que lorsque vous commencerez à étudier le printemps, vous compreniez de quoi nous parlons. Disons que vous avez écrit une application de chat et que vous et un ami commencez à l'utiliser. Vous pourriez adopter une approche très simple, en vous envoyant des messages directement via Internet en utilisant des adresses IP connues : Partie 2. Parlons un peu de l'architecture logicielle - 2Au début, tout semble bien fonctionner jusqu'à ce qu'un autre de vos amis demande à rejoindre le chat. Ainsi, lorsque vous décidez d'ajouter votre ami commun au chat, vous êtes confronté à un problème d'architecture : pour chaque participant au chat, vous devez fournir des informations à jour sur le nombre d'utilisateurs et l'adresse IP des nouveaux utilisateurs. Et lorsqu'un message est envoyé, il doit être transmis à tous les participants. Ce sont les problèmes les plus évidents qui se poseront. Un autre groupe de problèmes sera caché dans le code lui-même. Pour les éviter, vous devez utiliser un serveur, qui stockera toutes les informations sur les utilisateurs, y compris leurs adresses. Les messages doivent uniquement être envoyés au serveur. Il envoie à son tour des messages à chacun des destinataires. Lorsque vous décidez d'ajouter une partie serveur à votre application de chat, vous commencez à construire une architecture client-serveur.

Composants de l'architecture client-serveur

Voyons de quoi il s'agit. Une architecture client-serveur est un modèle de conception utilisé pour créer des applications Web. Cette architecture se compose de trois composants : Partie 2. Parlons un peu de l'architecture logicielle - 3
  1. Client - D'après son nom, nous pouvons dire que ce composant utilise un service (l'application Web), contactant un serveur pour demander des informations.

  2. Serveur - C'est là que se trouve votre application Web ou la partie serveur de celle-ci. Il stocke les informations utilisateur nécessaires ou peut les demander. De plus, lorsqu'un client envoie une requête, c'est le serveur qui renvoie les informations demandées.

  3. Réseau — Cette partie est simple. Il facilite l'échange d'informations entre le client et le serveur.

Le serveur peut gérer un grand nombre de demandes provenant de différents utilisateurs. Cela signifie qu'il peut y avoir plusieurs clients. S'ils ont besoin d'échanger des informations entre eux, cela doit passer par le serveur. Ainsi, le serveur a une autre fonction : le contrôle du trafic. En ce qui concerne notre programme de chat multi-utilisateurs, toute l'application sera composée de deux modules :
  • un module client — contient une interface graphique pour se connecter et envoyer/recevoir des messages

  • un module serveur — une application Web qui est hébergée sur un serveur et qui reçoit les messages des utilisateurs, les traite, puis les envoie aux destinataires

Partie 2. Parlons un peu de l'architecture logicielle - 4Lorsque nous voulons consulter des informations utiles (ou pas très utiles) sur Internet, nous ouvrons un navigateur, saisissons une requête dans la barre de recherche et obtenons des informations du moteur de recherche en réponse. Dans cette chaîne, le navigateur est le client. Il envoie une requête avec des informations sur ce que nous recherchons au serveur. Le serveur traite la demande, trouve les résultats les plus pertinents, les conditionne dans un format que le navigateur (client) peut comprendre et les renvoie. Les services complexes comme les moteurs de recherche peuvent avoir beaucoup de serveurs. Par exemple, un serveur d'autorisation, un serveur de recherche d'informations, un serveur de génération de la réponse, etc. Mais le client n'en a pas conscience et ne s'en préoccupe pas : pour le client, le serveur est une entité unifiée. Le client ne connaît que le point d'entrée, c'est-à-dire l'adresse du serveur auquel les requêtes doivent être envoyées. Rappelons l'application que nous avons examinée dansla partie précédente de cette série . C'était pour surveiller la température moyenne de l'air dans tous les pays en temps réel. Son architecture ressemble à ceci : Partie 2. Parlons un peu de l'architecture logicielle - 5Notre application est située sur le serveur. Disons que toutes les cinq secondes, il envoie des requêtes aux serveurs exploités par des stations météorologiques locales, reçoit des informations de température pour un pays particulier à partir des serveurs et stocke ces informations. Lorsque le client nous demande de "voir la température actuelle de l'air dans le monde", nous renvoyons les informations les plus récemment stockées, triées par pays. Ainsi, notre application agit à la fois comme un serveur (lorsqu'elle traite les demandes des utilisateurs) et comme un client (lorsqu'elle reçoit des informations d'autres serveurs).
Voici un point important : le concept de serveur ne concerne pas un ordinateur spécifique, mais plutôt la relation entre les entités du réseau .
Une architecture client-serveur simple est très rarement utilisée et uniquement pour des applications très simples. Pour les projets vraiment grands et complexes, nous utilisons différentes architectures, que vous rencontrerez à l'avenir. Examinons maintenant un modèle très similaire à l'architecture client-serveur.

Architecture à trois niveaux

Il s'agit d'un modèle architectural qui introduit un troisième module — le stockage de données . Dans ce modèle, les trois niveaux sont généralement appelés couches ou niveaux : Partie 2. Parlons un peu de l'architecture logicielle - 6
  1. La couche client est l'interface utilisateur, également appelée couche de présentation. Il peut s'agir d'un navigateur Web qui reçoit des pages HTML ou d'une interface utilisateur graphique écrite à l'aide de JavaFX. L'essentiel est que cette couche permette à l'utilisateur d'envoyer des requêtes au serveur et de traiter ses réponses.

  2. La couche logique est le serveur qui traite les requêtes/réponses. Souvent, on l'appelle aussi la couche serveur. C'est également là que se déroulent toutes les opérations logiques : calculs mathématiques, opérations sur les données, appels à d'autres services ou stockages de données, etc.

  3. La couche de données est le serveur de base de données : notre serveur interagit avec lui. Cette couche stocke toutes les informations nécessaires au fonctionnement de l'application.

Ainsi, notre serveur assume l'entière responsabilité de l'accès aux données et ne permet pas à l'utilisateur d'y accéder directement.

Avantages d'une architecture à trois niveaux

Une telle architecture nous offre de nombreux avantages, notamment :
  1. La capacité à se protéger contre l'injection SQL (il s'agit d'une attaque sur un serveur ; il s'agit d'envoyer du code SQL qui, une fois exécuté, permet à un attaquant d'affecter notre base de données).

  2. Séparation des données auxquelles nous voulons contrôler l'accès des utilisateurs.

  3. La possibilité de modifier les données avant de les envoyer au client.

  4. Évolutivité (la possibilité d'étendre notre application à plusieurs serveurs qui utiliseront la même base de données.

  5. Des exigences moins strictes sur la qualité des connexions des utilisateurs. Lors de la génération d'une réponse sur le serveur, nous obtenons souvent de nombreuses informations différentes d'une base de données et la formatons, ne laissant que ce dont l'utilisateur a besoin. Cela réduit la quantité d'informations que nous envoyons dans notre réponse au client.

À quelle fréquence les modèles architecturaux doivent-ils être utilisés ?

Si vous connaissez, par exemple, le modèle de conception de méthode d'usine , vous vous êtes probablement demandé quand l'utiliser. Parfois, il est difficile de décider quoi faire : créer un objet en utilisant le nouvel opérateur ou en utilisant une méthode de fabrique. Mais avec le temps, la compréhension vient. Les choses sont un peu différentes en ce qui concerne les modèles architecturaux. Les frameworks d'entreprise sont conçus pour permettre à un programmeur de créer un projet basé sur un modèle généralement accepté. Par conséquent, avant d'apprendre Spring Framework, vous devez absolument comprendre l'architecture client-serveur, l'architecture à trois niveaux et l'architecture MVC. Rassurez-vous : nous allons encore parler de l'architecture MVC. Partie 3. HTTP/HTTPS Partie 4. Les bases de Maven Partie 5. Servlets et l'API Java Servlet. Écrire une application Web simple Partie 6. Conteneurs de servlet Partie 7. Présentation du modèle MVC (Model-View-Controller)
Commentaires
  • Populaires
  • Nouveau
  • Anciennes
Tu dois être connecté(e) pour laisser un commentaire
Cette page ne comporte pas encore de commentaires