Enabling Things to Talk: Designing IoT solutions with the IoT Architectural Reference Model