- Docente: Paolo Bellavista
- Credits: 6
- SSD: ING-INF/05
- Language: Italian
- Teaching Mode: Traditional lectures
- Campus: Bologna
- Corso: Second cycle degree programme (LS) in Electronic Engineering (cod. 0233)
Learning outcomes
This graduate course aims at providing students with deep advanced know-how about the methodologies, models, tools, and mechanisms for the design, implementation, and runtime evaluation/validation of enterprise applications deployed over wide-scale distributed systems.
Previous course requirements: no one (but some contents from the course called Reti di Calcolatori LS will be useful in some classes.
The learning outcomes of the course will include:
- architecture modeling principles for distributed enterprise applications: requirements and design principles
- Design, development, and implementation of distributed applications based on Application Servers (e.g., JBoss) and components (e.g., Enterprise Java Beans)
- management of complex and articulated container-based distributed systems, also via lightweight models and technologies (e.g., via Spring) and via advanced persistency solutions (e.g., via the JPA and Hibernate technologies)
- design, development, and implementation of distributed support systems for runtime monitoring and control (properties such as scalability, fault-tolerance, reliability, ...; e.g., via the JMX technology)
Course contents
The course has contents that are deeply renovated and original if compared with the previous editions of the same course in the last years (first academic year of the new course: 2008-2009). In particular, the course will aim at deeply and thoroughly facing the following topics:
- methodologies and architectural models for the design, implementation, and deployment of enterprise-level distributed applications
- component-based model evolution and component integration into distributed architectures (typically 3-tier and Web-integrated)
- Application Servers (e.g., JBoss) and middleware/frameworks for the runtime support of enterprise-level distributed applications
- from the starting Enterprise Java Beans model (EJB1.0) to the current widespread adoption of EJB 3.0 (motivations and evolution guidelines)
- Persistency
- Interactions with data
- Session-oriented and message-oriented components
- Interceptors
- Transactions
- Examples and exercises (integrated with the JBoss application server)
- towards effective and efficient enterprise models with lightweight containers: the Spring example
- Spring and inversion of control
- Spring and aspect-oriented programming
- transaction management
- persistency: evolution of persistency support models in the development of enterprise applications. The examples of JPA and Hibernate.
- transparent persistency
- mapping and query support
- metadata support
- performance
- monitoring, control, and runtime management of application servers and of distributed support frameworks in general: the JMX example
- efficiency/effectiveness and performance evaluation
- scalability
- fault-tolerance
- reliability
- Several case studies (also provided via seminars via external companies, added to the regular classes schedule)
The course will be associated with a set of practical lab exercises, in which the students will be solicited to perform guided exercise activities but in an autonomous way and in their free time. These activities will be necessary to complete the study of the course and to reach the desired skills; texts and solutions of these ees will be made available at the official course Web site.
The set of proposed lab exercises will include:
- 1 exercise about EJB in the JBoss application server
- 1 exercise about Spring
- 1 exercise about JPA/Hibernate
- 1 exercise about JMX
Readings/Bibliography
All the teachning material (presentation slides, discussed exercises with solutions, exercise proposals, project examples and proposals) used during the classes will be available for download at the Course Web site:
http://lia.deis.unibo.it/Courses/sd0910-info/
In addition, there are suggested books useful for deepening several of the topics addressed by the course:
- B. Burke, R. Monson-Haefel, Enterprise JavaBeans 3.0, 5th ed., O'Reilly, 2006
- B. McLaughlin, Building Java Enterprise Applications, Vol. I: Architecture, 1st ed., O'Reilly, 2002
- C. Walls, R. Breidenbach, Spring in Action, 1° ed., Manning, 2005
- C. Bauer, G. King, Persistence with Hibernate, Manning, 2006
- J.S. Perry, Java Management Extensions, 1° ed., O'Reilly, 2002
Additional useful sources of information and of teaching material:
- SUN tutorial, http://java.sun.com/j2ee/overview.html
- S.Shin, Java programming with Passion, http://www.javapassion.com
Teaching methods
The classes will discuss the general issues related to the modeling, design, implementation, and runtime support of wide-scale distributed applications based on components, containers, and Application Servers. The main technologies exploited during the course will be based on the Java language and on the Java Enterprise Edition (J2EE).
The course will be associated with a set of practical lab exercises, in which the students will be solicited to perform guided exercise activities but in an autonomous way and in their free time. These activities will be necessary to complete the study of the course and to reach the desired skills; texts and solutions of these ees will be made available at the official course Web site.
Lab exercises will include:
- 1 exercise about EJB in the JBoss application server
- 1 exercise about Spring
- 1 exercise about Hibernate
- 1 exercise about JMX
Assessment methods
The course is assessed via a final oral examination. The exam will try to evaluate the deep understanding of both the methodologies/models of architecture design and the ability to implement parts of wide-scale enterprise distributed applications by using the mechanisms and technologies examined during the course.
Optionally, some students could work on a personal project (not mandatory) about specific topics that will be communicated by the teacher during the classes. In that case, the students will have to send a written document describing the developed work (possibly including the developed code) and the oral exam will start with the discussion of that project. That project can be also joint and coordinated with the project activities that the students choose for the course of Reti di Calcolatori LS (via previous agreement of the students with the two involved professors).
Teaching tools
Teaching material
The slides used during the classes (both in classroom and in labs) are freely available at the Course Web site:
http://lia.deis.unibo.it/Courses/sd0910-info/
The hard copy of the same slides will be available (if requested explicitly by students) at the copy center close to the Central Library of the Facoltà d'Ingegneria.
Texts and solutions of lab exercises and of frequent questions for oral exams will be made available at the course Web site during the second term:
http://lia.deis.unibo.it/Courses/sd0910-info/
Other tools:
Some Integrated Development Environments for J2EE (mainly the NetBeans and Eclipse IDEs) are available in the labs (mainly Lab2, but also Lab3 and Lab4) and on the course Web site
Links to further information
http://lia.deis.unibo.it/Courses/sd0910-info/
Office hours
See the website of Paolo Bellavista