Научная статья на тему 'Планирование выполнения композиции сервисов в гетерогенной среде'

Планирование выполнения композиции сервисов в гетерогенной среде Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
46
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СЕРВИСО-ОРИЕНТИРОВАННАЯ АРХИТЕКТУРА / WEB PROCESSING SERVICE / JAVASCRIPT / ОРКЕСТРАЦИЯ СЕРВИСОВ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Федоров Роман Константинович, Шумилов Александр Сергеевич

В последнее время активно применяется сервисо-ориентированная архитектура вычислений, в которой вычислительные модули выполнены в виде сервисов, доступных через сеть Интернет. При совместном эксплуатации распределенных сервисов возникает проблема планирования их использования с учетом специфики среды, а именно: вычислительные узлы могут менять свою доступность, сервисы могут менять свою скорость выполнения. Также сама композиция сервисов может менять свою структуру. Для решения данной проблемы в тесной интеграции с Геопорталом ИДСТУ СО РАН был разработан и реализован планировщик композиций веб-сервисов, позволяющий составлять и перестраивать расписание выполнения композиций сервисов в зависимости от изменения состояния среды и композиции. Данный планировщик был апробирован и интегрирован в существующую инфраструктуру Геопортала.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Федоров Роман Константинович, Шумилов Александр Сергеевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Recently the Service-Oriented Architecture is being actively used, where computing is performed through web-accessible services. When services and combined and used together, the problem of theirs execution planning arises because of specific conditions of the environment of distributed services. The specific conditions are: computing nodes can change theirs availability, service can change theirs time parameters. Also, the actual service composition can change itself during its execution. In order to solve this problem the scheduler of web-services compositions was designed and implemented in close cooperation with the ISDCT SB RAS Geoportal. It allows rebuilding of the schedule depending on specific conditions of the environment and actual compositions. The scheduler was tested and integrated in the existing Geoportal infrastructure.

Текст научной работы на тему «Планирование выполнения композиции сервисов в гетерогенной среде»

УДК 004.75

ПЛАНИРОВАНИЕ ВЫПОЛНЕНИЯ КОМПОЗИЦИИ СЕРВИСОВ В ГЕТЕРОГЕННОЙ СРЕДЕ 1 Фёдоров Роман Константинович

В.н.с., к.т.н., Институт динамики систем и теории управления имени В.М. Матросова СО РАН, 664033 г. Иркутск, ул. Лермонтова 134, e-mail: fedorov@icc.ru Шумилов Александр Сергеевич Асп., Институт динамики систем и теории управления имени В.М. Матросова СО РАН, 664033 г. Иркутск, ул. Лермонтова 134, e-mail: alex shumilov@yahoo .com

Аннотация: В последнее время активно применяется сервисо-ориентированная архитектура вычислений, в которой вычислительные модули выполнены в виде сервисов, доступных через сеть Интернет. При совместном эксплуатации распределенных сервисов возникает проблема планирования их использования с учетом специфики среды, а именно: вычислительные узлы могут менять свою доступность, сервисы могут менять свою скорость выполнения. Также сама композиция сервисов может менять свою структуру. Для решения данной проблемы в тесной интеграции с Геопорталом ИДСТУ СО РАН был разработан и реализован планировщик композиций веб-сервисов, позволяющий составлять и перестраивать расписание выполнения композиций сервисов в зависимости от изменения состояния среды и композиции. Данный планировщик был апробирован и интегрирован в существующую инфраструктуру Геопортала. Ключевые слова: сервисо-ориентированная архитектура, Web Processing Service, JavaScript, оркестрация сервисов

Введение. В последнее время активно развивается сервисо-ориентированная архитектура вычислений (SOA - Service-Oriented Architecture) [6], которая предполагает представление каких-либо программных компонентов в виде отдельных вычислительных сервисов. Основными преимуществами данного подхода являются независимость сервисов друг от друга, гибкость использования, сравнительно легкое тестирование и отладка, масштабируемость и возможность повторного использования. Обычно сервисы имеют интерфейс, доступ и описание которого определяется каким-либо из стандартов, например, одними из самых распространенных стандартов интерфейсов сервисов являются SOAP (Simple Object Access Protocol), RPC (Remote Procedure Call), REST (Representational State Transfer).

