Heim >häufiges Problem >Was sind einige gängige Softwarearchitekturen?

Was sind einige gängige Softwarearchitekturen?

青灯夜游
青灯夜游Original
2020-08-28 15:24:4018877Durchsuche

Gemeinsame Softwarearchitekturmuster: Schichtarchitekturmuster, Client-Server-Muster, Master-Slave-Muster, Pipeline-Filtermuster, Proxy-Muster, Punkt-zu-Punkt-Muster, Ereignisbusmuster, Model-View-Controller (MVC)-Muster, Tafelmodus, Dolmetschermodus usw.

Was sind einige gängige Softwarearchitekturen?

10 gängige Softwarearchitekturmuster

Möchten Sie wissen, wie große Systeme auf Unternehmensebene entworfen werden? Bevor der Hauptteil der Software entwickelt wird, müssen wir eine geeignete Architektur auswählen, die die erforderlichen Funktionalitäten und Qualitätsmerkmale bietet. Daher sollten wir die verschiedenen Architekturen verstehen, bevor wir sie auf das Design anwenden.


Was ist ein Architekturmuster?

Wikipedia: Ein Architekturmuster ist eine allgemeine, wiederverwendbare Lösung für ein häufiges Problem in einem bestimmten Kontext der Softwarearchitektur. Architekturmuster ähneln Software-Designmustern, sind jedoch umfassender.

In diesem Artikel werde ich kurz die Anwendungen, Vor- und Nachteile der folgenden 10 gängigen Architekturmuster erläutern.

1. Layered-Modus
2. Client-Server-Modus
3. Master-Slave-Modus
4. Pipe-Filter-Modus
5. Agent-Modus
6. Point-to-Point-Modus
7. Event-Bus-Modus
8. Modell-View-Controller-Modus
9. Blackboard-Modus
10. Interpreter-Modus

1. Layered-Modus

Dieser Modus wird zum Erstellen von Programmen verwendet, die in mehrere Gruppen von Unteraufgaben zerlegt werden können, von denen jede At Auf einer gewissen Abstraktionsebene stellt jede Schicht Dienste für die vorherige höhere Schicht bereit. Das gebräuchlichste 4-Schichten-System in allgemeinen Informationssystemen ist wie folgt.

  • Präsentationsschicht (auch UI-Schicht genannt)
  • Anwendungsschicht (auch Serviceschicht genannt)
  • Geschäftslogikschicht (auch Domänenschicht genannt)
  • Datenzugriffsschicht (auch Persistenzschicht genannt)
Anwendungsszenarien
  • Allgemeines Desktop-Programm
  • E-Commerce-Webprogramm


2. Client-Server-Modus

Dieser Modus besteht aus zwei Teilen: einem einzelnen Server und mehreren Clients. Eine Serverkomponente stellt Dienste für mehrere Clientkomponenten bereit. Clients fordern Dienste vom Server an und der Server stellt diesen Clients entsprechende Dienste bereit. Darüber hinaus wartet der Server weiterhin auf Clientanforderungen.

Anwendungsszenarien

  • Online-Anwendungen wie E-Mail, Dokumentenfreigabe und Banking


3. Master-Slave-Modus

Dieser Modus besteht aus zwei Teilen : Masterknoten und mehrere Slave-Knoten. Die Master-Knotenkomponente verteilt Aufgaben an mehrere unabhängige Slave-Knotenkomponenten und berechnet das Endergebnis basierend auf den von den Slave-Knoten zurückgegebenen Ergebnissen. 4. Pipe-Filter-Muster

Dieses Muster wird zum Aufbau von Systemen verwendet, die Datenflüsse erzeugen und verarbeiten. Jeder Verarbeitungsschritt ist in einer Filterkomponente gekapselt. Die zu verarbeitenden Daten werden an Pipes gesendet, die zur Pufferung oder Synchronisation genutzt werden können.

  • Anwendungsszenarien
Compiler, aufeinanderfolgende Filter führen Wortsemantikanalyse, Syntaxanalyse, semantische Analyse und Codegenerierung durch

Biodatendisziplin-Workflow

5. Agentenmuster

