- Docente: Ilaria Bartolini
- Credits: 12
- SSD: ING-INF/05
- Language: Italian
- Moduli: Ilaria Bartolini (Modulo 1) Paolo Bellavista (Modulo 2)
- Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
- Campus: Bologna
- Corso: First cycle degree programme (L) in Computer Engineering (cod. 0926)
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