Аналогичная тенденция наблюдается и в области обработки геоинформации - все больше вычислений производится с помощью отдельных сервисов, а уже существующие приложения внедряют поддержку выполнения удалённых сервисов. Например, известный программный продукт QGIS позволяет вызывать и использовать результаты работы удаленных сервисов. Говоря о стандартах для геоинформационных сервисов, необходимо упомянуть о стандарте WPS (Web Processing Service) [10], разработанном концерном OGC (Open Geospatial Consortium) и определяющим механизм описания и выполнения сервисов, а

1 Работа выполнена при финансовой поддержке РФФИ, номер гранта 14-07-00166.

также позволяющим передавать различные специальные геоинформационные данные. Длительность выполнения сервисов, базирующихся на WPS, не ограничена. Данный стандарт основан на формате данных XML, в качестве среды передачи обычно используется протокол HTTP.

Основные преимущества SOA, описанные ранее, наиболее выгодно проявляются при использовании композиций сервисов, то есть цепочек выполнения сервисов, в которых сервисы обмениваются между собой данными и в результате выполнения цепочки сервисов ожидается определенный результат. Связь между сервисами может быть как линейной, когда сервисы выполняются по порядку, так и сложной структуры, когда выполнение сервисов зависит от каких-либо промежуточных результатов, должна выполняться промежуточная обработка результатов выполнения, и т.д.

Для составления композиций сервисов в ИДСТУ СО РАН был разработан способ описания и выполнения композиций WPS-сервисов в виде сценариев на языке программирования JavaScript [1], который был тесно интегрирован с подсистемами Геопортала ИДСТУ СО РАН. Сценарии композиций сервисов представляют собой скрипты, в которых вызов сервисов осуществляется с помощью специальных функций, закреплённых за каждым сервисом. В скриптах можно использовать все конструкции самого языка JavaScript и выполнять обработку промежуточных параметров сервисов, что позволяет составлять сложные и гибкие сценарии. Участвующие в сценариях сервисы должны быть предварительно зарегистрированы на Геопортале и могут находиться на любом вычислительном узле независимо от его месторасположения и характеристик, таким образом, Геопорталу известно только их сетевое расположение, метаописание параметров и характеристики самих вычислительных узлов.

Нередко в сценариях WPS сервисов вызываются два и более сервисов, выполняющихся на различных вычислительных узлах и активно обменивающихся данными. В таком случае возникает проблема планирования их выполнения для минимизации времени выполнения всего сценария. Результатом планирования должен являться план выполнения всех сервисов, участвующих в сценарии, определяющий, какие сервисы, в каком порядке и на какие узлы должны быть назначены.

Таким образом, планировщик выполнения композиций распределённых веб-сервисов в гетерогенной среде направлен на решение проблемы минимизации времени выполнения композиций сервисов [11].

1. Обзор средств. Проблема составления планов в целях минимизации времени выполнения сервисов или каких-либо вычислительных единиц имеет долгую историю. На заре становления распределенных систем бурно развивалась область статических способов планирования, в дальнейшем развитие получила область динамических способов планирования выполнения. Стоит отметить, что данная проблема встречается в самых различных областях информационных технологий - как при проектировании микропроцессоров, так и при кластерных вычислениях. Приведенный ниже обзор концентрирует внимание на наиболее общих подходах к планированию.

Статическими алгоритмами планирования называются такие алгоритмы, которые составляют расписание выполнения сервисов еще до момента вызова первого сервиса. Одним их наиболее популярных и эффективных алгоритмов статического составления планов является алгоритм HEFT (Heterogeneous earliest finish time), являющийся подвидом

списковых алгоритмов [5, 6], которые характеризуются тем, что в них вызовы сервисов сортируются по какому-либо параметру и назначение на узлы происходит по порядку [ 2]. Суть алгоритма заключается в том, для каждого вызова сервиса подсчитывается специальная величина. Эта величина подсчитывается путем прохода графа снизу вверх, то есть от конечного узла к входящим. На основе этой величины сервисы сортируются по убыванию и происходит их последовательное назначение на вычислительные узлы. Назначение происходит на самый незанятый в данный момент узел.

