SlideShare ist ein Scribd-Unternehmen logo
inkl.
JAVA Mag      CD                User Stories in agilen Projekten

                                                   Deutschland € 8,50
                                                                      » 108
                                                                           Österreich € 9,80 Schweiz sFr 16,80   8.2011




                                                magazin
                      Java • Architekturen • Web • Agile                                       www.javamagazin.de




                                Griffon                   OSGi
CD-INHALT                       Neuer Schwung             Architektur in
                                          »
                                für Swing 25              OSGi umgesetzt   » 98              Brandneues Programm   » 51




                                Tools
 IPHONE 4 JAVA
 DEVELOPERS
 Video von der W-JAX 2010




 HIGHLIGHT
 Eclipse Riena 3.0
 Hector 0.7
 Apache Cassandra
                                JIRA & Co. erfolgreich
                                      einsetzen » S. 52, 58
 WEITERE INHALTE
 • Jackson 1.8.1                                     Sond erdruck
 • Griffon 0.9.3 Beta 1
 • Cassandra GUI 0.7.1


                                RESTful JSF
 Alle CD-Infos ab Seite 3       Ein Widerspruch?   » 92
                                Java Web Services
                                SOAP mit JAX-WS    » 69
                                Cassandra und Hector
                                Griechische NoSQL-Mythologie        » 47
Sonderdruck


            Das passende Rich-Client-Framework für Ihr Projekt



            Reiche Formulare
            Die „Brot und Butter“-Anwendungen eines Softwareentwicklers sind nach wie vor formularbasierte
            Verwaltungsapplikationen: sei es ein CRM-System, ein System zur Kreditbearbeitung oder die Verwal-
            tung von Versicherungsverträgen. Soll die Anwendung eine Webapplikation sein, hat der Architekt eine
            große Auswahl an passenden Frameworks. Entscheidet man sich für eine Rich-Client-Architektur, tappt
            man häufig im Dunkeln. Dieser Artikel bietet Ihnen Entscheidungshilfen an, um das für Ihr Projekt pas-
            sende Rich-Client-Framework auszuwählen.




            von Holger Grosse-Plankermann und Jörg Meister                 Recht schnell ist klar, dass eine Applikation auf Ba-
                                                                        sis einer Rich-Client-Plattform (RCP) der beste Ansatz
            Ein Kunde aus dem Bereich der Versicherungswirtschaft       für diese Anwendung ist (Kasten: „Eigenschaften von
            wünscht sich eine neue Software zur Verwaltung von          Rich-Client-Frameworks“). Es bleiben für uns im We-
            Versicherungsverträgen: Es soll eine Desktopapplikati-      sentlichen drei Plattformen übrig, die wir nun einem in-
            on sein, die In-House auf den Rechnern der Sachbearbei-     tensiveren Vergleich unterziehen:
            ter installiert wird. Die Verwaltung der Verträge besteht
            aus mehreren Schritten, bei denen der Benutzer unter-       •	Die Eclipse Rich Client Platform (Version 3.6) [1]
            stützt und geleitet wird. So ist es notwendig, abhängig     •	Eclipse Riena (Version 2.0), das auf Eclipse RCP
            von den eingegebenen Daten, einzelne Programmteile            basiert [2]
            oder Eingabefelder anzuzeigen, zu verstecken oder mit       •	Die NetBeans Rich Client Platform (Version 6.9) [3]
            anderen Werten zu belegen. Außerdem soll der Benutzer
            bereits bei der Eingabe der Daten auf mögliche Fehler       Die betrachteten Frameworks
            hingewiesen oder am Verlassen eines Prozessschritts         Sowohl Eclipse RCP als auch NetBeans RCP haben ih-
            gehindert werden. Selbstverständlich wünscht der Kun-       ren Ursprung in den entsprechenden IDEs. Bereits im
            de sich zudem eine komfortable, schnell reagierende         Jahr 2001 wurde die NetBeans IDE so umgebaut und
            Applikation, die dem Benutzer auch ein komfortables         modularisiert, dass NetBeans zu einer Plattform für
            Hilfesystem bietet. Zusammen mit dem Kunden haben           Desktopapplikationen wurde. Auch Eclipse wurde ur-
            wir ein grundlegendes Bild der Applikation entwickelt       sprünglich als reine IDE und Toolplattform entwickelt.
            (Abb. 1).                                                   Man erkannte jedoch, dass es sich auch zum Bau von
               Aus der Tatsache, dass die Benutzer verschiedenen        Rich Clients eignet. Die vorhandenen Technologien
            Aufgabenbereichen zugeordnet sind, ergeben sich wei-        wurden neu strukturiert, sodass aus der ehemaligen IDE
            tere Anforderungen: Es sollen nur relevante Applikati-      eine offene und erweiterbare Plattform zur Entwicklung
            onsteile angezeigt werden, und neue Funktionalität für      von Desktopapplikationen entstand. Mit der Version
            weitere Aufgabenbereiche soll rasch und einfach hin-        6.0 hat Sun das Thema Plattform wiederaufgegriffen
            zugefügt werden können (Modulkonzept). Die IT des           und weitere APIs hinzugefügt, um gegenüber Eclipse
            Kunden ist Java-zentriert, somit wurden Lösungen aus        RCP konkurrenzfähig zu sein. Aber Eclipse RCP ist so
            dem Java-Umfeld bevorzugt. Im nächsten Schritt suchen       weit verbreitet, dass man es als De-facto-Standard an-
            wir nun eine technologische Basis, die diese Anforderun-    sehen kann.
            gen abdeckt. Da diese Architekturentscheidung ähnlich         Eclipse Riena nimmt hier eine Sonderrolle ein: Riena
            grundlegenden Charakter hat, wie die Auswahl des Per-       basiert auf Eclipse RCP. Ziel von Eclipse Riena ist es,
            sistenzframeworks, muss diese Entscheidung sehr früh,       die Erstellung von „üblichen“ Businessanwendungen zu
            aber nichtsdestoweniger mit sehr viel Weitblick getrof-     vereinfachen. Auch versucht es, die Nutzerführung für
            fen werden.                                                 Anwender mit nicht technischem Background zu verein-




2   javamagazin 8 | 2011                        © Software & Support Verlag GmbH                             www.JAXenter.de
Sonderdruck


                                                                                        lent. Formulare lassen sich
                                                                                        damit sehr schnell erstellen.
                                                                                        Allerdings sollte sich der
                                                                                        Entwickler schon mit den Ei-
                                                                                        genheiten der Layout Mana-
                                                                                        ger auskennen. Eclipse RCP
                                                                                        gibt keinerlei Vorgaben,
                                                                                        wie ein Layout auszusehen
                                                                                        hat, sodass das Wireframe
                                                                                        nahezu 1:1 umsetzbar ist.
                                                                                        Einschränkungen gibt es
                                                                                        (zumindest in unserem An-
                                                                                        satz) bei der Abbildung der
                                                                                        Prozessschritte. Doch dazu
                                                                                        später mehr. Eine Demo-
                                                                                        applikation mit Eclipse RCP
                                                                                        sehen Sie in Abbildung 2.
                                                                                           Einer Eclipse-RCP-An-
Abb. 1: Wireframe der Versicherungsapplikation                                           wendung sieht man meistens
                                                                                         an, dass Eclipse der Unter-
fachen. Diese haben häufig Probleme mit der Vielzahl         bau ist. Über das eher unhandliche Presentation API ist
der Möglichkeiten, die eine Eclipse-Applikation enthält.     viel vom Look and Feel anpassbar. In Eclipse RCP 4.0
Riena bietet u. a. ein eigenes Interaktionskonzept, eigene   wird es möglich sein, eine Anwendung mittels CSS zu
GUI-Elemente und ein eigenes Look and Feel. Zudem            verschönern.
kann Riena die Einbindung in eine JEE-Umgebung ver-             Allerdings gibt es hier einige Einschränkungen, die
einfachen. Zur Kommunikation mit dem Backend wer-            durch SWT ins Spiel kommen. In einigen Fällen über-
den Remote OSGi Services angeboten, die proprietäre          nimmt SWT schlichtweg den Standard des Betriebssys-
JEE Jars im Client überflüssig machen.                       tems, ohne dass das änderbar wäre. Ein Beispiel hierfür
                                                             ist die Vordergrundfarbe eines nicht aktiven Felds.
Vergleich der Frameworks                                        Wie erwähnt, ist Riena ein Aufsatz auf Eclipse RCP
Nach der allgemeinen Vorstellung wollen wir nun die          und benutzt als GUI-Technologie ebenfalls SWT. Als
Frameworks genauer vergleichen. Wir konzentrieren            Tool-Support bietet sich somit ebenfalls der Google
uns dabei auf die Teile der RC-Plattformen, die bei einer    Window Builder an. Riena bringt allerdings noch einen
formularbasierten Anwendung anders sind als bei den          praxiserprobten Satz an GUI-Komponenten mit. Es geht
üblichen RCP-Demoapplikationen. Wir gehen somit auf          auch in puncto GUI-Entwicklung einen eigenen Weg: Es
die Fragen „Wie kann das gewünschte Layout des Wi-           forciert den Model-View-Controller-Ansatz und trennt
reframes umgesetzt werden?“ und „Wie bildet der Ent-         mithilfe der Ridgets [4] die Darstellung des Controls
wickler den eingangs umrissenen Prozess ab?“ ein.            von seinem Verhalten. Resultat sind eine besser struk-
                                                             turierte Anwendung und eine bessere Testbarkeit der
