Definition

Middleware

Mitarbeiter: Jan Stafford und Cameron McKenzie

Middleware ist die Software, die von einem Client erzeugte netzwerkbasierte Anfragen mit den vom Client angeforderten Backend-Daten verbindet. Es ist ein Oberbegriff für Software, die dazu dient, einzelne, oft komplexe und bereits existierende Programme zusammenzufügen.

Middleware-Programme werden als lokale Software und Cloud-Services angeboten und können je nach Anwendungsfall unabhängig oder gemeinsam genutzt werden. Während Cloud-Anbieter Middleware in Cloud-Services-Suiten wie zum Beispiel Middleware as a Service (MWaaS) oder Integration Platform as a Service (iPaaS) bündeln, wählen viele Unternehmen immer noch häufiger unabhängige Middleware-Produkte aus, die ihren spezifischen Anforderungen entsprechen.

Warum heißt es Middleware?

Bei netzwerkbasierten Interaktionen kann ein Client oder anforderndes Programm eine Anfrage stellen. Dieser Client ist in der Regel eine Anwendung, die sich im Frontend befindet, wo der Benutzer mit der Software interagiert. Ressourcen wie Datenbanken, Message Queues, NoSQL-Datenspeicher und Dateiserver werden oft als Teil des Backend bezeichnet.

Der Name Middleware ergibt sich aus der Tatsache, dass die Software zwischen der Client-seitigen Anforderung im Frontend und der angeforderten Backend-Ressource sitzt.

So funktioniert Middleware

Alle netzwerkbasierten Anfragen sind im Wesentlichen Versuche, mit Backend-Daten zu interagieren. Diese Daten können so einfach sein wie ein Bild, das angezeigt werden, oder ein Video, das abgespielt werden soll, oder so komplex wie eine Historie von Banktransaktionen.

Die angeforderten Daten können viele verschiedene Formen annehmen und auf verschiedene Weise gespeichert werden, zum Beispiel einem Dateiserver, einer Nachrichtenwarteschlange oder einer Datenbank. Die Rolle der Middleware besteht darin, den Zugriff auf diese Backend-Ressourcen zu ermöglichen und zu erleichtern.

Warum Middleware nutzen?

Middleware erfüllt eine Vielzahl von Funktionen. Erstens verwaltet es die Verbindung zu verschiedenen Backend-Ressourcen. Eine Middleware-Komponente kann also einen Verbindungspool erstellen, um einen schnellen und effizienten Zugriff auf eine gefragte Backend-Datenbank zu ermöglichen. Es kann auch Verbindungen zu Nachrichtenwarteschlangen herstellen. Eine Middleware-Software kann außerdem Verbindungen zu Cloud-basierten Ressourcen wie dem Amazon Simple Storage Service (S3) verwalten.

Zweitens hat Middleware-Software die Fähigkeit, Logik basierend auf der Anfrage des Kunden zu implementieren. Zum Beispiel kann eine Middleware-Komponente erkennen, dass ein Client-Browser, der eine bestimmte Anfrage stellt, die Sprache im Head-Bereich auf Englisch gesetzt hat, und die Anfragen, die er an das Backend stellt, kann so angepasst werden, dass sie nur englische Ergebnisse liefert. Oder ein Server kann den geografischen Standort des Clients, der die Anfrage stellt, anhand der IP-Adresse des Clients identifizieren und Daten an den Client zurücksenden, die Ergebnisse, die geografisch nahe beieinander liegen, priorisieren. Die Fähigkeit, eine Anfrage vom Benutzer entgegenzunehmen, eine Logik auszuführen und dann die Ergebnisse anzupassen, ist eine wichtige Aufgabe von Middleware-Software.

Drittens spielt Middleware eine wichtige Rolle bei Parallelverarbeitung, Load Balancing und sogar beim Transaktions-Management. Middleware-Software kann in der Regel vertikal und horizontal skaliert werden, um eingehende Client-Anfragen auf mehrere Server, virtuelle Maschinen oder Verfügbarkeitszonen in der Cloud zu verteilen. Middleware-Software kann sich auch mit Fragen der Parallelität und des Transaktions-Managements befassen, zum Beispiel mit Problemen, die auftreten können, wenn zwei oder mehr Clients gleichzeitig auf eine bestimmte Backend-Ressource zugreifen oder diese aktualisieren wollen.

Schließlich spielt Middleware eine wichtige Rolle bei der Sicherung des Zugriffs auf Backend-Ressourcen. Middleware-Software kann Clients herausfordern und erfordert sowohl eine sichere Verbindung mit einer Technologie wie SSL als auch eine Authentifizierung mit einer Kombination aus Benutzername und Passwort oder sogar einem digitalen Zertifikat. Anhand dieser Sicherheitsinformationen wird dann geprüft, ob der anfragende Benutzer Zugriffsrechte auf die betreffenden Daten hat. Werden die Rechte bestätigt, werden die Daten vom Middleware-Server über eine sichere und verschlüsselte Verbindung an den Client gesendet.

Middleware-Kategorien

Im Allgemeinen unterscheidet man Middleware in zwei Kategorien: Enterprise Integration Middleware und Platform Middleware.

