Регистрация / Вход
Прислать материал

Разработка интеллектуального кэша данных, самомасштабируемой сервис-ориентированной архитектуры и экспериментального образца аналитической системы (BI) для обработки сверхбольших объемов данных.

Номер контракта: 14.579.21.0069

Руководитель: Ройтберг Михаил Абрамович

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

Докладчик: Чесов Роман Геннадьевич, руководитель проектов

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

Цель проекта:
Основными целями проекта являются исследование и разработка комплекса научно-технических решений, направленных на создание методов и подходов повышения производительности аналитических систем за счет механизмов формирования интеллектуального кэша данных с использованием многоуровневой сервис-ориентированной архитектуры. Исследование и разработка комплекса научно-технических решений при создании алгоритмов кэширования, многоуровневой сервис-ориентированной архитектуры (СОА), алгоритмов масштабирования СОА и исследований производительности промышленных аналитических систем (BI) при обработке сверхбольших объемов данных. Программная реализация исследуемых алгоритмов и подходов с целью увеличения производительности промышленных аналитических систем (BI) при обработке сверхбольших объемов данных. В рамках выполнения ПНИ будут решены следующие научно-технические задачи: 1). Будет разработана многоуровневая клиент серверная архитектура, позволяющая реализовать масштабируемый аналитический вычислительный кластер. 2). С использование технологии многоуровневой клиент серверной архитектуры будет разработана распределенная подсистема кэширования, обеспечивающая интеллектуальный выбор политик замещения данных. 3). Будет решена задача изоляции контейнера приложений, содержащим многоуровневую клиент серверной архитектуры, для создания отдельных изолированных узлов вычислительного кластера обработки бизнес логики и анализа данных.

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

Краткая характеристика создаваемой/созданной научной (научно-технической, инновационной) продукции:
Результатом ПНИ будет прототип аналитической системы, построенной с использованием совершенно нового подхода в виде эластичной масштабируемой микросервисной архитектуры.
Суть которой заключается в создании контейнеров приложений, включающих в себя многоуровневую клиент серверную архитектуру и позволяющую исполнять бизнес логику и анализировать данные.
Часть контейнеров может исполнять бизнес и аналитическую логику и размещаться практически на любых вычислительных мощностях, другая часть контейнеров может являться управляющей, которое обеспечивает миграцию, включение/выключение, выделение ресурсов контейнерам приложений.
Результаты ПНИ являются достаточно инновационными, так как в настоящее время практически никто не разрабатывает аналитические и бизнес системы с использование подхода контейнеризации приложений.
В настоящее время тема контейниризации приложений активно развивается и только в июне 2015 года крупнейшие производители ПО (среди которых Google, IBM, Microsoft, VMware) создали консорциум по стандартизации и координации разработок в области контейнеров приложений.
В настоящее время очень сложно сравнивать планируемые характеристики разрабатываемой системы, так как широкодостпуных аналогов нет.

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

Текущие результаты проекта:
В результате проделанной работы на II-м этапе ПНИ были получены следующие результаты:

1) Был проведен анализ и обоснование выбора наиболее оптимальных алгоритмов управления и администрирования многоуровневой сервис-ориентированной архитектурой (СОА), для реализации которых определены слои многоуровневой клиент серверной архитектуры, выбраны технологии для их реализации, которые обеспечат выполнение требований технического задания. Были спроектированы отдельные компоненты для последующей реализации на высокоуровневых языках программирования.
Основные слои архитектуры:
· Слой представления (AJAX – клиент, web-сервер, FastCGI компонент для обеспечения очереди запросов между слоем представления и шиной интеграции).
· Шина интеграции (JMS Active MQ сервер обеспечивает хранение очередей пользовательских запросов).
· Слой бизнес-логики (сервер приложений, обеспечивающий обработку пользовательской бизнес-логики, логику кэширования данных, запуск политик замещения, взаимодействие со слоем хранения СУБД или файловое хранилище).
· Слой хранения данны (СУБД или файловое хранилище WebDav).
Архитектура спроектирована таким образом, что некоторые элементы могут быть стандартными и взаимозаменяемыми, и обладают стандартизированными интерфейсами, например, WEB-сервер, JMS-сервер, СУБД. Компоненты архитектуры, которые являются предметом исследования данных прикладных научных исследований были спроектированы для последующей реализации согласно требованиям технического задания – это сервер приложений, подсистема кэширования, интерфейс разработки прикладной бизнес-логики, клиентское приложений.

