🔍 Поиск готовых работ

🔍 Поиск работ

РАЗРАБОТКА ИНСТРУМЕНТАЛЬНОЙ БИБЛИОТЕКИ ДЛЯ ВНЕДРЕНИЯ ПРИЛОЖЕНИЙ В ПОТОКОВЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СРЕДЫ

Работа №202134

Тип работы

Дипломные работы, ВКР

Предмет

программирование

Объем работы45
Год сдачи2019
Стоимость4450 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
16
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 5
1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 9
2. РЕАЛИЗАЦИОННАЯ ЧАСТЬ 17
2.1. Реализация адаптера потоков данных 17
2.2. Разработка средств конфигурирования и мониторинга 21
3. ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ 26
3.1. Повышение производительности работы библиотеки с Kafka 26
3.2. Оценка эффективности относительно альтернативных решений 32
3.3. Интеграция с системой управления многопользовательскими кластерными
вычислениями 35
ЗАКЛЮЧЕНИЕ 41
СПИСОК ЛИТЕРАТУРЫ 42

В связи с ростом потребности в оперативной распределенной обработке больших объемов непрерывно поступающих данных, набирают популярность инструменты и архитектурные решения из области потоковой обработки данных - или Stream Processing [8]. В отличие от традиционных систем для работы с большими данными, которые накапливают поступающую информацию в хранилище и с некоторым периодом проводят ее обработку на мощных вычислительных узлах, потоковые вычислительные системы выполняют операции с данными по мере их поступления. Было показано, что при таком подходе значительно возрастает скорость реакции систем на происходящие события, а также сокращается требуемая для них вычислительная мощность [13]. Данные преимущества очень важны во многих быстро растущих сферах цифровых технологий, включая «Интернет Вещей» [3] и «Умное производство» [10, 12].
Развитие связанных с данным направлением концепций в области программной инженерии, таких как микросервисная и событийноориентированная архитектуры, показало, что для взаимодействия большого числа вычислительных сервисов необходима общая среда передачи и маршрутизации сообщений [24]. В качестве такой среды чаще всего используются два класса инструментов: диспетчеры, или очереди, сообщений и платформы потоковой обработки данных. К первому классу относятся такие инструменты, как RabbitMQ и Apache ActiveMQ, ко второму Apache Kafka и Amazon Kinesis. Диспетчеры сообщений изначально были предназначены для развертывания на одном вычислительном узле и имеют ограничения по масштабируемости, а потоковые платформы ориентированы на распределенное хранение данных в кластере и одновременное обслуживание большого числа клиентских запросов [5]. Благодаря этому, такие системы, как Apache Kafka, способны обеспечивать непрерывную транспортировку миллионов сообщений в секунду между вычислительными сервисами [25].
В настоящее время Apache Kafka лежит в основе большого числа потоковых вычислительных систем: коммерческих проектов, например Confluent, и научных разработок: RADAR-base для работы с медицинскими устройствами [23], проект ESS в области нейтронной физики [21], Submarine для изучения химических, биологических и атмосферных данных Мирового океана [27]. Данные системы объединяет и то, что помимо Apache Kafka для организации потоковой обработки данных в них используется ряд популярных приложений и библиотек - коннекторы для импорта и экспорта данных из распространенных источников, регистр схем Apache Avro, созданные для распределенных вычислений фреймворки Hadoop, Spark и Flink. Все это позволяет говорить о полноценной потоковой вычислительной среде - совокупности источников и приемников потоков данных, и программных компонентов, предназначенных для их передачи и обработки [11].
Высокая архитектурная сложность потоковой вычислительной среды приводит к возникновению ряда проблем при попытке создания такой системы или адаптации к ней существующей информационной инфраструктуры [22, 26]:
• ранее разработанные приложения не могут быть встроены в такую систему без существенной модификации. В случае проприетарного программного обеспечения, это может стать непреодолимым препятствием при внедрении потоковой обработки данных;
• разработка и сопровождение вычислительных сервисов для таких систем требуют высокой квалификации в области программной инженерии, прикладного программирования и системного администрирования. Начинающим разработчикам и специалистам в фундаментальной науке, занимающимся такими системами, требуется серьезная поддержка от коллег и сообщества, что замедляет и усложняет проведение экспериментальных исследований;
• замена любого компонента в составе вычислительной среды или даже обновление его версии может привести к изменению программного интерфейса (Application Programming Interface, API), используемого другими компонентами и необходимости в переработке всей кодовой базы. В особенности это касается самой потоковой платформы.
Для решения данных проблем была предложена концепция адаптера потоков данных [22], который обеспечивает дополнительный слой абстракции между приложениями для обработки данных и средой их передачи. Использование адаптера позволяет приложениям работать с данными из потоковой платформы в локальной файловой системе и не зависеть от деталей ее конкретного программного интерфейса и технической реализации. Инструментальная библиотека, реализующая данную концепцию, поможет небольшим коллективам разработчиков и исследователей при создании действующих прототипов потоковых вычислительных систем и проведении экспериментов.
Примером другой области, в которой адаптер потоков данных может обеспечить значительное увеличение эффективности ранее разработанных программ, является управление многопользовательскими кластерными вычислениями. В частности, в данной работе рассматривается интеграция предложенного адаптера с системой управления такими вычислениями HTCondor [6], разработанной университетом Висконсин-Мэдисон и широко используемой научно-исследовательскими центрами по всему миру. Пользователи данной системы сталкиваются со сложностями, связанными с разделением рабочего времени на независимые этапы обработки и пересылки данных, а также отсутствием прямой коммуникации между вычислительными задачами [28]. Интеграция HTCondor с потоковой платформой Apache Kafka посредством разработанной библиотеки позволит решить данные проблемы и ускорить выполнение пользовательских задач.
Цель и задачи работы
Целью данной работы является разработка инструментальной библиотеки для внедрения приложений в потоковые вычислительные среды. Для ее решения требуется выполнить следующие задачи:
• реализовать в библиотеке концепцию адаптера потоков данных;
• разработать инструменты для конфигурирования и мониторинга работы адаптера;
• оценить эффективность адаптера относительно альтернативных решений для передачи данных между потоковой платформой и локальной файловой системой;
• выполнить интеграцию адаптера с системой управления многопользовательскими кластерными вычислениями HTCondor;
• оценить достигнутые преимущества над традиционным подходом к обработке данных.
Структура и объем работы
Данная курсовая работа состоит из введения, трех основных разделов, заключения и библиографии. Объем работы составляет 44 страницы, объем библиографии - 28 источников.
Первый раздел содержит обзор существующих технологий и подходов к решаемой библиотекой проблеме. Кроме того, в нем раскрыта реализованная в библиотеке концепция адаптера потока данных и перспективы ее применения, в частности, в области многопользовательских кластерных вычислений.
Второй раздел посвящен проектированию и реализации разрабатываемой библиотеки. В данном разделе рассмотрены выбранные при разработке системы подходы и технологии и описаны возможности, предоставляемые данной системой конечному пользователю.
Третий раздел описывает меры, использованные для повышения производительности работы библиотеки с Apache Kafka, и данные экспериментального сравнения производительности с аналогичными решениями . Он также содержит экспериментальную модель кластера, созданную для испытания библиотеки, и набор выполненных на нем экспериментов. Перечислены основные результаты, достигнутые в области кластерных вычислений за счет интеграции исполняемых задач с потоковой вычислительной средой.
В заключении содержатся выводы о проделанной работе.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе работы достигнуты следующие основные результаты:
• реализована в виде библиотеки на языке Kotlin концепция адаптера потоков данных;
• разработаны и включены в состав библиотеки средства конфигурирования и мониторинга работы адаптера;
• дана оценка эффективности использования адаптера для передачи потоков данных по сравнению с альтернативными решениями;
• предложен и реализован в рамках экспериментальной модели подход к интеграции адаптера с системой управления многопользовательскими кластерными вычислениями HTCondor;
• выполнена оценка достигнутых преимущества над традиционным подходом к обработке данных.
В ходе выполнения работы была подготовлена статья «Dataflow adapter: a tool for integrating legacy applications into distributed stream processing», опубликованная в сборнике трудов конференции UCC Companion 2018.



