• Course code:63546H
  • Credits:6
  • Semester: summer
  • Contents

Fog computing for smart service

Fog computing can be defined as an umbrella concept that encompasses four different types of technologies: the Internet of Things, Artificial Intelligence, cloud computing and blockchain. It represents the area where these four technologies meet and are made to interact in order to produce many new powerful smart services and applications. In order to deliver dependable and trusted fog applications it is important to focus on improvements of the overall software engineering process in terms of agility, application designs, quality of implementation, operational costs and similar. Most of the involved problems are complex, so it is necessary to reduce the complexity in every step of the way.

Luckily, with the emergence of the DevOps culture and practice, the containerisation of everything, and thus, the ability to use, reuse and repurpose a whole spectrum of AI methods in fog computing applications is already at a touching distance. During this course, at practical level, each student will attempt at understanding the complexities and intricacies involved when developing an elementary smart application.

In the beginning of the course, we shall introduce the main concepts, vision and objectives of fog computing. Particular attention will be paid to the potential use cases, for example, those of Slovenia's smart specialisation programme that pose significant requirements for the integration of IoT, AI, cloud and blockchain based services and applications. The existing designs of various smart services and applications will be discussed. 

While the students contemplate these initial set of lectures, their initial laboratory work will focus on trying out a set of technologies required to build a smart application. The work will begin by trying out Machine Learning (ML) models. The students will be reminded about the requirement to submit a project proposal by the end of the third week. 

The necessity for dynamic information fusion and some advanced approaches towards the realisation of Digital Twins will be discussed in the third week. The laboratory work will extend the initial ML application with a notification functionality. The lecturer will accept and/or agree to the initial project proposals.

The fourth week will focus on the DevOps life-cycle with focus on fog computing applications. During their laboratory work the students will set-up and try out the Fabric8 software engineering tool. We will discuss various approaches to orchestration. In the fifth week, UML-based requirements engineering for concrete computing, memory or network-intensive software utilities will be discussed during the lectures. Edge computing requirements analysis for moving Things (e.g. robots, cars, mobile phones) as opposed to static Things (e.g. homes). The practical work will focus on all the requirements for implementing the ML application and essential UML diagrams will be produced. Further to this, approaches for monitoring applications that may spread across multiple computing tiers will be discussed in the sixth week. Monitoring tools such as Prometheus with Grafana visualisation will be used to try out monitoring of the ML application.

When preparing service components for virtualisation, the software engineer must take into account the possibility to optimise the resulting container or Virtual Machine (VM) image for performance, storage and delivery. Various aspects of this process will be discussed in theory and tried out in the laboratory (e.g. ENTICE image optimisation tools). The students will containerise the ML application and the monitoring system. At the end of the seventh week, the students will present the current status of their project, and will pass a mid-semester milestone. 

The eighth week will be focused on multi-tier (edge-cloud) application designs with the purpose of addressing the non-functional requirements of the application. During their laboratory work, the students will have the ability to compare their existing designs and consider various improvements. They will proceed with their project work. 

The following three weeks (9-11) are devoted to developing and understanding the plethora of AI methods that may be quickly containerised and delivered at the network Edge, the taxonomy of Big Data methods with focus on QoS aspects, and benchmarking methodologies. The laboratory work will focus on achieving QoS monitoring of variants of the ML application.

The final part of the course (12-14) is devoted to blockchain-related concepts, approaches, methodologies and technologies (tokens, Smart Contracts, Smart Oracles) that form part of the fog computing vision. At practical level, the students will attempt at monetising the use of the cloudified ML application by developing and deploying a Solidity based Smart Contract on an Ethereum testnet node.

Finally, we shall conclude by analysing the potential of upcoming new technologies, such as those of the Next Generation Internet initiative of the European Commission. In the laboratory, the students will present the results of their projects to their colleagues and the lecturer.  

  • Study programmes
  • Distribution of hours per semester
laboratory work
  • Professor
Room:R2.47 - Kabinet
Teaching Assistant
Room:R2.42 - Laboratorij LPT
Course Organiser
Room:R2.57 - Kabinet