Layouting in den Plattformen                                 GUI. Dieser MVC-Ansatz ist in Eclipse RCP selber nur
In diesem Abschnitt interessiert uns, welche Techno-         umständlich einzupflegen. Das Ridget-Konzept macht
logie verwendet wird, um Layouts mit dem gewählten           den Einstieg etwas schwieriger. Verwendet man Cont-
Framework zu erstellen, inwiefern der Kunde Einfluss         rols, die nicht von Riena mitgeliefert werden, so muss
auf das Aussehen (Farben, Schriften etc.) der Anwen-         man eigenhändig Ridgets hierfür erzeugen. Aufgrund
dung nehmen kann und die verfügbaren Tools. Auch             der guten Beispiel-Snippets [5] ist das allerdings kein
beachten wir die Besonderheiten des formularbasierten        größeres Problem.
Ansatzes hinsichtlich des gezeigten Wireframe der An-           Die hierarchische Struktur der Anwendung, sichtbar
wendung.                                                     in der Navigationsleiste, wird deklarativ definiert. Hier
   Eclipse RCP verwendet das systemnahe SWT. Vorteil         findet die Zuordnung von Views und Controllern zu
ist das betriebssystemnahe Aussehen der Anwendung.           einem Menüpunkt oder einem Prozessschritt statt und
Nachteile sind die schwierigere Anpassbarkeit und            bildet den Kern einer Riena-Applikation.
der sehr kleine Markt an Zusatzkomponenten. Kom-                Das vorgestellte Wireframe lässt sich mit Riena al-
plexere Controls sind oft nur über das Nebula-Projekt        lerdings nicht 1:1 umsetzen, da das Framework ein
verfügbar. Allerdings haben diese oft noch keine Pro-        eigenes GUI-Konzept verfolgt. Die vorgestellte An-
duktionsreife. Der Tool-Support ist mit dem neuerdings       wendungsstruktur findet sich aber wieder: Wir erläu-
kostenlos verfügbaren Google Window Builder exzel-           tern das genauer im Kasten „Riena-UI-Konzept“. Das




www.JAXenter.de                                  © Software & Support Verlag GmbH                        javamagazin 8 | 2011   3
Sonderdruck


                                                                                                    Vorhandene ergänzen. So findet man in
                                                                                                    den SwingLabs von Sun beispielsweise
                                                                                                    Kalenderkomponenten oder den später
                                                                                                    erwähnten JXLayer zur besseren Dar-
                                                                                                    stellung von Fehlern bei der Datenein-
                                                                                                    gabe. Durch die Möglichkeit, das Look
                                                                                                    and Feel einer Swing-Applikation aus-
                                                                                                    tauschen zu können, kann das Aussehen
                                                                                                    des Programms eigenen Wünschen ange-
                                                                                                    passt werden.
                                                                                                      Mittels des Nodes und des Explorer
                                                                                                    API ist es einfach, strukturierte Daten
                                                                                                    in Komponenten wie Tabellen, Bäume
                                                                                                    oder Property-Editoren darzustellen, sie
                                                                                                    in der Darstellung zu manipulieren und
                                                                                                    Aktionen oder Kontextmenüs damit zu
                                                                                                    verknüpfen. Swing stellte uns u. a. mit
                                                                                                    dem GroupLayout alles Notwendige
                                                                                                    zur Verfügung, um das Wireframe in
    Abb. 2: Demoapplikation mit Eclipse RCP (die NetBeans-RCP-Applikation sieht ähnlich aus)        unserer Applikation umzusetzen. Das
                                                                                                   GroupLayout ist ein Layoutmanager, der
               Aussehen (Farben, Fonts, Bilder etc.) einer Riena-An- seit Java 6 im JDK vorhanden und für die Darstellung
               wendung kann relativ einfach angepasst werden. Auch unserer formularbasierten GUI bestens geeignet ist.
               ist es möglich, für einige Teile der Navigation eigene
               Renderer einzusetzen. Eine Demoapplikation mit Rie- GUI-Steuerung der Plattformen
               na ist in Abbildung 3 zu sehen.                                         In diesem Abschnitt wollen wir uns mit den Kernpunk-
                  Mit Swing als Grundlage von NetBeans RCP ist ten der oben umrissenen Versicherungsanwendung be-
               es für jeden JSE-Entwickler einfach, die geforderten fassen. Wie können die Frameworks den Entwickler bei
               GUIs umzusetzen. Der GUI Builder Matisse ist Teil der der Umsetzung und Visualisierung der Geschäftsprozes-
               NetBeans IDE und intuitiv bedienbar. Für Swing gibt se unterstützen?
               es einen breiten Markt an kommerziellen und nicht                          Zum einen beschäftigt uns hier, wie man bestimm-
               kommerziellen GUI-Komponenten und Tools, die das te Elemente eines Formulars (Knöpfe, Eingabefelder



                 Eigenschaften von Rich-Client-Frameworks
                 Ein RCP-Framework besteht aus einer Vielzahl von Komponen-             Das kann programmatisch oder durch den Benutzer getriggert
                 ten, die zum Teil in unserer Versicherungsapplikation verwendet        werden. Bei NetBeans RCP wird es über das Auto Update Ser-
                 wurden. Diese lassen sich wie folgt klassifizieren.                    vice API und bei Eclipse RCP bzw. Riena über P2 durchgeführt.
                 User Interface Management                                              Data Binding
                 Die Frameworks bieten komfortable Möglichkeiten wie Fenster,           Das Data Binding dient zur Synchronisierung von Datenmodel
                 Editoren, Menüs, Werkzeugleisten, Statusbars etc., um sowohl           und GUI. Es sorgt dafür, dass die Werte eines Modells in den
                 einfache als auch aufwendige GUIs zu programmieren.                    verknüpften GUI-Elementen angezeigt und Änderungen aus den
                 Modulsystem                                                            GUI-Elementen in das Modell transferiert werden. Dabei können
                                                                                        die Daten konvertiert und validiert werden.
                 Alle drei Plattformen benutzen OSGi als Modulsystem (NetBeans
                 bietet zusätzlich noch ein einfacheres, eigenes System an). Mithilfe   Hilfesystem
                 des Modulsystems ist es für die Versicherung möglich, Teilapplika-     Das Hilfesystem bietet dem Benutzer die Möglichkeit, kontext-
                 tionen je nach Bedarf an die entsprechenden Mitarbeiter auszulie-      sensitive Hilfeseiten aufzurufen.
                 fern. So bekommt die Haftpflichtabteilung das Modul für die Scha-      Internationalisierung
                 densregulierung, aber nicht das Modul für die Krankenversicherung.
                                                                                        Die Frameworks bieten Methoden zum automatischen Einbin-
                 Updatemanager                                                          den von sprachabhängigen Ressourcen in der GUI und dem
                 Ein Updatemanager erlaubt der Applikation, sich mit einem              Hilfesystem.
                 Updateserver zu verbinden und Programmteile auszutauschen.




4    javamagazin 8 | 2011                                  © Software & Support Verlag GmbH                                         www.JAXenter.de
Sonderdruck


etc.) aufgrund von Regeln (beispielsweise
fachliche oder technische Validierungen)
markiert, ein- oder ausblendet. Zum an-
deren wird hier thematisiert, wie man den
geforderten Prozess visualisiert und wie
man zwischen einzelnen Prozessschritten
wechselt oder Prozessschritte ein- oder
ausblendet.
   Um einen Geschäftsprozess für unsere
Art der Anwendung abzubilden, liefert Ec-
lipse RCP von Hause aus keine Vorgaben.
Eine Möglichkeit, die von uns bereits in
Projekten eingesetzt wurde, ist der FormE-
ditor, der in der Eclipse IDE für die Proper-
ty-Editoren verwendet wird. Hier können
einzelne Prozessschritte als Tabs unterhalb
des Eingabebereichs dargestellt werden.
Da diese Lösung allerdings die Basis in den
eher statisch angelegten Property-Editoren
hat, ist das Verstecken und nachträgliche
Hinzufügen eines Tabs nicht trivial. Hat
man allerdings lediglich die Anforderung, Abb. 3: Demoapplikation mit Riena
dass die Tab-Leiste statisch sein soll, stellt
der FormEditor eine perfekte Lösung dar.                  unsere Anforderungen mit etwas Handarbeit in die-
   Alle offenen Geschäftsvorfälle zeigt Eclipse RCP als sem Bereich umsetzbar sind. Die Herkunft von Eclipse
