Автор24

Информация о работе

Подробнее о работе

Страница работы

Программный проект на тему Разработка фреймворка для практических заданий по распределенным системам

  • 19 страниц
  • 2021 год
  • 8 просмотров
  • 0 покупок
Автор работы

BESKONECHNO

Профессор, кэн

550 ₽

Работа будет доступна в твоём личном кабинете после покупки

Гарантия сервиса Автор24

Уникальность не ниже 50%

Фрагменты работ

2.1 Актуальность

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



3

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

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

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

2.2 Постановка задачи

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

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

и проверять корректность алгоритма. Model Checking заключается в



4

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

Содержание




1 Аннотация
3

1.1
Аннотация
3

1.2 Annotation
3

1.3
Ключевые слова
3


2 Введение
3

2.1
Актуальность
3

2.2
Постановка задачи
4

3 Обзор существующих решений
5

3.1
DSLabs: model checking для тестирования решений студентов
5

3.2
IronFleet: Floyd-Hoare тестирование
6

3.3 Verdi: набор инструментов для написания и проверки распределенных алгоритмов
7

3.4
Оценка рассматриваемых работ
7

3.5
Описание существующей тестирующей системы
9

4 Описание предлагаемого алгоритма
10

4.1
Тестирование с помощью Model Checking
10

4.2
Необходимые данные для реализации Model Checking
10

4.3
Подмена состояний процессов
11

4.4
Обход состояний системы
11

4.5
Ускорение работы алгоритма тестирования
11

4.6
Проверка состояний системы
12

4.7
Отладка решения
12

5 Результаты
13

5.1
Обход графа состояний
13

5.2
Время работы алгоритма тестирования
13

5.3
Тесты
14

5.3.1 Тесты на алгоритм Broadcast
14

5.3.2 Тесты на алгоритм Membership
16

5.3.3 Тесты на алгоритм kv-sharding
17

6 Заключение
18

Список литературы
20

Добрый день! Уважаемые студенты, Вашему вниманию представляется курсовая работа на тему: «Программный проект на тему Разработка фреймворка для практических заданий по распределенным системам»

1 Аннотация


1.1 Аннотация

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

1.2 Annotation

Distributed systems are widely used in modern applications. To write the correct algorithm for distributed systems developers need special methods to test them. Same thing for students who study in specialities related to the programming of distributed systems. In this paper, we modify the dslib framework designed for testing student algorithms. The main essence of the framework is the ability to model the behavior of the network and check the state of each process for compliance with a certain set of invariants. The result of the work is a modification of the dslib framework implemented in the system of testing students ' works.

1.3 Ключевые слова

Распределенные системы; Тестирование; Распределенные алгоритмы; model checking; distributed systems;


Список литературы

[1] E. Michael, D. Woos, T. Anderson, M. D. Ernst, and Z. Tatlock. 2019. Teaching Rigorous Distributed Systems With Efficient Model Checking. In EuroSys.

