pensando.itpensando.it
  • Blog
  • In Evidenza
    • Affiliate Marketing
    • Gaming
    • Migliori Negozi Online
    • Tutorial
    • Mondo Apple
    • Recensioni
    • WordPress
    • Fotografia
  • Tecnologia
    • WordPress
    • Template WordPress
    • Plugin WordPress
    • Telegram
    • Node.js
  • Marketing
    • Affiliate Marketing
    • Inbound Marketing
    • Personal Branding
    • SEO
  • Guide
    • Migliori Ecommerce
    • Mondo Apple
    • iPhone
    • Gaming
    • Recensioni
    • Tutorial
  • Contatti
    • Chi Sono
    • Contattami
    • Il Progetto
    • Portfolio
    • Cookie Policy
    • Privacy Policy
youtube pretty blu 300x169 - Come gestire i link affiliati con Pretty Links
Come gestire i link affiliati con Pretty Links
19 Maggio 2022
dove comprare monopattino elettrico 300x200 - I migliori siti dove comprare un monopattino elettrico
I migliori siti dove comprare un monopattino elettrico
10 Maggio 2022
migrare da UA a GA4 con Google Tag Manager  300x200 - Come migrare da UA a GA4 con Google Tag Manager
Come migrare da UA a GA4 con Google Tag Manager
7 Maggio 2022
Facebook Twitter Instagram YouTube LinkedIn Telegram
pensando.itpensando.it
  • Blog
  • In Evidenza
    1. Affiliate Marketing
    2. Gaming
    3. Migliori Negozi Online
    4. Tutorial
    5. Mondo Apple
    6. Recensioni
    7. WordPress
    8. Fotografia
    In Evidenza
    youtube pretty blu 1024x576 - Come gestire i link affiliati con Pretty Links
    Come gestire i link affiliati con Pretty Links
    Di Alessandro De Marchi19 Maggio 20220
    Recenti
    youtube pretty blu 300x169 - Come gestire i link affiliati con Pretty Links
    Come gestire i link affiliati con Pretty Links
    19 Maggio 2022
    dove comprare monopattino elettrico 300x200 - I migliori siti dove comprare un monopattino elettrico
    I migliori siti dove comprare un monopattino elettrico
    10 Maggio 2022
    router con sim 300x169 - Come scegliere un router con sim
    Come scegliere un router con sim
    7 Maggio 2022
  • Tecnologia
    1. WordPress
    2. Template WordPress
    3. Plugin WordPress
    4. Telegram
    5. Node.js
    6. Vedi Tutto
    Rytr La Piattaforma di AI che ti aiuta a scrivere contenuti efficaci 1024x682 - Rytr: La Piattaforma di AI che ti aiuta a scrivere contenuti efficaci
    Rytr: La Piattaforma di AI che ti aiuta a scrivere contenuti efficaci
    7 Maggio 2022
    Come installare wordress in locale su macOs 9 1024x683 - Come installare wordress in locale su macOs
    Come installare wordress in locale su macOs
    22 Dicembre 2021
    wordpress modalita diagnostica 1024x661 - Come attivare la modalità diagnostica su wordpress
    Come attivare la modalità diagnostica su wordpress
    11 Novembre 2021
    bloccare spam contact form 1024x531 - Come fermare lo spam di Contact Form 7 su WordPress
    Come fermare lo spam di Contact Form 7 su WordPress
    11 Novembre 2021
    wordpress modalita diagnostica 1024x661 - Come attivare la modalità diagnostica su wordpress
    Come attivare la modalità diagnostica su wordpress
    11 Novembre 2021
    neve-tema
    Tema Neve WordPress: nuovo look con focus su velocità e performance
    9 Marzo 2022
    Temi professionali per blog wordpress - migliori 5 a confronto
    Temi professionali per wordpress : i migliori a confronto
    29 Luglio 2021
    img Tema Newspaper 8.5 1024x683 - Il nuovo look di pensando.it: focus su novità, articoli e categorie con Newspaper 8.5
    Il nuovo look di pensando.it: focus su novità, articoli e categorie con Newspaper 8.5
    11 Novembre 2021
    youtube pretty blu 450x253 - Come gestire i link affiliati con Pretty Links
    Come gestire i link affiliati con Pretty Links
    19 Maggio 2022
    wordpress modalita diagnostica 1024x661 - Come attivare la modalità diagnostica su wordpress
    Come attivare la modalità diagnostica su wordpress
    11 Novembre 2021
    bloccare spam contact form 1024x531 - Come fermare lo spam di Contact Form 7 su WordPress
    Come fermare lo spam di Contact Form 7 su WordPress
    11 Novembre 2021
    wordpress gutenberg 1024x683 - wordpress gutenberg: tutto quello che c'è da sapere sul nuovo editor di testo
    wordpress gutenberg: tutto quello che c’è da sapere sul nuovo editor di testo
    3 Agosto 2021
    telegram ads 1024x682 - Telegram Ads: Come fare pubblicità con Telegram Promote
    Telegram Ads: Come fare pubblicità con Telegram Promote
    7 Maggio 2022
    Come far crescere un canale Telegram 1024x683 - Come far crescere un canale Telegram
    Come far crescere un canale Telegram
    16 Novembre 2021
    ricerca organica canale telegram
    Come migliorare la ricerca organica di un canale telegram
    9 Marzo 2022
    creare sondaggio canale telegram
    Come creare un sondaggio per un canale telegram
    11 Novembre 2021
    node.js su Heroku in Continuous Integration con gitHub 1024x682 - Deployare un'app node.js su Heroku in Continuous Integration con gitHub
    Deployare un’app node.js su Heroku in Continuous Integration con gitHub
    11 Novembre 2021
    iot system demo 1024x683 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb
    Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb
    21 Maggio 2021
    188H 1024x683 - IoT e Javascript: come creare una piattaforma di “Javascript of Anything”
    IoT e Javascript: come creare una piattaforma di “Javascript of Anything”
    29 Luglio 2021
    tessel vs pi1 - Tessel 2 e Raspberry pi 2 - micro device per IoT a confronto
    Tessel 2 e Raspberry pi 2 – micro device per IoT a confronto
    29 Luglio 2021
    youtube pretty blu 450x253 - Come gestire i link affiliati con Pretty Links
    Come gestire i link affiliati con Pretty Links
    19 Maggio 2022
    migrare da UA a GA4 con Google Tag Manager  450x300 - Come migrare da UA a GA4 con Google Tag Manager
    Come migrare da UA a GA4 con Google Tag Manager
    7 Maggio 2022
    router con sim 450x253 - Come scegliere un router con sim
    Come scegliere un router con sim
    7 Maggio 2022
    youtube ski wifi 2 450x253 - Recensione Sky Wifi: Migrazione Unboxing e Test Fibra
    Recensione Sky Wifi: Migrazione Unboxing e Test Fibra
    7 Maggio 2022
  • Marketing
    1. Affiliate Marketing
    2. Inbound Marketing
    3. Personal Branding
    4. SEO
    5. Vedi Tutto
    youtube pretty blu 450x253 - Come gestire i link affiliati con Pretty Links
    Come gestire i link affiliati con Pretty Links
    19 Maggio 2022
    migrare da UA a GA4 con Google Tag Manager  450x300 - Come migrare da UA a GA4 con Google Tag Manager
    Come migrare da UA a GA4 con Google Tag Manager
    7 Maggio 2022
    affiliazione ebay 1024x683 - Come guadagnare con l'affiliazione Ebay
    Come guadagnare con l’affiliazione Ebay
    12 Febbraio 2022
    Affiliazione Amazon Rimodulazione Commissioni 1024x683 - Affiliazione Amazon: Rimodulazione delle Commissioni Pubblicitarie
    Affiliazione Amazon: Rimodulazione delle Commissioni Pubblicitarie
    11 Novembre 2021
    ebay partner network 1024x682 - Ebay Partner Network: come convertire i link di tracciamento rover
    Ebay Partner Network: come convertire i link di tracciamento rover
    11 Novembre 2021
    come guadagnare con un blog plugin migliori
    Come guadagnare con un blog: i plugin wordpress indispensabili
    29 Aprile 2022
    come diventare blogger
    Come diventare Blogger? Attitudini e Competenze che fanno la differenza
    29 Luglio 2021
    condividere articolo social network 1024x683 - Tutti i trucchi per condividere (efficacemente) un articolo sui social network
    Tutti i trucchi per condividere (efficacemente) un articolo sui social network
    21 Maggio 2021
    cloubhouse - Come funziona Clubhouse
    Come funziona Clubhouse
    11 Novembre 2021
    come guadagnare con un blog plugin migliori
    Come guadagnare con un blog: i plugin wordpress indispensabili
    29 Aprile 2022
    img Tema Newspaper 8.5 1024x683 - Il nuovo look di pensando.it: focus su novità, articoli e categorie con Newspaper 8.5
    Il nuovo look di pensando.it: focus su novità, articoli e categorie con Newspaper 8.5
    11 Novembre 2021
    come diventare blogger
    Come diventare Blogger? Attitudini e Competenze che fanno la differenza
    29 Luglio 2021
    Rytr La Piattaforma di AI che ti aiuta a scrivere contenuti efficaci 1024x682 - Rytr: La Piattaforma di AI che ti aiuta a scrivere contenuti efficaci
    Rytr: La Piattaforma di AI che ti aiuta a scrivere contenuti efficaci
    7 Maggio 2022
    penalizzazioni google
    Penalizzazioni google: cosa sono e come uscirne
    12 Febbraio 2022
    tag HTML importanti per la SEO 1024x574 - I tag HTML importanti per la SEO
    I tag HTML importanti per la SEO
    12 Febbraio 2022
    neve-tema
    Tema Neve WordPress: nuovo look con focus su velocità e performance
    9 Marzo 2022
    migrare da UA a GA4 con Google Tag Manager  450x300 - Come migrare da UA a GA4 con Google Tag Manager
    Come migrare da UA a GA4 con Google Tag Manager
    7 Maggio 2022
    telegram ads 1024x682 - Telegram Ads: Come fare pubblicità con Telegram Promote
    Telegram Ads: Come fare pubblicità con Telegram Promote
    7 Maggio 2022
    Rytr La Piattaforma di AI che ti aiuta a scrivere contenuti efficaci 1024x682 - Rytr: La Piattaforma di AI che ti aiuta a scrivere contenuti efficaci
    Rytr: La Piattaforma di AI che ti aiuta a scrivere contenuti efficaci
    7 Maggio 2022
    Affiliazione Amazon Rimodulazione Commissioni 1024x683 - Affiliazione Amazon: Rimodulazione delle Commissioni Pubblicitarie
    Affiliazione Amazon: Rimodulazione delle Commissioni Pubblicitarie
    11 Novembre 2021
  • Guide
    1. Migliori Ecommerce
    2. Mondo Apple
    3. iPhone
    4. Gaming
    5. Recensioni
    6. Tutorial
    7. Vedi Tutto
    dove comprare monopattino elettrico 450x300 - I migliori siti dove comprare un monopattino elettrico
    I migliori siti dove comprare un monopattino elettrico
    10 Maggio 2022
    comprare iphone a rate 1024x607 - I migliori siti dove comprare iPhone a rate
    I migliori siti dove comprare iPhone a rate
    6 Aprile 2022
    dove-acquistare-ipod-in-offerta
    I migliori siti dove comprare ipod in offerta
    9 Marzo 2022
    mouse gaming per mac 1024x682 - I migliori mouse da gaming per mac
    I migliori mouse da gaming per mac
    2 Febbraio 2022
    comprare iphone a rate 1024x607 - I migliori siti dove comprare iPhone a rate
    I migliori siti dove comprare iPhone a rate
    6 Aprile 2022
    iphone 13 1024x420 - Apple iPhone 13: modelli prezzi e caratteristiche a confronto
    Apple iPhone 13: modelli prezzi e caratteristiche a confronto
    12 Febbraio 2022
    dove-acquistare-ipod-in-offerta
    I migliori siti dove comprare ipod in offerta
    9 Marzo 2022
    migliori-joystick-mac
    I migliori joystick per mac
    2 Febbraio 2022
    comprare iphone a rate 1024x607 - I migliori siti dove comprare iPhone a rate
    I migliori siti dove comprare iPhone a rate
    6 Aprile 2022
    iphone 13 1024x420 - Apple iPhone 13: modelli prezzi e caratteristiche a confronto
    Apple iPhone 13: modelli prezzi e caratteristiche a confronto
    12 Febbraio 2022
    iphone 12 a confronto - Apple iPhone 12: modelli prezzi e caratteristiche a confronto
    Apple iPhone 12: modelli prezzi e caratteristiche a confronto
    2 Febbraio 2022
    cambiare icona instagram iphone - Come cambiare icona Instagram del tuo iPhone
    Come cambiare icona Instagram del tuo iPhone
    21 Maggio 2021
    eneba come funziona
    Eneba come funziona e quali codici sconto offre
    21 Maggio 2021
    mouse gaming per mac 1024x682 - I migliori mouse da gaming per mac
    I migliori mouse da gaming per mac
    2 Febbraio 2022
    migliori-joystick-mac
    I migliori joystick per mac
    2 Febbraio 2022
    creare server minecraft
    Come creare un server minecraft
    2 Agosto 2021
    youtube pretty blu 450x253 - Come gestire i link affiliati con Pretty Links
    Come gestire i link affiliati con Pretty Links
    19 Maggio 2022
    youtube ski wifi 2 450x253 - Recensione Sky Wifi: Migrazione Unboxing e Test Fibra
    Recensione Sky Wifi: Migrazione Unboxing e Test Fibra
    7 Maggio 2022
    Rytr La Piattaforma di AI che ti aiuta a scrivere contenuti efficaci 1024x682 - Rytr: La Piattaforma di AI che ti aiuta a scrivere contenuti efficaci
    Rytr: La Piattaforma di AI che ti aiuta a scrivere contenuti efficaci
    7 Maggio 2022
    iphone 13 1024x420 - Apple iPhone 13: modelli prezzi e caratteristiche a confronto
    Apple iPhone 13: modelli prezzi e caratteristiche a confronto
    12 Febbraio 2022
    youtube pretty blu 450x253 - Come gestire i link affiliati con Pretty Links
    Come gestire i link affiliati con Pretty Links
    19 Maggio 2022
    migrare da UA a GA4 con Google Tag Manager  450x300 - Come migrare da UA a GA4 con Google Tag Manager
    Come migrare da UA a GA4 con Google Tag Manager
    7 Maggio 2022
    router con sim 450x253 - Come scegliere un router con sim
    Come scegliere un router con sim
    7 Maggio 2022
    telegram ads 1024x682 - Telegram Ads: Come fare pubblicità con Telegram Promote
    Telegram Ads: Come fare pubblicità con Telegram Promote
    7 Maggio 2022
    dove comprare monopattino elettrico 450x300 - I migliori siti dove comprare un monopattino elettrico
    I migliori siti dove comprare un monopattino elettrico
    10 Maggio 2022
    filtro pixar 1 - Filtro Pixar: dove trovarlo e come utilizzarlo sui Social
    Filtro Pixar: dove trovarlo e come utilizzarlo sui Social
    8 Luglio 2021
    cloubhouse - Come funziona Clubhouse
    Come funziona Clubhouse
    11 Novembre 2021
    creare sondaggio canale telegram
    Come creare un sondaggio per un canale telegram
    11 Novembre 2021
  • Contatti
    • Chi Sono
    • Contattami
    • Il Progetto
    • Portfolio
    • Cookie Policy
    • Privacy Policy
pensando.itpensando.it

Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

Alessandro De MarchiDi Alessandro De Marchi node.js Aggiornato:21 Maggio 2021Nessun commento10 Minuti di Lettura
Facebook Twitter LinkedIn WhatsApp
iot system demo 1024x683 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

Questo articolo nasce come evoluzione dell'articolo scritto in precedenza su come creare una piattaforma di Javascript of Anything e che ti consiglio di leggere per comprendere bene il contesto.

In pratica nel precedente articolo mi ero concentrato sul disegno di un'architettura interamente basata su node.js, ora invece andrò a sostituire il broker mqtt (mosca server node.js) con un broker di tipo enterprise come Red Hat Jboss Fuse e più nello specifico la componente Apache ActiveMQ, inclusa come modulo dell'ESB stesso.

Utilizzerò inoltre la componente Apache Camel anch'essa inclusa come modulo dell'ESB Fuse per realizzare un semplice EIP (Enterprise Integration Patterns) dedicato all'integrazione tra le topic mqtt (Apache ActiveMQ) e mongoDB (Persistenza Dati)

Le componenti client le ho realizzate in node.js per simulare due generici device ed in HTML5 per simulare due generici browser client anch'essi connessi alla catena delle topic mqtt, attraverso le websocket.

Il mondo che ti circonda è stato costruito da persone che non erano più intelligenti di te. (Steve Jobs)

Click To Tweet

Al termine dell'articolo trovi un video esplicativo su come far funzionare al meglio la demo, ti consiglio di vedere anche il video perché ti farò vedere anche alcuni accorgimenti (trucchetti) legati alla sicurezza dell'architettura che nel tutorial non ho descritto.

I contenuti dell'articolo

  • 1. Componenti Architetturali sistema IoT
    • Topic MQTT
    • client 1
    • client 2
    • webapp 1
    • webapp 2
    • eip 1
  • 2. Prerequisiti funzionamento demo
    • Sistema Operativo 
    • JDK (necessario)
    • maven
    • Red Hat Jboss fuse
    • node.js
    • mongodb
  • 3. Configurazione componenti sistema IoT
    • Red Hat Jboss Fuse
    • mongoDB
  • 4. Download e Configurazione software
    • Scarica il software da gitHub
    • Esegui la build dell'eip con maven
    • Copia il componente web sotto Apache
  • 5. Esecuzione della demo
  • 6. Videotutorial del sistema IoT

1. Componenti Architetturali sistema IoT

Il disegno architetturale completo è quello illustrato in figura

IoT enterpise IoT Arch  - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

L'architettura prevede Red Hat Jboss Fuse come broker centrale e l'utilizzo delle componenti in esso integrate Apache Active MQ ed Apache Camel.

