Фундаментальная идея grid-вычислений: возможность моментально предоставлять вычислительные ресурсы по запросу для решения задач любой сложности таким образом, что заказчику придется платить только за саму услугу и не заботиться при этом о стоимости инфраструктуры. Такая функциональность очень удобна как для CIO, так и для CFO. В идеале и CIO и CFO устроила бы система, способная обеспечить необходимые ресурсы, которая имеет возможность гибко перераспределять ресурсы при изменении нагрузки и активности различных бизнес-процессов и перестраиваться в зависимости от запросов и характера процессов. Поэтому при создании надежных и сравнительно недорогих коммерческих приложений возникают две глобальных проблемы: техническая и экономическая.
Техническая проблема grid до недавнего времени сводилась к созданию устойчивого и надежного механизма для поддержания эффективного уровня мощности предоставленных вычислительных ресурсов на всем протяжении этого процесса. Экономически были непонятны модели ценообразования на поставку данных услуг, поскольку они будут связаны с использованием неоднородных авторизованных ресурсов в Интернете. Обе эти проблемы сейчас находятся в стадии разработок и тестирования.
Понятно, что виртуальные компьютеры, включенные в grid, должны управляться с помощью специализированного ПО, которое объединяет в одну виртуальную систему сотни компьютеров. Однако это очень нетривиальная задача. Ранние версии grid могли выполнять только простые, сравнительно предсказуемые функции. Сложные приложения, реально необходимые для сегодняшнего бизнеса, оставались за пределом возможностей управления. Grid-приложения плохо справлялись с главной проблемой: они не имели возможности наблюдать за использованием ресурсов и производительностью системы и переключаться на другие доступные ресурсы, если вычислительный ресурс, который был выбран для вычислений первоначально, перестал соответствовать необходимым требованиям. Для решения этой задачи группа исследователей из аризонской национальной лаборатории, университета Беркли и института Макса Планка создали программное обеспечение, которое переконфигурирует виртуальный grid-компьютер "на лету", чтобы поддерживать постоянный уровень мощности обработки задач. Чтобы поддерживать постоянный уровень мощности, когда вычислительное окружение находится в состоянии динамического изменения вычислительных характеристик, grid-системы должны обладать высокой степенью адаптации.
С технической точки зрения исследователи создали программное обеспечение, которое использовало систему оповещений о событиях и обрабатывающих их сервисов, чтобы делать вывод, когда и где вычислительное окружение изменило свои характеристики. И здесь довольно любопытно проследить за эволюцией созданной системы.
Первоначально в качестве основы была использована система Cactus Grid Сomputing Tools, позволявшая запустить параллельную обработку вычислительных задач на нескольких PC и суперкомпьютерах, объединенных в виртуальный grid. Затем были добавлены программные модули для адаптации решения задач на разных системах, для анализа снижения производительности вычислительного ресурса, для нахождения нового подходящего ресурса и для управления процессом миграции вычислительной задачи на новый ресурс. Одна из главных сложностей заключалась в том, чтобы построить механизм эффективного переноса вычислительного процесса на новую систему, после того как старый ресурс перестал справляться с задачей и был активизирован новый ресурс. Для этого в приложение были введены так называемые контрольные точки (checkpoints), которые делают слепок вычислительной задачи в форме, позволяющей переместить задачу на другую систему, даже на такую, которая имеет совершенно другую архитектуру и операционную систему. Чтобы автоматизировать процесс миграции, были введены стандарты взаимоотношений между пользователями и системами, поставляющими вычислительные мощности. Мониторинг поставленных вычислительных мощностей происходит согласно параметрам, определенным пользователем, и эти же параметры определяют, что является нарушением контракта. Если такой "виртуальный контракт" нарушается и система, поставляющая вычислительные мощности в данный момент, не соответствует контракту, ПО находит другой доступный ресурс и переконфигурирует виртуальный компьютер. Например, при испытаниях grid-ПО было настроено так, чтобы начинать поиск новых мощностей, после того как производительность вычислительной задачи три раза упадет на более чем 10%.
В дальнейшем ПО будет включать модули, позволяющие добавить функции асинхронного оповещения о доступных ресурсах. Это означает, что приложение сможет начать процесс вычислений на малых мощностях и постепенно увеличивать их скорость, по мере того как новые мощности становятся доступными. Кроме того, планируется заняться вопросами оптимизации миграции вычислительной задачи на новый ресурс. Ведь понятно, что миграция будет оправданной только тогда, когда ее стоимость не превышает стоимости продолжения вычисления на низком менее эффективном уровне. (Более подробную информацию смотрите в "The Cactus Worm: Experiments with Dynamic Resource Discovery and Allocation in a Grid Environment" www.globus.org/research/papers/ijsa-cactus.pdf.)
С другой стороны, для успешного коммерческого приложения подобных систем не хватает экономической составляющей. На сегодня в grid-ПО не существует модели, согласно которой пользователи и поставщики услуги смогли бы договариваться о ценах и уровне услуг, чтобы можно было, например, поддерживать одну цену для быстрой поставки услуги в течение пиковых часов и другую - для менее срочных запросов. Над решением данной проблемы сейчас работают несколько команд исследователей. Предполагается, что в grid пользователи будут привлекать брокеров, арендующих вычислительные ресурсы у grid-провайдеров GSP (Grid Service Provider). При этом можно будет использовать такие стандартные экономические подходы, как товарная биржа, предварительные цены, тендеры и аукционы, чтобы окончательно определить условия соглашения между брокером и провайдером (см. www.buyya.com/papers/economicmodels.pdf).
Понятно, что сегодня grid развивается в основном в университетской и исследовательской среде. Дело не только в том, что главные пионеры grid - ученые. Им не привыкать к задачам сложной вычислительной обработке огромных массивов данных. Именно ученые обнаружили, что grid-структуры способствуют более эффективному решению научных задач, в частности в проекте BLAST (Basic Local Alignment Search Tool), предусматривающем поиск сходства в последовательностях генов и белковых молекул в открытых базах данных. Нельзя забывать, что, как мы уже видели выше, большинство стоящих перед разработчиками задач носят фундаментальный и межвендорский характер.
Однако, несомненно, интерес к grid возрос, когда к движению присоединились HP, IBM, Oracle и Sun. С точки зрения управляющего ПО IBM и Oracle - сторонники grid-сервисов, что подтверждается их участием в инициативе OGSA (Open Grid Service Architecture). OGSA - это совокупность спецификаций, которые призваны связать Web- и grid-сервисы. Последние, как и Web-сервисы, основаны на XML-технологиях - XML-схемах и WSDL. Так, например, исследователи grid используют язык BinX (Binary XML Description Language) для описания структуры файлов произвольных двоичных данных. Еще одна проблема, которую пытаются решить специалисты, - распределенные данные и доступ к grid-данным. Проект OGSA предусматривал создание промежуточного ПО для интеграции данных многих источников в grid-сети. Участники проекта OGSA совместно с рабочей группой DAIS-WG создали требования и спецификацию сервисов grid-базы данных.
На сегодня ученым предстоит решить еще много задач, связанных с grid. Крайне сложно прогнозировать, когда же эта технология получит широкое распространение и одобрение у большого круга пользователей. Тем не менее большинство экспертов считают, что пройдет не менее двух-трех лет, пока наконец появятся полноценные grid-приложения.
Впрочем, IBM, например, уже предлагает ряд grid-решений, ориентированных на вертикальные рынки (одна из образцовых grid-структур IBM - Smallpox Research Project Grid, основанная на DB2 UDB, Linux и AIX, предусматривает, по заявлению IBM, выполнение более 15 млн. запросов в день). Другой пример реализации grid-инфраструктуры - проект по организации онлайновых игр, выполненный Electronic Arts. Sims использует кластеры Oracle9i Real Application Clusters для одновременной поддержки 35 000 пользователей и выполнения 30 000 SQL-транзакций в секунду. Однако все это скорее полуэкспериментальные проекты. И до настоящего полноценного использования идей grid еще далеко.