Benutzerspezifische Werkzeuge

Middleware

Middleware bezeichnet zunächst das allgemeine Abstraktionskonzept einer Softwareschicht, die zwischen heterogenen, auf unterschiedlichen Plattformen laufenden und über Netzwerke verbundenen Anwendungssystemen und Datenquellen vermittelt und so eine Integration zu unternehmens-/ organisationsübergreifenden Anwendungen ermöglicht (siehe Abbildung 1). Darüber hinaus wird auch die Klasse aller verfügbaren Software-Technologien, die in irgendeiner Form zur Erfüllung dieser Funktion beitragen, als Middleware bezeichnet.

 

"Metadata is data about data; Middleware is software about software."  [Gall]

 Middleware

Abb. 1: Middleware als abstrakte Zwischenschicht

Entwicklungsgeschichte und Motivation

Hinter der Idee der Middleware steht die Kernproblematik der Integration von proprietären, für unterschiedliche Zwecke entwickelten, verteilten und auf unterschiedlichen Hardware/Software-Plattformen laufenden Anwendungen – sog. Legacy-Applikationen – und deren Daten. Gerade im Internetzeitalter, wo es zunehmend gilt, aus bestehenden Funktionen und Bausteinen, die in einzelnen Anwendungen realisiert sind, ganzheitliche, integrierte Gesamtanwendungen zu entwickeln, werden SW-Konzepte und -Technologien benötigt, die eine fortlaufende Anpassung und Weiterentwicklung ermöglichen und von den Details der jeweiligen Realisierung abstrahieren. Wesentliches Ziel von Middleware ist somit die Beherrschung der Komplexität bei verteilten Anwendungssystemlandschaften durch Einführung einer einheitlichen abstrakten Zwischenschicht.
Diese Grundidee geht bereits in die sehr frühen Phasen der Informatik zurück und ist auf der berühmten NATO-Konferenz 1968 [Naur, Randell 1968], die den Terminus Software-Krise hervorbrachte, als Begriff erstmals veröffentlicht. Aber erst mit stärker aufkommender Vernetzung und Verteilten Systemen und der damit verbundenen Komplexität zunehmend unternehmens- und organisationsübergreifender Anwendungen entwickelte sich Middleware ab den 1980er-Jahren zu einem wichtigen und zentralen Forschungs- und Entwicklungsgegenstand der (Wirtschafts-) Informatik. Seit den 1990er-Jahren sind eine Reihe sowohl kommerzieller als auch nicht-kommerzieller Middleware-Ansätze und Produkte verfügbar, die heute die Basis für die Entwicklung komplexer verteilter Anwendungen sind.

Anforderungen und Kernfunktionen

Middleware muss allgemein eine Reihe von Diensten und Schnittstellenfunktionen anbieten, die es verteilten Applikationen/Prozessen erlauben, über Netzwerkgrenzen hinweg zu interagieren und zu kooperieren. Wichtige Aspekte hierbei sind:

  • Bereitstellung lokaler Transparenz (Ortstransparenz), d.h. Verbergen der Verteilung sprich der Tatsache, dass die Gesamtanwendung aus mehreren verteilten Komponenten aufgebaut ist
  • Unabhängigkeit von den Details der Netzwerke und Kommunikationsprotokolle
  • Unabhängigkeit von den Details der Betriebssysteme sowie der Hardware
  • Interoperabilität unterschiedlicher Applikationen
  • Programmiersprachen-Unabhängigkeit
  • Bereitstellung eines einheitlichen, standardisierten Satzes von Schnittstellenfunktionen, die es Entwicklern und Integratoren ermöglichen, aus den verteilten Komponenten und Funktionen wieder verwendbare, portierbare und anpassbare Gesamtapplikationen zu generieren

Kategorien

Da Middleware mehr für ein Abstraktionskonzept als für eine bestimmte Technologie steht, besteht keine völlig geschlossene und einheitliche Beschreibung und Eingrenzung der damit bezeichneten Ansätze. Grundsätzliche Möglichkeiten der Unterscheidung von Middleware sind proprietäre gegenüber standardbasierten sowie asynchrone gegenüber synchronen Ansätzen.
Darüber hinaus kann Middleware bezüglich des zugrunde liegenden Paradigmas der Integration in folgende Kategorien unterteilt werden:

  • Funktionsaufruf-orientiert / Remote Procedure Call RPC / Remote Method Invocation RMI: Ermöglicht einer nutzenden Anwendung (Client) den Aufruf einer entfernten Funktion/Methode, die von einer anbietenden Anwendung (Server) über das Netzwerk zur Verfügung gestellt wird.
  • Nachrichten-orientiert / Message Broker:
    Lose Kopplung von Applikationen über den Austausch von Nachrichten (Publish/ Subscribe).
  • Datenhaltungsorientiert / Remote Database Access:
    Anfragevermittlung an verteilte Datenhaltungssysteme / Datenbanken.
  • Transaktions-orientiert / Transaction Process (TP) Monitore:
    Koordiniert systemweit den Zugriff auf Ressourcen (primär Datenbanken und Dateien) über das Prinzip der Transaktion durch Einhaltung der ACID-Kriterien.
  • Objektorientiert / Object Request Broker:
    Erweiterung des objektorientierten Programmiermodells auf verteilte Objekte, die netzwerk- und teilweise programmiersprachenübergreifend  Anwendungen verbinden (verteilte Objektmodelle).
  • Komponenten-orientiert:
    Setzen auf dem verteilten Objektmodell auf und erweitern dies um die Vision einer zur Laufzeit erzeug- bzw. erweiterbaren Gesamtanwendung, die im Wesentlichen durch „Verdrahtung“ von frei am Markt verfügbaren Komponenten (Business Components) entsteht.

Literatur

Britton, Chris ; Bye, Peter: IT Architectures and Middleware: Strategies for Building Large, Integrated Systems. Amsterdam : Addison-Wesley, 2004

Gall, Nick: The Origin (Coining) of the Term "Middleware" http://ironick.typepad.com/ironick/2003/11/the_origin_coin.html (Abruf 30.08.2011)

Kaib, Michael: Enterprise Application Integration. Wiesbaden : Deutscher Universitäts-Verlag, 2002

Linthicum, David S.: Enterprise Application Integration. Amsterdam : Addison-Wesley, 2000

Naur, Peter ; Randell, Brian (Ed.): NATO Software Engineering Conference, Garmisch 1968, NATO Scientific Affairs Division, Brussels

Autor


 

Prof. Dr.-Ing. Andreas Karcher, Professur für Softwarewerkzeuge und Methoden für integrierte Anwendungen, Fakultät für Informatik, Universität der Bundeswehr, Werner-Heisenberg-Weg 39, D-85577 Neubiberg

Autoreninfo


Zuletzt bearbeitet: 29.11.2016 11:13
Letzter Abruf: 24.03.2017 13:10
Artikelaktionen