ДонНТУ   Портал магістрів

Реферат за темою випускної роботи

Зміст

Вступ

За останні кілька років концепція хмарних обчислень набрала силу і стала популярною у сфері інформаційних технологій. Багато організацій приступили до реалізації цих нових технологій, прагнучи знизити витрати за рахунок покращеної віртуалізації машин, меншого часу на адміністрування і зниження витрат на інфраструктуру. Хмарні обчислення являють собою середовище, що дозволяє користувачам використовувати додатки в мережі Інтернет, наприклад, для зберігання та захисту даних при наданні ІТ-сервісів [1].

Хмарні обчислення – це модель, що забезпечує зручний мережевий доступ на вимогу до загальних конфігурованим обчислювальних ресурсів (мереж, серверів, сховищ даних, додатків і сервісів), який оперативно надається з мінімальними зусиллями з управління і взаємодії з сервіс–провайдером [2].

1. Цілі та завдання

Метою даної роботи є розробка та аналіз методу розміщення на хмарі програмного забезпечення вирішення динамічних задач розподілу ресурсів. Для досягнення поставленої мети необхідно вирішити ряд завдань:

Згідно з завдання, критеріями вибору найкращого методу повинні бути: похибка, складність, час, пам'ять.

Кожен метод має супроводжуватися блоком інструктажу та теоретичної довідкою щодо застосування того чи іншого методу.

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 (Батьківський контроль). А серед програмних калькуляторів, що дозволяють виконувати обчислення та проводити наукові дослідження в online–режимі з використанням хмари, відомий 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 підприємств:

Формула 1

Кількість ресурсів на початку k–го року характеризує величина ζk–1. Управління на k–му кроці полягає у виборі змінних uk1,uk2, ..., ukn, означующих ресурси, що виділяються в k-му роцы i-му пыдприэмству.

Якщо припустити, що дохід надалі розподілі не бере, то рівняння стану процесу має вигляд:

Формула 2

В якості загальної постановки мережевий задачі розподілу ресурсів використовуємо постановку , яка з урахуванням вимог оптимальності сформульована в [5] наступним чином:

Формула 3

де 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. Шмойлов Д.В. Облачные вычисления: актуальность и проблемы / Д.В. Шмойлов  // Электронное научное периодическое издание «Электроника и информационные технологии» № 1 (10). – МГУ им. Н.П. Огарева, г. Саранск, 2011 г., 7 c.
  2. Бакст Л.А., Бурляева О.К., Кузнецова В.В., Малышева Е.В. Реализация облачных вычислений – актуальная задача развития информационно–вычислительных сетей / Л.А. Бакст, О.К. Бурляева, В.В. Кузнецова, Е.В. Малышева // «Профессиональные инновации» № 7. – г. Москва, 2013 г., С. 26–36.
  3. Сергиенко И.В., Шило В.П. Задачи дискретной оптимизации. – К.: Наукова думка, 2003 г. – 301 с.
  4. Остапенко В.В., Финин Г.С. Метод исключения неизвестных для систем линейных неравенств со структурой графа «Кибернетика и системный анализ», № 5, 1999 г., С. 66–75.
  5. Маслова Н.А. Методы теории вычислений в решении задач управления технологическими процессами / Н.А. Маслова // Штучний інтелект. – 2009 г. – № 3. – С. 165–171.
  6. Михалевич В.С., Кукса А.И. Методы последовательной оптимизации в дискретных сетевых задач оптимального распределения ресурсов. – М.: Наука, 1983 г. – 208 с.
  7. Облачные сервисы. Взгляд из России. Под ред. Е. Гребнева. – М.: Cnews, 2011 г. – 282 с.
  8. Мовчан О.В. Маслова Н.А. Разработка и анализ метода размещения на облаке программного обеспечения для решения динамических задач распределения ресурсов / О.В. Мовчан Н.А. Маслова // Материалы V Всеукраинской научно-технической конференции Информационные управляющие системы и компьютерный мониторинг. – Донецк: ДонНТУ, 2014. С. 450-455.
  9. Таллоч Митч и команда Windows Azure Знакомство с Windows Azure. Для ИТ–специалистов / Таллоч М.; пер. с англ. – М.: ЭКОМ Паблишерз, 2014 г. — 154 с.: ил.
  10. Сухорослов О.В. Облачная платформа для создания вычислительных веб–сервисов на базе инструментария MathCloud / О.В. Сухорослов // Материалы IV Международной конференции «Облачные вычисления. Образование. Исследования. Разработка». – г. Москва, 2013 г., 4 с.
  11. Каллихман И.Л., Войтенко М.А. Динамическое программирование в примерах и задачах. М.: Высшая школа, 1979 г. 124 с.

Примітка

Автореферат носить оглядовий характер і не є повною версією магістерської роботи. При написанні даного автореферату магістерська робота ще не завершена. Запланований термін завершення роботи: листопад 2014 року. Розширені відомості по роботі і повний перелік матеріалів можуть бути отримані у автора або його керівника після зазначеної дати.