Реклама:

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

+ ученые, исследующие все аспекты миссии на Марс;

+ консорциум, разрабатывающий сложный продукт (например, самолет или дамбу);

+ интернациональная спасательная команда, координирующая свои действия во время стихийного бедствия.

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

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

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

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

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

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

Таблица 8.7. Уровни иерархии системы распределенных вычислений

Уровень

Описание

Уровень приложений

Приложения, которые совместно и согласованно используют

 

ресурсы

Уровень коллективов

Исследования, посредничество, мониторинг, управление

 

группами ресурсов

Уровень ресурсов

Безопасность и управление доступом к отдельным ресурсам

Уровень инфраструктуры

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

 

сети, сенсоры, программы и данные

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

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

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

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

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

Для поддержания взаимодействия между различными организациями и машинами, необходимы стандарты как на предоставляемые услуги, так и на протоколы доступа к ним. Для управления процессом стандартизации сообщество распределенных вычислений создало организацию под названием Global Grid Forum. Результатом ее работы стал шаблон для формирования и развития различных стандартов, названный OGSA (Open Grid Services Architecture - открытая архитектура служб распределенных вычислений). Разрабатываемые стандарты по возможности опираются на существующие, например, для описания служб OGSA применяется язык WSDL (Web Services Definition Language - язык описания веб-служб). Стандартизованные на настоящее время службы попадают в одну из восьми категорий, хотя этот список, несомненно, в будущем будет расширен.

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

2. Службы управления ресурсами (резервирование и освобождение ресурсов).

3. Службы данных (копирование и перемещение данных туда, где они нужны).

4. Контекстные службы (описание требуемых ресурсов и политик их использования).

5. Информационные службы (получение информации о доступности ресурса).

6. Службы самоконтроля (поддержание заявленного качества услуги).

7. Службы защиты (применение политик безопасности).

8. Службы управления выполнением (управление потоком задач).

О системах распределенных вычислений можно говорить еще очень много, но объем книги не позволяет нам дальше углубляться в эту тему. Дополнительную информацию об этих системах можно найти в [23, 69, 70].

Производительность || Оглавление || Краткое содержание главы8