MongoDB come data base noSql per la persistenza dei dati.

Due client sviluppati in node.js per la pubblicazione (e ricezione) di dati tramite topic mqtt

Due webapp sviluppate in HTML5 che sfruttano le websocket per la pubblicazione (e ricezione) di dati tramite topic mqtt

Un client di integrazione (EIP) sviluppato con Spring DSL (Apache Camel) che riceve dati dalle topic e li rende persistenti sia su file che su mongoDB.

Le topic mqtt create per la demo sono quattro:

Topic MQTT

  1. iot.client1.messages
  2. iot.client2.messages
  3. iot.web1.messages
  4. iot.web2.data

Ogni client, incluso il client di integrazione, pubblica e sottoscrive le topic secondo le seguenti regole:

client 1

  • pub: iot.client1.messages
  • sub: iot.client2.messages

5 client1 300x284 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

client 2

  • pub: iot.client2.messages
  • sub: iot.client1.messages

6 client2 222x300 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

webapp 1

  • pub: iot.web1.messages
  • sub: iot.+.messages (ovvero riceve dati da tutte le topic che iniziano con “iot” e terminano con “messages”)

7 webapp 1 296x300 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

webapp 2

  • pub: iot.web2.data
  • sub: iot.# (ovvero riceve dati da tutte le topic)

