Java Reference
In-Depth Information
Eine Applikation wird durch Plug-ins erweitert. Plug-ins können
wiederum durch weitere Plug-ins erweitert werden (Kaskade von
Plug-ins).
Die hohe Flexibilität beim Einsatz von Plug-ins führt zu einem höheren Verwaltungs-
aufwand sowohl bei der Implementierung als auch bei der Ausführung. Beispielsweise
müssen die vorhandenen Plug-ins in Anzahl und Art verwaltet werden und der Plug-in-
Manager muss zur Laufzeit entscheiden können, welches der verfügbaren Plug-ins zur
Abarbeitung der aktuellen Aufgabe passt.
Dieser Verwaltungsmechanismus unterliegt in der Regel einem Komponentenmo-
dell 83 und muss nicht implementiert werden, wenn ein geeignetes Framework 84 hierfür
verwendet werden kann. Die Informationen über die Art und Anzahl der verfügbaren
Plug-ins wird durch die Laufzeitumgebung dieses Frameworks zur Verfügung gestellt.
Wird das Plug-in-Muster angewendet, können die Abhängigkeiten zwischen einer spe-
ziellen Applikation und den Plug-ins auf eine gemeinsame Schnittstelle reduziert wer-
den. Die Bereitstellung der Plug-ins, d. h. die Instanziierung von Objekten der verfüg-
baren Plug-in-Klassen, übernimmt hier eine spezielle Komponente der Laufzeitumge-
bung, die über den Plug-in-Manager angesprochen werden kann ( Dependency Injec-
tion , siehe Kapitel 1.10.2).
Der wesentliche Punkt bei einer Plug-in-Architektur ist die voll-
ständige Entkopplung einer speziellen Applikation vom Prozess
der Instanziierung von Objekten der Plug-in-Klassen. Plug-ins
werden über den Plug-in-Manager instanziiert (unter Verwendung
einer Komponente der Laufzeitumgebung).
Plug-ins bringen nicht zwangsläufig größere Einbußen in der Performance einer An-
wendung mit sich. In der Regel werden zur Laufzeit nur diejenigen Plug-ins geladen,
die auch wirklich zur Ausführung der aktuell gewünschten Aufgabe benötigt werden.
Bei komplexen Systemen kann durch die Ladezeiten der Plug-ins jedoch die Perfor-
mance des Programms negativ beeinflusst werden.
83 Ein Komponentenmodell beschreibt in der Softwaretechnik einen Rahmen zur Ausführung von Sys-
temen, welche sich aus einzelnen Komponenten zusammensetzen. Dabei definiert das Komponen-
tenmodell neben einem Container, in dem die einzelnen Komponenten ausgeführt werden (Lauf-
zeitumgebung), auch die Schnittstellen der Komponenten zum Container und zu anderen Kompo-
nenten. Zudem werden zahlreiche Mechanismen wie etwa zur Persistierung, zur Sicherheit oder zur
Versionsverwaltung für Komponenten definiert.
84 Ein Framework offeriert dem nutzenden System Klassen, von welchen es ableiten und somit
Funktionslogik erben kann. Ein Framework bestimmt die Architektur der Anwendung, also die Struk-
tur und Dynamik im Groben. Es definiert weiter die Unterteilung in Klassen und Objekte, die jeweili-
gen zentralen Zuständigkeiten, die Zusammenarbeit der Klassen und Objekte sowie deren Kontroll-
fluss [Gam95].
Search WWH ::




Custom Search