Tuesday, September 9, 2008

Rich Internet Applications - Brief Intro

Recently the term RIA (Rich Internet Application) is used or heard frequently. I was reading different articles, white papers etc on this topic. Also started working on Flex. I am summarizing my readings in this blog.


1. Evolution of web

Computer applications started mainly as desktop applications where whole application code resides on user’s desktop and executed from there. Later we saw emergence of Client-Server architecture which led to web applications. With growing maturity in web model more and more processing is moved to Server and clients became thinner and thinner. In any traditional web applications most of the processing is done on Server. This model looked apt till recently. But with growing complexity of web applications and growing need to improve the user experience, drawbacks of the web model started to surface. One of major drawback is inability to have any processing logic at client side. This necessitates every request to go to Server.

This requirement gave rise to a new model—the Rich Internet Application (RIA), which is “a cross between Web applications and traditional desktop applications, transferring some of the processing to a Web client and keeping (some of) the processing on the application server”

2. Rich Internet Applications (RIA)

There are different technologies available in the market for developing rich Internet applications. Most popular of them are Flex, Java (AJAX etc), SliverLite, JavaFx etc. Before looking at these and other technologies, it is important discuss the crucial aspects of rich client technologies. Rich client technologies should:

Provide an efficient, high-performance runtime for executing code, content and communications. The principle here is that the end-user experience of HTMLbased web applications suffers from a variety performance related challenges. These include the request-response page rendering model; the need to dynamically generate large blobs of text for transmission of simple data; the lack of client-side data storage; the inability to easily invoke and use remote business logic, and even the basic graphics model of HTML. These all must be improved.

Integrate content, communications, and application interfaces into a common environment. The end-user experience of the Internet today is fragmented into the HTML browser for textual content and basic application interfaces; multiple messaging clients for performing communications functions; and multiple media players for handling audio, video, and other forms of media. Rich clients need to provide deep integration for all of these types of interaction.

Provide powerful and extensible object models for interactivity. While web browsers have progressed in terms of their support for interactivity through the Document Object Model (DOM), JavaScript, and DHTML, they still lack the richness needed for building serious applications. Rich clients need to provide a powerful, object-based model for applications and events. This common object model must integrate user interface, communications, and system level services.

Enable rapid application development through components and re-use. Rich clients should support powerful component-driven development, enabling both third party and corporate developers to easily reuse visual components to accelerate development, and give junior developers access to complex functionality. These components should integrate seamlessly into the design time environment for ease of development.

Enable the use of web and data services provided by application servers. The promise of rich clients includes the ability to cleanly separate presentation logic and user interfaces from the application logic hosted on the network. Rich clients should provide a model for easily using remote services provided by back-end components, whether hosted in an application server or accessed as XML web services.

Embrace connected and disconnected clients. While many users have gotten used to having to be online and in a web browser to perform work, the reality is that most applications would benefit from the ability to be used offline on occasionally connected devices such as personal digital assistants (PDAs) and laptops. Likewise, many applications require support for persistent connections with two-way, notification-based communications. Rich clients must enable both of these types of applications to be easily built and deployed.

Enable easy deployment on multiple platforms and devices. Internet applications are all about reach. The promise of the web is one of content and applications anywhere, regardless of the platform or device. Rich clients must embrace and support all popular desktop operating systems, as well as the broadest range of emerging device platforms such as smart phones, PDAs, set-top boxes, game consoles, and Internet appliances.

3. Characteristics of RIAs


  • Accessible to the user without a separate installation process
  • Supports robust, local application processing on the client side
  • Provides a rich, full-featured user interface that closely matches the look and feel of a native desktop GUI
  • Allows you to present information more effectively — providing immediate visual feedback
  • Can provide greater ease of use — a standard Web browser is used to access the application
  • Simplified maintenance — RIAs reside on the application server and there is no client component — update once on your server
  • Support a full, event-driven user interface model.


RIAs utilize relatively robust client-side rendering engines that can present very dense, responsive, and graphically rich user interfaces. In addition to offering a wider variety of controls (sliders, date pickers, windows, tabs, spinners, gauges, and so on), RIAs generally allow you to construct graphics on the fly with either Scalable Vector Graphics (SVG) or some other mechanism. Some RIA technologies can even provide full-motion animations in response to data changes.

Another benefit of RIAs is that data can be cached in the client, allowing a vastly more responsive user interface and fewer round trips to the server than with HTML. For wireless and occasionally connected devices, the trend is definitely toward rich clients and away from text-based Web clients. Applications running on laptops can be designed to work offline or to at least degrade gracefully when connectivity is lost.

4. Application of RIA

The six key business applications that are motivating overall RIA spending consisting of

  • Enhancement of existing web applications
  • High-transaction and event-driven Internet applications
  • Next-generation portals
  • Enhanced business intelligence solutions
  • Application modernization
  • Peer-to-peer or mashup solutions.


5. Choosing an RIA solution