Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

14.07.2005

Eclipse und Co. schlagen Rational-Tools

Bernhard Steppan ist Leading Consultant bei der SYRACOM Consulting AG.
Eclipse 3.1 und die Web Tools Platform verringern den Abstand zu den kommerziellen Entwicklungsumgebungen. Ob sich deren Anschaffung noch lohnt, wird am Beispiel von IBMs Rational Application Developer gezeigt.

Eclipse ist nicht nur eine kostenfreie und sehr leistungsfähige Java-Entwicklungsumgebung. Sie bildet auch die Basis für eine Reihe kostenpflichtiger Java-Entwicklungswerkzeuge der IBM, so zum Beispiel den Rational Web Developer (RWD), den Rational Application Developer for Websphere Application Server (RAD) und den Rational Software Architect (RSA). Sie erweitern das Funktionsspektrum der Eclipse-Basis um spezielle IBM-Plugins.

Der Rational Application Developer ist das Nachfolgeprodukt des Websphere Studio Application Developer und im Leistungsspektrum zwischen dem Rational Web Developer und dem Highend-Produkt Rational Software Architect angesiedelt. Entsprechend breit ist das Einsatzsfeld des Produkts.

Schwergewicht

Zwischen der Eclipse-Basis und dem darauf aufbauenden Rational Application Developer gibt es viele Gemeinsamkeiten, aber auch einige deutliche Unterschiede. Das beginnt schon mit den Systemvoraussetzungen für die Installation. Der Rational Application Developer läuft nur unter Linux (Red Hat, Suse) und Windows (2000, XP) und benötigt exorbitant viel Festplattenkapazität. Er wird auf der für eine Entwicklungsumgebung rekordverdächtigen Anzahl von vier CDs ausgeliefert, die bei einer vollständigen Installation 3,5 GB Festplattenplatz beanspruchen.

Damit ist die Installation keineswegs beendet, denn IBM empfiehlt, Erweiterungen und Patches im Umfang von rund 650 MB herunterzuladen und zu installieren. Glücklicherweise benötigen diese Patches kaum weiteren Speicherplatz. Sie ersetzen stattdessen hauptsächlich einen Teil der bereits installierten Plug-ins. Nach dem etwas zähen Start der Entwicklungsumgebung wird allerdings schnell klar, dass auch deren Bedarf an Hauptspeicher nicht gerade bescheiden ist: 768 MB sollen es schon mindestens sein, besser ist 1 GB.

Nach dem Start präsentiert sich die Java-Entwicklungsumgebung mit dem von Eclipse 3.0 vertrauten Bild, aber mit (teilweise schlecht übersetzten) deutschsprachigen Menüs und Dialogen. Wirft man einen Blick auf die Festplatte, zeigen sich schnell Unterschiede: Die reine Entwicklungsumgebung des Rational Application Developer benötigt ohne Zusatzwerkzeuge und Laufzeitumgebungen schon 2,5 GB an Kapazität, während Eclipse 3.1 direkt nach der Installation nur etwa 100 MB beansprucht.

Rund 2000 Plug-ins

Den Unterschied erklärt die enorme Anzahl von rund 2000 Plug-ins, die der Rational Application Developer in seinem Plug-in-Dialog listet. Durch sie reicht das Einsatzspektrum der IBM-Entwicklungsumgebung von der klassischen Java-Programmierung im Texteditor über das visuelle Design von Java- und Web-GUIs bis zur J2EE-Server-Programmierung und der Modellierung mit Hilfe eines UML-Designers. Anbindungen an nahezu alle bekannten IBM-Produkte wie den Websphere Application Server oder das SCM-Werkzeug Rational Clearcase sind vorhanden.

Die Grundfunktionen der Entwicklungsumgebung deckt die Eclipse-Basis ab. Durch sie stehen dem Entwickler eine ausgereifte Projektverwaltung, ein leistungsstarker Debugger und diverse Editoren für das textuelle Programmieren zur Verfügung. Die Editoren verfügen über alle modernen Funktionen wie Syntaxhervorhebung und eine Programmierhilfe. Die Workbench spürt toten Code hervorragend auf und gibt je nach Einstellung Warnungen und Fehler dafür aus. Dass sie Java 5 noch nicht unterstützt, ist eines der wenigen Mankos. Wann das behoben wird, war von IBM nicht zu erfahren.

GUI-Design

Wer Java-GUIs nicht im Texteditor vollständig programmieren, sondern visuell entwickeln möchte, dem steht für das Design der Visual Editor zur Verfügung. Der Entwickler kann mit diesem GUI-Builder sowohl AWT-/Swing- als auch SWT/Jface-Oberflächen gestalten. Der Editor ist sehr leistungsfähig und erzeugt gut strukturierten Code. Dennoch weist er einige Mängel auf und ist für den professionellen Einsatz nur mit Einschränkungen zu empfehlen. Das liegt vor allem an der vergleichsweise schlechten Performance und den Synchronisationsproblemen zwischen Wysiwyg-Ansicht und Quelltext beim Roundtrip-Engineering.

