Difference between revisions of "Eclipse Kapua"

From air
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 51: Line 51:
 
* Accès internet
 
* Accès internet
   
  +
=== ''' Cloner et lancer Kapua''' ===
== Services proposés ==
 
   
  +
> Cloner le dépôt git de Kapua
Eclipse Kura vise à fournir un conteneur basé sur OSGi pour les applications M2M s’exécutant dans les passerelles de service, il définit un Framework qui offre un ensemble de services communs pour les développeurs participant à des projets IOT.
 
 
<pre>
  +
$ git clone https://github.com/eclipse/kapua
 
</pre>
   
Il fournit un système gérable à distance, intégrant tous les services de base dont les applications ( iot ) ont besoin ainsi qu’une couche d’abstraction simplifiant l’accès au matériel de la passerelle
 
   
  +
> Créez et exécutez Demo Box de Kapua en utilisant le script de démarrage rapide.
* Kura offre également un moyen de connexion à la plateforme d’intégration Cloud, la gestion à distance des systèmes, il met à disposition de l’utilisateur un ensemble d’API lui permettant d’écrire et de déployer son application de manière fiable et simplifiée ce qui permet un gain de temps énorme.
 
 
<pre>
* Il permet notamment la Gestion des différents ports de communication disponibles dans l'IoT (série, USB, Bluetooth, GPS, ...)
 
  +
$ cd ./kapua/dev-tools/src/main/bin
* Il offre un Data Services qui permet la gestion des données pour avoir un reporting comme des statistiques sur les flux et publication à distance.
 
  +
$ ./start-demo.sh
* Configuration Service : via OSGi, permet d'importer / d'exporter la configuration de tous les services enregistrés dans le conteneur.
 
 
</pre>
* Network service : permet de configurez les interfaces réseau disponibles dans la passerelle, comme les modems Ethernet, Wifi et cellulaire.
 
* Watchdog Service : Permet la surveillance des composants critiques et ainsi pouvoir lancer une réinitialisation du matériel en cas de défaillance
 
'
 
Kura propose une interface d'administration Web exécutée dans le conteneur Kura pour gérer la passerelle.
 
   
== Architecture ==
 
   
Kura est une brique parmi tant d'autres dans le monde de l'IoT.
 
   
  +
> Les services suivants sont alors disponbles et s'exécutent:
C'est avant tout un module d'assistance pour la gestion et d'administration des passerelles en IoT.
 
   
  +
[[File:Kapua-run.png|alt=Kapua run]]
Ainsi, on voit que Kura est présent sur plusieurs couches de l'IoT, de l'application aux passerelles IoT.
 
   
  +
