Event-driven communication in web application development

   

Dott. Alessio Bechini
Dipartimento di Ingegneria dell'Informazione: Elettronica, Informatica, Telecomunicazioni, Università di Pisa

10 hours, 3 credits (final test)

June 25 - June 29, 2007
Dipartimento di Ingegneria dell'Informazione: Elettronica, Informatica, Telecomunicazioni, via Diotisalvi 2, meeting room

   

Aims

Designers involved in building up state-of-the-art web applications are daily facing the need to bridge the gap between the richness and responsiveness shown by desktop GUIs, and the limited interaction capabilities of thin-client web interfaces. This problem has been recently coped with by leveraging a number of mature technologies like JavaScript and XML. The founding idea is to avoid the user make explicit requests for data, providing a client-side running environment that is able to asynchronously communicate with a server-side counterpart. Usually this kind of communication is triggered by events in the client graphical web interface.

The adoption of event-driven communication sets several challenges to the web programmer: this series of lessons is aimed at presenting the basic ideas for this kind of technology, guiding the student in practically applying them in the actual development of a full-featured web application. Moreover, the lessons will focus on the more interesting aspects from the research standpoint, underlying the possibilities to operate both on the client- and on the server-side components to meet performance goals.

Syllabus

1. RIA (Rich Internet Applications): critical overview of competing technologies

a. Applet, Macromedia Flash, DHTML: pros and cons

b. Ajax killer applications

2. Enabling technologies: the key features

a. Javascript: event handling and DOM manipulation

b. XML as a data interchange format

3. Asynchronous vs. request/response communication

a. Asynchronous communication paradigm and client/server support

b. Relying on a standard HTTP POST/GET

c. Use of XMLHttpRequest: from a client event to the server operation and back

d. JSON: data exchange standardization

e. Addressing security and dealing with performance: open issues

4. Supporting framewoks

a. Ajax frameworks

b. The Microsoft Atlas approach

c. Finding out the proper support

5. Lab activity: development of a full-featured web application

a. From conceptual modeling to operation

b. Client-side module development and server-side architecture

Prerequisites

Participants are required to be familiar with Java programming and basic web technologies.