VT2016 IoT cloud platforms

= Présentation =


 * Sujet : IoT Cloud Platforms
 * Auteur : Yacine NDIAYE
 * Enseignants : Didier DONSEZ, Georges-Pierre BONNEAU



= Mots clés = IoT, developpement platform, Cloud Computing, Temboo, Carriots, IBM Watson, Microsoft Azure IoT, Aws IoT, Ubidots, Kaa

= Résumé = Avec l’explosion de l’internet des objets, de nombreux projets Iot ont vu le jour et on assiste à l’émergence de nombreux développements et solutions Iot. L’internet des objets constitue un ensemble d’objets connectés qui utilisent le réseau comme support pour échanger des données. Ces objets sont divers et peuvent être des cartes (ex : Arduino), des logiciels ou des capteurs. L’existence de ce vaste réseau nécessite une ou plusieurs plateformes qui servent de support. De plus, avec des cartes microprocesseurs comme Arduino ou Raspberry Pi devenus accessibles et bon marché, nombreux ont voulu dans le développement de projets IoT. C’est dans cette lancée que de nombreuses entreprises ont créé des plateformes IoT pour les développeurs ou tout simplement des amateurs qui sont intéressés par des projets IoT.

= Abstract = With the explosion of the internet of things, many Iot projects have emerged and we are witnessing the developments of many Iot solutions. The Internet of Things is a set of connected devices that use the network as a medium for exchanging data. These objects are diverse and are usually boards (eg Arduino), software or sensors. The existence of this vast network requires one or more platforms as a support. Moreover, with IoT boards like Arduino or Raspberry Pi becoming accessible and cheap, many wanted to venture into building IoT projects. It is in this context that many companies have created IoT platforms for developers or people interested in easily building IoT projects.

= Synthèse =

A quoi sert une plateforme Iot ?
Les plateformes IoT permettent aux développeurs mettre en place des projets IoT facilement et rapidement. En général, elles offrent :


 * des SDKs API : pour faciliter les développements


 * des services de stockage de données : permet le stockage des données envoyées de plusieurs cartes par exemple le stockage des données reçues d’un capteur. Du fait de la très forte volumétrie des données mise à disposition par ces objets connectés, le lien avec les solutions Big Data est évident. Les plateformes pallient des problèmes perceptibles dans le 'data mining' en apportant de nouvelles méthodes pour la collecte, l'analyse et l’utilisation efficace de ces données.


 * la gestion d’événements : permet de dire quelle action faire lorsqu’un événement arrive. Ainsi, le workflow des messages d'évènements et des notifications doit fonctionner de façon fluide dans l’internet des objets, donc les plateformes IoT intègrent un ensemble de règles pour prendre en charge les flux de données.


 * l’intégration de services et plateformes : plusieurs plateformes sont capables d’interagir avec d’autres systèmes ou plateformes.

Il existe d’autres services offerts par les plateformes IoT tels que la visualisation de données, la gestion des utilisateurs…

Il est clair que les plateformes IoT n’offrent donc pas les mêmes services. Très souvent lorsqu’on veut développer un projet IoT, on compare les plateformes entre elles pour choisir celle qui correspond le plus à nos besoins. Ce qui nous ramène à la question de savoir comment choisir la plateforme IoT appropriée ?

Composants d'une Plateforme IoT moderne
Selon IoT Analytics, le marché des plateformes IoT devrait atteindre 1 milliard de dollars d’ici 2019. Ce qui explique pourquoi est témoin de la quantité de plateformes IoT qui voient le jour. Ces plateformes sont en effet la clé pour développer des applications IoT scalables qui connectent les mondes réel et virtuel entre les objets, les hommes et les systèmes. Donc avoir une application IoT de qualité dépendrait fortement de la plateforme utilisée.

Toutes les plateformes qui se disent plateformes IoT ne le sont pas en réalité et qu’il est prudent de distinguer les plateformes IoT (IoT Application Enablement Plateform) des autres types de plateformes(du genre PaaS).

