Plug-In

Ein Plug-In ist eine Software, die eigenständig eine Teil-Funktionalität abdeckt und damit die Funktionalität eines Gesamtsystems erweitert. Für die Ausführung eines Plug-Ins wird dabei eine übergeordnete Plattform benötigt, die wiederum die benötigten Schnittstellen zur Integration des Plug-Ins zur Verfügung stellt. Plug-Ins sind nicht zu verwechseln mit Add-Ons, welche bestehende Software lediglich optional ergänzen und dabei keinerlei eigene Bibliotheken zur Verfügung stellen, sondern ausschließlich die vorhandenen nutzen.

Die Schnittstellen sind elementarer Bestandteil der Entwicklung von Plug-Ins und werden aus Sicht der Hersteller von Software-Produkten definiert. Für die Steuerung von Plug-Ins wird dabei häufig das Prinzip Inversion auf Control eingesetzt. Damit wird ein Umsetzungsparadigma gekennzeichnet, das mit der objektorientierten Programmierung entstanden ist, und in Zusammenhang mit Frameworks die Steuerung eines Programmteils beschreibt.

Die Schnittstellen von Plug-Ins sind bislang jedoch nicht generell vereinheitlicht oder zu einem offiziellen Standard erklärt worden. Es wurden lediglich bezüglich bestimmter Anwendungen wenige Schnittstellen definiert, die zu einem Quasi-Standard geprägt wurden:

  • Linux Audio Developer´s Simple Plug-In API (LADSPA) definiert eine freie Schnittstelle für Audio-Effekte und Filter unter Linux und
  • Virtual Studio Technology (VST), eine häufig verbreitete Schnittstelle für Software im Audio-Bereich.

Plug-Ins für die optimale Verteilung der Ressourcen

Plug-Ins werden auch unter dem Gesichtspunkt der optimalen Verteilung von Ressourcen wie Speicherausnutzung oder Laufzeitoptimierung verwendet, so dass Software-Hersteller optionale Funktionen ihrer Software-Produkte in Plug-Ins verlagert haben, die dann je nach Bedarf von der Laufzeitumgebung dazu geladen werden.

Im Zusammenhang mit der Verwendung von Plug-Ins in Web-Browsern, auch als Browser-Plug-Ins bezeichnet, haben diese eine besondere Funktion und Stellung. Hier definiert die Netscape-API eine standardisierte Schnittstelle zur Integration von sogenannten Netscape-Plug-Ins, die auch von den meisten Web-Browsern verwendet wird. Eine Ausnahme ist der Internet Explorer, der für seine Plug-Ins, die dort auch als Add-Ons bezeichnet werden, eine Schnittstelle auf der Basis der Microsoft ActiveX-Spezifikation definiert.

Netscape-Plug-Ins definieren aber explizit keine neue Funktionalität des Browsers, sondern stellen lediglich Mechanismen für Audio-Software, Videos und Animationen dar, die der Web-Browser nicht selbst zur Verfügung stellt. Eine Ausnahme macht diesbezüglich wiederum der Internet-Explorer, der durch seine spezifischen Add-Ons dem Browser neue Funktionalität hinzufügt. Damit ist die Verwendung von Browser-Plug-Ins auch immer eine Frage der verwendeten Plattform und damit des eingesetzten Betriebssystems.

Ein weiterer Begriff wurde mit den Server-Plug-Ins geprägt, welche letztendlich spezifische Programme kennzeichnen, die die Funktionen eines Webservers um zusätzliche Dienste erweitern.

Ein Anwendungsbeispiel von Plug-Ins als integraler Bestandteil der Eclipse Entwicklungsumgebung:

Die Erweiterung der Eclipse-Plattform um weitere Entwicklungsumgebungen, z.B. für die Programmiersprachen C, Java, etc., wird mittels Plug-Ins realisiert. Dadurch wird in diesem Falle eine individuelle Arbeitsumgebung geschaffen, bei der alle Werkzeuge auf einer einheitlichen Plattform zusammenarbeiten. Die verschiedenen Plug-Ins werden aber erst geladen, wenn man sie benötigt, wodurch eine optimale Verteilung der Ressourcen der Entwicklungsumgebung erreicht wird. Die Organisation von verschiedenen Plug-Ins ist hier Aufgabe einer sogenannten Platform Runtime. Dabei wird jedem Plug-In eine separate XML- Datei (auch Manifest genannt) zugeordnet, in der sowohl die benötigten als auch die zur Verfügung gestellten Schnittstellen (auch Extension Points genannt) des Plug-Ins festgelegt werden.

Informationen zum Artikel
Deutsch: Plug-In
Englisch: plug-in
Veröffentlicht: 16.11.2013
Wörter: 520
Tags: Software
Links: Indium, Software, Plattform, Schnittstelle, Add-On
Übersetzung: EN
Sharing: