Replace a bank-widecore applicationLessons learned                                        Folie 1                      Nik...
Das Altsystem•      Data Warehouse mit wichtigen Kennzahlen•      Jeder Mitarbeiter nutzt das System•      Schnittstellen ...
Das neue System•      Viele Stakeholder mit unterschiedlichen Wünschen•      Metadaten-Modellierung und Retrieval sind Sys...
Das Projekt                                                                               Eclipse 3.6.1                   ...
Warum Eclipse RCP?(Argumentation Stand 2008)•      Wunsch nach Plattform       – Aufgeräumte Oberfläche       – Vorhandene...
Erste Eindrücke vom Fach resp.Produkt-OwnerNach 6 Wochen Client-Entwicklung:                                              ...
Wieviele Plugins brauchen wir?                                                                        Beim Projektstart we...
Eclipse RCP und Usability                                                                        Hauptproblem (abhängig vo...
Die Limits                                                                        Grundproblem: Eclipse war gedacht für   ...
Kritikpunkte                                                                        •      APIs organisch gewachsen       ...
AlbträumeHeadless-Build mit Maven (vor Maven 3 und Tycho)•      Viel Zeit in eigene Maven-Plugins investiert•      Umgeste...
Groovy IntegrationDie DSL•      Fast alle UI-Operationen sind auch über Scripting zugänglich•      Interne DSL auf Basis v...
Welche Eclipse-Version?                                                                        Im Moment 3.6.1 (Version vo...
Hilfesystem und Dokumentation                                                                         Hilfe ist eigenes Pl...
Fazit1. Plattform nimmt dem Entwickler viel ab      erste schnelle Erfolge verblüffen das Fach2. 3.x ist eine stabile und ...
Fragen?Lessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kai...
Upcoming SlideShare
Loading in …5
×

Replace a bank wide core application

1,154 views

Published on

Starting in 2008 we created a repository / data warehouse storing statistical data and meta data. An Eclipse RCP client is being used to provide an interface for expert users such as data administrators and programmers to manage and explore data, meta data and structure definitions, authorizations, and to develop and run scripts based on a Groovy DSL to automate processes. After a successful roll-out in 2010, we are working on the 3rd release.

Creating and maintaining this application taught us many lessons we want to share. You will see the benefits of and the challenges in using Eclipse RCP when building a big and important application.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,154
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Replace a bank wide core application

  1. 1. Replace a bank-widecore applicationLessons learned Folie 1 Nikolaos Kaintantzis 16. Oktober 2012 nikolaos.kaintantzis@zuehlke.com Twitter: @xnka Nikolaos Kaintantzis © Zühlke 2012
  2. 2. Das Altsystem• Data Warehouse mit wichtigen Kennzahlen• Jeder Mitarbeiter nutzt das System• Schnittstellen zu internen und kommerziellen Produkten (z.B. Matlab und Excel)• Eigene Skriptsprache und CompilerTechnologien:• PL1-Kern• Visual Basic OberflächeLessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 2 © Zühlke 2012
  3. 3. Das neue System• Viele Stakeholder mit unterschiedlichen Wünschen• Metadaten-Modellierung und Retrieval sind Systembestandteil• Kern für weitere interne Produkte• Neue Skriptingsprache, basierend auf GroovyTechnologien:• JEE-Server• Eclipse RCP Client• GroovyLessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 3 © Zühlke 2012
  4. 4. Das Projekt Eclipse 3.6.1 Altsystem read only Okt. 2011 Eclipse 3.5.1 Parallelbetrieb Dez. 2010 Kernfunktionalität Eclipse Versionen: Eclipse 3.3.1 vorhanden Jun. 2007: 3.3 Jun. 2008: 3.4 Jan. 2008 Jun. 2009: 3.5 Start Jun. 2010: 3.6 Jun. 2011: 3.7 Jun. 2012: 4.2 (& 3.8)Lessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 4 © Zühlke 2012
  5. 5. Warum Eclipse RCP?(Argumentation Stand 2008)• Wunsch nach Plattform – Aufgeräumte Oberfläche – Vorhandene Funktionalität nutzen• Schlechte Kundenerfahrung mit WPF• Andere Java-Alternativen schienen nicht zukunftssicher• Web-Lösungen befriedigen Interaktionsbedürfnisse nicht• Eclipse bei einigen Benutzern (Strukturverantwortliche) bereits anderweitig im EinsatzLessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 5 © Zühlke 2012
  6. 6. Erste Eindrücke vom Fach resp.Produkt-OwnerNach 6 Wochen Client-Entwicklung: Sind ja schon Müssen fast nichts fast fertig! mehr tun!Gründe:• Fensteranordnung• Baumdarstellung• Erste XML-& UI-Editoren waren schnell daLessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 6 © Zühlke 2012
  7. 7. Wieviele Plugins brauchen wir? Beim Projektstart werden Plugins falsch geschnitten Ansatz: Benutzersicht einnehmen • Was soll zur Laufzeit austauschbar sein? in der Regel: nichts – 3 Plugins (Libs, App, Hilfe) – 1 Feature (mit Produkt) – 1 Fragment (Test) Ansatz: Wiederverwendung • Welche Funktionalitäten werden durch andere Applikationen wiederverwendet? eigene Plugins und Fragmente hierfürLessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 7 © Zühlke 2012
  8. 8. Eclipse RCP und Usability Hauptproblem (abhängig von der Benutzergruppen): Flexibilität vs. Benutzerführung • Umpositionierung von Editoren und Views kann nicht von jedem Benutzer rückgängig gemacht werden • Zu viele Operationen ersichtlich / möglich • Perspektiven sind technisch motiviert und werden nicht verstanden Perspektiven müssen von der Arbeit der Benutzer getrieben sein Mehr Redundanz zwischen den Perspektiven • Wie soll ein Arbeitsfluss abgebildet werden?Lessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 8 © Zühlke 2012
  9. 9. Die Limits Grundproblem: Eclipse war gedacht für Entwicklungsumgebung Folgerung: schwach in allem anderem • Tabellen (Excel-like) • Loading-Knoten in Bäume (weil Datenbeschaffung lange dauert) • Farbe in Bäumen (v.a. am Anfang) • Formulare (v.a. am Anfang) • (cooles Aussehen)Lessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 9 © Zühlke 2012
  10. 10. Kritikpunkte • APIs organisch gewachsen – Redundanzen – Inkonsistenzen • Codequalität und Javadoc in einigen Bereichen wünschenswert • Nicht immer werden Interfaces benutzt • Sich ändernde UIs sind aufwändiger zu implementieren als in Swing • Welche Style-Bits machen Sinn für diese und jene Komponente?Lessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 10 © Zühlke 2012
  11. 11. AlbträumeHeadless-Build mit Maven (vor Maven 3 und Tycho)• Viel Zeit in eigene Maven-Plugins investiert• Umgestellt auf Gradle UI-Testing (Ist nicht nur ein Eclipse RCP-Thema) • Extrem aufwendig / zu wenig Ressourcen • Zu häufig fehlgeschlagene Tests ohne richtigen Fehler – Timing Probleme (Lösung: besseres Tool) – Ab und zu unvorhergesehene aufpoppende Jobs-Monitor- DialogeLessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 11 © Zühlke 2012
  12. 12. Groovy IntegrationDie DSL• Fast alle UI-Operationen sind auch über Scripting zugänglich• Interne DSL auf Basis von Groovy• Zuerst: Facade mit Methoden und Wrapper über Typen und Operationen• Heute: Objektorientierte Bibliothek und DLS-TricksGroovy-Plugin verbessert sich immer mehr (dank Teilnahme an Foren)• Probleme z.B. bei Code Completion (u.a. Performance)• Java-Doc-Fehler bei überladen MethodenGroovy-Plugin ist Hauptgrund dafür, die Eclipse RCP-Version zu aktualisierenLessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 12 © Zühlke 2012
  13. 13. Welche Eclipse-Version? Im Moment 3.6.1 (Version von Herbst 2010) Abhängigkeit von Libraries • Neuestes Groovy-Plugin unterstützt offiziell 3.7 und 4.2 • Nebula-Grids (Tabellen) sind für Version 3.6, 3.7 und 3.8 Eclipse Juno bevorzugt 4.2 vor 3.8 – unserer Meinung nach ein Jahr zu früh • Viele UI-Bibliotheken sind für 4.x nicht verfügbarLessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 13 © Zühlke 2012
  14. 14. Hilfesystem und Dokumentation Hilfe ist eigenes Plug-In Tool: Docbook (XML) Mit XSLT wird die Eclipse-Hilfe generiert Code-Snippets sind ausführbar Einstieg über • Hilfe-Menü • Links im Javadoc der Scripting-SpracheLessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 14 © Zühlke 2012
  15. 15. Fazit1. Plattform nimmt dem Entwickler viel ab erste schnelle Erfolge verblüffen das Fach2. 3.x ist eine stabile und etablierte Plattform für Rich Clients3. Tabellen (etwa so wie Excel) sind teuer Framework-Evaluation notwendig4. Literatur und Foren sind technisch und nicht business- oder benutzergetrieben ein Entwickler/Architekt sollte häufig Benutzersicht einnehmen5. Aktives Mitmachen in Foren sehr empfehlenswert6. Maven nur ab Version 3 (mit Tycho) und nur dann, wenn man entsprechend den Vorschlägen von Maven arbeitet, sonst GradleLessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 15 © Zühlke 2012
  16. 16. Fragen?Lessons learned by replace a bank-wide core application with an Eclipse RCP Client and a JEE backend | Nikolaos Kaintantzis 16. Oktober 2012 Folie 16 © Zühlke 2012

×