machine learning est une des technologies les plus prometteuses pour réaliser des décisions adaptées tant au niveau de l’objet individuel que du parc collectif. L’IoT étant notamment “centré sur les données” il est naturel de travailler les données (sans préjugé de modélisation) pour extraire des stratégies de conduite.
La démarche traditionnelle cartésienne fonctionne sur des “modèles” qui représentent le fonctionnement du système (par exemple un modèle mathématique qui prévoit la consommation d’électricité en fonction de la météo); Dans le machine learning, on cherche des correspondances sans modèle a priori basé sur un grand nombre d’observations. Ceci est typiquement applicable à l’IoT : un foisonnement de comportements individuels donne au total un comportement global, peu explicable, mais observable et analysable en machine learning. Les applications de cette approche sont nombreuses dans le domaine médical et le Quantified self. La détection de pathologies est réalisée par les relevés comportementaux des patients et leurs constantes physiologiques (age, glycémie, pou, pression artérielle, masse osseuse…). On évalue alors rapidement une situation critique sur un individu par l’observation de ses constantes.
Tout paraît donc possible, les objets étant des pourvoyeurs d’information sans limite. Malheureusement, leur richesse fonctionnelle doit être ajustée à ce que l’on souhaite faire et au prix de l’objet et des services associés. Trouver cet équilibre économique est une réelle expertise.
Le besoin de temps réel est toujours plus présent. La raison en est simple : aller plus vite dans les décisions permet au mieux de prendre la bonne option immédiatement, ou au pire de pouvoir redresser la barre rapidement. Alors que le métier se satisfaisait de statistiques a postériori (pattern BI), aujourd’hui l’interaction temps réel est nécessaire pour accrocher, satisfaire et fidéliser le client. La logistique, le commerce électronique, l’industrie sont confrontés à une demande d’accélération et de réactivité des flux d’information.
Les objets connectés, étant à l’avant-poste pour capter les informations réelles, déversent donc massivement et à grand débit les informations dans les sites centraux de décision.
Nous constatons que les systèmes traditionnels ne suivent plus en termes de performance et d'évolutivité (base de données relationnelles, serveurs d’application, systèmes scalables verticalement…).
Les exemples sont nombreux : compteurs de fluide intelligents, suivi logistique RFID, suivi de constantes physiologiques de patients, suivi d’objets circulants (containers, colis…).
Gros volumes d’événements, réactivité, règles de décision, trois patterns s’imposent :
De plus toutes les techniques de conception de la performance sont largement utilisées en IoT.
Le pattern CQRS sépare le canal d’alimentation des données du canal de requête.
Source : http://martinfowler.com/bliki/CQRS.html
Ainsi, les deux canaux peuvent disposer de caractéristiques et de cycles de vie indépendants et rendre la conception et la maintenance du système plus flexible. En entrée, les événements envoyés par les objets atteignent un débit très important (10.000 messages par seconde étant couramment observé dans le monde logistique par exemple). Le canal d’entrée ne doit en aucun cas être perturbé par l’usage des données engendrées. Du coté usage, les consommateurs sont le machine learning et les requêtes type BI.
L’IoT étant très tourné vers l’événement, le Complex Event Processing est largement utilisé.
L’utilisation qu’en fait l’IoT est tout à fait classique : comme la réaction à des événements particuliers (alarme déclenchée), mais aussi l’absence d’événements (non réaction d’un capteur toutefois attendue), la corrélation d’événements (le radiateur est allumé mais la température baisse…) A ne pas confondre avec le machine learning qui lui s’entraine sur les données pour ajuster des algorithmes de décision, le CEP lui peut être basé sur des règles programmées issues de modèles a priori.
Les temps de réponse attendus dans le monde de l’IoT sont très variables : de la seconde (alarmes) à l’heure (mesure de température) sont les valeurs les plus couramment rencontrées.
Une fois les données “refroidies” (plus susceptibles d’être modifiées) elles entrent dans une stockage adapté : Les solutions big data sont utilisées, Hadoop/Spark étant celles les plus utilisées dans le monde IoT. Les analyses a postériori peuvent alors commencer sur ces données historiques.
Une fois la décision prise, se pose la question d’envoyer la commande à l’objet capable d’agir (contacteur, variateur…). Il s’agit essentiellement d’une problématique du choix du canal de télécommunication descendant : quelle latence et débit nécessaire; quelle qualité de service de livraison (acquittement ou pas). Des solutions bas débit comme SIGFOX peut parfaitement convenir si la latence tolérée est forte, un canal Internet classique de révèle indispensable en cas d’action quasi temps réel.
On voit donc se dessiner un ensemble de fonctionnalités récurrentes dans le monde de l'IoT. Ces fonctions sont de l'ordre de la mesure, des télécommunications, de l'analyse des données, de la data science, du traitement temps réel des événements, du stockage de masse...
On sent bien que l'on peut constituer des plates-formes "génériques" qui peuvent s’instancier sur des cas métiers différents. Le pari est d'être capable de concevoir un système que l'on pourra paramétrer/compléter pour réaliser un système d'IoT complet orienté vers un usage donné. C'est tout l'enjeu du marché des plates-formes IoT.
Ainsi une même plate-forme (socle) pourrait être instanciée aussi bien pour une entreprise de logistique qui remonte et traite des informations des capteurs de ses camions, que d'un constructeur de radiateur qui réalise des fonctions d'optimisation d'énergie domestique. La promesse est donc : "La plate-forme IoT vous permet de construire l'offre métier IoT sans vous perdre dans un dédale de technologies et de problèmes techniques". Cette promesse est elle réaliste ? Nous allons tenter de répondre à cette question !
La conception d’une architecture IoT doit aborder les thématiques vues plus haut dans une vision holistique.
Cependant, toutes les entreprises n’ont pas la volonté et/ou la capacité à concevoir leur système d’IoT en interne. Chez OCTO, nous disposons de l’expertise de conception des plateformes IoT. Décoder les capacités de ces plates-formes est essentiel pour faire le choix adapté au projet IoT de l’entreprise.
Une représentation simplifiée va nous permettre d’analyser les offres:
La partie 2 de cet article va présenter l'analyse des offres commerciales sur ce modèle d’architecture type.
La figure suivante présente des offres majeures du marché. Elles sont très nombreuses et variées.
L'entreprise est donc confrontée à une foison d'offres qu'il convient de décoder et de choisir en fonction des objets et des services métier que l'on veut offrir.
Nous avons vu que les services d'IoT reposent sur des capacités de télécommunication (transport local/distant), d'analyse et de décision (calcul, data science, machine learning...), de réactivité temporelle (CEP) et de transmission d'actions. Ces capacités sont réalisables par des solutions et technologies très variées qui doivent être intégrées. Cette intégration est complexe et est menée par des architectes IoT. Les entreprises souhaitant se concentrer sur leur métier peuvent bénéficier de plates-formes IoT qui intègrent tout ou partie des capacités présentées ici. De nombreuses offres commerciales SaaS de plates-formes IoT sont disponibles mais il faut être capable de sélectionner celle la mieux adaptée au projet IoT de l'entreprise. La partie 2 de cet article va se concentrer sur ce dernier point.