single.php

Аннотация

Node-RED, и Corezoid — эффективные low code инструменты и среды визуального программирования, которые значительно упрощающие работу разработчика. Их сравнение показывает, что Node-RED имеет ряд очевидных преимуществ, которые делают его более выгодным в долгосрочной перспективе. Основные преимущества: это бесплатно, на Udemy можно посмотреть более 6000 обучающих видео для разработчиков с разным уровнем опыта, есть возможность регистрировать код, создавать неограниченное количество сред и выполнять неограниченную масштабируемость в случае необходимости.

Кроме того, Node-RED использует технологию «платформа как услуга», которая очень полезна, поскольку PaaS помогает разрабатывать, запускать и управлять своими приложениями без необходимости формировать и поддерживать инфраструктуру. Кроме того, нет необходимости выполнять обновления программного обеспечения или проводить регулярное техническое обслуживание оборудования. Node-RED предоставляет все необходимые среды для сборки и развертывания проекта. Более того, есть открытая библиотека с готовыми пакетами, а также возможность использовать как SQL, так и не-SQL базы данных.

В заключение, сравнение Node-RED и Corezoid показало, что каждая из этих сред имеет свою специфику, а также преимущества и недостатки, однако Node-RED выглядит более выгодной и гибкой, что позволяет адаптироваться к проектам разного масштаба и сложности.

Зачем это нужно?

Для разработки решений в сфере финансов помимо классических языков программирования таких как Java, Javascript и Python также используются инструменты визуального программирования, что позволяет не только программистам, а также специалистам с менее глубоким знанием языков программирования автоматизировать процессы. На данный момент два самых популярных инструмента это Node-Red и Corezoid. Их мы и рассмотрим.

 

Как это работает?

Node-RED flow: How it looks

Node-RED flow: Как это выглядит

 

Corezoid flow: How it looks

Corezoid flow: Как это выглядит

 

И в Node-Read и в Corezoid разработка происходит в браузерном редакторе где пользователи работают с нодами, выстраивая их в ветки процессов, формируя поток. Нода представляет из себя набор функций, которые выполняют определённые действия и/или проверки. После отработки ноды, на выходе мы получаем заявку – JSON объект который будет направлен в следующую ноду. В какую именно – зависит от результата, полученного в этой ноде и описанной логики. Созданные потоки загружаются в среду выполнения в одно нажатие клавиши.

Также, Обе системы предоставляют возможность писать код в редакторе как альтернативу визуальному программированию.

 

Corezoid это платное решение созданное компанией Middleware, написанное на языке erlang. Имеет более низкий порог вхождения по сравнению со своим конкурентом. Corezoid сразу поставляется с полным набором инструментов для старта работы, что является большим плюсом, так как пользователям не нужно отдельно разворачивать сервер, базу данных и систему очередей – создали пробный аккаунт и можно приступать к работе. В разработке на данной платформе используется stateful подход, при котором данные хранятся в самих нодах. что может вызвать проблемы с обновлением и масштабированием. Как пример – у каждой ноды в Corezoid есть свой идентификатор, и при изменении данного идентификатора данные из этой ноды будут потеряны.

 

Node-RED это Open Source решение созданное компанией IBM и написанное на Node.js. Порог вхождения выше, так как с базами данных, сервером и очередями, а также с тем как их подключить пользователям придется разбираться самим. В Node-RED используется stateless подход при котором все данные хранятся отдельно от программного кода, что является плюсом при масштабировании и обновлениях.

 

Основные ноды 

Проверка условий. Switch (Node-Red)  vs Conditions (Corezoid)

И в Corezoid и в Node-RED существует нода которая позволяет направить заявку по разным веткам процесса в зависимости от выполнения условий. 

В Node-RED  эта нода реализована по аналогии со switch в Javascript. Она сравнивает значение одного и того же параметра.

Node-RED vs Corezoid

Switch node

В Node-red, в отличии от Corezoid, существует возможность создать два асинхронных потока, если значение параметра который мы проверяем соответствует в двух и более проверках.

Node-RED vs Corezoid

Switch node

Node-RED vs Corezoid

Switch node

В Corezoid это нода называется Сonditions и реализована по аналогии с if/else if. В одной ноде возможно сравнивать разные выражения.

Node-RED vs Corezoid

Condition node

Доступна возможно сравнивать на равно, неравно, больше, меньше, использовать регулярные выражения и сравнивать разные типы данных. 

Node-RED vs Corezoid

Condition node

Node-RED vs Corezoid

Condition node

 Обработка http запросов. Http request (Node-Red)  vs API Call (Corezoid)

Еще одна пара часто используемых нод, которые поставляются из коробки – ноды для обработки http запросов. В Node-Red это http request node, в Corezoid – API Call. 