8 webapp 2 296x300 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

eip 1

  • sub: iot.# (sottoscrive tutte le topic e rende persistente su mongoDB il dato)
  • sub: iot.+.messages (sottoscrive solo dati da topic che iniziano con “iot”, terminano con “messages” e persiste su file)

9 eip 1 to mongodb 139x300 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb   10 eip 1 to file 135x300 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

2. Prerequisiti funzionamento demo

Per il corretto funzionamento della demo è necessario aver installato, sulla propria macchina, le seguenti componenti

FedoraVertical original blue.sh  150x150 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

Sistema Operativo 

Linux è fortemente consigliato anche se non necessario (io utilizzo Fedora 26). La demo può girare anche su macchine Windows o MAC OS.

 

java 150x150 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

JDK (necessario)

Sulla macchina deve essere installata la java virtual machine, consiglio di installare la JDK 1.8.

A questo link maggiori informazioni su come installare la JDK per Fedora.

Il comando per verificare l'installazione è il seguente: java -version

 

apache maven 300x104 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

maven

Consiglio anche di installare maven, per fare la build della componente di integrazione (EIP) con il comando mvn clean install

A questo link maggiori informazioni su maven.

Il comando per verificare l'installazione è il seguente: mvn -version

 

RedHat.svg  300x97 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

Red Hat Jboss fuse

Ovviamente deve essere installato Red Hat Jboss Fuse, a questo link trovi tutte le informazioni su come installarlo sulla tua macchina.

Considera che fuse, sul portale Red Hat, viene fornito come pacchetto .zip

L'installazione è molto semplice, basta scompattarlo in una directory (consiglio di installarlo sotto /opt/jboss-fuse-6.3)

Per la demo utilizzerò fuse in modalità “standalone“, in un ambiente di produzione è fortemente consigliato l'utilizzo di fuse in modalità “fabric” (più info a questo link) e soprattutto è necessaria una sottoscrizione del prodotto.

 

nodejs logo 300x150 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

node.js

Due dei cinque client di test sono stati realizzati in node.js, pertanto è necessario aver installato sulla propria macchina anche node.

Il comando per verificare l'installazione è il seguente: node -v

 

MongoDB Logo 5c3a7405a85675366beb3a5ec4c032348c390b3f142f5e6dddf1d78e2df5cb5c 300x81 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

mongodb

La persistenza è stata implementata con mongoDB, pertanto è necessario installare anche questo dbms noSql sulla macchina target.

A questo link più informazioni su come installare mongoDB su Linux Fedora.

Il comando per verificare l'installazione è il seguente: mongo -version

 

Una volta terminata l'installazione di tutte le componenti necessarie, puoi iniziare a configurare l'ambiente e lanciare la demo.

3. Configurazione componenti sistema IoT

Red Hat Jboss Fuse

Una volta scompattato il prodotto e copiato sotto la directory “/opt/” è necessario abilitare l'utente amministrativo per l'accesso alla console di gestione.

Per abilitare l'utente basta modificare il file:

[InstallDir]/etc/users.properties

cercare la linea

#admin=admin,admin,manager,viewer,Operator, Maintainer, Deployer, Auditor, Administrator, SuperUser

