Middleware
Middleware bezeichnet in der Informatik anwendungsunabhängige Technologien, die Dienstleistungen zur Vermittlung zwischen Anwendungen anbieten, so dass die Komplexität der zugrundeliegenden Applikationen und Infrastruktur verborgen wird (nach W. Ruh u.a.: Enterprise Application Integration, Wiley, 2001).
Middleware stellt eine Ebene in einem komplexen Software-System dar, die als „Dienstleister“ anderen ansonsten entkoppelten Softwarekomponenten die Kommunikation untereinander ermöglicht. Meist erfolgt diese Kommunikation mit Hilfe eines Netzwerkes, das durch die Middleware für die sie benutzenden Softwarekomponenten transparent gemacht wird. Middleware arbeitet dabei auf einem hohen Niveau innerhalb des Schichtenmodells: Ihre Aufgabe ist also nicht die Low-Level-Kommunikation für einzelne Bytes (wie sie beispielsweise schon ein Betriebssystem bereitstellt). Middleware organisiert den Transport komplexer Daten (sog. Messaging), vermittelt Funktionsaufrufe zwischen den Komponenten (sog. Remote Procedure Calls), stellt die Transaktionssicherheit über ansonsten unabhängige Teilsysteme her (Funktion als Transaktions-Monitor) etc.
Middleware-Software ist als Standardsoftware von mehreren Herstellern verfügbar. Technisch stellt sie Software-Schnittstellen und/oder Dienste bereit. Eine Softwarekomponente A, die die Middleware-Schicht benutzen möchte, um mit einer Softwarekomponente B zu kommunizieren, kann diese Schnittstellen benutzen. Die entsprechenden Aufrufe werden von der Middleware-Softwarekomponente über ein Netzwerk weitergereicht (dabei werden in der Regel gebräuchliche Netzwerk-Standardprotokolle (fast immer TCP/IP, darauf aufbauend meist HTTP, darauf aufbauend u.a. SOAP, Web Services verwendet). Auf der Empfängerseite setzt die Middleware die Anforderung in einen Funktionsaufruf an die Software B um. Gegebenenfalls leitet sie die „Antwort“ der Komponente B an Komponente A auf dem selben Weg zurück.
ObjectWeb widmet sich als erstes internationales Konsortium der Erstellung von Open Source Middleware.
Als Nachteil von Middleware kann ihre Größe und Schwerfälligkeit genannt werden. Eine Optimierung der Leistungsfähigkeit dieser Programme ist durch den Programmierer oftmals kaum möglich.
Middleware Kategorien
Ein grobe Unterteilung zum besseren Verständnis:
- Kommunikationsorientierte Middleware
Hierbei liegt der Schwerpunkt in der Abstraktion von der Netzwerkprogrammierung.
z.B.: Java RMI, Web Service
- Anwendungsorientierte Middleware
Im Mittelpunkt steht neben der Kommunikation vor allem die Unterstützung der Verteilte Anwendung.
z.B.: CORBA, J2EE, .NET
Typische Middlewareprodukte
- CICS von IBM, (Applikationsserver)
- NetWeaver von SAP
- Visibroker (Borland)
- Jakarta Tomcat
- ObjectBroker von BEA Systems, Inc., (Object Request Broker)
- BEA Weblogic (J2EE-AppServer)
- WebSphere Application Server von IBM, (J2EE Server)
- JBoss von JBoss Inc. (Open Source J2EE Server)
- MQSeries von IBM
Siehe auch
Verteilte Systeme, Systemsoftware, Föderiertes Datenbanksystem, DCE, CORBA, DCOM, .NET, ODBC
Weblinks
- ObjectWeb (englisch)
- Middleware.org (englisch) Gute Übersicht über Middlewareprodukte