Автореферат (1148253), страница 3
Текст из файла (страница 3)
Несмотря на то, что ранее данный подход не былпопулярен в связи с создаваемой им повышенной нагрузкой на сеть, в условиях радиоэфира (или иной разделяемой и принципиально широковещательнойсреды) его недостатки нивелируются, что позволяет эффективно задействоватьего с целью минимизации времени, в течение которого отдельный узел системыможет обладать уникальными данными (которые не могут быть восстановленыв случае выхода данного узла из строя).
На основе модели консистентности повыходу, а также модели по входу, была создана новая модель, расширившаяпервую модель такими новыми для неё свойствами как наличие связи между1По имени операционной системы реального времени МАКС, интеграция с которой была осуществлена.11общими и синхронизационными переменными и разделение захватов на эксклюзивные и неэксклюзивные. Данное сочетание свойств позволило добитьсялучших характеристик в заданной предметной области чем любая из исходныхмоделей.Описание модели состоит из шести правил и приведено в разделе 2.2.1.диссертации.
Схематично данную модель можно выразить рисунком 1.1 : () ()1 ()2 ()2 :() ()2 ()3 :()1Рисунок 1 – Модель расширенной консистентности по выходуВ данной нотации процессы системы расположены по вертикали, а шкалавремени по горизонтали. – процесс номер . Каждый процесс выполняетсяна отдельном узле. и – операции чтения и записи (от англ. read и write).Тройка () означает операцию над памятью, где – вид операции (или ), – обозначение адресуемой переменной, а – значение, являющееся входным для операции записи или же выходным в случае операции чтения.() – вход в критическую секцию X (от англ. start), () – выход из неё (отангл.
finish). Подразумевается, что синхронизационная переменная проассоциирована с общей переменной . Изначально все переменные равны нулю.Как и в модели консистентности по входу, консистентность в предложенной модели обеспечивается исключительно после входа в соответствующую критическую секцию (что можно видеть на примере процессов 2 и 3 ).
Однакооперации входа в секцию типа () здесь не инициируют поиск соответствующих данных в сети, а лишь создают блокировку, ожидая завершения ранееинициированной (операцией типа ()) передачи данных в случае если передача к данному моменту еще не успела завершиться.За внешним равноправием и взаимозаменяемостью узлов системы был расположен слой абстракции, вводящий определённую специализацию, а именно– понятие роли, которую узел выполняет в системе.
Соответственно был разработан алгоритм ролей и переходов, назначение которого – соответствоватьусловиям высокой динамичности системы, обеспечивая её устойчивость к сбоямотдельных узлов. Схематично роли и возможность их изменения представлены12на рисунке 2.Расшифровка названий ролей икраткое пояснение к ним приведены втаблице 1.clnТак как МАКС DSM является диnewнамической системой, роли узлов немогут быть фиксированными. В свяsrvbckзи с этим каждый узел потенциальноможет выполнять любую роль, а также менять её в процессе работы, за Рисунок 2 – Схема возможных изменений ролей узла в МАКС DSMединственным исключением – оставиводнажды роль Новичок, вернуться кэтой роли узел уже не сможет1 .Название Сокращение ОписаниеНовичокСерверКопияКлиентnewsrvbckclnНовый узел, роль не определенаГлавный узел в системеРезервная копия сервераОбычный узелТаблица 1 – Роли узлов в МАКС DSMУсловия, в которых узел может изменить свою роль, выражены алгоритмом на рисунке 3.
Для удобства, названия процедур отражают текущую рольузла. Значения переменных 1 , 2 , 3 определяются низлежащим сетевым уровнем и зависят от свойств конкретных каналов.В дополнение к алгоритму выше, в данной главе были рассмотрены вопросы обнаружения сбоев в системе, такие как потеря связи в процессе передачигруппы низкоуровневых сообщений, а также построена модель обмена сообщениями в системе и отмечена необходимость проработки реакции системы наотказ произвольного узла в каждом из возможных состояний системы.Анализ особенностей ранее созданных DSM систем, отрицательно сказывающихся на их популярности, позволил выработать концепцию (принципы и1Ситуации подобно перезагрузке узла мы рассматриваем как исчезновение узла и возникновение нового.131:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:procedure Новичокif продолжительность тишины в эфире > 1 thenроль ← Серверelse if у Сервера нет Копии thenроль ← Копияelseроль ← Клиентprocedure Клиентif продолжительность «молчания» Сервера > 2 thenроль ← Серверelse if сервер требует стать Копией thenроль ← Копияprocedure Копияif продолжительность «молчания» Сервера > 3 thenроль ← Серверprocedure Серверif нет Копии И есть Клиенты thenпотребовать от произвольного Клиента стать Копией◁ 3 > 2Рисунок 3 – Алгоритм смены роли узлом в МАКС DSMтребования) к прикладному интерфейсу, свободному от выявленных недостатков.
Основными требованиями стали реализация на стандартном языке Си++,отсутствие требований прикладному программисту по изучению новых техникпрограммирования или средств разработки, а также контроль соответствия требованиям модели на этапе компиляции.Таким образом, в данной главе были решены все поставленные во введениитеоретические задачи: предложены усиленная модель консистентности по выходу, алгоритм ролей и переходов, а также сформулирована концепция прикладного интерфейса (в виде требований). На основе полученных результатов в следующей главе рассматривается программная реализация создаваемого решенияМАКС DSM, включая разработку интерфейса прикладного взаимодействия сданной системой, результаты проведённых измерений производительности.В третьей главе описана реализация прикладного интерфейса, принципы системы сообщений и ключевые фрагменты протокола, рассмотрена реали14зация отказоустойчивости, а также представлен пример программы, функционирующей на нескольких устройствах и демонстрирующей все возможностисозданной системы.
В завершение рассматривается испытательный стенд и приводятся результаты измерений производительности решения.Использование техники метапрограммирования (посредством языка C++и директив препроцессора, что отличается от ранее применявшихся при реализации DSM систем подходах), позволило достичь сочетания в одном решениикачеств, ранее совместно не встречавшихся: простоты в использовании, проверки корректности на этапе компиляции и отсутствия зависимости от специфичных компонентов среды разработки (таких как специализированный дляконкретной DSM системы компилятор или препроцессор). Ожидается, что данные свойства будут способствовать широкому распространению разработанногорешения.Система ролей позволила выстроить лаконичный протокол обмена сообщениями (каждое из которых может быть лишь одного из 16-ти типов), чтоповышает надежность реализации решения. Дополнительно был введён принцип атомарности высокоуровневых сообщений (транзакций): высокоуровневаятранзакция уровня DSM, состоящая из множества низкоуровневых сообщений,не вызывает изменения состояния системы, если в процессе передачи одного изнизкоуровневых сообщений произошел сбой.
Данный подход позволил снизитьсложность реализации требования отказоустойчивости, так как предоставилвозможность оперировать только высокоуровневыми понятиями. Отказоустойчивость на уровне DSM реализуется рассмотрением всех возможных ситуацийвыхода из строя устройств любой роли, в том числе одновременного выхода изстроя нескольких устройств. Для каждой ситуации предусмотрена процедуравосстановления системы. Хотя восстановление системы после сбоя отдельногоузла или нескольких узлов происходит достаточно быстро, следует отметить,что в текущей реализации не обрабатывается ситуация, когда сбой происходитв процессе восстановления системы от предыдущего сбоя (каскадный сбой) –данный недостаток необходимо вынести на дальнейшую проработку вне рамоктекущего исследования.На верхнем уровне узел МАС, функционирующий под управлением ОСРВМАКС с интегрированным решением МАКС DSM можно представить в виде,15изображенном на рис.
4. Диаграмма основных классов МАКС DSM в нотацииUML представлена в разделе 3.5.2. диссертации.Рисунок 4 – МАКС DSM в составе функционирующего узла МАСВ данной главе также рассмотрена экспериментальная распределённаяпрограмма, выполняющая вычислительную задачу на нескольких устройствах.Показано, что благодаря МАКС DSM, исходный код программы оказывается крайне лаконичен, обеспечивая при этом синхронную работу несколькихустройств и работоспособность системы в случае выключения отдельных узлов.Таким образом, работоспособность созданного решения была доказана.Глава завершается описанием проведенных измерений – как на реальном,специально созданном оборудовании (для системы от двух до пяти устройств,рис. 5), так и на модели (от двух до 16 устройств).Для более глубокого понимания происходящих в системе процессов и болеекачественной интерпретации результатов, аналогичные представленным вышеизмерения были проведены для всех логических уровней сетевых протоколов,полученные результаты – исследованы и объяснены.
Введение уровня МАКСDSM снижает производительность системы (относительно низлежащего сетевоСкорость, транзакций в 10 секунд (tp10s)163002 узла3 узла4 узла5 узлов25020015010050020406080100120140160180200220240Длина группы распределённых переменных, байт (bytes)Рисунок 5 – Cкорость DSM уровня (2–5 узлов)го уровня) приблизительно в десять раз, что представляет собой ожидаемыйрезультат и, в основном, является следствием количества сообщений, необходимых для выполнения отдельной операции (транзакции) данного уровня (включая подтверждения о доставке сообщений).ЗаключениеЦелью данного диссертационного исследования была разработка моделей,алгоритмов и программных средств, реализующих концепцию распределённойобщей памяти для мультиагентных систем в IoT и позволяющих существенноупростить и ускорить создание прикладных решений в данной области. Заявленная цель была достигнута.Итоги выполненного исследования.