Source: http://www.cs.unibo.it/difelice/iot/iot2.pdf