Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод указания по лабор работам.rtf
Скачиваний:
8
Добавлен:
14.11.2019
Размер:
7.3 Mб
Скачать

Отчётность:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Процесс сайта s содержит два множества идентификаторов процессов, Inc(s) и NInc(s). Неформально говоря, Inc(s) – это множество процессов u таких, что событие в u предшествует последнему произошедшему событию в s, а NInc(s) – множество процессов u таких, что для всех соседей r процесса u событие в r предшествует последнему произошедшему событию в s. Эта зависимость поддерживается следующим образом. Изначально Inc(s) = {s}, а NInc(s) = . Каждый раз, когда одно из множеств пополняется, процесс s посылает сообщение, включая в него Inc(s) и NInc(s). Когда s получает сообщение, включающее множества Inc(s) и NInc(s), полученные идентификаторы включаются в версии этих множеств в процессе s. Когда s получит сообщения от всех соседей по входу, s включается в NInc(s). Когда два множества становятся равны, s выполняет процедуру return(OK). Из неформального смысла двух множеств следует, что для каждого процесса u такого, что событие в u предшествует некоторому событию e, выполняется следующее: для каждого соседа r процесса u событие в r также предшествует событию e.

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

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

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

MSMQ— это приложение, гарантирующее надежную посылку и получение сообщении. Сообщения могут быть всем, чем угодно, начиная от XML-файлов и заканчивая наборами записей ADO и документами Microsoft Word. Не имеет значения, что посылать MSMQ, важно знать, что все, что поступило в очередь, будет с гарантией доставлено.

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

  • прямые вызовы между клиентами и серверами по соединениям могут завершитьсянеудачей. Механизм MSMQ позволяет избежать такой ситуации;

  • сообщения могут быть посланы очередям, когда ресурсы недоступны, к примеру, это другие очереди, и получены, когда ресурсы вновь становятся доступными;

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

  • MSMQ на 100% поддерживает транзакции, поэтому она может быть частью транзакции СОМ+, поддерживает механизм доставки "все или ничего";

  • доступ к MSM.Q основан на Windows Security, что гарантирует работу в защищенной среде.