Das Muster wird verwendet, um ein verteiltes System mit entkoppelten Komponenten aufzubauen. Diese Komponenten interagieren über Remote-Aufrufe miteinander. Die Proxy-Komponente ist für die Kommunikationskoordination mehrerer Komponenten verantwortlich. Der Server stellt ihre Fähigkeiten (Dienste und Funktionen) dem Proxy zur Verfügung, der Client erhält den Dienst vom Proxy, und der Proxy leitet den Client dann an einen entsprechenden Dienst im registrierten Bereich weiter Servicebibliothek.

  • Anwendungsszenarien
Nachrichtenwarteschlangensoftware wie Apache ActiveMQ, Apache Kafka, RabbitMQ und JBoss Messaging


6. Peer-to-Peer-Modus

In diesem Modus wird jede unabhängige Komponente als Peer bezeichnet. Peers können entweder als Clients fungieren, um Dienste von anderen Peers zu erhalten, oder als Server fungieren, um anderen Peers Dienste bereitzustellen. Peers können als Clients, Server oder beides fungieren und jederzeit dynamisch die Rolle wechseln.

Anwendungsszenarien

  • Filesharing-Netzwerke wie Gnutella und G2
  • Multimedia-Protokolle wie P2PTV und PDTP
  • Private Medienprogramme wie Spotify


7 .Ereignis Busmodus

Dieser Modus verarbeitet hauptsächlich Ereignisse und besteht aus 4 Hauptkomponenten: Ereignisquelle, Ereignis-Listener, Kanal und Ereignisbus. Die Ereignisquelle veröffentlicht Nachrichten an einen Kanal auf dem Ereignisbus, und der Listener abonniert einen Kanal und wird über die im abonnierten Kanal veröffentlichten Nachrichten informiert.

Anwendungsszenarien

  • Android Development
  • Notification Service


8. 3 Teile: Modell – enthält Kernfunktionen und Daten, Ansicht – zeigt dem Benutzer Informationen an (mehrere Ansichten können definiert werden), Controller – verarbeitet Benutzereingaben. Dies geschieht durch die Trennung der internen Darstellung von Benutzerinformationen von der Art und Weise, wie sie präsentiert und empfangen werden, wodurch Komponenten entkoppelt werden und eine effiziente Code-Wiederverwendung ermöglicht wird.

Anwendungsszenarien

World Wide Web-Programmarchitektur gängiger Programmiersprachen

Webseiten-Frameworks wie Django und Rails


9. Blackboard-Modus

Dieses Modell hat keine deterministische Lösung Fragen zur Strategie sind sinnvoll. Das Blackboard-Muster besteht aus drei Hauptkomponenten: dem Blackboard – einem strukturierten globalen Speicher, der Lösungsraumobjekte enthält, der Wissensquelle – einem spezialisierten Modul mit eigener Darstellung, und der Steuerungskomponente – dem Auswahl-, Konfigurations- und Ausführungsmodul. Alle Komponenten haben Zugriff auf das Blackboard und neue Datenobjekte können generiert und dem Blackboard hinzugefügt werden. In Blackboard können bestimmte Datentypen anhand von Abgleichsregeln aus vorhandenen Wissensquellen gefunden werden.

Anwendungsszenarien

Spracherkennung

Fahrzeugidentifikation und -verfolgung
  • Proteinstrukturidentifikation
  • Sonarsignalinterpretation


10. Dolmetschermodus

Dieser Modus wird verwendet für Entwerfen Sie Komponenten, die in einer bestimmten Sprache geschriebene Programme interpretieren. Diese Komponente legt hauptsächlich fest, wie Programmcodezeilen ausgewertet werden, bei denen es sich um sogenannte Anweisungen oder Ausdrücke handelt, die in einer bestimmten Sprache geschrieben sind. Der grundlegende Punkt besteht darin, Sprachsymbole zu klassifizieren.

Anwendungsszenarien

Datenbankabfragesprache, wie SQL

Sprache zur Beschreibung von Kommunikationsprotokollen


Vergleich von Architekturmustern

Vorteile und Nachteile.

Ich hoffe, dieser Artikel ist hilfreich für Sie und würde gerne Ihre Gedanken hören. Danke fürs Lesen. ^_^

Das obige ist der detaillierte Inhalt vonWas sind einige gängige Softwarearchitekturen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn