Java ohne Programmierkenntnisse

17.04.2008
Von Gerald Kammerer 
Für das Rapid Application Development (RAD) von Java-Anwendungen hat sich die Software "XDEV" einen Namen gemacht. Die COMPUTERWOCHE hat sich Version 2.4 genauer angesehen.

Der kalifornische Java-Spezialist XDEV Software Corp. hat seine gleichnamige visuelle Java-RAD-Entwicklungsumgebung überarbeitet. Das Werkzeug eignet sich für das schnelle und einfache Erstellen von Datenbankanwendungen und gleicht in der Arbeitsweise bekannten 4GL-Lösungen wie Oracle Forms und Powerbuilder oder den Tool-Umgebungen von Delphi und Visual Basic. Die mit XDEV erzeugten Java-Anwendungen sind datenbankunabhängig, lassen sich auf allen wichtigen Betriebssystemen ausführen, über einen Web-Server aufrufen oder als Web-Anwendung im Browser starten. Interessant ist XDEV vor allem für IT-Abteilungen, die bisher noch über kein oder nur wenig Java-Know-how verfügen.

Alles in einem Datagrid

Version 2.4 enthält erhebliche Verbesserungen gegenüber Version 2.3 und lässt sich durchaus als größerer Release-Wechsel bezeichnen. Neben zahlreichen Bugfixes hat sich vor allem in Sachen Stabilität und Usability einiges getan: Das Werkzeug wirkt jetzt ausgereift. Für die Entwicklung grafischer Oberflächen hat der Hersteller eine ganze Reihe neuer GUI-Komponenten zur Visualisierung dynamischer Daten sowie mehrere Layout-Manager für die Realisierung skalierbarer Fenster und Dialoge eingeführt. Besonders effektiv ist eine neue Datagrid-Komponente, mit der sich Datenbanken abfragen, Datensätze filtern, limitieren und in Form einer Tabelle auf dem Bildschirm ausgeben lassen. Die Daten lassen sich auch in verschiedenen Tabellen über ein und dasselbe Grid editieren.

Das Komfortable daran ist, dass der Entwickler für die Implementierung der kompletten Funktionalität (Datenbankabfragen über mehrere Tabellen, Filtern der Daten und dynamisches Nachladen der Datensätze) nicht eine einzige Zeile Code schreiben muss. Das Datagrid ist im GUI-Builder lediglich mit einer führenden Datenbanktabelle zu verknüpfen. Zudem müssen einmalig die Relationen zwischen den Tabellen in einem ER-Diagramm hinterlegt werden. Dafür steht ein spezieller Editor zur Verfügung. Im aktuellen Release lassen sich dort auch Relationen aus der Datenbank auslesen. Allerdings wird das Hinterlegen von Relationen nicht von allen Datenbanken unterstützt.

Zur Laufzeit nimmt das Datagrid auf Basis der hinterlegten Relationen automatisch alle notwendigen Abfragen auf den entsprechenden Tabellen vor und gibt die intern via Joins zusammengeführten Daten auf dem Bildschirm aus. Die Datenmenge ist dabei grundsätzlich limitiert, da die Software immer nur die Anzahl an Datensätzen lädt, die sich gleichzeitig im Datagrid anzeigen lässt. Alle weiteren Informationen werden erst beim Scrollen "on Demand" nachgeladen. Mit Hilfe einer zuschaltbaren Suchleiste im Tabellenkopf lassen sich zur Laufzeit Suchbegriffe für alle Datenfelder eingeben, wobei Abfrage und Ausgabe der Treffer-Datensätze bereits während der Eingabe automatisch von der Komponente ausgeführt und bei jeder weiteren Eingabe zunehmend optimiert werden.

Datacontrol für den Endanwender

Mit dem ebenfalls neuen Datacontrol kann das Abfrageergebnis durch den Endanwender limitiert und mit Hilfe entsprechender Vor- und Zurück-Buttons seitenweise ausgeben werden. Dazu muss man das Datacontrol lediglich per Mausklick im GUI-Builder mit einer Ausgabekomponente verknüpfen, so dass auch für dieses Feature keine Codeerstellung nötig ist.

Während solche Funktionen für 4GL-Entwickler nicht viel Neues bedeuten, stellen sie für den Java-Entwickler große Erleichterungen dar. So umfasst der von XDEV für das Datagrid generierte Java-Code mehr als 3000 Zeilen, die man als Programmierer für die Implementierung derselben Funktionalität per Hand schreiben müsste. Bei anderen Komponenten und Modulen fällt die Entlastung sicher geringer aus, sie bleibt jedoch beachtlich: Der Hersteller verspricht im Vergleich zur klassischen Java-Programmierung ein durchschnittliches Einsparpotenzial von 50 bis 70 Prozent, was bei GUI-lastigen Projekten durchaus realistisch ist.

Komfortables GUI-Layout

Während für das Layout skalierbarer Oberflächen bisher nur die von Java Swing übernommenen Layout-Manager Border- und Gridbag-Layout zur Verfügung standen, hat der Entwickler nun die Auswahl zwischen den wichtigsten Swing-Layouts. Auch die Table-Layout-Komponente, eine komfortable Wysiwyg-Umsetzung des Gridbag-Layouts, wurde überarbeitet und funktioniert nun selbst bei komplexen Verschachtelungen stabil. Zudem wurde kurzfristig eine weitere grafische Layout-Variante eingeführt, bei der sich die Komponenten immer am verfügbaren Platz orientieren, was im Entwurf auf den Einsteiger ohne Java-Vorkenntnisse jedoch verwirrend wirkt. Hier besteht noch Nachbesserungsbedarf.

HSQL DB integriert

Auch bei der Datenbankanbindung hat sich eine Menge getan. Die Palette der unterstützten Systeme wurde um eine Schnittstelle für Sybase erweitert und umfasst nun nahezu alle wichtigen relationalen Datenbanken. Neben der objektrelationalen Datenbank Caché vom Hersteller Intersystems wird nun auch die vollständig in Java geschriebene SQL-Datenbank-Engine HSQL als Standard- und Testdatenbank mitgeliefert. HSQL DB kommt zum Beispiel in OpenOffice zum Einsatz und kann nicht nur in puncto Performance mit MySQL mithalten, sondern ist mit gerade mal etwas mehr als 600 KB vergleichsweise winzig und eignet sich somit hervorragend zur Einbettung in Applikationen. Darüber hinaus kann HSQL DB in kommerziellen Projekten eingesetzt werden, ohne dass Lizenzgebühren dafür anfallen. Während für die Administration von HSQL lediglich eine spartanische Konsole verfügbar ist, bietet XDEV erfreulicherweise nun einen Assistenten, mit dem sich weitere Datenbanken anlegen sowie Benutzer komfortabel verwalten lassen. Ebenfalls per Assistent wird die HSQL-Datenbank mit der generierten Java-Anwendung gekoppelt und so als Embedded Database ausgeliefert. Genauso gut kann man HSQL DB auch als Server-Datenbank einsetzen, wofür die XDEV-Dokumentation eine Anleitung bietet.

Abstraktions-Layer

Für den Zugriff auf Datenbanken wurden Transaktionen optimiert und für den Aufruf von Stored Procedures in beliebigen Datenbanken ein neuer Assistent eingeführt. Die Kommunikation zwischen Anwendung und Server-Datenbank verwaltet jetzt ein Servlet, das die bisherigen PHP-Schnittstellen ablöst. Die ohnehin verschlüsselte Übertragung der Daten findet nur noch zwischen zwei Java-Applikationen statt und verspricht dadurch mehr Sicherheit. Die lediglich 50 KB kleine Servlet-Schnittstelle bildet eine Abstraktionsschicht auf den JDBC-Treibern der jeweiligen Datenbanken und soll die Unterschiede zwischen den verschiedenen Datenbanken in der SQL-Syntax überbrücken und für völlige Datenbankunabhängigkeit sorgen. Sofern die Abfragelogik in XDEV entwickelt wird, funktioniert dies erstaunlich gut. Spätestens mit dem Einsatz von Stored Procedures legt sich der Entwickler jedoch grundsätzlich auf die Datenbank fest, und ein späterer Umstieg ist nur noch mit erheblichem Portierungsaufwand möglich.

