Middleware
Middleware (aus dem Englischen, lehnübersetzt Zwischenanwendung oder übertragen auch Diensteschicht) bezeichnet in der Informatik anwendungsneutrale Programme, die so zwischen Anwendungen vermitteln, dass die Komplexität dieser Applikationen und ihre Infrastruktur verborgen werden.[1] Man kann Middleware auch als eine Verteilungsplattform, d. h. als ein Protokoll (oder Protokollbündel) auf einer höheren Schicht als jener 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 Teilsysteme (oder auch sogenannte 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 Plattform in einem komplexen Softwaresystem dar, die als „Dienstleister“ anderen ansonsten entkoppelten Softwarekomponenten den Datenaustausch 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) usw.
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, Jakarta EE oder das .Net-Framework, 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, 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
- ColdFusion von Adobe
- 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
- Lobster_data von LOBSTER DATA GmbH
- MIDbridge ® von MID Technologien GmbH
- EAI-Produkte: die meisten beinhalten Middleware-Funktionalität (und zusätzlich Modellierungswerkzeuge und Runtime-Engines für Prozesse)
- Enterprise Service Bus von Oracle
- E2E Bridge Integrations Middleware
- Fusion von Oracle
- WildFly Application Server von Red Hat JBoss
- Membrain Real Time Connector (RTC) von Membrain
- MQSeries und CICS von IBM
- ObjectBroker von BEA Systems, (Object Request Broker)
- Orchestra (IT), eine Message Oriented Middleware von der soffico GmbH[2]
- SAP Process Integration von SAP
- TIBCO von TIBCO
- Transconnect der SQL Projekt AG
- Transparent Inter Process Communication (Open Source, ursprünglich von Ericsson entwickelt)
- VisiBroker von Borland
- BusinessWare von Vitria
- webMethods von der Software AG
- WebSphere Application Server von IBM, (Jakarta EE Server)
- X-Gen von valantic FSA[3]
- xmlBlaster[4] (quelloffen)
- OPC Router von inray Industriesoftware GmbH (Industrie-4.0-Middleware)[5]
- ADAPTIVE Communication Environment (quelloffen)
Siehe auch
- Distributed Computing Environment (DCE)
- Enterprise Application Integration
- föderiertes Informationssystem
- IIOP
- Open Database Connectivity (ODBC)
- Portal (Informatik)
- Systemsoftware
- Verteiltes System
Weblinks
- ObjectWeb (englisch)
Einzelnachweise
- ↑ nach: W. Ruh u. a.: Enterprise Application Integration. Wiley, 2001.
- ↑ Orchestra
- ↑ valantic FSA X-Gen
- ↑ xmlBlaster (englisch) – offizielle Startseite; Stand: 5. Dezember 2011
- ↑ https://www.opc-router.de
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.