Developers: Learn a New Programming Language or App Development with Deitel LiveLessons Videos!
Login  |  Register  |  Media Kit  |  Press  |  Contact Us  |   Twitter Become a Deitel Fan on Facebook  
Custom Search


3.12  Rich Internet Applications (RIAs)

Rich Internet Applications (RIAs) are web applications that offer the responsiveness, “rich” features and functionality approaching that of desktop applications. Early Internet applications supported only a basic HTML graphical user interface (GUI). Though they could serve simple functions, these applications did not have the look or feel of a desktop application. The relatively slow Internet connections these applications relied on led to the term “World Wide Wait.” RIAs are a result of today’s more advanced technologies that allow greater responsiveness and advanced GUIs.


The term Ajax (Asynchronous JavaScript and XML) was coined by Adaptive Path’s Jesse James Garrett in February 2005. Ajax (see Chapter 15, Ajax-Enabled Rich Internet Applications) allows partial page updates—meaning updates of individual pieces of a web page without having to reload the entire page. This creates a more responsive GUI, allowing users to continue interacting with the page as the server processes requests.

The technologies that make up AjaxXHTML, CSS, JavaScript, the DOM, XML, and the XMLHttpRequest object—are not new. In fact, in the 1990s, Netscape used asynchronous page updates in LiveScript, which evolved into JavaScript. However, the popularity of Ajax has dramatically increased since its naming. Ajax performs a vital role in Web 2.0, particularly in building webtop applications and enhancing the user’s overall experience. The following toolkits and frameworks (environments with standard components that make development faster and easier) provide libraries and tools for convenient Ajax-enabled application development.


Dojo is an open source JavaScript toolkit—it is a library, not a framework. Dojo development began in late 2004.1 Dojo helps standardize JavaScript by providing a variety of packages for cross-browser compatibility, rich GUI controls, event handling and more. (See the Dojo section in Chapter 15.)


AdobeFlex (see Chapter 18) is an RIA framework that allows you to build scalable, cross-platform, multimedia-rich applications that can be delivered over the Internet. It uses the Flash Player 9 runtime environment, which is installed on over 97% of computers, allowing for almost universal compatibility.2 Flash Player 9 is backed by ActionScript 3, Adobe’s object-oriented scripting language—this uses an asynchronous programming model, which allows for partial page updates similar to Ajax. Flash CS3 (the development tool for creating Flash movies) is discussed inChapters 16–17.


Microsoft’s Silverlight (see Chapter 19), formerly known as Windows Presentation Foundation Everywhere (WPF/E) and released in May 2007, is Microsoft’s new competitor to Flex and Flash. Silverlight 1.1 uses a compact version of the .NET framework. Silverlight applications have user interfaces built in Extensible Application Markup Language (XAML)—Microsoft’s XML-based format for describing user interfaces. The new framework allows quick and easy development of RIAs and is designed to run on major browsers and operating systems.3 Moonlight, an open source version of Silverlight for Linux operating systems, is being developed.


JavaFX is Sun Microsystems’ counterpart to Flex and Silverlight, also designed for building Rich Internet Applications. It consists of the JavaFX Script and JavaFX Mobile (for mobile devices). The JavaFX Script, which takes advantage of the fact Java is installed on most computers, will be available under open source licences (seehttps://open

Ruby on Rails

Ruby on Rails (see Chapter 24), developed by 37Signals’ David Heinemeier Hansson, is an open source framework based on the Ruby scripting language that allows you to build database-intensive applications quickly, easily, and with less code. Ruby on Rails was designed to build 37Signals’ Basecamp (a project management and collaboration tool) and other SaaS products.

The library for creating “eye candy” effects is built on the Prototype JavaScript framework. Prototype encapsulates the DOM (Document Object Model, Chapter 12) and provides cross-browser processing capabilities.5 uses this framework and adds capabilities for rich user interfaces. Its core effects include opacity, scale, morph, move, highlight and parallel (for combining multiple effects).6 is used on many popular websites and is incorporated into other frameworks (such as Ruby on Rails). We discuss and present examples in Chapter 24, Ruby on Rails.

JavaServer Faces

JavaServer Faces (JSF) is a Java-based web application framework. JSF separates design elements from business logic and provides a set of user-interface components (JSF components) that make developing RIAs simple. One of the Java BluePrints projects provides additional resources and libraries for building Ajax-enabled applications. We build RIAs with JSF in Chapters 26–27.


ASP.NET Ajax (Chapter 25) is an extension of the .NET framework for creating Ajax-enabled applications. It includes an open source Ajax Control Toolkit for implementing asynchronous functionality. ASP.NET Ajax is easily used in Microsoft Visual Web Developer or Microsoft Visual Studio to quickly create Rich Internet Applications.

Adobe Integrated Runtime and Google Gears

Though web application use has been increasing, many feel these programs cannot truly compete with desktop applications until the “Offline Problem” (not being able to access web applications and data when not connected to the Internet) has been solved.7 Businesses can lose valuable time and money when Internet issues occur such as a slow or broken Internet connection.

Adobe released its Adobe Integrated Runtime (AIR; previously calledApollo) in beta form in June 2007. AIR allows users to run Flex web applications on their desktops even when they are not connected to the Internet, thus allowing users to remain efficient when they are unable to access the Internet or when an SaaS application server goes down. Users can continue their work and synchronize it with the servers again later.

Google Gears, also in beta, is a similar product, allowing use of web applications while offline. Google Gears was created out of a Google engineer’s 20% project, inspired by wanting to use Google Reader on a bus with “flaky” Internet access.8 (Google engineers devote 20% of their time to projects other than their usual work and 10% of their time to projects that are “truly new.”)9 Dojo Offline (using the Dojo library) is built on top of Google Gears, creating an easy-to-use interface for using web applications offline.10



  1. “History.” The Dojo Toolkit, 10 April 2007 <>.
  2. “Adobe Flex 2.” Adobe<>.
  3. Cubrilovic, N. “Silverlight: The Web Just Got Richer.” TechCrunch, 30 April 2007 <>.
  4. “Sun Radically Simplifies Content Authoring—Previews JavaFX Script.” Sun Microsystems, 8 May 2007 <>.
  5. “Prototype Tips and Tutorials.”Prototype JavaScript <>.
  6. “Core Effects.” Wiki <>.
  7. Berlind, D. “Google Gears Vies to be De Facto Tech for Offline Web Apps.” ZDNet, 31 May 2007 <>.
  8. Mills, E. “Google Gears Churns Toward Microsoft.” CNET, 31 May 2007 <>.
  9. “The 70 Percent Solution.” Business 2.0, 28 November 2005 <>.
  10. “The Dojo Offline Toolkit.”The Dojo Toolkit <>.
Update :: January 20, 2020