Ю У р Г У МехМат С П Грид технологии Лекция 6 Архитектура Globus Toolkit Радченко Глеб Игоревич, каф. СП, ЮУрГУ http://dom.susu.ru/grid.htm Ю Содержание 2 1. Предпосылки возникновения Globus Toolkit 2. Роль GT в создании грид-приложений 3. Globus Toolkit 4 и WSRF 4. Компоненты Globus Toolkit 5. GT4 Common Runtime У р Г МехМат С П У 1 Предпосылки возникновения Globus Toolkit Ю Образование GT 4 Предпосылка к разработке GT: проект I-WAY, стартовавший в 1995 г. В ходе данного проекта были разработаны и апробированы: процедуры аутентификации; процедуры резервирования ресурсов; планировщик ресурсов; специальное клиентское обеспечение (IPOP). У р Г МехМат С П У Ю Основные приложения грид У р Г МехМат С П 5 Интенсивные вычисления Большой объем данных Интерактивное моделирование (моделирование климата); Задачи широкомасштабного анализа (формирование галактик, гравитационные волны); Инженерные задачи (параметрические задачи; связанные модели). Анализ экспериментальных данных; Анализ изображений и сенсоров (астрономия, климат). Распределенные взаимодействия Задачи удаленной визуализации, онлайн-инструментов; Инженерные задачи. У Ю Предпосылки к созданию GT У р МехМат С 6 В процессе разработки проекта I-WAY были выявлены следующие проблемы разработки распределенных систем: Г слишком много различных систем обеспечения безопасности; слишком много различных систем планирования/исполнения заданий; слишком много различных систем хранения данных; слишком много различных систем мониторинга/обмена сообщениями и т.п. П У Ю Основатели GT У р Г МехМат С 7 Ian Foster – Associate Division Director in the Mathematics and Computer Science Division at Argonne National Laboratory; Professor in the Department of Computer Science at the University of Chicago Carl Kesselman – Director of Center for Grid Technologies (Information Sciences Institute of University of Southern California); П У 2 Роль GT в создании грид-приложений 9 Роль GT в создании грид-приложений Ю Набор решений для проблем, которые часто возникают при создании распределенного приложения Гетерогенность GT – помочь разработчикам преодолеть проблемы, возникающие из-за гетерогенности вычислительной среды. Задача Стандарты GT основывается на существующих стандартах, принятых IETF, W3C, OASIS, GGF; У р Г МехМат С П У 10 Разработка грид-приложения без GT Программа моделирования Web баузер Web портал Разработчик приложения 10 В наличии 12 Globus Toolkit 0 Grid Community 0 Выч. сервер B Выч. сервер Чат Реестр Сертификатов Каталог данных Службы приложений организуют ВО и обеспечивают доступ к другим службам Коллективные службы объединяют или виртуализуют ресурсы У р С Камера C Служба б/д D Служба б/д E Служба б/д Г МехМат Камера Удаленный монитор Авторизация Пользователи работают с клиентскими приложениями A Служба регистрации Просмотр данных Ю Ресурсы реализуют стандартный интерфейс доступа и управления П У 11 Разработка грид-приложения с использованием GT Программа моделирования Web баузер Globus Index Service CHEF Просмотр данных Разработчик приложения 2 В наличии 9 Globus Toolkit 5 Grid Community 3 Удаленный монитор CHEF Сhat Teamlet MyProxy Globus MCS/RLS Авторизация Пользователи работают с клиентскими приложениями Службы приложений организуют ВО и обеспечивают доступ к другим службам Коллективные службы объединяют или виртуализуют ресурсы Ю Globus GRAM Выч. сервер Globus GRAM Выч. сервер У р МехМат С Камера Камера Globus DAI Служба б/д Globus DAI Служба б/д Globus DAI Служба б/д Г Ресурсы реализуют стандартный интерфейс доступа и управления П У 12 GT – стандартная инфраструктура для Грид НЕ готовые решения, а строительные блоки и инструментарий для разработчиков Зачем изобретать, если можно использовать? Ю У р МехМат С Совместимость с другими Грид-системами бесплатно На сегодняшний день, интерфейсы GT используются разработчиками Относительно немного интерфейсов для конечных пользователей; Не предназначены для прямого использования кончеными пользователями (учеными, инженерами и т.п.) Г П У 13 Брешь между приложениями и инфраструктурой Динамические и/или распределенные приложения Распределенная вычислительная среда Ю У р Г МехМат С П У Ю У р Г У МехМат Грид-инфраструктура С П 14 Сервис-ориентированные приложения Приложения как службы Объединение служб в потоки заданий Сервис-ориентированная инфраструктура Грид Поддержка физических ресурсов для обеспечения рабочей нагрузки Пользователи Композиция Потоки задач Вызов Служба Служба Поддержка Ю Грид-инфраструктура У р МехМат С 15 Распределенное управление Физическими ресурсами Службами ПО Сообществами и политиками Универсальное средство связи на системе Web-служб; Использует WSRF, WS-Notification для обеспечения состояния WS-ресурсов; Стандартные абстракции и интерфейсы управления. Основано Г П У 3 Globus Toolkit 4 и WSRF Ю У р МехМат Состояния службы С 17 FileTransfer Service move move (A to B) Client Как клиент: узнает, Г удачно ли перемещение? узнает количество переданных файлов? получит извещения об произошедших событиях? отменит запрос? П У Ю FileTransferService без WSRF У р МехМат С 18 FileTransfer Service move move (A to B) : transferID Client whatHappen state tellMeWhen cancel Разработчик изобретает велосипед для каждой новой службы: Собственные механизмы управления и идентификации состояния (transferID). Собственная реализация для синхронных (whatHappen) и асинхронных (tellMeWhen) операций. Собственная реализация управления временем жизни (cancel). Г П У Ю У р Г МехМат Пара слов о WSRF С П 19 Служба Представление состояния Service EPR EPR EPR GetMultRPs Resource Destroy GetRP, QueryRPs, GetMultipleRPs, SetRP Интерфейсы времени жизни Endpoint Reference Интерфейсы состояния Subscribe SetTermTime Идентификация SetRP QueryRPs RPs GetRP Resource Resource Property SetTerminationTime ImmediateDestruction Извещения Subscribe Notify У 20 FileTransferService на основе WSRF FileTransferService createResource Transfer getRP RPs queryRPs createResource (A to B) : EPR Ю У р Г МехМат С П Client destroy Разработчик специфицирует метод createResource. За все остальное отвечает WSRF: Идентификация ресурса посредством ссылки на конечную точку (EPR); Состояние может быть получено посредством стандартных интерфейсов (GetRP, QueryRPs) Стандартное управление временем жизни (Destroy) У Ю OGSA, GT4, WSRF и WS 21 У р Г МехМат С П У 4 Компоненты Globus Toolkit 23 GT как коллекция компонентов Ю службы и клиентов; библиотеки; средства разработки. Компоненты GT используются для построения грид-приложений и служб р можно рассматривать GT как SDK для Грид Компоненты GT можно разбить на категории по двум различным направлениям: по базовой проблемной области; по поддерживаемым протоколам. Г МехМат С Набор слабосвязанных компонентов включающий: У П У Ю С 24 Протоколы Web-служб WSDL, SOAP WS-Addressing, WSRF, WS-Notification WS-Security, SAML, XACML WS-Interoperability Протоколы НЕ Web-служб Стандартизованные Другие протоколы р Г МехМат Протоколы GT У протоколы (GridFTP) П У Globus Toolkit 2 (1997) Компоненты на базе Web-служб 25 Pre-WS Authentication Authorization GridFTP Security Data Mgmt Grid Resource Monitoring Alloc. Mgmt & Discovery (GRAM) (MDS) Execution Mgmt Info Services C Common Libraries Common Runtime Компоненты не-WS Globus Toolkit 3 (2003) Community Data Access Authorization & Integration WS Authentication Authorization Pre-WS Authentication Authorization Reliable File Transfer Grid Resource Alloc. Mgmt (WS GRAM) GridFTP Grid Resource Monitoring Alloc. Mgmt & Discovery (GRAM) MDS3 (MDS) Replica Location Security 26 Data Mgmt Java WS Core C Common Libraries eXtensible IO (XIO) Execution Mgmt Info Services Common Runtime Компоненты на базе Web-служб Компоненты не-WS Globus Toolkit 4 (2005) Core Contrib/ Preview Grid Telecontrol Protocol Python WS Core Community Data Access Workspace Authorization & Integration Management Trigger C WS Core Reliable File Transfer Grid Resource Allocation & Management Index Java WS Core Pre-WS Authentication Authorization GridFTP Pre-WS Pre-WS Grid Resource Monitoring Alloc. & Mgmt & Discovery Credential Mgmt Replica Location Security Data Mgmt Authentication Authorization 27 Community Scheduling Framework WebMDS Delegation Data Replication C Common Libraries eXtensible IO (XIO) Execution Mgmt Info Services Common Runtime Deprecated Компоненты на базе Web-служб Компоненты не-WS Ю У р Г У МехМат Компоненты GT 4 С П 28 Your Ваш C клиент Client (С) Your Ваш Python клиент Client (Python) СЕРВЕР Your Ваш Python клиент Client (Python) Службы Java на Apache Axis плюс библиотеки и обработчики GT C WS Core Хостинг на Python, библиотеки GT Службы на C, использующие библиотеки GT Pre-WS MDS pyGlobus WS Core Pre-WS GRAM Ваша служба (С) RLS Ваша служба (Python) MyProxy X.509 сертификаты = общая аутентификация CAS OGSA-DAI GTCP Delegation Index Trigger Archiver Your Ваша Java служба Service (Java) GRAM RFT Совместимые с WS-I сообщения SOAP Your Ваш C клиент Client (С) Your Ваш Java клиент Client (Java) SimpleCA Your Ваш Java клиент Client (Java) GridFTP КЛИЕНТ 29 GT4 Common Runtime Data Replication 30 Credential Mgmt Replica Location Grid Telecontrol Protocol Delegation Data Access & Integration Community Scheduling Framework WebMDS Python Runtime Community Authorization Reliable File Transfer Workspace Management Trigger C Runtime Authentication Authorization GridFTP Grid Resource Allocation & Management Index Java Runtime Security Data Mgmt Execution Mgmt Info Services Common Runtime Среда исполнения Web-служб GT4 (GT4 Web Services Runtime) Ю 31 WSDL, SOAP WS-Security, WS-Addressing Поддерживает новые стандарты WS WS-Resource р Г МехМат С П Поддерживает как службы GT (Grid Resource Allocation and Management, Delegation и др.) и пользовательские службы Основывается на существующих стандартах WS: WS-Interoperability: У Framework, WS-Notification Хостинг на Java, Python, C Java – стандартный Apache У Ю Кратко о GT4 WS Core 32 Service EPR EPR EPR GetRP GetMultRPs Resource SetRP QueryRPs RPs Subscribe SetTermTime Destroy Реализация WSRF: Resources, EndpointReferences, ResourceProperties Поставщик операций: подготовленная реализация операций WSRF Реализация оповещений: Topics, TopicSet, Embedded Notification Consumer service Реализация ресурсов (ReflectionResource, PersistentReflectionResource) и свойств ресурсов (SimpleResourceProperty, ReflectionResourceProperty) У р Г МехМат С П У Ю Кратко о GT4 WS Core 33 Service Container Service Service Service GetRP GetRP GetRP GetMultRPs EPR GetMultRPs EPR GetMultRPs EPR EPR SetRP EPR EPRResource SetRP EPRResource SetRP Resource QueryRPs QueryRPs RPs QueryRPs Subscribe RPs Subscribe RPs Subscribe SetTermTime SetTermTime ResourceHome SetTermTime ResourceHome Destroy ResourceHome Destroy Destroy Контейнер служб: набор служб хранится в едином контейнере внутри одного процесса JVM Хост основан на контейнере служб Apache AXIS, и позволяет обрабатывать SOAPсообщения У р Г МехМат С П У Ю Кратко о GT4 WS Core У р Г МехМат С П 34 Service Container Service Service Service GetRP GetRP GetRP GetMultRPs EPR GetMultRPs EPR GetMultRPs EPR EPR SetRP EPR EPRResource SetRP EPRResource SetRP Resource QueryRPs QueryRPs RPs QueryRPs Subscribe RPs Subscribe RPs Subscribe SetTermTime SetTermTime ResourceHome SetTermTime ResourceHome Destroy ResourceHome Destroy Destroy PIP PDP Безопасное взаимодействие: Уровень транспорта, сообщений, диалога (Транспортный уровень – лучшая производительность) Настраиваемые политики безопасности: Policy Information Points (PIPs), Policy Decision Points (PDP) Примеры PDP авторизации: GridMap, SAML, XACML У Ю Кратко о GT4 WS Core 35 Service Container PIP Service Service Service GetRP GetRP GetRP GetMultRPs EPR GetMultRPs EPR GetMultRPs EPR EPR SetRP EPR EPRResource SetRP EPRResource SetRP Resource QueryRPs QueryRPs RPs QueryRPs Subscribe RPs Subscribe RPs Subscribe SetTermTime SetTermTime ResourceHome SetTermTime ResourceHome Destroy ResourceHome Destroy Destroy WorkManager DB Conn Pool PDP JNDI Directory WorkManager: “пул потоков”, независимый менеджер задач Apache Database Connection Pool library (Реализация JDBC “DataSource”) JNDI Directory: управление внутренними разделенными объектами(ResourceHom es, WorkManager, Configuration objects,…) У р Г МехМат С П У Ю У С 36 Apache Tomcat PIP Service Service Service GetRP GetRP GetRP GetMultRPs EPR GetMultRPs EPR GetMultRPs EPR EPR SetRP EPR EPRResource SetRP EPRResource SetRP Resource QueryRPs QueryRPs RPs QueryRPs Subscribe RPs Subscribe RPs Subscribe SetTermTime SetTermTime ResourceHome SetTermTime ResourceHome Destroy ResourceHome Destroy Destroy WorkManager DB Conn Pool PDP JNDI Directory Г МехМат Кратко о GT4 WS Core Service Container р Контейнер предоставляющий службы (“отдельный” или внутри Apache Tomcat) П У Ю С 37 WS-Addressing, WSRF, WS-Notification WSDL, SOAP, WS-Security 37 Управление регистром GT4 Container Пользовательские приложения Пользовательские Web-службы р Г МехМат GT4 Web Services Runtime ПользоваGT4 тельские Web-службы Web-службы WSRF WSRF У П У Моделирование состояния в Web-службах Выделение ресурсов Аутентификация и авторизация применяются ко всем запросам Служба фабрики • Инспекция состояния • Управление временем жизни • Оповещения WSресурсы 38 Зарегистрировать WS-ресурс Взаимодействия стандартизованы посредством WSDL и SOAP Запрос службы (например, пользовательское приложение) Поиск Регистр Ю WSRF и WS-Notification У р Г У МехМат С П 39 Именование и связывание (основа виртуализации) Жизненный цикл (основа устойчивого к ошибкам управления) Свойства ресурсов связаны с ресурсами Есть операции запроса и установки свойств Асинхронное оповещение об изменении свойств Группы служб (основа регистров, коллективных служб) Ресурсы создаются службами посредством патерна «Фабрика» Ресурсы удаляются незамедлительно или резервируются Информационная модель (основа мониторинга и поиска) На каждый ресурс может быть получена уникальная ссылка Правила групп и управление группами Базовые типы ошибок Сравнение платформ WSRF/WS-N (HPDC 2005) 40 GT4-Java GT4-C pyGridWare WSRF::Lite WSRF.NET Languages supported Java C Python Perl C#/C++/VBasic, etc. WS-Security password profile Yes No In progress In progress Yes WS-Security X.509 profile Yes In progress Yes In progress Yes WS-SecureConversation Yes No Yes No Yes TLS/SSL Yes Yes Yes Yes Yes Multiple Multiple Callout None Yes Not default Yes Yes Yes Memory Footprint JVM + 10M 22 KB 12 MB 12 MB Depends Memory size per WS-Resource Depends on resource state 70B Depends on resource state 0 (file/DB) or 10B (process) Depends on resource state Unmodified hosting environment Yes No Yes Yes (Apache) Yes Compliance with WS-I Basic Profile Yes Yes Yes In progress Yes Compliance with WS-I Basic Security Profile Yes Yes Yes No Yes Log4J Yes Yes Yes WSE diagnostics WS-ResourceLifetime Yes Yes Yes Yes Yes WS-ResourceProperties Yes Yes Yes Yes Yes WS-ServiceGroup Yes Yes Yes Yes Yes WS-BaseFaults Yes Yes Yes Yes Yes WS-BaseNotification Yes Consumer Yes No Yes WS-BrokeredNotification Partial No No No Yes WS-Topics Partial Partial Partial No Partial Authorization Persistence of WS-Resources Logging Ю Ссылки и литература У р МехМат С 41 Г Я. Фостер, К. Кессельман, Д.М. Ник, С. Тьюке “ФИЗИОЛОГИЯ ГРИД”. Открытая архитектура грид-служб для интеграции распределённых систем. [http://www.gridclub.ru/library/publication.200411-29.8307957187/publ_file/] Borja Sotomayor. The Globus Toolkit 4 Programmer’s Tutorial. November 2005. http://gdp.globus.org/gt4tutorial/download/progtutorial-pdf_0.2.1.tar.gz] П У Ю Презентации 42 У р Г МехМат С П У Спасибо за внимание! Ваши вопросы? Страница курса: http://dom.susu.ru/grid.htm Радченко Глеб Игоревич, каф. СП, ЮУрГУ