78776 - Computer Networks M

Academic Year 2015/2016

  • 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