Was ist Middleware?
Middleware beschleunigt die Entwicklung verteilter Anwendungen durch Vereinfachung der Konnektivität zwischen Anwendungen, Anwendungskomponenten und Back-End-Datenquellen.
IBM Newsletter abonnieren
Schwarz-blauer Hintergrund
Was ist Middleware?

Middleware ist eine Software, die eine oder mehrere Arten der Kommunikation oder Konnektivität zwischen zwei oder mehreren Anwendungen oder Anwendungskomponenten in einem verteilten Netz ermöglicht. Indem Middleware die Verbindung von Anwendungen erleichtert, die eigentlich nicht dafür vorgesehen sind, miteinander verbunden zu werden, und Funktionen bereitstellt, die diese Anwendungen auf intelligente Weise miteinander verbinden, rationalisiert sie die Anwendungsentwicklung und verkürzt die Zeit bis zur Markteinführung.

Es gibt viele Arten von Middleware. Einige, wie z. B. Nachrichtenbroker oder Transaktionsverarbeitungsmonitore, konzentrieren sich auf eine spezifische Art der Kommunikation. Andere, wie z. B. Web-Anwendungsserver oder Middleware für mobile Geräte, bieten die volle Reichweite an Kommunikations- und Konnektivitätsfunktionen, die für die Erstellung einer bestimmten Art von Anwendung erforderlich sind. Wieder andere, wie z. B. ein cloudbasiertes iPaaS-Angebot (Integration-Platform-as-a-Service) oder ein Enterprise Service Bus (EBS), fungieren als zentraler Integrationsknotenpunkt für die Verbindung aller Komponenten in einem Unternehmen. (Es gibt sogar Middleware, mit der Entwickler ihre eigene benutzerdefinierte Middleware erstellen können.)

Middleware erhielt ihren Namen, weil die erste Generation von Middleware in der Regel als „Vermittler“ zwischen einem Anwendungs-Front-End – z. B. einem Client – und einer Back-End-Ressource – z. B. einer Datenbank, einer Mainframe-Anwendung oder einer speziellen Hardware – fungierte, von der der Client Daten anfordern konnte. 

Die moderne Middleware von heute geht jedoch weit über diesen Einsatzbereich hinaus. Portal-Middleware umfasst beispielsweise das Front-End der Anwendung sowie Tools für die Back-End-Konnektivität; Datenbank-Middleware umfasst in der Regel einen eigenen Datenspeicher. Und wie Sie weiter unten lesen werden, nutzt eine neu aufkommende Kategorie von Middleware die Container-Technologie, um Entwickler bei der Anbindung an Ressourcen zu unterstützen, die über mehrere Clouds verteilt sind.

Wie Middleware funktioniert

Grundsätzlich ermöglicht Middleware Entwicklern die Erstellung von Anwendungen, ohne dass sie jedes Mal eine benutzerdefinierte Integration erstellen müssen, wenn sie eine Verbindung zu Anwendungskomponenten (Dienste oder Microservices), Datenquellen, Rechenressourcen oder Geräten herstellen müssen.

Dies geschieht durch die Bereitstellung von Diensten, die es verschiedenen Anwendungen und Diensten ermöglichen, über gängige Messaging-Frameworks wie JSON (JavaScript Object Notation), REST (Representational State Transfer), XML (Extensible Markup Language), SOAP (Simple Object Access Protocol) oder Webdienste miteinander zu kommunizieren. In der Regel stellt Middleware auch Dienste bereit, die es Komponenten ermöglichen, die in verschiedenen Sprachen geschrieben wurden – wie Java, C++, PHP und Python –, miteinander zu kommunizieren.

