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 ™ technology in this space with Java WS technology, SwingLabs, , 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®. ™ 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, gives “Flash” animation capabilities • JDesktop Integration Components (JDIC) providing features that move into Mustang • Tray icon was in JDIC but is now part of Mustang. • Desktop API where you can request and launch a viewer for a given doc type • Databinding • Similar to binding in ADO.NET DataSet. Makes working with databases easier

2006 JavaOneSM Conference | Session TS-4317 | 28 Java Web Start software

• Users download and launch Java based apps with single click • Integration with desktop, no need to run within browser • Java Web Start runtime manages JREs • Server side deployment of new versions, lazily pulled down to clients • Java based Security model through certificate signing • Java Network Launching Protocol forms

2006 JavaOneSM Conference | Session TS-4317 | 29 Eclipse Rich Client Platform (RCP)

• Eclipse IDE workbench API available for non-IDE applications • Plugin architecture. Extensible by adding directories that augment the workbench functionality • Views are moveable, resizeable, arrangeable parts of the GUI that contain a primary control • Perspectives arrange views by stacking or placing them to use real estate • Help system • Toolbar, search • Works well with Java WS and Java NLP technologies

2006 JavaOneSM Conference | Session TS-4317 | 30 DEMO

Source: Please add the source of your data here

2006 JavaOneSM Conference | Session TS-4317 | 31 The Client Strikes Back

Fat Thin

Client Presentation Presentation Presentation Presentation LogicSwing Logic RendAerJinAgX Rendering SwingLabs Laszlo HTML SWT Logic Business Logic Business Logic Flex S Logic JW WebServices Server JavaServer SOA Presentation Presentation Faces LUoLgiCc Logic Nexaweb Business Logic Business Logic Business Logic

Data Data Data Data

2006 JavaOneSM Conference | Session TS-4317 | 32 Summary

• It’s not about fat versus thin • It’s about rich content delivered in different ways • Browser is reclaiming the client with alluring technologies • Swing and SWT are mature proven GUI toolkits • Focus on architecture frameworks like those in SwingLabs and RCP

2006 JavaOneSM Conference | Session TS-4317 | 33 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 |