По специальному курсу Распределенные системы и алгоритмы

Лабораторные работы
по специальному курсу

«Распределенные системы и алгоритмы»

Миков А.И., Замятина Е.Б.

Лабораторные работы должны быть выполнены магистрами 1 года обучения, которые изучают курс «Распределенные системы и алгоритмы» и обучаются по… Лабораторные работы предполагают реализацию алгоритмов балансировки… В результате выполнения лабораторных работ студенты должны представить программу, исходные тексты, презентацию своей…

Оценка загрузки

В основном такая база данных состоит из двух типов данных: - Данные о работе процессора (информация уровня процессора). Эти данные… - Данные о работе распределенного приложения. Данные включают время выполнения отдельной задачи, время простоя,…

Инициализация балансировки загрузки

Для этого следует: · Определить момент возникновения дисбаланса загрузки. · Определить степень необходимости балансировки путем сравнения возможной пользы от ее проведения и затрат на нее. …

Принятие решений в процессе балансировки

При централизованной стратегии специальный компьютер собирает глобальную информацию о состоянии всей вычислительной системы и принимает решение о… При полностью распределенной стратегии на каждом процессоре выполняется… Рекомендации по выполнению:следует придерживаться централизованной стратегией.

Перемещение объектов

После принятия решений о балансировке происходит перемещение объектов среди процессоров для достижения нового баланса загрузки. При перемещении объекта должна обеспечиваться целостность его состояния.

Рекомендации по выполнению:следует использовать технологию .Net Remoting.

Использование .NET Remoting

Клиент содержит объект, называемый прокси, который на самом деле является указателем на объект, существующий в процессе сервера. Клиент думает, что… Так как удаленный доступ идет в комплекте со стеком каналов и форматеров по…

Терминология .NET Remoting

Как и любая другая технология .NET Remoting вводит свои термины и понятия. Рассмотрим основные термины, связанные с удаленным доступом в .NET.

MarshalByRefObject

Сериализуемый (ByValue - по значению) В отличие от MarshalByRefObject; мы можем реализовать объект, который, будучи… В .NET все, что мы должны сделать, чтобы передавать наш объект от сервера к клиенту по значению -это предоставить…

Форматер

Создание форматера и подключение его к структуре удаленного доступа на самом деле не будет очень сложным, так как структура предлагает базовые… В дополнение к предоставлению возможности создавать ваш собственный форматер,… Двоичный форматер очень эффективен, так как он может сериализовать объект в очень маленький байтовый поток. Все…

Канал

Аналогично тому, как клиент и сервер должны договориться по формату сообщений, они также должны договориться о механизме взаимодействия, или канале, с помощью которого будут передаваться данные. Каналы являются транспортными механизмами, с помощью которых передаются данные. Например, World Wide Web использует в качестве соглашения по каналу взаимодействия HTTP. Если клиентский компьютер может послать запрос HTTP к серверу, то сервер может ответить при помощи ответа HTTP и взаимодействие успешно состоится. Если клиентский компьютер передает запрос, используя канал SMTP, и получает данные в формате HTTP, то взаимодействия не произойдет. Аналогично веб, клиенты и серверы удаленного доступа должны договориться о канале взаимодействия.

Аналогично тому, как можно в .NET Remoting написать наш собственный форматер, также возможно создать наш собственный канал. Создание канала будет вопросом реализаций набора идентификаторов, которые будет понимать как клиент; так и сервер. Например, мы можем реализовать канал SMTP и посылать сообщения в формате SMTP.

.NET Framework поставляется с двумя готовыми каналами, которые называются каналами TCP и HTTP. Канал TCP взаимодействует по протоколу TCP и очень эффективен. Канал HTTP посылает сообщения по протоколу HTTP, высокоуровневому протоколу, основанному на TCP/IP.

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

Канал HTTP посылает сообщения по протоколу HTTP. Если процессы клиента и сервера могут осуществлять взаимодействие по каналу HTTP, то взаимодействие будет успешным. Так как HTTP основан на TCP, канал HTTP не так эффективен, как взаимодействие на основе TCP. Однако так как протокол HTTP очень популярен и реализован на большинстве платформ, канал HTTP более гибок.

Принципы работы с каналами/форматерами

Создание объекта с возможностью удаленного доступа

Целью данной лабораторной работы является демонстрация вызова функциональности сервера через вызов удаленного доступа. В данной работе мы создадим объект с простым вычислительным методом и покажем… - вызываемый удаленно объект;

Создание сервера

using System; using System.Collections.Generic; using System.Text;

Создание клиента

using System; using System.Collections.Generic; using System.Text;

Использование волнового алгоритма

Алгортм «Эхо» Алгоритм «Эхо» может работать для любой топологии распределенной системы. Как… Алгоритм использует метод прохода по графу, называемый «поиск (или просмотр графа) в ширину», описанный, в частности,…

While counter < card(Out(this)) do

begin receive token; counter := counter + 1 end ;

return(OK)

end ;

 

Процессы для не-инициаторов:

begin receive token from u ; pre(this) := u ; counter := counter + 1 ;

for (u Î Out(this))&(u ¹ pre(this)) do out token to u ;

While counter < card(Out(this)) do

begin receive token; counter := counter + 1 end ;

out token to pre(this)

End

 

Отчётность:

В результате выполнения лабораторной работы должны быть представлены следующие материалы:

1. Программа;

2. Исходные тексты;

3. Презентация работы;

4. Презентация, в которой освещаются вопросы реализации консервативных алгоритмов.


 

Лабораторная работа №2

Разработка и реализация централизованного алгоритма балансировки для ВС с произвольной топологией

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

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

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

Рекомендация: при выполнении работы использовать программные средства технологии .Net.

Централизованный алгоритм балансировки приведен в предыдущей лабораторной работе

Для передачи сообщений в сети следует реализовать волновой алгоритм

Алгоритм Финна

Процесс сайта s содержит два множества идентификаторов процессов, Inc(s) и NInc(s). Неформально говоря, Inc(s) – это множество процессов u таких,… Рекомендации по выбору инструментальных средств.: Для передачи сообщений от узла к узлу рекомендуется использовать службу очередей сообщений:

Служба очередей сообщений

Необходимость MSMQ должна проявляться на этапе разработки приложения. Ее нельзя добавить после, так как очередь является стержнем надежного… прямые вызовы между клиентами и серверами по соединениям могут… сообщения могут быть посланы очередям, когда ресурсы недоступны, к примеру, это другие очереди, и получены, когда…

Настройка MSMQ

1. Щелкнуть правой кнопкой по ярлыку «Мой компьютер» и в контекстном меню выбрать пункт «Управление». В результате выполненного действия будет… 2. В окно «Server Explorer» Visual Studio .NET необходимо открыть узел Servers. В списке доступных сервисов должен…