Новый Webix 11.3 Подробнее Обновления в Webix Core, умный Colorboard и более мощный Rich Text Editor.

Webix на практике: гибкий веб-интерфейс для анализа данных в реальном времени

Интерфейсы для автоматизированной системы управления технологическим процессом (АСУ ТП) — это всегда вызов: высокая плотность данных, работа в реальном времени и ответственность, где цена ошибки особенно высока. В статье разбираем, как Webix подходит для систем с большими данными, real-time обновлениями и строгими требованиями к стабильности интерфейса.


Мы поговорили с Евгенией Балуевой, специалист отдела веб-разработки компании “Децима”, чтобы рассказать, как команда решала эту задачу с помощью Webix.

КОТМИ-14 — новое поколение АСУ ТП, предназначенное для комплексной автоматизации бизнес-процессов оперативно-диспетчерского, технологического и ситуационного управления.

Платформа используется операторами на разных устройствах (ПК, планшет, смартфон на Windows и Linux) и отображает:

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

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

Задачи и особенности проекта

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

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

До выбора Webix разработчики столкнулись с типичным для таких систем набором вызовов:

  • большая плотность данных и высокая нагрузка на UI, особенно при обновлении в реальном времени;
  • необходимость создавать и поддерживать большое количество custom-компонентов;
  • сложность интеграции графиков и карт без нарушения общей архитектуры;

Команде нужна была библиотека, которая включает в себя все необходимые для системы и кастомизируемыми UI контролы в одном пакете.

Почему Webix

Евгения Балуева
специалист отдела веб-разработки, “Децима”

Мы активно используем компоненты базовой библиотеки — это табы, кнопки, деревья, таблицы, списки, дашборды. Благодаря возможности расширения функционала очень сильно доработали компоненту property. Компонент оказался полезным, но в нашем случае потребовал серьезного расширения, хотелось бы видеть его дальнейшее развитие в будущих версиях.

После пробного периода и технической оценки команда выбрала Webix и микро-фреймворк Webix Jet за:

  • широкую базовую библиотеку UI-компонентов, покрывающую основные сценарии интерфейса «из коробки»;
  • гибкость и расширяемость — возможность глубоко дорабатывать компоненты под сложный домен;
  • стабильную архитектуру Jet, которая упрощает масштабирование проекта;
  • простую интеграцию со сторонними библиотеками, включая Plotly (графики) и OpenLayers (карты);
  • поддержку и документацию, которые помогли пройти кривую обучения.
Евгения Балуева
специалист отдела веб-разработки, “Децима”

Благодаря гибкости библиотеки Webix получилось встроить другие библиотеки, например Plotly для работы с графиками и OpenLayers для работы с картами.

Как проходило внедрение и кастомизация Webix

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

Евгения Балуева
специалист отдела веб-разработки, “Децима”

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

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

Используемые компоненты

В проект активно вошли базовые UI-компоненты, которые включены в Webix Core:

  • datatable — основной компонент для рабочих таблиц и журналов;
  • tree и treetable — для отображения иерархии данных;
  • charts — для отображения визуальных данных;
  • property — для динамической настройки параметров интерфейса (чатров, дашбордов и панелей) и автоматической перерисовки части интерфейса; 
  • tabs, lists, forms, buttons — основа приложения.

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

Расширение функционала Webix

Одно из ключевых преимуществ Webix — это гибкость и настраиваемость компонентов. Команда значительно расширила функционал компонента property, адаптировав его под сложные структуры параметров.

Кроме того, им удалось полностью встроить:

  • Plotly — для многоуровневых графиков,
  • OpenLayers — для работы с картографией и геоданными.

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

Результаты

За три года использования Webix команда получила:

  • ускорение разработки веб-АРМ за счет готовых и расширяемых компонентов;
  • единый стек для всей визуальной части;
  • гибкую архитектуру, которая не мешает интегрировать внешние библиотеки;
  • высокую производительность UI, критичную для систем с отображением изменений в реальном времени;
  • улучшение UX операторов благодаря богатой компонентной базе;
  • постоянную техническую поддержку от команды Webix, позволяющую улучшать компоненты и закрывать узкие места.

Несмотря на то, что некоторые компоненты хотелось бы развивать быстрее (например, property и Spreadsheet), в целом Евгения оценивает опыт как очень положительный, цитата: «В общем, всё хорошо 🙂».

Советы от команды Децима

  1. Используйте Webix Jet, это гибкий архитектурный каркас вашего приложения. Один раз разберитесь с ним, это упростит масштабирование. 
  2. При необходимости кастомизируйте компоненты и подключайте сторонние библиотеки, Вебикс дает эти возможности.
  3. Обращайтесь в техподдержку, если необходимо, это позволит сэкономить время разработки и решить сложные вопросы.

Спасибо Евгение и команде Децима за подробный и честный опыт использования Webix и за готовность поделиться практическими выводами из реального проекта.

Итог

Внедрение гибкой UI библиотеки Webix позволило команде Децима быстро создать масштабируемый, адаптивный и производительный интерфейс для управления технологическими процессами. Компонентный подход, архитектура Jet и возможность настройки фреймворка стали ключевыми факторами успеха.

Для каких систем подойдёт Webix

Опыт КОТМИ-2014 показывает, что Webix особенно хорошо подходит для проектов с высокой сложностью интерфейса и требований к надежности:

  • систем АСУ ТП;
  • мониторинга и анализа данных в реальном времени;
  • диспетчерских и ситуационных центров;
  • приложений с большим количеством взаимосвязанных экранов;
  • интерфейсов с онлайн-обновлением данных и большими таблицами.

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

Используете Webix в реальных проектах? Расскажите о своем опыте.