Java Reference
In-Depth Information
5.3 Das Architekturmuster Plug-in
Das Architekturmuster Plug-in stellt eine Architektur für ein adaptives System dar, bei
der ein Drittanbieter eine lauffähige Software erweitern kann, ohne die Quellen der vor-
handenen Software zu kennen.
5.3.1 Name/Alternative Namen
Plug-in (auch Plugin) kommt aus dem Englischen von "to plug in" und bedeutet "etwas
einstecken". In der Literatur existieren zusätzlich die Begriffe Add-on (auch Addon)
oder Add-in (auch Addin). Die Abgrenzung dieser Begriffe zu Plug-in ist nicht klar defi-
niert. Im Folgenden wird der Begriff Plug-in benutzt.
5.3.2 Problem
Anwendungssoftware soll stabil sein. Sie soll möglichst lange eingesetzt und erweitert
werden können. Dabei soll vorhandene lauffähige Software nicht mehr abgeändert
werden, sie soll aber flexibel - auch durch dritte Parteien - erweitert werden können.
Diese Forderungen sind vom Open-Closed-Prinzip her bekannt (siehe Kapitel 1.8).
Eine Applikation soll auch ohne die Anwesenheit der erweitern-
den Plug-ins lauffähig sein, es kann dann jedoch nicht die erwei-
terte Funktionalität abgedeckt werden. Die Erweiterungen sind oft
für spezielle Benutzergruppen gedacht.
5.3.3 Lösung
Ein System, das im laufenden Betrieb flexibel erweiterbar sein soll, kann nach dem Ar-
chitekturmuster Plug-in entworfen und realisiert werden.
Das Architekturmuster Plug-in strukturiert eine spezielle Anwen-
dung so, dass diese über Erweiterungspunkte in Form von
Schnittstellen verfügt, an denen dann die Plug-ins, die diese
Schnittstellen implementieren, eingehängt werden können. Eine
Anwendung ist aber bereits ohne diese zusätzlichen Erweite-
rungen lauffähig. Die Architektur der Anwendungssoftware muss
Schnittstellen definieren, an deren Stelle zur Laufzeit Kompo-
nenten, die diese Schnittstelle implementieren , treten können.
Plug-ins sind speziell für die entsprechende Anwendung wie etwa Eclipse und nicht für
andere Anwendungen vorgesehen 82 .
Im Gegensatz zu Plug-ins sind EJBs so konzipiert, dass sie in jedem EJB-Container laufen können.
EJBs werden beispielsweise in [Hei10] erläutert.
82
Search WWH ::




Custom Search