Web Application Solutions: A Designer's Guide

Transcription

Web Application Solutions: A Designer’s Guide

OverviewAs the Web continues to extend its reach into our daily lives, an increasing number of ourinteractions will happen online. The practical implication of this for interface designers is lotsof Web application projects that cover everything from filing taxes to sharing photos.“The fundamental purpose of Web applications is to facilitate the completion of one or moretasks” [Bob Baxley 1]. But depending on the type and complexity of the tasks involved,different technical solutions may be better suited to enable the specific interactions eachproduct requires. Flash, Java applets, DHTML, Active X, Smart Clients, Java Web Start,SVG— what do you choose and why? What types of interactivity and visual presentationdoes each technology enable? What does each limit?As Web application interface designers, these are questions we encounter time and timeagain. As a result, we decided to document what we’ve learned and research what we didn’tknow about the opportunities and limitations that characterize some of the most popularWeb application presentation layer solutions available today. We evaluated each solutionagainst a consistent set of criteria and described it with a concise definition, set ofexamples, and references that enable further analysis. We also shared our findings with ateam of expert reviewers (page 18) to ensure we were on the right track. The end result isthis designer’s guide.For your convenience, each solution we’ve evaluated is presented on a single-pagesnapshot that helps designers, product managers, and business owners make an informeddecision for their Web application’s front-end technology. Of course, this guide is not meantto be a substitute for consulting with knowledgeable programmers and system architects.We simply want to prepare you for those discussions.The right Web application presentation layer needs to meet your specific business, user,and technology needs and multiple solutions can exist per business and per product. Wehope this guide helps steer you in the right direction.Luke WroblewskiPrincipal, LukeW Interface DesignsFrank RamirezPrincipal, Ramirez Design LLCluke@lukew.comfrank@ramirezdesign.comWeb Application Solutions: A Designer's Guide 2

Defining Web ApplicationsThis guide is not intended to define the multitude of presentation layer solutions available forWeb applications. We’re focused on explaining the trade-offs. However, an overview of thegrouping and evaluation criteria we’ve used to describe each solution is required to ensurewe present accurate comparisons.Web Application (Web-based application)Web applications are Web-accessible (deployed and/or accessed through a Web browser)Web-connected (utilize a http connection for information retrieval or display), andtask-oriented (beyond the simple browsing of information) software.Due to the variance and subjectivity inherent in defining types of Web applications, we’veestablished a continuum from thin client to rich client on which each Web application solutioncan be plotted. Many solutions (and their various implementations) have characteristics ofmore than one group. For example, DHTML with XMLhttpRequest (commonly referred to asAJAX) is part thin client and part Rich Internet Application (RIA). Likewise, some desktopapplications really straddle the line between Rich Internet Application and rich client (a.k.a. athick client).Lastly, while you could think of any Internet-enabled desktop application (like Apple’s iTunesor Yahoo’s Instant Messenger) as a Rich Internet Application, we’ve left this type of softwareout of the discussion. Applications that require a traditional client-side install process(regardless whether or not the install file can be downloaded from a Web server) are notevaluated within this guide.Web Application Solutions: A Designer's Guide 3

