Eclipse dient als Basis für den Rich Client

24.06.2004 von Sascha Alexander
Die quelloffene Plattform für Entwicklungswerkzeuge "Eclipse" bietet mittlerweile derart viele Funktionen und Komponenten, dass sie Benutzer leicht überfordert. Version 3.0 verspricht hier Hilfe. Zugleich soll Eclipse künftig nicht mehr nur als Programmierumgebung, sondern auch als Framework für Rich-Client-Anwendungen fungieren.

Seit der Freigabe der Version 1.0 vor gut drei Jahren durch die IBM-Tochter OTI hat sich das Eclipse-Projekt stetig weiterentwickelt, ist aber auch immer komplexer geworden. Grund hierfür ist die große Flexibilität und Offenheit, mit der sich für die diese quelloffene Plattform Entwicklung Entwicklungswerkzeuge erstellen und einbinden lassen.

Anders als traditionelle integrierte Entwicklungsumgebungen (INtegrated Development Environment= IDEs), die eher monolithisch konzipiert sind, besitzt Eclipse einen relativ kleinen Kern, der sich mit Hilfe von Plugins beliebig erweiterbar ist. Immer mehr Entwickler, Hersteller und Dienstleister nutzen heute diese Möglichkeit, um individuelle Arbeitsumgebungen aufzubauen oder eigene Funktionen und Tools in den Markt zu bringen. Dabei kommt ihnen entgegen, dass Eclipse und Plugins sich aufgrund der Lizenzierung auf der Basis einer Common Public License kostenlos für die kommerzielle und private Nutzung verwenden lassen.

Zwar ist Eclipse grundsätzlich programmiersprachenunabhängig und unterstützt Werkzeuge, die beispielsweise mit Java, HTML, C, C++, Cobol, Java Serverpages, PHP, Enterprise Javabeans, XML oder Grafikformaten wie GIF arbeiten. Doch ist das Projekt vor allem dank seiner ebenfalls aus Plugins bestehenden Programmierumgebung "Java Development Tools" (JDT) populär geworden. Diese stellt eine komplette IDE dar, die sich laut Eclipse mit kommerziellen Produkten messen lassen kann und in Version 3.0 die Standard Edition des Java 2 SDK in Version 1.4 verwendet. Sie wird zusammen mit allen übrigen Bestandteilen als "Eclipse SDK" ausgeliefert und verfügt über Features wie exploratives Programmieren durch inkrementelle Übersetzung, Refactoring, präzise Symbolsuche, intelligente Codierungshilfen, strukturiertes Vergleichen von Code oder das Debugging mit dynamischem Nachladen von geänderten Klassen.

Die breite Unterstützung für Eclipse und speziell JDT hat mittlerweile zu einer kaum mehr zu überschauenden Fülle an freien oder kostenpflichtigen Plugins geführt. So gehen aktuelle Schätzungen davon aus, dass neben den etwa 70 Plugins, die das zuständige Eclipse-Konsortium bietet, weitere 1700 Bausteine erhältlich sind. Die Bandbreite reicht dabei von eigenentwickelten, nur unternehmensintern gebrauchten Plugins über einfache Funktionen für das Generieren von ZIP-Files bis hin zu mächtigen Entwicklungsumgebungen wie beispielsweise "Together" von Borland oder IBMs "Websphere Studio Application Developer", der wie schätzungsweise 50 weitere kommerzielle Produkte auf Eclipse basiert.

Highlights in Version 3.0

• Ausbau zur Applikationsplattform mit Hilfe der neuen Rich Client Platform.

• Verbesserte Skalierbarkeit der Benutzerschnittstelle

• Mehr Hilfe bei der Einarbeitung

• Bessere Unterstützung komplexer Arbeitsabläufe und Möglichkeit, lang dauernde Operationen im Hintergrund auszuführen, ohne die Arbeit des Entwicklers zu bremsen.

• Details unter: Eclipse.org.

