- Docente: Antonio Corradi
- Credits: 8
- SSD: ING-INF/05
- Language: English
- Teaching Mode: In-person learning (entirely or partially)
- Campus: Bologna
- Corso: Second cycle degree programme (LM) in Computer Engineering (cod. 0937)
Learning outcomes
A subtitle can be the following.
Infrastructure to Support Quality Large Distributed Systems: New technology for Managing Personal, Cloud, Global Data applications
The course aims at delivering a novel vision of systems (mainly distributed) and at building a deep, formal, practical, and meditated experience of their operations. We are immersed into those systems, personally, socially, and as part of organizations.
This class intends to provide a hands-on approach on most recent
environments to makes easy the usage of distributed applications,
for large and small applications: the main areas touched are
middleware environments, Cloud systems, and other global modern
solutions for better continuous deployment.
Some applications areas are going to be touched, such as smart
cities, e-citizenship, avionics, crowdsourcing.
This course intends to address the problems and difficulties to be overcome in the project of distributed systems and examines the most widespread solution middleware with a particular focus on standard and modern evolutions and practices.
The course starts by assuming a good knowledge of distributed systems and computer networks basics (close to the knowledge deriving from a first course in Computer Networks and Distributed Systems). We stress the importance of all the abilities in making a small project toward its final deployment as an entering requirement.Discuss with the teacher in case you do not comply.
Course contents
The course covers many topics:
- Advanced models for large distributed & cloud systems
- Replication, group and many-to-many communication, and systems for QoS
- Middleware for development and management of large distributed & cloud systems
- Infrastructures for global data storage and processing
The topics can be organized as follows.
Advanced models for large distributed & cloud systems
- Class Starting: general information and presentation
- Goals, Basics, and Models: classifications, service and cloud models, parallelization models
- Middleware & Cloud Models: definitions, categories, basic organization, and patterns for large distributed and cloud systems
Replication, group and many-to-many communication, and systems for QoS
- Replication: models, strategies and protocols
- Communication and groups: models, protocols and algorithms
- Systems and protocols for QoS
- Multicast and MOM middleware
Middleware for large distributed & cloud systems
- CORBA: middleware and operating environment
- OpenStack: an example of a widely-diffused cloud IaaS
Infrastructures for global data storage and processing
- Global data storage: solutions for long-term and short-term data memorization
- Global data processing: batching and streaming based big data processing in the cloud
Readings/Bibliography
G. Coulouris, J. Dollimore, T. Kindberg: "Distributed Systems: concepts and Design", Addison-Wesley, (fifth edition) 2012.
A.S. Tanenbaum, M. v. Steen "Distributed Systems: Principles and Paradigms", Prentice-Hall, (second edition) 2006.
B. Forouzan, F. Mosharraf: “Computer Networks, a top down approach”, McGrow-Hill, 2011.
M.L. Liu, "Distributed Computing", Addison-Wesley, 2003.
D.L. Galli: "Distributed Operating Systems: Concepts and Practice", Prentice-Hall, 2000.
L. Peterson, B. Davie, "Computer Networks, A Systems Approach", (fifth edition) Morgan Kaufmann Series in Networking, 2011,
V.K. Garg, “Elements of Distributed Computing”, Wiley, 2002.
L. Carlson, “Programming for PaaS, A Practical Guide to Coding for Platform-as-a-Service”, O Reilly, 2013
J. Siegel, “Pure CORBA: a code-intensive reference”, (second edition), SAMS Publishing, 2002.
F. Halsall, “Multimedia Communications”, Addison-Wesley, 2001.
D.A. Chappel, T. Jewell, “Java Web Services”, O'Reilly, 2002.
E. Newcomer, “Understanding Web Services”, Addison-Wesley, 2002.
T. Erl et al., “Cloud computing : concepts, technology, & architecture”, Prentice Hall, 2013.
B. Wilder, “Cloud architecture patterns”, Beijing, 2013.
A. T. Velte et al., “Cloud computing: a practical approach”, McGraw-Hill, 2010.
J. Rhoton, “Cloud computing explained”, Recursive Press, 2009.
T. Fifield et al., “Openstack operations guide: set up and manage your OpenStack cloud”, O'Reilly, 2014.
S. Holla, “Orchestrating Docker”, Packt Publishing, 2015.
O. Hane, “Build your own PaaS with Docker”, Packt Publishing, 2015.
T.D. Nadeau and K. Gray, “SDN: software defined networks”, O'Reilly, 2013.
L. Carlson, “Programming for Paas”, O'Reilly, 2013.
T. White, “Hadoop: the definitive guide”, O'Reilly, 2012.
E. Sammer, “Hadoop operations”, O'Reilly, 2012.
K. Rankin, “DevOps troubleshooting”, Addison-Wesley, 2013.
D. Sui et al., “Crowdsourcing geographic knowledge”, Springer, 2013.
Z. Yan et al., “Semantics in mobile sensing”, Morgan & Claypool, 2014.
R. Copeland, “MongoDB applied design patterns”, O'Reilly, 2013.
Teaching methods
This course tends to give importance to and to leave room for discussion to develop critical project attitude: students are really encouraged to face topics, by stimulating classroom interaction and perspective exchange. Typically students are given discussion topics and they have to present some defense of their opinions.
Within the course, also additional space is provided for
seminars and experience reporting about issues relevant for the
course topics, usually given by people outside the academic
environment coming from Industrial stakeholders, so to expose
students to a ‘work' environment.
Those seminar contents are of deep importance in adding to the
professional background of the computer engineering students, by
offering reflections and insights toward the professional
growth.
Assessment methods
The final test consists of a deep colloquium about all the most
important and basic issues in the distributed systems area; the
evaluation is mainly based on the capacity of orientating more than
on the memory effort.
It is possible to have assigned a project about all these issues,
recommended to the students in the path of Distributed Systems.
Again, the objective of all the lines is to develop a capacity of understanding and of identifying critical problems and issues toward solutions, and that skill is considered more than memorizing specific paths and answers.
Teaching tools
All the contents are presented in class and via compulsory discussions. Students are not only encouraged but also forced to discuss on topics and to develop ideas and opinions on the main current areas of debate.
Web site of the course:
middleware.unibo.it/courses/networksm
Students are referred to papers and articles to choose from and go deep individually into chosen topics.
Links to further information
http://middleware.unibo.it/courses/networksm
Office hours
See the website of Antonio Corradi