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.

Browser<br />

UI<br />

HTTP<br />

GET<br />

HTML<br />

Server<br />

App<br />

Server<br />

Figure 1.3 Classical web client/server interaction pattern.<br />

As the web matured, more server-side scripting languages appeared, examples<br />

<strong>of</strong> which include PHP, Python, Ruby, JavaServer Pages (JSP), <strong>and</strong> Active<br />

Server Pages (ASP). Such languages typically run on the server, have access to<br />

various resources, <strong>and</strong> are capable <strong>of</strong> creating <strong>and</strong> returning web <strong>page</strong>s upon<br />

request.<br />

The ability to generate web <strong>page</strong>s contributed to the separation <strong>of</strong> concerns<br />

(presentation, business logic, data) <strong>and</strong> realization <strong>of</strong> multi-tier architectures<br />

for web applications.<br />

1.1.3 <strong>Web</strong> Architecture<br />

By the year 2000, many <strong>of</strong> the initial concepts forming the backbone <strong>of</strong> the web<br />

(e.g., HTTP, URI, HTML) <strong>and</strong> additional recommendations such as Cascading<br />

Style Sheets (CSS) (level 2) <strong>and</strong> Document Object Model (DOM) (W3C, a)<br />

(level 2) were st<strong>and</strong>ardized through the World Wide <strong>Web</strong> Consortium (W3C).<br />

In addition, an architectural style <strong>of</strong> the web called REpresentational State<br />

Transfer (REST) was proposed by Fielding (2000), capturing the essence <strong>of</strong><br />

the main features <strong>of</strong> the web architecture, through architectural constraints<br />

<strong>and</strong> properties. Rest specifies a layered client-stateless-server architecture in<br />

which each request is independent <strong>of</strong> the previous ones, inducing the property<br />

<strong>of</strong> scalability. In practice, however, not many web implementations can<br />

be found that abide by the restrictions set by Rest. In particular, many developers<br />

have ignored the stateless constraint by allowing the server to keep track<br />

<strong>of</strong> relevant state changes. Chapter 2 discusses the architecture <strong>of</strong> the web in<br />

more detail.<br />

1.1.4 Rich Internet <strong>Applications</strong><br />

It soon became apparent that HTML was not designed for creating an interactive<br />

Graphical User Interface (GUI). Classical web applications are, inherently,<br />

<strong>based</strong> on a multi-<strong>page</strong> user interface model, in which interactions are <strong>based</strong> on<br />

a synchronous <strong>page</strong>-sequence paradigm. While simple <strong>and</strong> elegant in design<br />

for exchanging documents, this model has many limitations for developing<br />

modern web applications with user friendly human-computer interaction.<br />

The main limitations can be summarized as follows:<br />

• Low lever <strong>of</strong> user interactivity;<br />

4 1.1. <strong>Web</strong> Evolution

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

Saved successfully!

Ooh no, something went wrong!