VT2017 EnMasse

=EnMasse=
 * Auteur : Denis Lachartre
 * Enseignants : Didier Donsez et Georges-Pierre Bonneau

=Résumé= Avec l'émergence des technologies de l'IOT, un des défis majeur est de pouvoir faire communiquer des systèmes légers et tous differents. Le service EnMasse apporte une réponse à ce problème. Ce dernier est en effet un service de messagerie (son nom est d'ailleurs dérivé de Message as a service). Il permet la communication grâce aux protocoles MQTT et AMQP. Une des forces d'EnMasse est sa rapidité d'installation puisqu'il peut se déployer sur OpenShift en quelques lignes de commandes. OpenShift offre alors de quoi monitorer entièrement notre système. On peut par exemple augmenter le nombre de dock lié à l'authentification ou encore ajouter un load balancer.

=Abstract= With the emergence of IOT technologies, one of the major challenges is to establish communication between light and all different systems. The EnMasse service provides an answer to this. It is indeed a messaging service (its name is also derived from Message as a service). It allows the communication thanks to the protocols MQTT and AMQP. One of the strengths of EnMasse is speed of installation since it can be deployed on OpenShift in a few command lines. OpenShift then offers what fully monitor our system. For example, it is possible to increase the number of docks linked to the authentication or to add a load balancer.

=Synthèse=

Présentation d'EnMasse
EnMasse est un projet open source de messagerie. Il fourni des services performants et de taille adaptable et peut tourner sur sa propre machine (en local) ou sur un cloud. OpenShift permet le deployement du système et de tout ses microservices, ce qui facilite considérablement la mise en place du projet. EnMasse utilise les protocoles MQTT et AMQP afin d'établir les diverses communications.

MQTT
MQTT est un service de messagerie TCP/IP simple et extrêmement léger dans le sens où des messages de toutes sortes peuvent être transmis. Les messages sont envoyés par des publieurs (les publishers) sur un canal (une chaîne d’information si vous voulez) appelé Topic. Ces messages peuvent être lus par les abonnés (les subscribers). Les Topics (ou les canaux d’informations) peuvent avoir une hiérarchie qui permet de sélectionner finement les informations que l’on désire. Le serveur fait de plus office de traducteur entre les différents systèmes présents.



AMQP
AMQP (pour Advanced Message Queuing Protocol) est un protocole ouvert pour les systèmes de messagerie orientés intergiciel. L'objectif d'AMQP est de standardiser les échanges entre serveurs de messages en se basant sur les principes suivants : orienté message, utilisation de files d'attente, routage (point à point et publish-subscribe), fiabilité et sécurité. Il s’agit grossièrement d’une liste FIFO (First In First Out) dans laquelle sont ajoutés les messages qui seront ensuite redistribués aux différents consommateurs connectés à cette file.



OpenShift
OpenShift est un système développé par Red Hat pour le déployement d'application basé sur docker. Tout le code source est disponible sur GitHub et est disponible sous license Apache et est basé sur les concepts suivant: • Une rapidité d'execution et une facilité a s'adapter à la taille de l'application. • Une console web pour monitorer des parametres comme l'état de chaque micro-services. • Du load balancing, du logging et des metrics automatiques.

=Bibliographie/Webographie=


 * https://github.com/EnMasseProject/enmasse
 * https://github.com/openshift/origin
 * https://blog.guiguiabloc.fr/index.php/2014/11/13/mqtt-faites-communiquer-vos-objets-simplement/