Архитектура и технология 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.
Концепция grid появилась как ответ на потребность в крупных информационно-вычислительных ресурсах, динамически выделяемых для решения громоздких задач в научной, индустриальной, административной и коммерческой областях деятельности. Создание grid-среды подразумевает распределение вычислительных ресурсов по территориально разделенным сайтам, на которых установлено специализированное программное обеспечение для того, чтобы распределять задания по сайтам и принимать их там, возвращать результаты пользователю, контролировать права пользователей на доступ к тем или иным ресурсам, осуществлять мониторинг ресурсов, и так далее. Общедоступные ресурсы на основе сайта могут включать вычислительные узлы и/или узлы хранения и передачи данных, собственно данные, прикладное программное обеспечение.
Вычислительные ресурсы предоставляют пользователю grid-системы (точнее говоря, задаче пользователя) процессорные мощности. Вычислительными ресурсами могут быть как кластеры, так и отдельные рабочие станции. При всем разнообразии архитектур любая вычислительная система может рассматриваться как потенциальный вычислительный ресурс grid-системы. Необходимым условием для этого является наличие ППО (промежуточное программное обеспечение), реализующего стандартный внешний интерфейс с ресурсом и позволяющего сделать ресурс доступным для grid-системы. Основной характеристикой вычислительного ресурса является производительность.
Ресурсы хранения также используют
ППО, реализующее унифицированный
интерфейс управления и передачи
данных. Как и в случае вычислительных
ресурсов, физическая архитектура ресурса
памяти не принципиальна для grid-
Информационные ресурсы и каталоги являются особым видом ресурсов хранения данных. Они служат для хранения и предоставления метаданных и информации о других ресурсах grid-системы. Информационные ресурсы позволяют структурировано хранить огромный объем информации о текущем состоянии grid-системы и эффективно выполнять задачи поиска ресурсов.
Сетевой ресурс является связующим
звеном между распределенными
Основными общими задачами grid являются:
- создание из серийно выпускаемого оборудования широкомасштабных распределенных вычислительных систем и систем обработки, комплексного анализа и мониторинга данных, источники которых также могут быть (глобально) распределены;
- повышение эффективности вычислительной техники путем предоставления в grid временно простаивающих ресурсов.
Типы grid-систем с точки зрения решаемых задач.
Grid-системы подразделяются на следующие типы:
- вычислительный grid (Computational Grid),
- grid для интенсивной обработки данных(Data Grid),
- семантический grid для оперирования данными из различных баз данных (Semantic Grid).
Целью первого направления является достижение максимальной скорости вычислений за счет глобального распределения этих вычислений между тысячами компьютеров, а также, возможно, серверами и суперкомпьютерами.
Целью второго направления
является обработка огромных
объемов данных относительно
несложными программами.
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) описывает пользовательские приложения, работающие в среде виртуальной организации; приложения функционируют, используя протоколы, определенные на нижележащих уровнях.
Аппаратный уровень.
Аппаратный уровень
Связывающий уровень.
Коммуникационные протоколы связывающего уровня (Connectivity) должны обеспечивать надежный транспорт и маршрутизацию сообщений, а также присвоение имен объектам сети, а протоколы аутентификации этого уровня, основываясь на коммуникационных, предоставляют криптографические механизмы для идентификации и проверки подлинности пользователей и ресурсов. Инфраструктура поддержки включает централизованную выдачу сертификатов, управление сертификатами и ключами и т. д.
Ресурсный уровень.
Ресурсный уровень с помощью коммуникационных и аутентификационных протоколов, входящих в нижележащий связывающий уровень, проводит согласование методов безопасности, инициализацию и мониторинг ресурсов, и управление ими. Для доступа к локальным ресурсам и дальнейшего управления ресурсный уровень вызывает соответствующие функции аппаратного уровня. Заметим, что протоколы ресурсного уровня предназначены исключительно для работы с локальными ресурсами, они не учитывают глобальное состояние системы. Этим занимается коллективный уровень, располагающийся выше. Ресурсный уровень включает два основных класса протоколов:
- информационные протоколы, предназначенные для получения информации о структуре и состоянии ресурса, его конфигурации, текущей загрузке и политике (то есть, условиях) предоставления ресурсов (например, стоимости их использования);
- протоколы управления, обеспечивающие согласованность доступа к разделяемому ресурсу и определяющие необходимые операции, которые ресурс должен выполнить (скажем, инициализация процесса или доступ к данным).
Коллективный уровень.
Протоколы коллективного уровня отвечают за взаимодействие всех элементов пула ресурсов, что и отражено в самом названии. В качестве примера глобальных функций и сервисов, реализуемых протоколами этого уровня, можно назвать службу каталогов, распределение ресурсов, планирование и брокерские услуги, службы мониторинга, диагностики, репликации данных, коллективной авторизации.
Прикладной уровень.
Этот высший уровень grid-архитектуры включает пользовательские приложения, которые исполняются в среде объединенных ресурсов. В процессе исполнения приложения используют протоколы нижележащих уровней, обеспечивающие доступ к необходимым службам, а также прикладные программные интерфейсы (Application Programming Interface – API), соответствующие данным протоколам. Приложения могут вызываться через достаточно сложные оболочки и библиотеки. Эти оболочки сами могут определять протоколы, сервисы и прикладные программные интерфейсы, однако подобные надстройки не относятся к фундаментальным протоколам и сервисам, определяющим архитектуру grid-систем.
Сервисы распределенных сетей.
Сервисно-ориентированная архитектура.
При рассмотрении термина
«сервисно-ориентированная
Архитектура – это формальное описание системы, определяющее ее цели, функции, внешне видимые свойства, и интерфейсы. Она также включает описание внутренних компонентов системы и их отношений, наряду с принципами, управляющими ее дизайном, функционированием и возможной последующей эволюцией.
Сервис (служба) - программный компонент, к которому можно удаленно обратиться посредством компьютерной сети, и предоставляющий некоторые функциональные возможности запрашивающей стороне.
Сервисно-ориентированная архитектура (service-oriented architecture, SOA) является основой построения надежных распределенных систем, которые в качестве услуг предоставляют функциональные возможности, с дополнительным акцентом на слабые связи между взаимодействующими сервисами.
Таким образом, SOA это архитектурный
стиль, который подчеркивает реализацию
компонентов системы как
Сервисы имеют следующие характеристики:
- Сервисы могут быть полезными каждый сам по себе, или они могут быть объединены, чтобы предоставить единый высокоуровневый сервис. Среди других достоинств, это позволяет многократно использовать уже существующие функциональные возможности.
- Сервис общаются со своими клиентами, обмениваясь сообщениями: фактически, сервисы и различаются и идентифицируются в соответствии с совокупностью сообщений, которые они могут принять и ответов, которые они могут направить запрашивающей стороне.
- Сервис может участвовать в таких процессах обработки запросов, при которых порядок, в котором сообщения посылаются и принимаются, влияет на результат операций, выполненных сервисом. Это называется "сервисной хореографией" (service choreography).
- Сервис может быть полностью независимым, или может зависеть от существования других сервисов, или каких-либо ресурсов, например, баз данных. Простейшим примером первого типа является сервис, осуществляющий возведение в квадрат числа, посланного в запросе; примером второго типа является сервис, осуществляющий конвертацию валют – для этого ему необходим текущий валютный курс.
- Сервисы предоставляют информацию о своих возможностях, интерфейсах, политике и поддерживаемых протоколах связи. Детали реализации, например, язык программирования и платформа, на которой он реализован, не нужны клиентам для направления запросов и не предоставляются.
Взаимодействие сервисов в SOA-среде.
Потенциальный клиент, который
может быть другим сервисом (или
человеком), делает запрос в сервис
регистрации (2), чтобы найти сервис,
который удовлетворяет его
Рис. 2 Схема взаимодействия сервисов в SOA-среде
В этом примере, отображенном на Рис. 2, сервис отвечает (4), передавая или результат требуемой операции или сообщение об ошибке. На рисунке показан самый простой случай. В реальной установке процесс может быть значительно более сложным. Например, данный сервис может поддержать только HTTPS протокол, обслуживать только зарегистрированных пользователей, предлагать различные уровни сервиса различным пользователям, или требовать оплаты за использование.
Принцип слабой связи.
В определение SOA входит понятие слабой связи сервисов. Этот термин подразумевает, что взаимодействующие программные компоненты имеет минимальное знание друг о друге: они находят информацию, которая им нужна для взаимодействия непосредственно перед взаимодействием. Например, узнав о существовании сервиса, клиент может выяснить его возможности, условия предоставления услуг, его местоположение, его интерфейсы и поддерживаемые протоколы. Как только эти сведения получены, клиент может сразу же обратиться к сервису, используя любой взаимоприемлемый протокол.
Достоинствами слабой связи являются:
- Гибкость: сервис может быть расположен на любом сервере, а при необходимости – перемещен. Пока ссылка на этот сервис есть в службе регистрации, предполагаемые клиенты будут в состоянии найти и использовать его.
- Масштабируемость: функциональные возможности сервиса могут быть расширены или сужены, поскольку при этом описание сервиса динамически меняется, и, соответственно, изменяются и запросы.
- Возможность модификации реализации: при условии, что оригинальные интерфейсы сохраняются, реализация сервиса может быть обновлена без сбоев в обслуживании клиентов.
- Отказоустойчивость: Если возникают проблемы в работе сервера, программного компонента или сегмента сети, или сервис становится недоступным по любой другой причине, клиенты могут сделать запрос к службе регистрации для обнаружения другого сервиса, который предоставляет требуемые услуги.
Веб-сервисы и SOA.
SOA и веб-сервисы являются
«ортогональными» понятиями:
Например, хотя принято считать,
что SOA предназначена для
Хотя отсутствие состояний зачастую рассматривается как ключевая характеристика веб-сервис, нет никаких технических причин, по которым они обязательно должны быть без состояний – это определяется выбором разработчика и архитектурным стилем среды, в которой сервис должен работать.
Легкость, с которой веб-сервисы
могут быть реализованы и возможность
обращаться к ним независимо от платформы
клиента, привела к тому, что они
были широко приняты администраторами
систем как «агенты виртуализации»,
которые обеспечивают общие интерфейсы
управления к различным ресурсам.
Например, веб-сервис может быть спроектирован
так, чтобы "представлять" специфическое
устройство или обычное приложение,
принимая запросы управления и контроля
через стандартизированные
Рис. 3 Виртуализация ресурсов с помощью Веб-сервисов
Сервисно-ориентированный grid и OpenGrid.
Работа grid-систем опирается на программное обеспечение промежуточного уровня: программные компоненты и протоколы, которые обеспечивают требуемый контролируемый доступ к ресурсам. На первом этапе своего существования grid-системы строились или на основе специально разработанных общедоступных компонент или на основе закрытых (проприетарных) технологий. Хотя различные общественные и коммерческие решения были успешны в своих областях применения grid-a, каждое со своими сильными и слабыми сторонами, они имели ограниченный потенциал как основы для grid нового поколения, который должен быть масштабируемым и интероперабельным, чтобы удовлетворять потребности широкомасштабных научных и производственных проектов.
В последние годы стало ясно, что есть значительное перекрытие между целями вычислительного grid-a и преимуществ сред, основанных на SOA и веб-сервисах. Быстрый прогресс в технологии веб-сервисов и разработке соответствующих стандартов обеспечили эволюционный путь от жесткой и узконаправленной архитектуры grid-систем первого поколения к стандартизированным, сервис-ориентированным grid-ам, гарантирующим стабильно-высокое качество обслуживания пользователей (grid промышленного уровня).

- Архитектура и типы информационных систем
- Архитектура и функциональные возможности современных ПК
- Архитектура и ювелирное дело Микенской Греции
- Архитектура Казахстана
- Архитектура как вид искусства
- Архитектура как вид искусства
- Архитектура, как вид искусства
- Архитектура и скульптуры в древней Греции
- Архитектура исламского мира
- Архитектура и стандартизация сетей
- Архитектура и стили
- Архитектура и строительство крито-микенской культуры
- Архитектура и строительство Междуречья (Месопотамии)
- Архитектура Италии XVII века: Л. Бернини, Ф. Борромини