![]() |
|
URL of the article:
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:
![]() Table 1: Differences between a traditional web application and RIAs Business Benefits of RIAs The benefits of RIAs are manifold:
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:
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
|
||
|