Rich Internet Application

From Wikipedia, the free encyclopedia.

(Redirected from Rich internet application)
Jump to: navigation, search

Rich Internet Applications (RIA) are a cross between web applications and traditional desktop applications, transferring some of the processing to the client end.

RIA's typically:

  • run in a web browser, or do not require software installation.
  • run locally in a secure environment called a sandbox
  • can be "occasionally connected" wandering in and out of hot-spots or from office to office

The term "Rich Internet Application" was introduced in a Macromedia whitepaper in March 2002, though the concept had been around for a number of years before that under different names such as X Internet and Rich Clients.

Contents

Comparison to standard web applications

Traditional web applications centered all activity around a client-server architecture with a thin client. Under this system all processing is done on the server, and the client is only used to display static (in this case HTML) content. The biggest drawback with this system is that all interaction with the application must pass through the server, which requires data to be sent to the server, the server to respond, and the page to be reloaded on the client with the response. By using a client side technology which can execute instructions on the client's computer, RIAs circumvent this slow loop. It should be noted that Internet standards have evolved slowly and continually over time to accommodate these techniques, so it is hard to draw a strict line between what constitutes an RIA and what does not. Usually what can be done in an RIA is limited by the capabilities of the system used on the client.

Because RIAs take advantage of the client's CPU, they offer real-time user-interface options that are not possible with the standard HTML widgets available to browser-based Web applications. This richer functionality may include anything that can be implemented in the system being used on the client side (see below), including "drag and drop," using a slider to change data, calculations that happen on the client (e.g., an insurance rate calculator) and do not need to be sent back to the server, etc.

There are also performance benefits. The computing resources of both client and server are more balanced, so the server need not be the workhorse that it is with a web application. The network throughput may also be significantly reduced because the client can be more intelligent (e.g. application specific optimization) than a web browser in determining what it needs to send back and forth to the server.

Justifications

Although developing applications to run in a web browser is a much more limiting, difficult, and intricate a process than developing a regular desktop application, the efforts are often justified because:

  • installation is not required -- updating and distributing the application is an instant process
  • users can use the application from any computer with an internet connection
  • web-based applications are generally less prone to viral infection than running an actual executable
  • as web usage increases, computer users are becoming less willing to go to the trouble of installing new software if a browser-based alternative is available

This last point is often true even if this alternative is slower or not as feature-rich. A good example of this phenomenon is webmail.

Methods

JavaScript

The first major client side language and technology available with the ability to run code and installed on a majority of web clients was JavaScript. Although its uses were relatively limited at first, combined with layers and other developments in DHTML it has become possible to piece together an RIA system without the use of a unified client-side solution. Ajax is a new term coined to refer to this combination of techniques and has recently been used most prominently by Google for projects such as Gmail and Google Maps. However, creating a large application in this framework is very difficult, as many different technologies must interact to make it work, and browser compatibility requires a lot of effort. In order to make the process easier, several Ajax libraries have been developed.

Macromedia Flash Player

Macromedia is one vendor in this area, whose Macromedia Flash technology includes Flash Communications Server, Central, Breeze and Flex, all of which are run in viewers' browsers within the Macromedia Flash Player which has a 98% penetration with current internet users.

OpenLaszlo is an open source framework that currently targets the Flash Player as well, and is architected to support multiple run-time environments.

Java applets

Java applets are available on most Web Browsers. They provide more functionality than JavaScript, at the expense of being restricted to one or several viewports which are separated from the HTML of the webpage, unless the applet code either makes JavaScript calls or manipulates the Document Object Model of the page. (Flash has the same limitation.)

Java applications

Java web start allows desktop looking Java applications to utilize the client workstation. It also allows the application to break free of the web browser. This approach offers the richest functionality without the limitations of HTML or the specific web browser in use.

Other techniques

As more browsers support the Web standard for scriptable SVG, the user interface of RIAs can become richer.

The Mozilla Foundation's XML-based user interface markup language XUL could be used in RIAs, though it would be restricted to Mozilla-based browsers, since it is not a de facto or de jure standard.

Using XML and XSLT along with some XHTML, CSS and JavaScript can also be used to generate richer client side UI components like data tables that can be resorted locally on the client without going back to the server. Mozilla and Internet Explorer browsers both support this.

See also

External links

Personal tools
In other languages