Loginom: что под «капотом»

8 сентября 2022
0 комментариев

Описание технологического базиса аналитической low-code платформы Loginom: состав, архитектура, реализация фронт- и бэкенда, функционал, производительность. Ответы на наиболее часто задаваемые технические вопросы.

Loginom — low-code платформа для продвинутой аналитики, которая позволяет минимизировать написание кода. Платформа содержит обширный набор инструментов анализа и исследования — от простых математических операций до нейросетей — и позволяет выстраивать сквозной процесс обработки данных: от ETL-процессов до интеллектуального анализа данных и машинного обучения.

Loginom ориентирован на обработку структурированных, т.е. табличных, данных. Благодаря своей высокой производительности платформа может с успехом применяться для обработки больших данных.

Состав платформы

Loginom функционирует как серверное приложение для коллективной работы, либо как настольное приложение для персональной аналитики.

Серверные редакции

Серверные редакции платформы включают следующие компоненты:

  1. Server. Основной обязательный компонент платформы. Предназначен для развертывания во внутренней сети или облаке. Предполагает коллективную работу нескольких пользователей с различных рабочих мест.
  2. Studio. Тонкий клиент — браузер. Клиентское веб-приложение. Предназначен для проектирования сценариев обработки, визуализации данных, настройки сервера, управления правами пользователей. Фактическая обработка данных выполняется Loginom Server.
  3. Integrator. Опциональный компонент платформы, который функционирует в виде приложения для Microsoft IIS и предоставляет возможность публиковать собственные веб-сервисы.
  4. Adapter. Опциональный компонент, который функционирует в виде службы на базе Microsoft IIS, обеспечивает интеграцию Loginom Server с нестандартными веб-сервисами, например, Бюро кредитных историй. Позволяет проводить сложные преобразования для приведения XML-запроса к стандартному виду, который может быть обработан другими компонентами платформы Loginom.

Настольные редакции

Настольные редакции включают единственный компонент — Desktop, имеющий такую же кодовую базу, что и остальные редакции платформы. Подобный подход позволяет охватить все кейсы использования платформы и минимизировать потребность в разработке двух вариантов Loginom для настольного и серверного применения.

Loginom Desktop — это обычное Windows-приложение, выполняемое на компьютере пользователя. В него встроен локальный сервер Loginom для расчетов и Chromium Embedded Framework для отображения пользовательского интерфейса. Доступ к локальной сети или интернету приложению не требуется.

Варианты развертывания

Loginom не накладывает ограничения на способы развертывания. Доступны все варианты:

  • персональный компьютер;
  • серверы предприятия;
  • частное облако (private cloud);
  • публичное облако (public cloud).

Платформа готова для работы в облаке. При наличии документации компании-провайдера Loginom Company подготовит образ для развертывания в любом облаке. Готовый к использованию сервис с оплатой за время работы доступен на платформе Yandex Cloud.

Серверные редакции могут функционировать в контейнерах.

Особенности реализации

Технологический стек

Для разработки платформы используются семь языков программирования: Assembler, C, C++, C#, Pascal, TypeScript, JavaScript. Выбор обоснован требованиями, связанными с обеспечением высокой производительности и экономного расхода оперативной памяти.

Используемые библиотеки: Acorn, ALGLIB, AvlTree TypeScript, Barian Gladman’s AES, Barian Gladman’s SHA, Bauglir WebSocket, CakraCore, CEF4Delphi, Clickhouse c++ client, CodeMirror, DateTimeField, ExtJS, ICU, jsPDF, l4d-Delphi, LIBLEANAR, Log4d, LZ4, MariaDB Connector/C, mbed TLS, Metadata Reflection API, Newtonsoft.Json, Nlog, OpenSSL, PCRE2, Plotly.js, Promise Polyfill, SQLCihper, Synapse, SynLZO, TCMalloc, Tern, xxHash.

В процессе выбора тестировалось множество библиотек. Из них отбирались те, которые обеспечивают максимальную производительность и возможность гибкого управления памятью. Все библиотеки, используемые в Loginom, доступны с исходными кодами, не накладывают ограничения на их использование и исключают лицензионные отчисления со стороны конечного пользователя.

Архитектура

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

Поддерживаемые браузеры: Chrome, Firefox, Opera, Safari, Edge.

Studio — тонкий клиент, обменивается данными с Loginom Server по протоколу WebSocket. Соединение между ними может устанавливаться одним из двух способов — напрямую с сервером Loginom либо через WebSocket proxy, настроенном на web-сервере.

