Архитектура и технология Grid

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И  НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное  учреждение

высшего профессионального образования

НАЦИОНАЛЬНЫЙ  ИССЛЕДОВАТЕЛЬСКИЙ

ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

 

 

Институт/ 

Факультет     –  __Институт кибернетики________________

Направление – __Информатика и вычислительная техника ___

      Кафедра        –    Оптимизация систем управления

 

 

Архитектура и технология Grid_______ __

 

Аналитический обзор

 

по курсу «Современные проблемы информатики и   

                             вычислительной техники»

 

 

 

Выполнил студент гр. 8ВМ33                       К.С.Арышева

 

 

Проверил доцент каф. ВТ                              А.Д.Чередов

 

 

 

 

 

 

Томск – 2013

Оглавление

Терминология и понятие grid. 3

История развития grid-технологий 4

Общие задачи технологии grid. 6

Типы grid-систем с точки зрения решаемых задач. 8

Общность и различия с суперкомпьютерами. 9

Структура grid. 11

Аппаратный уровень. 13

Связывающий уровень. 13

Ресурсный уровень. 13

Коллективный уровень. 14

Прикладной уровень. 14

Сервисы распределенных сетей. 15

Сервисно-ориентированная архитектура. 15

Взаимодействие сервисов в SOA-среде. 17

Принцип слабой связи. 17

Веб-сервисы и SOA. 18

Сервисно-ориентированный grid и OpenGrid. 20

Grid-сервисы в OGSA. 23

Базовые подсистемы. 25

Базовые подсистемы grid-инфраструктуры. 27

Реализация grid-технологий в проекте EGEE 29

Физика высоких энергий: проект LCG 30

Приложения в области ядерного синтеза 31

Список литературы 33

Терминология  и понятие grid.

Grid-технологии – естественный и современный продукт развития информационно-вычислительных инфраструктур в виде распределенной модели.

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

В результате объектно-ориентированный  подход был заменен на «сервисно-ориентированный». На смену объектам пришли «сервисы», которые взаимодействуют посредством асинхронных «сообщений» - в отличие от прежнего механизма взаимодействия объектов в режиме «запрос-ответ». Таким образом, распределенные системы стали слабо связанными, накладные расходы на взаимодействие снизились, а масштабируемость улучшилась.

Сервис — это логическое и программное описание функциональности некоторого логического или физического ресурса (например, прикладной или системной программы, устройства, людей, вычислительных, информационных, сетевых средств). Ресурсы публикуют сервисы в распределенной среде посредством своих интерфейсов. Таким образом, в сервисно-ориентированной системе все ресурсы выступают как провайдеры сервисов. А сервисно-ориентированная архитектура (СОА) определяет общий план, согласно которому функциональности сервисов и их интерфейсы можно организовывать в системные процессы.

История развития grid-технологий

Интернет, Всемирная паутина (World Wide Web (WWW), веб) и grid – связанные между собой, но различные технологии. Интернет это глобальная система сетей, соединяющая множество компьютеров и локальных (сравнительно небольших) сетей и позволяющая им взаимодействовать друг с другом. Веб это способ доступа к информации находящейся на удаленном, но включенном в Интернет компьютере. Grid – способ совместного использования ресурсов, распределенных по разным, географически удаленным друг от друга, точкам планеты.

Однако сейчас многие веб-сайты  предоставляют динамические веб-страницы: содержание таких страниц может  меняться в зависимости от запросов, которые делают пользователи (например, через веб-формы). Это уже несколько ближе к grid - удаленные компьютеры предоставляют некоторые услуги (например, перевод фрагмента текста с одного языка на другой: это не что иное, как частный случай обработки данных – прямая аналогия с задачами gird). Намного интереснее и ближе к grid-технологиям то,  что зачастую происходит «позади» динамических веб-страниц. Например, вы делаете заказ какого-либо товара на (динамической) странице интернет-магазина. После этого начинается обработка заказа: информация о заказе и клиенте заносятся в базу данных, через банковскую систему проверяется действительность кредитной карты клиента, запрос на товар передается на склад магазина или поставщику, и так далее. Если в компьютерном отношении этот магазин достаточно «продвинутый», эти действия выполняются не людьми, а специальными компонентами программного обеспечения – веб-сервисами, которые взаимодействуют друг с другом по стандартизованным протоколам.

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

