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.

client/server <strong>and</strong> network-<strong>based</strong> environments, can be <strong>of</strong> help in underst<strong>and</strong>ing<br />

the essential components <strong>and</strong> architectural properties <strong>of</strong> <strong>Ajax</strong>-<strong>based</strong> web<br />

applications. In such a context, a s<strong>of</strong>tware architecture is defined (Perry <strong>and</strong><br />

Wolf, 1992; Fielding, 2000) by a configuration <strong>of</strong> architectural elements – processing,<br />

connecting, <strong>and</strong> data – constrained in their relationships in order to<br />

achieve a desired set <strong>of</strong> architectural properties.<br />

Through such an underst<strong>and</strong>ing, we could gain a more abstract perspective<br />

on the actual differences between the classical web model <strong>and</strong> the modern<br />

<strong>Ajax</strong>-<strong>based</strong> settings. An abstract model would also enable us to anticipate the<br />

trade<strong>of</strong>fs between, e.g., interactivity <strong>and</strong> scalability, <strong>of</strong> adopting <strong>Ajax</strong> techniques.<br />

Thus, our first main research question can be formulated as follows:<br />

Research Question 1<br />

What are the fundamental architectural differences <strong>and</strong> trade<strong>of</strong>fs between<br />

designing a classical <strong>and</strong> an <strong>Ajax</strong>-<strong>based</strong> web application? Can current<br />

architectural styles describe <strong>Ajax</strong>? If not, can we propose an architectural<br />

style taylored for <strong>Ajax</strong>?<br />

An architectural style is defined by a coordinated set <strong>of</strong> architectural constraints<br />

that restricts the roles <strong>of</strong> architectural elements <strong>and</strong> the allowed relationships<br />

among those elements within any architecture that conforms to that<br />

style (Fielding, 2000). Our hypothesis is that <strong>Ajax</strong> changes the web interaction<br />

model so significantly that it cannot be fit into the existing architectural<br />

styles, <strong>and</strong> hence requires its own architectural style.<br />

1.3.2 Reengineering<br />

Once an abstract perspective on the target model is gained, we focus on ways<br />

classical web applications could be reengineered to <strong>Ajax</strong> settings.<br />

Many organizations are beginning to consider migration, also known as<br />

<strong>Ajax</strong>ification, possibilities <strong>of</strong> their web-<strong>based</strong> systems to this new paradigm.<br />

Usually, significant investments have been made for classical web-<strong>based</strong> systems<br />

<strong>and</strong> most organizations are not likely to throw these valuable assets away<br />

to adopt a new emerging technology.<br />

As a result, the well-known problems <strong>of</strong> s<strong>of</strong>tware legacy renovation<br />

(van Deursen et al., 1999) <strong>and</strong> migration (Brodie <strong>and</strong> Stonebraker, 1995) are<br />

becoming increasingly important for web applications. If until a few years<br />

ago, the problem revolved solely around migrating legacy desktop systems to<br />

web-<strong>based</strong> settings, today we have a new challenge <strong>of</strong> reengineering classic<br />

web applications to <strong>Ajax</strong> applications as well.<br />

Our assumption is that a multi-<strong>page</strong> web application already exists, <strong>and</strong><br />

our intention is to explore techniques to support its comprehension, analysis,<br />

<strong>and</strong> restructuring by recovering abstract models from the current implementation.<br />

Chapter 1. Introduction 15

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

Saved successfully!

Ooh no, something went wrong!