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.