Für MySQL steht auch weiterhin eine Schnittstelle auf Basis von PHP zur Verfügung, um das Hosten von XDEV-Anwendungen mit kleinen Web-Hosting-Paketen, die eine Ausführung von Servlets normalerweise nicht unterstützen, auch weiterhin zu ermöglichen.

Report-Generator

Seit Einführung der Version 2 enthält die XDEV einen Report-Generator zur dynamischen Erzeugung von PDF-Reports, die sich wahlweise automatisch an den Client versenden oder auf dem Server ablegen lassen. Der Leistungsumfang wurde in Release 2.4 verbessert. Neben einem Gruppenwechsel lassen sich jetzt auch vollständige Reports ineinander verschachteln. Ebenso ist das Einbinden von vektorisierten, dynamisch gezeichneten Diagrammen möglich.

Java-Quellcode-Export

Das Sahnestück des Updates ist aus Entwicklersicht jedoch der von vielen Anwendern herbeigesehnte Java-Quellcode-Export. Mit ihm kommt die Freiheit, ein mit XDEV begonnenes Projekt jederzeit auf eine klassische Java-Entwicklungsumgebung wie Netbeans oder Eclipse zu portieren und dort nahtlos fortsetzen zu können. Für beide Java-IDEs lassen sich dazu die entsprechend optimierten Projektdateien erzeugen und somit problemlos in der jeweiligen Umgebung öffnen.

Eine XDEV-Anwendung besteht aus dem generierten Code der Projektdatei und dem XDEV-RAD-Application-Framework. Dabei handelt es sich um ein Java-API, das alle RAD-Komponenten und Engines sowie deren Klassen und Methoden enthält, die XDEV für die Anwendungsentwicklung zur Verfügung stellt. Das Framework wurde komplett offengelegt.

Am JDK orientiert

Der generierte Code ist sauber strukturiert und genügt professionellen Ansprüchen. Bei den verwendeten Klassen- und Methodennamen hat sich der Hersteller erfreulicherweise am Java Developer Kit (JDK) orientiert.

Über die Qualität von generiertem Code kann man geteilter Meinung sein. Experten sind meistens davon überzeugt, deutlich schlankeren und effektiveren Code zu schreiben. Die Frage ist nur, wer diesen Code, außer den Entwicklern selbst, verstehen und warten kann. Automatisch generierter Code hingegen sieht immer gleich aus, wird aber in der Regel mehr Overhead enthalten. Bei Geschäftsanwendungen sollte jedoch der Aspekt der Wiederverwendbarkeit überwiegen. (ue)

Fazit

XDEV zählt derzeit zu den einfachsten Werkzeugen für die Entwicklung von Datenbankanwendungen auf Basis von Java. Version 2.4 der RAD-Umgebung ist deutlich stabiler als das Vorgänger-Release und komfortabler in der Bedienung. Das Toolset eignet sich besonders für mittelständische und kleinere Unternehmen, in denen kaum Java-Know-how verfügbar ist. Ein großer Vorteil des Updates ist, dass man über die neue Funktion des Java-Quellcode-Exports bei wachsendem Programmier-Know-how sein Projekt problemlos auf eine klassische Java-IDE migrieren kann.

Pro und Kontra

Zahlreiche Bugfixes, erreichte Stabilität;

neue GUI-Komponenten;

neue Layout-Manager;

HSQL-Datenbank eingebettet;

Java-Sourcecode-Export möglich;

verbesserte Anbindung an Stored Procedures;

zahlreiche neue PDF-Report-Funktionen;

keine Runtime-Lizenz.

Neue Layout-Komponente erklärungsbedürftig.

Versionen und Preise

XDEV 2.4 Professional Edition: 599 Euro;

XDEV 2.4 Enterprise Edition: 1699 Euro;

XDEV 2 Team-Server for Small Workgroups (bis zu drei Arbeitsplätze): 1299 Euro;

XDEV 2 Team Server (für beliebig viele Arbeitsplätze): 4999 Euro;

Plug-in für den Cache-OO-Zugriff: 200 Euro.