A rich web application (originally called a rich Internet application RIA or installable Internet application) is a web application that has many of the characteristics of desktop application software. The concept is closely related to a single-page application, and may allow the user interactive features such as drag and drop, background menu, WYSIWYG editing, etc. HTML5 is a current standard for delivering rich web applications, supported by all major browsers.
Older (Before HTML5) Techniques
Adobe Flash
Adobe Flash manipulates vector and raster graphics to provide animation of text, drawings, and still images. It supports bidirectional streaming of audio and video, and it can capture user input via mouse, keyboard, microphone, and camera. Flash contains an object-oriented language called ActionScript
and supports automation via the JavaScript Flash language (JSFL). Flash
content may be displayed on various computer systems and devices, using Adobe Flash Player, which is available free of charge for common web browsers, some mobile phones and a few other electronic devices (using Flash Lite).
Apache Flex, formerly Adobe Flex, is a software development kit (SDK) for the development and deployment of cross-platform RIAs based on the Adobe Flash platform. Initially developed by Macromedia and then acquired by Adobe Systems, Flex was donated by Adobe to the Apache Software Foundation in 2011.
Java applet
Java applets
were used to create interactive visualizations and to present video,
three dimensional objects and other media. Java applets were appropriate
for complex visualizations that required significant programming effort
in a high level language or communications between applet and
originating server.
JavaFX
JavaFX
is a software platform for creating and delivering RIAs that can run
across a wide variety of connected devices. The current release (JavaFX
12, March 11 2019) enables building applications for desktop, browser
and mobile phones and comes with 3D support. TV set-top boxes, gaming
consoles, Blu-ray players and other platforms are planned. Java FX runs
as plug-in Java applet or via Webstart.
Microsoft Silverlight
Silverlight
was proposed by Microsoft as another proprietary alternative. The
technology has not been widely accepted and, for instance, lacks support
on many mobile devices. Some examples of application were video
streaming for events including the 2008 Summer Olympics in Beijing, the 2010 Winter Olympics in Vancouver, and the 2008 conventions for both major political parties in the United States. Silverlight was also used by Netflix for its instant video streaming service. Silverlight is no longer under active development and is not supported in Microsoft Edge, Microsoft's most recent browser.
Other techniques
RIAs could use XForms to enhance their functionality. 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.
History
The terms "rich client" and "rich Internet application" were introduced in a white paper of March 2002 by Macromedia (now Adobe), though the concept had existed for a number of years earlier under names including: "Remote Scripting" by Microsoft in April 1999, "X Internet" by Forrester Research in October 2000, Rich Web application.
Security issues in older standards
RIAs present indexing challenges to Web search engines, but Adobe Flash content is now at least partially indexable.
Security can improve over that of application software (for example through use of sandboxes and automatic updates), but the extensions themselves remain subject to vulnerabilities and access is often much greater than that of native Web applications.
For security purposes, most RIAs run their client portions within a
special isolated area of the client desktop called a sandbox. The
sandbox limits visibility and access to the file-system and to the
operating system on the client to the application server on the other
side of the connection. This approach allows the client system to handle
local activities, reformatting and so forth, thereby lowering the
amount and frequency of client-server traffic, especially versus
client-server implementations built around so-called thin clients.
HTML5 trend
In
November 2011, there were a number of announcements that demonstrated a
decline in demand for rich internet application architectures based on
plug-ins in order to favor HTML5 alternatives. Adobe announced that
Flash would no longer be produced for mobile or TV (refocusing its efforts on Adobe AIR). Pundits questioned its continued relevance even on the desktop and described it as "the beginning of the end". Research In Motion (RIM) announced that it would continue to develop Flash for the PlayBook, a decision questioned by some commentators. Rumors state that Microsoft is to abandon Silverlight after version 5 is released. The combination of these announcements had some proclaiming it "the end of the line for browser plug-ins".