Реферат по теме выпускной работы
Содержание
- Введение
- 1. Цели и задачи
- 2. Обзор исследований и разработок
- 3. Актуальность работы
- 4. Разработка программного обеспечения решения динамических задач распределения ресурсов
- 5. Разработка метода размещения программного обеспечения на облаке
- Выводы
- Список источников
Введение
За последние несколько лет концепция облачных вычислений набрала силу и стала популярной в сфере информационных технологий. Многие организации приступили к реализации этих новых технологий, стремясь снизить расходы за счет улучшенной виртуализации машин, меньшего времени на администрирование и снижения затрат на инфраструктуру. Облачные вычисления представляют собой среду, позволяющую пользователям использовать приложения в сети Интернет, например, для хранения и защиты данных при предоставлении ИТ-сервисов [1].
Облачные вычисления – это модель, обеспечивающая удобный сетевой доступ по требованию к общим конфигурируемым вычислительным ресурсам (сетям, серверам, хранилищам данных, приложениям и сервисам), который оперативно предоставляется с минимальными усилиями по управлению и взаимодействию с сервис-провайдером [2].
1. Цели и задачи
Целью данной работы является разработка и анализ метода размещения на облаке программного обеспечения решения динамических задач распределения ресурсов. Для достижения поставленной цели необходимо решить ряд задач:
- проанализировать методы и средства построения приложений для облачных сервисов;
- сформулировать перечень методов, которые могут быть применены в процессе online-анализа процессов, выбрать критерии оценивания, разработать пример вычислений с помощью какого-либо из методов;
- предусмотреть такой режим работы приложения как online-анализ процессов с применением методов динамического программирования, возможностью выбора наилучшего метода;
- разработать архитектуру приложения согласно предлагаемой методике, реализовать разработку и провести тестирование работоспособности.
Согласно поставленному заданию, критериями выбора наилучшего метода должны быть: погрешность, сложность, время, память.
Каждый метод должен сопровождаться блоком инструктажа и теоретической справкой по применению того или иного метода.
2. Обзор исследований и разработок
Основы методов решения задач распределения ресурсов заложены как в работах отечественных ученых (Михалевича B.C., Шкурбы В.В., Танаева B.C., Гордона B.C., Шора Н.З., Куксы А.И., Батищева Д.И. и ряда других), так и зарубежных (Р. Конвей, Б. Джонсон, У. Максвелл, Б. Гиффлер, Ж. Томпсон).
Если задача распределения ресурсов требует оперативного решения, то используют методы комбинаторной оптимизации, а также экстремальные задачи на графах. Так, например источник [3] рекомендует для решения задач распределения ресурсов метод ветвей и границ, в работе [4] предлагается решать систему линейных неравенств методом исключения неизвестных, а в [5] предложен алгоритм решения задач распределения ресурсов, сочетающий элементы трех вышеперечисленных методов.
Значительный класс задач распределения ресурсов решается с использованием методов динамического программирования – математического аппарата, позволяющего осуществлять оптимальное планирование управляемых процессов и процессов, зависящих от времени, путем разбиения процесса принятия решений на ряд однотипных, но взаимосвязанных этапов (шагов).
Ключевая идея динамического программирования достаточно проста [6]. Для решения основной задачи, необходимо решить отдельные подзадачи, а затем объединить решения подзадач в одно общее решение.
Размещение программного обеспечения в облаке стало доступным не так давно. К примеру, еще в 2010 году облака использовались исключительно как хранилища информации. Например, материалы Amazon Web Services, были разбиты на 9 категорий. Материалы по этим категориям были распределены следующим образом: 106 относились к категории «Хостинг приложений», 14 – к категории «Резервное копирование и хранение данных», 6 – к категории «Доставка контента», 4 – к «Электронной коммерции», 17 – к «Высокопроизводительным вычислениям», 20 – к «Мультимедийному хостингу», 4 – к «Поисковым системам» и 16 – к «Веб–хостингу» [7].
На данном этапе есть множество самых разных облачных сервисов, многие из них существуют и успешно развиваются уже по несколько лет. Это сервисы для хранения файлов, для проигрывания аудио и видео, для редактирования документов, для решения разнообразных задач, например, существует возможность работать с 1С через браузер (модель SaaS). Однако возможность предоставления пользователю услуги по размещению на облаке исполняемого модуля собственной разработки является достаточно новой.
Первыми об использовании облачных технологий для улучшения своих продуктов заявили антивирусные компании (Kaspersky Internet Security, Panda Cloud Antivirus), Другим примером использования облаков в программном обеспечении является почтовый шлюз GateWall Antispam. На «облаке» размещен исполняемый модуль программы KinderGate (Родительский контроль). А среди программных калькуляторов, позволяющих выполнять вычисления и проводить научные исследования в on–line режиме с использованием облака, известен Neos solvers – облачный ресурс для решения линейных задач программирования [8].
3. Актуальность работы
Задачи распределения ресурсов – один из важнейших классов задач прикладного направления кибернетики, используемого для решения множества практических задач. Это задачи о распределении денежных средств, материальных запасов, водных потоков, сетевых ресурсов, времени, оперативной или виртуальной памяти.
Распределительные задачи возникают в случае, когда имеющихся в наличии ресурсов недостаточно для эффективного выполнения работ и необходимо наилучшим образом распределить их по узлам, объектам или работам в соответствии с выбранным критерием оптимальности.
Современные научные исследования неразрывно связаны с проведением сложных расчетов и использованием высокопроизводительных вычислительных ресурсов. При этом эффективность исследований напрямую зависит от наличия и доступности вычислительных приложений для решения той или иной задачи. В настоящее время существует большое количество подобных приложений, в том числе библиотек численных методов, прикладных вычислительных пакетов, вычислительных моделей и т.д. Наличие готового программного обеспечения позволяет исследователям в большинстве случаев избежать трудоемкой реализации программного кода и сконцентрироваться на решаемой задаче.
Для решения указанных проблем применяются высокоуровневые среды, предоставляющие исследователям удаленный доступ к вычислительным приложениям через проблемно-ориентированные интерфейсы. Как правило, данные среды реализуются в виде веб-порталов, а работа с приложениями осуществляется через веб-браузер [10].
В последние несколько лет эта проблема нашла свое решение путем переноса приложения в облако. Это обусловлено тремя причинами: скоростью работы облачных приложений, их масштабируемостью или рентабельностью [9].
4. Разработка программного обеспечения решения динамических задач распределения ресурсов
Результатом разработки должен явиться программный продукт решения задач распределения ресурсов в online-режиме с учетом того, что инструментарий для решения задачи необходимо разместить на облачном сервисе, который позволит пользователю, минуя поиск необходимого программного обеспечения и процесс инсталляции, получить решение необходимой задачи с описанием этого решения.
При подборе методов, которые следует включить в пакет, следует выполнить постановку задачи исследования. Из–за многообразия задач распределения ресурсов, множества областей их применения, разрабатываемый программный продукт будет иметь сложную структуру и должен содержать:
- раздел для решения классических задач распределения ресурсов (задачи распределения ресурсов между предприятиями и задачи управления запасами);
- раздел для решения сетевых задач распределения ресурсов (задачи о кратчайшем пути и о максимальном потоке);
- контрольный раздел, содержащий методы и алгоритмы (метод условной оптимизации, метод ветвей и границ, алгоритмы прямой и обратной прогонки, алгоритмы Качмажа и Балаша).
В пакет предполагается включить дополнительный режим интеллектуальный агент
, основной задачей которого является оказание помощи пользователю в подборе наиболее эффективного по времени выполнения алгоритма.
Рассмотрим типичную задачу распределения ресурсов, в общем виде предложенную в [11].
Имеется начальное количество средств ζ0, которое необходимо распределить в течение n лет между s предприятиями. Средства uki(k=1, ..., n; i=1, ..., s) выделенные в k–м году i–му предприятию, приносят доход в размере fki(uki) и к концу года возвращаются в количестве φki(uki). В последующем распределении доход может либо участвовать (частично или полностью), либо не участвовать.
Требуется найти способ распределения ресурсов (количество средств, выделяемых каждому предприятию в каждом плановом году), чтобы суммарный доход от s предприятий за n лет был максимальным.
В качестве показателя эффективности процесса распределения ресурсов за n лет принимается суммарный доход, полученный от s предприятий:
Количество ресурсов в начале k–го года характеризует величина ζk–1. Управление на k–м шаге состоит в выборе переменных uk1,uk2, ..., ukn, обозначающих ресурсы, выделяемые в k-м году i-му предприятию.
Если предположить, что доход в дальнейшем распределении не участвует, то уравнение состояния процесса имеет вид:
В качестве общей постановки сетевой задачи распределения ресурсов используем постановку, которая с учетом требований оптимальности сформулирована в [5] следующим образом:
где J – критерий качества оптимизационной задачи, lij(t), uij(t),gi(t)) – ограничения, yi0 – начальные условия, Т – общее время, необходимое для распределения ресурса, m – число дуг графа, n – количество его вершин.
5. Разработка метода размещения программного обеспечения на облаке
В результате проведенного исследования для размещения разрабатываемого приложения выбрана облачная платформа Windows Azure – одна из немногих облачных платформ, предоставляющую услугу размещения исполняемого пользовательского приложения.
Windows Azure – это открытая и гибкая облачная платформа, позволяющая быстро создавать, развертывать и управлять приложениями в глобальной сети центров обработки данных под управлением Microsoft. Приложения можно разрабатывать с помощью любого языка, инструмента или платформы.
Актуальная версия Windows Azure поддерживает ряд вычислительных служб, а именно: виртуальные машины, веб–сайты, облачные службы и мобильные службы.
Облачные службы Windows Azure позволяют создавать и развертывать почти неограниченно масштабируемые приложения высокой доступности практически на любом языке программирования и с минимальными расходами на администрирование.
Согласно отчету аналитической компании Nasuni, платформа Windows Azure является лидером в тестах производительности при записи и чтении данных из облака, доступности данных и минимальному числу ошибок (0 %) [9].
Windows Azure – это самое близкое решение для компаний и разработчиков, привыкших к инфраструктуре и средствам разработки от Microsoft. Для них Azure – это возможность начать разрабатывать масштабируемые облачные приложения, вложив минимум средств и времени в освоение новых технологий. Кроме того, Windows Azure представляет коммерческий интерес и для компаний, не имеющих конкретных технологических предпочтений. Например, компания Guppers использует службы Windows Azure не только для хранения данных, но и для решения вычислительных задач, обслуживания веб-запросов и обработки данных в СУБД SQL Azure [7].
Выводы
В ходе работы были проанализированы методы и средства построения приложений для облачных сервисов; сформулирован перечень методов, которые могут быть применены в процессе online-анализа процессов; выбраны критерии оценивания. В работе предусмотрен такой режим работы приложения как online-анализ процессов с применением методов динамического программирования, возможностью выбора наилучшего метода. Была разработана архитектура приложения согласно предлагаемой методике.
Практическая ценность разработки состоит в том, что пользователям предоставляется возможность быстро решать типичные задачи по распределению ресурсов разными методами по собственным входным данным с получением теоретической справки и описания решения. При этом, не требуется процесс установки программного обеспечения.
Список источников
- Шмойлов Д.В. Облачные вычисления: актуальность и проблемы / Д.В. Шмойлов // Электронное научное периодическое издание «Электроника и информационные технологии» № 1 (10). – МГУ им. Н.П. Огарева, г. Саранск, 2011 г., 7 c.
- Бакст Л.А., Бурляева О.К., Кузнецова В.В., Малышева Е.В. Реализация облачных вычислений – актуальная задача развития информационно–вычислительных сетей / Л.А. Бакст, О.К. Бурляева, В.В. Кузнецова, Е.В. Малышева // «Профессиональные инновации» № 7. – г. Москва, 2013 г., С. 26–36.
- Сергиенко И.В., Шило В.П. Задачи дискретной оптимизации. – К.: Наукова думка, 2003 г. – 301 с.
- Остапенко В.В., Финин Г.С. Метод исключения неизвестных для систем линейных неравенств со структурой графа «Кибернетика и системный анализ», № 5, 1999 г., С. 66–75.
- Маслова Н.А. Методы теории вычислений в решении задач управления технологическими процессами / Н.А. Маслова // Штучний інтелект. – 2009 г. – № 3. – С. 165–171.
- Михалевич В.С., Кукса А.И. Методы последовательной оптимизации в дискретных сетевых задач оптимального распределения ресурсов. – М.: Наука, 1983 г. – 208 с.
- Облачные сервисы. Взгляд из России. Под ред. Е. Гребнева. – М.: Cnews, 2011 г. – 282 с.
- Мовчан О.В. Маслова Н.А. Разработка и анализ метода размещения на облаке программного обеспечения для решения динамических задач распределения ресурсов / О.В. Мовчан Н.А. Маслова // Материалы V Всеукраинской научно-технической конференции
Информационные управляющие системы и компьютерный мониторинг
. – Донецк: ДонНТУ, 2014. С. 450-455. - Таллоч Митч и команда Windows Azure Знакомство с Windows Azure. Для ИТ–специалистов / Таллоч М.; пер. с англ. – М.: ЭКОМ Паблишерз, 2014 г. — 154 с.: ил.
- Сухорослов О.В. Облачная платформа для создания вычислительных веб–сервисов на базе инструментария MathCloud / О.В. Сухорослов // Материалы IV Международной конференции «Облачные вычисления. Образование. Исследования. Разработка». – г. Москва, 2013 г., 4 с.
- Каллихман И.Л., Войтенко М.А. Динамическое программирование в примерах и задачах. М.: Высшая школа, 1979 г. 124 с.
Примечание
Автореферат носит обзорный характер и не является полной версией магистерской работы. При написании данного автореферата магистерская работа еще не завершена. Планируемы срок завершения работы: ноябрь 2014 года. Расширенные сведения по работе и полный перечень материалов могут быть получены у автора или его руководителя после указанной даты.