2. CaptainCasa
Szenario 1
CaptainCasa Enterprise Client
• Back Office Anwendung, Mainframe
– Financials, Controlling, Materials Management
– 8 Entwickler, 1 Administrator
• UI Technologie
– 3270 Terminals
• ...versucht von 3270 Terminals wegzukommen.
• Gescheiterte Versuche
– HTML
– AJAX
– Zur Zeit: Evaluation von Adobe/Macromedia
3. CaptainCasa
Szenario 2
CaptainCasa Enterprise Client
• Mittelständischer Softwarehersteller
– Logistik (Warehouse, Delivery Management)
– 30 Entwickler
• UI Technologie
– Fat Client
• ...sucht nach Nachfolger seines „Cash Cow
Produktes“..
• Gescheiterte Versuche
– AJAX
– ...ist nun „zurück“ mit Java-Swing-basiertem Richt Client
Framework
4. CaptainCasa
Gesamtsituation
CaptainCasa Enterprise Client
• Hohe „Volatilität“ im Bereich von Technologien und
Hypes im UI Markt
• Hohe Evaluationskosten
• Hohes Risiko von Fehlentscheidungen
– Hohe Anzahl an Technologien
– Entscheidungsträger haben „emotionale Bindung“ zu
Technologie verloren
• Entwicklungseffizienz vieler Rich Client Frameworks
ist dramatisch schlecht
• Hohe Kosten durch „Warten auf Nachfolge-Cash-
Cows“
5. CaptainCasa
Land of Confusion
CaptainCasa Enterprise Client
HTML/ Adobe Java
HTML Silverlight
AJAX Macromedia JavaFX
Java, J2EE,
Server Side
Hibernate, Spring
Application
WebServices, ...
Relational DBs
Database
6. CaptainCasa
Land of Confusion
CaptainCasa Enterprise Client
HTML/ Adobe Java
HTML Silverlight
AJAX Macromedia JavaFX
Dojo Swing
RichFaces Eclipse
Qooxdoo FX
GWT
RAP
Java, J2EE,
... Server Side
Hibernate, Spring
Application
... WebServices, ...
Relational DBs
Database
7. CaptainCasa
Land of Confusion
CaptainCasa Enterprise Client
HTML/ Adobe Java
HTML Silverlight Hype gibt’s heute?
Welchen
AJAX Macromedia JavaFX
Dojo Swing
RichFaces Eclipse
Qooxdoo FX
GWT Java ME
Ich bin Architekt. Mit UI
RAP
habe ich nichts zu tun.
Java, J2EE,
... Server Side
Hibernate, Spring
Application
... WebServices, ...
Relational DBs
Database
8. CaptainCasa
Hauptkostenersparnis
CaptainCasa Enterprise Client
• Technologie- und Architekturfindung!
• Attribute
– langfristig
– effizient
– angemessen für Benutzer
– Hype-resistent
• Offen für „Apps“, aber klar ausgerichtet an Ihrer
„Application“
9. CaptainCasa
Scope = Reachability first!
CaptainCasa Enterprise Client
• Beispiele: B2C, social networks, ...
• Frontend Technologie
– HTML/AJAX – no way 'round
• Aber
– Performance Probleme
– Cross Browser Probleme
– AJAX Framework Abhängigkeit
– Entwicklungsaufwand
10. CaptainCasa
Scope = WOW first!
CaptainCasa Enterprise Client
• Beispiele: Configurators, Animations, ...
– ...wenige, aber „perfekte“ Seiten
• Frontend Technologie
– Adobe/Macromedia
– MS Silverlight
– (Java FX still verrrry young)
• Aber
– Client Entwicklungsaufwand
11. CaptainCasa
Scope = Enterprise Application
CaptainCasa Enterprise Client
• Beispiele: Financials, Logistics, ... applications
– Viele Screens, komplexe Regeln, Dateneingabe
• Frontend Technologie:
– Java
– MS Silverlight
– (Adobe/Macromedia)
• Aber
– RIA Architektur ist entscheidend
für Effizienz
12. CaptainCasa
One UI Technology fits ALL!
CaptainCasa Enterprise Client
• AJAX!
• Macromedia!
• HTML 5!
• Java!
13. CaptainCasa
One UI Technology fits ALL!
CaptainCasa Enterprise Client
• Ist es wirklich die „ONE“ Technologie?
– Macromedia „light“ <=> „heavy“ edition
– HTML-AJAX-full blown <=> HTML-plain
• Wer steht gerade, wenn es doch nicht ordentlich
läuft?
– Unter Mozilla sieht es ein wenig anders aus...
• Deckt diese wirklich Geräte-spezifische
Gegebenheiten ab?
– iPhone native <=> iPhone-HTML
14. CaptainCasa
One UI Technology fits ALL!
CaptainCasa Enterprise Client
• Ist die UI Technologie wirklich die adäquate für das
Herzstück Ihrer Anwendung?
– Interaktivität, Benutzerkomfort
– Entwicklungseffizienz
– Lanfristigkeit
– Möglichkeit der Kontrolle / Einflussnahme
• Zielarchitektur: Application <=> „App“
– Stabile Application Architektur
– Möglichkeit - „Apps“ mit vertretbarem Aufwand
anzudocken
15. CaptainCasa
ONE UI Technology fits ALL!
CaptainCasa Enterprise Client
• Mischformen sind realistisch(er)
Rich Client UI iPhone
Java Swing Based Shop
Thin
Apps
Logic
Rules
...
Data
16. CaptainCasa
What typically happens...
CaptainCasa Enterprise Client
Explicitly coded
Frontend
Program
Web Services, „BAPI“s
Server Logic
17. CaptainCasa
What typically happens...
CaptainCasa Enterprise Client
Explicitly coded
Frontend
Program
Web Services, „BAPI“s
Server Logic
18. CaptainCasa
What typically happens...
CaptainCasa Enterprise Client
Explicitly coded
Frontend
Program
Web Services, „BAPI“s
Server Logic
19. CaptainCasa
What typically happens...
CaptainCasa Enterprise Client
Explicitly coded
Frontend
Program
Web Services, „BAPI“s
Server Logic
20. CaptainCasa
Folge
CaptainCasa Enterprise Client
• Hohe Kosten im Bereich von
Enterprise Applications
– Sowohl Frontend als auch Backend
Expertise
– Viiiiiiele Interfaces (Pflege, Security,
Explicitly coded
Roundtrips)
Frontend
Program – Frontend Entwicklungs ist „weit weg“
von Backend Entwicklung
Web Services, „BAPI“s
– Roundtripverhalten ist kritisch
Server Logic
– Immer „dickere“ Clients; hohe
Frequenz der Auslieferung der Clients
21. CaptainCasa
Thin Client Architecture
CaptainCasa Enterprise Client
Rendering HTML
Engine Terminal
Browser
character http/
stream HTML
Server Side App Server Side App
Interaction Interaction
Application Processing Processing
Server
Application Application
Logic Logic
22. CaptainCasa
Thin Client Architecture
CaptainCasa Enterprise Client
Rendering HTML
Engine Terminal
Thin & Poor Thin & Poor
Browser
character http/
stream HTML
Server Side App Server Side App
Interaction Interaction
Application Processing Processing
Server
Application Application
Logic Logic
23. CaptainCasa
Thin Client Architecture
CaptainCasa Enterprise Client
Rendering Generic
HTML Frontend
Engine Terminal
Thin & Poor Thin & Poor
Browser Client
character http/ http/
stream HTML XML
Server Side App Server Side App Server Side App
Interaction Interaction Interaction
Application Processing Processing Processing
Server
Application Application Application
Logic Logic Logic
24. CaptainCasa
Thin Client Architecture
CaptainCasa Enterprise Client
Rendering Generic
HTML Frontend
Engine Terminal
Thin & Poor Thin & Poor Thin & Rich
Browser Client
character http/ http/
stream HTML XML
Server Side App Server Side App Server Side App
Interaction Interaction Interaction
Application Processing Processing Processing
Server
Application Application Application
Logic Logic Logic
25. CaptainCasa
Folge
CaptainCasa Enterprise Client
• Geringere Kosten im Bereich von
Enterprise Applications
– Nur Backend Expertise
– EIN Interface
– Frontend Entwicklung ist „nah dran“
Terminal
Thin & Poor
HTML
Thin & Poor
Browser
Generic
Frontend
Thin & Rich
Client
an Backend Entwicklung
character http/ http/
– Roundtripverhalten ist klar geregelt
stream HTML XML
– Stabiler Client, kein permanenter
Server Side App Server Side App Server Side App
Interaction Interaction Interaction Rollout
Processing Processing Processing
Application Application Application
Logic Logic Logic
26. CaptainCasa
Thin <=> Fat Client
CaptainCasa Enterprise Client
• Fat Client == Client driven UI Architecture
• Thin Client == Server driven UI Architecture
• Für den Herzteil einer „Enterprise Application“ ist
die Thin Client Architektur die bessere,
kostengünstigere Wahl.
• Aber
– Einflussnahme auf Framework ist wichtig!
– Widerstand von „eingefleischten UI Entwicklern“ ist oft
zu erwarten!
27. CaptainCasa
FAT <> THIN
CaptainCasa Enterprise Client
FAT
DOS Windows
HTML
Terminal Browser
THIN
28. CaptainCasa
FAT <> THIN
CaptainCasa Enterprise Client
FAT
DOS Windows
Software
driven
Architecture
Hardware
driven HTML
Terminal Browser
THIN
29. CaptainCasa
FAT <> THIN
CaptainCasa Enterprise Client
FAT
Fat <> Thin
DOS Windows
vs.
Rich <> Poor
Take the
Exit
To HTML
Terminal
THIN!
Browser
THIN
30. CaptainCasa
UI Generierung
CaptainCasa Enterprise Client
• Von 100% Bildschirmen verdienen es nur 20%,
explizit „durchdesigned“ zu werden
• Beispiel:
– Verarbeitungsdialoge - ja!
– Stamm/Steuerdatendialoge - nein!?
– Reportingdialoge - nein!
• Für den Rest gilt:
– Bilden Sie Klassen von Dialogen
– Definieren Sie eine Meta-Beschreibung für diese Dialoge
und deren Verarbeitung
– Schaffen/Nutzen Sie eine Generierungsumgebung zur
Erstellung der Dialoge und deren Verarbeitung
33. CaptainCasa
UI Generierung
CaptainCasa Enterprise Client
• Generierung darf kein Blockierer für einzelne
Dialoge sein
– In diesem Fall: abkoppeln!
– Kein Einbau von „Sonderlocken“ mit einmaliger Nutzung
in das Generierungsframework.
• Generierungsframework muss beeinflussbar sein
– Es erstreckt sich typischerweise über UI und
Verarbeitungsebene.
– Aktive Community <=> Eigenerstellung
34. CaptainCasa
Résumée
CaptainCasa Enterprise Client
• UI Architektur ist zentraler Teil der
Gesamtarchitektur
– Überlassen Sie UI Architekturentscheidungen nicht dem
Zufall
– Tappen Sie nicht in die Fat Client Falle
– Wählen Sie eine Thin Client Architektur im Bereich von
Enterprise Anwendungen
• Enorme Kosten entstehen durch Wahl der nicht
passenden Technologie und Architektur
35. CaptainCasa
Résumée
CaptainCasa Enterprise Client
• Glauben Sie nicht an Wunder-Frameworks, die alles
können
– Wählen Sie eines aus, das den Kernteil Ihrer Anwendung
glaubwürdig abdeckt. - Beachten Sie dabei die Frage,
welchen Einfluss Sie auf das Framework haben
– Reiten Sie auf Hypes, wenn es um „Apps“ geht.
Ignorieren Sie Hypes, wenn es um Ihre „Application“
geht.
• Generieren Sie Ihre „80%“ Bildschirme und widmen
Sie sich Ihren „20%“ Bildschirmen