Тенденции в области распределенных систем
В одной из своих статей в 2001 году Дж. Бэкус отметил, что компьютерная революция испытала три волны. Первая волна началась с коммерциализацией кремниевых чипов и продолжалась 10-15 лет. Вторая волна связана с развитием технологий программного обеспечения и началась приблизительно в середине 80-х годов XX века. Третья волна началась в конце 90-х годов XX века и связана с развитием сетей и использованием их для коммуникаций компьютеров.
Третья волна послужила источником последующего бума информационных технологий. Рост технологических возможностей привел к тому, что компьютерные устройства стали значительно меньше по размерам и быстрее.
В последние годы появилось несколько новых направлений компьютерных исследований. В самостоятельную дисциплину оформляется сетевой компьютинг, разработка распределенных систем.
В основе технологий распределенных систем лежат удаленный доступ, высокая степень доступности ресурсов, устойчивость к сбоям и отказам, удаленное взаимодействие пользователей.
В настоящее время развитие распределенных и параллельных систем стимулируется такими задачами как информационный поиск и создание механизмов индексирования для поисковых машин, обеспечение мобильного мультимедиа, построение мультиагентных интеллектуальных систем, хранение терабайтных и пентабайтных массивов данных, обработка естественных языков, исследования в биоинформатике. Традиционные задачи моделирования в науке и технике, как и раньше, требуют все больших мощностей.
Эти задачи выдвигают требования к компьютерным системам, которые не могут быть удовлетворены в рамках просто "высокопроизводительных вычислений", например, с помощью параллельных суперкомпьютеров.
Вот только некоторые из требований и ограничений:
- Пространственная распределенность компонент приложения и ресурсов системы, их динамическая природа (компоненты приложения и ресурсы могут динамически создаваться, перемещаться, становиться недоступными, уничтожаться).
- Увеличивающаяся важность соединения в одно логическое целое (при сохранении физической разделенности) структурированных и неструктурированных ресурсов распределенных данных.
- Мультидисциплинарные приложения требуют обеспечения взаимодействия отдельных моделей в рамках объединенной модели, требуют совместной работы исследователей, находящихся в разных научных центрах.
- Высокая степень взаимодействия пользователей требует значительной гибкости при проектировании, реализации, сопровождении и модификации компонент программного обеспечения – в поддержке жизненного цикла систем.
- Преобладание "нерегулярных" вычислений, не укладывающихся в циклы простой структуры с элементами массивов простого строения (что было бы так удобно для реализации на параллельном суперкомпьютере).
- Применение методов, первоначально появившихся в исследованиях по искусственному интеллекту, для решения задач управления программными приложениями на различных этапах их жизненного цикла.
Одним из новых направлений в распределенных системах, в рамках которых есть надежда продвинуться вперед в удовлетворении перечисленных требований, является Grid computing – обработка информации в суперсетях (Грид).
В основе Грида лежат (в дополнение к распределенному компьютингу) федеративное объединение сообществ пользователей (без жесткой централизации), виртуализация ресурсов, стандартизация, маскирование неоднородности условий работы.
Под сообществом или виртуальной организацией понимается множество распределенных в сети ресурсов, управляемых по одним и тем же правилам; можно понимать также некоторую область администрирования. Виртуализация означает, что ресурсы в сообществе представлены так, что скрыто их местонахождение и принадлежность (правило не без исключений).
Стандартизация означает, что федерация построена на открытых стандартах, протоколах и интерфейсах. Маскирование неоднородностей означает, что программное обеспечение промежуточного уровня в Грид должно обеспечить "стирание различий" между программными обеспечениями промежуточного уровня виртуальных организаций.
Можно написать условную "формулу":
Грид компьютинг = распределенный компьютинг + {федеративное объединение сообществ, виртуализация, стандартизация, маскирование неоднородностей}
Грид отличается от Интернета (точнее, его службы WWW) прежде всего тем, что поддерживает не только работу с распределенной информацией, но и использование распределенных вычислительных мощностей для выполнения приложений пользователей.
Грид характеризуется огромным (а часто, неопределенным) количеством взаимодействующих однородных и неоднородных компьютеров. Неоднородных – не только с аппаратной точки зрения, но и работающих с разными программными платформами, разными языковыми средствами.
Конечно, гораздо меньше проблем было бы, если бы все процессоры были одинаковы, а приложения функционировали на одной программной платформе. Но это линия развития суперкомпьютеров, супердорогих и относительно малочисленных в мире. Она существует и пока никуда не исчезает. Суперкомпьютеры – это "мамонты", но, возможно, они не вымрут. Суперкомпьютеры используются там, где они нужны относительно малому числу пользователей для решения сложных задач. На сегодня – это оборонные задачи (системы ПВО), задачи прогноза погоды и др.
Суперкомпьютеры мало доступны массовому пользователю, кроме тех случаев, когда суперкомпьютер (обычно, принадлежащий крупному научному центру) включается в Грид.
Надо заметить, что многие современные вычислительные комплексы, подпадающие под понятие "суперкомпьютер", строятся по кластерной схеме, т.е. их архитектуры движутся в сторону распределенных систем.
Грид привлекателен тем, что его почти не надо создавать – он вырастает сам. Это объективная реальность, как говорят философы. Только его рост нужно направлять, культивируя положительные изменения и своевременно предупреждая проблемы. Но для этого нужен план.
Грид требует переосмысления применяемых вычислительных моделей, средств их поддержки. Здесь недостаточно традиционных постулатов "открытых систем" – обеспечения интероперабельности систем управления различными ресурсами, масштабируемости и проч. Эти постулаты не теряют своего значения. Но требуется создание новых абстракций, языков программирования, средств поддержки для того, чтобы Грид был более эффективным.
Для динамического и адаптивного распределения ресурсов и управления ресурсами требуется развитие новых моделей и методов. Причем эти методы должны учитывать, что, одновременно, и сами приложения, пользующиеся этими ресурсами, изменяются в процессе работы.
Что касается конечного пользователя, то ему требуется определенная унификация в доступе к различным ресурсам Грид, несмотря на их разнородность и принадлежность многообразным собственникам.
Распределенные системы и Грид используют несколько уровней децентрализации данных и управления для того, чтобы адаптироваться к требованиям приложения. Децентрализация касается пространственного (географического) распределения, доступности данных, надежности хранения и использования, а также способов вычисления и коммуникации.
Приведенные выше требования предполагают высокую степень "прозрачности", при которой нижние уровни реализации скрыты, а на уровне приложения используются только значимые для этого уровня концепции.
Архитектура Грид
Следуя традиционному построению распределенных систем, можно описать архитектуру Грид, состоящую из четырех слоев:
- Пользовательские интерфейсы, приложения и среда решения задач (problem-solving envieronment).
- Средства разработки, программные модели, языки программирования.
- Промежуточное программное обеспечение (middleware) Грид: управление ресурсами; фиксация информации и ее обнаружение; программное обеспечение безопасности; доступ к памяти; различные службы (вычислительные и коммуникационные).
- Неоднородные ресурсы и инфраструктура сетей.
В настоящее время не существует единой модели вычислений в Гриде. Однако можно выделить несколько типичных задач, которые должны решать пользователи. Это – запуск и выполнение заданий, управление данными, формирование потоков работ (workflow), работа в режиме on-line при совместных проектах и др.
Опишем несколько типов приложений в Грид и пользовательских профилей.
- Грид как большой компьютер. Здесь имеется в виду доступ одного пользователя к большой суперкомпьютерной мощности для решения его задачи.
- Грид как коллекция научных данных. Требуется обеспечение доступа к большим объемам научных данных (результатов экспериментов, астрономических наблюдений и т.д.), рассредоточенных по различным научным центрам, оптимизация при передаче этих данных и их обработке
- Единое информационное пространство и виртуальные организации. Обеспечение одновременной работы большого количества пользователей в некоторой предметной области и/или организации с доступом к общим данным, с разделением ресурсов и взаимодействием пользователей через Грид.
- Семантический Грид – Грид как всемирное хранилище знаний. Географически распределенная база знаний, поддерживающая интеллектуальный информационный поиск, извлечение знаний из "сырых" данных (data mining), принятие решений.
Эти приложения требуют большей, чем имеется сегодня, стандартизации и унификации интерфейсов для достижения интеграции отдельных служб и обеспечения координации в работе.
Они требуют развития и поддержки концепции виртуальных ресурсов, ресурсов – данных и ресурсов – вычислительных мощностей.
Если проанализировать литературу по распределенному имитационному моделированию, распределенным интеллектуальным мультиагентным системам, коллективному выполнению мультимедийных работ и запросов в мобильном режиме, визуализации больших массивов данных, то мы увидим значительное сходство в тематике исследований.
Прежде всего, это эффективный поиск в больших массивах данных (как текстовых, так и мультимедийных), требующий распараллеливания и процессов вычислений и процессов ввода/вывода.