Zusätzlich zu dieser arbeitssparenden Interoperabilität umfasst Middleware auch Dienste, die den Entwicklern bei den folgenden Aufgaben helfen:

  • Konfiguration und Steuerung von Verbindungen und Integrationen. Auf der Grundlage der Informationen in einer Client- oder Front-End-Anfrage kann die Middleware die Antwort der Back-End-Anwendung oder des Dienstes entsprechend anpassen. In der E-Commerce-Anwendung eines Einzelhändlers kann die Middleware-Anwendungslogik Produktsuchergebnisse aus einer Back-End-Bestandsdatenbank anhand der IP-Adresse oder der Standortinformationen im HTTP-Request-Header nach Entfernung zum nächstgelegenen Ladenstandort sortieren.

  • Sichere Verbindungen und Datenübertragung.  Middleware stellt in der Regel eine sichere Verbindung von der Front-End-Anwendung zu den Back-End-Datenquellen her, indem sie Transport Layer Security (TLS) oder ein anderes Netzsicherheitsprotokoll verwendet. Außerdem kann sie Authentifizierungsfunktionen bereitstellen, indem sie Anfragen von Front-End-Anwendungen nach Anmeldeinformationen (Benutzername und Kennwort) oder digitalen Zertifikaten abweist. 

  • Dynamische Verwaltung des Datenverkehrs über verteilte Systeme hinweg. Wenn der Anwendungsdatenverkehr plötzlich sprunghaft zunimmt, kann die Unternehmens-Middleware so skaliert werden, dass Client-Anfragen auf mehrere Server verteilt werden – vor Ort oder in der Cloud. Außerdem können die Funktionen zur gleichzeitigen Verarbeitung Probleme verhindern, wenn mehrere Clients gleichzeitig auf dieselbe Back-End-Datenquelle zugreifen wollen.
Arten von Middleware

Es gibt viele verschiedene Arten von Middleware. Einige konzentrieren sich auf bestimmte Arten von Konnektivität, andere auf bestimmte Anwendungen, Anwendungskomponenten und Geräte; wieder andere kombinieren Middleware-Funktionen für eine bestimmte Entwicklungsaufgabe. Zu den bekanntesten und am häufigsten verwendeten Arten von Middleware-Software gehören:

Messaging-Oriented-Middleware (MOM) ermöglicht es Anwendungskomponenten, die verschiedene Nachrichtenprotokolle verwenden, miteinander zu kommunizieren und Nachrichten auszutauschen. Neben der Übersetzung – oder Umwandlung – von Nachrichten zwischen Anwendungen verwaltet MOM auch das Routing der Nachrichten, damit diese immer in der richtigen Reihenfolge an die richtigen Komponenten gelangen. Beispiele für MOM sind Nachrichtenwarteschlangen und Nachrichtenbroker.

Remote-Procedure-Call-Middleware (RPC) ermöglicht es einer Anwendung, eine Prozedur in einer anderen Anwendung auszulösen – die auf demselben Computer oder auf einem anderen Computer oder Netz läuft –, als ob beide Teil derselben Anwendung auf demselben Computer wären.

Daten- oder Datenbank-Middleware vereinfacht den Zugriff auf und die Interaktion mit Back-End-Datenbanken. In der Regel handelt es sich bei Datenbank-Middleware um eine Form von SQL-Datenbankserver.

Application-Programming-Interface-Middleware (API)  bietet Entwicklern Tools, mit denen sie APIs für ihre Anwendungen erstellen, offenlegen und verwalten können, damit andere Entwickler eine Verbindung zu diesen APIs herstellen können. Einige API-Middlewares enthalten Tools für die Monetarisierung von APIs. Andere Unternehmen können diese APIs dann gegen Zahlung einer Gebühr nutzen. Beispiele für API-Middleware sind API-Verwaltungsplattformen, API-Gateways und API-Entwicklerportale.

Object-Request-Broker-Middleware (ORB) fungiert als Vermittler zwischen einer Anfrage von einem Anwendungsobjekt oder einer Komponente und der Erfüllung dieser Anfrage durch ein anderes Objekt oder eine andere Komponente im verteilten Netz. ORBs arbeiten mit der Common Object Request Broker Architecture (CORBA), die es einer Softwarekomponente ermöglicht, eine Anfrage an eine andere Softwarekomponente zu richten, ohne zu wissen, wo diese andere Komponente gehostet wird oder wie ihre Benutzeroberfläche aussieht – das „Brokering“, d. h. die „Vermittlerfunktion“, kümmert sich um diese Informationen während des Austauschs.

