It's Not Over 'Til the Fat Client Sings
Total Page:16
File Type:pdf, Size:1020Kb
It’s Not Over ‘til the Fat Client Sings Joe Winchester Megan Beynon Software Engineer Software Engineer IBM Rational Software Group IBM Rational Software Group www.software.ibm.com TS-4317 2006 JavaOneSM Conference | Session TS-4317 | The Client, the Server and the Rich User Apps Can be Fat, Thin, Rich or Poor Users demand better GUI experiences AJAX, Flex, Laszlo “browser enhancing” technologies ULC, JavaServer™ Faces technology, Nexaweb “server code enhancing user experience” Desktop Java™ technology in this space with Java WS technology, SwingLabs, Swing, SWT, Eclipse RCP 2006 JavaOneSM Conference | Session TS-4317 | 2 Agenda The Death of the Client The Death of the Browser The Browser Strikes Back AJAX, Flex, Laszlo DEMO The Server Strikes Back JavaServer Faces technology, ULC, Nexaweb DEMO The Client Strikes Back Java WS technology, Swing, SWT, RCP DEMO 2006 JavaOneSM Conference | Session TS-4317 | 3 The Death of the Client • Applet downloads over low bandwidth • Microsoft pulling Java VM from browser • Early Swing releases • Performance and memory issues • Fidelity of Swing client versus native toolkit app • Alternative “virtual machines” like Flash • The ubiquity of the browser • HTML becomes “write once, run anywhere” • Server side deployment of code simplifies system management issues 2006 JavaOneSM Conference | Session TS-4317 | 4 The Death of the Client • Customers who use software delivered over the Internet can be assured of a state-of-the-art experience as the software is centrally and continually updated. Microsoft, however, has to distribute code for any change to the hundreds of millions of PCs where its desktop software resides. It thus releases new products infrequently. (Vista, the upcoming version of Windows, is the first big upgrade since Windows XP in 2001.) • http://money.cnn.com/magazines/fortune/fortune_archiv e/2006/05/01/8375454/index.htm 2006 JavaOneSM Conference | Session TS-4317 | 5 The Death of the Browser • Poor user interface experience • Scrolling experience poor • Megadata “1 to 10 of 2,000 results”. Next and Previous • Validation round trips to server • Error messages in-lined with data • Scroll bars used on input forms • Navigation • Back and Forward Buttons • Graphical mainframe • Page based latency bound model 2006 JavaOneSM Conference | Session TS-4317 | 6 The Death of the Browser • “Billions of dollars are wasted every year in lost productivity as people wait for Web pages to perform duties that could have been handled better by a 1984 Macintosh-style graphical user interface application” Jakob Nielsen • “There was one feature that was temporary in Mosaic: the Back and Forward buttons. That never made a lot of sense to us. Back to what? Forward to what? We thought there would be a better way to navigate. But no one ever came up with one” Marc Andreessen 2006 JavaOneSM Conference | Session TS-4317 | 7 Reliability of the Browser Expectation is low and poor engineering becomes acceptable because of the GUI glitter 2006 JavaOneSM Conference | Session TS-4317 | 8 Validation model of the browser Page based. Round trips to server. Poor GUIs 2006 JavaOneSM Conference | Session TS-4317 | 9 Server Is Server, Client Is Client and Never The Twain Shall Meet Fat Thin Client Presentation Presentation LoJgaicva Swing Rendering SWT HTML Business Logic Server Presentation Logic Business Logic Data Data 2006 JavaOneSM Conference | Session TS-4317 | 10 Agenda The Death of the Client The Death of the Browser The Browser Strikes Back AJAX, Flex, Laszlo DEMO The Server Strikes Back JavaServer Faces technology, ULC, Nexaweb DEMO The Client Strikes Back Java WS technology, Swing, SWT, RCP DEMO 2006 JavaOneSM Conference | Session TS-4317 | 11 The Browser Strikes Back • JavaScript™ technology • AJAX • Custom content • Flex / MXML • Laszlo • Common programming model targeting • Flash • DHTML • XAML 2006 JavaOneSM Conference | Session TS-4317 | 12 AJAX Browser client Asynchronous JavaScript code + XML user interface • Presentation using XHTML and CSS JavaScript call • Dynamic display and interaction using the HTML+CSS data Document Object Model AJAX engine • Data interchange and manipulation using XML and XSLT HTTP request • Asynchronous data retrieval using http(s) transport XMLHttpRequest XML data • JavaScript technology gluing it all together • Killer Google apps Web and/or XML server • www.maps.google.com • www.google.com/webhp?complete=1 Datastores, backend processing, legacy systems Server-side systems 2006 JavaOneSM Conference | Session TS-4317 | 13 Flex Specialized and optimized interaction model • Flash is customized for animation, keyboard interaction • 98% browsers have Flash plugin installed making it a ubiquitous “virtual machine” • Flex audience to attract enterprise developers, unlike Flash scripters who tend to focus on visual • Based on MXML that describes GUI markup and flow prepared in server • Delivered to flash as SWF. Fancy interaction. Server layer deals with GUI input and talks to back end via SOAP, WebServices, etc… Plays well with J2EE™ platform 2006 JavaOneSM Conference | Session TS-4317 | 14 Laszlo Abstract further to make use of multiple target types • Goal of zero install web applications with rich client • Developers script single language. Compiled into runtimes for • Flash—Targets Flash clients • DHTML—Targets zero install • XAML—Targets Microsoft CLR 2006 JavaOneSM Conference | Session TS-4317 | 15 DEMO Source: Please add the source of your data here 2006 JavaOneSM Conference | Session TS-4317 | 16 The Browser Puts on Weight Fat Thin Client Presentation Presentation Presentation LogicSwing RendAerJinAgX Rendering Laszlo HTML SWT Logic Business Logic Flex Logic Server Presentation Presentation Logic Logic Business Logic Business Logic Data Data Data 2006 JavaOneSM Conference | Session TS-4317 | 17 Agenda The Death of the Client The Death of the Browser The Browser Strikes Back AJAX, Flex, Laszlo DEMO The Server Strikes Back JavaServer Faces technology, ULC, Nexaweb DEMO The Client Strikes Back Java WS technology, Swing, SWT, RCP DEMO 2006 JavaOneSM Conference | Session TS-4317 | 18 The Server Strikes Back Richer Java Based Clients with Benefits of web/server • Ultra lightweight client • Client engine renders Swing prepared on server • Nexaweb • Client engine renders custom UI prepared on server • JavaServer Faces technology • Browser renders HTML prepared on server. Component model with event support and rich HTML content 2006 JavaOneSM Conference | Session TS-4317 | 19 Ultra Lightweight Client www.canoo.com/ulc • Server side programming model • Swing class library peer packages • Server presentation engine talks to client engine • Uses Swing on the client • Extensible component model • Rich and thin • The terms are, incorrectly, sometimes thought of as opposites • A thin client can have a rich experience • Thin and fat where logic runs and ties into the size of the downloadable to the client. Rich and poor relates to the end user experience in terms of GUI usability and wait time for responses 2006 JavaOneSM Conference | Session TS-4317 | 20 Nexaweb www.nexaweb.com • Server runs within a J2EE based app server • Client runs on browser • Based on Java 1.1 platform • Messaging layer in-between based on XML • Coding done in XML • Logic can be put to run on server or run on client 2006 JavaOneSM Conference | Session TS-4317 | 21 JavaServer Faces technology java.sun.com/javaee/javaserverfaces • Runs within a J2EE based app server • APIs representing UI components • Managing state • Handling events • Input validation • Page navigation • Internationalization and accessibility • JavaServer PagesTM based custom tag library for expressing a JavaServer Faces based interface within a JavaServer Pages based page • SEAM • JavaServer Faces and EJBTM 3 specification combined 2006 JavaOneSM Conference | Session TS-4317 | 22 DEMO Source: Please add the source of your data here 2006 JavaOneSM Conference | Session TS-4317 | 23 The Server Takes on Presentation Fat Thin Client Presentation Presentation Presentation LogicSwing RendAerJinAgX Rendering Laszlo HTML SWT Logic Business Logic Flex Logic Server JavaServer Presentation Presentation Faces LUoLgiCc Logic Nexaweb Business Logic Business Logic Data Data Data 2006 JavaOneSM Conference | Session TS-4317 | 24 Agenda The Death of the Client The Death of the Browser The Browser Strikes Back AJAX, Flex, Laszlo DEMO The Server Strikes Back JavaServer Faces technology, ULC, Nexaweb DEMO The Client Strikes Back Java WS technology, Swing, SWT, RCP DEMO 2006 JavaOneSM Conference | Session TS-4317 | 25 The Client Strikes Back • Swing improvements • Faster, smaller, better UI fidelity • Mustang support for Web Service clients • SwingLabs • Umbrella for a number of open-source projects • Eclipse • SWT: Java based GUI toolkit using platform widgets • Eclipse Rich Client Platform • Java Web Start software • Deploy Java based clients in a server passive pull model 2006 JavaOneSM Conference | Session TS-4317 | 26 Swing • Matisse and GroupLayout • High fidelity look and feel • Memory and performance improvements • JSR 231. Java Bindings for OpenGL®. Java 3D™ and Java 2D™ extensions very polished with good native interop • JSR 273. Design-Time API for JavaBeans™ JBDT. New customizer API 2006 JavaOneSM Conference | Session TS-4317 | 27 SwingLabs • Swing improvements • SwingX with custom components (data pickers, logon screens, image panels, etc…) • Drop shadow borders, searching, highlighting, sorting,look and feel plugin model • JXPanel with painting delegates,