Rich Internet Applications Pick Up Where HTML Stops

Many companies are building next-generation web sites with three goals in mind:

  1. Improving customer interactions
  2. Transforming the Internet from a support channel to a marketing and sales channel
  3. Driving revenues

Upgrading the user interface is one of the first steps toward accomplishing these goals, but companies are realizing that HTML gets in the way. In addition to Web sites, Internet technologies are commonly used to build internal enterprise applications. However, in spite of its many benefits, HTML has been a step back in comparison to the functionality and performance offered by other desktop applications. The solution for anyone interested in overcoming the constraints of HTML lies in rich Internet application (RIA) technologies.

HTML's document-driven paradigm, while obviously extremely successful, has significant shortcomings. First of all, in the HTML model, most user actions result in a page refresh (round trip to the Web server). This forces a linear, multistep interaction process and limits interactivity. From an experience and performance perspective, it's inferior to what typical desktop applications offer and doesn't come close to offering the sophistication and creativity of high-end graphical applications.

RIA technologies address both of these issues. They provide a better creative platform to support a more attractive user experience. They also enable a desktop application-style interaction model and performance, while retaining the Internet "deploy-once, use-everywhere" software installation model. In essence, RIA technologies enable creation of functionally and data rich applications with compelling user experience.

This paper outlines different RIA technology options and provides a set of data points for those wondering where to start.

RIA Options

Rich Internet is synonymous with Flash for many people. While Flash indeed plays a big role, there are many more options to choose from. These are outlined below and summarized in Table 1.


DHTML, or Dynamic HTML is simply a combination of HTML/XHTML, Cascading Style Sheets (CSS) and JavaScript. Supported by all browsers, it is a natural extension of HTML and hence is very popular. However, DHTML only partially addresses HTML issues -- it's still document-centric -- and its biggest drawback is inconsistency across browsers. It requires browser specific coding, which increases the complexity and cost of development and maintenance.

Macromedia Flash

Flash was originally developed as an animation tool. Over time, it expanded its capabilities, and today, in the most recent Version 8, it supports sophisticated animation, video, audio and programming through ECMA-based ActionScript language.

Flash is used to provide:

  • Graphically attractive product information as demonstrated by the Infiniti home page.
  • Real-time information updates without page refreshes, as illustrated by the stock quote object on the ETrade Financial Corp.'s page.
  • Sophisticated tools and wizards such as The Broadmoor Hotel's reservation tool.

Several options are available for integration of Flash objects with other technologies such as JSP, XML, Java objects, .Net objects or Web services. The most sophisticated of these, Remoting, allows Flash to call directly methods of Java and .Net objects.

Java Applets

Applets represent one of the early attempts at providing rich functionality. Developers write applet code in Java with almost full flexibility of the programming language available to them. Applets suffered from poor download and execution performance as well as execution inconsistencies across operating platforms. Subsequently, while Java is one of the most popular server-side code development platforms, applets are used relatively infrequently.


ActiveX is a Microsoft Corp. answer to the need to provide functionally rich components on Web pages. ActiveX components are easy to install miniprograms, which download with Web pages and run within the browser window. Because of security concerns, users are becoming less willing to install unknown programs on their systems, which has affected the popularity of the ActiveX components.

Microsoft is working on a new user-interface technology code-named Avalon. It includes XAML, a new descriptive programming language for writing user interfaces. The technology unifies handling of documents, media and user interfaces.

Presentation Servers

Presentation server products have been created specifically to address the shortcomings of HTML and provide a platform for the creation of the new class of interactive Web sites and applications that equal desktop applications in level of sophistication while also retaining ease of deployment of Web applications. Features of presentation servers include:

  • Clear separation of the presentation layer from the business layer -- presentation servers focus on the presentation layer.
  • Comprehensive development tools -- integrated development environment with rich set of prebuilt components, support for drag and drop metaphor, WYSIWYG edit and preview .
  • Ease of integration with standard J2EE or .Net based web infrastructure. Presentation server runs within a Web server or application server environment -- it's typically deployed as a servlet -- and connects to existing business objects, databases and services.
  • High performance through reduction in network bandwidth requirements.
  • Zero install -- applications deployable to any of the popular browsers without installation of additional software.
  • Support for the proven Secure Sockets Layer model.

