ДонНУ, кафедра КТ, проф.В.К.Толстых OGSA Open Grid Services Architecture OGSA (Open Grid Services Architecture) Концепция, Grid-сервисы, пример структуры OGSA, интерфейсы Grid-сервисов Из цикла лекций «Современные Internet-технологии» для студентов 5-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета
Эволюция технологии Grid привела к возникновению архитектуры Open Grid Services Architecture. В ней Grid-система предоставляет обширный набор Web-сервисов, которые виртуальные организации могут объединять различными способами. Если раньше приложения обращались к компьютерам и их дискам, то здесь они должны обращаться к службам, которые определяют нужные ресурсы и организуют работу с ними. Архитектура OGSA: определяет единообразную семантику взаимодействия служб, наборы обязательных интерфейсов, определяет стандартные механизмы для создания, именования и обнару- жения экземпляров Grid-служб, обеспечивает прозрачность местонахождения и связывание различных протоколов, поддерживает интеграцию с базовыми механизмами нижележащих платформ. Что это такое?
OGSA определяет Grid-службу как Web-сервис, поддерживающий специфические соглашения Open Grid Services Infrastructure (OGSI): единый механизм обнаружения служб (экземпляров служб), определения их характеристик и конфигурирования запросов к этим службам, идентификация Grid-сервисов – дескрипторы (Grid Service Handle, GSH – глобально уникальные имена) и механизм отображения, позволяющий по дескриптору получить текущую ссылку (Grid Service Reference, GSR) на экземпляр сервиса, соглашения по взаимной аутентификации и авторизации служб и контролю одновременного использования, службы OGSA могут создаваться и уничтожаться динамически, а экземпляры служб, имеют состояние и, возможно, ограниченное время жизни, службы OGSA могут асинхронно уведомлять друг друга о серьезных изменениях в своем состоянии, интерфейс управляемости служб OGSA позволяет выполнять мониторинг больших наборов экземпляров Grid-служб и управлять ими. Grid-сервисы
Пользователь хочет обнаружить, приобрести и развернуть удаленным образом средства для создания новой базы данных путем добычи данных из нескольких источников данных в Internet Пользователь (программа или служба, действующая от имени пользователя) обращается к реестру фабрик в Grid для поиска провайдеров служб, способных предоставить требуемые возможности добычи и хранения данных. Он может указать, например, стоимость, местонахождение или производительность. Реестр возвращает дескрипторы, указывающие необходимую фабрику добычи данных и фабрику базы данных. Пользователь инициирует запросы на создание экземпляров фабрики добычи и базы данных. Создаются два новых экземпляра служб с требуемым начальным состоянием, ресурсами и временем жизни. Служба добычи данных инициирует запросы к соответствующим удаленным базам данных от имени пользователя. Результаты запросов возвращаются вновь создаваемой базе данных. В процессе работы пользователь может периодически направлять сообщения о продлении времени жизни всех экземпляров служб. Экземпляр службы добычи данных уведомляет пользователя о выполнении и завершении работы. Затем пользователь сохраняет дескриптор для вновь созданной базы данных, которая может использоваться до тех пор, пока это необходимо, и периодически сигнализирует о том, что данный экземпляр службы нужен по-прежнему.
Internet OGSA – «Добыча данных» Реестр этого Grid Приложение пользователя 1 – найти службу добычи данных, 2 – дескрипторы фабрик добычи данных и базы данных, 3.1 – создать службу добычи данных со временем жизни 10, 3.2 – создать службу хранения данных со временем жизни 100, 4 – создать экземпляр, 5 – продлить время жизни, 6 – запрос, 7 – результат, 8 – сохранить, 9 – дескриптор новой базы, 10 – продлить время жизни Провайдер службы добычи Фабрика добычи данных Экземпляр службы добычи данных Провайдер службы хранения Фабрика базы данных Экземпляр службы хранения данных
Основные стандартные интерфейсы Grid-сервисов
Подробнее об интерфейсах OGSA Фабрики (factories) - класс Grid-сервисов, которые реализуют интерфейс Factory для создания новых экземпляров Grid-сервисов. Операция CreateService интерфейса Factory создает требуемый Grid- сервис и возвращает дескриптор (GSH) и начальную ссылку (GSR) на новый экземпляр сервиса. Интерфейс Factory не определяет то, каким образом создается экземпляр сервиса. Создание сервисов (Фабрика)
Управление жизненным циклом сервиса Время жизни сервиса – момент, когда выполнение сервиса может или должно быть завершено, а используемые им ресурсы освобождены. Из-за сбоев в распределенных системах сервис может никогда не получить команды. Soft-state подход - поддерживает надежное завершение работы и защиту от сбоев: Экземпляры Grid-сервисов создаются с заданным ограниченным временем жизни, Время жизни может быть продлено на указанный период при помощи явного запроса со стороны клиента или другого сервиса, По истечении времени жизни среда размещения или сам экземпляр сервиса может завершить свою работу и освободить все используемые ресурсы. Стандартные операции управления жизненным циклом экземпляра Grid-сервиса: CreateService – в параметрах задается начальное время жизни, SetTerminationTime - обновление времени жизни, Destroy – явное прекращение работы сервиса, Синхронизация часов - Network Time Protocol (NTP)
Управление дескрипторами и ссылками Интерфейс отображения дескрипторов HandleMap - Операция FindByHandle принимает в качестве аргумента значение GSH и возвращает соответствующее ему текущее значение GSR. Алгоритм получения GSR экземпляра сервиса: Идентификация сервиса отображения, который хранит отображение для данного GSH, Связь с этим сервисом для получения нужной GSR. Каждый экземпляр Grid-сервиса обязан быть зарегистрирован по- крайней мере в одном сервисе отображения, который называется домашним.
Данные сервиса С каждым экземпляром Grid-сервиса связаны данные сервиса информация, структурированная в виде набора именованных и типизированных XML-элементов (service data elements, SDE) Запрос и извлечения данных сервиса осуществляется при помощи операции FindServiceData Для каждого из стандартных интерфейсов определен набор элементов данных сервиса, которые должны поддерживаться любым экземпляром сервиса, реализующим данный интерфейс
Поиск сервисов Реестр (registry) - это Grid-сервис, поддерживающий поиск сервисов и реализующий интерфейс Registry: RegisterService – Провести временную регистрацию указанного дескриптора Grid-сервиса, UnregisterService - Снятие дескриптора с регистрации. Поиск и извлечение информации о зарегистрированных сервисах осуществляется с помощью операции FindServiceData Soft-state подход: регистрация GSH является временной операцией и должна периодически обновляться.
Уведомления Сервисы должны иметь возможность асинхронно уведомлять друг друга о значащих изменениях своего состояния (событиях) Модель уведомлений OGSA - позволяет клиентам подписываться на уведомления об определенных событиях, поддерживает асинхронную, одностороннюю доставку уведомлений. Операция подписки представляет собой просто запрос на последующую доставку данных сервиса, которые удовлетворяют указанным критериям. Интерфейс NotificationSource – обязателен для реализации сервисом-отправителем уведомлений. Интерфейс NotificationSink – обязателен для реализации сервисом- получателем уведомлений