Основной теоретической  предшественницей современных grid-проектов считается инициатива Metacomputing, предложенная в середине 80-х годов исследователями из Национального центра суперкомпьютерных приложений США. Ее главная идея состояла в объединении нескольких суперкомпьютеров для достижения большей производительности. Одной из первых инфраструктур, реализующих эту идею, стала в 1995 году Wide Area Year (I-WAY). Йан Фостер и Карл Кессельман, участвовавшие в разработке проекта, в том же году опубликовали первые материалы, а в 1997 году провели первый семинар на эту тему (Построение вычислительного grid-a - Building a Computational Grid). Это и было рождением концепции grid. Позднее они стали редакторами книг, заложивших основы построения grid-систем. Необходимо отметить, однако, что Metacomputing была не единственной инициативой такого рода. Среди схожих по концепции проектов конца 80-х – начала 90-х можно отметить:

    • Condor (университета штата Висконсин, США);
    • CODINE (Computing for Distributed Network Environments, немецкая компания Genias Software - позднее переименована в Gridware, в 1992 году куплена корпорацией Sun Microsystems);
    • Legion (университет штата Вирджиния, позднее рабочая группа проекта выделилась в компанию Avaki).

В 1998-2002 годах были разработаны  общие основы создания сетевых структур для использования географически  разнесенных и находящихся в  разном подчинении вычислительных мощностей. Эти результаты были суммированы, а  термин «grid» стал общепринятым. Вскоре группа исследователей из Чикагского университета, возглавляемая Йаном Фостером, поддерживаемая IBM и Национальной арагонской лабораторией, разработала Открытую архитектуру grid-сервисов (Open Grid Services Architecture, OGSA), основанную на специализированных grid-сервисах.

Общие задачи технологии grid.

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

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

Ресурсы хранения также используют ППО, реализующее унифицированный  интерфейс управления и передачи данных. Как и в случае вычислительных ресурсов, физическая архитектура ресурса  памяти не принципиальна для grid-системы, будь то жесткий диск на рабочей станции или система массового хранения данных на сотни терабайт. Основной характеристикой ресурсов хранения данных является их объем. В настоящее время характерный объем ресурсов хранения измеряется в Терабайтах (Тб).

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

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

Основными общими задачами grid являются:

  • создание из серийно выпускаемого оборудования широкомасштабных распределенных вычислительных систем и систем обработки, комплексного анализа и мониторинга данных, источники которых также могут быть (глобально) распределены;
  • повышение эффективности вычислительной техники путем предоставления в grid временно простаивающих ресурсов.

Типы grid-систем с точки зрения решаемых задач.

Grid-системы подразделяются на следующие типы:

  • вычислительный grid (Computational Grid),
  • grid для интенсивной обработки данных(Data Grid),
  • семантический grid для оперирования данными из различных баз данных (Semantic Grid).

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

 Целью второго направления  является обработка огромных  объемов данных относительно  несложными программами. Поэтому  вычислительные ресурсы grid-инфраструктуры в этом случае зачастую представляют собой кластеры персональных компьютеров. А вот доставка данных для обработки и пересылка результатов в этом случае представляют собой достаточно сложную задачу. Одним из крупнейших проектов, целью которого является создание grid-системы для обработки научных данных, является проект EGEE (Enabling Grids for E-sciencE).

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

Общность и  различия с суперкомпьютерами.

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

Grid-технология не является технологией параллельных вычислений, она предназначена для удаленного запуска отдельных задач на территориально распределенные ресурсы. Поэтому если громоздкая задача, которую необходимо решить, может быть разбита на большое количество маленьких, независимых (не обменивающихся никакими данными) частей, - grid-технология оказывается особенно эффективным и относительно дешевым решением. Напротив, суперкомпьютеры оказываются для таких вычислений неоправданно дорогим и неэффективным решением. В англоязычной литературе такие прикладные задачи иногда называют «bag-of-tasks» - сумка/мешок задач: вычисления для каждой выполняются независимо, а в конце пользователь или программное обеспечение просто должны соединить результаты индивидуальных вычислений. Типичными примерами таких задач являются:

  • массовая обработка потоков экспериментальных данных большого объема (зачастую изучаемое явление можно разделить на отдельные независимые события и экспериментальные результаты по каждому событию обрабатывать независимо от других);
  • визуализация больших наборов данных (отдельные области визуального представления обрабатываются независимо, а потом «склеиваются»);
  • сложные бизнес-приложения с большими объемами вычислений (разбиение на части зависит от конкретного характера задачи).