Zur Vielfalt von Eclipse tragen zudem die diversen Projekte innerhalb der Community bei. So läuft neben dem eigentlichen Eclipse-Projekt das "Eclipse Tools Project", das sich mit der Entwicklung zusätzlicher Werkzeuge beschäftigt. Hier finden sich in Subprojekten beispielsweise das "Hyades"-Framework für Testen, Monitoring und Profiling von Java-Anwendungen und das "C/C++ Development Tools Project", das an einer umfangreichen IDE für diese Programmiersprachen arbeitet. Das Jaxa/XML-basierende Generierungs-Tool "Eclipse Modeling Framework" soll es ferner gestatten, Anwendungen und Plugins ausgehend von einem strukturierten Datenmodell zu erstellen. Als drittes Vorhaben vereint das "Eclipse Technology Project" eine Reihe von Aktivitäten rund um neue Technologien und die Zukunft von Eclipse. Themen sind beispielsweise die aspektorientierte Entwicklung in Java, die Entwicklung von Schulungsprogrammen und Web-Services. Mit dem "Eclipse Web Tools Platform Project" ist zudem ein Top-Level-Projekt derzeit in der Diskussion. Dieses will sich mit der Erweiterung der Eclipse-Plattform als Basis für Web-Entwicklungswerkzeuge beschäftigen.

Für den Endanwender wird derweil die große Vielfalt und Flexiblität von Eclipse zur Last - vor allem wenn die Arbeitsumgebungen beziehungsweise Produkte wachsen. So ist man bei der Suche nach geeigneten Plugins weitgehend auf die Hilfe einschlägiger Sites wie http://eclipse-plugins.2y.net, Newsgroups, Literatur oder die Selbstdarstellungen der Plugin-Provider angewiesen. Zwar gibt es ein klares Programmiermodell für Plugins, eine offizielle Zertifizierung existiert hingegen nicht.

Benötigt der Anwender über diese Ressourcen hinaus aber Support oder verliert den Überblick bei den Lizenzen, so muss er sich mit einzelnen Plugin-Providern auseinander setzen - ein Argument, das gern von traditionellen IDE-Anbietern gegen Eclipse und Open Source ins Feld geführt wird. Auf der ersten deutschen Eclipse-Konferenz, die dieser Tage in Heidelberg stattfand, rieten daher die zahlreich angereisten Dienstleister, eine Einführung von Eclipse im großen Stil nicht ohne professionelle Hilfe anzugehen.

Ferner fühlen sich Benutzer bei der Einrichtung und Verwaltung der Benutzeroberfläche (Workbench) überfordert, da in ihr Editoren und Fenster (Views) beliebig zu so genannten Perspektiven kombiniert und angeordnet werden können. Ebenso lassen sich in eine geöffnete Perspektive Views und jeder beliebige Editor hinzufügen - auch wenn diese in einem anderen Plugin definiert wurden. "Wir müssen versuchen, dass wir nicht sämtliche Funktionalität sämtlichen Benutzern zeigen", erklärte Erich Gamma, Leiter des Schweizer OTI-Labors in Zürich, auf der Veranstaltung.

Version 3.0 verspricht nun, stärker die Bedürfnisse beim Einsatz großer und komplexer Produkte zu berücksichtigen, und wartet mit zahlreichen Detailverbesserungen auf. Von manchen Kritikern als bloße Oberflächenkosmetik verurteilt, erhielt hierzu beispielsweise die Workbench ein neues Aussehen, das laut Gamma den bisherigen Windows-2000-Look durch eine nativ erscheinende Oberfläche für das jeweilige Betriebssystem ablöst. Auch die Gewöhnung an die Arbeitsumgebung soll nun leichter sein. Letztere lasse sich jetzt derart vorkonfigurieren, dass zunächst nur eine vordefinierte Auswahl aller Funktionen angezeigt werde. Damit solle laut Eclipse-Konsortium künftig vermieden werden, dass wie bisher manche Benutzer beim Anblick von Eclipse regelrecht "überwältigt und entmutigt" werden.

Beispiele für die verbesserte Benutzerführung sind die lang ersehnte Funktion, Quelltextabschnitte wie in einem klassischen Falten-Editor auf- und zuklappen zu können, sowie weitere Optionen bei semantischen Syntax-Hervorhebungen, zu denen etwa das Einfärben statischer Klassenvariablen im Java-Editor gehört. Mit neuen "Quick Fixes" löst der Code-Assistent zudem laut Konsortium noch mehr Probleme und generiert etwa Getter- und Setter-Methoden für den Benutzer auf Knopfdruck. Musste dieser bislang komplexe Arbeitsschritte in der Workbench nachvollziehen, kann er sich fortan durch "Cheat Sheets" helfen lassen, die ihn mit Informationen durch den Workflow leiten.

