Eclipse ioFog

Auteur: GONTARD Benjamin

Eclipse ioFog est un ensemble de technologies de type "Fog Computing" qui peuvent être installées sur n'importe quel matériel supportant Linux. Le "Fog computing" est une méthode qui consiste à associer des applications et des centres de données, pour traiter les données au plus près des capteurs, et une architecture Cloud classique. Eclipse ioFog fournit un envrionnement d'éxécution pour que des microservices puissent fonctionner "On the Edge", traiter les données au plus près des capteurs. Eclipse ioFog fournit aussi d'autres services, comme des moyens de configuration des microservices, un moyen de débogage à distance ainsi qu'un bus de message haute performance utilisant les technologies REST.

Problématique
Il existe de nombreuses méthodes permettant de créer un logiciel IOT fonctionnant dans le Cloud et pouvant analyser les données récupérées par des capteurs et des appareils. Cependant, il existe peu de solutions permettant de créer des logiciels de type "Edge Computing", c'est à dire des logiciels IOT étant capable de traiter les données relevées par des capteurs au plus près de ces derniers, sans forcément passer par des centres de traitement de données présents dans le Cloud. Le "Edge Computing" permet de minimiser les besoins en bande passante entre les capteurs et les centres de traitement de données. Les coûts de développement et de déploiement de tels logiciels sont importants, en temps et en argent, car il s'agit de logiciels développés de manière traditionnelle (sans framework). ioFog a donc été crée pour palier à ce problème. Son objectif est de faire en sorte que le développement d'un logiciel "Edge computing" ait l'impression d'être similaire à celui d'un développement pour un logiciel IOT fonctionnant sur le Cloud, tout en bénéficiant des avantages apportés par l'"Edge Computing".

Architecture
L'architecture d'ioFog est la suivante :

![Architecture Eclipse ioFog](http://iotracks.com/images/Component_Diagram.png) - Composant ioFog : Un logiciel de type "Fog computing" fournissant d'un environnement d'exécution pour les microservices IOT. - Composant Fog Controller : Un noeud contrôleur "Fog computing" qui fournit les instructions à exécuter aux instances ioFog. Il fournit aussi une API permettant de construire les outils dont les applications "Fog computing" ont besoin pour fonctionner. - Composant ComSat : Un utilitaire d'interconnextion permettant aux instances ioFog de se connecter entre elles, même à travers plusieurs réseaux privés. - Composant ioAuthoring : Une interface pour créer, sauvegarder, éditer et déployers des schémas de microservices appelés "tracks". Il utilise l'API fournie par le composant Fog Controller pour faire son travail. - Un SDK dans plusieurs langages de programmation, permettant aux développeurs de programmer des applications conteneurisées et des micro-services.

Références

 * https://projects.eclipse.org/projects/iot.iofog