Взаимодействие Server — Studio без wsproxy (по умолчанию):

Взаимодействие Server — Studio с использованием wsproxy:

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

В случае применения Integrator обеспечивается возможность обращаться к Loginom Server извне посредством API (SOAP+WSDL или REST JSON).

В платформе имеются компоненты интеграции с SOAP и REST сервисами, которые реализуют наиболее распространенные варианты взаимодействия с веб-сервисами. Если внешний веб-сервис использует индивидуальные протоколы и шифрование данных, с которыми невозможно взаимодействовать стандартными средствами Loginom, то необходимо применение Loginom Adapter.

Adapter представляет собой промежуточный слой между реализованным в Loginom сценарием и внешними веб-сервисами. Взаимодействие с Adapter из сценария Loginom происходит по стандартному SOAP-протоколу при помощи узла SOAP-запрос.

В свою очередь Adapter:

  • Преобразует полученный из сценария Loginom SOAP-запрос к формату запроса внешнего веб-сервиса;
  • Направляет преобразованный запрос во внешний веб-сервис;
  • Получает ответ внешнего веб-сервиса;
  • Преобразует полученный ответ и в формате SOAP возвращает его сценарию Loginom.

Операционные системы

Loginom Server функционирует поверх Windows Server, установка дополнительных продуктов или фреймворков не требуется. С осени 2022 года будет доступна редакция платформы, работающая со всеми распространенными дистрибутивами Linux.

Loginom Integrator функционирует поверх Microsoft IIS. С осени 2022 года будет доступна редакция под Linux, функционирующая поверх .NET Core.

Для работы Loginom Adapter требуется наличие ряда компонентов IIS и .Net Framework. Подробное описание см. в разделе Установка Loginom Adapter. Если для работы с нестандартными веб-сервисами потребуются сторонние инструменты, например, криптопровайдеры (Cryptography Service Provider, CSP) или Java Runtime Environment (JRE), то эти компоненты необходимо установить на сервер вместе с Adapter.

Реализация Back-End

Loginom сервер спроектирован как монолитная система, но при использовании кластера серверов возможна организация взаимодействия по принципам слабосвязанных распределенных компонентов (сервисов).

Loginom Server обеспечивает вертикальное масштабирование и эффективную утилизацию ресурсов одного сервера:

  • поддержка параллелизма;
  • In-Memory Computing — вычисления в оперативной памяти;
  • оптимальное хранение данных в ОЗУ;
  • специализированный менеджер памяти;
  • исключение промежуточных слоев абстракции за счет низкоуровневого кодирования ядра.

При использовании нескольких Server и Integrator возможно построение кластера серверов, обеспечивающих отказоустойчивость, горячую и холодную замену, горизонтальное масштабирование и балансировку нагрузки.

В Loginom Integrator реализован тривиальный способ распределения задач и балансировки нагрузки между серверами Loginom: распределение задач по циклу между серверами с учетом загруженности узла. Для реализации более сложной оркестрации необходимо применение дополнительного программного обеспечения.

Возможна реализация различных кластерных архитектур, например, единый кластер серверов, где все Intergator связаны cо всеми Server,

либо кластер, состоящий из независимых контуров, включающих один Integrator и один Server,

либо любой их комбинации.

При функционировании в режиме кластера каждый ее компонент (сервис) является самодостаточным и автономным в разрезе исполнения возложенной на него задачи.

Реализация Front-End

Клиент реализован как одностраничное приложение (Single Page Application), использующее единственный HTML-документ как оболочку для всех веб-страниц и организующее взаимодействие с пользователем через динамически подгружаемые HTML, CSS, JavaScript, обычно посредством AJAX. Требуется постоянный доступ к Loginom Server, т.к. вся реальная обработка происходит на стороне сервера.

Каждой экранной форме соответствует уникальный URL, позволяющий адресоваться к нему и делиться со сторонними пользователями в случае необходимости.

Для экономии трафика используется сжатие и пакетная передача данных через собственный быстрый Remote Procedure Call (RPC), оптимизированный для обработки больших объемов данных и минимизации количества обращений клиента к серверу.

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

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

Благодаря тому, что работы с сервером требуется только браузер, технически возможна работа с мобильных устройств. Однако интерфейс Loginom не адаптирован под маленькие экраны. Достаточно комфортная работа возможна на планшете.

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

Функциональные возможности

Проектирование сценариев

Логической единицей платформы является пакет. Он представляет собой XML-файлы, упакованные ZIP. Пакет включает в себе все сущности, которые доступны в Loginom, а также ссылки на другие пакеты, компоненты которых могут быть импортированы.

Для повышения скорости загрузки в файле пакета информация сохранена дважды: в бинарном виде и XML. Если версия пакета совпадает с версией приложения, то производится чтение бинарных данных, что значительно быстрее. Если же пакет был сохранен в предыдущих версиях Loginom, данные считываются из XML и при необходимости конвертируются в новый формат.

Loginom базируется на идее объектно-ориентированного моделирования, т.е. каждый узел сценария является не просто обработчиком, а классом с возможностью наследования. Ключевым компонентом платформы является подмодель — контейнер, включающий в себя другие компоненты. Уровень вложенности подмоделей не ограничен.

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

Поддерживаются две стратегии проектирования сценариев:

  1. Cнизу вверх. Разработка всегда начинается с импорта данных, к которым последовательно применяются те или иные алгоритмы обработки. Подобный подход оптимален для быстрого прототипирования и реализации относительно простой логики трансформации данных.
  2. Сверху вниз. Сначала определяются входы и выходы подмодели, т.е. описывается логика интеграции подмодели в сценарий. Затем реализуется собственно алгоритм обработки, с учетом определенных ранее требований к входам и выходам. Данный подход лучше использовать для создания компонентов, которые планируется в будущем переиспользовать.

Использование кода в сценариях

Low-code идеология допускает применение языков программирования для реализации сложной логики. В Loginom встроена поддержка двух самых популярных языков программирования: Python и JavaScript.

Python

Взаимодействие между узлом Python и другими узлами сценария Loginom происходит посредством Data API, реализующего интерфейсы получения и передачи данных на входных и выходных портах.

Применение Python в однопоточном режиме не требует загрузки/выгрузки данных в файлы или какие-либо другие приемники/источники. Data API позволяет «лениво» получать данные (переменные и таблицы) из входного потока и выгружать обработанные результаты (таблицу) в выходной поток. При включенной опции многопоточной обработки анализируемые данные выгружаются в промежуточные файлы и запускаются отдельные процессы интерпретатора Python для каждого узла.

В узле Python доступен вспомогательный модуль builtin_pandas_utils, позволяющий преобразовывать наборы данных Loginom в pandas DataFrame и обратно.

JavaScript

Для получения и передачи данных на входных и выходных портах узел JavaScript используется интерфейс Data API, полностью идентичный реализованному в компоненте Python. Data API предоставляет данные в узел JavaScript «лениво». При этом, в отличие от Python, нет ограничений на параллельную обработку. Методы работы с данными остаются неизменными вне зависимости от того, работает несколько узлов JavaScript параллельно или нет.

Кроме этого, компонент JavaScript поддерживает:

  • Fetch API — интерфейс для работы с HTTP-запросами и ответами, предоставляющий возможность взаимодействия с веб-сервисами и ресурсами сети непосредственно из узла JavaScript.
  • File Storage API — интерфейс, позволяющий выполнять все файловые операции (чтение/запись файлов, создание папок и прочее). Достоинством реализации данного API в компоненте JavaScript является то, что данные действия выполняются безопасно как в настольных, так и в серверных версиях. В настольных редакциях допускается обращение ко всей файловой системе (с учетом прав пользователя). В серверных редакциях предоставляется доступ только к изолированной области файлового хранилища и к общим папкам, настроенным администратором. Благодаря этому File Storage API не требует предоставления пользователю Loginom прав администратора или выполнения иных небезопасных действий.

Предоставляется возможность подгружать готовые библиотеки JavaScript. Поддерживаются 2 модульные спецификации: EcmaScript 6 и CommonJS.

Помимо узла JavaScript, данный язык программирования можно использовать в обработчике Калькулятор, позволяющий писать формулы как в стиле Excel, так и на JavaScript.

Файловое хранилище

Настольные редакции имеют доступ ко всем объектам на рабочей станции с учетом прав пользователя, а в серверных редакциях для работы с файлами и папками предназначено файловое хранилище:

  • Хранилище физически расположено на сервере, где запущен Loginom;
  • Каждому пользователю предоставляется собственное изолированное пространство в хранилище;
  • Имеется возможность создавать общие папки, права на которые раздаются администратором.

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

Отчетность

В платформу встроено множество вариантов визуализации, в том числе и OLAP-модуль — Куб. Куб является мощным средством многомерного анализа, отображающим данные в виде кросс-таблиц и кросс-диаграмм. Он поддерживает все варианты интерактивного манипулирования данными: группировку, сортировку, drill-down, детализацию, расчет многомерных показателей и прочее. Просмотреть данные при помощи куба можно после любого шага обработки.

Помимо куба в Loginom встроено множество специализированных визуализаторов: таблица, статистика, качество данных, профили кластеров, качество бинарной классификации и прочее. Любой из визуализаторов можно вынести на панель отчетов, с возможностью группировать их по папкам.

Предусмотрена специальная роль — просмотр отчетов. Пользователю с данной ролью, при открытии проекта Loginom не показываются сценарии, модели, подключения и прочие объекты, предназначенные для настройки алгоритмов обработки. Данный пользователь видит только переменные, которые он может изменить и панель отчетов. При выборе интересующего отчета платформа в фоновом режиме выполнит все вычисления и отобразит визуализатор.

Пользователь с ролью «просмотр отчетов» не имеет возможности изменить логику обработки, но может подстраивать под себя варианты представления рассчитанных данных, например, выбрать способ расположения измерений в кубе или тип графика. Таким образом, конечный пользовать получает доступ к преднастроенным аналитическим отчетам с возможностью самостоятельного выбора вариантов отображения результатов обработки.

В случае, если возможностей визуализации средствами платформы не достаточно, предусмотрена интеграция со специализированными BI системами, среди которых Visiology, Tableau, Yandex Datalens.

Возможности построения регулярной отчетности, например, в виде стандартизированных печатных форм в Loginom отсутствуют.

Логирование и мониторинг

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

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

Формат файла логирования — Log4j (проект Apache Logging Project). Парсинг файлов данного формата поддерживается множеством библиотек и инструментов.

Благодаря наличию стандартных логов возможно построение систем мониторинга «здоровья» сервера с применением дополнительных инструментов, например, Elasticsearch, Grafana и прочее.

Контроль версий, DevOps, CI/CD

Loginom не имеет встроенной поддержки репозитория моделей, DevOps, CI/CD. Для реализаций данного функционала предлагается решение Loginom DevOps, представляющее собой набор инструментов, преднастроенных сред, скриптов и соглашений об оформлении, автоматизирующих все этапы жизненного цикла разработки и эксплуатации моделей.

Loginom DevOps построен на базе популярного стека: Git, GitLab, Docker, NGINX, Gitbook, NodeJS. Ввод в эксплуатацию Loginom DevOps требует адаптации скриптов к инфраструктуре заказчика.

Интеграционные возможности

Взаимодействие с внешними системами

В Loginom отсутствуют механизмы ввода данных. Анализируемые данные импортируются из внешних систем. Результаты обработки могут быть выгружены во внешние системы, предоставлены как итог работы веб-сервиса или отображены на экране при помощи визуализаторов.

Способы интеграции с внешними системами:

  • Чтение и запись в файлы;
  • Импорт и экспорт в базу данных;
  • HTTP запросы (SOAP и JSON);
  • Взаимодействие с системами посредством фирменного API, SDK или библиотек.

Для выполнения HTTP запросов в версии Loginom для Windows используется высокоуровневый интерфейс WinHTTP. При реализации HTTP запросов в Linux для создания TSL-соединения будет использоваться OpenSSL, а в качестве HTTP-клиента — Synapse.

Для импорта из 1Сv8 используется COM-соединение. В Loginom задается запрос к учетной системе на SQL-подобном языке 1С. Запросы можно составлять как на кириллице, так и на латинице. В запросе используются сущности учетной системы (регистры, журналы, справочники...), т.к. он обрабатывается сервером 1С. Для работы через COM-соединение необходима установка толстого клиента 1С той же разрядности, что и разрядность приложения/сервера Loginom.

Для экспорта в Tableau применяется Tableau SDK, позволяющий сформировать файлы в форматах hyper и tde. Созданный файл с загруженными данными можно опубликовать, отправив на сервер Tableau при помощи REST запроса (посредством Synapse + OpenSSL).

Поддерживаемые базы данных

Loginom не требует обязательного наличия базы данных или хранилища. Для аналитической платформы они выступают в качестве источника или приемника данных, откуда можно импортировать записи и загрузить после любого этапа обработки.

Отсутствует жесткое требование разработки специального хранилища данных. Возможно использование существующих хранилищ данных или других источников и встраивание Loginom в существующую информационную инфраструктуру.

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

Поддерживаются следующие системы:

Тип источника данныхНаименование/формат
ФайлыExcel, Loginom Data File, XML, CSV-файл
Реляционные базы данныхRedDB, Firebird, Interbase, MS Access, MS SQL, MySQL, Oracle, PostgreSQL, SQLite
Колоночные базы данныхBigQuery, Yandex ClickHouse
ODBCTeradata, Hive, HP Vertica и др.
Веб-сервисыSOAP (XML + WSDL), REST-сервисы
Бизнес-системы1C: Предприятие 8.x
BI-системыVisiology, Yandex DataLens, Tableau
Брокеры сообщенийKafka

Loginom поддерживает встраиваемую СУБД SQLite, не требующую развертывания и администрирования. SQLite представляют собой dll-библиотеку, присоединенную к серверу Loginom. Она обеспечивает высокую производительностью и малый расход памяти, благодаря специализированному API, минимизирующему число операций чтения-записи. SQLite поддерживает шифрование.

Для работы с NoSQL базами возможно использование механизма REST-запросов, также поддерживаемого платформой Loginom.

Хранилище данных

Loginom имеет встроенную поддержку реляционного хранилища данных (ROLAP) на базе трех СУБД: Oracle, MS SQL, Firebird. При помощи конструктора разрабатывается схема хранилища, т.е. устанавливается соответствие между объектами предметной области: процессами, измерениями и фактами, формируя семантический слой. Есть встроенные обработчики для импорта и экспорта в хранилище данных.

Благодаря семантическому слою, пользователь оперирует не полями и колонками таблиц базы данных, а бизнес-терминами, такими как клиент, товар, сумма продажи и прочее. При импорте/экспорте данных система автоматически производит все требуемые манипуляции, необходимые для работы с реляционной СУБД и формирует корректный SQL-запрос. Таким образом, семантический слой дает пользователю возможность сосредоточиться на анализе и не задумываться о механизмах получения данных.

Импорт из хранилища данных

Импорт из хранилища данных

Публикация веб-сервисов

Для публикации собственных веб-сервисов необходимо применение опционального компонента платформы — Loginom Integrator. Пользователю, публикующему веб-сервис, должны быть предоставлены соответствующие права.

В качестве веб-сервиса можно опубликовать любой узел сценария. Кодирование не требуется. Создается одновременно два типа сервисов: XML с WSDL описанием и REST JSON. Автоматически формируется документация по API.

Пакетное выполнение

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

  1. При помощи запуска утилиты BatchLauncher;
  2. Отправив запрос к веб-сервису, который выполнит сценарий, реализующий логику обработки.

В обоих случаях выполняются только ветки сценария, заканчивающиеся узлом экспорта, т.к. остальные действия бессмысленны в случае пакетной обработки. Используя BatchLauncher, можно выполнить как весь пакет, так и конкретный узел сценария.

Для запуска пакетной обработки необходимо использовать внешний планировщик задач, например, Windows Task Scheduler.

В утилиту пакетного выполнения можно передавать параметры, а по окончанию BatchLauncher возвращает код завершения программы. Ошибки выполнения выводятся в консоль и записываются в лог на сервере. При наличии прав дать команду на запуск пакетной обработки можно как с сервера, так и с любой рабочей станции, имеющей доступ к Loginom Server. В этом случае BatchLauncher подключится к серверу по TCP протоколу и запустит сценарий.

В случае запуска при помощи обращения к веб-сервису необходимо наличие Loginom Integrator. Для этого режима возможен запуск только одного узла, а не всего пакета. Сценарий обработки, который требуется выполнить, должен быть реализован в виде подмодели и опубликован как веб-сервис. При вызове GET или POST методов сервер передаст параметры и выполнит сценарий, настроенный в подмодели. В остальном пакетное выполнение при помощи веб-сервиса не отличается от вызова утилиты BatchLauncher.

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

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

Масштабируемость и производительность

Производительность

Loginom — одна из самых высокопроизводительных low-code платформ продвинутой аналитики в мире, что достигается за счет оптимизации на всех уровнях:

  1. Собственный формат хранения. Loginom Data File — самый быстрый из реализованных в платформе источников данных. Потоковое сжатие/распаковка в момент записи/чтения, экономия дискового пространства благодаря оптимальному хранению строк, асинхронное чтение данных.
  2. Быстрый доступ к базам данных. Работа с большинством СУБД осуществляется напрямую с использованием быстрых библиотек доступа и поддержкой пакетного чтения/записи (batch read/write).
  3. Совместная память с базой данных. При работе на одном сервере, некоторые базы данных, например, Firebird и MySQL, позволяют использовать механизм shared memory. В этом случае данные не передаются между СУБД и Loginom, а аналитическая платформа получает результаты из общей памяти.
  4. Параллелизм. Loginom эффективно утилизирует ресурсы многоядерных систем, выполняя в параллельном режиме все возможные операции: сценарии обработки, чтение/запись, машинное обучение, циклы и прочее. При необходимости имеется возможность ручного задания порядка выполнения.
  5. MapReduce. Узел Цикл предоставляет возможность реализации паттерна MapReduce на многоядерной системе, т.е. разбиения набора данных на блоки, параллельной обработки каждого блока с последующим объединением полученных результатов в единый выходной набор. При корректном проектировании сценариев, это обеспечивает практически линейный рост скорости обработки с увеличением количества ядер.
  6. In-memory. Loginom выполняет расчеты в памяти, удерживает данные в ОЗУ и по умолчанию хранит только уникальные записи. Скорость работы с ОЗУ оптимизирована за счет выделения и освобождения памяти большими блоками. Используются структуры данных, вмещающиеся в кэш процессора.
  7. Ленивые вычисления. Используется стратегия расчетов, согласно которой вычисления откладываются до тех пор, пока не понадобится их результат. Это позволяет экономить ресурсы и повысить производительность, выполняя расчеты только в тех ситуациях, когда они действительно необходимы.
  8. Управление кэшированием. При необходимости аналитик может гибко управлять кэшированием данных в сценариях. Можно настроить кэширование при активации узла или при обращении к данным, доступно кэширование всего набора данных или выбранных полей.
  9. Быстрые алгоритмы. Применяются самые быстрые математические библиотеки, написанные на низкоуровневых языках программирования. Данные обрабатываются окнами и хранятся в памяти в специальных структурах с учетом особенностей каждого алгоритма. Алгоритмы реализованы таким образом, чтобы обеспечить эффективную работу в многоядерных системах.
  10. Формулы и код. При использовании формул строятся и кэшируются синтаксические деревья выражений. Производится Just-in-Time компиляция и кэширование JavaScript кода и регулярных выражений.

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

Пропускная способность

Время отклика платформы зависит от множества показателей: аппаратные ресурсы, сложность логики обработки, скорость источников данных, время отклика веб-сервисов и прочее. Поэтому сложно указать точные метрики производительности без дополнительных уточнений.

Для оценки пропускной способности платформы указаны некоторые показатели, которые были достигнуты в проектах:

  1. Среднее время обработки запроса для 95% заявок в кредитном конвейере, без учета времени ожидания ответов внешних сервисов — 1-2 секунды.
  2. Пропускная способность системы принятия решений для 95% заявок, без учета времени ожидания ответов внешних сервисов, при пиковом потоке запросов — 5000 запросов в час на один сервер.
  3. Пиковые запросы к системе принятия решений — в кластере из трех северов более 10 000 заявок в час.

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

Безопасность

Пользователи

Серверные редакции платформы предоставляют возможность управления пользователями, которые могут заводиться локально. В редакциях платформы Loginom Standart и Enterprise доступно использование LDAP аутентификации. В качестве LDAP сервера может использоваться как Active Directory, так и OpenLDAP.

Предусмотрено пять ролей пользователей:

  • Проектирование сценариев;
  • Просмотр отчетов;
  • Пакетное выполнение;
  • Публикация веб-сервисов;
  • Администрирование.

Для каждого пользователя создается изолированное пространство в файловом хранилище, при этом администратор может предоставить выбранному пользователю полный доступ ко всем файлам в хранилище.

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

Обращение к внешним ресурсам

Сервер Loginom не собирает и не отправляет в скрытом фоновом режиме информацию на внешние ресурсы. Однако клиент обращается к сайту loginom.ru при помощи вызова REST API для получения следующей информации:

  • Новости компании, отображаемые на странице Начало;
  • Номер последней версии Loginom для информирования о наличии обновлений на странице Начало и О программе.

При этом обращения к сайту loginom.ru осуществляются не сервером, а браузером или настольным приложением.

Доступ в интернет не является обязательным для корректной работы платформы. Единственным следствием его отсутствия является то, что пользователь не будет проинформирован о новостях компании и наличии обновлений.

 

Если ваша компания заинтересована во внедрении Loginom, свяжитесь с нами.

 

 

Другие материалы по теме:

Что нового в Loginom 6.5

Loginom Help — онлайн-документация для пользователей и администраторов

#low-code#архитектура#аналитический инструмент

Смотрите также