On distingue 8 composants dans une plateforme IoT moderne :




 * 1) Connectivité et normalisation : apporte différents protocoles et différents fromats de données en un seul  “software” interface assurant ainsi la transmission correcte des données et l’interaction avec tous les devices.
 * 2) Gestion du matériel : assure que les objets « connectés » marchent correctement en gérant la mise à jour des logiciels et applications tournant sur le device ou sur les passerelles.
 * 3) Base de données : stockage scalable des données du matériel et prise en compte des exigences pour des base de données basées sur le cloud hybrides (volume de données, diversité, véracité).
 * 4) Gestion des actions et processus : exploitation des données avec des règles, événements et actions permettant ainsi l’exécution d’ actions “smart” actions selon les données des capteurs.
 * 5) Analytics: analyse des données allant du clustering de données au machine learning et analyse prédictive pour sélectionner les valeurs les plus pertinentes du flux de données.
 * 6) Visualisation : permettre à l’homme de voir des patterns et observer des tendances et facilement interpréter les données grâce à des diagrammes et modèles.
 * 7) Outils additionnels : facilite le prototypage et le test pour les développeurs IoT, fournit aussi des IoT use cases pour créer des applications adaptés à la plateforme.
 * 8) Interfaces externes: integration avec des systèmes tiers et d’autres plateformes IoT via des API, SDK et passerelles.

Comment choisir la plateforme IoT appropriée ?
Selon la Checklist de IoT Analytics en collaboration avec les clients et les experts dans le domaine de l'IoT, choisir une plateforme pour une solution IoT revient à regarder ces 5 aspects selon nos besoins :





Comparaison de quelques plateformes IoT
Aujourd'hui le marché des plateformes IoT est énorme. Il existe en effet plus de 300 plateformes IoT dans le marché dont les plus célèbres:
 * Amazon Web Services IoT Platform
 * IBM BLUEMIX
 * IBM WATSON
 * CISCO IoT CLOUD CONNECT
 * Microsoft Azure
 * Oracle Integrated Cloud
 * Carriots
 * Kaa
 * ThingWorx ...

Tableau comparatif
Ce tableau compare quelques plateformes.



Introduction d'une plateforme open Source: Kaa Project 2016


Kaa est une plateforme IoT complète open source de 2016 qui permet de développer des applications et solutions IoT.

Utiliser la plateforme Kaa offre plusieurs avantages:


 * C'est une plateforme open source complète


 * Elle est entièrement gratuite
 * Elle est capable de prendre en charge des millions de périphériques connectés à la fois.
 * Permet de faire du prototypage
 * Permet de collecter, analyser, visualiser les données en temps réel
 * Permet la connexion et la gestion de périphérique avec le Cloud
 * Le déploiement peut se faire n'importe où

= Démonstration avec IBM Watson-Bluemix =

La démonstration consiste à montrer une prise en main de la plateforme IBM® Watson™ IoT Platform for Bluemix. Dans cette démo, on va voir comment utiliser son téléphone comme appareil IoT (capteur) et interagir avec la plateforme. Il faut donc:


 * Un compte Bluemix (compte gratuit d'un mois)
 * Un smartphone (Android ou iOs) mais la démo a été faite sous Android

Création d'une application BlueMix
On peut en créant une application traiter, visualiser et stocker les données.

Installation et création de l'application qui va nous permettre de faire la simulation
lien vers le github de l'application starter: ici

On peut après vérifier que les messages sont bien envoyés du smartphone au serveur IoT.

= Sources =


 * [[File:White-paper-IoT-platforms-The-central-backbone-for-the-Internet-of-Things-Nov-2015-vfi5.pdf|iot platforms]]
 * http://www.ibm.com/internet-of-things/iot-solutions/watson-iot-platform/
 * http://www.computerworlduk.com/galleries/data/-of-best-internet-of-things-platforms-3635185/
 * https://iot-analytics.com/5-things-know-about-iot-platform/
 * http://iotfunda.com/top-15-popular-iot-platforms-2016-complete-list/
 * https://www.ibm.com/developerworks/library/iot-mobile-phone-iot-device-bluemix-apps-trs/