Für die Objektmodellierung mit der UML steht ein weiteres Plug-in namens UML Visual Editor zur Verfügung. Der Editor beherrscht lediglich Klassendiagramme und eine Spielart der Sequenzdiagramme. Er kann Sequenzdiagramme aus bestehendem Code erzeugen und verfügt über einen Navigator, der es auch erlaubt, in großen Diagrammen die Übersicht zu behalten. Der UML-Editor ist mit anderen Assistenten vernetzt, so dass beim Erzeugen einer Enterprise Javabean (EJB) sofort eine UML-Ansicht präsentiert wird. Trotz dieser Funktionen ist das UML-Plug-in aufgrund seiner eingeschränkten Bandbreite nicht für Designer zu empfehlen, die die Möglichkeiten der UML ausschöpfen möchten.

IBMs RAD-Entwicklungsumgebung enthält, wie bereits erwähnt, den Rational Web Developer und bietet daher für Web-Entwickler eine Fülle von Funktionen, darunter Unterstützung bei der Arbeit mit HTML, DHTML, DTD, XHTML, CHTML, WML, Struts sowie der Konkurrenztechnik Java Server Faces (JSF). Besonders die Möglichkeiten der visuellen Entwicklung mit Struts und Java Server Faces sind beeindruckend und heben die Entwicklungsumgebung von der Konkurrenz ab. Der gute Eindruck trübt sich, wenn man nach Möglichkeiten sucht, HTML-Seiten oder Derivate wie JSPs visuell zu gestalten. Hier sind Wysiwyg-Editoren wie Dreamweaver oder Golive eindeutig die bessere Wahl.

Magere Anbindungsoptionen

Auch die Anbindung an Web- und Application-Server ist - verglichen mit dem Aufgebot an Plug-ins - ausgesprochen dünn. Andere Server als den Apache/ Tomcat oder Websphere Application Server scheint man bei IBM überhaupt nicht in Betracht gezogen zu haben, auch wenn das Datenblatt eine Anbindung an Beas Weblogic listet.

Bei der EJB-Entwicklung präsentiert sich das IBM-Produkt wieder von seiner Schokoladenseite. Es ist kompatibel zu den EJB-Versionen 1.1, 2.0 sowie 2.1, wobei alle Spielarten von EJBs wie Stateless und Stateful Session Beans oder Entity Beans mit und ohne Container-managed Persistence bis hin zu Message Driven Beans unterstützt werden. Viele Assistenten und Funktionen wie die automatische Erzeugung von Test-Clients helfen hierbei dem Entwickler.

Für Web-Services stehen ebenfalls verschiedene Assistenten und Werkzeuge bereit. Sie erlauben die Entwicklung von Web-Services, die den Standard des WS-I (Web Services Interoperability Organization) erfüllen und somit leicht von anderen Web-Service-Interessenten zu finden sind. Die Entwicklungsumgebung erzeugt automatisch WSDL-Dateien (Web Services Description Language), die den Web-Service beschreiben, enthält einen WSDL-Editor und ist in der Lage, Test-Clients zu erzeugen, die die Fehlersuche in Web-Services erleichtern. Ein Web-Service-Explorer, mit dem sich andere Web-Services aufspüren lassen, rundet das entsprechende Spektrum der Workbench ab.

Für die Entwicklung von Datenbankanwendungen stehen ebenfalls viele Funktionen bereit. Sie erlauben, neue Datenbanken zu erzeugen und bestehende anzubinden. Hier zeigt sich die Workbench keineswegs so zugeknöpft wie bei Application-Servern und bietet Konnektoren für DB2, Informix, Cloudscape, SQL Server, Oracle 9i und Sybase. Ein Datenbank-Explorer gestattet, in Datenbanken zu blättern und SQL-Befehle abzusetzen. Neben vielen sinnvollen Funktionen gibt es auch einige rätselhafte, wie zum Beispiel den "Assistenten für eine neue SQL-Anweisung". Er "hilft" dem Entwickler dabei, ein SQL-Kommando wie beispielsweise "Select from" einzugeben.

Eclipse 3.1

