Adobe AIR is a cross-platform desktop
runtime created by Adobe that allows web developers to use web technologies to
build and deploy Rich Internet Applications (RIAs) and web applications
to the desktop.
NOTE
During its development cycle,
Adobe AIR was referred to in public by its code
name of "Apollo".
To better understand what
Adobe AIR enables, and which problems it tries to address, it is useful to first
take a look at the (relatively short) history of web applications.
1.1. A Short History of Web
Applications
Over the past couple of years, there has been an accelerating trend
of applications moving from the desktop to the
web browser. This has been driven by a number of
factors, which include:
-
Growth of the Internet as a communication medium
-
Relative ease of deployment of web applications
-
Ability to target multiple operating systems via the
browser
-
Maturity of higher-level client
technologies, such as the browser and the Flash Player runtime
Early web applications were built
primarily with HTML and JavaScript, which, for the most part, relied heavily on
client/server interactions and page refreshes. This page refresh model was
consistent with the document-based metaphor for which the browser was originally
designed, but provided a relatively poor user experience when displaying
applications.
With the maturation of the Flash Player runtime, however, and more recently with Ajax-type
functionality in the
browser, it became possible for developers to begin to break away from
page-based application flows. Developers began to offer richer application
experiences via the browser. In a whitepaper from March 2002, Macromedia coined
the term rich Internet application to describe these new types of applications in browsers,
which "blend content, application logic and communications ... to make the
Internet more usable and enjoyable." These applications provided richer, more
desktop-like experiences, while still retaining the core cross-platform nature
of the Web:
Internet applications are all about
reach. The promise of the web is one of content and applications anywhere,
regardless of the platform or device. Rich clients must embrace and support all
popular desktop operating systems, as well as the broadest range of emerging
device platforms such as smart phones, PDAs, set-top boxes, game consoles, and
Internet appliances.
The paper goes on to list some features
that define RIAs:
-
Provide an efficient,
high-performance runtime for executing code, content, and communications
-
Integrate content, communications, and application interfaces
into a common environment
-
Provide powerful and extensible object models for
interactivity
-
Enable rapid application development through components and
reuse
-
Enable the use of web and data
services provided by application servers
-
Embrace connected and disconnected clients
-
Enable easy deployment on multiple
platforms and devices
This movement toward providing richer,
more desktop-like application experiences in the browser (enabled by the Flash
Player runtime, and more recently by Ajax) has led to an explosion of web
applications.
Today, the web has firmly
established itself as an application deployment platform that offers benefits to
both developers and end-users. Some of these benefits include the ability
to:
-
Target multiple platforms and operating systems
-
Develop with relatively high-level programming and layout
languages
-
Allow end-users to access their applications and data from
virtually any Internet-connected computer
-
Easily push application updates to users
The growth of web applications can be
seen in both the Web 2.0 trend, which consists almost entirely of web-based
applications and APIs, and the adoption of web applications as a core business
model by major companies and organizations.
|