Reiter oberhalb des Eingabebereichs an. Der Benutzer RCP als IDE-Framework merkt man allerdings recht
kann so schnell zwischen ihnen wechseln.                  deutlich.
   Eclipse RCP bietet ebenso wie die beiden anderen         Alle in der Einleitung genannten Punkte sind in Riena
RCP-Frameworks ein Data Binding. Dieses sorgt nicht umsetzbar. Wie bereits im vorherigen Kapitel erläutert,
nur für ein komfortables Verknüpfen von Modell und geht Riena hier aber eigene Wege [4]. Im Kasten „Das
Formularelementen. Mit einer eigenen kleinen Erweite- Riena-UI-Konzept“ gehen wir auch schon auf einige
rung wurde diese Funktionalität auch für das Steuern Punkte der Prozesssteuerung ein.
der GUI-Interaktion verwendet. Bei Zustandsänderun-         Das Ein- und Ausblenden bzw. Deaktivieren eines
gen in unserem Modell, beispielsweise dem Setzen eines Prozessschritts wird in Riena weitgehend deklarativ
bestimmten Werts, wurden je nach fachlicher Anforde- über UIFilter erledigt. Dies kann für Neulinge fehler-
rung GUI Controls ein- oder ausgeschaltet.                anfällig sein. Es besteht aber auch der programmatische
   Knöpfe und Menüpunkte werden über das so ge- Weg, der etwas umständlicher wirkt. Für den Einstieg,
nannte Command API angebunden. Das Command um einen Überblick über die Konzepte zu bekommen,
API sieht im Kern eine deklarative Herangehensweise ist dieser Weg allerdings empfehlenswert. Die mitgelie-
für die Verwaltung des Status (sichtbar, anklickbar etc.) ferten Beispielanwendungen bieten hier umfangreiche
vor. Im Kontext der Eclipse IDE ist es sicherlich der und gute Vorlagen.
richtige Weg, um eine Nutzerinteraktion in verschiede-      Fehlerzustände können ebenfalls deklarativ oder aber
nen Kontexten (z. B. Java Perspective, Debugging Per- direkt am Ridget über Data Binding definiert werden.
spective) zu handhaben. In unserer Art der Anwendung Das Data Binding entspricht im Kern dem von Eclipse
fanden wir diese Herangehensweise zu aufwändig, uns RCP, gebunden wird hier allerdings das Ridget. Die Dar-
fehlt eine programmatische Alternative. Über das Com- stellung des Eingabebereichs selber ähnelt den NetBeans-
mand API können auch deklarativ einzelnen Befehlen und Eclipse-RCP-Lösungen, die Standarddekorationen
Tastaturkürzel zugewiesen werden. Eclipse RCP bietet sehen allerdings etwas moderner aus. Fehlerzustände
für die so zugewiesenen Kürzel direkt eine Übersicht an. werden auch in der Navigationsleiste angedeutet.
Falls man es zulässt, sind diese Zuordnungen auch vom       Das Einbinden von Tastaturkommandos folgt dem
Benutzer änderbar.                                        Prinzip von Eclipse RCP. Riena bringt aber noch eigene
   Für die Navigation zwischen einzelnen Reitern und Commands zur Steuerung der Navigation mit.
Tabs liefert Eclipse ebenso Commands mit. Verwendet         Abschließend sei noch gesagt, dass es dem Entwickler
man diese, sind die aus der Eclipse IDE bekannten GUI natürlich immer freisteht, neben den Riena APIs auch die
Widgets zum Navigieren zwischen Reitern und Tabs Eclipse RCP APIs zu benutzen, es handelt sich schließ-
direkt benutzbar. Unterm Strich kann man sagen, dass lich um eine Eclipse-RCP-Anwendung. Das Ändern der




www.JAXenter.de                               © Software & Support Verlag GmbH                       javamagazin 8 | 2011   5
Sonderdruck


                                                                                                   Gegensatz zu Eclipse RCP war das
                                                                                                   Handling der MultiViews leider in
                                                                                                   internen NetBeans-Klassen gekap-
                                                                                                   selt, sodass es keinen Weg gab, das
                                                                                                   Ein- und Ausblenden von einzelnen
                                                                                                   Views nachträglich hinzuzufügen.
                                                                                                   Somit mussten wir die einzelnen Pro-
                                                                                                   zessschritte mit Swing-Mitteln abbil-
                                                                                                   den. Jeder Prozessschritt entsprach
                                                                                                   einem Tab in einer JTabbedPane.
                                                                                                   Das führte zu Mehraufwand, da das
                                                                                                   Handling selbst programmiert wer-
                                                                                                   den musste.
                                                                                                     Das Data Binding musste ebenfalls,
                                                                                                   wie im Eclipse-Abschnitt beschrieben,
            Abb. 4: Riena-UI-Konzept                                                               mit der Möglichkeit ergänzt werden,
                                                                                                   bei Zustandsänderungen im modell-
            beschriebenen Struktur kann aber größeren Aufwand                  eigenen Programmcode, wie das Aktivieren oder Deakti-
            nach sich ziehen (Abb. 4).                                         vieren von Formularelementen, auszuführen. Ansonsten
               Ähnlich wie bei Eclipse RCP gibt es bei NetBeans                reicht die angebotene Funktionalität des Bindings aus.
            RCP keinen durchgängigen Weg, um unsere Anforde-                   Bei der visuellen Manipulation von Formularelementen
            rungen zu erreichen. Bei NetBeans RCP benutzt man                  hat man alle Freiheiten von Swing. Um Validierungser-
            für die Applikationen eine TopComponent aus dem                    gebnisse an Formularelementen zu bekommen, mussten
            Windows-System-API. Dieses erlaubt ein komfortables                wir auf den JXLayer aus den SwingLabs-Projekten [6]
            Fenster-Handling, das für unsere Ansprüche ausrei-                 zurückgreifen. Dadurch war es uns möglich, Fehlermar-
            chend war. Mit den TopComponents ist es möglich,                   ker direkt an einem Formularelement anzuzeigen. Bei
            mehrere Geschäftsvorfälle in der Applikation gleichzei-            NetBeans RCP war deutlich mehr Handarbeit notwen-
            tig und unabhängig voneinander zu bearbeiten. Um in-               dig als bei Eclipse RCP.
            nerhalb einer TopComponent einzelne Prozessschritte                   Tastaturkommandos, das Klicken in Toolbars, Pop-
            abbilden zu können, kann man die MultiViews benut-                 up-Menüs, Knöpfen oder Menüpunkten werden in der
            zen. Leider war es bei diesen Views aber nicht möglich,            NetBeans RCP mit Actions aus dem Action API behan-
            einzelne Views programmatisch (je nach fachlichen                  delt. Das Action API erweitert das bekannte Swing-Ac-
            Anforderungen) ein- bzw. auszublenden. Wird das                    tion-Framework und verknüpft deklarativ pro Modul
            nicht verlangt, sind MultiViews die richtige Wahl. Im              die Interaktion mit ausführbarem Code. Es sorgt dafür,
                                                                               dass beispielsweise Menüpunkte in einem Menü er-
                                                                               scheinen, wenn das entsprechende Modul gestartet ist.
               Riena-UI-Konzept                                                Wie bei vielen Dingen in der NetBeans IDE, wird der
                                                                               Programmierer gut durch Wizards bei der Deklaration
               Um dem Benutzer das sonst eher technische Verhalten einer       unterstützt.
               RCP-Anwendung zu ersparen, verfolgt Riena beim UI-Konzept
               einen eigenen Weg, der den Aufbau der Applikation fest-         Fazit
               schreibt. Der aktuelle Programmteil (Application) wird immer    Eclipse RCP ist der bekannteste und verbreitetste Ver-
               als Reiter oberhalb des Formulars dargestellt. Darunter         treter unseres Vergleichsartikels. Das Framework
               befindet sich die Menüleiste. Am linken Rand ist die nicht      ermöglicht große Freiheiten bei der Gestaltung der ge-
               versteckbare Navigationsleiste positioniert. Der Eingabebe-     wünschten Applikation. Viele, oft auch kommerzielle
               reich befindet sich rechts. Die Prozessstruktur wird ähnlich    Produkte nutzen Eclipse RCP als Basis. Das zeigt nicht
               wie ein Wizard dargestellt, Riena zeigt immer nur einen         nur, dass ein breites Vertrauen in die Fähigkeiten der
               aktiven Eingabebereich an. Der Wechsel zu einem anderen         Plattform existiert, sondern auch, dass Eclipse RCP pra-
               Prozessschritt erfolgt entweder programmatisch über das         xiserprobt und sehr stabil ist. Auch ist für Eclipse RCP
               Navigations-API oder manuell über die Navigationsleiste. Die    im Vergleich mit den anderen beiden Frameworks deut-
               aus Eclipse und NetBeans bekannte Möglichkeit, mehrere          lich mehr Dokumentation verfügbar, sei es im Web [7],
               Editoren gleichzeitig darzustellen, fehlt bewusst. Auf Tabs     in Newsgroups oder in Form von Büchern.
               und Reiter verzichtet Riena. Die Navigationsleiste bildet den      Das Vertrauen in die Plattform ist unserer Meinung
               Kern der Applikation und zeigt sowohl die Geschäftsvorfälle     nach völlig gerechtfertigt, allerdings erkauft man sich
               als auch die einzelnen Schritte eines Geschäftsvorfalls an.     mit der Flexibilität speziell im Hinblick auf die „nor-
                                                                               male“ Businessanwendung auch einige Nachteile. Der




