Jump to content

Rich Internet Application: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
No edit summary
Tag: references removed
Line 1: Line 1:
'''Rich Internet applications''' ('''RIA'''s) are [[web application]]s that have most of the characteristics of [[Application software|desktop applications]], typically delivered by way of [[standard]]s based [[web browser]] [[Plug-in (computing)|plug-in]]s or independently via [[Sandbox (computer security)|sandbox]]es or [[virtual machine]]s.<ref name="war">[http://etech.eweek.com/content/application_development/ria_war_is_brewing.html RIA War Is Brewing]</ref> Examples of RIA [[Rich Internet application#Frameworks|frameworks]] include [[Curl (programming language)|Curl]], [[Google Web Toolkit|GWT]], [[Adobe Flash]]/[[Adobe Flex]]/[[Adobe Integrated Runtime|AIR]], [[Java (programming language)|Java]]/[[JavaFX]],<ref>[http://www.flomedia.de/diploma A Convergence of User Interface Paradigms of Web and Desktop]</ref>, [[XUL|Mozilla's XUL]] and [[Microsoft Silverlight]].<ref>[http://www.betadaily.com/2008/03/07/which-rich-internet-application-ria-technology-will-lead-the-pack/ Which Rich Internet Application (RIA) Technology Will Lead The Pack]</ref><!-- DO NOT BLOAT THIS LIST WITH EXAMPLES THAT ARE NOT VERY WELL KNOWN - USE THE CATEGORY BELOW -->
'''Rich Internet applications''' ('''RIA'''s) are [[web application]]s that have most of the characteristics of [[Application software|desktop applications]], typically delivered either by way of a [[standard]]s based [[web browser]], via a browser [[Plug-in (computing)|plug-in]], or independently via [[Sandbox (computer security)|sandbox]]es or [[virtual machine]]s.<ref name="war">[http://etech.eweek.com/content/application_development/ria_war_is_brewing.html RIA War Is Brewing]</ref> Examples of RIA [[Rich Internet application#Frameworks|frameworks]] include [[Ajax (programming)|Ajax]], [[Curl (programming language)|Curl]], [[Google Web Toolkit|GWT]], [[Adobe Flash]]/[[Adobe Flex]]/[[Adobe Integrated Runtime|AIR]], [[Java (programming language)|Java]]/[[JavaFX]],<ref>[http://www.flomedia.de/diploma A Convergence of User Interface Paradigms of Web and Desktop]</ref>, [[XUL|Mozilla's XUL]] and [[Microsoft Silverlight]].<ref>[http://www.betadaily.com/2008/03/07/which-rich-internet-application-ria-technology-will-lead-the-pack/ Which Rich Internet Application (RIA) Technology Will Lead The Pack]</ref><!-- DO NOT BLOAT THIS LIST WITH EXAMPLES THAT ARE NOT VERY WELL KNOWN - USE THE CATEGORY BELOW -->


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>
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]] (such as [[HTML 5]]) have developed and [[web browser]]s' compliance has improved there is still need for such extensions, when companies want to bring a truly high-end, seamless experience to their users. Javascript compilers with their associated [[Widget engine|desktop-like widget sets]] reduce the need for browser extensions even further. [[HTML 5]] delivers a pseudo-application platform.
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>

It is still not possible to build RIA-like Web applications that run in all modern browsers without the need of special run-times or plug-ins. This means that if one could run a modern [[Ajax (programming)|Ajax-based]] Web application ''outside'' of a web browser (e.g. using [[Mozilla Prism]] or [[Fluid (browser)|Fluid]]) it would essentially be an RIA,<ref name="war"/> though there is some contention as to whether this is actually the case.<ref>[http://www.flex888.com/696/mozilla-prism-apps-arent-rias.html Mozilla Prism Apps aren’t RIAs]</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. Despite this, every major site makes use of RIA frameworks such as JavaScript, [[Java_(programming_language)|Java]] and [[Adobe Flash]]. With Adobe claiming that at least some version of the [[Adobe Flash Player]] has a 98% or more market penetration in mature markets on internet desktops,<ref>http://www.adobe.com/products/player_census/flashplayer/version_penetration.html</ref> it is actually more widely available than any one of the web browsers in existence - as is Java. Also like Java, Adobe Flash runs on other platforms and devices and can run outside of the web browser environment, making environments for pre-installed Rich Internet Applications widely available. [[Online_gaming#Browser_games|Online gaming]] is one area where RIAs are 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 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>).


== Key characteristics ==
== Key characteristics ==
* '''Accessibility''' [[Adobe Flash]] is an RIA framework that is universally searchable.<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]]).
Line 20: Line 18:
* '''Performance''' can improve depending on the application and network characteristics. In particular, applications which can avoid the [[Latency_(engineering)#Communication_latency|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.
* '''Performance''' can improve depending on the application and network characteristics. In particular, applications which can avoid the [[Latency_(engineering)#Communication_latency|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]]).
* '''Richness''' by way of features not supported natively by the [[web browser]] such as [[video capture]] (eg. [[Adobe Flash]]).
* '''Standards''' Flash revolutionized delivery of video content on the web, dethroning such stalwarts as Media Player and Quicktime.


== Frameworks ==
== Frameworks ==
{{Cat see also|Rich Internet application frameworks}}
{{Cat see also|Rich Internet application frameworks}}


An appropriate ''Rich Internet application framework'' is usually required to run an RIA, 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.<ref>[http://today.java.net/pub/a/today/2005/03/22/laszlo.html Laszlo: An Open Source Framework for Rich Internet Applications]</ref>
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.<ref>[http://today.java.net/pub/a/today/2005/03/22/laszlo.html Laszlo: An Open Source Framework for Rich Internet Applications]</ref>


== References ==
== References ==

Revision as of 16:46, 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 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

External links