Wrapper

Der Begriff Wrapper (abgeleitet von "to wrap up" : einwickeln) wird im Software-Engineering in verschiedenen Zusammenhängen verwendet, und lässt sich dabei aber grundsätzlich als eine Software - die wiederum mindestens eine oder auch mehrere Software-Komponenten umhüllt - definieren.


Der verwendete Kontext kann sich dabei u.a. auf ein Software-Produkt, eine Software-Komponente, eine Software-Architektur, ein Framework oder auch eine Klasse in objektorientierter Software-Umgebung beziehen. Letztendlich kennt die objektorientierte Umgebung auch ein Entwurfsmuster, das sowohl als Wrapper- wie auch aber manchmal als Adapter-Muster bezeichnet wird.

Inkonsistenzen zwischen Schnittstellen

Das dabei zu lösende Problem besteht aber in jedem Fall in der Erkennung und Überbrückung von Inkonsistenzen zwischen einzelnen Schnittstellen verschiedener Software. Weitere Komplikationen ergeben sich oft erst in deren Zusammenwirken. Um Konflikte zu verhindern und Inkonsistenzen zu überbrücken, wird eine einheitliche Schnittstelle geschaffen, ohne dass die Software oder Komponenten selbst modifiziert werden müssen.

Der begriff Wrapper und seine Interpretationsmöglichkeiten

Um die vielfältige Verwendung des Begriffs Wrapper zu verdeutlichen, sind im Folgenden einige Beispiele zusammengeführt.

Im einfachsten Fall ist ein Wrapper quasi ein Adapter, der inkompatible Systeme miteinander verbindet. Der Wrapper greift zunächst auf die Daten aus der ihm angebotenen Schnittstelle zu, transformiert diese in die gewünschte Form und gibt diese Daten dann an das Zielsystem weiter. Umgekehrt funktioniert dieser Weg sinngemäß.

Wrapper-Architektur

Wrapper-Architektur

In der Praxis ergibt sich häufig die Aufgabenstellung, unterschiedliche Systemstrukturen miteinander zu verbinden. Die Abbildung verdeutlicht diesbezüglich das Beispiel einer Wrapper-Architektur, wo beliebige Datenquellen - d.h. relational wie nicht-relational - Datenbank- und Anwendungssysteme oder auch Datei-Server über Wrapper an einen SQL-Server angebunden werden können. Der Wrapper stellt hierzu eine standardisierte Schnittstelle bereit, so dass aus Sicht des SQL-Servers alle Datenquellen einheitlich angesprochen werden können.

In diesem Zusammenhang ist auch die Java Database Connectivity (JDBC) einzuordnen, die einen Satz von Schnittstellen bezeichnet, um relationale Datenbanksysteme von Java zu nutzen.

Das Wrapper-Framework für den Bau von Wrappern

Beispielsweise ist ein Wrapper-Framework ein Gerüst für den Bau von Wrappern, die in Zusammenhang mit der Realisierung von einheitlichen Funktionsschnittstellen für bestehende Client-Applikationen - die dann dadurch technisch wie fachlich gekapselt sind - verwendet werden.

Ein weiteres Beispiel ist ein sogenannter Security Wrapper zur Laufzeitüberwachung von Anwendungssystemen. Dieser Wrapper hat die Aufgabe, das Verhalten an der Schnittstelle einer Komponente zu beobachten und es dann z.B. mit der vorgegebenen Sicherheitspolice des Gesamtsystems abzugleichen.

Ein letztes Beispiel soll die in Java bekannte Wrapper-Klasse sein. Dabei ermöglichen Wrapper-Klassen die Konvertierung eines primitiven Datentyps in einen String und umgekehrt vom String zurück in einen primitiven Datentyp. Zudem sind sogenannte Wrapper-Objekte für die Kapselung eines einfachen primitiven Datentyps in einem Objekt zuständig.

Die Grundidee des Wrapper-Entwurfsmusters (oder auch Adapter-Muster) ist es, die Anpassung der Schnittstelle an eine andere Schnittstelle zu realisieren, die dann ein Client benutzen kann. Das Wrapper-Muster ermöglicht die Zusammenarbeit von Klassen, die wegen inkompatibler Schnittstellen ansonsten nicht miteinander arbeiten könnten.

Informationen zum Artikel
Deutsch: Wrapper
Englisch: wrapper
Veröffentlicht: 01.11.2013
Wörter: 494
Tags: #Peronenschutz
Links: Adapter, Anpassung, Client, Daten, Datenkapselung