1. Alaasam A.B.A. Scientific Micro-Workflows : Where Event-Driven Approach Meets Workflows to Support Digital Twins. / A.B.A. Alaasam, G. Radchenko, A. Tchernykh, et al. // Суперкомпьютерные дни в России: Труды международной конференции (24-25 сентября 2018 г, г. Москва). Москва: Изд-во МГУ, 2018. - С. 489-495.
2. Ali Hussein A., Oluwaseun A. Data Mining Application Using Clustering Techniques (K-Means Algorithm) In The Analysis Of Student's Result. // Journal of Multidisciplinary Engineering Science Studies (JMESS), May 2019.
- Vol. 5. - No. 5. - P. 2587-2593.
3. Al-Osta M., Bali A., Gherbi A. Event driven and semantic based approach for data processing on IoT gateway devices. // Journal of Ambient Intelligence and Humanized Computing, 2018. - Vol. 5.
4. Altintas I. Kepler: An Extensible System for Design and Execution of Scientific Workflows. / I. Altintas, C. Berkley, E. Jaeger, et al. // Proceedings of the 16th International Conference on Scientific and Statistical Database Management, SSDBM 2004. - Vol. 1. - P. 423-424.
5. Dragoni N. Microservices: Yesterday, Today, and Tomorrow. / N. Dra- goni, S. Giallorenzo, A. L. Lafuente, et al. // Present and Ulterior Software Engineering, 2017. - P. 195-216.
6. Erickson R. Wrangling distributed computing for high-throughput environmental science: An introduction to HTCondor. / R. Erickson, M. Fienen, S.G. Mccalla, et al. // PLOS Computational Biology, 2018. - Vol. 14. - P. 1-8.
7. Felleisen M. A Programmable Programming Language. / M. Felleisen, R.B. Findler, M. Flatt, et al. // Communications of the ACM, March 2018.
- Vol. 61. - No. 3. - P. 62-71.
8. Fienen M., Muffels C., Hunt R. On constraining pilot point calibration with regularization in PEST. // Groundwater, 2009. - Vol. 47. - P. 835-844.
9. Friedman E., Tzoumas K. Introduction to Apache Flink. // USA: O’Reilly Media, 2016. - 90 p.
10. Grieves M. Digital Twin: Manufacturing Excellence through Virtual Factory Replication. // Florida Institute of Technology - The Center for Lifecycle and Innovation Management (CLIM), 2014. - P. 1-7.
11. Hesse G., Lorenz M. Conceptual Survey on Data Stream Processing Systems. // IEEE 21st International Conference on Parallel and Distributed Systems (ICPADS), 2015. - P. 797 - 802.
12. Lee J., Bagheri B., Kao H. A Cyber-Physical Systems architecture for Industry 4.0-based manufacturing systems. // Manufacturing Letters, 2015.
- Vol. 3. - P. 18-23.
13. Jerzak Z. The DEBS 2012 grand challenge. / Z. Jerzak, T. Heinze, M. Fehr, et al. // Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems - DEBS, 2012. - P. 393-398.
14. Jerzak Z., Ziekow H. The DEBS 2014 grand challenge. // Proceedings of the 8th ACM International Conference on Distributed Event-Based Systems - DEBS, 2014. - P. 266-269.
15. Korambath P. Deploying kepler workflows as services on a cloud infrastructure for smart manufacturing. / P. Korambath, J. Wang, A. Kumar, et al. // Procedia Comput. Sci, 2014. - Vol. 29. - P. 2254-2259...28


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