6   javamagazin 8 | 2011                              © Software & Support Verlag GmbH                              www.JAXenter.de
Sonderdruck


Einstieg in Eclipse RCP ist recht mühsam und einige          deutlich weniger Dokumentation als beim Hauptkon-
Konzepte wollen nicht so recht in die von uns beschrie-      kurrenten, aber genügend, um sich in die APIs einzuar-
bene Anwendungsklasse hineinpassen. Auch die The-            beiten. Es gibt Produkte auf Basis von NetBeans RCP,
men Testen und Continuous Integration sind nach wie          allerdings sind uns nur wenige bekannt. Die Community
vor nur unhandlich zu lösen. Maven Tycho verspricht          ist vergleichsweise klein, die NetBeans-Kernentwickler
hier Besserung. Alles in allem stellt Eclipse RCP aber das   sind aber sehr auskunftsfreudig. Einen großen Vorteil
Referenzframework im Bereich Rich Clients dar und ist        sehen wir in der Verwendung von Swing als Widget
den Anforderungen an eine moderne formularbasierte           Toolkit in der NetBeans-Plattform. Swing ist besser er-
Anwendung gewachsen.                                         weiterbar als SWT, es gibt mehr kommerzielle und nicht
                                                             kommerzielle GUI-Komponenten und man bekommt
                                                             mehr Hilfe im Netz, weil es mehr Entwickler gibt, die
                                                             sich mit Swing auskennen. Googelt man „Rich Client
      Eclipse RCP ermöglicht                                 Platform”, bekommt man auf den ersten Ergebnisseiten
                                                             (fast) ausschließlich Links auf Eclipse RCP. Unverständ-
       große Freiheiten bei                                  lich, warum Oracle Eclipse das Feld mehr oder weniger
                                                             kampflos überlässt.
        der Gestaltung der                                      Alle drei vorgestellten Frameworks haben ihre indi-
                                                             viduellen Stärken und Schwächen, sie sind aber alle-
     gewünschten Applikation.                                samt für den Einsatz im Businessumfeld geeignet und
                                                             können von uns empfohlen werden. Das wichtigste
                                                             Entscheidungskriterium bei der Wahl sind allerdings
   Die oben beschriebenen Schwachpunkte von Eclipse          die Projektrahmenbedingungen. Wir hoffen, dass
RCP greift nun Eclipse Riena auf. Es geht speziell bei der   unsere Erfahrungen eine Entscheidungshilfe für Ihr
Benutzerführung einen recht eigenen Weg, der aber lei-       Projekt bietet, das passende Rich Client Framework
der nicht für jedes Projekt passen wird. Dieses Konzept      auszuwählen.
wurde laut Aussagen aus dem Riena-Team für eine In-
House-Applikation eines Finanzdienstleisters entwickelt
und ist somit auch praxiserprobt.
   Mit dem Ridget-Konzept und des Navigations-API
bietet Riena richtig gute Lösungen für formularbasierte
Applikationen. In den beiden anderen Frameworks ist
man gezwungen, einiges hiervon selber zu entwickeln,                    Holger Grosse-Plankermann (h.grosse-plankermann@iks-gmbh.
                                                                        com), Diplominformatiker, ist als IT-Berater bei der iks Gesellschaft
wenn man vergleichbaren Komfort und Leistungsfä-                        für Informations- und Kommunikationssysteme mbH tätig. Er be-
higkeit erhalten möchte. Die GUI weitestgehend über                     schäftigt sich seit vielen Jahren mit verteilten JEE-Systemen, Web-
Controller-Tests zu testen und auf GUI-Testtools wie                    2.0-Technologien sowie Rich-Client-Architekturen.
SWTBot zu verzichten, ist speziell im Headless Build ein
                                                                        Jörg Meister (jm@joergmeister.de) arbeitet seit vielen Jahren als
riesiger Vorteil. Zudem sieht eine Riena-Applikation                    freiberuflicher Softwareentwickler und Berater. Seine Schwerpunk-
out of the Box schon sehr schick aus.                                   te sind Rich-Client-Architekturen und JEE-Systeme.
   Die Dokumentation ist weniger umfangreich als bei
Eclipse RCP [4], [8], aber die bereitgestellten Snippets
[5] geben die Fähigkeiten des Frameworks sehr gut wie-       Links & Literatur
der. Allerdings sollte man bereits grundlegende Eclipse-
RCP-Kenntnisse haben, um mit Eclipse Riena zu starten.       [1] Eclipse RCP: http://www.eclipse.org/home/categories/rcp.php
Falls Riena nicht zum Projekt passen sollte und Eclipse      [2] Eclipse Riena: http://www.eclipse.org/riena/
RCP erste Wahl ist, kann man immer noch Teile von Ri-
                                                             [3] NetBeans RCP: http://netbeans.org/features/platform/
ena verwenden. Unsere Empfehlung ist, sich speziell das
                                                             [4] Eclipse Riena Getting Started: http://wiki.eclipse.org/Riena_Getting_
Ridget-Konzept anzuschauen, um Themen wie Control-
                                                                 started
ler-Tests und das MVC Pattern elegant umzusetzen.
                                                             [5] Eclipse Riena Snippets: http://wiki.eclipse.org/Riena_Snippets
   Ebenso wie bei der Eclipse-RC-Plattform ist die Einar-
beitung in NetBeans RCP aufwändig. Auch passen man-          [6] SwingLabs: http://swinglabs.org/index.jsp
che Konzepte der Plattform nicht zu den Anforderungen        [7] Eclipse RCP Tutorial: http://www.vogella.de/articles/EclipseRCP/article.
unserer Versicherungsapplikation. Das NetBeans RCP               html
Framework ist eine konkurrenzfähige RC-Plattform und         [8] Eclipse Riena Tutorial: http://www.ralfebert.de/blog/eclipsercp/riena_
bietet, wie die beiden Konkurrenten, alles, was das Herz         tutorial/
eines RC-Entwicklers erfreut. Die ausgefeilten Konzepte      [9] NetBeans Platform Learning Trail: http://netbeans.org/features/
von Riena kennt es allerdings nicht. Im Netz findet man          platform/all-docs.html




www.JAXenter.de                                 © Software & Support Verlag GmbH                                           javamagazin 8 | 2011   7
Sonderdruck


    Notizen:




                                                                Individuelle IT-Konzepte
                                                                und Softwarelösungen




                                                                Softwareentwicklung



                                                                 IT-Beratung



                                                                 IT-Konzepte



                                                                 Business Intelligence




                                                                iks Gesellschaft für
                                                                Informations- und
                                                                Kommunikationssysteme mbH

                                                                Siemensstraße 27
                                                                40721 Hilden

                                                                Telefon 0 21 03 - 58 72 -0
                                                                Telefax 0 21 03 - 58 72 -58

                                                                info@iks-gmbh.com
                                                                www.iks-gmbh.com




                                                                   s
                                                                  ik        Gesellschaft für
                                                                            Informations- und
                                                                            Kommunikationssysteme mbH


8     javamagazin 8 | 2011   © Software & Support Verlag GmbH

Weitere ähnliche Inhalte

Andere mochten auch

Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)
Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)
Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb
iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb
iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
App-Projekte richtig steuern
App-Projekte richtig steuernApp-Projekte richtig steuern
Mehr Softwarequalität: Team-Cleancoding
Mehr Softwarequalität: Team-CleancodingMehr Softwarequalität: Team-Cleancoding
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Micro, Nano, Mono - Microservices verständlich erklärt.
Micro, Nano, Mono  - Microservices verständlich erklärt.Micro, Nano, Mono  - Microservices verständlich erklärt.
Micro, Nano, Mono - Microservices verständlich erklärt.
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Mehr Softwarequalität: Technische Schulden
Mehr Softwarequalität: Technische SchuldenMehr Softwarequalität: Technische Schulden
Mehr Softwarequalität: Technische Schulden
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Mehr Softwarequalität: Qualität als Treiber
Mehr Softwarequalität: Qualität als TreiberMehr Softwarequalität: Qualität als Treiber
Mehr Softwarequalität: Qualität als Treiber
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Agiles Arbeiten - Mythen, Trends und Best Practices
Agiles Arbeiten  - Mythen, Trends und Best PracticesAgiles Arbeiten  - Mythen, Trends und Best Practices
Agiles Arbeiten - Mythen, Trends und Best Practices
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Ist Ihr Unternehmen reif für Microservices?
Ist Ihr Unternehmen reif für Microservices?Ist Ihr Unternehmen reif für Microservices?
Ist Ihr Unternehmen reif für Microservices?
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
PROGRAMA PROMESAS CADIZ 1ªFASE
PROGRAMA PROMESAS CADIZ 1ªFASEPROGRAMA PROMESAS CADIZ 1ªFASE
PROGRAMA PROMESAS CADIZ 1ªFASE
nia105
 
