Диссертация (Математическое и программное обеспечение балансировки вычислительных заданий для распределенных вычислительных комплексов на основе прогнозных моделей), страница 12

PDF-файл Диссертация (Математическое и программное обеспечение балансировки вычислительных заданий для распределенных вычислительных комплексов на основе прогнозных моделей), страница 12 Технические науки (19478): Диссертация - Аспирантура и докторантураДиссертация (Математическое и программное обеспечение балансировки вычислительных заданий для распределенных вычислительных комплексов на основе прогн2018-01-18СтудИзба

Описание файла

Файл "Диссертация" внутри архива находится в папке "Математическое и программное обеспечение балансировки вычислительных заданий для распределенных вычислительных комплексов на основе прогнозных моделей". PDF-файл из архива "Математическое и программное обеспечение балансировки вычислительных заданий для распределенных вычислительных комплексов на основе прогнозных моделей", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "диссертации и авторефераты" в общих файлах, а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата технических наук.

Просмотр PDF-файла онлайн

Текст 12 страницы из PDF

Основноевнимание в разработках, использующих подобный подход, уделяетсявзаимодействию всех лиц, участвующих в разработке.Одними из наиболее распространённых методов гибкой разработкиявляются методология экстремального программирования (англ. extremeprogramming – XP). Метод XP [88] определяет набор условий для разработкипрограммного обеспечения.

Концепция данного метода основывается наследующих наиболее важных принципах [88]:1. Постоянное общение и взаимодействие всех лиц, участвующих впроцессеразработки.Разработкаведетсянаоснованиисогласованных с заказчиком стандартов.2. Постоянная модульная проверка работоспособности программногокода на всех этапах разработки, что позволяет минимизироватьвозможность возникновения ошибок.3.

В качестве показателя оценки прогресса разработки принятконтроль времени исполнения согласованных работ. Для контроляхода работ используется метод пользовательских оценок.Экстремальное программирование представляет собой поэтапныйпроцесс разработки. Проект разделяется на множество мелких проектов,82внутри которых формируется набор задач, которые необходимо решить, врамках данного проекта. В результате такого подхода происходит поэтапноеувеличениефункциональностиразрабатываемогопрограммногообеспечения, что приводит к выпуску множества его версий. На рисунке 4.2показан процесс создания программы с использованием методологииэкстремального программирования.Рисунок 4.2 — Процесс разработки с использованием методологии XPОдним из наиболее важных этапов в данной методологии является этаппланирования.Особенностьюметодовгибкойразработкиявляетсядекомпозиция комплексной задачи на небольшие итерационные этапы сконкретными подзадачами.

Применительно к XP формирование подзадачосуществляется на основании, так называемого, списка пользовательскихисторий. Под пользовательской историей понимают функцию, в которой вобщих чертах выражаются основные пожелания заказчика к требуемомойфункциональности, которая реализуется данной функцией [89]. Полныйсписокпользовательскихпользовательскуюисторию,историйкотораяформируетсявобобщённуюопределяетвсетребования,83предъявляемые к разрабатываемой системе.

На практике обобщённуюпользовательскую историю часто именуют эпикой [89].Важно отметить, что концепция экстремального программирования несодержит в себе требования о необходимости проведения процессамоделирования.Процессмоделированияфактическизаменяетсяэффективной коммуникацией между людьми и поэтапным построениемсистемы. Однако, как отмечено в [90], при использовании методологии XPвозможно применение различных методов моделирования и описанияразрабатываемой системы, если оно будет полезно для взаимодействияучастников.Дляописанияфункциональныхсвойствиструктурыразрабатываемой системы, а также, взаимосвязи между участниками, можноприменять различные методы моделирования.

Стоит отметить, что насегодняшниймоментособуюактуальностьприобретаетмодельно-ориентированный подход к разработке (англ. MDA – Model DrivenArchitecture). Данная парадигма заключается в отделении спецификифункциональности системы от конкретной платформы реализации [91].Часто,дляописаниявзаимодействияпроцессовпрограммывразработкиконцепцииифункциональногомодельно-ориентированногоподхода используется унифицированный язык моделирования (англ. UMLUnified Modeling Language). Использование UML при проектировании иреализации разрабатываемой системы позволяет значительно упроститьпроцесс разработки за счёт использования структурных диаграмм.

Так,например, для описания пользовательских историй, которые являютсянеотъемлемой частью методологии экстремального программирования,возможно применение диаграммы прецедентов языка UML.Вданномдиссертационномисследованиидлядетальногопроектирования системы использовался программный комплекс VisualParadigm for UML [92] версии Community Edition.

Данная версия продуктабесплатнадлянекоммерческогоиспользованияипредоставляетнеобходимую функциональность для реализации системы балансировки84вычислительнымизаданиямидляраспределённыхвычислительныхкомплексов.4.2. Обоснование выбора программно-аппаратных средствреализации разрабатываемой программной системыВрезультатеанализатребований, предъявляемыхксистемамразрабатываемого типа, были определены следующие требования, которыенеобходимо учитывать в ходе разработки:Программная система должна использовать модульный принциппостроения, что обеспечит возможность её легкой модернизации.Система должна состоять из клиентской и серверной частей и дляобеспечения требуемой скорости разработки использовать один изактивно использующихся на практике языков высокого уровня,поддерживающихобъектно-ориентированнуюимодульнуюпарадигмы программирования.Разработанная система должна обладать максимально возможнойкроссплатформенностью, для обеспечения возможности работы вгетерогенной среде.

Однако, если архитектура вычислительныхузловбудетотличатьсяотрассматриваемоговданномдиссертационном исследовании (X86), то необходимо обеспечитьвозможностьлегкогоизмененияпрограммногокодаподконкретную архитектуру.В соответствии с описанными выше требованиями, в качествеосновного языка программирования был выбран языкJAVA [93]. ЯзыкJAVA ведёт свою историю с 1991 года, когда Джеймс Гослинг с командойразработчиков начали работу над языком программирования, которыйпозволил бы разрабатывать программы для бытовой техники. Передразработчикамистояласложнаязадачапообеспечению85машинонезависимостиразрабатываемогокода.Дляобеспеченияинвариантности кода, разработчики использовали модель разработки языка,аналогичной той, которую использовал Никлаус Вирт при создании языкаUCSD Pascal [94]. Диалект UCSD Pascal обеспечивал машинонезависимостьза счёт использования методов интерпретации конкретных действий в языкев специальный P-код и его последующего запуска в абстрактной машине (Pмашина).

В результате работы специалистов в данном направлении в 1996году была представлена первая версия языка JAVA. На момент написанияданной главы выхода в свет ожидала версия JAVA 8.Основным преимуществом языка является его независимость отконкретной архитектуры. Данное свойство языка достигается за счётиспользования виртуальной машины JVM, которая входит как в пакетразработчика JDK, так и распространяющаяся отдельно в виде пакета JavaRuntime Environment.

Процесс создания исполняемой программы состоит изнескольких этапов. После запуска процесса компиляции, посредствомпередачи файла с исходным текстом компилятору javac с требуемымиключами исполнения (для IDE аналогично нажатию на кнопку сборки икомпиляции программы), компилятор осуществляет перевод исходного кодав промежуточный байт-код, который не зависит от конкретной архитектуры.Далее виртуальная машина, которая написана для большинства современныхархитектур процессоров, транслирует байт-код в исполняемый машинныйкод для конкретной архитектуры. На рисунке 4.3 показан процесс запускапрограммы на языке JAVA.86Рисунок 4.3 — Сравнение процесса запуска программы с использованиемтехнологии промежуточного кода и непосредственной трансляцииСтоитотметить,чтоиспользованиетехнологииинтерпретациипрограммы в полной мере не позволила обеспечить кроссплатформенностьразработанных программ. Для этих целей также была произведена жесткаястандартизация основных типов данных и операций над ними.Исходя из всего вышеизложенного, можно говорить о том, что языкJAVA полностью удовлетворяет требованиям, предъявляемым к языкупрограммирования для реализации системы балансировки нагрузки.

Прианализенеобходимостииспользованияопределённыхклассов,быловыявлено, что для реализации необходимого фукнционала достаточностандартного набора библиотек, определённых в издании JAVA EE. Важноотметить, что большинство подобных систем балансировки нагрузки дляналоженных сетей, часто не имеют графического интерфейса, а обращение ккомпонентам системы для модификации происходит посредством SSH –соединения или telnet.

В качестве примера можно привести процессконфигурирования GridFTP – серверов, который представлен в руководствепользователя [96].Дляупрощенияпроцессаразработкисистемыиспользоваласьинтегрированная среда разработки (IDE) Eclipse версии 4.5 Mars [95]. IDEEclipse представляет собой интегрированную среду разработки, в которой87можно создавать программы на большинстве распространённых языковпрограммирования, таких как С/Cи++, JAVA, PHP.

Eclipse состоит из набораплагинов под каждый конкретный язык, что позволяет производить легкуюмодернизацию данной среды разработки с выходом новых версий языков.Разработка программы в Eclipse на языке JAVA ведётся посредством плагинаJava Development Tools (JDT).Особым преимуществом данной среды является наличие средствсовместной разработки. Так для контроля версий программного обеспеченияиспользуется плагин Egit, который обеспечивает доступ к распределённомуgit хранилищу, что позволяет контролировать выпуск версий программногообеспечения, а также регулировать и контролироватьработу отдельныхразработчиков.Так как было определено, что разрабатываемая система должнаобеспечивать модель архитектуры «клиент-сервер», то необходимо былообеспечить выбор необходимой технологии обмена данными междупроцессами клиентской и серверной частей приложения.

Одним из наиболееудобных и наиболее распространённых на практике способов организациивзаимодействия клиентских и серверных приложений является технологиясокетов (англ.socket). Основным преимуществом данного подхода являетсятообстоятельство,чтосокетывJAVAпредставляютсобойплатформонезависимый интерфейс между сетевым протоколом и самойпрограммой [97].Для реализации технологии сокет в JAVA существуетспециальный пакет java.net. Стоит отметить, что, начиная с версии 1.4 j2se,появился новый пакет java.nio.*, в котором есть соответствующая реализацияметодов работы с неблокирующими сокетами. Общий алгоритм работылюбой клиент-серверной программы состоит из следующих шагов:На стороне сервера:1. Создать сокет и привязать его к определённому порту.2.

Прослушивать порт, ожидая подключение клиента883. Обработать поступивший запрос от клиента, начать работать свходным и выходным потоком сокета, редактировать запрос клиента нановый сокет.4. Закрыть сокет (serverSocket.close()).На стороне клиента:1. Создать сокет с указанием IP – адреса хоста, где исполняетсясерверная часть приложения и соответствующего номера порта, ккоторому привязан сервер.2. Создать входной и выходной поток для получения и отправкиданных.3. Разъединить клиента с сервером.Такимобразом,взаимодействияреализацияклиентскойфункциональностичасти приложениямежпроцессноговыглядит следующимобразом:import java.io.*;import java.net.*;import java.testDEV.n1;public class Host{public static void main( ) throws IOException {Socket sSocket = null;PrintWriter vi = null;BufferedReader iv = null;try {nnSocket = new Socket(“localhost”, 6000); /*указываемIp-адрес сервера и порт */vi=newPrintWriter(sSocket.getOutputStream(),true);iv=newInputStreamReader(sSocket.getInputStream()));BufferedReader(new89}catch(UnknownHostExceptione){/*обработкаисключительных ситуаций */System.err.println(«неизвестный Ip-адрес или порт»);/*не праильно задан хост */System.exit(1);} catch (IOException e) {System.err.println(«Неудалосьначатьработатьсвходным и выходным потоком сокета «);System.exit(1);}BufferedReaderstdIn=newBufferedReader(newInputStreamReader(System.iv));String fromServer;String fromHost;while ((fromServer = iv.readLine()) != null) {if (fromServer.equals(“Выход”))break;System.out.println(“Сервер: “ + fromServer);fromUser = stdIn.readLine();vi.println(fromUser);}System.out.println(«Клиентотключилсяотсервера:«+fromServer);vi.close();iv.close();stdIn.close();sSocket.close();// Закрываем сокет}}Соответственно, реализация серверной части представлена следующимобразом:import java.io.*;import java.net.*;90import java.forecast.*;public class Manager {public static void main( ) throws IOException {ServerSocket serverSocket = null;try {serverSocket = new ServerSocket(6000);} catch (IOException e) {System.err.println(«Не возможно использовать порт.»);System.exit(1);}System.out.println(“Сервер работает.”);Socket clientSocket = null;try {clientSocket = serverSocket.accept();} catch (IOException e) {System.err.println(“Accept failed.”);System.exit(1);}PrintWritervi=newPrintWriter(clientSocket.getOutputStream(), true);BufferedReader iv = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));String inputLine, outputLine;Protocolsp=newProtocol();/*будемпотоковыми или дейтаграмными сокетами? ) */outputLine = sp.processInput(null);vi.println(outputLine);while ((inputLine = iv.readLine()) != null) {if(inputLine.equals(“exit”)){vi.println(“остановка”);break;}работатьс91outputLine = sp.processInput(inputLine);vi.println(outputLine);//if (outputLine.equals(“стоп сервер”))//break;}System.out.println(«Сервер не запущен");vi.close();iv.close();clientSocket.close();serverSocket.close(); //закрывает сокет}}Стоитотметить,чтосуществуетиряддругихтехнологий,позволяющих осуществить вызов удалённых процедур для нашей задачи.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5259
Авторов
на СтудИзбе
421
Средний доход
с одного платного файла
Обучение Подробнее