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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

To the best <strong>of</strong> our knowledge, at the time <strong>of</strong> writing no study had been<br />

conducted to explore the actual trade<strong>of</strong>fs in terms <strong>of</strong> data coherence, server<br />

performance <strong>and</strong> scalability, network performance, <strong>and</strong> data delivery reliability,<br />

involved in applying a push- versus pull-<strong>based</strong> approach to web-<strong>based</strong><br />

settings.<br />

<strong>Web</strong> applications are distributed systems, <strong>and</strong> distributed systems are inherently<br />

more difficult to engineer (Wang et al., 2005) <strong>and</strong> test than sequential<br />

systems (Alager <strong>and</strong> Venkatsean, 1993). Controllability, observability (Chen<br />

et al., 2006), <strong>and</strong> reproducibility are all challenging issues in distributed testing<br />

environments. In order to conduct a comparison <strong>of</strong> different web data<br />

delivery techniques, first an automated, controllable, <strong>and</strong> repeatable test environment<br />

has to be set up, to obtain accurate empirical data for each approach.<br />

This leads us to our next research question:<br />

Research Question 3.1<br />

What are the trade<strong>of</strong>fs <strong>of</strong> applying pull- <strong>and</strong> push-<strong>based</strong> data delivery<br />

techniques on the web? Can we set up an automated distributed test<br />

environment to obtain empirical data for comparison?<br />

Automatic Crawling<br />

General web search engines, such as Google <strong>and</strong> Yahoo!, cover only a portion<br />

<strong>of</strong> the web called the publicly indexable web, which consists <strong>of</strong> the set <strong>of</strong> web<br />

<strong>page</strong>s reachable purely by following hyperlinks. Dynamic content behind<br />

web forms <strong>and</strong> client-side scripting is generally ignored <strong>and</strong> referred to as the<br />

hidden web (Raghavan <strong>and</strong> Garcia-Molina, 2001).<br />

Although there has been extensive research on finding <strong>and</strong> exposing the<br />

hidden web behind forms (Barbosa <strong>and</strong> Freire, 2007; de Carvalho <strong>and</strong> Silva,<br />

2004; Lage et al., 2004; Ntoulas et al., 2005; Raghavan <strong>and</strong> Garcia-Molina,<br />

2001; Madhavan et al., 2008), the hidden web induced as a result <strong>of</strong> client-side<br />

scripting in general <strong>and</strong> <strong>Ajax</strong> in particular has gained very little attention so<br />

far.<br />

Consequently, while <strong>Ajax</strong> techniques are very promising in terms <strong>of</strong> improving<br />

rich interactivity <strong>and</strong> responsiveness, <strong>Ajax</strong>-<strong>based</strong> applications may<br />

very well end up in the hidden web. We believe this is one <strong>of</strong> the main reasons<br />

people hesitate to use <strong>Ajax</strong> on their public web sites.<br />

Crawling <strong>Ajax</strong>-<strong>based</strong> web interfaces is fundamentally more challenging<br />

than crawling classical multi-<strong>page</strong> applications. The main reason is that in<br />

the classical web model, all states are explicit, <strong>and</strong> each one corresponds to a<br />

unique URL. In <strong>Ajax</strong>-<strong>based</strong> applications, however, the state <strong>of</strong> the user interface<br />

is determined dynamically, through event-driven changes in the run-time<br />

DOM-tree. This means that simply extracting <strong>and</strong> following hyperlinks does<br />

not suffice any longer. New methods <strong>and</strong> techniques are required to dynamically<br />

analyze the complex user interface elements, events, <strong>and</strong> state changes,<br />

which leads us to our next question:<br />

Chapter 1. Introduction 17

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

Saved successfully!

Ooh no, something went wrong!