e togliere il commento (#)

Oltre all'abilitazione dell'utente admin è necessario abilitare anche il protocollo mqtt ed il protocollo web socket per Apache Active MQ

Le Web Socket devono essere abilitate perchè l'mqtt utilizzato via browser dal client web (mqtt.js) necessita, per il corretto funzionamento, di questo protocollo attivo sul broker (mqtt over web socket).

Per abilitare i protocolli  basta modificare il file:

[InstallDir]/etc/activemq.xml

cercare la linea

<transportConnector name="openwire" uri="tcp://${bindAddress}:${bindPort}"/>

ed aggiungere anche i connettori per l'mqtt (1883) e per le web socket (61614)

<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883"/>
<transportConnector name="websocket" uri="ws://0.0.0.0:61614"/>

Inoltre aggiungere subito dopo il tag

</transportConnectors>

Il seguente codice xml, per l'abilitazione di un utente generico all'accesso delle topic

<plugins>      
   <simpleAuthenticationPlugin>                
      <users>                        
        <authenticationUser username="system" password="manager" groups="users,admins"/>                
      </users>        
    </simpleAuthenticationPlugin>
</plugins>

Dopo aver abilitato i protocolli mqtt e ws devi lanciare red hat jboss fuse da riga di comando.

Accedi alla directory [InstallDir]/bin/

e lancia il comando

./fuse

Attendi la corretta esecuzione del programma

1 fuse karaf 1024x653 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

al termine avrai la console Karaf di fuse attiva.

2 fuse command line - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

Ora devi abilitare le features che verranno utilizzate dal client EIP (Apache Camel) per la persistenza del dato su mongoDB e su file da topic mqtt.

Dalla console Karaf lancia i seguenti comandi

features:install camel-mongodb
features:install camel-mqtt

La configurazione di fuse è terminata, puoi chiudere tutto con il comando

exit

da console karaf.

mongoDB

In relazione a mongoDB, per il corretto funzionamento della demo, è necessario procedere con la creazione di un utente di test, lo stesso utente che poi verrà utilizzato dalla componente client EIP che si occupa della persistenza dei dati.

Lanciamo quindi la shell mongo da riga di comando:

mongo

Creiamo il nuovo database test con il comando:

use test

Ed inseriamo il nuovo utente con il comando:

db.createUser({user: "test",pwd: "test",roles: [ "readWrite", "dbAdmin" ]})

In questo mondo l'EIP potrà accedere al data base test dell'istanza mongo localhost usando utenza e password: test/test

L'EIP renderà persistenti le informazioni nella collection iot.

NB: Con mongoDB non è necessario creare le collection (equivalente delle tabelle nei db relazioni) in quanto la collection viene creata a runtime nel momento in cui viene fatta la prima insert.

4. Download e Configurazione software

Scarica il software da gitHub

Il software per eseguire la demo lo trovi sul mio account gitHub al seguente link:

https://github.com/etrusco74/iot

Non devi far altro creare una directory sul tuo pc

mkdir iot-demo

accedere alla directory

cd iot-demo

e scaricare il codice con i comandi:

git init
git clone https://github.com/etrusco74/iot.git

Al termine del download troverai la seguente struttura di directory

iot dir - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

  • camel-iot-mongo -> componente di integrazione (EIP) per fuse (Apache Camel)
  • iot-client -> primo client node.js
  • iot-client-2 -> secondo client node.js
  • iot-server -> componente server mosca (node.js) non oggetto della seguente demo
  • iot-web -> componenti client web

prima di avviare la demo dovrai fare le seguenti operazioni:

Esegui la build dell'eip con maven

accedi alla directory “camel-iot-mongo” e lancia la build maven con il comando

mvn clean install

Se tutto andrà per il verso giusto nella directory target troverai il seguenti jar

camel-iot-mongo-1.0.0-SNAPSHOT.jar

Copia il componente web sotto Apache

A questo punto devi solo copiare la componente HTML (iot-web) nella web root di Apache, con il comando:

sudo cp -r iot-web /var/www/html/

E' importante che Apache sia installato ed avviato, se non sai come fare segui questo link.

5. Esecuzione della demo

Se arrivato a questo punto? Hai fatto tutto che ti ho elencato?

Allora sei pronto per lanciare la demo, prima però che ne dici di lasciarmi un like?

Perfetto, andiamo avanti.

Come prima cosa accedi alla directory di installazione di Red Hat Jboss fuse [InstallDir]/bin/

e lancia il comando

./fuse

Attendi la corretta esecuzione del programma, poi lancia la console web amministrativa (hawtio) di fuse al link:

http://localhost:8181

Inserisci utenza e password ed accedi

fuse login 300x134 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

Verifica che sia attivo il tab “ActiveMQ”

A questo punto inizia a lanciare i vari client, sia node.js che web, con i seguenti comandi:

cd iot-demo/iot/iot-client
node server.js

Apri un nuovo tab ed esegui i seguenti comandi:

cd iot-demo/iot/iot-client-2
node server.js

I due client inizieranno a scambiarsi informazioni.

A questo punto apri due nuovi tab del sul browser e lancia le seguenti pagine:

http://localhost/iot-web/index1.html

http://localhost/iot-web/index2.html

Tutti e quattro i client inizieranno a scambiarsi informazioni secondo le regole di sottoscrizione e pubblicazione descritte sopra.

Ora accedi alla console di fuse e verifica che effettivamente il broker stia funzionando, dal tab ActiveMQ:

fuse acrivemq 1024x188 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

A questo punto manca solo di deployare l'EIP per attivare la persistenza su mongoDB.

Accedi alla folder

cd iot-demo/iot//camel-iot-mongo/target

e copia il file camel-iot-mongo-1.0.0-SNAPSHOT.jar nella directory dei deploy di fuse:

cp camel-iot-mongo-1.0.0-SNAPSHOT.jar /opt/jboss-fuse-6.3.0/deploy/

Mi raccomando, verifica che mongoDB sia attivo prima di fare il deploy.

A questo punto accedi nuovamente alla console web di fuse, troverai un nuovo tab “Camel“, cliccaci e verifica che la rotta sia attiva e funzionante:

fuse camel 255x300 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

Fai un'ultima verifica direttamente per verificare che effettivamente l'EIP stia scrivendo su mongoDB.

Da terminale lancia i seguenti comandi:

mongo
use test
show collections

Dovresti vedere anche la nuova collection iot

mongo collection 300x164 - Come implementare un (semplice) sistema IoT con redhat jboss fuse, node.js e mongodb

verifica che il count incrementi con il comando

db.iot.count()

se lanciando il comando più volte il contatore si incrementa allora la demo sta funzionando correttamente.

Fai un'ultima verifica per vedere che anche la rotta di scrittura file nella directory stia funzionando correttamente.

Da riga di comando accedi alla folder di scrittura dei file:

cd /opt/jboss-fuse-6.3.0/work/out/iot/

digita il comando di listing

ls -la

verifica che ci siano dei file, il contenuto sarà proprio l'informazione inviata da uno dei quattro client periferici.

 

Complimenti, hai fatto tutto bene!

6. Videotutorial del sistema IoT

Se invece preferisci un video che ti faccia vedere passo passo come eseguire la demo del sistema IoT, allora mettiti comodo e premi play.

Nel video descrivo i passi:

  • 3. Configurazione delle componenti del sistema IoT
  • 4. Download e Configurazione del software
  • 5. Esecuzione della demo

mentre presumo tu abbia già configurato la macchina con i prerequisiti richiesti al par. “2. Prerequisiti per il funzionamento della demo”

Durante il video ti farò vedere anche alcuni accorgimenti legati alla sicurezza che nel tutorial non ho descritto!

 

Che te ne pare di questa architettura?  Conosci altri modi per implementare un semplice sistema IoT? Raccontami tutto nei commenti!

ad apache camel camel fedora iot linux maven mongoDB node.js red hat red hat jboss fuse tech tecnologia
Condividi. Facebook Twitter LinkedIn Email Telegram WhatsApp
Precedente ArticolotrovaReflex.it: il motore di ricerca italiano per materiale fotografico digitale ed analogico
Prossimo Articolo TrovaRegaloDonna.it: il motore di ricerca italiano per idee regalo da donna
Alessandro De Marchi
  • Website

Ciao, sono Alessandro De Marchi e questo è il mio blog. Solution Architect, blogger e full stack developer. Amo raccontare ciò che so e grazie alla mia esperienza posso aiutarti a migliorare su Tecnologia e Programmazione web, Blogging e Wordpress, SEO, web ed affiliate marketing. Adoro mia moglie, le mie due figlie, fare la pizza e questo blog.

Potrebbe Interessarti Anche

youtube pretty blu 450x253 - Come gestire i link affiliati con Pretty Links

Come gestire i link affiliati con Pretty Links

migrare da UA a GA4 con Google Tag Manager  450x300 - Come migrare da UA a GA4 con Google Tag Manager

Come migrare da UA a GA4 con Google Tag Manager

router con sim 450x253 - Come scegliere un router con sim

Come scegliere un router con sim

youtube ski wifi 2 450x253 - Recensione Sky Wifi: Migrazione Unboxing e Test Fibra

Recensione Sky Wifi: Migrazione Unboxing e Test Fibra

iliad fibra 1024x670 - Iliad Fibra fino a 5 Gigabit a 15.99 euro/mese

Iliad Fibra fino a 5 Gigabit a 15.99 euro/mese

telegram ads 1024x682 - Telegram Ads: Come fare pubblicità con Telegram Promote

Telegram Ads: Come fare pubblicità con Telegram Promote

Lascia un commento Cancella Risposta

Ti serve una Consulenza?
Se ti serve una consulenza fissa un appuntamento gratuito di 30 minuti.

Potremo conoscerci meglio e verificare come collaborare!

FISSA UN APPUNTAMENTO
Seguimi sui Social
Linkedin Telegram Facebook Twitter Youtube Instagram
Offerte su Telegram
🔥 Accedi al mio canale telegram dedicato alle migliori offerte tech del momento telegram

Iscriviti alla mia Newsletter

Iscriviti alla mia newsletter e rimani sempre aggiornato su tutte le novità tech che pubblico sul blog

Da Non Perdere
dove acquistare ipad rigenerati Articoli in Evidenza
I migliori siti dove comprare iPad ricondizionati
Di Alessandro De Marchi23 Febbraio 20224

Devi cambiare iPad? L’ultimo modello costa troppo? Risparmia con un iPad rigenerato, ricondizionato o nuovo in offerta! Classifica 2021 dei migliori ecommerce dove acquistare iPad rigenerati

dove acquistare imac ricondizionati 300x199 - I migliori siti dove comprare iMac ricondizionati

I migliori siti dove comprare iMac ricondizionati

23 Febbraio 2022
Telegram bot

Come gestire un canale telegram usando i bot

16 Febbraio 2022
dove acquistare iphone rigenerati 300x200 - I migliori ecommerce dove acquistare iPhone rigenerati

I migliori ecommerce dove acquistare iPhone rigenerati

13 Aprile 2022
Popolari
dove acquistare apple watch rigenerati
I migliori siti dove comprare Apple Watch ricondizionati
23 Febbraio 2022
iphone nuovi in offerta
I migliori siti dove comprare iPhone nuovi a poco prezzo
6 Aprile 2022
dove acquistare iphone rigenerati 300x200 - I migliori ecommerce dove acquistare iPhone rigenerati
I migliori ecommerce dove acquistare iPhone rigenerati
13 Aprile 2022
Ultimi Articoli
youtube pretty blu 300x169 - Come gestire i link affiliati con Pretty Links
Come gestire i link affiliati con Pretty Links
19 Maggio 2022
dove comprare monopattino elettrico 300x200 - I migliori siti dove comprare un monopattino elettrico
I migliori siti dove comprare un monopattino elettrico
10 Maggio 2022
migrare da UA a GA4 con Google Tag Manager  300x200 - Come migrare da UA a GA4 con Google Tag Manager
Come migrare da UA a GA4 con Google Tag Manager
7 Maggio 2022
router con sim 300x169 - Come scegliere un router con sim
Come scegliere un router con sim
7 Maggio 2022
Ultime novità
Nuovo Apple iPhone 13 Mini, 256GB, Rosa - (Ricondizionato) Apple iPhone 13 Mini, 256GB, Rosa -... 739,99 EUR
Nuovo Apple iPhone 8 Plus, 256GB, Grigio Siderale (Ricondizionato) Apple iPhone 8 Plus, 256GB, Grigio Siderale... 614,89 EUR
Nuovo Apple iPhone 7 Plus, 32 GB, Jet Black (Ricondizionato) Apple iPhone 7 Plus, 32 GB, Jet Black... 333,19 EUR
Bestseller
OffertaBestseller No. 1 Apple iPhone 12 (128GB) - Azzurro Apple iPhone 12 (128GB) - Azzurro 699,00 EUR
Bestseller No. 2 Apple Watch Series 6 GPS + Cellular, Cassa 44 mm in acciaio inossidabile color oro con Cinturino Sport Deep Navy Apple Watch Series 6 GPS + Cellular, Cassa... 635,99 EUR
Bestseller No. 3 Apple TV Apple TV
I più visti di sempre
  • iphone nuovi in offerta I migliori siti dove comprare iPhone nuovi a poco prezzo
  • Le migliori frasi della saga di star wars
  • I migliori ecommerce dove acquistare iPhone rigenerati
  • Pizza di Pasqua dolce: la ricetta originale della Tuscia
  • dove acquistare apple watch rigenerati I migliori siti dove comprare Apple Watch ricondizionati
Chi Sono
Chi Sono

Ciao, sono Alessandro De Marchi e su questo blog parlo di Tecnologia e Programmazione Web, Blogging e Wordpress, SEO, web ed affiliate marketing.

iPhone in Offerta
OffertaBestseller No. 1 Apple iPhone 13 (256GB) - Azzurro Apple iPhone 13 (256GB) - Azzurro 887,00 EUR
OffertaBestseller No. 2 Apple iPhone 12 (128GB) - bianco Apple iPhone 12 (128GB) - bianco 699,00 EUR
OffertaBestseller No. 3 Apple iPhone 11 (128GB) - nero Apple iPhone 11 (128GB) - nero 567,00 EUR
In Evidenza
youtube pretty blu 300x169 - Come gestire i link affiliati con Pretty Links
Come gestire i link affiliati con Pretty Links
19 Maggio 2022
dove comprare monopattino elettrico 300x200 - I migliori siti dove comprare un monopattino elettrico
I migliori siti dove comprare un monopattino elettrico
10 Maggio 2022
router con sim 300x169 - Come scegliere un router con sim
Come scegliere un router con sim
7 Maggio 2022
comprare iphone a rate 300x178 - I migliori siti dove comprare iPhone a rate
I migliori siti dove comprare iPhone a rate
6 Aprile 2022
Facebook Twitter Instagram YouTube LinkedIn Telegram
  • Privacy Policy
  • Cookie Policy
© 2007-2022 pensando.it | made with and by etrusco
linode hosting | P. IVA 02325590566

Digita sopra e premi Enter per cercare. Premi Esc per annullare.