Rentabiliza Tu Red Social
Rentabiliza Tu Red SocialRentabiliza Tu Red Social
Rentabiliza Tu Red Social
Pablo Zrii
 
econozco
econozcoeconozco
econozco
andercastro
 
Schweppes Antiox business case
Schweppes Antiox business caseSchweppes Antiox business case
Schweppes Antiox business case
Alfonso Gadea
 
Keep In Touch: Channel, Expectation and Experience
Keep In Touch: Channel, Expectation and ExperienceKeep In Touch: Channel, Expectation and Experience
Keep In Touch: Channel, Expectation and Experience
Rongrong Wang
 
Fundamentos Mejor En Bici
Fundamentos  Mejor En  BiciFundamentos  Mejor En  Bici
Fundamentos Mejor En Bici
pabloesperi
 

Andere mochten auch (16)

Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)
Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)
Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)
 
iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb
iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb
iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb
 
App-Projekte richtig steuern
App-Projekte richtig steuernApp-Projekte richtig steuern
App-Projekte richtig steuern
 
Mehr Softwarequalität: Team-Cleancoding
Mehr Softwarequalität: Team-CleancodingMehr Softwarequalität: Team-Cleancoding
Mehr Softwarequalität: Team-Cleancoding
 
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
 
Micro, Nano, Mono - Microservices verständlich erklärt.
Micro, Nano, Mono  - Microservices verständlich erklärt.Micro, Nano, Mono  - Microservices verständlich erklärt.
Micro, Nano, Mono - Microservices verständlich erklärt.
 
Mehr Softwarequalität: Technische Schulden
Mehr Softwarequalität: Technische SchuldenMehr Softwarequalität: Technische Schulden
Mehr Softwarequalität: Technische Schulden
 
Mehr Softwarequalität: Qualität als Treiber
Mehr Softwarequalität: Qualität als TreiberMehr Softwarequalität: Qualität als Treiber
Mehr Softwarequalität: Qualität als Treiber
 
Agiles Arbeiten - Mythen, Trends und Best Practices
Agiles Arbeiten  - Mythen, Trends und Best PracticesAgiles Arbeiten  - Mythen, Trends und Best Practices
Agiles Arbeiten - Mythen, Trends und Best Practices
 
Ist Ihr Unternehmen reif für Microservices?
Ist Ihr Unternehmen reif für Microservices?Ist Ihr Unternehmen reif für Microservices?
Ist Ihr Unternehmen reif für Microservices?
 
PROGRAMA PROMESAS CADIZ 1ªFASE
PROGRAMA PROMESAS CADIZ 1ªFASEPROGRAMA PROMESAS CADIZ 1ªFASE
PROGRAMA PROMESAS CADIZ 1ªFASE
 
Rentabiliza Tu Red Social
Rentabiliza Tu Red SocialRentabiliza Tu Red Social
Rentabiliza Tu Red Social
 
econozco
econozcoeconozco
econozco
 
Schweppes Antiox business case
Schweppes Antiox business caseSchweppes Antiox business case
Schweppes Antiox business case
 
Keep In Touch: Channel, Expectation and Experience
Keep In Touch: Channel, Expectation and ExperienceKeep In Touch: Channel, Expectation and Experience
Keep In Touch: Channel, Expectation and Experience
 
Fundamentos Mejor En Bici
Fundamentos  Mejor En  BiciFundamentos  Mejor En  Bici
Fundamentos Mejor En Bici
 

Mehr von IKS Gesellschaft für Informations- und Kommunikationssysteme mbH

Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingtEs wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdfThementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdfThementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdfThementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdfThementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Thementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdfThementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdf
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdfThementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdfThementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 

Mehr von IKS Gesellschaft für Informations- und Kommunikationssysteme mbH (20)

Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingtEs wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
 
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
 
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdfThementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
 
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
 
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdfThementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
 
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdfThementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
 
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdfThementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
 
Thementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdfThementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdf
 
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdfThementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
 
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdfThementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
 
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
 
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
 

