25.07.2014 Views

Analysis and Testing of Ajax-based Single-page Web Applications

Analysis and Testing of Ajax-based Single-page Web Applications

Analysis and Testing of Ajax-based Single-page Web Applications

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

A Component- <strong>and</strong> Push-<strong>based</strong><br />

Architectural Style for <strong>Ajax</strong><br />

<strong>Applications</strong> ⋆<br />

A new breed <strong>of</strong> web application, dubbed <strong>Ajax</strong>, is emerging in response to a limited<br />

degree <strong>of</strong> interactivity in large-grain stateless <strong>Web</strong> interactions. At the heart<br />

<strong>of</strong> this new approach lies a single <strong>page</strong> interaction model that facilitates rich interactivity.<br />

Also push-<strong>based</strong> solutions from the distributed systems are being<br />

adopted on the web for <strong>Ajax</strong> applications. The field is, however, characterized by<br />

the lack <strong>of</strong> a coherent <strong>and</strong> precisely described set <strong>of</strong> architectural concepts. As a<br />

consequence, it is rather difficult to underst<strong>and</strong>, assess, <strong>and</strong> compare the existing<br />

approaches. We have studied <strong>and</strong> experimented with several <strong>Ajax</strong> frameworks<br />

trying to underst<strong>and</strong> their architectural properties. In this chapter, we summarize<br />

four <strong>of</strong> these frameworks <strong>and</strong> examine their properties <strong>and</strong> introduce the<br />

Spiar architectural style which captures the essence <strong>of</strong> <strong>Ajax</strong> applications. We<br />

describe the guiding s<strong>of</strong>tware engineering principles <strong>and</strong> the constraints chosen to<br />

induce the desired properties. The style emphasizes user interface component development,<br />

intermediary delta-communication between client/server components,<br />

<strong>and</strong> push-<strong>based</strong> event notification <strong>of</strong> state changes through the components, to<br />

improve a number <strong>of</strong> properties such as user interactivity, user-perceived latency,<br />

data coherence, <strong>and</strong> ease <strong>of</strong> development. In addition, we use the concepts <strong>and</strong><br />

principles to discuss various open issues in <strong>Ajax</strong> frameworks <strong>and</strong> application<br />

development.<br />

Chapter<br />

2<br />

2.1 Introduction<br />

ver the course <strong>of</strong> the past decade, the move from desktop applications<br />

O towards web applications has gained much attention <strong>and</strong> acceptance.<br />

Within this movement, however, a great deal <strong>of</strong> user interactiveness has been<br />

lost. Classical web applications are <strong>based</strong> on a multi <strong>page</strong> interface model, in<br />

which interactions are <strong>based</strong> on a <strong>page</strong>-sequence paradigm. While simple <strong>and</strong><br />

elegant in design for exchanging documents, this model has many limitations<br />

for developing modern web applications with user friendly human-computer<br />

interaction.<br />

Recently, there has been a shift in the direction <strong>of</strong> web development towards<br />

the new generation <strong>of</strong> <strong>Web</strong> 2.0 applications. A new breed <strong>of</strong> web application,<br />

dubbed <strong>Ajax</strong> (Asynchronous JavaScript And XML) (Garrett, 2005), has<br />

⋆ This chapter was published in the Journal <strong>of</strong> Systems <strong>and</strong> S<strong>of</strong>tware in December 2008 (Mesbah<br />

<strong>and</strong> van Deursen, 2008a).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!