96642 - Virtualization and System Integration

Course Unit Page


This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.

Quality education Decent work and economic growth Industry, innovation and infrastructure

Academic Year 2021/2022

Learning outcomes

The course provides the knowledge and the abilities of the Systems Integration and Testing Engineer.

For the understanding of the course content, a solid background knowledge, gained in the exams of programming, operating systems and computer networks, is indispensable.

At the end of the course, the student knows the basic principles of virtualization, Identity management systems, and network protection techniques (NAT and firewall, in particular).

He knows the main issues that hinder the deployment of distributed services and applications on contexts that are heterogeneous in terms of users, services, APIs and operating systems ; he knows the main tools and methods usable to design and deploy distributed applications; the main protocols, systems and tools to allow the interactions among basic services provided by different operating systems; he knows the most prominent management platforms for on-premise cloud systems.

Moreover, he knows the main protocols, tools and platforms commonly used to configure, deploy, maintain and monitor, in centralized and automated manner, a number of distributed systems, services and applications.

Course contents

The course provides the knowledge and the abilities of the System Integration and Testing Engineer.

For the understanding of the course content, a solid background knowledge, gained in the exams of programming, operating systems and computer networks, is indispensable .

  • The System Integration and Testing Engineer, his tasks and skills
  • Recall of local system management.
  • Overview on communication security aspects for information systems, server farms and network. Protocols and utilities, ssh, tls/ssl, dtls.
  • Notes on network management, basic tools, filtering, iptables/netfilter.
  • Network protocols (OPC)for interaction with industrial systems (PLC).
  • Notes on protection of local networks and server farm, NAT, Firewall and protocols for overcoming, concepts of Proxy/Relay, protocols and tools for proxying, socks.
  • Virtualization principle, platform for virtualization, container, application areas of virtualization: from server farm to smartphone.
  • Micro-services Architectures: language-independent, component-based, software architectures. Message Bus (at a kernel level, local system or cloud scope). Most prominent examples of Micro-services Architectures in a local context and cloud context.

  • An example of container-level virtualization: Docker.
    The docker API. Virtual networks between docker containers.
    Build a container image automatically using Dockerfile; Introduction to Docker Compose;
    Docker Swarm - how to run multi-container applications in host clusters using a native docker tool.
    Kubernetes: orchestration of virtual machines, services and containers. On premise orchestration products on cluster or on single node (minikube).

  • Notes on management platform for on premise cloud.
  • IDentity Management (IDM), IDM platforms and protocols based on Windows o.s. (Active Directory, LDAP) and based on Linux o.s. (Kerberos, openLDAP) .
  • Interactions between Windows and Linux systems, application areas and protocols, most significant examples.
  • Centralized management of distributed services and development of supporting applications: Centralized monitoring, protocols, applications, SNMP, Nagios, other applications. Centralized Configuration, Centralized Authentication, Centralized Maintenance. Development of distributed application, in particular those devoted to dynamic configuration and monitoring of local and distributed systems.
  • Most significant examples of systems integration.


Slides and notes provided through course web site (see 'Links to further information' after the beginning of course)

Teaching methods

Classroom lectures and exercises, and laboratory activities.

The theoretical knowledges are presented during the traditional lectures. A lot of practical exercises are developed in the lectures so as to introduce the laboratory activities, in which the students, under the supervision of the professor, check their knowledges, propose and solve their doubts and improve their skill.

Extensions of the lab activities are regularly suggested, and the solutions published, so as to allow individual studies and autonomous lab activities.

Some laboratory activities simulate the execution of the theoretical/practical exam so as to familiarize the students with the course assessment methods.

In consideration of the type of activity and the teaching methods adopted, the attendance of this training activity requires the preventive participation of all students in the training modules 1 and 2 on safety in the study places, in e-learning mode [https://elearning-sicurezza.unibo.it/ ].


Assessment methods

The examination consists of a verification of knowledge of the theoretical and practical aspects of the discipline, carried out by a written test;

The theoretical/practical test is carried out as a 1-hour written exam that includes open questions and simple exercises. The theoretical/practical test may involve any subject presented during the course.

If the theoretical/practical verification is passed, the overall grade is verbalized after 2 weeks. The student therefore has two weeks to refuse the overall grade.

PLEASE NOTE: as long as the covid-19 emergency lasts, the examination tests will be carried out online, with the students at home and working on their pc. In such a case, the theoretical/practical verification will last after one hour only.

Teaching tools

Lessons: projection of slideshows and practical demonstrations of the concepts, algorithms, techniques, API and tools proposed in the lessons. The practical demonstration uses scripts and files that are preventively provided by means of the web page of the course. Hence, the students can follow and replicate the demonstrations on their laptop using the wifi connections available in the classroom. In this way, the students can personally verify the progress of the operations, can identify any doubts and can ask the teacher for solutions, so as to solicit the interaction between the students and the lecturer during lessons.

Practical laboratory activities: the teacher will guide the students to learn API, tools, troubleshooting strategies, and to solve problems regarding almost every subject of the course. A personal virtualized environment is available, where students can work with administrative privileges, allowing to simulate realistic system administrator operational procedures.

Links to further information


Office hours

See the website of Vittorio Ghini

See the website of Ciro Barbone

See the website of Enrico Fiumana