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

Эта инфраструктура, получившая название Grid, поддерживает создание интегрированных вычислительных сред, в которых многочисленные организации могут совместно использовать данные, программы и вычислительные ресурсы для развертывания децентрализованных служб в целях науки и бизнеса. Grid можно рассматривать как расширение Web, которое по своим функциям выходит за рамки совместного использования информации, давая возможность совместно использовать любые компьютерные ресурсы. Как Паутина превратилась из инфраструктуры, ориентированной на совместные научные исследования, в основное средство коммуникаций для электронного бизнеса, так и Grid может найти свое основное применение в коммерческих распределенных приложениях (B2B, электронная коммерция, корпоративные вычисления и т.д.).

Globus Project и IBM инициировали проект, цель которого — связать технологии Grid с технологиями Web-служб с помощью открытой архитектуры Open Grid Services Architecture (OGSA). Эта архитектура позволяет интегрировать службы и ресурсы распределенных, гетерогенных, динамических сред и сообществ. Чтобы добиться такой интеграции, в модели OGSA используется язык описания Web-служб WSDL и определяется концепция Grid-служб.

Концепция Grid

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

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

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

За последние пять лет создано несколько вариантов инструментария и исполнительных сред для реализации Grid-приложений, в том числе, Legion (legion.virginia.edu), Condor (www.cs.wisc.edu/condor) и Unicore (www.unicore.org). Одно из самых популярных программных решений, которое становится стандартом де-факто на реализацию систем Grid, — это Globus Toolkit (www.globus.org/toolkit). Данный инструментарий охватывает вопросы защиты, обнаружения информации, управления данными и ресурсами, коммуникации, обнаружения ошибок и переносимости. Соответствующие механизмы оформлены как службы, которые выполняют различные операции в Grid-приложениях. Сейчас Globus и подобные ему инструментальные средства применяются во многих проектах по всему миру. Пока большинство из них относится к научным и техническим вычислениям, однако число проектов Grid в образовании, промышленности и бизнесе быстро растет.

Такое расширение сферы применения происходит параллельно с появлением служб на базе открытых стандартов, которые начинают использовать распределенные организации. Исследовательская группа Globus поддерживает эти усилия, внося свой вклад в определение и развитие архитектуры OGSA, а также адаптируя собственный инструментарий в соответствии с моделью OGSA. На четвертом международном форуме Global Grid Forum в феврале 2002 года Globus и корпорация IBM предложили первую спецификацию OGSA.

К открытой платформе

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

Web-службы описывают программные компоненты, к которым можно получить доступ, методы для доступа к этим компонентам и методы, которые дают пользователям и приложениям возможность выбирать подходящих провайдеров служб [1]. Web-службы не зависят от языков программирования и системного программного обеспечения. Консорциум W3C и другие организации устанавливают стандарты Web-служб, опробованные в рамках крупных отраслевых инициатив, таких как Sun ONE, Microsoft .Net и IBM Dynamic e-Business. Модель OGSA включает в себя три стандарта Web-служб: SOAP (www.w3.org/TR/SOAP); WSDL (www.w3.org/TR/wsdl); WS-Inspection (www-106.ibm.com/developerworks/webservices/library/ws-wsilspec.html).

Цель Web-служб и OGSA заключается в том, чтобы обеспечить интероперабельность между слабо связанными службами, вне зависимости от их реализации, местонахождения и платформы. OGSA определяет стандартные механизмы для создания, именования и обнаружения постоянных и временных экземпляров Web-служб; обеспечивает прозрачность местонахождения и связывания по различным протоколам для экземпляров служб; поддерживает интеграцию с базовыми службами исходной платформы. С этой целью OGSA определяет набор расширений WSDL с помощью элементов расширения, допускаемых WSDL, и конвенции на использование Web-служб для Grid-вычислений. OGSA призвана предложить общую модель ресурсов, которая представляет собой абстрактное представление как физических ресурсов (таких как процессоры, процессы, диски и файловые системы), так и логических. Она предоставляет некоторые общие операции и поддерживает базовые модели, представляющие ресурсы как экземпляры служб [2].

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

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

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

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

В отличие от традиционных Web-служб, которые позволяют обнаруживать и инициировать только постоянные (persistent) службы, OGSA также предусматривает поддержку временных (transient) экземпляров служб, инициируемых и завершаемых динамически. Таким образом, Grid-служба — это потенциально временная служба на базе протоколов Grid, описанная посредством WSDL. Временный экземпляр службы может быть обращением к хранилищу данных, резервированием сетевых ресурсов, предварительным запросом процессорных ресурсов или сеансом дискуссионного форума.

Службы OGSA

