Middleware
Middleware (vom Englischen für „Diensteschicht“ oder „Zwischenanwendung“) oder Vermittlungssoftware bezeichnet in der Informatik anwendungsneutrale Programme, die so zwischen Anwendungen vermitteln, dass die Komplexität dieser Applikationen und ihre Infrastruktur verborgen werden.nach: {{Literatur|Autor=W. Ruh u. a.|Titel=Enterprise Application Integration|Verlag=Wiley|Jahr=2001}} Man kann Middleware auch als eine Verteilungsplattform, d. h. als ein Protokoll (oder Protokollbündel) auf einer höheren Schicht als die der gewöhnlichen Rechnerkommunikation auffassen. Im Gegensatz zu niveautieferen Netzwerkdiensten, welche die einfache Kommunikation zwischen Rechnern handhaben, unterstützt Middleware die Kommunikation zwischen Prozessen.
Im Bereich der Computerspieleentwicklung werden hingegen Subsysteme für Teilbereiche wie etwa die Spielphysik als Middleware bezeichnet. Diese Middleware wird oft von Fremdentwicklern hergestellt und angeboten.
Funktionsweise und Einsatz
Middleware stellt eine Ebene in einem komplexen Software
Middleware-Software ist als Standardsoftware von mehreren Herstellern verfügbar. Technisch stellt sie Software-Schnittstellen 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 IP und TCP, darauf aufbauend meist HTTP, darauf aufbauend u. a. SOAP oder 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 demselben Weg zurück.
Als Nachteil von Middleware kann ihre Größe und Schwerfälligkeit genannt werden. Eine Optimierung der Leistungsfähigkeit dieser Programme ist durch den Programmierer nur selten möglich.
Middleware-Kategorien
Eine grobe Unterteilung zum besseren Verständnis:
Anwendungsorientierte Middleware
- Im Mittelpunkt steht neben der Kommunikation vor allem die Unterstützung verteilter Anwendungen. Beispiele sind sowohl allgemeine Architekturen, wie CORBA, JEE oder .NET, als auch komplette Betriebssysteme, wie z. B.
:* MHP (Multimedia Home Platform), Java-basiertes System für das interaktive Fernsehen.
:* MIDP (Mobile Information Device Profile), Java-basiertes System für Mobiltelefone,
Kommunikationsorientierte Middleware
: Hierbei liegt der Schwerpunkt in der Abstraktion von der Netzwerkprogrammierung. Beispiele sind RPC, Java RMI, Web Service
Nachrichtenorientierte Middleware
: Nachrichtenorientierte Middleware arbeitet nicht mit Methoden- oder Funktionsaufrufen, sondern über den Austausch von Nachrichten (messages). Das Nachrichtenformat gibt die eingesetzte Middleware vor. Eine Nachrichtenorientierte Middleware kann sowohl synchron als auch asynchron arbeiten. Bei einer asynchronen Variante wird eine Warteschlange verwendet, in die der message-Produzent seine Nachrichten stellt. Ein Konsument kann die Nachrichten dann konsumieren. Vorteile sind u.a. die vollständige Entkopplung von Nachrichtensender und -empfänger und dass Anwendungen auch weiterarbeiten können, wenn Teilkomponenten ausgefallen sind. Eine Architektur für Nachrichtenorientierte Middleware gibt z. B. JMS vor.
Typische Middlewareprodukte
- Application Link Enabling (ALE) von SAP
* Common Object Request Broker Architecture kurz CORBA von der Object Management Group (OMG)
* D-Bus vom freedesktop.org Projekt
* Element von ENEA
* EAI-Produkte: die meisten beinhalten Middleware-Funktionalität (und zusätzlich Modellierungswerkzeuge und Runtime-Engines für Prozesse)
* Enterprise Service Bus von Oracle
* Fusion von Oracle
* JBoss Enterprise Application Platform von RedHat JBoss
* Membrain Real Time Connector (RTC) von Membrain
* MQSeries von IBM
* ObjectBroker von BEA Systems, (Object Request Broker)
* SAP Exchange Infrastructure von SAP
* Tibco von TIBCO
* Transparent Inter Process Communication (Open Source, ursprünglich von Ericsson entwickelt)
* Visibroker von Borland
* Vitria von Vitria
* WebSphere Application Server von IBM, (Java EE Server)
* X-Gen von Swissrisk AG
* xmlBlaster[http://www.xmlblaster.org/ xmlBlaster] (englisch) – offizielle Startseite; Stand: 5. Dezember 2011 (quelloffen)
* Missing Link Server (MLS)[http://www.wa-mozart.eu/typo3/produkte-wildgeese/missing-link-server/ MLS - Missing Link Server] – Seite bei Mozart Consultung; Stand: 5. Dezember 2011
Siehe auch
- .NET
* CORBA
* DCE
* Enterprise Application Integration
* föderiertes Informationssystem
* IIOP
* JMS
* ODBC
* Portal
* RMI
* RPC
* Systemsoftware
Weblinks
- [http://www.middleware.org/ Middleware.org] (Englisch) – gute Übersicht über Middlewareprodukte
* [http://www.objectweb.org/ ObjectWeb] (Englisch)
Einzelnachweise
bg:Мидълуер
bn:মিডলওয়্যার
ca:Programari intermediari
da:Middleware
Middleware
eo:Mezprogramaro
es:Middleware
fa:میان افزار
Middleware
he:תווכה
hu:Middleware
it:Middleware
ja:ミドルウェア
ko:미들웨어
lmo:Middleware
mn:Дунд програм хангамж
nl:Middleware
pl:Oprogramowanie pośredniczące
pt:Middleware
ru:Связующее программное обеспечение
sk:Middleware
sv:Mellanprogramvara
uk:Підпрограмне забезпечення
vi:Middleware
zh:中间件
Text und Bilder dieses Beitrags stammen aus dem Artikel Middleware der freien Enzyklopädie Wikipedia und stehen unter der GNU Free Documentation License. Die Liste der Autoren ist in der Wikipedia unter dieser Seite verfügbar, der Original-Artikel lässt sich hier bearbeiten.