> La console d'administration est accessible à l'ardesse: http://localhost:8080/.
[[File:architectureKura.png|alt=Schéma d'architecture logicielle, présentant la place de Kura|Architecture logicielle, là où se situe Kura]]
 
  +
> Pour se connecter:
  +
*Username: kapua-sys
  +
*Password: kapua-password
   
== Versions ==
 
Du 21 octobre 2015 au 29 mars 2018 , Il y a eu 10 versions , la plus récente et la trés attendu version 2.0 qui est sortie le 29 mars 2018 .
 
   
  +
=== ''' Connecter un périphérique Eclipse Kura ''' ===
== Kura Wires ==
 
   
Kura Wires un nouveau outil visuel de gestion de flots de données qui permet de définir des cycles de récupération et de traitement de données en sélectionnant simplement des composants sur une palette graphique et en les connectant les uns aux autres. Par exemple, un capteur de température peut être connecté à une passerelle de service Kura pour publier ses données de température sur une plate-forme cloud assez rapidement
 
   
  +
[[File:kura-device.png|alt=Kura device]]
== Projets utilisant Kura ==
 
   
* [Industrial Equipment Monitoring] https://tobiddev.wordpress.com/
 
* [Vehicle Monitoring] http://diyapps.blogspot.fr/
 
* [Eclipse IoT Challenge Tumbl] http://openiotchallenge.tumblr.com/
 
   
== Liens ==
 
   
=== Comment bien commencer avec Kura ===
+
=== ''' Gérer le périphérique ''' ===
http://wiki.eclipse.org/Kura/Getting_Started
 
   
=== Dépendances ===
 
   
  +
[[File:manage-device.png|alt=manage device]]
Eclipse Kura
 
http://www.eclipse.org/kura/
 
   
OSGi
 
https://www.osgi.org/
 
   
NMEA
 
http://www.gpsinformation.org/dale/nmea.htm
 
   
  +
=== ''' APIs RestFul ''' ===
MQTT
 
http://air.imag.fr/index.php/MQTT
 
   
  +
La documentation de l'API RESTFul est disponible à l'adresse http://localhost:8081/doc/. Le point de montage est quant à lui accessible à l'adresse: http://localhost:8081/v1/
Apache Camel
 
  +
Pour plus d'information: https://github.com/eclipse/kapua
http://camel.apache.org/
 
   
==Getting started==
 
   
Launch the gateway in a [[Docker]] container
 
<pre>
 
docker run --name=kura -d -p 8080:8080 ctron/kura-emulator:3.0.0-RC1
 
</pre>
 
   
  +
=== ''' Le Broker ''' ===
Browse the console http://admin:admin@localhost:8080/kura
 
   
  +
Le conteneur de Broker expose un endpoint Mqtt accessible à l'adresse à tcp://localhost:1883/. Le Broker peut être accessible via Eclipse Kura ou un client Mqtt simple comme, par exemple, Eclipse Paho.
Copy the following routes into the "Camel XML router" section.
 
<pre>
 
<routes
 
xmlns="http://camel.apache.org/schema/spring"
 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 
xsi:schemaLocation="http://camel.apache.org/schema/spring https://camel.apache.org/schema/spring/camel-spring-2.17.3.xsd">
 
 
<route id="camle-kura">
 
<from uri="timer:trigger" />
 
<setBody>
 
<simple>${random(100)}</simple>
 
</setBody>
 
<to uri="stream:out" />
 
</route>
 
</routes>
 
</pre>
 
   
  +
Pour qu'un client établisse une connexion Mqtt avec le Broker, il doit fournir des identifiants valides. Les informations d'identification de l'utilisateur kapua-broker sont les suivantes:
Follow the log
 
  +
*Username: kapua-sys
<pre>
 
  +
*Password: kapua-password
docker logs -f kura
 
</pre>
 
   
  +
> Notes:
  +
*Ne pas utiliser l'identifiant kapua-sys pour établir des connexions Mqtt.
  +
*Si vous utilisez Docker sous Windows, le nom d'hôte ne sera probablement pas localhost mais l'adresse IP de votre instance docker.
   
 
== Liens utiles ==
TODO avec [[CC2541 SensorTag Development Kit]] https://eclipse.github.io/kura/wires/kura-wires-sensortag.html
 
  +
*https://github.com/eclipse/kapua/blob/develop/assembly/README.md
  +
*https://github.com/eclipse/kapua/blob/develop/dev-tools/src/main/vagrant/README.md#demo-machine-quick-start
  +
*https://github.com/eclipse/kapua/blob/develop/docs/developer-guide/en/running.md#openshift
  +
*http://download.eclipse.org/kapua/docs/develop/user-manual/en/
  +
*http://download.eclipse.org/kapua/docs/develop/developer-guide/en/

Latest revision as of 19:14, 9 April 2018

Eclipse Kapua est une plate-forme de cloud IoT modulaire, intégrée et interopérable pour gérer et intégrer les périphériques et leurs données, et fournir une base solide pour les services IoT pour toute application IoT.

Logo Eclipse Kapua
Logo Eclipse Kapua

Histoire

Eclipse Kapua a débuté sous la forme d'un projet d'incubateur open source sous le groupe de travail Eclipse IoT. En octobre 2016, le code source de la première goutte d'Eclipse Kapua a été fourni par Eurotech, en collaboration avec Red Hat.

Description

Eclipse Kapua ™ est une plateforme modulaire fournissant les services requis pour gérer les passerelles IoT et les périphériques intelligents. Kapua fournit un cadre d'intégration de base et un ensemble initial de services IoT de base, notamment un registre de périphériques, des services de gestion des périphériques, des services de messagerie, la gestion des données et l'activation des applications.

Fonctionnement

Eclipse Kapua fournit les services requis pour gérer les passerelles IoT et les périphériques intelligents, à travers un framework d'intégration de base. Il offre un ensemble initial de services pour le registre des périphériques, la gestion des périphériques, le routage des messages, l'intégration des données et l'activation des applications.

L'objectif du projet Eclipse Kapua est de fournir une plate-forme d'intégration IoT basée sur le cloud avec les fonctionnalités de haut niveau suivantes:

  • Gérer la connectivité pour les périphériques IoT et les passerelles IoT à travers un certain nombre de protocoles différents. Le soutien initial sera offert

aux protocoles IoT établis comme MQTT. D'autres protocoles comme AMQP, HTTP et CoAP seront ajoutés au fil du temps. La couche de connectivité est également responsable de la gestion de l'authentification et de l'autorisation des appareils.

  • Gérer les périphériques. La gestion des périphériques offre la possibilité d'inspecter la configuration des périphériques, de mettre à jour les

applications et les microprogrammes des périphériques et de contrôler le périphérique à distance. La plate-forme IoT expose un contrat ouvert vers le périphérique cible géré sans aucune hypothèse sur la pile logicielle de l'appareil.

  • Pipelines de données pour les données provenant de dispositifs IoT collectant de grandes quantités de données de télémétrie. Les pipelines de données peuvent offrir

l'archivage des données pour les tableaux de bord ou les applications de business intelligence, ainsi que l'analyse en temps réel et les règles métier. Une caractéristique importante est la flexibilité et la configurabilité des routes d'intégration de données offrant des options de stockage de données pour collecter les données entrantes et les mettre à la disposition des applications d'entreprise en amont.

  • Gestion de compte multi-utilisateurs, gestion des utilisateurs, permissions et rôles.
  • Entièrement programmable via l'API RESTful. Une console d'administration Web pour un opérateur de périphérique est souhaitable.
  • Déploiement dans le cloud ou sur site, avec son packaging permettant des options de déploiement flexibles.


Architecture

Le diagramme suivant fournit une architecture fonctionnelle du projet Eclipse Kapua:


Archi Kapua

Getting Started

Pré-requis

  • Architecture 64 bits
  • JVM version 8
  • Docker version 1.2+
  • Accès internet

Cloner et lancer Kapua

> Cloner le dépôt git de Kapua

$ git clone https://github.com/eclipse/kapua


> Créez et exécutez Demo Box de Kapua en utilisant le script de démarrage rapide.

$ cd ./kapua/dev-tools/src/main/bin
$ ./start-demo.sh


> Les services suivants sont alors disponbles et s'exécutent:

Kapua run

> La console d'administration est accessible à l'ardesse: http://localhost:8080/. > Pour se connecter:

  • Username: kapua-sys
  • Password: kapua-password


Connecter un périphérique Eclipse Kura

Kura device


Gérer le périphérique

manage device


APIs RestFul

La documentation de l'API RESTFul est disponible à l'adresse http://localhost:8081/doc/. Le point de montage est quant à lui accessible à l'adresse: http://localhost:8081/v1/ Pour plus d'information: https://github.com/eclipse/kapua


Le Broker

Le conteneur de Broker expose un endpoint Mqtt accessible à l'adresse à tcp://localhost:1883/. Le Broker peut être accessible via Eclipse Kura ou un client Mqtt simple comme, par exemple, Eclipse Paho.

Pour qu'un client établisse une connexion Mqtt avec le Broker, il doit fournir des identifiants valides. Les informations d'identification de l'utilisateur kapua-broker sont les suivantes:

  • Username: kapua-sys
  • Password: kapua-password

> Notes:

  • Ne pas utiliser l'identifiant kapua-sys pour établir des connexions Mqtt.
  • Si vous utilisez Docker sous Windows, le nom d'hôte ne sera probablement pas localhost mais l'adresse IP de votre instance docker.

Liens utiles