CaptainCasa CaptainCasa Enterprise Client Rich Client User Interfaces... ...mit Java?! Björn Müller CaptainCasa CaptainCasa CaptainCasa Enterprise Client How things started · · Coming together of midrange software companies developing business applications / solutions (Oct 2007) Result ­ ­ Business processing side is ,,under control" Java, Spring, Hibernate, Web Services, Jasper, ... Front end side is still ,,in discussion" No satisfying strategy to convert core applications ­ ­ Often: Fat client still alive HTML, AJAX experience available with all companies Goal: Rich Client in front of server side application CaptainCasa CaptainCasa Enterprise Client Challenge: Application Lifecycle · Application Lifecycle: >> 5 years ­ ==> Lllooonnnngggg term commitments are made · · Technical Discussion and... Management Discussion ­ ­ Build? Buy? CaptainCasa CaptainCasa Enterprise Client Challenge: Application Lifecycle · Application Lifecycle: >> 5 years ­ ==> Lllooonnnngggg term commitments are made · · Technical Discussion and... Management Discussion ­ ­ ­ Build? Buy? ...Community! Share vision Share code, problems, knowledge Share risk CaptainCasa Enterprise Client CaptainCasa CaptainCasa CaptainCasa Enterprise Client CaptainCasa Corporate Community CaptainCasa CaptainCasa Enterprise Client Front End Strategies Power User ,,Native" UI Technology (Java, .Net) Scripting (AJAX,...) Casual User Manager HTML Pages Doer CaptainCasa CaptainCasa Enterprise Client Front End Strategies Power User ,,Native" UI Technology (Java, .Net) Scripting (AJAX,...) Casual User Manager HTML Pages Doer CaptainCasa CaptainCasa Enterprise Client User Interface for Operational Usage User Fast & ,,Interactive" Stable ,,Nice" IT Manager Low Cost == Manageable Developer Simple & Efficient Compliant to Standards Community Based CaptainCasa CaptainCasa Enterprise Client HTML / AJAX Frustration · HTML and AJAX did not make it in the area of operationally used Applications Too slow Too Browser-dependent Too high development effort · No ,,real" progress in browsers over the past 6 years Internet Explorer as dominant browser Still waiting for the ,,JIT-effect"... High Dependency on Framework · Too many frameworks CaptainCasa CaptainCasa Enterprise Client AJAX Usage Dilemma · · Casual users want simple screens to be loaded fast! Operational users want complex screens to operate fast! Power User ,,Native" UI Technology (Java, .Net) Scripting (AJAX,...) Casual User Manager HTML Pages Doer CaptainCasa CaptainCasa Enterprise Client AJAX means ,,Fighting with Limits" AJAX-ability AJAX Expectations AJAX Perception IE 5.5 Mozilla1.0 IE 7.0 Browser Limits AJAX Usage AJAX Frameworks 90s 2000s CaptainCasa CaptainCasa Enterprise Client AJAX means ,,Fighting with Limits" AJAX-ability AJAX Expectations AJAX Perception IE 5.5 Mozilla1.0 IE 7.0 Browser Limits Pane and Fight Phase Fun Phase AJAX Usage AJAX Frameworks 90s 2000s CaptainCasa CaptainCasa Enterprise Client AJAX Maturity Conclusions CaptainCasa CaptainCasa Enterprise Client AJAX Maturity Conclusions GoogleEarth GoogleMaps CaptainCasa CaptainCasa Enterprise Client What UI Technology to choose... · ...for operationally used Business Applications AJAX ­ · Performance, Robustness, Compatibility Animation driven, Valid Option Animation driven, young, Valid Option (Future) · Macromedia ­ · MS Silverlight ­ · ..or.. CaptainCasa CaptainCasa Enterprise Client Java Clients · ,,Industry proven" ­ ­ ­ ­ Compatible throughout ,,all" client OS platforms Fast Robust Used in many, many applications ,,=" Performance ,,+ Swing" Compatibility Interoperability Swing <==> SWT Java 6.10 improvements · Swing vs. Eclipse SWT ­ ­ ­ · Active area of development ­ CaptainCasa CaptainCasa Enterprise Client Java 1.6 Update 10 · Major improvements in treating applets ­ ­ ­ Each applet can request an own Virtual Machine Virtual Machine configurable (memory, ...) Version of Virtual Machine explicitly select-able · · Kernel Download Desktop Interface CaptainCasa CaptainCasa Enterprise Client Java Clients · But...: ­ ­ ­ Swing is just a library ­ not a rich client concept Swing is tough for application developers Layout Managers... Complexity of UI libraries is usually underestimated Swing looks old fashionned by default CaptainCasa CaptainCasa Enterprise Client NOT Wanted Explicitly coded Swing Program Web Services, ,,BAPI"s Server Logic CaptainCasa CaptainCasa Enterprise Client NOT Wanted · Explicitly coded Swing Program · Development Effort ­ both frontend and backend development WAN-ability ­ not ensured Security ­ all ,,BAPI"s to be secured Software Distribution ­ massive client updates Web Services, ,,BAPI"s · Server Logic · CaptainCasa CaptainCasa Enterprise Client Rich Client Concept Browser Swing based ,,Browser" WebStart Applet / Stand alone Optimized for delta Rendering XML Layout Definition ,,full" or ,,delta" Data changes & events http Server CaptainCasa CaptainCasa Enterprise Client Rich Client Concept Browser Swing based ,,Browser" WebStart / Applet / Stand alone Optimized for delta Rendering http(s) XML Layout Definition ,,full" or ,,delta" Data changes & events JSF Component Library Java Server Faces Managed Bean(s) CaptainCasa CaptainCasa Enterprise Client Rich Client Concept Browser Compare with... 3270 Swing based Terminal ,,Browser" Optimized for delta Rendering WebStart / Applet / Stand alone http(s) XML Layout Definition ,,full" or ,,delta" Data changes & events JSF Component Library Backend Faces Java Server Mainframe Managed Bean(s) CaptainCasa CaptainCasa Enterprise Client Server Side - JSF Req Res BODY ROW .JSP File LABEL FIELD Managed Beans CaptainCasa CaptainCasa Enterprise Client Client Side Browser (Applet, WebStart) Swing Extensions Swing Components JRE 1.6 Plugin Component Mgmt XML Parser Delta Mgmt http(s) Communication XML Stand alone Server CaptainCasa CaptainCasa Enterprise Client CaptainCasa Enterprise Client Power User ,,Native" UI Technology (Java, .Net) Power User ,,Native" UI Technology (Java, .Net) Scripting (AJAX,...) Casual User Manager HTML Pages Doer Casual User Manager Scripting (AJAX,...) HTML Pages Doer Browser Rich Client Your Thin Client Your Operational Users Your PDA/Sub-Device Users Your Touch Screen Users Your Java Plugin Casual Users Power Users http(s) Your Server Side (Java) Enterprise Application CaptainCasa CaptainCasa Enterprise Client Hello World! - JSP CaptainCasa CaptainCasa Enterprise Client Hello World! - Java (Server side) public class HelloWorldBean implements Serializable { String m_outputInfo; // Property yourName public String getYourName() { return m_yourName; } public void setYourName(String yourName) { m_yourName = yourName; } // Property outputInfo public String getOutputInfo() { return m_outputInfo; } public void onHello(ActionEvent event) { m_outputInfo = "Hello World, " + m_yourName + "!"; } } CaptainCasa CaptainCasa Enterprise Client Key architectural Advantages · Fast, robust, approved Client Technology 50 times faster than HTML / AJAX Scalability, Failover, ... Descriptive UI definition Client-Server Separation built in ­ · Standard Server Technology · Simple and fast Development No double-coding (client/server) I18N, ... built in · Efficient Client Deployment CaptainCasa CaptainCasa Enterprise Client Positioning · · · Intranet Applications which are used operationally Software as a Service Scenarios User Interface for complete Applications CaptainCasa CaptainCasa Enterprise Client CaptainCasa Corporate Community · Companies that have a common interest in drinving and using the CaptainCasa framework ­ ­ Forum Meetings · Purpose: driving the product! Licenses include Source Code · CaptainCasa CaptainCasa Enterprise Client Contact · · · http://www.CaptainCasa.com Forum info@CaptainCasa.com CaptainCasa GmbH Hindemithweg 13 D ­ 69245 Bammental +49 (0) 6223 484147 · CaptainCasa Enterprise Client Appendix CaptainCasa