Eclipse - Beschreibung

Eclipse ist eine Plattform, die von Grund auf für die Erstellung integrierter Tools für die Web- und Anwendungsentwicklung konzipiert wurde. Hinsichtlich des Entwurfs bietet die Plattform selbst keine besonders umfangreiche Funktionalität für den Endbenutzer. Der Wert der Plattform liegt darin, was durch sie ermöglicht wird, nämlich die schnelle Entwicklung integrierter Funktionen, die auf einem Plug-in-Modell basiert.

Eclipse bietet ein allgemeines Benutzerschnittstellenmodell für die Arbeit mit Tools. Es kann auf mehreren Betriebssystemen eingesetzt werden und bietet stets eine robuste Integration in das zu Grunde liegende Betriebssystem.  Plug-ins können Programmierungen für die portierbaren APIs von Eclipse bereitstellen und auf allen unterstützten Betriebssystemen unverändert ausgeführt werden.. 

Der Kern von Eclipse ist eine Architektur für das dynamische Erkennen, Laden und Ausführen von Plug-ins. Die Plattform verarbeitet die Grundmechanismen bei der Suche und der Ausführung des korrekten Codes. Die Benutzerschnittstelle der Plattform stellt ein Standardmodell für die Benutzernavigation zur Verfügung.  Jedes Plug-in kann sich dann auf eine kleine Anzahl von Tasks konzentrieren. Zu diesen Tasks können das Definieren, Testen, Animieren, Publizieren, Kompilieren, Beheben von Fehlern, Erstellen von Diagrammen und vieles mehr gehören. Ihren Ideen sind keine Grenzen gesetzt.

Offen konzipierte Architektur

Die Eclipse-Plattform definiert eine offene Architektur, damit jedes Team, das Plug-ins entwickelt, den bestehenden Erfahrungsschatz nutzen kann. Fachleute für Repositories können die Back-Ends erstellen, wohingegen die Erstellung der Endbenutzertools durch die Spezialisten für die Benutzerfreundlichkeit vorgenommen wird. Wenn die Plattform gut konzipiert ist, können wichtige neue Funktionen und Integrationsstufen hinzugefügt werden, ohne dass sich dies auf andere Tools auswirkt.

Die Eclipse-Plattform verwendet das Modell einer allgemeinen Workbench, in die die Tools aus der Sicht des Endbenutzers integriert werden. Von Ihnen entwickelte Tools können mit Hilfe von genau definierten Hooks, den so genannten Erweiterungspunkten, in die Workbench integriert werden.

Die Plattform selbst setzt sich aus Schichten von Plug-ins zusammen, die jeweils Erweiterungen der Erweiterungspunkte untergeordneter Plug-ins definieren, welche wiederum eigene Erweiterungspunkte für weitere Anpassung definieren. Über dieses Erweiterungsmodell können Plug-in-Entwickler eine Vielzahl an Funktionen zu den Grundtools der Plattform hinzufügen. Die Artefakte für jedes Tool (z. B. Dateien und andere Daten) werden durch ein allgemeines Ressourcenmodell der Plattform koordiniert.

Die Plattform bietet dem Benutzer eine einheitliche Methode für das Arbeiten mit den Tools und stellt eine integrierte Verwaltung der Ressourcen bereit, die von Benutzern durch Plug-ins erstellt werden können.

Auch Plug-in-Entwickler profitieren von dieser Struktur.  Die Plattform verwaltet die Komplexität unterschiedlicher Laufzeitumgebungen, z. B. unterschiedliche Betriebssysteme oder Workgroup-Serverumgebungen. Plug-in-Entwickler können sich ganz auf ihre eigentliche Aufgabe konzentrieren und müssen sich nicht um diese Integrationsfragen kümmern.

Plattformstruktur

Die Eclipse-Plattform selbst ist in der Form von Subsystemen strukturiert, die in einem oder mehreren Plug-ins implementiert werden.  Die Subsysteme werden zusätzlich zu einer relativ kleinen Steuerkomponente für die Laufzeit erstellt. Die nachfolgende Abbildung zeigt eine vereinfachte Sicht.

Laufzeitbasis der Plattform, zu der Plug-in-Gruppen Funktionalität hinzufügen

Die Plug-ins, aus denen sich ein Subsystem zusammensetzt, definieren Erweiterungspunkte, an denen der Plattform ein bestimmtes Verhalten hinzugefügt werden kann.  Die folgende Tabelle beschreibt die wichtigsten Laufzeitkomponenten der Plattform, die durch ein oder mehrere Plug-ins implementiert werden.

Plattformlaufzeit

Definiert das Modell für Erweiterungspunkte und Plug-ins. Diese Komponente kann Plug-ins dynamisch erkennen und verwaltet die Informationen über Plug-ins und ihre Erweiterungspunkte in einer Plattformregistrierungsdatenbank. Die Plug-ins werden dann gestartet, wenn dies auf Grund einer Benutzeraktion in der Plattform erforderlich ist. Die Laufzeit wird über das OSGi-Gerüst implementiert.

Ressourcenverwaltung (Arbeitsbereich)

Definiert die API zur Erstellung und Verwaltung von Ressourcen (Projekte, Dateien und Ordner), die durch Tools erzeugt und im Dateisystem abgelegt werden.

Workbench-Benutzerschnittstelle

Implementiert das "Benutzer-Cockpit" für die Navigation in der Plattform. Diese Komponente definiert Erweiterungspunkte für das Hinzufügen von Benutzerschnittstellenkomponenten wie beispielsweise Sichten oder Menüaktionen.  Sie enthält weitere Toolkits (JFace und SWT), mit denen Benutzerschnittstellen erstellt werden können. Die Benutzerschnittstellen-Services sind so strukturiert, dass über eine Untergruppe der Benutzerschnittstellen-Plug-ins Rich Client-Anwendungen erstellt werden können, die von Ressourcenverwaltung und Arbeitsbereichsmodell unabhängig sind. IDE-zentrierte Plug-ins definieren zusätzliche Funktionalität für die Navigation und die Bearbeitung von Ressourcen.

Hilfefunktion

Definiert Erweiterungspunkte für Plug-ins, die Hilfetexte oder andere Dokumentation wie Onlinebücher zur Verfügung stellen.

Teamunterstützung

Definiert ein Modell für die Teamprogrammierung, mit dem Ressourcen verwaltet und versioniert werden können. 

Debugunterstützung

Definiert ein sprachenunabhängiges Debugmodell und Benutzerschnittstellenklassen für die Erstellung von Debuggern und Startprogrammen.

Andere Dienstprogramme

Andere Dienstprogramm-Plug-ins bieten Funktionalität wie z.B. Suche von Ressourcen und deren Vergleichen, die Erstellung von Konfigurationsdateien oder die dynamische Aktualisierung der Plattform von einem Server aus.

Sofort einsatzfähig

Die sofort einsatzfähige Basisplattform ist eine integrierte Entwicklungsumgebung (Integrated Development Environment - IDE), die nicht für einen besonderen Zweck entwickelt wurde und daher universell einsetzbar ist.

Workbench-Fenster

Die Funktionalität der Plattform wird letztendlich durch die Plug-ins bestimmt.  Aus diesem Grund wird Eclipse SDK mit zusätzlichen Plug-ins ausgeliefert, die die Funktionalität von SDK erweitern.

Ihre eigenen Plug-ins können eine Unterstützung für die Bearbeitung und Verarbeitung zusätzlicher Ressourcentypen wie beispielsweise Java-Dateien, in C geschriebene Programme, Word-Dokumente, HTML-Seiten und JSP-Dateien bereitstellen.