Speziell zur Steigerung der Benutzerproduktivität ist es jetzt möglich, lang dauernde Operationen wie "Builds" und "Suchen" auch asynchron im Hintergrund auszuführen, um die Wartezeiten für den Benutzer zu verkürzen. Ebenso soll die Suche nach neuen oder überarbeiteten Features über den Eclipse-Client, die bisher ein Weiterarbeiten verhinderte, asynchron oder geplant erfolgen können. Außerdem kann Eclipse jetzt im laufenden Betrieb den Workspace wechseln, in dem die Entwicklungsumgebung sämtliche Arbeitsdaten verwaltet. (Ein Überblick zu den neuen Features findet sich hier).

Doch Version 3.0 soll mehr sein als nur ein Update und neben dem Einsatz als Entwicklungsumgebung und "Ökosystem" für Werkzeuge auch neue Anwendungsgebiete erschließen. So zeigte sich schon früher beim Einsatz dass das Komponentenmodell von Eclipse, die GUI-Elemente (Widgets, das Hilfesystem oder der Update-Manager nicht nur für IDEs nützlich sind. Vielmehr lassen sich diese als ein Framework einsetzen, um im Vergleich zu HTML-Programmen funktionsreichere Java-basierende Desktop-Anwendungen modular über Plugins aufzubauen und zu verwalten. Eclipse stellt demnach die Laufzeitumgebung dar, während Entwickler sich auf das Erstellen neuer Anwendungslogik konzentrieren können.

Laut Christian Wege, IT-Berater bei Daimler-Chrysler und Sprecher auf der Veranstaltung, war es zwar schon in der Version 2.1 von Eclipse möglich, derartige Rich Clients zu erstellen. Doch war die Entwicklung umständlich, der Plattformcode musste stellenweise geändert werden, und die allgemeinen Funktionen waren verstreut implementiert. Die Eclipse-Architektur und das API sollten deshalb mit Version 3.0 so umgebaut werden, dass sich die Komponenten für die Anwendungsprogramme in einer eigenen Distribution weitgehend ohne die IDE-spezifischen Features wie den Workspace vereinen ließen. Heraus kam die "Rich Client Platform" (RCP).

Sie verwendet den Eclipse-Kern, der das Komponentenmodell implementiert und den Plugins als Laufzeit dient. Allerdings reduziert sich der Kern ab Version 3.0 auf eine dünne Kompatibilitätsschicht, die künftig ihrerseits auf der Laufzeitumgebung des OSGI-Konsortiums aufsetzt. Der Standard "Open Services Gateway Initative" bietet eine offene Diensteplattform für die Verwaltung und Bereitstellung von Anwendungen in vernetzten Geräten. Er soll Eclipse für entsprechende Produkte und Werkzeuge über einen mit dem Plugin-Modell vergleichbaren Ansatz verfügbar machen. Zudem verheißt OSGI eine bessere Verwaltung von Sicherheitsanforderungen. Per "Hot Deployment" können Plugins künftig dynamisch hinzugefügt oder aktualisiert werden.

Ein weiterer Bestandteil der RCP ist die nun um IDE-Features bereinigte Workbench, die sich aber wie alle Plugins über so genannte Extension Points beliebig erweitern und gestalten lässt. Für die GUI-Erstellung ist auch das bisherige Standard Widget Toolkit (SWT) von Eclipse enthalten, das eine Sammlung von Java-Klassen enthält, mit denen sich grafische Objekte anzeigen lassen können, die direkt vom Betriebssystem erzeugt werden, sowie das GUI-Framework Jface, das die Standardelemente von SWT um Lösungen für anspruchsvollere Benutzerschnittstellen erweitert. Bei Bedarf kann RCP zudem um weitere Eclipse-Bestandteile ergänzt werden.

Für die Verwaltung einer Desktop-Anwendung bietet die RCP die Möglichkeit, Komponenten einer Anwendung als "Features" zusammenzufassen und über den Update-Manager zu verwalten. Features sind damit zugleich die Grundlage für das Branding und die Verteilung von Rich-Client-Anwendungen. Das Eclipse-Konsortium hofft nun, dass RCP dank seiner Architektur und der bereits vorhandenen Unterstützung durch Hersteller und Entwickler zum Referenz-Framework für die Rich-Client-Entwicklung werden könnte. Erste RCP-Implementierungen stehen bereits mit dem "Workplace Client" für Lotus Notes oder dem Geo-Informationssystem der Firma Logiball aus Herne zur Verfügung. Hersteller wie Bea Systems und Microsoft haben hingegen eigene Ansätze vorgestellt.