Следует отметить, что ПО промежуточного слоя нового поколения для grid-систем позволяет управлять некоторым классом нетривиальных параллельных вычислений – таких, зависимость подзадач в которых может быть представлена направленным графом без циклов (Direct Acyclic Graph), приведенным на рисунке Рис.  1.

Рис.  1 Направленный граф вычислений

Необходимо отметить, что  существуют гибридные проекты, целью  которых  является достижение максимальной скорости вычислений за счет глобального  распределения этих вычислений между  суперкомпьютерами – при этом grid координирует использование различных суперкомпьютеров, а собственно нетривиальное распараллеливание происходит внутри суперкомпьютера. Проект DEISA может служить примером этого направления, в котором предпринимается попытка объединения суперкомпьютерных центров.

Структура grid.

Правильно разработанная  и хорошо реализованная grid-среда характеризуется следующими основными функциональными возможностями:

  • доступ к вычислительным ресурсам, данным, устройствам, измерительным инструментам должен быть простым, прозрачным, удаленным, и безопасным;
  • доступ должен быть виртуальным (нужен доступ не к серверам, а к сервисам, поставляющим данные или вычислительные ресурсы — причем без необходимости знания аппаратной структуры, обеспечивающей эти сервисы);
  • доступ должен осуществлять по требованию (с заданным качеством), а ресурсы должны предоставляться тогда, когда в них возникает нужда;
  • доступ должен быть распределенным, обеспечивая возможность совместной коллективной работы виртуальных команд;
  • доступ должен быть устойчив к сбоям, а при выходе из строя серверов приложения должны автоматически мигрировать на резервные серверы;
  • доступ должен обеспечивать возможность работы в гетерогенной среде – с различными платформами.

Необходимо отметить, что  не все из этих требований в должной  мере реализованы в настоящее  время.

Общая структура глобального  grid-a описывается в виде стека (набора уровней или слоев) протоколов. В такой модели каждый уровень предназначен для решения узкого круга задач и используется для предоставления услуг для более высоких уровней. Верхние уровни ближе к пользователю и работают с наиболее абстрактными объектами, тогда как нижние уровни сильно зависят от физической реализации grid-ресурсов. Полезно иметь в виду, что эта структура аналогична сетевой модели OSI (Open Systems Interconnection Reference Model); Стек grid-протоколов включает:

  • аппаратный уровень (Fabric Layer) составляют протоколы, по которым соответствующие службы непосредственно работают с ресурсами;
  • связывающий уровень (Connectivity Layer) составляют протоколы,  которые обеспечивают обмен данными между компонентами базового уровня и протоколы аутентификации;
  • ресурсный уровень (Resource Layer) – это ядро многоуровневой системы, протоколы которого взаимодействуют с ресурсами, используя унифицированный интерфейс и не различая архитектурные особенности конкретного ресурса;
  • коллективный (Collective Layer) уровень отвечает за координацию использования имеющихся ресурсов;
  • прикладной уровень (Application Layer) описывает пользовательские приложения, работающие в среде виртуальной организации; приложения функционируют, используя протоколы, определенные на нижележащих уровнях.

Аппаратный уровень.