Die neue Version der Java-Entwicklungsumgebung Eclipse 3.1 bringt eine Reihe gravierender Verbesserungen, insbesondere stärkere Performance und die Unterstützung von Java 5. Das bedeutet nicht nur, dass die Workbench nun Programme übersetzen kann, die die neuen Sprachmerkmale besitzen. Darüber hinaus berücksichtigen alle Funktionen wie die Programmhilfe und die Refactorings Java 5. Trotz dieser weit reichenden Verbesserungen kann die Basis-Workbench nicht ohne zusätzliche Plug-ins für alle Zwecke der Java-Entwicklung eingesetzt werden. Unter den rund 90 Basis-Plug-ins von Eclipse 3.1 fehlen Erweiterungen für die Modellierung mit der UML, für GUI-Design, aber auch Konnektoren für J2EE-Server sowie Datenbankwerkzeuge.

Einen Teil dieser Lücken schließt das neue Eclipse-Projekt Web Tools Platform (WTP), eine mit rund 30 MB sehr schlanke Sammlung von Plug-ins für die J2EE-Entwicklung. Das Ziel dieses Eclipse-Projekts war es, die Defizite der Java-Workbench bei der J2EE-Server-Entwicklung zu beseitigen. Zudem sollte die WTP eine neue Plattform schaffen, auf deren Basis Softwareproduzenten hochwertige Plug-ins entwickeln können. Die WTP stellt eine aufeinander abgestimmte Sammlung von Basis-Plug-ins zur Verfügung, die aber nur teilweise mit kommerziellen Produkten vergleichbar ist.

Bei der Anbindung an relationale Datenbanken hat die WTP sehr viel zu bieten. Hier gibt es Plug-ins unter anderem für DB2 UDB, Cloudscape, Informix, Oracle, SQL Server sowie Sybase. Eine SQL-Konsole erlaubt, Datenbankabfragen abzusetzen und über ein so genanntes SQL-Scapbook auszutesten. Viele der Dialoge erinnern an Funktionen des Rational Application Developer - nicht ohne Grund, denn IBM steuerte dem WTP einen beträchtlichen Teil des Codes bei (siehe Kasten "IBM, Rational und Eclipse.org").

Für die Web-Entwicklung liefert WTP unter anderem Editoren für HTML, XML, XSD, DTD, CSS, Javascript und Java Server Pages. An Web-Servern wird derzeit nur der Apache Tomcat in den Versionen 3.2 bis 5.5 unterstützt. Für die Anbindungen von Application-Servern stehen im Gegensatz zum Rational Application Developer eine Fülle von Konnektoren für die wichtigsten Produkte bereit: Geronimo, Weblogic, Websphere, Jboss und Jonas. Bei der EJB-Entwicklung kann das WTP keineswegs mit der Funktionsfülle des Rational Application Developer konkurrieren.

Die Struts- und JSF-Entwicklung gehören ebenfalls zu den weißen Flecken auf der WTP-Landkarte, wenngleich Oracle angedeutet hat, dem WTP-Projekt einige JSF-Plug-ins zugänglich machen zu wollen. Für die J2EE-Entwicklung mit Struts, Java Server Faces und EJB ist das WTP allein also bislang noch keine gute Alternative zum Rational Application Developer.

Doch das Bild ändert sich, wenn man sich nach günstigen oder kostenfreien Eclipse-Erweiterungen umsieht. So lohnt sich als Alternative zum kommerziellen Produkt ein Blick auf My Eclipse. Diese Sammlung an preiswerten Plug-ins unterstützt nicht nur die Web-Entwicklung mit Servlets und Java Server Pages, sondern auch Java Server Faces und Struts. Ebenfalls vorhanden sind Konnektoren zu nahezu allen marktgängigen Application-Servern (Jboss, Jetty, Jonas, Jrun bis hin zu Weblogic und Websphere).

Alternativen für GUI-Design

Wer sich weniger für die Server-seitige Programmierung interessiert, sondern mehr für GUI-Design oder als Java-Architekt arbeitet, muss ebenfalls nicht zum Rational Application Developer greifen. Im Bereich des GUI-Designs gibt es mit Jigloo und Window Builder Pro zwei Werkzeuge, die den Visual Editor des Rational Application Developer problemlos in den Schatten stellen. Beide Tools sind besonders in Bezug auf Performance und Roundtrip-Engineering dem Visual Editor überlegen.

Für die Modellierung mit Hilfe der UML steht mit der Einsteigerversion von Omondos Eclipse UML ein kostenfreies marktführendes Werkzeug zur Verfügung, das die integrierten UML-Funktionen des Rational Application Developer - bis auf die automatische Erzeugung von Sequenzdiagrammen - um vieles übertrifft und selbst die Ansprüche professioneller Softwarearchitekten mühelos erfüllt. Er unterstützt sämtliche UML-Diagramme der Object Management Group, also zum Beispiel Paket-, Aktivitäts-, Anwendungsfall-, Sequenz-, Komponenten-, Verteilungs- und Klassendiagramme. (ue)