В http request ноду возможно динамически передать все параметры, включая Method, URL, Headers либо объявить их прямо в ноде. 

Node-RED vs Corezoid

Request node

В ответ возможно получать не только JSON объект, но и UTF-8 и binary. В зависимости от того с какими данными мы собрались работать.  

Node-RED vs Corezoid

Request nodes responses

В Corezoid за эту функцию отвечает нода API Call.. Она поддерживает все методы, но в в отличии от Node-RED в ответ возможно получить только JSON.

Node-RED vs Corezoid

API Call node

 

Объявление переменной. Set Parameter (Corezoid) vs Change (Node-Red) 

Set Parameter позволяет добавлять в заявку новые параметры, устанавливать их значения и изменять значения существующих параметров.

Также с помощью этой ноды возможно выполнять функции: 

  • Чтение параметров узла — возвращает значение счетчика заявок в ноде, либо значение параметра из заявки которая хранится в Corezoid.
  • Значения параметров — возвращает значение параметра заявки из указанного процесса (возможен поиск заявок которые хранятся в процессах Corezoid).
  • Время и дата — функции преобразования и форматированияи даты/времени.
  • Математические — возвращают результат математических действий (сложения, вычитания, умножения и деления) констант и/или параметров.
Node-RED vs Corezoid

Set parameter node

 

В Node-RED Change выполняет те же функции что и Set Parameter в Corezoid, а также дает возможность переименовывать и удалять параметр. При установке свойства, значение может быть результатом выражения JSONata (декларативный язык запросов и преобразования с открытым исходным кодом для данных JSON), которое выполняет в том числе и математическую функцию. Плюсом является возможность сохранять/изменять значение параметра в памяти приложения, для обращения к нему многоразово.  

Node-RED vs Corezoid

Change node

 

Ноды выполнения кода. API Code (Corezoid) vs Function (Node Red)

И в Corezoid и в Node-RED есть возможность выполнять код. Corezoid работает с JavaScript и Erlang, посредством ноды API Code.

Node-RED vs Corezoid

Code node

В отличие от Node-RED в котором процесс остановится в случае возникновения ошибки в ноде отвечающей за выполнение кода – в Corezoid возможно установить значение временного интервала, при достижении которого заявка пойдет дальше по процессу в том случае, если нода API Code не отвечает. В Node-RED можно использовать try/catch для обработки ошибок, либо внутри ноды с кодом либо с помощью ноды catch. .

В Node-RED данная нода выполнения кода называется Function и дает возможность работать только с Javascript. Внутри Function можно прописать switch и настроить несколько выходов из этой функции, это помогает существенно сократить количество дополнительных нод и избежать визуального перегруза.

Основным отличием и безоговорочным плюсом Node-RED является возможность поставить любую библиотеку – в Corezoid количество библиотек заранее задано и ограничено. 

Также, в Node-RED возможно выполнять код при старте приложения, и разделять поток на несколько потоков, выполняя действия асинхронно. Это удобно в случаях когда нам нужно выполнить несколько действий параллельно например сохранить имя пользователя в базу данных при этом продолжая двигаться по потоку.

 

Хранение Данных

Плюсом Corezoid — является то что он предоставляет базу данных, все заявки которые поступают в ваш поток — возможно хранить в ноде Callback, к которым после — возможно обращаться через ноду set param (либо API Corezoid) — данные в нодах хранятся в формате JSON. 

В Node-RED возможно хранить данные в памяти приложения, но в случае если оно упадет — данные будут удалены. В памяти зачастую хранится либо кеш либо данные которые записываются при старте приложения.

 

Кастомные Ноды

Так как Node-RED является Open Source решением — он позволяет устанавливать кастомные ноды написанные сторонними разработчиками — Corezoid позволяет использовать только Core ноды. НО у Corezoid существует нода GIT Call которая позволяет подключать и исполнять код из Git-репозиториев. В новой версии разработчики добавили поддержку подключения к приватным репозиториям и расширили список поддерживаемых языков до 5: JS, Python, Go, PHP, Java.

 

Работа с Запросами

В Node-RED можно создавать свои собственные API с помощью нод http-in и http-response — в первой ноде возможно указать эндпоинт на который будут приходить запросы, во второй возможно передавать любой ответ и любой статус код.

В Corezoid такая возможность отсутствует. Запросы в поток пробрасывать всё же можно,  но ответ на них всегда будет с одним и тем же статусом и сообщением. 

В то же время в Corezoid есть возможностью подключать веб-хуки в несколько кликов для всех популярных мессенджеров. Также существует унифицированная бот-платформа, которая позволяет в нескольких кликов создать свой чатбот с текстами, кнопками,  локализациями и логикой, с возможностью подключать их ко всем популярным мессенджерам.

 