Аппаратный уровень обеспечивает доступ к распределенным ресурсам, необходимый протоколам более высокого уровня. Как уже неоднократно отмечалось, спектр возможных ресурсов весьма широк - это могут быть компьютеры, устройства массовой хранения данных, каталоги, сетевые  ресурсы и т. п.  При этом ресурс может быть логической сущностью (например, распределенной файловой системой) или  физической (например, кластером компьютеров). Реализация такого ресурса может  включать внутренние протоколы (например, NFS (Network File System) или протокол управления кластером), однако подобные протоколы  не включаются в стек grid-a. Компоненты аппаратного уровня реализуют локальные операции, специфические для каждого данного ресурса (логического или физического). Этот уровень по своим функциям аналогичен канальному уровню модели OSI и, по существу, представляет собой набор интерфейсов для управления локальными ресурсами.

Связывающий уровень.

Коммуникационные протоколы  связывающего уровня (Connectivity) должны обеспечивать надежный транспорт и маршрутизацию сообщений, а также присвоение имен объектам сети, а протоколы аутентификации этого уровня, основываясь на коммуникационных, предоставляют криптографические механизмы для идентификации и проверки подлинности пользователей и ресурсов. Инфраструктура поддержки включает централизованную выдачу сертификатов, управление сертификатами и ключами и т. д.

Ресурсный уровень.

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

  • информационные протоколы, предназначенные для получения информации о структуре и состоянии ресурса, его конфигурации, текущей загрузке и политике (то есть, условиях) предоставления ресурсов (например, стоимости их использования);
  • протоколы управления, обеспечивающие согласованность доступа к разделяемому ресурсу и определяющие необходимые операции, которые ресурс должен выполнить (скажем, инициализация процесса или доступ к данным).

Коллективный  уровень.

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

Прикладной уровень.

Этот высший уровень grid-архитектуры включает пользовательские приложения, которые исполняются в среде объединенных ресурсов. В процессе исполнения приложения используют протоколы нижележащих уровней, обеспечивающие доступ к необходимым службам, а также прикладные программные интерфейсы (Application Programming Interface – API), соответствующие данным протоколам. Приложения могут вызываться через достаточно сложные оболочки и библиотеки. Эти оболочки сами могут определять протоколы, сервисы и прикладные программные интерфейсы, однако подобные надстройки не относятся к фундаментальным протоколам и сервисам, определяющим архитектуру grid-систем.

Сервисы распределенных сетей.

Сервисно-ориентированная архитектура.

При рассмотрении термина  «сервисно-ориентированная архитектура», полезно предварительно определить ключевые термины: архитектура и  сервис.

Архитектура – это формальное описание системы, определяющее ее цели, функции, внешне видимые свойства, и интерфейсы. Она также включает описание внутренних компонентов системы и их отношений, наряду с принципами, управляющими ее дизайном, функционированием и возможной последующей эволюцией.

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

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

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

Сервисы имеют следующие  характеристики:

  • Сервисы могут быть полезными каждый сам по себе, или они могут быть объединены, чтобы предоставить единый высокоуровневый сервис. Среди других достоинств, это позволяет многократно использовать уже существующие функциональные возможности.
  • Сервис общаются со своими клиентами, обмениваясь сообщениями: фактически, сервисы и различаются и идентифицируются в соответствии с совокупностью сообщений, которые они могут принять и ответов, которые они могут направить запрашивающей стороне.
  • Сервис может участвовать в таких процессах обработки запросов, при которых порядок, в котором сообщения посылаются и принимаются, влияет на результат операций, выполненных сервисом. Это называется "сервисной хореографией" (service choreography).
  • Сервис может быть полностью независимым, или может зависеть от существования других сервисов, или каких-либо ресурсов, например, баз данных. Простейшим примером первого типа является сервис, осуществляющий возведение в квадрат числа, посланного в запросе; примером второго типа является сервис, осуществляющий конвертацию валют – для этого ему необходим текущий валютный курс.
  • Сервисы предоставляют информацию о своих возможностях, интерфейсах, политике и поддерживаемых протоколах связи. Детали реализации, например, язык программирования и платформа, на которой он реализован, не нужны клиентам для направления запросов и не предоставляются.

Взаимодействие  сервисов в SOA-среде.

Потенциальный клиент, который  может быть другим сервисом (или  человеком), делает запрос в сервис регистрации (2), чтобы найти сервис, который удовлетворяет его потребностям. Регистрационный сервис возвращает (возможно, пустой) список подходящих сервисов; клиент выбирает один из них и передает ему запрос, используя любой взаимно распознаваемый протокол (3).