RCP-Vergleich, ein Artikel im Java Magazin 08/2011

  • 1. inkl. JAVA Mag CD User Stories in agilen Projekten Deutschland € 8,50 » 108 Österreich € 9,80 Schweiz sFr 16,80 8.2011 magazin Java • Architekturen • Web • Agile www.javamagazin.de Griffon OSGi CD-INHALT Neuer Schwung Architektur in » für Swing 25 OSGi umgesetzt » 98 Brandneues Programm » 51 Tools IPHONE 4 JAVA DEVELOPERS Video von der W-JAX 2010 HIGHLIGHT Eclipse Riena 3.0 Hector 0.7 Apache Cassandra JIRA & Co. erfolgreich einsetzen » S. 52, 58 WEITERE INHALTE • Jackson 1.8.1 Sond erdruck • Griffon 0.9.3 Beta 1 • Cassandra GUI 0.7.1 RESTful JSF Alle CD-Infos ab Seite 3 Ein Widerspruch? » 92 Java Web Services SOAP mit JAX-WS » 69 Cassandra und Hector Griechische NoSQL-Mythologie » 47
  • 2. Sonderdruck Das passende Rich-Client-Framework für Ihr Projekt Reiche Formulare Die „Brot und Butter“-Anwendungen eines Softwareentwicklers sind nach wie vor formularbasierte Verwaltungsapplikationen: sei es ein CRM-System, ein System zur Kreditbearbeitung oder die Verwal- tung von Versicherungsverträgen. Soll die Anwendung eine Webapplikation sein, hat der Architekt eine große Auswahl an passenden Frameworks. Entscheidet man sich für eine Rich-Client-Architektur, tappt man häufig im Dunkeln. Dieser Artikel bietet Ihnen Entscheidungshilfen an, um das für Ihr Projekt pas- sende Rich-Client-Framework auszuwählen. von Holger Grosse-Plankermann und Jörg Meister Recht schnell ist klar, dass eine Applikation auf Ba- sis einer Rich-Client-Plattform (RCP) der beste Ansatz Ein Kunde aus dem Bereich der Versicherungswirtschaft für diese Anwendung ist (Kasten: „Eigenschaften von wünscht sich eine neue Software zur Verwaltung von Rich-Client-Frameworks“). Es bleiben für uns im We- Versicherungsverträgen: Es soll eine Desktopapplikati- sentlichen drei Plattformen übrig, die wir nun einem in- on sein, die In-House auf den Rechnern der Sachbearbei- tensiveren Vergleich unterziehen: ter installiert wird. Die Verwaltung der Verträge besteht aus mehreren Schritten, bei denen der Benutzer unter- • Die Eclipse Rich Client Platform (Version 3.6) [1] stützt und geleitet wird. So ist es notwendig, abhängig • Eclipse Riena (Version 2.0), das auf Eclipse RCP von den eingegebenen Daten, einzelne Programmteile basiert [2] oder Eingabefelder anzuzeigen, zu verstecken oder mit • Die NetBeans Rich Client Platform (Version 6.9) [3] anderen Werten zu belegen. Außerdem soll der Benutzer bereits bei der Eingabe der Daten auf mögliche Fehler Die betrachteten Frameworks hingewiesen oder am Verlassen eines Prozessschritts Sowohl Eclipse RCP als auch NetBeans RCP haben ih- gehindert werden. Selbstverständlich wünscht der Kun- ren Ursprung in den entsprechenden IDEs. Bereits im de sich zudem eine komfortable, schnell reagierende Jahr 2001 wurde die NetBeans IDE so umgebaut und Applikation, die dem Benutzer auch ein komfortables modularisiert, dass NetBeans zu einer Plattform für Hilfesystem bietet. Zusammen mit dem Kunden haben Desktopapplikationen wurde. Auch Eclipse wurde ur- wir ein grundlegendes Bild der Applikation entwickelt sprünglich als reine IDE und Toolplattform entwickelt. (Abb. 1). Man erkannte jedoch, dass es sich auch zum Bau von Aus der Tatsache, dass die Benutzer verschiedenen Rich Clients eignet. Die vorhandenen Technologien Aufgabenbereichen zugeordnet sind, ergeben sich wei- wurden neu strukturiert, sodass aus der ehemaligen IDE tere Anforderungen: Es sollen nur relevante Applikati- eine offene und erweiterbare Plattform zur Entwicklung onsteile angezeigt werden, und neue Funktionalität für von Desktopapplikationen entstand. Mit der Version weitere Aufgabenbereiche soll rasch und einfach hin- 6.0 hat Sun das Thema Plattform wiederaufgegriffen zugefügt werden können (Modulkonzept). Die IT des und weitere APIs hinzugefügt, um gegenüber Eclipse Kunden ist Java-zentriert, somit wurden Lösungen aus RCP konkurrenzfähig zu sein. Aber Eclipse RCP ist so dem Java-Umfeld bevorzugt. Im nächsten Schritt suchen weit verbreitet, dass man es als De-facto-Standard an- wir nun eine technologische Basis, die diese Anforderun- sehen kann. gen abdeckt. Da diese Architekturentscheidung ähnlich Eclipse Riena nimmt hier eine Sonderrolle ein: Riena grundlegenden Charakter hat, wie die Auswahl des Per- basiert auf Eclipse RCP. Ziel von Eclipse Riena ist es, sistenzframeworks, muss diese Entscheidung sehr früh, die Erstellung von „üblichen“ Businessanwendungen zu aber nichtsdestoweniger mit sehr viel Weitblick getrof- vereinfachen. Auch versucht es, die Nutzerführung für fen werden. Anwender mit nicht technischem Background zu verein- 2 javamagazin 8 | 2011 © Software & Support Verlag GmbH www.JAXenter.de
  • 3. Sonderdruck lent. Formulare lassen sich damit sehr schnell erstellen. Allerdings sollte sich der Entwickler schon mit den Ei- genheiten der Layout Mana- ger auskennen. Eclipse RCP gibt keinerlei Vorgaben, wie ein Layout auszusehen hat, sodass das Wireframe nahezu 1:1 umsetzbar ist. Einschränkungen gibt es (zumindest in unserem An- satz) bei der Abbildung der Prozessschritte. Doch dazu später mehr. Eine Demo- applikation mit Eclipse RCP sehen Sie in Abbildung 2. Einer Eclipse-RCP-An- Abb. 1: Wireframe der Versicherungsapplikation wendung sieht man meistens an, dass Eclipse der Unter- fachen. Diese haben häufig Probleme mit der Vielzahl bau ist. Über das eher unhandliche Presentation API ist der Möglichkeiten, die eine Eclipse-Applikation enthält. viel vom Look and Feel anpassbar. In Eclipse RCP 4.0 Riena bietet u. a. ein eigenes Interaktionskonzept, eigene wird es möglich sein, eine Anwendung mittels CSS zu GUI-Elemente und ein eigenes Look and Feel. Zudem verschönern. kann Riena die Einbindung in eine JEE-Umgebung ver- Allerdings gibt es hier einige Einschränkungen, die einfachen. Zur Kommunikation mit dem Backend wer- durch SWT ins Spiel kommen. In einigen Fällen über- den Remote OSGi Services angeboten, die proprietäre nimmt SWT schlichtweg den Standard des Betriebssys- JEE Jars im Client überflüssig machen. tems, ohne dass das änderbar wäre. Ein Beispiel hierfür ist die Vordergrundfarbe eines nicht aktiven Felds. Vergleich der Frameworks Wie erwähnt, ist Riena ein Aufsatz auf Eclipse RCP Nach der allgemeinen Vorstellung wollen wir nun die und benutzt als GUI-Technologie ebenfalls SWT. Als Frameworks genauer vergleichen. Wir konzentrieren Tool-Support bietet sich somit ebenfalls der Google uns dabei auf die Teile der RC-Plattformen, die bei einer Window Builder an. Riena bringt allerdings noch einen formularbasierten Anwendung anders sind als bei den praxiserprobten Satz an GUI-Komponenten mit. Es geht üblichen RCP-Demoapplikationen. Wir gehen somit auf auch in puncto GUI-Entwicklung einen eigenen Weg: Es die Fragen „Wie kann das gewünschte Layout des Wi- forciert den Model-View-Controller-Ansatz und trennt reframes umgesetzt werden?“ und „Wie bildet der Ent- mithilfe der Ridgets [4] die Darstellung des Controls wickler den eingangs umrissenen Prozess ab?“ ein. von seinem Verhalten. Resultat sind eine besser struk- turierte Anwendung und eine bessere Testbarkeit der Layouting in den Plattformen GUI. Dieser MVC-Ansatz ist in Eclipse RCP selber nur In diesem Abschnitt interessiert uns, welche Techno- umständlich einzupflegen. Das Ridget-Konzept macht logie verwendet wird, um Layouts mit dem gewählten den Einstieg etwas schwieriger. Verwendet man Cont- Framework zu erstellen, inwiefern der Kunde Einfluss rols, die nicht von Riena mitgeliefert werden, so muss auf das Aussehen (Farben, Schriften etc.) der Anwen- man eigenhändig Ridgets hierfür erzeugen. Aufgrund dung nehmen kann und die verfügbaren Tools. Auch der guten Beispiel-Snippets [5] ist das allerdings kein beachten wir die Besonderheiten des formularbasierten größeres Problem. Ansatzes hinsichtlich des gezeigten Wireframe der An- Die hierarchische Struktur der Anwendung, sichtbar wendung. in der Navigationsleiste, wird deklarativ definiert. Hier Eclipse RCP verwendet das systemnahe SWT. Vorteil findet die Zuordnung von Views und Controllern zu ist das betriebssystemnahe Aussehen der Anwendung. einem Menüpunkt oder einem Prozessschritt statt und Nachteile sind die schwierigere Anpassbarkeit und bildet den Kern einer Riena-Applikation. der sehr kleine Markt an Zusatzkomponenten. Kom- Das vorgestellte Wireframe lässt sich mit Riena al- plexere Controls sind oft nur über das Nebula-Projekt lerdings nicht 1:1 umsetzen, da das Framework ein verfügbar. Allerdings haben diese oft noch keine Pro- eigenes GUI-Konzept verfolgt. Die vorgestellte An- duktionsreife. Der Tool-Support ist mit dem neuerdings wendungsstruktur findet sich aber wieder: Wir erläu- kostenlos verfügbaren Google Window Builder exzel- tern das genauer im Kasten „Riena-UI-Konzept“. Das www.JAXenter.de © Software & Support Verlag GmbH javamagazin 8 | 2011 3
  • 4. Sonderdruck Vorhandene ergänzen. So findet man in den SwingLabs von Sun beispielsweise Kalenderkomponenten oder den später erwähnten JXLayer zur besseren Dar- stellung von Fehlern bei der Datenein- gabe. Durch die Möglichkeit, das Look and Feel einer Swing-Applikation aus- tauschen zu können, kann das Aussehen des Programms eigenen Wünschen ange- passt werden. Mittels des Nodes und des Explorer API ist es einfach, strukturierte Daten in Komponenten wie Tabellen, Bäume oder Property-Editoren darzustellen, sie in der Darstellung zu manipulieren und Aktionen oder Kontextmenüs damit zu verknüpfen. Swing stellte uns u. a. mit dem GroupLayout alles Notwendige zur Verfügung, um das Wireframe in Abb. 2: Demoapplikation mit Eclipse RCP (die NetBeans-RCP-Applikation sieht ähnlich aus) unserer Applikation umzusetzen. Das GroupLayout ist ein Layoutmanager, der Aussehen (Farben, Fonts, Bilder etc.) einer Riena-An- seit Java 6 im JDK vorhanden und für die Darstellung wendung kann relativ einfach angepasst werden. Auch unserer formularbasierten GUI bestens geeignet ist. ist es möglich, für einige Teile der Navigation eigene Renderer einzusetzen. Eine Demoapplikation mit Rie- GUI-Steuerung der Plattformen na ist in Abbildung 3 zu sehen. In diesem Abschnitt wollen wir uns mit den Kernpunk- Mit Swing als Grundlage von NetBeans RCP ist ten der oben umrissenen Versicherungsanwendung be- es für jeden JSE-Entwickler einfach, die geforderten fassen. Wie können die Frameworks den Entwickler bei GUIs umzusetzen. Der GUI Builder Matisse ist Teil der der Umsetzung und Visualisierung der Geschäftsprozes- NetBeans IDE und intuitiv bedienbar. Für Swing gibt se unterstützen? es einen breiten Markt an kommerziellen und nicht Zum einen beschäftigt uns hier, wie man bestimm- kommerziellen GUI-Komponenten und Tools, die das te Elemente eines Formulars (Knöpfe, Eingabefelder Eigenschaften von Rich-Client-Frameworks Ein RCP-Framework besteht aus einer Vielzahl von Komponen- Das kann programmatisch oder durch den Benutzer getriggert ten, die zum Teil in unserer Versicherungsapplikation verwendet werden. Bei NetBeans RCP wird es über das Auto Update Ser- wurden. Diese lassen sich wie folgt klassifizieren. vice API und bei Eclipse RCP bzw. Riena über P2 durchgeführt. User Interface Management Data Binding Die Frameworks bieten komfortable Möglichkeiten wie Fenster, Das Data Binding dient zur Synchronisierung von Datenmodel Editoren, Menüs, Werkzeugleisten, Statusbars etc., um sowohl und GUI. Es sorgt dafür, dass die Werte eines Modells in den einfache als auch aufwendige GUIs zu programmieren. verknüpften GUI-Elementen angezeigt und Änderungen aus den Modulsystem GUI-Elementen in das Modell transferiert werden. Dabei können die Daten konvertiert und validiert werden. Alle drei Plattformen benutzen OSGi als Modulsystem (NetBeans bietet zusätzlich noch ein einfacheres, eigenes System an). Mithilfe Hilfesystem des Modulsystems ist es für die Versicherung möglich, Teilapplika- Das Hilfesystem bietet dem Benutzer die Möglichkeit, kontext- tionen je nach Bedarf an die entsprechenden Mitarbeiter auszulie- sensitive Hilfeseiten aufzurufen. fern. So bekommt die Haftpflichtabteilung das Modul für die Scha- Internationalisierung densregulierung, aber nicht das Modul für die Krankenversicherung. Die Frameworks bieten Methoden zum automatischen Einbin- Updatemanager den von sprachabhängigen Ressourcen in der GUI und dem Ein Updatemanager erlaubt der Applikation, sich mit einem Hilfesystem. Updateserver zu verbinden und Programmteile auszutauschen. 4 javamagazin 8 | 2011 © Software & Support Verlag GmbH www.JAXenter.de
  • 5. Sonderdruck etc.) aufgrund von Regeln (beispielsweise fachliche oder technische Validierungen) markiert, ein- oder ausblendet. Zum an- deren wird hier thematisiert, wie man den geforderten Prozess visualisiert und wie man zwischen einzelnen Prozessschritten wechselt oder Prozessschritte ein- oder ausblendet. Um einen Geschäftsprozess für unsere Art der Anwendung abzubilden, liefert Ec- lipse RCP von Hause aus keine Vorgaben. Eine Möglichkeit, die von uns bereits in Projekten eingesetzt wurde, ist der FormE- ditor, der in der Eclipse IDE für die Proper- ty-Editoren verwendet wird. Hier können einzelne Prozessschritte als Tabs unterhalb des Eingabebereichs dargestellt werden. Da diese Lösung allerdings die Basis in den eher statisch angelegten Property-Editoren hat, ist das Verstecken und nachträgliche Hinzufügen eines Tabs nicht trivial. Hat man allerdings lediglich die Anforderung, Abb. 3: Demoapplikation mit Riena dass die Tab-Leiste statisch sein soll, stellt der FormEditor eine perfekte Lösung dar. unsere Anforderungen mit etwas Handarbeit in die- Alle offenen Geschäftsvorfälle zeigt Eclipse RCP als sem Bereich umsetzbar sind. Die Herkunft von Eclipse Reiter oberhalb des Eingabebereichs an. Der Benutzer RCP als IDE-Framework merkt man allerdings recht kann so schnell zwischen ihnen wechseln. deutlich. Eclipse RCP bietet ebenso wie die beiden anderen Alle in der Einleitung genannten Punkte sind in Riena RCP-Frameworks ein Data Binding. Dieses sorgt nicht umsetzbar. Wie bereits im vorherigen Kapitel erläutert, nur für ein komfortables Verknüpfen von Modell und geht Riena hier aber eigene Wege [4]. Im Kasten „Das Formularelementen. Mit einer eigenen kleinen Erweite- Riena-UI-Konzept“ gehen wir auch schon auf einige rung wurde diese Funktionalität auch für das Steuern Punkte der Prozesssteuerung ein. der GUI-Interaktion verwendet. Bei Zustandsänderun- Das Ein- und Ausblenden bzw. Deaktivieren eines gen in unserem Modell, beispielsweise dem Setzen eines Prozessschritts wird in Riena weitgehend deklarativ bestimmten Werts, wurden je nach fachlicher Anforde- über UIFilter erledigt. Dies kann für Neulinge fehler- rung GUI Controls ein- oder ausgeschaltet. anfällig sein. Es besteht aber auch der programmatische Knöpfe und Menüpunkte werden über das so ge- Weg, der etwas umständlicher wirkt. Für den Einstieg, nannte Command API angebunden. Das Command um einen Überblick über die Konzepte zu bekommen, API sieht im Kern eine deklarative Herangehensweise ist dieser Weg allerdings empfehlenswert. Die mitgelie- für die Verwaltung des Status (sichtbar, anklickbar etc.) ferten Beispielanwendungen bieten hier umfangreiche vor. Im Kontext der Eclipse IDE ist es sicherlich der und gute Vorlagen. richtige Weg, um eine Nutzerinteraktion in verschiede- Fehlerzustände können ebenfalls deklarativ oder aber nen Kontexten (z. B. Java Perspective, Debugging Per- direkt am Ridget über Data Binding definiert werden. spective) zu handhaben. In unserer Art der Anwendung Das Data Binding entspricht im Kern dem von Eclipse fanden wir diese Herangehensweise zu aufwändig, uns RCP, gebunden wird hier allerdings das Ridget. Die Dar- fehlt eine programmatische Alternative. Über das Com- stellung des Eingabebereichs selber ähnelt den NetBeans- mand API können auch deklarativ einzelnen Befehlen und Eclipse-RCP-Lösungen, die Standarddekorationen Tastaturkürzel zugewiesen werden. Eclipse RCP bietet sehen allerdings etwas moderner aus. Fehlerzustände für die so zugewiesenen Kürzel direkt eine Übersicht an. werden auch in der Navigationsleiste angedeutet. Falls man es zulässt, sind diese Zuordnungen auch vom Das Einbinden von Tastaturkommandos folgt dem Benutzer änderbar. Prinzip von Eclipse RCP. Riena bringt aber noch eigene Für die Navigation zwischen einzelnen Reitern und Commands zur Steuerung der Navigation mit. Tabs liefert Eclipse ebenso Commands mit. Verwendet Abschließend sei noch gesagt, dass es dem Entwickler man diese, sind die aus der Eclipse IDE bekannten GUI natürlich immer freisteht, neben den Riena APIs auch die Widgets zum Navigieren zwischen Reitern und Tabs Eclipse RCP APIs zu benutzen, es handelt sich schließ- direkt benutzbar. Unterm Strich kann man sagen, dass lich um eine Eclipse-RCP-Anwendung. Das Ändern der www.JAXenter.de © Software & Support Verlag GmbH javamagazin 8 | 2011 5
  • 6. Sonderdruck Gegensatz zu Eclipse RCP war das Handling der MultiViews leider in internen NetBeans-Klassen gekap- selt, sodass es keinen Weg gab, das Ein- und Ausblenden von einzelnen Views nachträglich hinzuzufügen. Somit mussten wir die einzelnen Pro- zessschritte mit Swing-Mitteln abbil- den. Jeder Prozessschritt entsprach einem Tab in einer JTabbedPane. Das führte zu Mehraufwand, da das Handling selbst programmiert wer- den musste. Das Data Binding musste ebenfalls, wie im Eclipse-Abschnitt beschrieben, Abb. 4: Riena-UI-Konzept mit der Möglichkeit ergänzt werden, bei Zustandsänderungen im modell- beschriebenen Struktur kann aber größeren Aufwand eigenen Programmcode, wie das Aktivieren oder Deakti- nach sich ziehen (Abb. 4). vieren von Formularelementen, auszuführen. Ansonsten Ähnlich wie bei Eclipse RCP gibt es bei NetBeans reicht die angebotene Funktionalität des Bindings aus. RCP keinen durchgängigen Weg, um unsere Anforde- Bei der visuellen Manipulation von Formularelementen rungen zu erreichen. Bei NetBeans RCP benutzt man hat man alle Freiheiten von Swing. Um Validierungser- für die Applikationen eine TopComponent aus dem gebnisse an Formularelementen zu bekommen, mussten Windows-System-API. Dieses erlaubt ein komfortables wir auf den JXLayer aus den SwingLabs-Projekten [6] Fenster-Handling, das für unsere Ansprüche ausrei- zurückgreifen. Dadurch war es uns möglich, Fehlermar- chend war. Mit den TopComponents ist es möglich, ker direkt an einem Formularelement anzuzeigen. Bei mehrere Geschäftsvorfälle in der Applikation gleichzei- NetBeans RCP war deutlich mehr Handarbeit notwen- tig und unabhängig voneinander zu bearbeiten. Um in- dig als bei Eclipse RCP. nerhalb einer TopComponent einzelne Prozessschritte Tastaturkommandos, das Klicken in Toolbars, Pop- abbilden zu können, kann man die MultiViews benut- up-Menüs, Knöpfen oder Menüpunkten werden in der zen. Leider war es bei diesen Views aber nicht möglich, NetBeans RCP mit Actions aus dem Action API behan- einzelne Views programmatisch (je nach fachlichen delt. Das Action API erweitert das bekannte Swing-Ac- Anforderungen) ein- bzw. auszublenden. Wird das tion-Framework und verknüpft deklarativ pro Modul nicht verlangt, sind MultiViews die richtige Wahl. Im die Interaktion mit ausführbarem Code. Es sorgt dafür, dass beispielsweise Menüpunkte in einem Menü er- scheinen, wenn das entsprechende Modul gestartet ist. Riena-UI-Konzept Wie bei vielen Dingen in der NetBeans IDE, wird der Programmierer gut durch Wizards bei der Deklaration Um dem Benutzer das sonst eher technische Verhalten einer unterstützt. RCP-Anwendung zu ersparen, verfolgt Riena beim UI-Konzept einen eigenen Weg, der den Aufbau der Applikation fest- Fazit schreibt. Der aktuelle Programmteil (Application) wird immer Eclipse RCP ist der bekannteste und verbreitetste Ver- als Reiter oberhalb des Formulars dargestellt. Darunter treter unseres Vergleichsartikels. Das Framework befindet sich die Menüleiste. Am linken Rand ist die nicht ermöglicht große Freiheiten bei der Gestaltung der ge- versteckbare Navigationsleiste positioniert. Der Eingabebe- wünschten Applikation. Viele, oft auch kommerzielle reich befindet sich rechts. Die Prozessstruktur wird ähnlich Produkte nutzen Eclipse RCP als Basis. Das zeigt nicht wie ein Wizard dargestellt, Riena zeigt immer nur einen nur, dass ein breites Vertrauen in die Fähigkeiten der aktiven Eingabebereich an. Der Wechsel zu einem anderen Plattform existiert, sondern auch, dass Eclipse RCP pra- Prozessschritt erfolgt entweder programmatisch über das xiserprobt und sehr stabil ist. Auch ist für Eclipse RCP Navigations-API oder manuell über die Navigationsleiste. Die im Vergleich mit den anderen beiden Frameworks deut- aus Eclipse und NetBeans bekannte Möglichkeit, mehrere lich mehr Dokumentation verfügbar, sei es im Web [7], Editoren gleichzeitig darzustellen, fehlt bewusst. Auf Tabs in Newsgroups oder in Form von Büchern. und Reiter verzichtet Riena. Die Navigationsleiste bildet den Das Vertrauen in die Plattform ist unserer Meinung Kern der Applikation und zeigt sowohl die Geschäftsvorfälle nach völlig gerechtfertigt, allerdings erkauft man sich als auch die einzelnen Schritte eines Geschäftsvorfalls an. mit der Flexibilität speziell im Hinblick auf die „nor- male“ Businessanwendung auch einige Nachteile. Der 6 javamagazin 8 | 2011 © Software & Support Verlag GmbH www.JAXenter.de
  • 7. Sonderdruck Einstieg in Eclipse RCP ist recht mühsam und einige deutlich weniger Dokumentation als beim Hauptkon- Konzepte wollen nicht so recht in die von uns beschrie- kurrenten, aber genügend, um sich in die APIs einzuar- bene Anwendungsklasse hineinpassen. Auch die The- beiten. Es gibt Produkte auf Basis von NetBeans RCP, men Testen und Continuous Integration sind nach wie allerdings sind uns nur wenige bekannt. Die Community vor nur unhandlich zu lösen. Maven Tycho verspricht ist vergleichsweise klein, die NetBeans-Kernentwickler hier Besserung. Alles in allem stellt Eclipse RCP aber das sind aber sehr auskunftsfreudig. Einen großen Vorteil Referenzframework im Bereich Rich Clients dar und ist sehen wir in der Verwendung von Swing als Widget den Anforderungen an eine moderne formularbasierte Toolkit in der NetBeans-Plattform. Swing ist besser er- Anwendung gewachsen. weiterbar als SWT, es gibt mehr kommerzielle und nicht kommerzielle GUI-Komponenten und man bekommt mehr Hilfe im Netz, weil es mehr Entwickler gibt, die sich mit Swing auskennen. Googelt man „Rich Client Eclipse RCP ermöglicht Platform”, bekommt man auf den ersten Ergebnisseiten (fast) ausschließlich Links auf Eclipse RCP. Unverständ- große Freiheiten bei lich, warum Oracle Eclipse das Feld mehr oder weniger kampflos überlässt. der Gestaltung der Alle drei vorgestellten Frameworks haben ihre indi- viduellen Stärken und Schwächen, sie sind aber alle- gewünschten Applikation. samt für den Einsatz im Businessumfeld geeignet und können von uns empfohlen werden. Das wichtigste Entscheidungskriterium bei der Wahl sind allerdings Die oben beschriebenen Schwachpunkte von Eclipse die Projektrahmenbedingungen. Wir hoffen, dass RCP greift nun Eclipse Riena auf. Es geht speziell bei der unsere Erfahrungen eine Entscheidungshilfe für Ihr Benutzerführung einen recht eigenen Weg, der aber lei- Projekt bietet, das passende Rich Client Framework der nicht für jedes Projekt passen wird. Dieses Konzept auszuwählen. wurde laut Aussagen aus dem Riena-Team für eine In- House-Applikation eines Finanzdienstleisters entwickelt und ist somit auch praxiserprobt. Mit dem Ridget-Konzept und des Navigations-API bietet Riena richtig gute Lösungen für formularbasierte Applikationen. In den beiden anderen Frameworks ist man gezwungen, einiges hiervon selber zu entwickeln, Holger Grosse-Plankermann (h.grosse-plankermann@iks-gmbh. com), Diplominformatiker, ist als IT-Berater bei der iks Gesellschaft wenn man vergleichbaren Komfort und Leistungsfä- für Informations- und Kommunikationssysteme mbH tätig. Er be- higkeit erhalten möchte. Die GUI weitestgehend über schäftigt sich seit vielen Jahren mit verteilten JEE-Systemen, Web- Controller-Tests zu testen und auf GUI-Testtools wie 2.0-Technologien sowie Rich-Client-Architekturen. SWTBot zu verzichten, ist speziell im Headless Build ein Jörg Meister (jm@joergmeister.de) arbeitet seit vielen Jahren als riesiger Vorteil. Zudem sieht eine Riena-Applikation freiberuflicher Softwareentwickler und Berater. Seine Schwerpunk- out of the Box schon sehr schick aus. te sind Rich-Client-Architekturen und JEE-Systeme. Die Dokumentation ist weniger umfangreich als bei Eclipse RCP [4], [8], aber die bereitgestellten Snippets [5] geben die Fähigkeiten des Frameworks sehr gut wie- Links & Literatur der. Allerdings sollte man bereits grundlegende Eclipse- RCP-Kenntnisse haben, um mit Eclipse Riena zu starten. [1] Eclipse RCP: http://www.eclipse.org/home/categories/rcp.php Falls Riena nicht zum Projekt passen sollte und Eclipse [2] Eclipse Riena: http://www.eclipse.org/riena/ RCP erste Wahl ist, kann man immer noch Teile von Ri- [3] NetBeans RCP: http://netbeans.org/features/platform/ ena verwenden. Unsere Empfehlung ist, sich speziell das [4] Eclipse Riena Getting Started: http://wiki.eclipse.org/Riena_Getting_ Ridget-Konzept anzuschauen, um Themen wie Control- started ler-Tests und das MVC Pattern elegant umzusetzen. [5] Eclipse Riena Snippets: http://wiki.eclipse.org/Riena_Snippets Ebenso wie bei der Eclipse-RC-Plattform ist die Einar- beitung in NetBeans RCP aufwändig. Auch passen man- [6] SwingLabs: http://swinglabs.org/index.jsp che Konzepte der Plattform nicht zu den Anforderungen [7] Eclipse RCP Tutorial: http://www.vogella.de/articles/EclipseRCP/article. unserer Versicherungsapplikation. Das NetBeans RCP html Framework ist eine konkurrenzfähige RC-Plattform und [8] Eclipse Riena Tutorial: http://www.ralfebert.de/blog/eclipsercp/riena_ bietet, wie die beiden Konkurrenten, alles, was das Herz tutorial/ eines RC-Entwicklers erfreut. Die ausgefeilten Konzepte [9] NetBeans Platform Learning Trail: http://netbeans.org/features/ von Riena kennt es allerdings nicht. Im Netz findet man platform/all-docs.html www.JAXenter.de © Software & Support Verlag GmbH javamagazin 8 | 2011 7
  • 8. Sonderdruck Notizen: Individuelle IT-Konzepte und Softwarelösungen Softwareentwicklung IT-Beratung IT-Konzepte Business Intelligence iks Gesellschaft für Informations- und Kommunikationssysteme mbH Siemensstraße 27 40721 Hilden Telefon 0 21 03 - 58 72 -0 Telefax 0 21 03 - 58 72 -58 info@iks-gmbh.com www.iks-gmbh.com s ik Gesellschaft für Informations- und Kommunikationssysteme mbH 8 javamagazin 8 | 2011 © Software & Support Verlag GmbH