2) Был проведен анализ и обоснование выбора наиболее оптимальных алгоритмов создания прикладной бизнес-логики ввода и обработки данных, графического представления пользовательского интерфейса. Основными компонентами, которые обеспечивают прикладной интерфейс разработки являются: компонент взаимодействия с базой данной (DBConnection, DBCursor), компонент обработки исключений (AppException); компонент отображения Python API в классы C++ (ObjectWithPK), компонент работы с полями объекта (Field), компонент работы с таблицами (Filed, Env), компонент работы с датой и временем (Date, Time, TimeInterval), доступ к константам С++ классов сервера приложений (Python.enum).
Для реализации клиентского приложения на языке JavaScript и обеспечения его взаимодействия со слоем бизнес-логики был спроектирован компонент FCGI (WebAPI), обеспечивающий следующие возможности AJAX клиента: авторизация, вызов методов, зачитывание таблицы, зачитывание записи, добавление записи, удаление записи, сохранение записи.
Для сборки AJAX клиента и последующего его использования были спроектированы компоненты и их соответствующая xml нотация: Text Input, Date Input, Spinbox Input, Double Spinbox Input, Check Box Input, Combo Reference, Reference, HTML Container, Table, Tree, Tree Table, Strip table.

3) Был проведен анализ и обоснование выбора наиболее оптимальных алгоритмов изоляции и масштабирования на уровне ядра операционной системы отдельных узлов СОА. В качестве технологии изоляции контейнеров приложений оптимально использовать изоляции на уровне cgroups/libcontainer. Спроектированы компоненты управления контейнерами изоляции отдельных единиц многоуровневой клиент серверной архитектуры. В качестве технологии изоляции была выбрана легковесная виртуализация на уровне ядра операционной системы . Для обеспечения управления контейнерами изоляции были спроектированы компоненты для последующей реализации на языках C++ и Python. SubscriptionServer – отдельный контейнер изоляции; Subscription – компонент управления контейнером изоляции; SubscriptionEvents – компонент обработчик событий отдельного контейнера изоляции; SubscriptionPackage и SubscriptionProjects – компоненты, которые обеспечивают хранение настроек и программного кода отдельного контейнера изоляции.

4) Программная реализация алгоритмов кэширования и алгоритмов интеллектуального определения алгоритмов кэширования. были спроектированы и реализованы классы С++, компонента «профайлер» который обеспечивает хранение статистики пользовательских запросов и их результатов обработки, для обеспечения логики интеллектуального выбора политик замещения (алгоритмов кэширования). Согласно техническому заданию была произведена реализация компонента «профайлер» и политик замещения (2way Cache, ARC (Adaptive Replacement Cache), LFU Cache, LRU Cache, Direct Map Cache, MRU Cache, PSEUDO LRU, SLRU) на языке С++.
Характеристики спроектированных и разработанных компонентов СОА, их изоляции и масштабирования будут изучены на этапах III и IV проекта ПНИ.
В настоящее время можно уже говорить о превосходящих характеристиках производительности кросс платформенного AJAX клиента, что подтверждает демонстрация прототипов решений на прошедших выставках в т.ч. зарубежных (Испания, Сингапур).
Выбранная архитектура реализации подсистемы кэширования в качестве дополнения сервера приложений с возможностью в выделение в отдельный сервер приложений, позволит обеспечить практически неограниченную масштабируемость подсистемы.
Реализованный компонент "профайлер", как часть системы кэширования, сейчас позволил обеспечить мониторинг производительности продуктивных бизнес/аналитических систем, установленных у заказчиков, и определить узкие места не оптимального программного кода, обрабатывающего пользовательские запросы. Произведенная оптимизация существующего программного кода существенно уменьшила отклик продуктивных бизнес систем.