Содержание к диссертации
Введение
1. Исследование проблем оперативного регулирования распределенных систем и постановка задачи диссертационных исследований 13
1.1. Основные требования к архитектуре распределенных систем обработки информации 14
1.2. Топология распределенных систем 18
1.3. Функциональные уровни распределенных систем 28
1.4. Обобщенная структура распределенных систем 30
1.5. Обзор технологий разработки распределенных систем 35
1.6. Проблемы регулирования вычислительной нагрузки в распределенных системах 40
1.7. Постановка задачи диссертационного исследования 45
Выводы по главе 1 48
2. Анализ и разработка методов и алгоритмов нейропрогнозирования для оперативного регулирования распределенной централизованно-кольцевой системы 50
2.1. Анализ повышения эффективности распределенных централизованно-кольцевых систем обработки информации 50
2.2. Разработка архитектуры распределенных систем с оперативным регулированием вычислительной мощности 54
2.3. Анализ основных методов прогнозирования вычислительной нагрузки 58
2.4. Обоснование выбора типа нейронной сети для реализации механизма оперативного прогнозирования 66
2.5. Разработка общего подхода к прогнозированию на основе аппарата нейронных сетей 73
2.6. Метод прогнозирования нагрузки на основе многослойного перцептрона 80
2.7. Способ подготовки данных нейронной сети 93
Выводы по главе 2 96
3. Программная реализация механизма оперативного регулирования распределенной централизованно-кольцевой системы 97
3.1. Архитектура и состав библиотеки компонентов 97
3.2. Классы и программная реализация функциональности нейронной сети 100
3.3. Программная реализация механизма обучения многослойного перцептрона 107
3.4. Программная реализация модуля прогнозирования вычислительной нагрузки распределенной централизованно-кольцевой системы 114
Выводы по главе 3 121
4. Экспериментальное исследование эффективности механизма оперативного регулирования в распределенной централизованно-кольцевой системе с применением нейропрогнозирования 122
4.1. Разработка имитационной модели для оперативного регулирования распределенных централизованно-кольцевых систем 123
4.2. Определение параметров экспериментальных исследований 129
4.3. Результаты экспериментальной проверки времени обработки запросов и количества ресурсов вычислителей с применением оперативного регулирования 139
Выводы по главе 4 162
Заключение 163
Литература 165
- Основные требования к архитектуре распределенных систем обработки информации
- Анализ повышения эффективности распределенных централизованно-кольцевых систем обработки информации
- Классы и программная реализация функциональности нейронной сети
- Разработка имитационной модели для оперативного регулирования распределенных централизованно-кольцевых систем
Введение к работе
В последние годы значительно увеличилось количество пользовательских компьютеров. Все чаще компьютеры объединяются в сети с выходом в Интернет не только на предприятиях и в организациях, но и в жилых домах. Все это создает хорошие предпосылки для развития интернет-технологий. Востребованность электронных услуг заставляет вводить в строй глобальные системы, обслуживающие разнообразные запросы пользователей. Яркими примерами таких систем являются интернет-порталы, электронные магазины, системы управления предприятиями. В качестве экспериментов уже появляются распределенные системы оплаты коммунальных услуг через Интернет. Практически все функционирующие в настоящее время системы являются распределенными. При этом используется "тонкий" клиент, реализующий функции презентационного слоя и сервер приложений, построенный по кольцевой схеме. Вся обработка, а значит основная нагрузка, приходится на серверную часть такой системы.
Существует множество систем, которые обрабатывают большое количество тяжелых, с точки зрения нагрузки, заявок. Зачастую для обработки поступающей в систему заявки формируется поток заявок к другим, функционирующим выше по иерархии, системам. Обработка одной подобной заявки может достигать нескольких минут, что достаточно критично в условиях большой загруженности. Кроме того, для обработки таких заявок обычно требуется значительное количество ресурсов вычислительной системы. Результатом перегрузки, зачастую, является немотивированный отказ сервера в обработке.
Учитывая важность, а в некоторых случаях критичность, доступности и работоспособности тех или иных вычислительных ресурсов серверная часть системы размещается на заведомо более
мощном оборудовании. Это ведет к значительному удорожанию системы. При этом зачастую, практикуется вариант размещения на одних и тех же вычислительных мощностях нескольких серверов. При этом настройка каждого из серверов на оптимальную работу при минимально возможном использовании ресурсов представляет значительную сложность. Выбор вычислительной мощности системы является серьезной проблемой при настройке сервера на оптимальное функционирование.
Большинство средних и крупных распределенных систем в настоящее время создается по централизованно-кольцевой схеме. При этом серверная часть представляет собой кольцо однотипных вычислительных узлов. Разработчики серверного программного обеспечения достаточно редко используют для оптимизации управления серверного кольца какие-либо средства. Часто количество серверных узлов жестко устанавливается в настройках и является постоянным в независимости от нагрузки. Реже работающая система на основе статистики нагрузки вычисляет некоторую среднюю величину нагрузки и далее использует ее в качестве эталона для определения необходимого количества вычислительных узлов. При этом большую часть времени занятые системой ресурсы простаивают, т.к. ситуация, когда поток пользовательских заявок равномерен и постоянен, бывает чрезвычайно редко. Существующие в настоящее время пакеты разработки распределенного программного обеспечения (Microsoft DCOM, OMG Corba, Microsoft .NET, Java RMI) не предоставляют готовых решений для оперативного регулирования серверным программным обеспечением (ПО) централизованно-кольцевых систем.
Перспективность развития автономных вычислений, концепция компании IBM, выдвинутая, как ключевая инициатива самоуправляющихся вычислительных систем, свидетельствует о
необходимости развития новых и совершенствовании существующих механизмов автономного и оперативного управления подсистем крупных распределенных сетей.
Таким образом, разработка алгоритма оперативного регулирования централизованно-кольцевой системы для эффективного решения задач оперативного масштабирования крупных распределенных систем и его программной реализации, может стать общим решением для любой распределенной системы.
Теоретические основы распределенных и параллельных вычислений рассмотрены в работах Барского А.Б. [4], Воеводина В.В.[12], Воеводина Вл.В.[12,13], Крюкова В.А. [53,54], Топоркова В.В. [85], Таненбаума Э. [82,83], Ван Стеена М.[83] и др. В работе Гоффа М.К. [31] проанализированы основные аспекты разработки распределенного программного обеспечения, показаны основные проблемы и перспективы. Практические вопросы проектирования и разработки распределенных систем освещены в работах Брауде Э. [9], Буча Г. [10], Дейтела Х.М. [34], Фаулера М. [87,88], Эммериха В. [94], Грегори Р. Эндрюса [95].
Анализ существующих исследований, посвященных решению задач оперативного регулирования централизованно-кольцевых систем, показал, что ни одна из современных технологий разработки распределенного программного обеспечения не имеет в своем составе аппарата для решения задач оперативного регулирования, что связано с отсутствием практики решения таких задач и недостаточно проработанной теорией для синтеза универсального метода прогнозирования. Поэтому представляются актуальными исследования, направленные на разработку алгоритмов оперативного регулирования распределенных систем обработки информации, для эффективного решения задач оперативного масштабирования крупных
распределенных систем на основе математического аппарата нейронных сетей.
Цель работы состоит в разработке алгоритмов и программных компонентов механизма оперативного регулирования распределенных централизованно-кольцевых систем, позволяющих увеличить производительность серверного программного обеспечения и уменьшить количество используемых вычислительных ресурсов в распределенных централизованно-кольцевых системах с целью повышения эффективности решения задач оперативного масштабирования крупных распределенных систем.
Поставленная цель достигается за счет интеграции подсистемы оперативного регулирования распределенной системы на основе нейропрогнозирования нагрузки в схему распределенной централизованно-кольцевой системы.
Основные задачи работы: -исследование способов построения распределенных систем на основе разделения функциональности на слои;
-определение особенностей организации межузлового взаимодействия в
распределенных системах и разработка на их основе новых алгоритмов
нейропрогнозирования для оперативного регулирования
распределенных централизованно-кольцевых систем;
-разработка архитектуры и программная реализация средств
нейропрогнозирования для оперативного регулирования
распределенных централизованно-кольцевых систем;
-экспериментальная проверка реализации механизма
нейропрогнозирования для оперативного регулирования в распределенной централизованно-кольцевой системе.
Методы исследования. При выполнении исследований использовался математический аппарат теории графов, теория массового
обслуживания и теория нейронных сетей, а также методы имитационного моделирования сложных систем.
Научная новизна. В работе получены следующие новые научные результаты:
Предложен новый алгоритм нейропрогнозирования для оперативного регулирования распределенной централизованно-кольцевой системы, позволяющий уменьшить количество простаивающих обработчиков серверного кольца на 5% и сократить время обработки клиентских заявок в 2,6 раза.
Обоснована необходимость применения математического аппарата нейронных сетей при синтезе подсистемы прогнозирования алгоритмов оперативного управления распределенной централизованно-кольцевой системы.
Предложен новый способ преобразования входных и выходных переменных нейронной сети для стандартизации формата переменных, основанный на двоичном преобразовании данных по коду Грея, позволяющий сократить очередь входящих заявок на 10% в сравнении с традиционными способами двоичного кодирования.
Разработана объектно-ориентированная архитектура классов и программная реализация алгоритма нейропрогнозирования для оперативного регулирования вычислительной мощности централизованно-кольцевой системы, позволяющая стандартизировать его использование в распределенных системах.
Разработан пакет программных компонентов для механизма оперативного регулирования вычислительной мощности распределенных систем с использованием различных способов кодирования значений переменных.
Разработана имитационная модель централизованно-кольцевых распределенных систем в виде программного комплекса с
возможностью сбора и анализа результатов в хранилище данных на основе СУБД.
Практическая ценность работы. Применение предложенных технических решений позволяет уменьшить количество задействованных ресурсов, увеличить производительность во время пиков нагрузки в централизованно-кольцевой системе обработки информации за счет более эффективного распределения ресурсов вычислителей.
Разработанный программный комплекс для оперативного регулирования позволяет создавать самонастраивающиеся и адаптирующиеся к вычислительной нагрузке распределенные серверные системы для корпоративных информационных систем, систем управления предприятием и производством, WWW-серверов.
Разработанные программные компоненты представляют собой законченную программную реализацию в виде библиотеки классов, применимую практически в любой разрабатываемой или уже внедренной крупной централизованно-кольцевой системе с минимальными доработками по взаимодействию.
Проведенные эксперименты выявили уменьшение очереди входящих заявок более чем в 7 раз, сокращение задействованных ресурсов на 5%, уменьшение времени обработки заявок более чем в 2,6 раза при применении алгоритмов нейропрогнозирования для оперативного регулирования распределенной централизованно-кольцевой системы.
Полученные результаты, являются достоверными в силу того, что основные теоретические выводы и положения диссертации научно обоснованны и подтверждены результатами экспериментальных исследований автора, актами внедрения результатов диссертационных исследований.
Личный вклад автора. Все основные результаты получены автором лично. Главными из них являются:
разработка алгоритма нейропрогнозирования для оперативного регулирования распределенной централизованно-кольцевой системы;
разработка объектно-ориентированной архитектуры и
программной реализации многослойного перцептрона с обучением по
методу обратного распространения ошибки и его интеграция в механизм
оперативного регулирования централизованно-кольцевых
распределенных систем;
реализация разработанного алгоритма в виде библиотеки повторно используемых классов и компонентов;
создание имитационной модели централизованно-кольцевых систем обработки информации;
разработка методики экспериментальной проверки эффективности внедрения алгоритмов нейропрогнозирования для оперативного регулирования в распределенные централизованно-кольцевые системы различных типов;
разработка серверной части информационно-поисковой системы нормативно-правовой документации "НПДок" и серверного программного обеспечения распределенной системы управления сетью "Утконос" компании "Новый Импульс" с применением механизма оперативного регулирования.
Реализация и внедрение результатов работы. Результаты
работы использованы кафедрой Информатики и программного
обеспечения вычислительных систем МИЭТ при создании
информационно-поисковой системы нормативно-правовой
документации "НПДок" [29,30]. Применение разработанных программных компонентов при реализации серверной части информационно-поисковой системы позволило существенно сократить
время обработки пользовательских запросов и количество используемой машинной памяти. Кроме того, разработанные программные компоненты использованы при реализации серверного программного обеспечения автоматизированной системы управления распределенной сети "Утконос" компании "Новый Импульс-Центр", что позволило сократить использование системной памяти серверов. Результаты работы используются в учебном процессе Московского государственного института электронной техники при чтении лекций кафедрой "Информатики и программного обеспечения вычислительных систем" (ИПОВС) по курсам "Автоматизированные информационные системы" и " Операционные системы, среды и оболочки ". Акты внедрения результатов диссертационной работы приведены в Приложении 1.
На защиту выносятся:
анализ состояния проблемы построения распределенных систем и разделения их функциональности на слои;
адаптированный к применению в составе централизованно-кольцевых систем алгоритм нейропрогнозирования для оперативного регулирования вычислительной мощности распределенной централизованно-кольцевой системы;
объектно-ориентированная архитектура и программная реализация алгоритма нейропрогнозирования и механизма оперативного регулирования централизованно-кольцевыми распределенными системами на основе нейросетевого прогнозирования нагрузки;
имитационная модель централизованно-кольцевых вычислительных систем в виде программного комплекса с возможностью сбора и анализа результатов в хранилище данных на основе СУБД;
результаты экспериментальной проверки снижения времени обработки клиентских заявок и экономии вычислительных ресурсов
при применении алгоритма нейропрогнозирования для оперативного регулирования в централизованно-кольцевой распределенной системе.
Апробация работы. Основные положения диссертационной
работы докладывались и обсуждались на следующих научных
конференциях:
IX Международная научно-практическая конференция студентов,
аспирантов и молодых ученых "Современные техника и технология".
Томск, ТПУ, 2003 г.
IV Всероссийская научно-техническая конференция "Новые информационные технологии". Москва, МГАПИ 2003 г.
XI всероссийская межвузовская научно-техническая конференция студентов и аспирантов. Москва, МИЭТ, 2004 г.
X всероссийская межвузовская научно-техническая конференция
студентов и аспирантов. Москва, МИЭТ, 2003 г.
IX всероссийская межвузовская научно-техническая конференция студентов и аспирантов. Москва, МИЭТ, 2002 г.
Публикации. По теме диссертации опубликовано 12 печатных работ, в том числе 7 научных статей и 5 тезисов доклада. Без соавторов опубликовано 9 работ.
Структура и объем диссертации. Диссертационная работа состоит из введения, четырех глав, заключения, списка литературы из 156 наименований и приложения. Диссертация включает 164 страниц основного текста, 73 страницы с рисунками и таблицами, 25 страниц приложений.
Основные требования к архитектуре распределенных систем обработки информации
В настоящее время достаточно хорошо проработана теория [10,32,97,101,91,12] и разработаны методики создания функциональной составляющей распределенных систем. К наиболее известным и универсальным методам относятся технология Microsoft COMADCOM (Common Object Method\ Distributed Common Object Method) [61,94] спецификация CORBA (Common Object Request Broker Architecture) разработанная консорциумом OMG (Object Management Group)[68,94,135] и появившаяся вместе с Java технологии RMI/Jini/JMX/Jire/JXTA [93,90,68,42,34]. Кроме того, существует стандарт "де факто" архитектуры распределенной системы. Согласно этому стандарту архитектура распределенной системы основана на реализации следующих требований [87]: масштабируемость; открытость; неоднородность; разделение ресурсов; отказоустойчивость; прозрачность. Все нефункциональные требования должны быть реализованы в системе еще до этапа реализации бизнес-логики, и функционировать независимо от запрограммированных в последствии алгоритмов. Совокупность реализованных нефункциональных требований составляет систему управления распределенной системой. Ниже рассматривается суть каждого из этих требований.
В общем случае архитектура распределенной системы называется масштабируемой, если она может адаптироваться к любому увеличению нагрузки. Такую возможность обеспечивает выделение системе необходимых вычислительных ресурсов. При этом архитектура системы должна позволять без остановки функционирования или существенных задержек вводить и выводить вычислительные ресурсы. В крупных распределенных системах существуют классы однотипных вычислительных компонентов, количество которых определяют способность системы выполнять операции, реализуемые этими компонентами. Обычно в качестве таких компонентов выделяются наиболее загруженные части системы, таким образом, общая вычислительная способность системы складывается из вычислительной мощности каждого из таких компонентов. При условии однотипности вычислительных компонентов их совокупная вычислительная мощность определяется лишь их количеством.
Одним из необходимых свойств программного обеспечения в целом и архитектуры системы в частности, является открытость. Открытость позволяет легко расширять и модифицировать систему[3]. Для этого компоненты системы должны иметь заранее определенные и подробно описанные интерфейсы. Требование открытости обусловлено тем, что общая архитектура не должна меняться даже при изменении функциональных требований. Система должна допускать интеграцию новых компонентов, отвечающих новым функциональным требованиям. Таким образом, открытость сводится к полной формализации множества операций, реализуемых компонентом. Формализация может быть представлена как в виде текстовой информации (справочники, документация, и т.д.) в случае с Microsoft COM\DCOM [94], так и в бинарном виде с возможностью перевода в текстовый, как это реализовано в Java и .NET с помощью механизмов самоанализа (introspection) и рефлексии (reflection) [33].
Неоднородность компонентов обуславливается использованием различных технологий для реализации услуг, управления данными и выполнения команд на аппаратной платформе [3]. Неоднородность распределенной системы возникает по ряду причин. Нередко компоненты приобретаются в готовом виде. Для вновь конструируемых компонентов возникает необходимость взаимодействия с существующими компонентами. Компоненты могут быть написаны разными разработчиками. В любом из этих случаев компоненты с большой вероятностью будут неоднородными. Причинами неоднородности могут быть независимость разработчиков компонентов, создание компонентов в разное время или тот факт, что для данного компонента лучше подходит одна из нескольких технологий.
Под ресурсами понимается аппаратура, программное обеспечение и данные. Разделение ресурсов часто требуется для более эффективного использования дорогостоящих ресурсов. Зачастую в распределенных системах право на доступ к ресурсам реализуется менеджерами ресурсов [72].
Аппаратура, программы и сеть не всегда работают безотказно. Сбои происходят из-за ошибок в программах, неисправностей вспомогательного оборудования, неверных действий пользователя или просто старения оборудования. Например, срок службы жесткого диска составляет от двух до пяти лет, что существенно меньше среднего срока службы вычислительной системы [82]. Под отказоустойчивостью подразумевается способность системы продолжать работу даже при возникновении неисправностей. Требование отказоустойчивость часто обуславливает выбор распределенной архитектуры системы. Зачастую отказоустойчивость систем достигается за счет избыточности. С применением репликации производится удвоение функционирующих компонентов с актуальными данными. При отказе основного компонента в работу вступает его копия, и обслуживание клиентских запросов не прекращается.
Анализ повышения эффективности распределенных централизованно-кольцевых систем обработки информации
Основным показателем эффективности любой информационной системы является время реакции, которое согласно определению [76] есть временной промежуток с момента регистрации заявки до момента отправки ответа. На рис. 2.1. показана диаграмма пребывания запроса в системе обработки от момента поступления до момента отправки ответа.
Любое взаимодействие частей системы производится через этот узел. Таким образом, время прохождения заявки через менеджер транзакций (те ес-тапа&г} вносит свой вклад в общее время обработки запроса. Минимизации нагрузки на менеджер транзакций можно добиться упрощением алгоритма обработки заявок и ответов. Идеальным случаем является выполнение центральным узлом лишь транспортных функций. Время обработки поступившего и отправляемого пакетов напрямую зависит от количества выполняемых над ними операций, примитивность этих обработчиков способствует повышению эффективности работы узла. Безусловно, даже реализация лишь транспортных функций характеризуется конечной пропускной способностью. Вопросы решения проблем масштабирования на транспортном уровне рассмотрены в работе [144]. Оптимизация транспортных задержек (Т ,Т - ) также выходит за рамки данной работы.
Алгоритм обработки запроса реализуется в теле обработчика. Минимизация выполнения обработки запроса (7"" ) вносит существенный вклад в общую производительность системы. Существуют рекомендации по улучшению кода обработчика [78,48] с целью ускорения обработки, действительные для определенных случаев, однако универсальных методов не разработано.
Обработчики, зачастую, требуют регистрации большого числа ресурсов системы при инициализации (7Wc -cm ";) - считывание кода с носителей информации, инициализация обработчика, выделение больших объемов памяти, и т.д.. Деструктуризация обработчика по окончанию формирования ответа также может занять некоторое время. В [94] показано, что время, затраченное на создание компонента-обработчика, часто в несколько раз превышает время обработки. В результате, де-факто, стандартом при разработке таких систем стало применение пула из нескольких ожидающих обработчиков - кольца. При этом особенно остро встает вопрос определения их оптимального количества. Очень часто вычисления требуют резервирования под каждый обработчик большого числа ресурсов системы, что в свою очередь существенно усложняет работу других приложений. При загруженности обработчиков выполнением запросов такой метод оправдывает себя, но поступление запросов в информационные системы часто не является равномерным, вследствие чего, большую часть времени компоненты обработки простаивают, при этом занимая ценные ресурсы ЭВМ.
От величины пула также зависит время ожидания в очереди (Тчиеие). Попадает в очередь запрос в случае отсутствия свободных готовых к обработке узлов-обработчиков. Минимизация данной характеристики напрямую зависит от размера пула.
Другой ни менее важной характеристикой распределенной системы является количество занятых ее ресурсов. Т.к. нагрузка не бывает постоянной, то и нет необходимости держать в постоянной готовности все возможные узлы системы, при этом на высвободившихся ресурсах вычислителя могут функционировать какие-либо другие неприоритетные процессы других систем. Имея информацию о предстоящей нагрузке, система может подстраивать количество активных обработчиков. В результате освободившиеся ресурсы может использовать другая система, функционирующая на этом же вычислителе.
Классы и программная реализация функциональности нейронной сети
Первоочередной является задача экспериментальной проверки способности механизма оперативного регулирования прогнозировать нагрузку. В случае экспериментального подтверждения успешности решения можно будет сделать вывод о целесообразности применения предлагаемого механизма в реальных системах.
Необходимо определить величину прироста показателей эффективности, поскольку именно от этих величин напрямую зависит эффект, получаемый от внедрения предложенных технических решений. При этом необходимо определить эффективное количество дополнительных обработчиков. Необходимость в резервных обработчиках объясняется тем, что нейросеть умеет прогнозировать тенденцию изменения, однако не всегда правильно угадывает абсолютные значения нагрузки.
Кроме того, представляется необходимым уточнить структуру нейронной сети и выбрать наиболее эффективный тип кодировки из реализованных в классах TBinVariable и TGrayVariable. На основе полученных данных можно будет сделать вывод об оптимальных значениях данных параметров и выработать правила генерации эффективной нейронной сети подсистемы прогнозирования.
К числу таковых относится время пребывания заявки в системе. Определение этой величины и ее сравнение с результатом, полученным при использовании традиционного метода статического управления пулом, позволит сделать однозначный вывод о целесообразности использования оперативного регулирования количества обработчиков.
Другой, не менее важной величиной при рассмотрении систем массового обслуживания с ёмкими вычислительными задачами, является количество задействованных ресурсов. Изменение значения этого параметра также должно найти отражение в результатах моделирования. Количество заблокированного ресурса напрямую зависит от количества простаивающих обработчиков, которое, в свою очередь, при необходимости уменьшается за счет оперативного регулирования.
Для проведения моделирования необходимо разработать имитационную модель исследуемой системы. В широком понимании модель - это образ или прообраз объекта или системы объектов, используемый при определённых условиях в качестве их "заместителя" или "представителя". В данной работе имитационная модель централизованно-кольцевой системы - это образец, воспроизводящий, имитирующий работу реальных систем обработки клиентских заявок серверным кольцом однотипных обработчиков. При аналитическом моделировании мы получаем возможность сколь угодно подробного описания рассматриваемой системы. Остановимся на уровне элементов, оказывающих существенное влияние на производительность систем рассматриваемого типа. К их числу относятся: узлы и ПО системы, под управлением которого они работают, средство связи компонентов системы - сеть. Учитывая то, что рассматриваемый механизм не оказывает прямого воздействия на качество работы компьютерной сети и электронных составляющих вычислительной системы, предположим, что качество оборудования в модели не будет оказывать влияние на скорость передачи заявок и ответов. Предположим также, что эта скорость постоянна (Т1ап), а вычислительные мощности оборудования неизменны на протяжении всего периода работы. На рис. 4.1 представлена схема имитационной модели оперативного регулирования централизованно-кольцевой системы. Отличительной особенностью разработанной модели является возможность использования в качестве хранилища данных СУБД, что существенно облегчает и ускоряет анализ результатов моделирования. Также на рис.4.1 приведена схема С целью упрощения проводимых расчетов без потери адекватности реальной системе предполагается, что совокупность генерируемых клиентами запросов можно заменить одним источником. Таким образом, интенсивность потока заявок принимается равной сумме интенсивностей всех входящих в систему клиентов.
При проведении моделирования предполагается, что заявка, по истечении времени Т1т после генерации ее клиентом, оказывается в очереди входящих заявок сервера. При наличии свободных обработчиков она сразу отправляется на обработку, в противном случае остается в очереди ожидать освобождения обработчика. Обработка заявок, находящихся в очереди сервера основана на принципе FIFO (приоритетное обслуживание первого пришедшего). Использование такого принципа характерно для большинства современных систем обработки пользовательских заявок. При окончании обработки очередного запроса результат помещается в выходную очередь, а обработчик, при наличии ожидающего запроса во входной очереди, приступает к обработке следующего. Модель представляет собой идеализированную систему, где за единицу времени одним обработчиком выполняется один запрос и работает по следующему алгоритму:
Разработка имитационной модели для оперативного регулирования распределенных централизованно-кольцевых систем
Разработана интегрированная с хранилищем данных на основе СУБД имитационная модель централизованно-кольцевой распределенной системы обработки информации. 2. Проведенные экспериментальные исследования времени обработки запросов и количества вычислителей с применением оперативного регулирования на основе нейропрогнозирования показали, что при уменьшении количества простаивающих обработчиков на 5% очередь сокращается более чем в 7 раз, в результате время обработки запроса уменьшается в 2,6 раза. 3. Установлено, что наиболее эффективным методом кодирования значений прогнозируемой величины является код Грея, применение которого позволило сократить очередь заявок на 10% в сравнении с применением традиционного двоичного кодирования. 4. Экспериментально установлено, что при размере кванта в 15 единиц нейропрогнозирование показывает наилучшие результаты, оптимальная величина обучающей выборки составляет 15% от исходной выборки, коэффициент успешности прогноза составляет 95%. В ходе выполнения диссертационных исследований получены следующие основные результаты: Предложена формальная постановка задачи разработки средств регулирования вычислительной мощности кольца централизованно-кольцевой системы на основе нейропрогнозирования нагрузки. Определены показатели и параметры увеличений эффективности работы алгоритма на стороне сервера. Проведен анализ существующих методов прогнозирования и научно обоснована необходимость использования многослойного перцептрона, позволяющего в силу своей простоты, эффективности обучения и внутренней параллельности вычислений, получать достоверный прогноз нагрузки при минимальных вычислительных затратах. Разработан алгоритм нейропрогнозирования для оперативного регулирования вычислительной мощности распределенной централизованно-кольцевой системы. Предложен способ преобразования переменных на основе кода Грея с целью обеспечения независимости от конфигураций входных и выходных переменных подсистемы прогнозирования нагрузки. Разработана объектно-ориентированная архитектура и программная реализация механизма оперативного регулирования централизованно-кольцевыми распределенными системами на основе нейросетевого прогнозирования нагрузки. Разработана имитационная модель централизованно-кольцевых вычислительных систем с оперативным регулированием с возможностью сбора и анализа результатов моделирования в хранилище данных на основе СУБД. В ходе проведения экспериментальных исследований подтверждена эффективность применения механизма оперативного регулирования вычислительной мощности на основе неиропрогнозирования нагрузки, выразившаяся в уменьшении на 5% количества простаивающих обработчиков, снижении размера очереди ожидающих заявок, более чем в 7 раз и сокращении времени обработки заявок более чем в 2,6 раза. Применение предложенного в работе метода преобразования данных на основе кодирования Грея сократило очередь запросов на 10% в сравнении с традиционным двоичным кодированием. Коэффициент успешности прогноза составляет 95%. Результаты диссертационной работы внедрены в серверное ПО автоматизированной системы управления распределенной сети "Утконос", информационно-поисковую систему нормативно-правовой документации "НПДок" и учебный процесс кафедры Информатики и Программного Обеспечения Вычислительных Систем (ИПОВС) Московского государственного института электронной техники.