Transaktionsorientierte Middleware bietet Dienste zur Unterstützung der Ausführung von Datentransaktionen über ein verteiltes Netz hinweg. Die bekannteste transaktionsorientierte Middleware sind Transaction Processing Monitors (TPMs), die sicherstellen, dass Transaktionen von einem Schritt zum nächsten gehen – Ausführung des Datenaustauschs, Hinzufügen/Ändern/Löschen von Daten, wo nötig, usw. –, bis zum Abschluss der Transaktion.

Asynchrone Data-Streaming-Middleware repliziert einen Datenstrom in einem Zwischenspeicher und ermöglicht so die gemeinsame Nutzung von Daten durch mehrere Anwendungen. Apache Kafka ist eines der bekanntesten Beispiele für Middleware für Echtzeit-Datenstreaming.

Geräte-Middleware bietet einen gezielten Satz von Integrations- und Konnektivitätsfunktionen für die Entwicklung von Anwendungen für ein bestimmtes mobiles Betriebssystem.

Portal-Middleware stellt Tools und Ressourcen für die Integration von Inhalten und Funktionen aus verschiedenen verwandten Anwendungen „an der Oberfläche“ – d. h. auf einem einzigen Bildschirm – bereit, um eine einzige, zusammengesetzte Anwendung zu schaffen.

Robotik-Middleware vereinfacht den Prozess der Integration von Roboterhardware, -firmware und -software von verschiedenen Herstellern und Standorten.

Enterprise-Application-Integration-Middleware


Enterprise-Application-Integration-Middleware (Middleware für die Integration von Unternehmensanwendungen) ermöglicht es einem Unternehmen, einen Knotenpunkt für die Unternehmensintegration einzurichten – d. h. einen standardisierten Weg, um alle Anwendungen, Anwendungskomponenten, Geschäftsprozesse und Backend-Datenquellen im erweiterten Unternehmen miteinander zu verbinden.

Bis vor etwa zehn Jahren war die am weitesten verbreitete Middleware für die Integration von Unternehmensanwendungen der Enterprise-Service-Bus (ESB), der als Integrationsdrehscheibe innerhalb einer serviceorientierten Architektur (SOA) diente. Heute ermöglicht iPaaS (Integration-Platform-as-a-Service) Unternehmen die Verbindung von Anwendungen, Daten, Prozessen und Diensten über lokale, private und öffentliche Cloud-Umgebungen hinweg – ohne den Aufwand und die Kosten für den Kauf, die Installation, die Verwaltung und die Wartung der Integrations-Middleware (und der darauf laufenden Hardware) im eigenen Rechenzentrum.

Plattform-Middleware


Plattform-Middleware (oder Anwendungsplattform-Middleware) kann die Anwendungsentwicklung noch weitgehender unterstützen und die Anwendungsbereitstellung beschleunigen, indem sie eine Laufzeit-Hosting-Umgebung – wie z. B. eine Java-Laufzeit-Umgebung (Java RE) oder Container oder beides – für die Anwendungs- oder Geschäftslogik bereitstellt. Plattform-Middleware kann Unternehmensanwendungsserver, Webserver und Content-Management-Systeme sowie die anderen oben aufgeführten Middleware-Typen umfassen oder kombinieren.

Middleware und cloudnative Anwendungen

Cloudnativ bezeichnet einen Ansatz zur Anwendungsentwicklung, der grundlegende Cloud-Computing-Technologien nutzt, um eine konsistente Entwicklung, Bereitstellung und Verwaltung in lokalen, privaten oder öffentlichen Cloud-Umgebungen zu ermöglichen. 

In der Praxis bedeutet dies, dass cloudnative Anwendungen heute aus Microservices bestehen und in Containern bereitgestellt werden, die mit Kubernetes orchestriert werden. Microservices sind lose aneinander gekoppelte Anwendungskomponenten, die ihren eigenen Stack umfassen, unabhängig voneinander bereitgestellt und aktualisiert werden können und über eine Kombination aus REST-APIs, Nachrichtenbrokern und Event Streams miteinander kommunizieren. Container sind schlanke ausführbare Dateien, die den Anwendungscode – z. B. Microservices – mit den Betriebssystembibliotheken und Abhängigkeiten, die für die Ausführung dieses Codes auf einer beliebigen herkömmlichen IT- oder Cloud-Infrastruktur erforderlich sind, in einem Paket zusammenfassen.

