Wikipedia · einfach zusammengefasst · Stand
Middleware
Middleware ist eine zusätzliche Schicht zwischen Betriebssystem und Anwendungen. Im Bereich der Computerspieleentwicklung werden hingegen Teilsysteme (oder auch …
Inhalt5 Abschnitte
Grundidee und Bedeutung
Middleware bezeichnet in der Informatik anwendungsneutrale Programme, die zwischen Anwendungen vermitteln. Sie sorgt dafür, dass Anwendungen miteinander arbeiten können, ohne dass jede Anwendung die ganze Komplexität der anderen Anwendung, des Netzwerks oder der technischen Infrastruktur kennen muss. Man kann Middleware auch als Verteilungsplattform verstehen: Sie bildet ein Protokoll oder Protokollbündel auf einer höheren Schicht als die gewöhnliche Rechnerkommunikation.
Im Unterschied zu einfachen Netzwerkdiensten, die vor allem die Kommunikation zwischen Rechnern ermöglichen, unterstützt Middleware die Kommunikation zwischen Prozessen. Sie liegt als zusätzliche Schicht zwischen Betriebssystem und Anwendungen. In der Computerspieleentwicklung wird der Begriff etwas anders verwendet: Dort bezeichnet Middleware oft Teilsysteme oder Subsysteme für bestimmte Bereiche, zum Beispiel Spielphysik, die häufig von Fremdentwicklern angeboten werden.
Funktionsweise
Middleware stellt in einem komplexen Softwaresystem eine Plattform dar, die als Dienstleister für andere Softwarekomponenten arbeitet. Diese Komponenten sind sonst voneinander entkoppelt, können aber über die Middleware Daten austauschen. Häufig geschieht dies über ein Netzwerk, das für die nutzenden Softwarekomponenten transparent gemacht wird. Transparent bedeutet hier: Die Komponenten müssen sich nicht direkt mit den technischen Details des Netzwerks beschäftigen.
Middleware arbeitet auf einem hohen Niveau im Schichtenmodell. Ihre Aufgabe ist nicht die Low-Level-Kommunikation einzelner Bytes, wie sie zum Beispiel ein Betriebssystem bereitstellt. Stattdessen organisiert sie den Transport komplexer Daten, also Messaging, vermittelt Funktionsaufrufe zwischen Komponenten, sogenannte Remote Procedure Calls, und kann Transaktionssicherheit über unabhängige Teilsysteme herstellen. In diesem Fall wirkt sie als Transaktions-Monitor.
Technischer Ablauf und Protokolle
Middleware-Software ist als Standardsoftware von mehreren Herstellern verfügbar. Technisch stellt sie Software-Schnittstellen oder Dienste bereit. Wenn eine Softwarekomponente A über Middleware mit einer Softwarekomponente B kommunizieren möchte, nutzt A diese Schnittstellen. Die Aufrufe werden dann von der Middleware über ein Netzwerk weitergeleitet.
Dabei werden in der Regel verbreitete Netzwerk-Standardprotokolle verwendet: fast immer IP und TCP, darauf aufbauend meist HTTP, und darauf aufbauend unter anderem SOAP oder Web Services. Auf der Empfängerseite setzt die Middleware die Anforderung in einen Funktionsaufruf an Software B um. Falls Software B eine Antwort liefert, leitet die Middleware diese Antwort auf demselben Weg an Software A zurück.
Ein Nachteil von Middleware kann ihre Größe und Schwerfälligkeit sein. Außerdem ist eine Optimierung der Leistungsfähigkeit solcher Programme durch den Programmierer nur selten möglich.
Wichtige Kategorien
Eine grobe Unterteilung unterscheidet mehrere Middleware-Kategorien. Anwendungsorientierte Middleware unterstützt neben der Kommunikation vor allem verteilte Anwendungen. Beispiele sind allgemeine Architekturen wie CORBA, Jakarta EE oder das .Net-Framework sowie komplette Betriebssysteme wie MHP, die Multimedia Home Platform für interaktives Fernsehen, und MIDP, das Mobile Information Device Profile für Mobiltelefone. Beide genannten Systeme sind Java-basiert.
Kommunikationsorientierte Middleware hat ihren Schwerpunkt in der Abstraktion von Netzwerkprogrammierung. Sie vereinfacht also den Umgang mit Netzwerkkommunikation. Beispiele sind RPC, RMI und Web Service.
Nachrichtenorientierte Middleware arbeitet nicht über Methoden- oder Funktionsaufrufe, sondern über den Austausch von Nachrichten, sogenannten Messages. Das Nachrichtenformat wird von der eingesetzten Middleware vorgegeben. Sie kann synchron oder asynchron arbeiten. Bei einer asynchronen Variante werden Nachrichten in eine Warteschlange gestellt: Ein Message-Produzent legt Nachrichten dort ab, ein Konsument kann sie später konsumieren. Vorteile sind die vollständige Entkopplung von Sender und Empfänger sowie die Möglichkeit, dass Anwendungen weiterarbeiten können, wenn Teilkomponenten ausgefallen sind. Eine Architektur für nachrichtenorientierte Middleware gibt zum Beispiel JMS vor.
Typische Produkte
Zu typischen Middlewareprodukten oder Technologien zählen unter anderem ColdFusion von Adobe, Application Link Enabling von SAP, CORBA von der Object Management Group, D-Bus vom freedesktop.org-Projekt, Enterprise Service Bus von Oracle, WildFly Application Server von Red Hat JBoss, MQSeries und CICS von IBM, SAP Process Integration von SAP, TIBCO, WebSphere Application Server von IBM und webMethods von der Software AG.
Weitere im Artikel genannte Beispiele sind Element von ENEA, Lobster_data von LOBSTER DATA GmbH, MIDbridge von MID Technologien GmbH, EAI-Produkte mit Middleware-Funktionalität, E2E Bridge Integrations Middleware, Fusion von Oracle, Membrain Real Time Connector, ObjectBroker von BEA Systems, Orchestra als Message Oriented Middleware, Transconnect, Transparent Inter Process Communication, VisiBroker, BusinessWare, X-Gen, xmlBlaster, OPC Router als Industrie-4.0-Middleware und ADAPTIVE Communication Environment.