86733 - SYSTEMS INTEGRATION

Course Unit Page

SDGs

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 2019/2020

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 (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 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.

  • The Systems 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, Firewall and e 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.

Readings/Bibliography

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 both the theoretical/practical exam and the design development so as to familiarize the students with the course assessment methods.

Assessment methods

The examination consists of two parts:

i) a verification of knowledge of the theoretical and practical aspects of the discipline, carried out by a written test;

ii) optionally, a subsequent verification of the student's practical skills and design skills and ability of autonomous deepen and learning, through the development of a project, concluded by a discussion, on the job, with the teacher;

The project is carried out in small groups of no more than 4 people. Assignment of projects is only made after all the members of the group have passed the theoretical/practical test with a sufficient vote greater or equal to 27/30.

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

The theoretical/practical verification allows the student to reach a maximum vote of 30/30 with Laude. The project is strictly optional and allows to gain a vote ranging between -3 and +3, to be added to the vote of the theoretical/practical test.

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 or to ask for the project to be carried out. In case of project request, the student has 4 months to  i) ask the teacher for agree on the project assignment, ii) develop the project, iii) discusses the developed project with the teacher.

The project development is carried out in the same working environment as that used for the lab activities.

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

http://www.cs.unibo.it/~ghini/didattica/systemsintegration/index.html

Office hours

See the website of Vittorio Ghini

See the website of Ciro Barbone

See the website of Enrico Fiumana