Zusammen bilden diese und verwandte Technologien eine leistungsstarke Plattform, die auf dem Ansatz des „develop-once-deploy-anywhere“ („einmal entwickeln, überall bereitstellen“) für die Bereitstellung von de facto neuen Anwendungen in der Hybrid-Cloud sowie für die Modernisierung herkömmlicher Legacy-Systeme für die Nutzung in der Cloud basiert. Jedoch führt dieser Ansatz zu einer komplexen Entwicklungsumgebung, die in sich eine noch größere Zahl von Softwareanwendungen, Datenquellen, Programmiersprachen, Tools und verteilten Systemen vereint. 

Middleware kann einen Teil dieser Komplexität beheben, jedoch kann die Ausführung von containerisierten Anwendungen mit herkömmlicher Middleware auch zusätzliche Komplexität und einen Grad von Aufwand für die Infrastruktur mit sich bringen, die durch den Einsatz von Containern eigentlich vermieden werden sollte. Aus diesem Grund haben sich beliebte Plattformen für die Entwicklung von Cloud-Anwendungen wie Cloud Foundry (Link befindet sich außerhalb von IBM) und Red Hat Open Shift dahingehend entwickelt, dass sie containerisierte Middleware enthalten – d. h. Middleware, die so modularisiert ist, dass nur die erforderlichen Konnektivitätsfunktionen in einem Container verpackt werden können.

Weiterführende Lösungen
WebSphere Application Server

Eine flexible, sichere Java-Server-Laufzeitumgebung für Unternehmensanwendungen

WebSphere Application Server kennenlernen
IBM API Connect

Verwalten Sie Ihr API-Ökosystem über mehrere Clouds hinweg, einschließlich der Förderung von Sozialisierungs- und Monetarisierungsmaßnahmen

IBM API Connect kennenlernen
KI-basierte Automatisierung

Von Ihren Geschäftsabläufen bis hin zum täglichen IT-Betrieb – unsere KI-basierte Automatisierung deckt alle Ihre Anforderungen ab. Entdecken Sie, wie führende Unternehmen die Transformation vorantreiben.

KI-basierte Automatisierung kennenlernen
Ressourcen Was ist ein Nachrichtenbroker?

Nachrichtenbroker sind eine anwendungsübergreifende Kommunikationstechnologie, die cloudnative, Microservices-basierte, serverlose und hybride Cloud-Architekturen unterstützt.

Was ist iPaaS (Integration-Platform-as-a-Service)?

iPaaS ist eine cloudbasierte Lösung, die die Integration zwischen lokalen und Cloud-Umgebungen standardisiert und vereinfacht.

Was ist eine REST-API?

REST-APIs bieten eine flexible, schlanke Möglichkeit zur Integration von Anwendungen und haben sich als die gängigste Methode zur Verbindung von Komponenten in Microservices-Anwendungsarchitekturen durchgesetzt.

Machen Sie den nächsten Schritt

IBM MQ liefert bewährtes, leistungsfähiges, sicheres Messaging für Hybrid- und Multi-Cloud-Umgebungen. Verbinden Sie Anwendungen und Microservices in privaten Rechenzentren, in Hybrid- oder Multi-Cloud-Umgebungen und an der Edge Ihres Unternehmens. Erschließen Sie den vollen Wert Ihrer vorhandenen geschäftskritischen Daten, um Einblicke in Echtzeit zu gewinnen. Und schützen Sie Ihr Unternehmen vor falschen Daten und Anwendungsfehlern mithilfe der Funktion zur einmaligen Nachrichtenübermittlung: IBM MQ wird niemals eine Nachricht verlieren oder eine Nachricht mehr als nur einmal zustellen.

Weitere Informationen zu IBM MQ