Coffea Works

Rich Internet Applications

A Look Into Available Technology Choices

By Brijesh Deb

Web-based applications have seen large scale usage and popularity. Users can now book a hotel room, buy/sell stock, bid on auctions, check e-mails, browse roadmaps and do a host of other things through a web browser. However, the current document-driven approach of web applications has failed to keep pace with the increase in user expectations. Rich Internet Applications (RIAs) are well poised to bridge that gap and are proving themselves to be the next big wave in web applications. In this article, we look at the various technology options available for RIA implementation.

Introduction
RIAs are a hybrid between traditional desktop applications and Web-based applications. The former supports rich user experience through graphics, charts, audio/video, and provides better user interactions and fast response with no page reload. On the downside, however, desktop applications are dependent on the workstation's platform version. Besides, it involves higher maintenance cost as new releases and patches have to be updated for all installations. On the other side of the spectrum are HTML-based web sites that use document-driven paradigms, which were very successful in the early days of the Internet revolution. Some of the advantages of this approach are:
  • Low maintenance: no update or patch required
  • High availability: accessible through a networked computer
  • Platform independence
  • Low development cost
However, HTML-based web applications have failed to meet the burgeoning expectations of current Internet applications that demand a sophisticated user experience. International Data Corporation (IDC) has identified a few limitations of HTML-based web applications in its white paper, `Rich Internet Applications' [1]:
  • Process complexity: Multi-step tasks are time-consuming and frustrating as they have to be broken into separate pages (registration or subscription pages, for example), which require the user to go back and forth to complete the task.
  • Data complexity: HTML-based web applications don't facilitate the manipulation and visualization of complex data. Further, support for charts and graphics is limited.
  • Configuration complexity: HTML-based web applications have limited ability to present a rich and dynamic picture of custom built products.
  • Scale complexity: Internet applications have access to a large amount of data. However, the ability to search and compare data is limited to text-based searches.
  • Feedback complexity: Server-based processing limits the scope of an interactive user experience wherein the application can respond to user input without a page refresh.
The synchronous request/response communication model of HTML-based web applications is the root cause of most of these problems. RIAs promise to combine rich desktop application functionality with the broad reach and low-cost deployment of browser-based web applications. RIAs use a client side rendering engine that provides an interactive and rich user experience. Data can be cached at the client side; this saves repeated round trips to the server. To get a first-hand experience of the difference between a traditional web application and RIAs, visit the Yahoo Maps [2] and Google Maps [3] web sites. While the first one is a traditional web application, Google Maps uses Ajax-based RIAs.


Table 1: Differences between a traditional web application and RIAs

Business Benefits of RIAs
The benefits of RIAs are manifold:
  • RIAs provide the ability to perform business process in an easy and intuitive way. Users need no longer scroll or jump through 10 pages to complete a simple registration form. A single screen reduces processing steps, eliminates page refresh, and provides a single view to the user. This will, in turn, improve user productivity and satisfaction.
  • RIAs reduce bandwidth usage and server load as processing moves to the browser, thereby reducing operational costs.
  • RIAs improve customer service and customer relationship, thus improving differentiation in the marketplace. This will, in turn, lead to increased business.

RIA Technology Choices
Currently, three technology choices are available for implementing RIAs - Ajax, Flash and Java.

Ajax
Asynchronous JavaScript and XML (Ajax), named by AdaptivePath's Jesse James Garrett [4], is an amalgamation of several existing technologies like XHTML [5], CSS [6], DOM [7], XML [8], XSLT [9], XMLHttpRequest [10] and JavaScript. When a request is made to an Ajax page, the Ajax engine loads and communicates with the web server asynchronously, thereby freeing the user experience from the server's `think time'. Asynchronous communication enables fast user interface (UI) rendering without the need to refresh the whole page. At the heart of Ajax implementation is the XMLHttpRequest JavaScript object that drives the asynchronous communication between the client and the server.


Figure 1: Ajax-based RIA architecture

