Maison >Problème commun >Quelles sont les architectures logicielles courantes ?

Quelles sont les architectures logicielles courantes ?

青灯夜游
青灯夜游original
2020-08-28 15:24:4018876parcourir

Modèles d'architecture logicielle courants : modèle d'architecture en couches, modèle client-serveur, modèle maître-esclave, modèle de filtre pipeline, modèle proxy, modèle point à point, modèle de bus d'événements, modèle-vue-contrôleur ( MVC), mode tableau noir, mode interprète, etc.

Quelles sont les architectures logicielles courantes ?

10 modèles d'architecture logicielle courants

Vous voulez savoir ce que sont les grands systèmes au niveau de l'entreprise sont ? Comment a-t-il été conçu ? Avant de développer le corps principal du logiciel, nous devons choisir une architecture appropriée qui fournit les fonctionnalités et les caractéristiques de qualité requises. Nous devons donc comprendre les différentes architectures avant de les appliquer à la conception.


Qu'est-ce qu'un modèle architectural

Wikipedia : Le modèle architectural est un modèle courant , solution réutilisable à un problème courant dans un contexte donné d'architecture logicielle. Les modèles architecturaux sont similaires aux modèles de conception de logiciels, mais leur portée est plus large.

Dans cet article, j'expliquerai brièvement les applications, les avantages et les inconvénients des 10 modèles architecturaux courants suivants.

1. Mode superposé
2. Mode client-serveur
3. Mode maître-esclave
4. Mode filtre-tuyau
5. Mode proxy
6. Point -mode point
7. Mode bus d'événements
8. Mode modèle-vue-contrôleur
9. Mode tableau noir
10. Mode interprète

1. Modèle en couches

Ce modèle est utilisé pour créer un programme qui peut être décomposé en plusieurs groupes de sous-tâches. Chaque sous-tâche se trouve dans une certaine couche d'abstraction et chaque couche l'est. Le niveau supérieur suivant fournit des services. Le système à 4 couches le plus courant dans les systèmes d’information généraux est le suivant.

  • Couche de présentation (également appelée couche d'interface utilisateur)
  • Couche d'application (également appelée couche de service)
  • Couche de logique métier (également appelée couche de domaine)
  • Couche d'accès aux données (également appelée couche de persistance)
Scénarios d'application
  • Programme de bureau général
  • Programme web de commerce électronique


2. Mode client-serveur

Ce mode consiste en Deux compositions partielles : un seul serveur et plusieurs clients. Un composant serveur fournit des services à plusieurs composants clients. Les clients demandent des services au serveur et le serveur fournit les services correspondants à ces clients. De plus, le serveur continue d'écouter les demandes des clients.

Scénarios d'application

  • Applications en ligne, telles que le courrier électronique, le partage de documents et les opérations bancaires


3. Mode maître-esclave

Ce mode se compose de deux parties : le nœud maître et plusieurs nœuds esclaves. Le composant de nœud maître répartit les tâches vers plusieurs composants de nœud esclave indépendants et calcule le résultat final sur la base des résultats renvoyés par les nœuds esclaves.

Scénario d'application

  • Réplication de base de données, la base de données maître est considérée comme la source faisant autorité et synchronisée avec la base de données esclave
  • Connectez-vous aux périphériques du système de calcul (pilotes maître-esclave)


Mode filtre-tuyau

Ce modèle est utilisé pour construire des systèmes qui produisent et traitent des flux de données. Chaque étape de traitement est encapsulée dans un composant de filtre. Les données à traiter sont envoyées vers des tuyaux, qui peuvent être utilisés pour la mise en mémoire tampon ou la synchronisation.

Scénarios d'application

  • Compilateur, les filtres successifs effectuent l'analyse sémantique des mots, l'analyse syntaxique, l'analyse sémantique et la génération de code
  • Workflow de la discipline des biodonnées


5. Mode agent

Ce modèle est utilisé pour construire des systèmes distribués avec des composants découplés. Ces composants interagissent entre eux via des appels à distance. Le composant proxy est responsable de la coordination des communications de plusieurs composants. Le serveur expose leurs capacités (services et fonctionnalités) au proxy ; le client obtient le service du proxy, puis le proxy redirige le client vers un service approprié dans l'enregistrement ; bibliothèque de services.

Scénarios d'application

  • Logiciel de file d'attente de messages, tel qu'Apache ActiveMQ, Apache Kafka, RabbitMQ et JBoss Messaging


6. Mode peer-to-peer

Dans ce mode, chaque composant indépendant est appelé un peer. Les pairs peuvent soit agir en tant que clients pour obtenir des services d'autres pairs, soit agir en tant que serveurs pour fournir des services à d'autres pairs. Les pairs peuvent agir en tant que clients, serveurs ou les deux, et changer de rôle de manière dynamique à tout moment.

Scénarios d'application

  • Réseaux de partage de fichiers, tels que Gnutella et G2
  • Protocoles multimédias, tels que P2PTV et PDTP
  • Programmes multimédias privés, tels que Spotify


7. Mode bus événementiel

Ce mode gère principalement les événements et comporte 4 composants principaux : la source d'événement, l'écouteur d'événement, le canal et le bus d'événement. La source d'événements publie des messages sur un canal sur le bus d'événements, et l'auditeur s'abonne à un canal et est informé des messages publiés dans le canal abonné.

Scénarios d'application

  • Développement Android
  • Service de notification


8. Modèle Modèle-Vue-Contrôleur

Ce modèle est également appelé modèle MVC. Il divise le programme interactif en trois parties. : Modèle - Contient les fonctionnalités et les données de base, Vue - affiche des informations à l'utilisateur (plusieurs vues peuvent être définies), Contrôleur - gère les entrées de l'utilisateur. Pour ce faire, il sépare la représentation interne des informations utilisateur de la manière dont elles sont présentées et reçues, dissociant les composants et permettant une réutilisation efficace du code.

Scénarios d'application

  • Architecture de programme World Wide Web des langages de programmation traditionnels
  • Cadres de pages Web, tels que Django et Rails


Mode tableau noir

Ce mode est très utile pour les problèmes. qui n’ont pas de stratégie de solution déterministe, cela fonctionne. Le modèle de tableau noir se compose de trois composants principaux, le tableau noir - une mémoire globale structurée contenant des objets spatiaux de solutions, la source de connaissances - un module spécialisé avec sa propre représentation, et le composant de contrôle - le module de sélection, de configuration et d'exécution. Tous les composants ont accès au tableau noir et de nouveaux objets de données peuvent être générés et ajoutés au tableau noir. Dans Blackboard, certains types de données peuvent être trouvés sur la base de règles de correspondance provenant de sources de connaissances existantes.

 Scénarios d'application

  • Reconnaissance vocale
  • Identification et suivi des véhicules
  • Identification de la structure protéique
  • Interprétation du signal sonar


Mode interprète

Ceci Le modèle est utilisé pour concevoir des composants qui interprètent des programmes écrits dans un langage spécifique. Ce composant spécifie principalement comment évaluer les lignes de code de programme, qui sont ce qu'on appelle des instructions ou des expressions écrites dans un certain langage. Le point fondamental est de classer les symboles du langage.

Scénarios d'application

  • Langage de requête de base de données, tel que SQL
  • Langage utilisé pour décrire les protocoles de communication


Comparaison des modèles architecturaux

Le tableau suivant présente les avantages et les inconvénients de chaque modèle architectural.


J'espère que cet article vous sera utile et j'aimerais connaître votre avis. Merci d'avoir lu. ^_^

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn