Платформа для анализа машинных данных в реальном времени

Мониторинг ИТ-инфраструктуры предприятия в реальном времени

Задача

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

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

Заказчик начал разработку аналитической платформы собственными силами, но быстро осознал потребность в больших производственных ресурсах. Чтобы ускорить выход продукта на рынок, было принято решение передать разработку продукта внешней команде программистов. Заказчик выбрал компанию "Программные технологии" за наш опыт в разработке распределённых систем для работы с большими данными, платформ для разработки, интегрированных сред разработки (IDE) и серверов приложений.

Решение

Бизнес-моделирование и операционный анализ

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

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

Многокомпонентная платформа

Разработанная платформа для анализа данных является многокомпонентным решением с модульной архитектурой на основе спецификации OSGi. Платформа состоит из интегрированной среды разработки (IDE) на основе Eclipse RCP для предметно-ориентированного языка заказчика, распределённого сервера приложений для обсчёта моделей, компонентов для визуализации, веб-консоли управления и других компонентов. Все компоненты интегрированы посредством низкоуровневых API. Чтобы обеспечивать анализ больших данных, инфраструктура программного решения имеет сетевую топологию, управляемую хаб-серверами. При модификации исходной модели её можно вначале проверить в интегрированной среде разработки (IDE) с реальными данными, либо с заранее записанным потоком входных данных - до развёртывания на боевом сервере. Среда разработки также предоставляет возможность развёртывания/публикации модели на сервер, не выходя из IDE.

Интерактивный пользовательский веб-интерфейс

Мы предложили разработать пользовательский интерфейс с широкими функциональными возможностями (rich user interface), чтобы веб-приложение могло работать так же, как и десктопное. В результате, мы свели к минимуму необходимость в перезагрузке страницы, что сделало платформу более комфортной для использования.

Визуализация машинных данных

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

Визуализация в бизнес-моделировании

Бизнес-аналитика также может выиграть от использования визуализации данных. Чтобы облегчить моделирование систем, мы разработали графический редактор на основе Eclipse RCP, GEF и GMF. В этом редакторе бизнес-аналитик может, например, используя только «мышку» создавать компоненты модели, формировать бизнес-правила, добавлять внешние соединения для входящих данных и результатов моделирования, соединять компоненты модели и т.д., используя одновременный выбор нескольких параметров и drag-and-drop. Это уменьшило затраты на программирование, расширило целевую аудиторию платформы и предоставило ещё ряд преимуществ.

Распределённые вычисления

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

Дальнейшее улучшение платформы

Мы создали платформу на базе нового языка программирования, разработанного заказчиком, что могло создать трудности для пользователей, незнакомых с этим языком. Чтобы избежать этого, мы добавили в решение возможность работать через Java API, который обеспечивает удобное программирование бизнес-правил на знакомом многим языке. Наши специалисты постоянно следили за появлением новых технологий и предлагали возможности по дальнейшему улучшению платформы. Так, для упрощения версионирования и моделирования в системе была использована платформа OSGi. Стандартизация и развязывание элементов помогли сократить расходы на разработку, поддержку и техническое обслуживание. Кроме того, интегрированная среда разработки (IDE) была улучшена недавно выпущенной библиотекой xText для Eclipse. Это обеспечило расширенную поддержку языков программирования, включая возможность визуализировать структуру кода (outline), улучшенную навигацию и поиск в коде.

Выпуск платформы на рынок

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

Технологии
Java Equinox
OSGi
Eclipse RCP
Eclipse Modeling Framework
Eclipse GEF
Eclipse jFace
Eclipse xText
Adobe Flex
Функциональные возможности решения
1

Бизнес-моделирование и операционный анализ.

2

Интерактивный пользовательский веб-интерфейс.

3

Визуализация машинных данных.

4

Визуализация в бизнес-моделировании.

5

Распределённые вычисления.

Результат
В 2011 году компания Starview получила награду EPTS Innovation Application Award от организации Event Processing Technical Society «За применение инновационных технологий», а в 2012 — награду Gartner Cool Vendor «За инновации в интеграции информационных технологий и производственных процессов».
Мы найдем лучшее решение вашей задачи