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.

plays a more prominent role in the client/server distributed spectrum, as<br />

more logic is being ported from the server-side to the client-side.<br />

In addition, unlike traditional object-oriented systems, the heterogeneous<br />

nature <strong>of</strong> web applications increases the difficulty <strong>of</strong> useful analysis <strong>based</strong><br />

on inspections <strong>of</strong> the source code. Static analysis techniques, which are commonly<br />

used with success on object-oriented applications, have serious limitations<br />

in analyzing modern <strong>Ajax</strong> applications where underst<strong>and</strong>ing the runtime<br />

behavior is crucial. As we have seen in Chapter 5, even simply finding<br />

<strong>and</strong> following links is not possible any longer on <strong>Ajax</strong> interfaces by static<br />

analysis <strong>of</strong> the source code. Using dynamic analysis to gather data from a<br />

running web program seems then the right direction to take, which in turn<br />

has its own difficulties <strong>and</strong> limitations, such as incompleteness <strong>and</strong> scalability<br />

(Cornelissen et al., 2009).<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 techniques<br />

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

empirical data for comparison?<br />

Conducting an experiment to compare the actual trade<strong>of</strong>fs <strong>of</strong> pull <strong>and</strong> push<br />

<strong>based</strong> web data delivery techniques turned out to be a difficult task, as explained<br />

in Chapter 4. Our first attempt in conducting the experiment consisted<br />

<strong>of</strong> a great deal <strong>of</strong> manual work, from starting the servers, the client<br />

simulation processes, to gathering <strong>and</strong> saving the run-time information, parsing<br />

the data, <strong>and</strong> generating graphs. The difficulty in coordination <strong>of</strong> the different<br />

modules in such a distributed environment encouraged us to opt for an<br />

automated approach, implemented in Chiron. Besides decreasing the manual<br />

effort, such an automated testing environment greatly increases the accuracy<br />

<strong>of</strong> the experiment, since similar test runs can be sequentially performed with<br />

exactly the same parameters.<br />

The proposed experiments are very complex, since the execution environment<br />

contains various distributed interacting concurrent s<strong>of</strong>tware processes<br />

<strong>and</strong> distributed hardware devices. For these reasons, the execution <strong>of</strong> our<br />

experiments is subject to validation threats, as discussed thoroughly in Chapter<br />

4.<br />

Although the experiment in Chapter 4 has been conducted on one sample<br />

application, <strong>and</strong> the Comet push servers are still experimental, the results<br />

show a promising trend in web data delivery techniques which clearly out<br />

perform pull-<strong>based</strong> approaches in terms <strong>of</strong> data coherence <strong>and</strong> network performance.<br />

Currently, scalability <strong>of</strong> the server, when a high number <strong>of</strong> clients<br />

has to be served, is the main concern when push is used.<br />

Chiron is not bound to any specific web technology <strong>and</strong> almost every aspect<br />

<strong>of</strong> the tool is configurable, <strong>and</strong> since it has been made open source, similar<br />

experiments by others can be carried out to dynamically analyze the runtime<br />

performance properties <strong>of</strong> web systems.<br />

Chapter 7. Conclusion 157

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

Saved successfully!

Ooh no, something went wrong!