Служба Grid реализует один или несколько интерфейсов, которые соответствуют типам portType в WSDL. Каждый интерфейс Grid-службы определяет набор операций, которые инициируются путем передачи соответствующей последовательности сообщений. Набор портов portType, которые поддерживает Grid-служба, вместе с дополнительной информацией о версиях, указываются в типе serviceType для этой службы. Тип serviceType — элемент расширения, определенный OGSA для поддержки наборов portType. Соответствующий элемент serviceImplementation представляет подходящую реализацию семантики serviceType. Семантика Grid-службы может определяться именами, присвоенными элементам portType, serviceType и serviceImplementation. Фактически, определение Grid-службы включает несколько типов portType с уникальными именами, объединенных в группу с именем serviceType и следующее за реализацией имя serviceImplementation.

Сейчас разработчики предлагают несколько интерфейсов OGSA и типов portType, описанных средствами WSDL.

Семантика экземпляра службы

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

Grid-служба должна реализовывать тип GridService, служащий основным определением интерфейсов в OGSA. Он аналогичен базовому классу Object в объектно-ориентированных языках в том, что он инкапсулирует базовое поведение компонентной модели. Операция FindServiceData в GridService, которая инициирует запросы и извлекает данные службы, требует простого языка запросов «по имени». Эту операцию можно расширить с тем, чтобы она поддерживала внешний язык запросов, например, XQuery.

В качестве базовых средств коммуникации GridService предусматривает передачу сообщений, ориентированных на документы, а также механизм RPC (remote procedure call — «удаленный вызов процедур»). При передаче сообщений входными и выходными объектами являются XML-документы, в то время как RPC использует более строго определенные API, но зато обеспечивает более высокую производительность.

Дескрипторы Grid-служб

Службы OGSA могут создаваться динамически с помощью операции CreateService Factory или вручную, и уничтожаться, когда истекает время ожидания клиента или явно с помощью операции Destroy. Операция CreateService возвращает дескриптор Grid-службы GSH, который представляет собой глобально уникальный указатель URL, определяющий имя экземпляра службы и отличающий его от других экземпляров. GSH не несет в себе информации, достаточной для того, чтобы клиент мог напрямую взаимодействовать с экземпляром службы. Поэтому GSH необходимо отобразить на ссылку на Grid-службу GSR, которая содержит информацию, необходимую клиенту для связи со службой. GSH сохраняет корректность в течение всего срока существования экземпляра Grid-службы, однако GSR может стать некорректной. Если такое происходит, клиент должен отобразить GSH службы на новую ссылку. Формат GSR зависит от механизма привязки, используемого клиентом для взаимодействия с экземпляром Grid-службы. Например, если клиент использует привязку SOAP, то GSR предполагает, что применяется формат аннотированного документа WSDL.

Реестр Registry — это Grid-служба, которая позволяет обнаруживать службы посредством поддержки наборов GSH и связанных с ними правил работы. Клиенты могут обращаться к реестру для определения готовности служб, их свойств и правил работы. Службу регистрации определяют два элемента: интерфейс Registration, который позволяет экземпляру службы зарегистрировать GSH с этой службой, и связанный элемент данных службы, который содержит информацию о зарегистрированных дескрипторах GSH. Реестр реализует Registration, тип portType, который позволяет клиентам регистрировать (RegisterService) и отменять регистрацию (UnRegisterService) содержимого реестров. Клиенты могут использовать операцию FindServiceData для получения информации о зарегистрированных дескрипторах GSH.

Модель уведомлений

Компонент уведомлений OGSA доставляет важные сообщения от источника адресату. Источник уведомлений — это экземпляр Grid-службы, который реализует NotificationSource portType и посылает сообщение с уведомлением. Адресат — экземпляр Grid-службы, который реализует NotificationSink portType и получает сообщение с уведомлением. Чтобы инициировать уведомление от конкретной Grid-службы, пользователь вызывает операцию subscribe в соответствии с интерфейсом источника уведомления, передавая ему дескриптор GSH службы-получателя уведомления. Поток сообщений с уведомлениями затем направляется от источника к получателю, а получатель периодически посылает сообщения с подтверждением активности, чтобы уведомить источник о том, что он все еще заинтересован в получении уведомлений. Чтобы гарантировать надежную доставку, пользователь может реализовать такое поведение, определив соответствующую привязку протокола для данной службы.

Важный аспект модели уведомлений OGSA — тесная интеграция с данными службы. Операция subscribe — это просто запрос на последующую доставку данных службы, которые соответствуют определенным критериям. Фактически, с каждым экземпляром службы связаны набор данных службы, который представляет собой набор элементов XML, оформленных как элементы serviceData. Структура каждого элемента включает в себя имя, уникальное для экземпляра Grid-службы, тип и информацию о времени существования, которую получатель может использовать для управления времени существования службы. Например, объявление serviceData в portType следующим образом определяет интерфейс центрального процессора.

...

...
...

0.00

...

В нее входят два элемента serviceData: CPUspeed и CPU-load. Определение элемента CPULoad serviceData содержит первоначальное значение элемента данных службы.

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

Реализация OGSA