Enterprise Integration Middleware ermöglicht es Programmierern, Geschäftsanwendungen zu erstellen, ohne dass für jede neue Anwendung eigene Integrationen erstellt werden müssen. Hier unterstützt Middleware die Zusammenarbeit von Software- und Servicekomponenten und stellt eine Funktionsschicht für Datenkonsistenz und Multi-Enterprise- oder B2B-Integration bereit.

Typischerweise bietet Integration Middleware Messaging-Dienste, so dass verschiedene Anwendungen über Messaging-Frameworks wie Simple Object Access Protocol (SOAP), Webservices, Representational State Transfer (REST) oder JavaScript Object Notation (JSON) kommunizieren können. Weitere in dieser Kategorie verwendete Middleware-Technologien sind unter anderem Object Request Broker (ORBs) und Datenrepräsentationstechnologien wie Extensible Markup Language (XML) sowie JavaScript Object Notation (JSON).

Unternehmen können einzelne Middleware-Produkte oder On-Premises- oder Cloud-basierte Application Integration Suiten erwerben.

Platform Middleware unterstützt die Softwareentwicklung und -bereitstellung, indem sie eine Laufzeit-Hosting-Umgebung, zum Beispiel einen Container, für die Programmlogik einer Anwendung bereitstellt. Seine Hauptkomponenten sind In-Memory und Enterprise Application Server sowie Webserver und Content Management. Die Middleware umfasst Webserver, Anwendungsserver, Content-Management-Systeme und ähnliche Tools, die die Anwendungsentwicklung und -bereitstellung unterstützen.

Im Allgemeinen ermöglicht die eingebettete oder externe Communication Middleware die Zusammenarbeit verschiedener Kommunikationswerkzeuge. Diese Kommunikationswerkzeuge ermöglichen die Interaktion zwischen Anwendungen und Diensten. Ressource-Management-Services wie Microsoft Azure Resource Manager, steuern die Programmlogik zur Laufzeit, eine weitere Schlüsselfunktion von Platform Middleware. Weitere Komponenten sind Trusted Platform Modules (TPMs) und In-Memory Data Grids (IMDGs).

Platform-Middleware-Produkte sind auch als spezifische On-Premises- oder Cloud-Service-Tools sowie als Multitool Suites erhältlich. In einer Cloud Suite bietet Middleware as a Service einen integrierten Satz von Plattform-Tools und die Laufzeitumgebung.

Arten von Middleware

Es gibt viele Beispiele für Middleware, die jeweils zur Erfüllung bestimmter Funktionen bei der Verbindung von Anwendungen und Web- und Cloud-Services erstellt wurden. Hier sind einige der am weitesten verbreiteten Arten von Middleware:

  • Messaging Middleware erleichtert die Kommunikation zwischen verteilten Anwendungen und Diensten.
  • Object oder ORB-Middleware ermöglicht die Kommunikation und Interaktion von Softwarekomponenten oder Objekten mit Programmen, wie zum Beispiel Containern, über verteilte Systeme hinweg.
  • Remote Procedure Call (RPC) Middleware stellt ein Protokoll zur Verfügung, mit dem ein Programm einen Dienst von einem anderen Programm auf einem anderen Computer oder Netzwerk anfordern kann.
  • Daten- oder Datenbank-Middleware ermöglicht den direkten Zugriff auf und die Interaktion mit Datenbanken; sie beinhaltet typischerweise SQL-Datenbanksoftware.
  • Transaktions- oder transaktionale Middleware stellt sicher, dass Transaktionen von einer Phase in die nächste über das Transaktionsprozess-Monitoring gelangen.
  • Content-zentrierte Middleware ermöglicht Client-seitige Anfragen nach bestimmten Inhalten und Auszügen und liefert diese; diese ähnelt einer Publishing/Subscribe Middleware wie Apache Kafka.
  • Embedded Middleware erleichtert die Kommunikation und Integration zwischen Embedded Apps und Betriebssystemen.

Die Entwicklung von Middleware

Von 2000 bis etwa 2010 war Middleware-Software gleichbedeutend mit dem Konzept eines Applikationsservers. Da jedoch Cloud Computing immer beliebter wird und Microservices monolithischere, SOA-basierte Systeme ersetzen, verändert sich Middleware.

Anstatt komplette Anwendungen auf Middleware-Servern bereitzustellen, geht der Trend dahin, kleinere, auf Microservices basierende Anwendungen zu entwickeln, diese Mikroservices mit all dem Wissen zu bündeln, das für die Verbindung mit den benötigten Backend-Services erforderlich ist, und die Anwendungen dann in einem leichten, Container-basierten System wie Docker bereitzustellen. Der Container wird dann in einen Cloud-basierten Dienst bereitgestellt.

In diesem Fall wäre die Middleware die Kombination aus dem im Container gehosteten Microservice und der Cloud-Computing-Infrastruktur, die den Container betreibt. Diese Anordnung ist die Richtung, in die die Middleware derzeit tendiert.

Diese Definition wurde zuletzt im Juli 2018 aktualisiert

Erfahren Sie mehr über Software-Entwicklung

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

Dateiendungen und Dateiformate

Gesponsert von:

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchDataCenter.de

Close