Ich habe in letzter Zeit viele Leute über Middleware sprechen hören , aber wie lautet die genaue Definition von Middleware? Wenn ich mir Middleware anschaue, finde ich viele Informationen und einige Definitionen, aber beim Lesen dieser Informationen und Definitionen scheint es, dass sich fast alle „Waren“ mitten in etwas befinden. Also, sind alle Dinge Middleware?
Oder haben Sie ein Beispiel für eine Ware, die keine Middleware ist?
Nehmen wir an, Ihr Unternehmen stellt 4 verschiedene Produkte her, Ihr Kunde hat weitere 3 verschiedene Produkte von weiteren 3 verschiedenen Unternehmen.
Eines Tages dachte der Kunde, warum integrieren wir nicht alle unsere Systeme in ein riesiges System? Zehn Minuten später gab die IT-Abteilung bekannt, dass dies zwei Jahre dauern wird.
Sie (der weise Entwickler) sagten, warum integrieren wir nicht einfach alle verschiedenen Systeme und lassen sie in einer homogenen Umgebung zusammenarbeiten? Der Client-Manager starrt Sie an ... Sie fuhren fort, wir werden eine Middleware verwenden, wir werden die Ein- / Ausgänge aller verschiedenen Systeme und die von ihnen verwendeten Ressourcen untersuchen und dann ein geeignetes Middleware-Framework auswählen.
Immer noch dem Non-Tech-Manager erklären
Mit dem Middleware-Framework in der Mitte wird das erste System X-Zeug produzieren, das System Y und Z würden diese Ausgaben verbrauchen und so weiter.
Tolles Beispiel! Auf diese Weise wird es nicht zu einer heterogenen Umgebung? nicht homogen.
Rabia Naz Khan
Middleware ist eine Datenkomponente (Aggregation + Transformation).
Überaustausch
92
Middleware ist ein schrecklich nebulöser Begriff. Was in einem Fall "Middleware" ist, wird in einem anderen nicht sein. Im Allgemeinen können Sie erwarten, dass etwas, das als Middleware eingestuft ist, die folgenden Eigenschaften aufweist:
Hauptsächlich (normalerweise ausschließlich) Software; benötigt normalerweise keine spezielle Hardware.
Wenn es nicht vorhanden wäre, müssten Anwendungen, die davon abhängen, es als Teil ihrer Anwendung einbeziehen und würden viel Duplizierung erfahren.
Mit ziemlicher Sicherheit werden zwei Anwendungen verbunden und Daten zwischen ihnen übertragen.
Sie werden feststellen, dass dies fast die gleiche Definition wie ein Betriebssystem ist. So kann beispielsweise ein TCP / IP-Stack oder Caching als Middleware betrachtet werden. Ihr Betriebssystem könnte jedoch auch dieselben Funktionen bieten. In der Tat kann Middleware als eine spezielle Erweiterung eines Betriebssystems betrachtet werden, die für eine Reihe von Anwendungen spezifisch ist, die davon abhängen. Es bietet nur einen übergeordneten Service.
Middleware ist Computersoftware, die Softwarekomponenten oder -anwendungen verbindet. Die Software besteht aus einer Reihe von Diensten, mit denen mehrere Prozesse, die auf einem oder mehreren Computern ausgeführt werden, interagieren können.
Ich habe es selbst schon gefunden, aber es scheint, dass Wikipedia sagt, dass alles Middleware ist oder haben Sie ein Beispiel für eine Ware, die keine Middleware ist
Michel
2
Ich würde klarstellen, indem ich ... "eine oder mehrere Maschinen zur Interaktion hinzufüge, die von Haus aus nicht in der Lage wären". Ansonsten stimme zu, nichts falsch mit dieser Antwort.
Jeriley
1
Besser zu sagen "ein oder mehrere [Prozesse] zur Interaktion, die von Haus aus nicht möglich wären".
25.
19
Es gibt (mindestens) drei verschiedene Definitionen, die mir bekannt sind
Im Business Computing ist Middleware eine Messaging- und Integrationssoftware zwischen Anwendungen und Diensten
Beim Spielen ist Middleware so ziemlich alles, was von einem Drittanbieter bereitgestellt wird
In (einigen) eingebetteten Softwaresystemen stellt Middleware Dienste bereit, die von Anwendungen verwendet werden und aus den Funktionen der Hardwareabstraktionsschicht bestehen. Sie befindet sich zwischen der Anwendungsschicht und der Hardwareabstraktionsschicht.
Einfach ausgedrückt ist Middleware eine Softwarekomponente, die Dienste zur Integration unterschiedlicher Systeme bereitstellt.
In einer komplexen Unternehmensumgebung gibt es eine Reihe von Herausforderungen, wenn Sie zwei oder mehr Unternehmenssysteme zusammen integrieren müssen, um miteinander zu kommunizieren. Normalerweise verstehen sich diese Systeme nicht gegenseitig, da sie auf verschiedenen Plattformen mit verschiedenen Sprachen (wie C ++, Java, Cobol usw.) entwickelt wurden.
Hier kommt also Middleware-Software in Bild, die Dienste wie anbietet
Umwandlung von Nachrichtenformaten von einer App in eine andere,
Weiterleiten und Anreichern von Nachrichten neben der Sicherheit,
Verschlüsselung,
Validierung und
Anwenden unterschiedlicher Geschäftsregeln auf diese Nachrichten.
Ein typisches Beispiel für Middleware sind ESB- Produkte wie IBM Message Broker (WMB / IIB), WESB, Datapower XI50, Oracle Fusion, Mule und viele andere.
Daher befindet sich die Middleware hauptsächlich zwischen den dienstverbrauchenden Apps und den Dienstanbieter-Apps und hilft diesen Apps, miteinander zu kommunizieren.
In der Middleware geht es darum, wie unsere Anwendung auf eingehende Anfragen reagiert. Middlewares untersuchen die eingehende Anfrage und treffen Entscheidungen basierend auf dieser Anfrage. Wir können ganze Anwendungen nur mit Middleware erstellen. Zum Beispiel ist ASP.NET ein Webframework, das die folgenden Hauptkomponenten der HTTP-Middleware umfasst.
Ausnahme- / Fehlerbehandlung
Statischer Dateiserver
Authentifizierung
MVC
Wie im obigen Diagramm gezeigt, gibt es in ASP.NET verschiedene Middleware-Komponenten, die die eingehende Anforderung empfangen und an eine C # -Klasse (in diesem Fall eine Controller-Klasse) umleiten.
Middleware ist ein allgemeiner Begriff für Software, die dazu dient, separate, häufig komplexe und bereits vorhandene Programme "zusammenzukleben". Einige Softwarekomponenten, die häufig mit Middleware verbunden sind, umfassen Unternehmensanwendungen und Webdienste.
In der Entwicklung von Webanwendungen gibt es eine gängige Definition: (und ich mache diesen Wortlaut, aber er scheint zu passen): Eine Komponente, die eine HTTP-Anforderung und / oder -Antwort modifiziert, aber (normalerweise) nicht der Antwort dient in seiner Gesamtheit entworfen, um verkettet zu werden, um eine Pipeline von Verhaltensänderungen während der Anforderungsverarbeitung zu bilden.
Beispiele für Aufgaben, die üblicherweise von Middleware implementiert werden:
Gzip-Antwortkomprimierung
HTTP-Authentifizierung
Protokollierung anfordern
Der entscheidende Punkt hierbei ist, dass keiner von diesen vollständig für die Reaktion auf den Kunden verantwortlich ist. Stattdessen ändert jeder das Verhalten in irgendeiner Weise als Teil der Pipeline, sodass die eigentliche Antwort von etwas später in der Sequenz (Pipeline) kommt.
Normalerweise werden die Middlewares vor einer Art "Router" ausgeführt, der die Anforderung (häufig den Pfad) untersucht und den entsprechenden Code aufruft, um die Antwort zu generieren.
Persönlich hasse ich den Begriff "Middleware" wegen seiner Generizität, aber er wird allgemein verwendet.
Middleware steht zwischen Webanwendungen und Webdiensten, die von Haus aus nicht kommunizieren können und häufig in verschiedenen Sprachen / Frameworks geschrieben sind.
Ein solches Beispiel ist die OWIN middleware for .NETUmgebung, bevor die Eigentümer gezwungen waren, Web-Apps in einer Microsoft-Hosting-Software namens zu hosten IIS. Nachdem owin entwickelt wurde, hat es die Kapazität zum Hosten sowohl in IIS als auch in Self Host hinzugefügt. In IIS wurde nur die Unterstützung für Owin hinzugefügt, die als Schnittstelle fungierte. Auch wird es möglich host .NET web apps on Linux via Mono, was wiederum Unterstützung für Owin hinzufügte.
Es wurde auch die Fähigkeit zum Erstellen eines Single Page ApplicationsOwin-Verarbeitungs- Http/ Antwortkontexts hinzugefügt , sodass Sie zusätzlich zu authentication/authorizationowin Logik über OAuth2 hinzufügen können, z. B. Middleware so konfigurieren können, dass eine Klasse registriert wird, die Logik der Benutzerauthentifizierung enthält (z. B. OAuth2-Implementierung) oder Klasse, die Logik zum Verwalten von http-Anforderungs- / Antwortnachrichten enthält. Auf diese Weise können Sie eine Anwendung über ein anderes Datenformat (wie JSON, XML usw., wenn Sie auf das Web abzielen) mit anderen Anwendungen / Diensten kommunizieren lassen.
Einige Beispiele für Middleware: CORBA, Remote Method Invocation (RMI), ...
Bei den oben genannten Beispielen handelt es sich um Software, mit der Sie die Kommunikation zwischen verschiedenen Prozessen (entweder auf demselben Computer oder über das Internet verteilt) sicherstellen können.
Aus meiner eigenen Erfahrung mit Webwork bestand eine Middleware aus Benutzern (dem Webbrowser) und der Backend-Datenbank. Es war die Software, die Dinge aufnahm, die Benutzer eingegeben hatten (Beispiel: Bestellungen für iPads, magische Geschäftslogik, dh prüfen, ob genügend iPads verfügbar sind, um die Bestellung auszuführen) und die Backend-Datenbank aktualisierte, um diese Änderungen widerzuspiegeln.
Es ist nur eine Software oder ein Tool, auf dem Ihre Anwendung ausgeführt wird, und Anwendungsfunktionen in Bezug auf Hochverfügbarkeit, Skalierbarkeit und Integration in andere Software oder Systeme, ohne dass Sie sich um Codeänderungen auf Anwendungsebene kümmern müssen.
Beispiel: Das Betriebssystem, auf dem Ihre Anwendung ausgeführt wird, erfordert eine IP-Änderung. Sie müssen sich in Ihrem Code keine Gedanken darüber machen. Es ist der Middleware-Stack, auf dem Sie die Konfiguration einfach aktualisieren können.
Beispiel 2: Sie haben Probleme mit der Zuweisung des Laufzeitspeichers und haben das Gefühl, dass die Anwendungsnutzung zugenommen hat. Sie müssen nicht viel darüber tun, es sei denn, Sie haben einen Fehler oder einen Engpass in Ihrem Code. Dies kann leicht durch Einstellen der Middleware-Softwarekonfiguration erreicht werden welche Ihre Anwendung läuft.
Beispiel 3: Sie haben mehrere unterschiedliche Software und diese müssen miteinander kommunizieren oder Daten in einem gemeinsamen Format senden, das für alle Systeme verständlich ist. Hier bieten sich Middleware-Systeme an.
Es ist eine Softwareschicht zwischen dem Betriebssystem und den Anwendungen auf jeder Seite eines verteilten Computersystems in einem Netzwerk. Tatsächlich verbindet es heterogene Netzwerk- und Softwaresysteme.
Ich habe es immer als die älteste Software angesehen, die ich installieren musste. Die gesamte App verwendete einen Webserver, einen Datenbankserver und einen Anwendungsserver. Der Webserver ist die Middleware zwischen den Daten und der App.
Wenn ich mich nicht irre, können Sie im Softwareanwendungsframework basierend auf dem Kontextmiddleware die folgenden Rollen in Betracht ziehen , die kombiniert werden können, um bestimmte Aktivitäten zwischen dem Benutzer requestund der Anwendung auszuführen response.
Middleware ist ein schrecklich nebulöser Begriff. Was in einem Fall "Middleware" ist, wird in einem anderen nicht sein. Im Allgemeinen können Sie erwarten, dass etwas, das als Middleware eingestuft ist, die folgenden Eigenschaften aufweist:
Hauptsächlich (normalerweise ausschließlich) Software; benötigt normalerweise keine spezielle Hardware.
Wenn es nicht vorhanden wäre, müssten Anwendungen, die davon abhängen, es als Teil ihrer Anwendung einbeziehen und würden viel Duplizierung erfahren.
Mit ziemlicher Sicherheit werden zwei Anwendungen verbunden und Daten zwischen ihnen übertragen.
Sie werden feststellen, dass dies fast die gleiche Definition wie ein Betriebssystem ist. So kann beispielsweise ein TCP / IP-Stack oder Caching als Middleware betrachtet werden. Ihr Betriebssystem könnte jedoch auch dieselben Funktionen bieten. In der Tat kann Middleware als eine spezielle Erweiterung eines Betriebssystems betrachtet werden, die für eine Reihe von Anwendungen spezifisch ist, die davon abhängen. Es bietet nur einen übergeordneten Service.
Einige Beispiele für Middleware:
quelle
Wikipedia hat eine recht gute Erklärung: http://en.wikipedia.org/wiki/Middleware
Es beginnt mit
Was ist Middleware gibt einige Beispiele.
quelle
Es gibt (mindestens) drei verschiedene Definitionen, die mir bekannt sind
Im Business Computing ist Middleware eine Messaging- und Integrationssoftware zwischen Anwendungen und Diensten
Beim Spielen ist Middleware so ziemlich alles, was von einem Drittanbieter bereitgestellt wird
In (einigen) eingebetteten Softwaresystemen stellt Middleware Dienste bereit, die von Anwendungen verwendet werden und aus den Funktionen der Hardwareabstraktionsschicht bestehen. Sie befindet sich zwischen der Anwendungsschicht und der Hardwareabstraktionsschicht.
quelle
Einfach ausgedrückt ist Middleware eine Softwarekomponente, die Dienste zur Integration unterschiedlicher Systeme bereitstellt.
In einer komplexen Unternehmensumgebung gibt es eine Reihe von Herausforderungen, wenn Sie zwei oder mehr Unternehmenssysteme zusammen integrieren müssen, um miteinander zu kommunizieren. Normalerweise verstehen sich diese Systeme nicht gegenseitig, da sie auf verschiedenen Plattformen mit verschiedenen Sprachen (wie C ++, Java, Cobol usw.) entwickelt wurden.
Hier kommt also Middleware-Software in Bild, die Dienste wie anbietet
Ein typisches Beispiel für Middleware sind ESB- Produkte wie IBM Message Broker (WMB / IIB), WESB, Datapower XI50, Oracle Fusion, Mule und viele andere.
Daher befindet sich die Middleware hauptsächlich zwischen den dienstverbrauchenden Apps und den Dienstanbieter-Apps und hilft diesen Apps, miteinander zu kommunizieren.
quelle
In der Middleware geht es darum, wie unsere Anwendung auf eingehende Anfragen reagiert. Middlewares untersuchen die eingehende Anfrage und treffen Entscheidungen basierend auf dieser Anfrage. Wir können ganze Anwendungen nur mit Middleware erstellen. Zum Beispiel ist ASP.NET ein Webframework, das die folgenden Hauptkomponenten der HTTP-Middleware umfasst.
Wie im obigen Diagramm gezeigt, gibt es in ASP.NET verschiedene Middleware-Komponenten, die die eingehende Anforderung empfangen und an eine C # -Klasse (in diesem Fall eine Controller-Klasse) umleiten.
quelle
Middleware ist ein allgemeiner Begriff für Software, die dazu dient, separate, häufig komplexe und bereits vorhandene Programme "zusammenzukleben". Einige Softwarekomponenten, die häufig mit Middleware verbunden sind, umfassen Unternehmensanwendungen und Webdienste.
quelle
In der Entwicklung von Webanwendungen gibt es eine gängige Definition: (und ich mache diesen Wortlaut, aber er scheint zu passen): Eine Komponente, die eine HTTP-Anforderung und / oder -Antwort modifiziert, aber (normalerweise) nicht der Antwort dient in seiner Gesamtheit entworfen, um verkettet zu werden, um eine Pipeline von Verhaltensänderungen während der Anforderungsverarbeitung zu bilden.
Beispiele für Aufgaben, die üblicherweise von Middleware implementiert werden:
Der entscheidende Punkt hierbei ist, dass keiner von diesen vollständig für die Reaktion auf den Kunden verantwortlich ist. Stattdessen ändert jeder das Verhalten in irgendeiner Weise als Teil der Pipeline, sodass die eigentliche Antwort von etwas später in der Sequenz (Pipeline) kommt.
Normalerweise werden die Middlewares vor einer Art "Router" ausgeführt, der die Anforderung (häufig den Pfad) untersucht und den entsprechenden Code aufruft, um die Antwort zu generieren.
Persönlich hasse ich den Begriff "Middleware" wegen seiner Generizität, aber er wird allgemein verwendet.
Hier finden Sie eine zusätzliche Erklärung, die speziell für Ruby on Rails gilt.
quelle
Middleware
steht zwischen Webanwendungen und Webdiensten, die von Haus aus nicht kommunizieren können und häufig in verschiedenen Sprachen / Frameworks geschrieben sind.Ein solches Beispiel ist die
OWIN middleware for .NET
Umgebung, bevor die Eigentümer gezwungen waren, Web-Apps in einer Microsoft-Hosting-Software namens zu hostenIIS
. Nachdem owin entwickelt wurde, hat es die Kapazität zum Hosten sowohl in IIS als auch in Self Host hinzugefügt. In IIS wurde nur die Unterstützung für Owin hinzugefügt, die als Schnittstelle fungierte. Auch wird es möglichhost .NET web apps on Linux via Mono
, was wiederum Unterstützung für Owin hinzufügte.Es wurde auch die Fähigkeit zum Erstellen eines
Single Page Applications
Owin-Verarbeitungs-Http
/ Antwortkontexts hinzugefügt , sodass Sie zusätzlich zuauthentication/authorization
owin Logik über OAuth2 hinzufügen können, z. B. Middleware so konfigurieren können, dass eine Klasse registriert wird, die Logik der Benutzerauthentifizierung enthält (z. B. OAuth2-Implementierung) oder Klasse, die Logik zum Verwalten von http-Anforderungs- / Antwortnachrichten enthält. Auf diese Weise können Sie eine Anwendung über ein anderes Datenformat (wie JSON, XML usw., wenn Sie auf das Web abzielen) mit anderen Anwendungen / Diensten kommunizieren lassen.quelle
Einige Beispiele für Middleware: CORBA, Remote Method Invocation (RMI), ...
Bei den oben genannten Beispielen handelt es sich um Software, mit der Sie die Kommunikation zwischen verschiedenen Prozessen (entweder auf demselben Computer oder über das Internet verteilt) sicherstellen können.
quelle
Aus meiner eigenen Erfahrung mit Webwork bestand eine Middleware aus Benutzern (dem Webbrowser) und der Backend-Datenbank. Es war die Software, die Dinge aufnahm, die Benutzer eingegeben hatten (Beispiel: Bestellungen für iPads, magische Geschäftslogik, dh prüfen, ob genügend iPads verfügbar sind, um die Bestellung auszuführen) und die Backend-Datenbank aktualisierte, um diese Änderungen widerzuspiegeln.
quelle
Es ist nur eine Software oder ein Tool, auf dem Ihre Anwendung ausgeführt wird, und Anwendungsfunktionen in Bezug auf Hochverfügbarkeit, Skalierbarkeit und Integration in andere Software oder Systeme, ohne dass Sie sich um Codeänderungen auf Anwendungsebene kümmern müssen.
Beispiel: Das Betriebssystem, auf dem Ihre Anwendung ausgeführt wird, erfordert eine IP-Änderung. Sie müssen sich in Ihrem Code keine Gedanken darüber machen. Es ist der Middleware-Stack, auf dem Sie die Konfiguration einfach aktualisieren können.
Beispiel 2: Sie haben Probleme mit der Zuweisung des Laufzeitspeichers und haben das Gefühl, dass die Anwendungsnutzung zugenommen hat. Sie müssen nicht viel darüber tun, es sei denn, Sie haben einen Fehler oder einen Engpass in Ihrem Code. Dies kann leicht durch Einstellen der Middleware-Softwarekonfiguration erreicht werden welche Ihre Anwendung läuft.
Beispiel 3: Sie haben mehrere unterschiedliche Software und diese müssen miteinander kommunizieren oder Daten in einem gemeinsamen Format senden, das für alle Systeme verständlich ist. Hier bieten sich Middleware-Systeme an.
Hoffe, die bereitgestellten Informationen helfen.
quelle
Es ist eine Softwareschicht zwischen dem Betriebssystem und den Anwendungen auf jeder Seite eines verteilten Computersystems in einem Netzwerk. Tatsächlich verbindet es heterogene Netzwerk- und Softwaresysteme.
quelle
Ich habe es immer als die älteste Software angesehen, die ich installieren musste. Die gesamte App verwendete einen Webserver, einen Datenbankserver und einen Anwendungsserver. Der Webserver ist die Middleware zwischen den Daten und der App.
quelle
Wenn ich mich nicht irre, können Sie im Softwareanwendungsframework basierend auf dem Kontext
middleware
die folgenden Rollen in Betracht ziehen , die kombiniert werden können, um bestimmte Aktivitäten zwischen dem Benutzerrequest
und der Anwendung auszuführenresponse
.quelle