Was ist der Unterschied zwischen Microservices und SOA?

Inhaltsverzeichnis:

Anonim

Die Hauptunterschied zwischen Microservices und SOA ist das Microservice ist eine Art von SOA, die eine Anwendung in eine Gruppe separater Dienste aufteilt, während SOA ein Softwaredesignstil ist, der es den Komponenten der Anwendung ermöglicht, Dienste für die anderen Komponenten über ein Netzwerk bereitzustellen.

Normalerweise ist eine monolithische Anwendung eine einzelne Einheit, die mehrere Softwarekomponenten hostet. Es ist möglich, die Komponenten gemeinsam zu hosten und auszuliefern. Es gibt einige Nachteile bei monolithischen Anwendungen. Darüber hinaus können Programmierer sie mit verschiedenen Technologien implementieren. Daher sind diese Anwendungen nicht flexibel und der Ausfall einer Komponente kann sich auf das gesamte System auswirken. Dies führt dazu, dass diese Anwendungen unzuverlässig sind. Darüber hinaus sind diese Anwendungen nicht skalierbar und erschweren die Entwicklung großer Anwendungen. Microservices und SOA sind zwei Architekturen, die dazu beitragen, die Einschränkungen monolithischer Architekturanwendungen zu überwinden.

Microservices, monolithische Anwendung, REST-API, SOA

Was sind Microservices?

Microservice ist ein Architekturstil, der eine Anwendung in eine Reihe unabhängiger Dienste aufteilt und jeder Dienst separat funktioniert. Daher handelt es sich um eine dezentrale Architektur oder eine feinkörnige Architektur.

Es gibt zwei Arten von Diensten in einem Microservice: Funktions- und Infrastrukturdienst. Ein funktionaler Dienst ist ein Dienst, der die Geschäftslogik einer bestimmten Funktion enthält, während ein Infrastrukturdienst ein Dienst ist, der nicht-geschäftliche und nicht-funktionale Operationen durchführt.

In einem Microservice erfolgt die Kommunikation zwischen Komponenten über eine API-Schicht. Mit anderen Worten, es gibt keine Middleware. Im Allgemeinen hilft eine REST-API, die Kommunikation zwischen den Komponenten herzustellen.

Nehmen Sie beispielsweise eine Shopping-Anwendung an. Benutzerkonto, Produktkatalog und Warenkorb sind separate Funktionen. Jedes Feature ist in separate Aufgaben unterteilt und jede Aufgabe verarbeitet einen separaten Dienst. Die Warenkorbfunktion hat beispielsweise Aufgaben wie Produkt anzeigen und Produktaktualisierungen. Darüber hinaus handhabt der Anzeigeproduktdienst das Anzeigeprodukt, während der Aktualisierungsproduktdienst den Aktualisierungsproduktdienst handhabt. Mit anderen Worten, jeder Dienst führt eine bestimmte Aufgabe aus.

Was ist SOA?

SOA ist eine Art des Softwaredesigns, das mithilfe von Anwendungskomponenten Dienste für die anderen Komponenten bereitstellt. Diese Anwendungskomponenten verbinden sich über Kommunikationsprotokolle miteinander. Ein Dienst ist eine eigenständige Funktionseinheit. Darüber hinaus ist es aus der Ferne zugänglich und kann unabhängig aktualisiert werden.

Es gibt folgende Arten von Diensten in SOA.

Unternehmensdienstleistungen ist ein Service, der den Kerngeschäftsbetrieb ausführt.

Unternehmensdienst implementiert die vom Geschäftsdienst definierte Funktionalität und verwendet den Anwendungsdienst und den Infrastrukturdienst.

Anwendungsservice stellt die Kernfunktionalität des Features dar und kann direkt oder über eine Benutzeroberfläche aufgerufen werden.

Infrastrukturdienst ist ein Servicetyp, der die nicht-geschäftlichen und nicht-technischen Vorgänge abwickelt. (Revision, Sicherheit etc.)

Darüber hinaus helfen verschiedene Sprachen und Komponenten bei der Entwicklung der Komponenten. In SOA gibt es eine Messaging-Middleware wie Enterprise Service Bus (ESB), um die Kommunikation zwischen verschiedenen Komponenten der Anwendung zu ermöglichen.

Nehmen Sie beispielsweise eine Shopping-Anwendung an. Es verfügt über separate Anwendungen wie Benutzerkontoanwendung, Warenkorbanwendung und Produktkataloganwendung. Jede Anwendung besteht aus mehreren kleinen Aufgaben. Darüber hinaus verbinden sie sich alle miteinander, um einen einzigen Anwendungsdienst zu erstellen.

Unterschied zwischen Microservices und SOA

Definition

Microservices beziehen sich auf einen Softwareentwicklungsstil, der eine Variante der serviceorientierten Architektur (SOA) ist, die eine Anwendung als eine Sammlung lose gekoppelter Dienste strukturiert. Im Gegensatz dazu ist SOA eine Art des Softwaredesigns, bei der Dienste durch Anwendungskomponenten über ein Kommunikationsprotokoll über ein Netzwerk für die anderen Komponenten bereitgestellt werden. Dies beschreibt also den Unterschied zwischen Microservices und SOA.

Architekturtyp

Darüber hinaus sind Microservices eine grobkörnige Architektur oder eine dezentralisierte Architektur, während SOA eine feinkörnige Architektur oder eine zentralisierte Architektur ist.

Servicearten

Während Microservices funktionale und Infrastrukturdienste umfasst, umfasst SOA Geschäfts-, Unternehmens-, Anwendungs- und Infrastrukturdienste. Daher ist dies ein weiterer Unterschied zwischen Microservices und SOA.

Kommunikation

Ein weiterer Unterschied zwischen Microservices und SOA besteht darin, dass Microservices eine API-Schicht für die Kommunikation verwenden, während SOA Middleware für die Kommunikation verwendet.

Einfädeln

Darüber hinaus sind Microservices Single-Threaded, während SOA Multithreaded ist. Dies ist also auch ein Unterschied zwischen Microservices und SOA.

Anwendung

Es ist möglich, alle Dienste von Microservices über das gleiche RAS-Protokoll bereitzustellen und darauf zuzugreifen, während SOA hilft, mehrere Systeme mit unterschiedlichen Protokollen in einer heterogenen Umgebung zu integrieren.

Abschluss

Der Hauptunterschied zwischen Microservices und SOA besteht darin, dass Microservice eine Art von SOA ist, die eine Anwendung in eine Gruppe separater Dienste unterteilt. Insgesamt ist SOA ein Softwaredesignstil, bei dem Anwendungskomponenten Dienste für die anderen Komponenten über ein Netzwerk bereitstellen. Kurz gesagt, Microservice ist eine Variante oder ein Typ von SOA.

Verweise:

1.„Mikrodienste“. Wikipedia, Wikimedia Foundation, 25. April 2019, hier verfügbar. 2. „Serviceorientierte Architektur.“ Wikipedia, Wikimedia Foundation, 19. April 2019, hier verfügbar. 3.edureka! YouTube, YouTube, 12. März 2018, hier verfügbar.

Bild mit freundlicher Genehmigung:

1. „Neuer Dienst“ von Xiaoan888 – Eigene Arbeit (CC BY-SA 4.0) über Commons Wikimedia2. „SOA DP Event-Driven Messaging B“ (CC BY-SA 3.0) über Commons Wikimedia

Was ist der Unterschied zwischen Microservices und SOA?