Системы Управления Версиями

Последняя тема которую хотелось бы упомянуть это окружения и системы управлениями версиями. 

Для Node-RED доступна работа процесса на нескольких окружениях (например dev, stage, prod) и поддерживает системы распределения версий, такие как Git.

Это позволяет вести разработку локально или в тестовой среде, а также дает возможность откатить версию и вернуть процесс к состоянию когда в него были внесены изменения.

В Corezoid такой возможности нет. Разработка ведется исключительно в одном потоке и откатить изменения невозможно. Вы можете создавать логику в отдельном потоке, а после переносить его в рабочий руками, но это скорее полумера.

 

Итог

И Corezoid и Node-RED это два отличных инструмента визуального программирования. Их основными отличиями являются цена, порог входа и возможность кастомизации.

 

Corezoid подойдет компаниям, которые хотят своими силами и как можно быстрее автоматизировать бизнес процессы. Сотрудники этих компаний быстрее смогут разобраться с продуктом и начать строить первые процессы за счет более низкого порога входа. Минусами является плата за использование продукта, а также недостаточная гибкость инструментов.

 

Node-RED в свою очередь подойдет компаниям которые имеют в запасе профильных специалистов или время, которое будет потрачено на обучение кадров и развертывание среды разработки. Использование Node-RED в долгосрочной перспективе несёт в себе такие бонусы как экономия на ежемесячной плате и более гибкая система и функциональная система. Также не смотря на то что решение является бесплатным — IBM планирует его поддерживать и в будущем.

 

Таблица сравнения основных показателей для наглядного сравнения, а также полезные ссылки:

 

СистемаNode-REDCorezoid
Цена100% бесплатно
(проект с открытым исходным кодом)
Существует бесплатная пробная версия на 30 дней.

Минимальная версия стоит 30 долларов.
Привязка к поставщику решенийНетVendor-lock-in
Кто создалIBM (США)Middleware (США)
Дата запуска16 октября 2013 г. - 0.2.0– v0.14точная дата не найдена
Клиентский портфельSense Tecnic, Agilite, Go-IoT, Spirit, Opto 22 и многие другиеWestern Union, Visa, Mastercard, Viber и многие другие
Качество документацииВысокаяВысокая
Справочный центр и поддержкаЕсть только блог и форумЕсть возможность обращаться в саппорт на почту
Обсуждения сообщества и форумовФорум, активный
Канал команды Slack
Не найдено
Курсы UdemyДа, почти 6 тысяч видеоНет
Стабильные релизыДаДа
Концепция как услугиPaaS (платформа как услуга)SaaS (Программное обеспечение как услуга)
Разнообразие руководств по установкеОбширный список возможностейПростая, бесплатная пробная страница регистрации
Чтобы хостить на своем сервере возможно подать заявку
Поддержка локального копированияДа, документация
Требуется предварительная установка Node.js
Нет
Поддержка NPMДаНет, но есть возможность подключать сторонние репозитории
Облачная средаIBM (Bluemix), AWS, MS-Azure и т. д.AWS, MS-Azure и т. д.
Редактор потоков ВебВеб
Схема цепочек потокаСлева направоСлева направо
Сверху вниз
Уровень удобства интерфейса пользовательского интерфейсаВысокийВысокий
Debug режимДаДа
Возможность логировать кодДаНет
МетаданныеJSONJSON
Нативное логированиеInfo,debug,error + fatal, warn, trace, offInfo,debug,error
API для создания нод и процессовДаДа
Неограниченная масштабируемостьДа (если разработан как stateless приложение)
Обеспечивает неограниченное масштабирование и встроенную устойчивость для обработки пиковых нагрузок.
Нет
Возможность разрабатывать в разных окруженияхДа, возможно создавать неограниченное количество окруженийНет, разработка ведется в одной среде
Поддержка систем управления версиямиДаНет
Управление версиями потокаДа, через встроенный интерфейс GitHubНет
Инструменты импорта/экспортаДа, как весь процесс так и отдельные нодыДа, но только весь процесс целиком
Интеграция баз данныхДа, через библиотеки.
Поддерживаются как SQL, так и no SQL
Нет (только через API либо при подключении репозиториев)
Нативный дашбордДа, но его нужно построить: дашбордДа
Нативная база данныхНет, но можно сохранять данные в память приложенияДа
Поддержка пользовательских нодДаНет
Богатая библиотека с пакетамиДа
Основное преимущество: сообщество всегда публикует различные решения и утилиты Node-RED
Нет
Умение писать кодДа, JavascriptДа, Javascript, Earlang

 

 

 

Добавить комментарий

Ваш адрес email не будет опубликован.

Связаться с нами

Давайте пообщаемся. Укажите Ваши контакты и мы свяжемся в течение 24 часов.