Usage scenario of an application server is depicted by the diagram below:

  1. Developer creates applications using an integrated development environment (IDE).
  2. Applications are stored in a XML format (for example, MXML in case of Flex, LZX in case of Laszlo). XUL (XML User interface Language) is an emerging open standard for describing user interfaces of applications.
  3. When a user requests an application, the request is routed to the presentation server, which downloads the client runtime environment and initial screen definition. Some presentation servers use Java applet as a client, while others download a set of Flash services and use Flash Player instead.
  4. The client is responsible for laying out the screen, user event (e.g. mouse click) handling and communication with the presentation server.
  5. After the initial download, the client and server maintain communication. The server is responsible for processing client requests, maintaining state, connecting with business layer, databases and services, and passing incremental data and user interface descriptions back to the client in a XML format. Client processes and renders received information -- all without page refreshes. Typically, both client initiated and server initiated modes of communication are supported.

Rich Internet Apps


Key presentation server products are outlined in the table below:

Key Presentation Server products

Macromedia Flex

  • Macromedia is the market leader in developing software tools supporting creation of effective user experience
  • Uses Flash Player for rendering


  • Open-source
  • Eclipse-based IDE
  • Uses Flash Player for rendering

Integra AltioLive

  • First to market
  • Owned by Tiger Telematics Inc.
  • Tiny Java applet based client


  • Eclipse based IDE
  • Supports two open standards for user interface definition: XUL and SVG
  • Ultrathin Java client (150kb footprint)


AJAX, short for Asynchronous JavaScript and XML, significantly extends DHTML concepts. It combines XHTML and CSS based presentation, XML and XSLT based data manipulation, asynchronous data retrieval using XMLHttpRequest and JavaScript programming. When a user requests an AJAX page, the JavaScript based AJAX engine is loaded first. It's then responsible for page rendering and communication with the Web Server. These can be done independent of each other, and thus the page can load very quickly (without waiting for all data to arrive), and users can start interacting with the page immediately. Asynchronous communication with the server also enables user interactions without the need for a page refresh.

AJAX is a design pattern, not a product. However, AJAX-based products started to emerge. For example, Tibco Software Inc. has an AJAX-based rich client.

Google Maps is a great example of Ajax in action.

RIA Options Comparison





Based on open standards

No plug-ins

Not consistent across browsers, browser versions and operating systems

Requires browser specific coding

Document centric


De facto standard (installed on over 90% of Internet desktops)

Integration of animation, streaming media, data

Consistent experience across browsers

Development tool metaphor familiar to graphic artists

Requires plug-in

Adds download time overhead

Development tools more suitable for development of animation objects than applications

Java Applets

Rich functionality

Open standards-based

Security model

Poor performance

High development costs


Mature technology

High performance

Large pool of people with ActiveX skills

Programming language independent

Platform dependent, Windows centric

Browser dependent

Component size

Security model

Flash Rendering Presentation Servers:
Macromedia Flex

Separates presentation layer from business layer

Development tool metaphor familiar to software engineers

Rich component framework

Flash user experience

Requires Flash plug-in

Overheads of compilation from MXML or LZX to SWF

Requires one of the supported application servers

Applet Rendering Presentation Servers:

Integra AltioLive


Separates presentation layer from business layer

Small applet based rendering engine

High performance

Ideal for internal applications

Requires JVM

Applet based

Small vendor market share


Open standards based

Asynchronous experience

No plug-ins

Gaining significant publicity

Not consistent across browsers, browser versions and operating systems

Limited support

Early in adoption cycle

RIA Pitfalls

Any technology can be misused and RIA technologies are not an exception. Flash in particular, while having numerous strong supporters, also draws a significant amount of criticism. Common complaints include:

  • Flash content is heavy, slow to download, superficial and annoying resulting in poor user experience. While true in the case of many Web sites, this is not a function of technology but the result of poor creative design choices.

  • Flash code is hard to maintain; it does not follow the best practices of developing quality software. This is true in case of many Flash objects. However, the same statement can be made about significant portion of code written in any language. There is nothing in Flash which would prevent developers from writing well structured, modular, reusable code.

  • You can't search or run Web analytics on Flash objects. It is harder to integrate tools, which have been designed specifically with HTML-based Web sites in mind. However most of the tool vendors are including and gradually enhancing support for Flash.

The biggest challenge for Flash is perhaps the skill base. The perfect Flash developer has creative flair and programming discipline. Finding these two qualities in one person is less common than finding pure creative or software engineering talent.


Today, the Internet is the default platform for software deployment and a browser is the default platform for software delivery. This is driven largely by low-cost deployment and maintenance offered by the Web. The standard way of building a browser-based user interface works very well for content-rich applications.

For data- and functionally-rich applications, as well as for graphically intensive applications, RIA technologies offer a valuable extension. They bring the best of the desktop and the best of the Web together. When designing Web sites and applications, RIA technologies should be seriously considered. In many cases, they offer the right user interface.

Copyright © 2006 IDG Communications, Inc.

Bing’s AI chatbot came to work for me. I had to fire it.
Shop Tech Products at Amazon