Che cos’è Flow: automazione visuale e IoT con i FlowStream
Flow (totaljs/flow, versione 11.1 al momento della scrittura) è l’applicazione principale della famiglia Total.js per la programmazione visuale. Disegni un diagramma nel browser: ogni riquadro è un componente, le linee tra loro portano messaggi e il diagramma è un FlowStream. Flow conserva molti FlowStream, esegue ciascuno e ti offre l’editor, il monitoraggio e un’API per gestirli.
È un’applicazione Total.js 5 con licenza MIT e non ha bisogno di un database: tutto vive in due cartelle dell’applicazione (vedi installazione e primo avvio).
Cosa ottieni
- Un editor visuale nel browser (la rotta
/designer/) con una libreria di componenti, il readme di ogni componente, una console, le variabili del flusso e la modalità scura. - Molti FlowStream indipendenti in un’unica installazione, ciascuno con nome, icona, colore, gruppo, autore, versione e note. Per impostazione predefinita ogni flusso gira nel proprio processo Node.js (
flowstream_worker: forknel fileconfig), così un flusso che si blocca non trascina gli altri e Flow lo riavvia. - Componenti come semplici file. Un componente è un file HTML con una parte Node.js, il suo modulo di impostazioni e il suo design (vedi scrivere un componente). Il catalogo ufficiale è il repository
flowstreamcomponents. - Ingressi verso il mondo esterno: un flusso può pubblicare rotte HTTP sotto un proprio
proxypath, ricevere chiamate su/notify/{id}/e comunicare via WebSocket. - Importazione ed esportazione di un flusso come un unico file JSON, pausa, riavvio, statistiche e un backup del database dei flussi.
- Accesso con login e password generati, oppure tramite OpenPlatform quando installi Flow come una delle sue app, con i permessi Create Flows e Remove Flows.
- Estensioni: file HTML che copi in una cartella per estendere l’editor.
Dove si colloca
Flow è lo strumento per collegare le cose senza scrivere un server: leggere un sensore, chiamare un’API ogni minuto, trasformare un messaggio, salvarlo, inviare un avviso, rispondere a una richiesta HTTP. Poiché il runtime è il FlowStream di Total.js 5, lo stesso motore può essere incorporato anche nella tua applicazione; Flow è l’applicazione completa che lo circonda.
La famiglia
Flow ha dei parenti in altri repository di github.com/totaljs: lesscode, flowstreamdesigner, flowdesigneroffline, flowdesigner e altri. Esistono come progetti separati; questa sezione documenta solo l’applicazione flow e i suoi componenti.