One of the main advantages of Ajax-based RIAs is fast download speed with negligible resultant latency. Ajax has a high reach since XMLHttpRequest is supported by most browsers. Ajax applications don't require any client side plug-ins. Moreover, since most Ajax applications are custom built, the need for a server is eliminated; this reduces project cost. On the downside, Ajax as a technology is still evolving and there are some grey areas. The UI experience of Ajax is limited with it being the same as that of HTML. Support for audio/video is also limited. The development of Ajax requires a high-skilled team and a complex branching code (to support different browsers); these only add to development costs. In the recent past, Ajax has captured immense mindshare. The success of Google applications like GoogleMap, Gmail [11], GoogleSuggest [12], etc, fuelled its popularity. A number of Ajax frameworks and tools like DWR [13], Tibco General Interface [14], Backbase [15], MidnightCoders [16], and ThinkCap Jx [17] are now available, and the numbers are growing.

Flash
In Flash-based RIAs, Flash Player acts as a virtual machine that renders flash contents to users. Presentation servers like Flex [18] and Open Laszlo [19] reside on the application server and provide a platform to develop and deploy RIAs that run in a Flash player. Flash player acts as a sandbox for the Flash application that runs in it. Check out the Broadmoor [20] hotel web site to see how effectively Flash-based RIAs can be used.


Figure 2: Flash-based RIA architecture

Flash provides the most sophistication in terms of interactivity and rich UIs, among the available technology options. Additionally, the support provided for audio/video is the best of the lot. Flash has a high reach as it comes pre-installed in more then 90 % of Internet-enabled desktops. However, one of the main deterrents for the adoption of Flash-based RIAs is the set of artist-oriented authoring tools that a typical developer doesn't identify with. Moreover, the initial download of the application takes a considerable amount of time.

Java
Java applets were the first attempts at providing RIAs. Applets are used within web pages and are implemented using the Java language. Java Web Start technology also enables the launch, deployment and the updating of Java client applications from a web server.


Figure 3: Java-based RIA architecture

Despite its early start, Java-based RIA implementation suffers from a number of flaws. Firstly, Java applets start slow. Even after loading, their performance is not satisfactory, especially in the interactive parts. Secondly, there is poor compatibility across Java client implementation. Microsoft's strategy to remove Java from the IE browser, to undermine Java, will further add to the problem. Because of these issues, there is very little community momentum for the adoption of Java-based RIAs. So very few applet-based Internet applications are available currently. Implementing new RIAs around Java applets is not a prudent option, therefore. Comparison Summary Table 2 summarises the pros and cons of each technology:


Table 2: Comparison of the pros and cons of Ajax, Flash and Java

As shown in the table, there is no distinct winner among RIA technologies yet. Each technology excels over the other on certain parameters. However, out of the lot, Ajax fits the most into the Web 2.0 [21] umbrella and has struck a chord with the community. Most of the recent work done in the RIA space involves the use of Ajax. That said, if your application needs a sophisticated UI interface, use Flash. In most other cases, Ajax is a better choice.

Upcoming Technology/Tools
While this article has focused on the three most prominent technologies for RIA, there are a couple of other interesting technologies in the works that are worth noting:
  • Microsoft Windows Presentation Foundation [22]: formerly code-named `Avalon', it provides the foundation for building applications and high-fidelity experiences in Windows Vista, blending together application UI, documents, and media content while exploiting the full power of your computer.
  • XUI [23]: XUI is a Java and XML framework for building rich-client applications. XUI incorporates many features and is designed to make the task of building applications quick and easy.
  • Nexaweb [24]: Nexaweb provides a software platform for the development and deployment of RIAs.
  • XUL [25]: the XML User Interface Language (XUL) is a markup language for creating user interfaces. It is a part of the Mozilla [26] browser and its related applications.

Summary
In this article, we have looked into different available technology options for implementing RIAs, and subsequently, the pros and cons of each of these options.

Resources


back

top

print

recommend