Internet of Things (IoT) is a concept which extends the Internet beyond the electronic world. It represents the interface between "conventional" devices of the real world and the internet. IoT raises many challenges:

  1. How to retrieve and store data from the "objects" in homogeneous and generic format?
  2. How to process data and present them in unified format for end-users applications?
  3. How to consider the issues of security and privacy?

Other challenges are linked to the heterogeneity and distribution of data. Despite a wealth of existing technological components, such as sensors and actuators, low consumption networks, cloud solutions (to store and process big data), development and deployment of IoT reliable and secure systems still face many barriers to be overcome.


This course covers the following aspects of IoT:

  1. Sensor layer: Which sensors to use ?
  2. Networking layer: how to transfer data to the computing platform?
  3. Storage and processing layer: how to store data ?
  4. Application Layer: The course will present practical applications from real needs
  5. Security 

This course is taught by professors Nabil Abdennadher (nabil.abdennadher@hes-so.ch), Marcel Graf (marcel.graf@hes-so.ch) and Tewfiq El Maliki‎ (tewfiq.elmaliki@hesge.ch).

The course teaches concepts, principles and architecture of IaaS and PaaS clouds as well as their deployment and implementation environments. At the end of the course, the student will be able to

  • use Infrastructure-as-a-Service and Platform-as-a-Service clouds,
  • understand the APIs that give access to IaaS and PaaS clouds,
  • design cloud-native applications and services,
  • take advantage of cloud characteristics: resources on demand, elasticity, multi-tenancy, metered services, broad network access
  • evaluate the economic, legal and technological opportunities and barriers of cloud computing as well as its intrinsic limitations.

Content:

  • Introduction to cloud computing: definition, principles, service and deployment models
  • OpenStack: architecture, services, usage
  • Hypervisors and software containers
  • Cloud storage: block storage, object storage
  • Cloud networking: Software-Defined Networking
  • Cloud security
  • Cloud Foundry: architecture, services, usage
  • Google App Engine: architecture, services, Datastore, usage
  • Services for persistent data: NoSQL databases and Database-as-a-Service
  • Continuous deployment
  • Cloud-native applications

This module goes in depth on a number of issues that advanced users of cloud computing will face. Adv-Cloud module will deal with these aspects:

  1. Cloud economic models
  2. Portability and interoperability in the Cloud: How to develop portable applications which can be deployed on several cloud infrastructures
  3. Software-as-a-Service
  4. Scaling and elasticity
  5. IT automation and configuration management

Projects will be proposed as part of this module.