Czym jest Flow: wizualna automatyzacja i IoT z FlowStreamami
Flow (totaljs/flow, wersja 11.1 w chwili pisania) to główna aplikacja rodziny Total.js do programowania wizualnego. Rysujesz diagram w przeglądarce: każde pole to komponent, linie między nimi niosą wiadomości, a diagram to FlowStream. Flow przechowuje wiele FlowStreamów, uruchamia każdy z nich i daje edytor, monitoring oraz API do zarządzania nimi.
To aplikacja Total.js 5 na licencji MIT, która nie potrzebuje bazy danych: wszystko znajduje się w dwóch folderach aplikacji (zobacz instalację i pierwsze uruchomienie).
Co dostajesz
- Edytor wizualny w przeglądarce (trasa
/designer/) z biblioteką komponentów, readme każdego komponentu, konsolą, zmiennymi przepływu i trybem ciemnym. - Wiele niezależnych FlowStreamów w jednej instalacji, każdy z nazwą, ikoną, kolorem, grupą, autorem, wersją i notatkami. Domyślnie każdy przepływ działa we własnym procesie Node.js (
flowstream_worker: forkw plikuconfig), więc przepływ, który zawiedzie, nie pociąga za sobą pozostałych, a Flow go restartuje. - Komponenty jako zwykłe pliki. Komponent to jeden plik HTML z częścią Node.js, formularzem ustawień i wyglądem (zobacz napisz komponent). Oficjalnym katalogiem jest repozytorium
flowstreamcomponents. - Wejścia do świata zewnętrznego: przepływ może publikować trasy HTTP pod własnym
proxypath, przyjmować wywołania na/notify/{id}/i komunikować się przez WebSocket. - Import i eksport przepływu jako jednego pliku JSON, pauza, restart, statystyki i kopia zapasowa bazy przepływów.
- Logowanie wygenerowanym loginem i hasłem albo przez OpenPlatform, gdy instalujesz Flow jako jedną z jego aplikacji, z uprawnieniami Create Flows i Remove Flows.
- Rozszerzenia: pliki HTML, które kopiujesz do folderu, aby rozszerzyć edytor.
Gdzie pasuje
Flow to narzędzie do łączenia rzeczy bez pisania serwera: odczytać czujnik, co minutę wywołać API, przekształcić wiadomość, zapisać ją, wysłać alert, odpowiedzieć na żądanie HTTP. Ponieważ środowiskiem uruchomieniowym jest FlowStream z Total.js 5, ten sam silnik można osadzić także we własnej aplikacji; Flow to kompletna aplikacja wokół niego.
Rodzina
Flow ma krewnych w innych repozytoriach github.com/totaljs: lesscode, flowstreamdesigner, flowdesigneroffline, flowdesigner i inne. Istnieją jako osobne projekty; ta sekcja dokumentuje tylko aplikację flow i jej komponenty.