DefinitionsThin ClientWeb applications that utilize the Web browser for security,state management, and script execution (run-time). Mostdata processing and storage occurs on a remote server andnot a user’s local machine. Server request and responsemostly occurs through the http protocol.The primary benefits of thin clients are wide reach(accessible by anyone with a Web browser), opendevelopment platform (built on popular open standards), nofootprint (quick download, no artifacts on user machinesbeyond browser cookies), and deployment/manageability(distributed and maintained from a central source).Thin Client Solutions:HTML, XHTMLHTML, JavaScript, and CSS (DHTML)DHTML with Remote Scripting via iFrameDHTML with XMLhttpRequest (AJAX)Rich Internet Application (RIA)Web applications that enable richer, locally processed userinteractions (fluid animation, multimedia content, real timevalidation, etc.) and advanced remote messaging (JavaObjects, Web Services, etc.). Sun’s Java plug-in andMacromedia’s Flash are two of the most common RIArun-times. RIAs can only run in a Web browser withinembedded plug-ins.Rich Client (smart client, desktop client)Web-connected applications that do not run within the Webbrowser and can be delivered as compiled code. Rich Clientsleverage local processing to enable rich interactions and canutilize Web Services to connect to distributed data sources andauto-update. Unlike Thin Client applications, Rich Clients canbe used offline and more easily integrate with local hardwareand software.The HTTP communication layer used by Thin Clientapplications technically does not support guaranteedmessage delivery, does not guarantee the order of messagedelivery, and does not support server-initiatedcommunications. Many RIA communication layers providereliable messaging and enable server “pushes” of content.A Rich Client can embed a Thin Client (i.e. a desktopapplication with an integrated Web browser within which a thinclient application can run.Thin Clients that utilize asynchronous JavaScript-drivenserver requests and responses and advanced DHMTL userinteractions (a combination of technologies frequently referredto as AJAX) are sometimes considered JavaScript RIAs.A Thin Client can embed (integrate through a Web browserplug-in) an RIA (i.e. a Flash module in a DHTML application).Rich Internet Application Solutions:Flash 6 (and higher)Flash with Flex or Laszlo Presentation ServerJava AppletsActive XRich Client Solutions:Windows Smart ClientsJava Web StartUpcoming, Interesting, or Relevant SolutionsWhile this guide focuses on some of the most popular Webapplication solutions available today, there are a number ofrelevant technologies that may be considered for specific uses(i.e. PDF for data entry) or future projects (i.e. XUL or XAML).Examples includeCanoo Ultra Light Client (ULC)Java WebCreamPDFXSLTSVGMacromedia CentralNexawebXformsXAMLWeb Application Solutions: A Designer's Guide 4

Solution ContinuumThe primary benefits of a thin client are reach (anyone with a Web browser can use it) anddeployment (can be updated and distributed through a Web server). The primarydisadvantages are limited interaction options and typically slower response times. RichInternet Applications and Smart client technologies enable richer (desktop-like) interactions,more sophisticated messaging, and prevent server request/responses from having to rewriteentire pages. They also maintain some of the deployment and updating benefits of thinclients. The chart below overlays popular Web application technology solutions on acontinuum from thin to rich client. Most solutions fall within a range on the continuum.Each Web application solution falls on a continuum from thin client to rich client, though some solutions really "straddle the line". A Smart Client can even embed a Thin Client (withina Web browser inside a rich client) and a thin client can embed an RIA (i.e. Flash module in a DHTML application).Thin ClientRich Internet Application (RIA)Rich ClientDelivered in the Web browser; usesbrowser security, state management,and script execution; http for datarequest/response.Usually delivered as embeddedrun-time within Web browser(plug-ins); goes beyond http forremote data request/response.Compiled run-time on localmachine; can use local andremote resources; can runoffline.XMLhttpRequest (& DHTML)HTMLJava AppletsJava Web StartActiveXDHTMLRemote Scripting (& DHTML)OpenBuilt on popular open standardsWide ReachAccessible by anyone with a Webbrowser; usually operating systemindependentNo FootprintQuick download of pages as needed; noapplication footprintDeploymentUpdated and distributed through a WebserverFlash (Flex & Laszlo)Smart ClientRich User ExperienceDesktop-like interactions; multimedia;state-ful applicationsLocal Processing & IntegrationMost responsive UI; local hardware &software integrationUI ToolkitsRobust UI libraries & toolkits; reduceddevelopment timeOffline AvailabilityNetwork connectivity not requiredWeb Application Solutions: A Designer's Guide 5

Evaluation CriteriaEach Web application solution was evaluated against the following criteria.User ExperienceWhat user interactions are possible? (drag and drop, fluidanimation, auto-saving, real-time validation, non-linearworkflows, integrated audio and video, etc.) Does eachuser action require a full-page rewrite (as in the case ofHTML/http solutions)? How well integrated is the userinterface with the Web browser environment (Back, History,etc.) and/or local operating system (local hardware andsoftware integration)? Can application states be easilymaintained?Deployment & ReachHow can users access the application? Do they needspecific Web browsers, Web browser plug-ins, Webbrowser settings, operating systems, devices (mobile, etc.),or local applications? How large is the reach of theapplication? Can search engines index the content withinthe application? How is the application deployed (install,download, footprint, etc.)?ProcessingHow much application logic can reside on the client-side?What type of action requires a trip to the server? What is theimpact to the UI for a server request? How fast are the initialload and subsequent response times of the user interface?What kind of remote messaging is possible (http, WebServices, Java objects, etc.)? Can server requests rununinterrupted (in the background) while the user focuses onother tasks?Unique FeaturesAre there unique security concerns? Is application logicexposed? Can the application run offline?Interface Components & CustomizationDoes the solution include an easily accessible library of UIelements? Are the elements easily customizable? Is there aWYSIWYG development environment (IDE) that leveragesthe UI library? Can the interface be easily transformed fordifferent devices (i.e. mobile)? Can the user interface be builtwith grid or flexible layouts, or both?Staffing & CostWhat are the costs required to build out the solution? Aretechnology experts easily found? What tools exist to reducecosts? How long is a typical development cycle?Future ProofingWhat level of support is available for the solution? If thetechnology is proprietary, does the vendor have a provenrecord of product support? Does the solution conform toexisting standards?Back-end IntegrationWhat back-end technologies enable this front-end solution?What is required on the back-end? Does the solution increaseor decrease server loads?Web Application Solutions: A Designer's Guide 6

HTML, XHTMLOverview:HTML is a document markup language for structure, presentation and monodirectional linking. XHTML is a reformation of HTML that is XML-compliant. Data requests are sent through the HypertextTransfer Protocol (http) standard.BenefitUserExperienceElements that canbe specified inHTML are familiarto the largestamount of Webusers (includingback, history,bookmarking, etc.)Small file sizes:quick downloadtimesDeployment& ReachHas the biggestreach- can berendered by anybrowser. isstandardized andavailable to usersrunning all types ofsoftware. Effectivefor users with slowconnections.Search enginescan index contentSufficient forrelatively staticcontent and trivialtasksLimited to formentry, data display,and link navigationIntegration withlocal resources(hardware &software) is nearlyimpossibleExamples: Craigslist – online local classified ads BloglinesProcessingApplication statescan be achievedthrough cookies,server-side apps,and/or URLsClient requestsrequire full reloadsof Web pages toupdate displaysincreasingdownload timesand server loadsHTTP requests donot supportguaranteedmessage delivery,guaranteed orderof messagedelivery, norserver-initiatedcommunications(push)Components& CustomizationHTML can bestyled with CSS(Cascading StyleSheets)Flexible layouts arepossible, fixed gridare difficult tomaintain consistently n be deliveredwith JSPs,Servlets, ASP,ASP.NET, JSP,ColdFusion, PHP,and more.Code exposed easy to copyFuture ProofingDrawbackNeutralStaffing & CostRelatively easy toport to otherdevices such asPDAs, phones, etc.Relatively easy tofind people withHTML, XHTMLprogramming skills.Code is likely to beforward-compatibledue to standardization.WYSIWYGdevelopmentenvironments andcontent management systems(CMS) widelyavailableComponentslimited to thoseavailable throughHTML markupRead More: http://www.w3.org/MarkUp http://www.oreilly.com/catalog/html4Web Application Solutions: A Designer's Guide 7

HTML, JavaScript and CSS (aka DHTML)Overview:DHTML is not a programming language, but the combination of HTML, JavaScript (or VBScript). and Cascading Style Sheets (CSS). JavaScript is a cross-platform, object-oriented scripting language.JavaScript is also small, lightweight, and was designed to be embedded in other products and applications, such as web browsers. Inside a host environment, JavaScript can be connected to the objectsof its environment to provide programmatic control over them [2].BenefitUserExperienceDeployment& ReachProcessingComponents& CustomizationSee HTML.See HTML.See HTML.See HTML.Elements that

As Web application interface designers, these are questions we encounter time and time again. As a result, we decided to document what we’ve learned and research what we didn’t know about the opportunities and limitations that characterize some of the most popular Web application presentation layer solutions available today. We evaluated each solution against a consistent set of criteria .