Научное и отраслевое сообщество под руководством Global Grid Forum вносит свой вклад в разработку и расширение OGSA. Поскольку спецификация OGSA отделена от программной реализации, могут появляться производные как существующих систем Grid, таких как Globus, Legion и Unicore, так и новых сред. Этому в значительной мере способствует открытость OGSA. Группа Globus сейчас работает над третьей версией инструментария Globus Toolkit (GT3), которая представляет собой основанную на OGSA свободно распространяемую реализацию интерфейсов и поведения, определенных спецификацией Grid-служб. Архитектура GT3 включает в себя:

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

Группа Globus представила раннюю реализацию ядра GT3, а также планирует выпустить полную открытую версию GT3 на базе Java к началу 2003 года. Unicore недавно реализовала демонстратор Grid-служб, созданный на основе ее среды Grid. Платформа Grid Interoperability Project (www.grid-interoperability.org) будет использовать интероперабельность между этим демонстратором и ранней версией GT3. Другие среды Grid, скорее всего, будут развиваться в соответствии со спецификациями OGSA, увеличивая спектр решений, которые пользователи могут применять в своих приложениях.

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

Перспективы

OGSA — естественное развитие Web-служб. За счет интеграции механизма временных экземпляров служб с существующими технологиями Web-служб, OGSA значительно обогащает возможности Web-служб, в то же время, требуя минимальной модернизации существующих технологий. IBM, Sun Microsystems, Microsoft, Avaki и другие компании сообщили о своей поддержке OGSA. В перспективе подход OGSA сможет полностью интегрировать технологии Grid и Web. Комбинирование двух парадигм распределенных вычислений позволит усовершенствовать как утвердившиеся, так и новые приложения за счет того, что они смогут поддерживать открытую модель Grid-служб.

Литература
  1. F. Curbera et al., "Unraveling the Web Services Web: An Introduction to SOAP, WSDL, and UDDI", IEEE Internet Computing, vol. 6, no. 2, 2002 Mar./Apr.
  2. I. Foster et al., "Grid Services for Distributed System Integration", IEEE Computer, vol. 35, no. 6, 2002 June

Доменико Талиа (talia@deis.unical.it) — профессор вычислительной математики университета Калабрии (Италия). К сфере его научных интересов относятся системы распределенных вычислений, параллельная добыча данных и обнаружение знаний, а также языки параллельного программирования.

Domenico Talia. The Open Grid Services Architecture: Where the Grid Meets the Web. IEEE Internet Computing, November/December 2002. IEEE Computer Society, 2002, All rights reserved. Reprinted with permission.


Ресурсы OGSA

Global Grid Forum www.gridforum.org

Globus Project www.globus.org

Grid Computing: Making the Global Infrastructure a Reality www.grid2002.org

Семинар Grid Web Services 2002 Workshop https://gridport.npaci.edu/pubs/ workshops/gce/webservMay02

Новости, статьи, спецификации OGSA www.globus.org/ogsa

Рабочая группа Open Grid Service Infrastructure Working Group www.gridforum.org/ogsi-wg


Типы portType в Grid-службах

Операции Grid-службы определяются связанным с нею интерфейсом, который соответствует portType в языке описания Web-служб WSDL. Каждый portType связан с одной или несколькими операциями, которые клиент может инициировать путем обмена определенной последовательностью сообщений с экземпляром службы. В настоящее время предложены следующие связки интерфейсов OGSA и WSDL portType.

  • GridService с тремя операциями. FindServiceData обращается к источникам информации за сведениями об экземпляре Grid-службы в поисках основной описательной информации (дескриптор, ссылка, основной ключ), а также более детальных данных об интерфейсе и службе. Эта операция обеспечивает расширенную поддержку различных языков запросов. SetTerminationTime устанавливает (и получает) время завершения для экземпляра службы. Destroy завершает работу экземпляра Grid-службы.
  • Factory с операцией CreateService, которая создает новый экземпляр службы Grid.
  • HandleResolver с операцией FindByHandle, которая возвращает ссылку на Grid-службу (GSR), связанную с предоставляемым дескриптором Grid-службы (GSH).
  • Registration с двумя операциями. RegisterService регистрирует GSH; UnregisterService отменяет регистрацию GSH.
  • NotificationSource с операцией SubscribeToNotificationTopic, которая подписывается на уведомления о событиях, связанных со службой, в зависимости от типа сообщения и интересующих утверждений. Эта операция позволяет выполнять доставку уведомлений через независимые службы обмена сообщениями.
  • NotificationSink с операцией DeliverNotification, которая выполняет асинхронную доставку сообщений с уведомлениями.

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


OGSA и Web-службы

  • Grid-служба - возможно временная Web-служба со специфицированными интерфейсами и поведением.
  • Интерфейс Grid-службы - WSDL portType.
  • Определение Grid-службы - расширение WSDL (serviceType), содержащее набор portType и утверждения о совместимости serviceType для поддержки информации о модернизации и реализации интерфейса.
  • Дескриптор Grid-службы (Grid Service Handle, GSH) - глобально уникальный указатель URL.
  • Ссылка на Grid-службу (Grid Service Reference, GSR) - документ WSDL с расширениями.
  • Globus Toolkit 3.0 - первая прототипная реализация спецификаций OGSA.