Немаловажным является и тот факт, что в силу распределённости сервисов возникает непредсказуемость состояния самой среды по мере выполнения сценария, который может выполняться в течение неограниченного времени. По мере выполнения сценария часть вычислительных узлов может прекращать свою работу, часть узлов может, наоборот, становиться доступной для вычислений, сервисы могут менять свои временные характеристики и на основе каких-либо промежуточных результатов часть сервисов может быть исключена из плана. Таким образом, возникает необходимость динамического планирования выполнения сервисов. При динамическом планировании перепланировка сервисов осуществляется периодически по истечении какого-то временного промежутка или по мере наступления каких-либо критичных для планирования событий.

Семейство динамических алгоритмов включает в себя большое количество подходов, например генетические алгоритмы [4, 9] (с помощью операций мутации, селекции и выборки строится наиболее подходящий план из найденных), муравьиные алгоритмы [8] (поиск строится на основании принципов поиска еды у муравьёв), SAT подход [3], а также алгоритмы с использованием A* [12].

Таким образом, в силу специфики среды распределенных сервисов, а также её гетерогенности, возникла необходимость разработки и реализации собственного динамического алгоритма для планировщика выполнения сценариев сервисов, сочетающего в себе как техники списковых алгоритмов, так и принцип алгоритма A*. Алгоритм построения решения должен создавать как изначальный план, так и план с учетом уже выполняющихся сервисов.

2. Планировщик выполнения композиции сервисов. При составлении первоначального плана описываемый в данной статье планировщик выполнения сервисов принимает на вход описание сервисов, где для каждого сервиса указывается его среднее время выполнения, время, необходимое для передачи данных между сервисами, список вычислительных узлов, на которых данный сервис может выполняться, а также список сервисов, от которых сервис зависит по данным. Зависимость по данным между сервисами можно отобразить в виде направленного ацикличного графа (рис. 1), где вершинами являются вызовы сервисов на выполнение, а ребрами - зависимости между сервисами по данным. Таким образом, сервисы без зависимостей являются начальными сервисами (серые окружности на рис. 1), с которых начинается выполнение сценария, а сервис без зависимых от него сервисов является выходным сервисом (черная окружность на рис. 1).

Ü

Рис. 1. Граф зависимости сервисов по данным

Граф зависимости вызовов сервисов по данным формируется модулем выполнения сценариев Геопортала на основе анализа сценария WPS-сервисов, представляющего из себя код на языке JavaScript, в котором вызовы сервисов осуществляются с помощью определенных функций-оберток, уникальных для каждого сервиса. Описание сервисов и вычислительных узлов также формируется модулем выполнения сценариев на основе информации о сервисах, зарегистрированных на Геопортале, а также статистических данных, собираемых для каждого сервиса.

Как уже было сказано ранее, задача поиска расписания является NP-сложной, то есть нахождение оптимального решения в некоторых случаях для такого рода задач является практически невыполнимой задачей. Таким образом, осуществляется поиск субоптимального решения, то есть решения, максимально приближенного к оптимальному решению. Представим алгоритм поиска в виде математической модели, где даны:

- множество вычислительных узлов N;

- множество задач T, ce (ti) - время выполнения i-ой задачи на любом поддерживающем её узле, c (t, tj) - время передачи результатов работы i-ой задачи на другой узел для выполнения j-ой задачи (то есть если t и t. выполняются на одном узле, то ct (tt, t.) = 0 );

- некоторая функция depends (tt, t.), которая определяет, зависима ли задача tt от t.;

- ациклический направленный граф зависимостей задач по данным, вершинами графа являются задачи, ребра являются отношениями зависимости между задачами (например, ti не может начать своё выполнение пока не закончилась задача tj);

- некоторая функция busy(ni), которая определяет время работы вычислительного узла с учётом назначенных на него задач;

- некоторая функция executable (tt, n.), показывающая, может ли задача t выполняться на узле n ;

Т start гр

множества T, содержащее начальные задачи, то есть не существует таких задач t, что выполняется depends (tstart, ti); существует некоторое подмножество Texit множества T, содержащее конечные задачи графа, то есть не существует таких задач t, что выполняется depends(tt,t);

Определим Р(Т, Ы) как некий план выполнения задач, где все задачи назначены на какие-либо узлы. План P(T, К) является набором пар вида (г , п )т, где I - это задача, п -

это вычислительный узел, на который задача назначается, т определяет, каким по порядку

из назначенных вызовов сервисов на п является г , таким образом, гарантируется

единственность способа построения расписания.

Для нахождения оптимального плана выполнения задач определим некоторую функцию aggregatedCost(t ), вычисляющую суммарное время выполнения для задачи X путем прохождения графа, начиная с выходной задачи из Тех1Х , до самой задачи X: если и е то aggregatedCost(tj) = се (^ )

иначе aggregatedCost(tj) = се (^) + тах( aggregatedCost(depends (^)))

Для нахождения плана используется метод поиска в глубину. Особенностями алгоритма составления расписания, служащими для скорейшего нахождения субоптимального плана, являются сортировка задач, узлов и пропуск ветвей графа поиска решения. Рассмотрим каждую технику в отдельности на примере графа на рис. 2, где заданы идентификаторы задач, время выполнения задач и стоимость передачи данных для каждой задачи.

Рис. 2. Граф зависимости задач

1. Сортировка задач по значению убыванию функции aggregatedCost(t ) для каждой

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

2. Внутри самого алгоритма после каждого назначения задачи на определенный узел происходит сортировка узлов по возрастанию значения их занятости. На рис. 3 приведен пример такой пересортировки при назначении задачи 2 на узел 1, в то время как задача 1 уже назначена на узел 2. Данная сортировка позволяет сначала рассматривать такие случаи, когда самый затратная по времени задача (п. 1) назначается на самый свободный узел.

3. В то время как первые две техники позволяют находить суб-оптимальный план как можно быстрее, техника пропуска ветвей графа поиска планов позволяет сократить пространство перебора решений. Данная техника реализуется с помощью алгоритма А*, на основании которого на каждом шаге решение о рассмотрении какой-либо ветки принимается на основе сравнения значения эвристической функции и текущего рекорда (значения суб-оптимального решения). Функция эвристики складывается из

текущего значения загруженности узла и значения aggregatedCost(t ) для текущей задачи. Пример пропуска ветви представлен на рис. 4.

узел 1 (загруженность 0)

узел 2 (загруженность 1)

1 узел 2 (загруженность 1)

2 узел 1 (загруженность 2)

Рис. 3. Сортировка вычислительных узлов

Рис. 4. Отсечение ветвей при выполнении алгоритма

Таким образом, алгоритм составления плана выполнения композиции вызовов сервисов формирует план, занимающий наименьшее время выполнения. Учитывая специфику среды распределенных WPS-сервисов, алгоритм должен перестраивать ранее созданный и частично выполняющийся план при наступлении следующих событий:

1. Происходит добавление или удаление вычислительного узла.

2. Происходит добавление или удаление задачи из графа зависимостей.

3. Изменяются временные характеристики одной из задач, не начавших выполнение (время выполнения задачи или время передачи данных).

4. Изменяются характеристики задач, определяющие, на каких вычислительных узлах задача может выполняться.

В случае перестроения плана на основе уже частично выполняющегося плана P(t, n) воспроизведение уже выполняющейся части плана происходит практически мгновенно, так как порядок следования пар (t, n) задается жестко, следовательно, алгоритм не тратит время на перебор возможных вариантов, которые бы соответствовали уже выполняющейся части плана. Как только уже выполняющаяся часть плана построена, алгоритм продолжает достраивать план в стандартном режиме.

3. Апробация. В целях апробации планировщика был смоделирована следующая ситуация - на вход подается описание вызовов сервисов в количестве 5 штук, а также описание вычислительных узлов в количестве 3 штук. Для каждого вызова сервиса в поле id указывается идентификатор вызова сервиса, поле dependencies определяет идентификаторы сервисов, от которых зависит текущий сервис, поле cost определяет среднее время выполнения сервиса, поле outputTransmissionCost определяет стоимость передачи результатов работы текущего сервиса, поле targetNodes содержит идентификаторы

подходящих для выполнения текущего сервиса узлов. Описание вызовов сервисов представлено на рис. 5, а в виде графа зависимостей на рис. 6.

[{"id": 1,

"dependencies": [], "cost": 1,

"outputTransmissionCost": 2, "targetNodes": [1, 3]}, { "id": 2,

"dependencies": [], "cost": 2,

"outputTransmissionCost": 2, "targetNodes": [1, 2]}, { "id": 3,

"dependencies": [2,1], "cost": 3,

"outputTransmissionCost": 1}, { "id": 4,

"dependencies": [1], "cost": 4,

"outputTransmissionCost": 3, "targetNodes": [2,1]}, { "id": 5,

"dependencies": [4,3], "outputTransmissionCost": 1, "cost": 5,

"targetNodes": [3]}]