(https://homes.cs.washington.edu/~mernst/pubs/dslabs-eurosys2019.pdf)

[2] Chris Hawblitzel, Jon Howell, Manos Kapritsos, Jacob R. Lorch, Bryan Parno, Michael L. Roberts, Srinath T. V. Setty, and Brian Zill. 2015. IronFleet: proving practical distributed systems correct. In SOSP. ACM, 1–17 (https://www.microsoft.com/en-us/research/wp-content/uploads/2015/10/ironfle et.pdf)

[3] J. R. Wilcox, D. Woos, P. Panchekha, Z. Tatlock, X. Wang, M. D. Ernst, and T. E. Anderson. Verdi: a framework for implementing and formally verifying distributed systems. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 357– 368, 2015. (https://www.researchgate.net/publication/282484874_Verdi_A_Framework_for _Implementing_and_Formally_Verifying_Distributed_Systems)

Форма заказа новой работы

Не подошла эта работа?

Закажи новую работу, сделанную по твоим требованиям

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

Фрагменты работ

2.1 Актуальность

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



3

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

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

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

2.2 Постановка задачи

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

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

и проверять корректность алгоритма. Model Checking заключается в



4

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

Содержание




1 Аннотация
3

1.1
Аннотация
3

1.2 Annotation
3

1.3
Ключевые слова
3


2 Введение
3

2.1
Актуальность
3

2.2
Постановка задачи
4

3 Обзор существующих решений
5

3.1
DSLabs: model checking для тестирования решений студентов
5

3.2
IronFleet: Floyd-Hoare тестирование
6

3.3 Verdi: набор инструментов для написания и проверки распределенных алгоритмов
7

3.4
Оценка рассматриваемых работ
7

3.5
Описание существующей тестирующей системы
9

4 Описание предлагаемого алгоритма
10

4.1
Тестирование с помощью Model Checking
10

4.2
Необходимые данные для реализации Model Checking
10

4.3
Подмена состояний процессов
11

4.4
Обход состояний системы
11

4.5
Ускорение работы алгоритма тестирования
11

4.6
Проверка состояний системы
12

4.7
Отладка решения
12

5 Результаты
13

5.1
Обход графа состояний
13

5.2
Время работы алгоритма тестирования
13

5.3
Тесты
14

5.3.1 Тесты на алгоритм Broadcast
14

5.3.2 Тесты на алгоритм Membership
16

5.3.3 Тесты на алгоритм kv-sharding
17

6 Заключение
18

Список литературы
20

Добрый день! Уважаемые студенты, Вашему вниманию представляется курсовая работа на тему: «Программный проект на тему Разработка фреймворка для практических заданий по распределенным системам»

1 Аннотация


1.1 Аннотация

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

1.2 Annotation

Distributed systems are widely used in modern applications. To write the correct algorithm for distributed systems developers need special methods to test them. Same thing for students who study in specialities related to the programming of distributed systems. In this paper, we modify the dslib framework designed for testing student algorithms. The main essence of the framework is the ability to model the behavior of the network and check the state of each process for compliance with a certain set of invariants. The result of the work is a modification of the dslib framework implemented in the system of testing students ' works.

1.3 Ключевые слова

Распределенные системы; Тестирование; Распределенные алгоритмы; model checking; distributed systems;


Список литературы

[1] E. Michael, D. Woos, T. Anderson, M. D. Ernst, and Z. Tatlock. 2019. Teaching Rigorous Distributed Systems With Efficient Model Checking. In EuroSys.

(https://homes.cs.washington.edu/~mernst/pubs/dslabs-eurosys2019.pdf)

[2] Chris Hawblitzel, Jon Howell, Manos Kapritsos, Jacob R. Lorch, Bryan Parno, Michael L. Roberts, Srinath T. V. Setty, and Brian Zill. 2015. IronFleet: proving practical distributed systems correct. In SOSP. ACM, 1–17 (https://www.microsoft.com/en-us/research/wp-content/uploads/2015/10/ironfle et.pdf)

[3] J. R. Wilcox, D. Woos, P. Panchekha, Z. Tatlock, X. Wang, M. D. Ernst, and T. E. Anderson. Verdi: a framework for implementing and formally verifying distributed systems. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 357– 368, 2015. (https://www.researchgate.net/publication/282484874_Verdi_A_Framework_for _Implementing_and_Formally_Verifying_Distributed_Systems)

Купить эту работу

Программный проект на тему Разработка фреймворка для практических заданий по распределенным системам

550 ₽

или заказать новую

Лучшие эксперты сервиса ждут твоего задания

от 500 ₽

Гарантии Автор24

Изображения работ

Страница работы
Страница работы
Страница работы

Понравилась эта работа?

или

16 сентября 2021 заказчик разместил работу

Выбранный эксперт:

Автор работы
BESKONECHNO
4.1
Профессор, кэн
Купить эту работу vs Заказать новую
0 раз Куплено Выполняется индивидуально
Не менее 40%
Исполнитель, загружая работу в «Банк готовых работ» подтверждает, что уровень оригинальности работы составляет не менее 40%
Уникальность Выполняется индивидуально
Сразу в личном кабинете Доступность Срок 1—6 дней
550 ₽ Цена от 500 ₽

5 Похожих работ

Отзывы студентов

Отзыв pocya об авторе BESKONECHNO 2016-06-22
Курсовая работа

Благодарю автора за ответственное отношение к выполнению заказа.

Общая оценка 5
Отзыв Анна Петрова об авторе BESKONECHNO 2014-05-15
Курсовая работа

Огромная благодарность автору за выполненную работу!Преподаватель очень хвалил работу

Общая оценка 5
Отзыв Филипп Минаев об авторе BESKONECHNO 2016-05-23
Курсовая работа

спасибо за работу!

Общая оценка 5
Отзыв hakeng об авторе BESKONECHNO 2014-09-30
Курсовая работа

Все сделано отлично и в срок, все исправления были сделаны оперативно. Отличный автор!

Общая оценка 5

другие учебные работы по предмету

Готовая работа

Высокоскоростная корпоративная, локальная вычислительная сеть предприятия

Уникальность: от 40%
Доступность: сразу
1490 ₽
Готовая работа

Программный комплекс задач поддержки процесса использования смарт-карт клиентами АЗС

Уникальность: от 40%
Доступность: сразу
2000 ₽
Готовая работа

Защита локальной сети программными средствами microsoft

Уникальность: от 40%
Доступность: сразу
1000 ₽
Готовая работа

Разработка мобильного приложения для планирования и организации задач пользователя

Уникальность: от 40%
Доступность: сразу
2400 ₽
Готовая работа

Информационная веб-система организации процесса чартеринга яхт

Уникальность: от 40%
Доступность: сразу
2000 ₽
Готовая работа

Обзор рынка программных средств self-service BI инструментов

Уникальность: от 40%
Доступность: сразу
600 ₽
Готовая работа

Разработка голосового чата для локальной сети

Уникальность: от 40%
Доступность: сразу
1800 ₽
Готовая работа

Конфигурирование поисковых серверов для сети Интернет и локальной сети

Уникальность: от 40%
Доступность: сразу
1000 ₽
Готовая работа

Коммутации в телеграфных сетях

Уникальность: от 40%
Доступность: сразу
1500 ₽
Готовая работа

Динамические структуры данных

Уникальность: от 40%
Доступность: сразу
600 ₽
Готовая работа

Разработка и интегрирование в технические компании информационных веб-ресурсов

Уникальность: от 40%
Доступность: сразу
2000 ₽
Готовая работа

Разработка системы "Умный дом" для использования в загородном доме

Уникальность: от 40%
Доступность: сразу
1000 ₽