Выше упоминалось,
что в работе грид-сети и грид-приложений принимают участие четыре компоненты. Для построения
вычислительной грид на один из узлов сети нужно установить Менеджер, а на
остальные – Исполнители, сконфигурировав их на работу с Менеджером. Пользователи
могут выполнять свои приложения в грид, подключаясь к Менеджеру. Дополнительная
компонента, Межплатформенный Менеджер, обеспечивает интеграцию с другим
программным обеспечением промежуточного уровня. В этом разделе подробно
рассматриваются все четыре компоненты: Менеджер, Исполнитель, Пользователь и
Межплатформенный Менеджер.
Менеджер
Любое приложение (грид-приложение), разработанное для
инструментария Alchemi,
представляет собой совокупность грид-потоков, которые концептуально
очень похожи на “обычные” потоки.
Менеджер управляет
выполнением грид-приложений и грид-потоков, из которых состоят грид-приложения.
Исполнители регистрируются у Менеджера, который осуществляет непрерывный
мониторинг их работы. Грид-потоки, полученные от Пользователя, помещаются в пул,
и составляется график их выполнения на доступных Исполнителях. Для каждого
потока задается приоритет. Это можно сделать явно при создании потока или его
отправке, а можно оставить значение по-умолчанию. Планирование осуществляется на
основе приоритетов и принципа “первым пришел – первым обслужен” (First
Come First Served – FCFS). Исполнители
возвращают Менеджеру завершенные грид-потоки, которые впоследствии собираются
воедино соответствующими Пользователями. Следует заметить, что в состав
инструментария входит Scheduling API, позволяющее создавать
свои планировщики.
Для аутентификации и
авторизации используется модель безопасности на основе ролей. Список разрешений,
а также список групп (которые представляют собой набор разрешений) хранятся
вместе с Менеджером. Для выполнения любого действия, требующего авторизации,
Пользователь или программа должны предъявить имя пользователя и пароль, после
чего Менеджер разрешает выполнение этого действия, только если данная учетная
запись принадлежит группе, которая содержит нужное
разрешение.

Как
обсуждалось ранее, стабильность работы грид-системы играет ключевую роль в ее
эффективности. Менеджер осуществляет непрерывный мониторинг работы Исполнителей.
Грид-потоки, которые были запущены на отключившихся Исполнителях,
перепланируются и запускаются вновь на доступных ресурсах (предполагается, что
грид-потоки допускают возможность рестарта). В дополнение к этому все данные
постоянно сохраняются на диск, так что в случае краха системы, Менеджер после
повторного запуска не теряет своего состояния.
Исполнитель
Исполнитель получает грид-потоки от Менеджера и выполняет их. Исполнитель
может работать в двух режимах. В выделенном режиме он представляет собой
ресурс, полностью управляемый Менеджером. В невыделенном режиме Исполнитель
выполняет грид-потоки во время простоя компьютера (когда запускается
программа-заставка) или когда пользователь явно разрешает выполнение
грид-потоков. В невыделенном режиме имеет место одностороннее взаимодействие
между Исполнителем и Менеджером, так как в этом случае Исполнитель сам посылает
запрос на получение грид-потока для выполнения. Когда возможна двухсторонняя
связь и используется выделенный режим, Менеджер взаимодействует с Исполнителем
напрямую. В этом случае Менеджер явно указывает Исполнителю, какие потоки он
должен выполнять. Таким образом, модель выполнения приложений, используемая в
инструментарии Alchemi, позволяет получить двойную выгоду от:
-
гибкого управления ресурсами, сочетая централизованное
управление с принудительным исполнением и децентрализованное управление с
программируемым планированием исполнения грид-потоков,
-
гибкого развертывания системы при ограничениях сети,
таких как proxy- и NAT-серверы, когда невозможна двусторонняя связь между
Исполнителем и Менеджером.
Таким образом, можно
сказать, что выделенный режим лучше подходит для локальных сетей, а невыделенный
для сети Интернет.
Грид-потоки
выполняются с набором разрешений AlchemiGridThread, которые
настраиваются в рамках локальной политики безопасности .NET. Устанавливаемый
набор разрешений определяет для грид-потоков (программный код которых является
потенциально небезопасным) среду выполнения, ограниченную по ресурсам и
безопасную для операционной системы.
Все потоки выполняются с наименьшим приоритетом, поэтому работа
пользовательских приложений, имеющих более высокий приоритет, практически не
затрагивается.
Пользователь
Грид-потоки
выполняются на узлах Пользователей. Alchemi API
скрывает реализацию грид от Пользователя и отвечает за выполнение
необходимых служебных действий. К их числу относится отправление приложения и
составляющих его грид-потоков на выполнение, оповещение Пользователя о
завершившихся грид-потоках и получение результатов их работы, а также оповещение
о неудачных грид-потоках и
предоставление деталей ошибки.
Межплатформенный
Менеджер
Межплатформенный
Менеджер – это веб-сервис, который обладает частью функциональных возможностей
Менеджера и позволяет Alchemi
управлять выполнением грид-заданий (в противоположность грид-приложениям,
использующим модель грид-потоков). Задания, отсылаемые Межплатформенному
Менеджеру, преобразуются им в представление грид-потоков, с которым работает
Менеджер. Затем грид-потоки планируются и выполняются обычным способом.
Дополнительно Межплатформенный Менеджер обеспечивает совместимость с уже
созданными грид-приложениями, позволяя использовать ресурсы Alchemi-грид на любой платформе,
поддерживающей веб-сервисы.