Was versteht man unter Middleware?
Im Gegensatz zur Software arbeitet Middleware völlig unscheinbar im Hintergrund. Wie der Name vermuten lässt, ist Middleware zwischen zwei anderen Systemen oder Lösungen platziert. Dabei handelt es sich um eine Art Zwischenanwendung, die zwischen einem Betriebssystem und der darauf laufenden Software ausgeführt wird.
Vermittlungsebene für Anwendungen
Middleware lässt sich prinzipiell als Tool für die Verlinkung zweier Systeme klassifizieren. Aus diesem Grund spricht man in diesem Zusammenhang oft von einer Übersetzungsebene, welche die Verwaltung und Kommunikation zwischen verschiedenen Systemen ermöglicht. Dies ist auch dann möglich, wenn die beteiligten Anwendungen nicht miteinander kompatibel sind. Komplexe Datenbanken oder Systeme lassen sich dann von beiden Applikationen nutzen, während die Middleware dafür sorgt, dass beide Anwendungen die jeweiligen Daten in vollem Umfang auswerten können. Der durchschnittliche Nutzer interagiert auf täglicher Basis mit einer Vielzahl unterschiedlicher Zwischenanwendungen. Folgende Einsatzszenarien sind möglich:
– Anfragen in einem Webbrowser werden grundsätzlich über eine Middleware ausgeführt. Ein anschauliches Beispiel hierfür ist das Versenden von Kontaktformularen an einen Webserver und die Anmeldung für Newsletter. Alle Anfragen werden in einer zentralen Datenbank gespeichert, nachdem sie von einer Zwischenanwendung in ein verständliches Format übersetzt wurden.
– Internetbrowser sind anhand von Cookies in der Lage, den Besucher eindeutig zu identifizieren und können bei einer Anfrage sofort beginnen, eine dynamische Website zu generieren. Diese ist auf den jeweiligen Nutzer zugeschnitten. Bekannte Beispiele hierfür sind Webdienste wie YouTube oder Netflix, die jedem Nutzer eine personalisierte Startseite bereitstellen.
Im kommerziellen und industriellen Bereich gibt es noch viele weitere Zwischenanwendungen, die eine Verbindung zwischen verschiedenen Betriebssystemen und Applikationen ermöglichen.
Welche Typen von Middleware gibt es?
Abhängig von der Schicht, in der die Zwischenanwendung implementiert wird, lassen sich drei unterschiedliche Typen unterscheiden, und zwar:
- Kommunikationsbasierte Zwischenanwendungen: Diese Middleware ist darauf ausgelegt, die unterschiedlichen Netzwerktypen zu abstrahieren, um eine reibungslose Kommunikation untereinander zu ermöglichen. Ein bekanntes Beispiel sind moderne Webservices, die via Hypertext Transfer Protocol eine Kommunikation zweier Clients über das Internet ermöglichen.
- Anwendungsbasierte Middleware: Zu dieser Kategorie gehören Betriebssysteme und Programmiersprachen, die so konzipiert sind, dass sie plattformübergreifend arbeiten. Ein Beispiel hierfür ist die Programmiersprache Java, die dank der Java Virtual Machine (JVM) für die Entwicklung von Anwendungen für unterschiedliche Plattformen geeignet ist.
- Nachrichtenbasierte Zwischenanwendungen: Bei diesem Typ wird die Kommunikation über Nachrichten realisiert. Die exakte Form der Nachrichten wird dabei von der Middleware bestimmt. Die beteiligten Anwendungen implementieren ausschließlich das Nachrichtenformat, das von der Zwischenanwendung bereitgestellt wird, um eine beidseitige Kommunikation zu realisieren. Kompatible Anwendungen werden mit den benötigten Frameworks ausgestattet, um eine reibungslose Kommunikation zu ermöglichen. Bekannte Beispiele für die nachrichtenbasierte Middleware sind Webdienste oder die beiden populären Formate JSON (JavaScript Object Notation) und XML (Extensible Markup Language).
Wie wird Middleware in einem Unternehmen eingesetzt?
Jede Middleware ist darauf ausgelegt, eine reibungslose Kommunikation zwischen verschiedenen Applikationen zu ermöglichen. Welcher Nachrichtentyp dafür eingesetzt wird, ist in erster Linie von dem Unternehmen, bei dem die Zwischenanwendung zum Einsatz kommt, abhängig. Die Entscheidung wird prinzipiell davon beeinflusst, welche Dienste im Unternehmen eingesetzt werden und welche Art von Daten und anderen Informationen über die Middleware verarbeitet werden soll. Gängige Beispiele für den Einsatz von Zwischenanwendungen im Unternehmen sind beispielsweise die Verwaltung von Finanztransaktionen und Anwendungen für die Authentifizierung von Mitarbeitern. Hierzu gehören Webserver, Datenbanken oder Systeme für die Nachrichtenübermittlung in asynchroner Form. Middleware wird allerdings nicht nur für die Übermittlung von Informationen zwischen zwei Anwendungen genutzt, sondern auch die Distribution von Prozessen kann über Middleware realisiert werden. Dies ist insbesondere bei hohen Lastspitzen auf Servern nützlich.
Charakteristische Merkmale einer Middleware
Damit eine Zwischenanwendung überhaupt als solche bezeichnet werden kann, muss sie diverse Funktionalitäten bieten und bestimmte Merkmale erfüllen, wie zum Beispiel:
– Die Zwischenanwendung muss von den spezifischen Details und der konkreten Implementation des Netzwerks unabhängig sein, in dem sie eingesetzt wird. Außerdem müssen die Protokolle für den Informationsaustausch standardisiert und frei verfügbar sein.
– Darüber hinaus muss die Middleware in der Lage sein, die zugrunde liegende Hardware im System und das eingesetzte Betriebssystem zu ignorieren und eine plattformübergreifende Kompatibilität zu gewährleisten.
– Sie darf keinesfalls Abhängigkeiten bestimmter Programmiersprachen und IT-Systeme mit sich bringen, sondern muss eine möglichst breite Kompatibilität zu allen geforderten Sprachen bereitstellen.
Weiterhin sollte eine Zwischenanwendung unsichtbar agieren. Konkret bedeutet das, dass die Nutzer im Idealfall nichts davon mitbekommen, dass eine Anwendung aus einer Vielzahl einzelner Systeme zusammengesetzt ist.
Im Kontext von Cloud-Computing
Die cloudnative Entwicklung bringt zwar eine Vielzahl an Vorteilen, aber auch einige Komplexitäten mit sich. Cloudnative Anwendungen lasen sich in unterschiedlichen Infrastrukturen bereitstellen, und zwar von Public Clouds bis hin zu On-Premise-Lösungen. Die Architekturen können dabei stark variieren, da cloudnative Apps in der Regel als Micro-Services entwickelt werden und dabei unterschiedliche Frameworks und Programmiersprachen zum Einsatz kommen. Unternehmen setzen vermehrt auf Middleware, um diese komplexen IT-Systeme zu managen und Cloud-Anwendungen schnell und kostengünstig programmieren zu können.
Middleware stellt dabei eine erstklassige Unterstützung für diverse Anwendungsumgebungen bereit, die störungsfrei und konsistent auf verteilten Plattformen ausgeführt werden können.
- Über den Autor
- Aktuelle Beiträge
Daniel Faust ist Redakteur im Content-Team der Biteno und betreut den Blog der Biteno GmbH.