Jump to content

Rich Internet Application: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Tag: references removed
No edit summary
Line 3: Line 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.<ref>[http://download.macromedia.com/pub/flash/whitepapers/richclient.pdf Macromedia March 2002 requirements for Rich Internet Applications]</ref> There has been some debate about whether [[Ajax (programming)|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<ref>[http://ajaxian.com/archives/poll-is-ajax-ria]</ref>.
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.<ref>[http://download.macromedia.com/pub/flash/whitepapers/richclient.pdf Macromedia March 2002 requirements for Rich Internet Applications]</ref> There has been some debate about whether [[Ajax (programming)|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<ref>[http://ajaxian.com/archives/poll-is-ajax-ria]</ref>.


As [[web standards]] have developed and [[web browser]]s' 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 [[Widget engine|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. <ref>[http://www.insideria.com/2009/08/flexs-most-serious-competition.html]</ref>
As [[web standards]] have developed and the compliance of [[web browser]] has improved, the need for plug-in based RIAs has diminished. The rapid evolution of Javascript and the emergence of a broad range of Ajax-based [[Widget engine|desktop-like widget sets]] have continued this trend. [[HTML 5]] takes this even further by delivering an extensive pseudo-application platform. <ref>[http://www.insideria.com/2009/08/flexs-most-serious-competition.html]</ref>


== Deployment ==
== 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 application]]s. However, many major sites makes use of RIA frameworks such as [[Ajax (programming)|Ajax]] and [[Adobe Flash]]. [[Online_gaming#Browser_games|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<ref>[http://mail.google.com/videochat Gmail Voice and Video Chat]</ref>).
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 application]]s. However, many major sites make use of RIA frameworks such as [[Ajax (programming)|Ajax]] and [[Adobe Flash]]. [[Online_gaming#Browser_games|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<ref>[http://mail.google.com/videochat Gmail Voice and Video Chat]</ref>).


== Key characteristics ==
== 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<ref>[http://www.techcrunch.com/2008/06/30/once-nearly-invisible-to-search-engines-flash-files-can-now-be-found-and-indexed/ Once Nearly Invisible To Search Engines, Flash Files Can Now Be Found And Indexed]</ref>.
* '''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<ref>[http://www.techcrunch.com/2008/06/30/once-nearly-invisible-to-search-engines-flash-files-can-now-be-found-and-indexed/ Once Nearly Invisible To Search Engines, Flash Files Can Now Be Found And Indexed]</ref>.
* '''Advanced communications''' with supporting servers can improve the user experience, for example by using optimised [[network protocols]], [[asynchrony|asynchronous]] [[I/O]] and [[Link_prefetching|pre-fetching]] data (eg [[Google Maps]]). Accordingly, reliable [[broadband]] connections are often required.
* '''Advanced communications''' with supporting servers can improve the user experience, for example by using optimised [[network protocols]], [[asynchrony|asynchronous]] [[I/O]] and [[Link_prefetching|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 application]]s (but typically less so than [[application software]]).
* '''Complexity''' of advanced solutions can make them more difficult to design, develop, deploy and debug than traditional [[web application]]s (but typically less so than [[application software]]).

Revision as of 16:49, 3 November 2009

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 the compliance of web browser has improved, the need for plug-in based RIAs has diminished. The rapid evolution of Javascript and the emergence of a broad range of Ajax-based desktop-like widget sets have continued this trend. 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 make 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, 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

External links