Rich Internet Applications
MAY/JUNE 2010 1089-7801/10/$26.00 © 2010 IEEE Published by the IEEE Computer Society 13
Anantharaman P. Narayana
Iyer, Arijit Chatterjee,
and Jyoti Kishnani
Adobe Systems India
T
he advent of Web 2.0 and its asso-
ciated read/write Web access pat-
terns places a major emphasis
on the user experience. Although this
was a critical need even for traditional
Web applications, emerging Web 2.0
and cloud applications extend it even
further. The two primary factors that
impact user experience on the Web
with browser-based access are
• page-based metaphor, in which the
page on view is refreshed while a
new page gets loaded; and
• the synchronous nature of com-
munication between the client and
server, in which the client user inter-
face (UI) is blocked until it receives
the server’s response, inhibiting user
interactivity.
The rich Internet application (RIA)
1
architecture enables signifcant com-
puting dedicated to presentation to
occur on the client, supported by a
sophisticated client RIA runtime (see
the “Rich Internet Applications Archi-
tecture” sidebar for more background).
The server exposes services that encap-
sulate the business logic while the
client handles the presentation. This
approach has a more scalable architec-
ture due to separation of concerns and
the use of a service-oriented architec-
ture (SOA). It also leverages the cli-
ent system’s compute power, which
Rich Internet applications (RIAs) provide an immersive experience that blends
the Internet’s expansive reach with the desktop computer’s rich performance.
Client applications typically connect to the server using asynchronous
communication protocols, which lets users interact with the application
without getting blocked due to server response latency. Although this
programming model enables high user interactivity, it increases the complexity
of synchronizing multiple pieces of program logic. This increased complexity
can be alleviated if synchronous program execution is enabled without blocking
the user interface. The authors’ technique based on compiler transformations
enables synchronous execution on an asynchronous RIA programming model.
Compiler Transformations to
Enable Synchronous Execution
in an RIA Runtime