« Selon que notre idée est plus ou moins obscure, L'expression la suit, ou moins nette, ou plus pure. Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément. » - Nicolas Boileau.
Cette citation ne saurait mieux décrire la volonté de dénomination, par des sigles ou des termes, des ténors de l’informatique dans l’optique de vulgariser la technicité de leur métier. L’informatique est par nature complexe, de surcroît en constante évolution et, afin de la rendre plus claire au plus grand nombre, de nombreux concepts font régulièrement leur apparition, englobant des ensembles de techniques, technologies ou approches qui peuvent parfois s’avérer révolutionnaires.
L’ambient intelligence se définit comme la capacité à proposer aux individus un environnement interconnecté et communiquant à forte valeur ajoutée. Se faisant, l’homme ne serait plus un simple utilisateur d’outils ou d’objets, mais ferait lui-même partie intégrante d’un système beaucoup plus grand où tout interagit.
Plus simplement dit, il s’agit d’apporter des capacités de connexion et communication aux objets afin qu’ils puissent transférer de l’information, en collecter ou bien encore l’analyser. Si tous ces objets communiquent entre eux, internet devient « everywhere », omniscient, omnipotent ; l’environnement ambient devient de facto plus intelligent puisqu’il peut s’adapter à un contexte. Cet internet d’objets, cet IoT (Internet Of Things), regorge de cas d’utilisation qui n’ont de limite que l’imagination. Un réfrigérateur qui commande automatiquement sur internet lorsque des produits viennent à manquer, ou mieux, en fonction de votre activité physique, de votre poids car vous avez une montre/bracelet ou balance connecté. Autre exemple, une voiture qui se réchauffe toute seule lorsque vous ouvrez le placard à manteaux, des panneaux de limitation de vitesse qui s’adaptent en fonction du nombre de voitures sur la route et de la météo afin de fluidifier le trafic. Tout est imaginable.
L’ambient intelligence est adaptative et contextuelle pour celui qui se retrouve plongé dans un tel environnement : tout lui semble immédiat, local et dédié. Le concept va néanmoins encore plus loin. Tous ces objets connectés vont drainer et traiter énormément d’informations. Ces informations, plutôt qu’être éphémères, peuvent, si elles sont stockées, consolidées, traitées et agrégées, être utilisées à des fins d’études et analyses. Savoir le comportement d’une population, prévoir des pics de consommation d’énergie, ajuster les besoins de production ; optimiser, classifier, quantifier voici ce qui sera possible, et ce avec deux concepts connexes : le big data et le machine learning.
Le Big Data regroupe toutes les technologies mises en œuvre pour stocker un volume colossal de données. Ce concept représente in fine ce qui a été initié par les géants du web ; Google, Amazon, Facebook, Twitter, LinkedIn, pour ne citer qu’eux ; afin de gérer des informations à l’échelle planétaire. Précurseurs en ce domaine, ces acteurs ont créé des systèmes de fichiers, des bases de données et outils d’analyse capables de traiter ce que nul n’avait fait avant eux : des millions, et parfois plus du milliard, d’utilisateurs.
Le Big Data s’avère donc essentiel si l’on prévoit de collecter les données d’une pléthore d’objets connectés à l’échelle de la planète. Mais ces données brutes ne serviraient pas à grand-chose prises esseulées et sans adjonction de sens. Ce sens, c’est à des analystes, spécialistes de l’analyse de bases de données à grande échelle ; on parle désormais de data scientists ; de le faire. On attend d’eux l’information porteuse de sens, la donnée à forte valeur ajoutée, ce que l’on dénomme la Smart Data. Pour la petite histoire, le terme de « smart », se retrouve désormais dans d’autres dénominations de l’ambient intelligence. La « smart city », pour les villes intelligentes capables de gérer leur consommation d’énergie, prévoir des catastrophes naturelles, optimiser ses services en fonction de la population. On parle également de « smart grid », pour des réseaux d’acheminement intelligents d’acheminement de l’électricité. En rendant les compteurs électriques domestiques plus malins ; l’électricité ne se stockant pas ; on peut optimiser la production électrique, réduisant les problèmes de pollution, mais également les coûts et donc les prix facturés aux clients finaux. Nous sommes à l’heure du « smart », qu’on se le dise.
Le Machine Learning est une approche informatique, mathématique et statistique qui permet à une machine d’apprendre. Sur le principe, on initie le système avec des capacités de base ; savoir regrouper, décorréler, quantifier ; capacités qui s’affineront avec le temps tant automatiquement qu’avec des aides humaines. Le Machine Learning permet à vos Smartphones de comprendre ce que vous leur dites lorsque vous leur parler, c'est lui qui permet de reconnaître des personnes par leur visage ou améliore le comportement de la machine dans les jeux vidéos.
L'avenir sera donc neuronal. Un neurone se définit comme une cellule spécialisée dans la communication et traitement de l'information afin de la faire circuler. Elle réagit à des stimulus extérieurs. L'avenir sera aussi synaptique, les synapses étant des zones de contact fonctionnel entre des neurones. Le terme d'Ambient Intelligence est donc très bien choisi et fut même mis à l'honneur la semaine dernière au palais des congrès par Microsoft lors de ses "Techdays". Nous en parlions dans un précédent article (Les Techdays 2015 : venez voir le futur) et nous n'avons pas été déçu. Tout est structuré chez l'éditeur, ses partenaires mais aussi ses concurrents par accueillir cette révolution.
Voici maintenant une vision plus hardcore des choses.
L’ambient Intelligence regroupe tous les protocoles permettant de communiquer entre des objets à proximité. En l’état, l’IoT fait face à des protocoles concurrents et non normalisés. Souvent par ondes radios ; on parle de RFID dont le NFC est l’un des plus connus ; comme ZigBee ou bien encore Z-Wave. Les rayons d’action sont faibles, les protocoles lents mais la fiabilité est bonne. Le maillage d’objet obtenu est efficace pour former le PAN, le Personnal Area Network.
Autres concurrents, et non des moindres, 6LoWPAN, qui se base sur IPv6 ; mais il y a aussi Wi-FI Direct, Bluetooth Smart (tiens donc, « smart »).
Les données récoltées par les objets connectés sont si nombreuses qu’elles nécessitent du Big Data ; le concept relatif au stockage et traitement de données volumineuses. Plusieurs technologies s’affrontent. L’une des plus connues, Hadoop, étaient d’abord liée au stockage, proposant un File System distribué tolérant aux pannes à l’image de GFS, le File System de Google dont il s’est inspiré.
Le traitement de données conséquentes exige par ailleurs des algorithmes spéciaux, souvent sous forme de jobs, c’est-à-dire des batchs, dont l’un des plus connus est le MapReduce : découper une tâche en plusieurs sous-tâches et déléguer le traitement à plusieurs nœuds avant de le consolider pour obtenir un résultat. HDFS et GFS stockent bien mais les fonctionnalités ne sont pas suffisantes. De nouvelles techniques d’interrogation et de nouvelles bases de données sont ainsi nées sous l’égide du NoSQL (Not Only SQL). Finie l’interrogation classique des bases (le SQL), place à des technologies dédiées au traitement de masse.
Sur Hadoop, on a droit à Hive ou Pig pour interroger les données, et HBase en tant que base de données orientée colonne. Côté Google, on parle de BigTable, mais ce n’est pas le seul acteur. Il y a aussi des bases orientées clé/valeur comme Riak, Oracle NoSQL ou Voldemort (LinkedIn), des orientés colonnes, nous en avons cité quelque uns, mais il y en a d’autres comme le célèbre Cassandra, Accumulo ou HyperTable. On peut opter pour des bases de données orientées documents comme MongoDB, Microsoft DocumentDB, CouchDB ou CouchBase ; à moins que l'on ne choisisse des bases orientées graphes comme Neo4j.
Chez Amazon, c’est DynamoDB qui est à l’honneur ; à ne pas confondre avec Dynamo du même acteur, qui est un ensemble de techniques pour le traitement réparti. Vous nous suivez encore ?
Pour récupérer les données ou les transformer en smart data, les jobs étant trop lents, nous avons droit à des technologies qui travaillent en mémoire en format Stream ou bien encore micro batch. Il y a Storm, il y a Spark.
Pour permettre des interrogations plus rapides, on fait des architectures lambdas, décorrélant le traitement en flux de celui du batch : Impala (Analytics SQL) de chez Cloudera, Streams Analytics chez Microsoft mais Storm ou Spark font aussi très bien l'affaire avec des connecteurs adéquats.
Pour l’ambient intelligence, il peut être utile de collecter les flux d’un côté et d’effectuer les traitements de l’autre : Apache Kafka ou bien encore Azure Event Hubs ; mais cela peut-être réalisé par d'autres, le protocole AMQP étant souvent mis en avant.
Enfin, il y a le Machine Learning, souvent compatible avec le langage R dédié au statisticien mais pas que. Plusieurs choix, Apache Mahout, Google Prediction API, Amazon Prediction IO,Microsoft Machine Learning, HP Haven Predictive Analytics, etc.