28659 - Web Technologies T

Course Unit Page

Academic Year 2015/2016

Learning outcomes

Knowledge, skills, and practical experiences needed to design and implement Web-based applications.

Course contents

MODULE 1

The "static" model
Rapid historical introduction
The first World Wide Web model
Primary model elements and aspects: HTTP and URI
Languages for page content description: HTML and CSS

Data description and XML
Page description languages: XML and XHTML
Typing in XML: DTD vs. XML Schema
XML and Java: XML parsing (DOM and SAX models)

Model evolution
Towards a more dynamic approach: personalization, state, sessions, and conversations
State/session management
Server-side Web programming: Java servlets, JSP
Client-Side Web programming: JavaScript and Ajax

MODULE 2

Models and technologies for the effective and efficient persistence and transaction management
Direct access to databases: Interfaces and abstractions
Object-based architectures vs. relational databases: The impedance mismatch
Methodologies for persistence designing and developing: The "brute force" approach (JDBC), pattern DAO, and Object-Relational Mapping (ORM) - Entity Beans - Hibernate library
Isolation levels
Transactional models

Towards enterprise-oriented server-side environments
Multi-layer (multi-tier) architectures: horizontal and vertical distribution, business logic separation, component-container models
Model View Controller for Web applications and Java Model 2
Enterprise Java Beans, as an example of technology compliant with the "heavy" container model: focus on SessionBeans, both stateless and stateful
Spring, as an example of technology compliant with the "lightweight" container model: Inversion of Control, Spring AOP, Spring MVC
Java Server Faces (JSF)


Readings/Bibliography

All the lectures slides are available for download at the course Web site: http://www-db.deis.unibo.it/courses/TW/
W3C, HTML, CSS, JavaScript:
World Wide Web Consortium: http://www.w3.org HTML 4.01
HTML 4.01 Specifications: http://www.w3.org/TR/html4/
World Wide Web Consortium CSS Reference: http://www.w3.org/Style/CSS/
World Wide Web Consortium CSS2 Specifications: http://www.w3.org/TR/REC-CSS2/
Client-Side JavaScript Guide: http://www.w3schools.com/js/default.asp
XML
XML In a Nutshell, Second Edition, by Elliotte Rusty Harold and W. Scott Means. O'Reilly.
http://www.w3.org/XML/
http://www.w3.org/Style/XSL/
Web Applications
http://java.sun.com/javaee/reference/
http://tomcat.apache.org/
Spring
http://www.springsource.org/
Spring in action - Walls, Breidenbach - Manning (2nd edition)
Hibernate
Java persistence with Hibernate - Bauer - Manning

Teaching methods

Most course lectures are in "traditional" classrooms and exploit the slides available at the Course Web site. A non-negligible part of the course (around 30% of the hours) is composed by lab exercises, with proposed tasks and supervised by teachers and tutors. Each lab exercise addresses a topic presented and discussed in the previous classroom lectures, within a practical and operational perspective (also usage of state-of-the-art development and programming tools).

Assessment methods

The exam evaluation consists of a written programming exam (to be done in Lab, typically Lab4) and in a successive oral examination (for students passing the written part). To participate to the lab programming exam, interested students have to register themselves by exploiting the usual UniBO Web application, called AlmaEsami.

Teaching tools

In traditional classrooms, the course lectures will make extensive usage of slides (available at the course Web site). In lab, the course will use state-of-the-art development, IDE, and runtime support tools (e.g., Eclipse and Tomcat servlet engine). Students must learn how to practically and effectively use these tools (or other alternative tools), as an additional, practical, and relevant outcome of the course.

Links to further information

http://www-db.disi.unibo.it/courses/TW/

Office hours

See the website of Ilaria Bartolini

See the website of Paolo Bellavista