Jump to content

Rich Internet Application

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 88.96.214.6 (talk) at 16:46, 3 November 2009. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Rich Internet applications (RIAs) are web applications that have most of the characteristics of desktop applications, typically delivered either by way of a standards based web browser, via a browser plug-in, or independently via sandboxes or virtual machines.[1] Examples of RIA frameworks include Ajax, Curl, GWT, Adobe Flash/Adobe Flex/AIR, Java/JavaFX,[2], Mozilla's XUL and Microsoft Silverlight.[3]

The term was introduced in March 2002 by vendors like Macromedia who were addressing limitations at the time in the "richness of the application interfaces, media and content, and the overall sophistication of the solutions" by introducing proprietary extensions.[4] There has been some debate about whether Ajax properly qualifies as an RIA or whether the term should be reserved for plug-in based technologies. However Ajax clearly demonstrates all the core characteristics of an RIA and current opinion appears to hold that it should be therefore be included in this category[5].

As web standards have developed and web browsers' compliance has improved, the need for such extensions has diminished. The rapid evolution of Javascript and the emergence of a broad range of Ajax-based desktop-like widget sets have continued to reduce the need for browser extensions. HTML 5 takes this even further by delivering an extensive pseudo-application platform. [6]

Deployment

With a few but growing number of exceptions (most notably YouTube which currently relies on Adobe Flash for video playback) the vast majority of the most popular web sites are native web applications. However, many major sites makes use of RIA frameworks such as Ajax and Adobe Flash. Online gaming is an area where plugin-based RIAs are particularly prevalent. Applications (such as Dimdim) which require access to video capture also tend to use RIAs (with the notable exception of Gmail which uses its own task-specific browser plug-in[7]).

Key characteristics

  • Accessibility [[[Ajax (programming)|Ajax]], being browser-native, is the only RIA framework that is universally searchable, but Adobe Flash has now made some strides in this direction[8].
  • Advanced communications with supporting servers can improve the user experience, for example by using optimised network protocols, asynchronous I/O and pre-fetching data (eg Google Maps). Accordingly, reliable broadband connections are often required.
  • Complexity of advanced solutions can make them more difficult to design, develop, deploy and debug than traditional web applications (but typically less so than application software).
  • Consistency of user interface and experience can be controlled across operating systems. Performance monitoring and fault diagnosis can be particularly difficult.
  • Installation and Maintenance of plug-ins, sandboxes or virtual machines is required (but applications are smaller than their predecessors and updates are typically automated). Installation is typically faster than that of application software but slower than that of native web applications and automation may not be possible.
  • Offline use may be supported by retaining state locally on the client machine, but developments in web standards (prototyped in Google Gears) have also enabled this for native web applications.
  • Security can improve over that of application software (for example through use of sandboxes and automatic updates) but the extensions themselves are subject to vulnerabilities and access possible is often much greater than that of native web applications.[9]
  • Performance can improve depending on the application and network characteristics. In particular, applications which can avoid the latency of round-trips to the server by processing locally on the client are often a lot faster. Offloading work to the clients can also improve server performance. Conversely the resource requirements can be prohibitive for small, embedded and mobile devices.
  • Richness by way of features not supported natively by the web browser such as video capture (eg. Adobe Flash).

Frameworks

An appropriate Rich Internet application framework is usually required to run any RIA other than [[[Ajax (programming)|Ajax]], and needs to be installed using the computer's operating system before launching the application. The software framework is typically responsible for downloading, updating, verifying and executing the RIA.[10]

References