Рис.  2 Схема взаимодействия сервисов в SOA-среде

В этом примере, отображенном на Рис.  2, сервис отвечает (4), передавая или результат требуемой операции или сообщение об ошибке. На рисунке показан самый простой случай. В реальной установке процесс может быть значительно более сложным. Например, данный сервис может поддержать только HTTPS протокол, обслуживать только зарегистрированных пользователей, предлагать различные уровни сервиса различным пользователям, или требовать оплаты за использование.

Принцип слабой связи.

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

Достоинствами слабой связи  являются:

  • Гибкость: сервис может быть расположен на любом сервере, а при необходимости – перемещен. Пока ссылка на этот сервис есть в службе регистрации, предполагаемые клиенты будут в состоянии найти и использовать его.
  • Масштабируемость: функциональные возможности сервиса могут быть расширены или сужены, поскольку при этом описание сервиса динамически меняется, и, соответственно, изменяются и запросы.
  • Возможность модификации реализации: при условии, что оригинальные интерфейсы сохраняются, реализация сервиса может быть обновлена без сбоев в обслуживании клиентов.
  • Отказоустойчивость: Если возникают проблемы в работе сервера, программного компонента или сегмента сети, или сервис становится недоступным по любой другой причине, клиенты могут сделать запрос к службе регистрации для обнаружения другого сервиса, который предоставляет требуемые услуги.

Веб-сервисы  и SOA.

SOA и веб-сервисы являются  «ортогональными» понятиями: сервисная  ориентация – это архитектурный  стиль, а веб-сервисы - технология  выполнения. Они, конечно, могут  использоваться совместно – как  это часто и случается, но  они взаимно независимы.

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

Хотя отсутствие состояний  зачастую рассматривается как ключевая характеристика веб-сервис, нет никаких  технических причин, по которым они  обязательно должны быть без состояний  – это определяется выбором разработчика и архитектурным стилем среды, в  которой сервис должен работать.

Легкость, с которой веб-сервисы  могут быть реализованы и возможность  обращаться к ним независимо от платформы  клиента, привела к тому, что они  были широко приняты администраторами систем как «агенты виртуализации», которые обеспечивают общие интерфейсы управления к различным ресурсам. Например, веб-сервис может быть спроектирован  так, чтобы "представлять" специфическое  устройство или обычное приложение, принимая запросы управления и контроля через стандартизированные интерфейсы, с ресурсом общаясь посредством  его «родного» интерфейса, и возвращая  результат запрашивающей стороне  опять в стандартном формате. Данный рисунок Рис.  3 иллюстрирует, каким образом единая консоль может управлять совокупностью разнообразных ресурсов посредством уровня виртуализации на основе веб-сервиса. Каждая совокупность предоставляет консоли стандартизированных интерфейсов для взаимодействия со связанным с ней ресурсом.

Рис.  3 Виртуализация ресурсов с помощью Веб-сервисов

Сервисно-ориентированный  grid и OpenGrid.

Работа grid-систем опирается на программное обеспечение промежуточного уровня: программные компоненты и протоколы, которые обеспечивают требуемый контролируемый доступ к ресурсам. На первом этапе своего существования grid-системы строились или на основе специально разработанных общедоступных компонент или на основе закрытых (проприетарных) технологий. Хотя различные общественные и коммерческие решения были успешны в своих областях применения grid-a, каждое со своими сильными и слабыми сторонами, они имели ограниченный потенциал как основы для grid нового поколения, который должен быть масштабируемым и интероперабельным, чтобы удовлетворять потребности широкомасштабных научных и производственных проектов.

В последние годы стало  ясно, что есть значительное перекрытие между целями вычислительного grid-a и преимуществ сред, основанных на SOA и веб-сервисах. Быстрый прогресс в технологии веб-сервисов и разработке соответствующих стандартов обеспечили эволюционный путь от жесткой и узконаправленной архитектуры grid-систем первого поколения к стандартизированным, сервис-ориентированным grid-ам, гарантирующим стабильно-высокое качество обслуживания пользователей (grid промышленного уровня).

Архитектура и технология Grid