Рис. 5. Описание вызовов сервисов

Рис. 6. Граф зависимостей вызовов сервисов

При первом вызове планировщика результатом его работы является расписание на рис. 7, где общее время выполнения скрипта равно 15 единицам (шкала X). На рис. 8 отображен момент времени 5, когда вызовы сервисов 1 и 2 произведены, начато выполнение сервиса 4, но при запуске сервиса 4 происходит ошибка и план перестраивается с учетом невыполнимости сервиса 3 на вычислительном узле 3. Таким образом, выполнение композиции сервисов продолжается и общее время выполнения увеличивается на единицу.

Рис. 7. Этап планирования

Рис. 8. Этап планирования

Заключение. В результате проделанной работы был спроектирован и разработан, а также интегрирован в существующую инфраструктуру Геопортала ИДСТУ СО РАН планировщик выполнения композиций распределенных WPS-сервисов в гетерогенной среде. Основными преимуществами разработанного планировщика являются его способность к перестройке плана вызова сервисов при изменениях, специфичных для распределенной среды веб-сервисов, а именно: отключению или, наоборот, включению отдельных вычислительных узлов в процессе выполнения сценария, изменению временных характеристик вызываемых сервисов. Также планировщик при перестроении учитывает добавление или удаление ветвей графа зависимости сервисов по данным, что происходит в силу использования управляющих конструкций в JavaScript сценариях WPS-сервисов. Перестроение плана происходит с учетом частично выполняющегося плана, что обеспечивает актуальность составляемого расписания.

В результате многочисленных апробаций было выявлено, что планировщик выполняет возложенные на него обязанности и осуществляет динамическое планирование выполнения сервисов в соответствии с возложенными на него требованиями. Интеграция планировщика позволила выполнять сценарии сервисов более эффективно с учетом всех особенностей распределённой среды.

СПИСОК ЛИТЕРАТУРЫ

1. Бычков И.В., Ружников М., Фёдоров Р.К., Шумилов А.С. Компоненты среды WPS-сервисов обработки геоданных // Вестник НГУ. Серия: Информационные технологии. -2014. - № 12. - С. 16-23.

2. Barbosa J., Monteiro A.P., A List Scheduling Algorithm for Scheduling Multi-user Jobs on Clusters // High Performance Computing for Computational Science. - 2008/ - № 5336. - С. 123-136.

3. Frausto-Solis J., Martinez-Rios F., Cruz-Chavez M.A. A Very Efficient Algorithm to Representing Job Shop Scheduling as Satisfiability Problem // 6to Congreso Internacional de Computo en Optimizacion y Software. - 2008. C. 52-62.

4. Jiang Y., Chen W. Task scheduling for grid computing systems using a genetic algorithm. // Journal Of Supercomputing. - 2015. Vol. 71. С. 1357-1377.

5. Ma D., Zhang W.. A static task scheduling algorithm in grid computing // Grid And Cooperative Computing, Pt 2. - 2004. - № 3033. - С. 153-156.

6. Serrano N., Hernantes J., Gallardo G. Service-Oriented Architecture and Legacy Systems // IEEE SOFTWARE. 2014. Vol. 31. P. 15-19.

7. Shahul A., Sinnen O. Scheduling task graphs optimally with A* // The Journal of Supercomputing. - 2010. Vol. 51. P. 310-332.

8. Tawfeek M., El-Sisi. A., Keshk A., Torkey F. Cloud Task Scheduling Based on Ant Colony Optimization // International Arab Journal Of Information Technology. - 2015. Vol. 12. С. 129-137.

9. Wang X., Yao YB. An Improved Genetic Algorithm for Multiprocessor Task Assignment and Scheduling. // 2nd International Conference On Communication And Technology (ICCT 2015). - 2015. С. 1-7.

10. Web Processing Service. Open Geospatial Consortium [Электронный ресурс] // OGC. URL: http://www.opengeospatial.org/standards/wps (дата обращения: 22.4.2016).

11. Wu F., Wu Q., Tan Y. Workflow scheduling in cloud: a survey // The Journal of Supercomputing - 2015. Vol. 71. P. 3373-3418.

12. Zhao H., Sakellariou R., An Experimental Investigation into the Rank Function of the Heterogeneous Earliest Finish Time Scheduling Algorithm // Euro-Par 2003 Parallel Processing. - 2003. - № 2790. - C. 189-194.

УДК 004.75

SCHEDULING THE SERVICES COMPOSITION EXECUTION IN THE HETEROGENEOUS ENVIRONMENT2 Roman K. Fedorov

Leading researcher., Ph. D., Matrosov Institute for System Dynamics and Control Theory of Siberian Branch of Russian Academy of Sciences, 664033 134, Lermontov Str., 664033, Irkutsk,

Russia, e-mail: fedorov@icc.ru Alexander S. Shumilov Postgraduate, Matrosov Institute for System Dynamics and Control Theory of Siberian Branch of Russian Academy of Sciences, 664033 134, Lermontov Str., 664033, Irkutsk, Russia, e-mail:

alexshumilov@yahoo. com

Abstract. Recently the Service-Oriented Architecture is being actively used, where computing is performed through web-accessible services. When services and combined and used together, the problem of theirs execution planning arises because of specific conditions of the environment of distributed services. The specific conditions are: computing nodes can change theirs availability, service can change theirs time parameters. Also, the actual service composition can change itself during its execution. In order to solve this problem the scheduler of web-services compositions was designed and implemented in close cooperation with the ISDCT SB RAS Geoportal. It allows rebuilding of the schedule depending on specific conditions of the environment and actual compositions. The scheduler was tested and integrated in the existing Geoportal infrastructure.

Keywords: service-oriented architecture, Web Processing Service, JavaScript, service orchestration

References

1. Bychkov Igor V., Rugnikov Gennady M., Fedorov Roman K., Alexander Shumilov S. Komponenty sredi WPS-servisov [Components of the WPS-services environment] // Vestnik NSU. Series: Informational technologies. 2014. № 12. Pp. 16-23 (in Russian)

2. Barbosa J., Monteiro A.P., A List Scheduling Algorithm for Scheduling Multi-user Jobs on Clusters // High Performance Computing for Computational Science. 2008. № 5336. Pp. 123-136.

3. Frausto-Solis J., Martinez-Rios F., Cruz-Chavez M.A. A Very Efficient Algorithm to Representing Job Shop Scheduling as Satisfiability Problem // 6to Congreso Internacional de Computo en Optimizacion y Software. 2008. Pp. 52-62.

2 Work is supported by RFBR, grant number 16-07-00411 А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4. Jiang Y., Chen W. Task scheduling for grid computing systems using a genetic algorithm. // Journal Of Supercomputing. 2015. Vol. 71. Pp. 1357-1377.

5. Ma D., Zhang W.. A static task scheduling algorithm in grid computing // Grid And Cooperative Computing, Pt 2. 2004. № 3033. Pp. 153-156.

6. Serrano N., Hernantes J., Gallardo G. Service-Oriented Architecture and Legacy Systems // IEEE SOFTWARE. 2014. Vol. 31. Pp. 15-19.

7. Shahul A., Sinnen O. Scheduling task graphs optimally with A* // The Journal of Supercomputing. 2010. Vol. 51. Pp. 310-332.

8. Tawfeek M., El-Sisi. A., Keshk A., Torkey F. Cloud Task Scheduling Based on Ant Colony Optimization // International Arab Journal Of Information Technology. 2015. Vol. 12. Pp. 129-137.

9. Wang X., Yao YB. An Improved Genetic Algorithm for Multiprocessor Task Assignment and Scheduling. // 2nd International Conference On Communication And Technology (ICCT 2015). 2015. Pp. 1-7.

10. Web Processing Service. Open Geospatial Consortium // OGC. URL: http://www.opengeospatial.org/standards/wps (accessed: 22.4.2016).

11. Wu F., Wu Q., Tan Y. Workflow scheduling in cloud: a survey // The Journal of Supercomputing - 2015. Vol. 71. P. 3373-3418.

12. Zhao H., Sakellariou R., An Experimental Investigation into the Rank Function of the Heterogeneous Earliest Finish Time Scheduling Algorithm // Euro-Par 2003 Parallel Processing. 2003. - № 2790. Pp. 189-194.

i Надоели баннеры? Вы всегда можете отключить рекламу.