- •1. Введение в распределенные вычислительные системы
- •1.1 Определение распределенной вычислительной системы
- •1.2 Промежуточное программное обеспечение
- •1.3 Терминология рвс
- •1.4 Классификация рвс
- •1.5 Связь в рвс
- •2. История развития распределенных вычислений
- •2.1 Первое поколение систем распределенных вычислений
- •2.1.1 Проект fafner
- •2.1.2 Проект I-way
- •2.2 Второе поколение систем распределенных вычислений
- •2.2.2 Проект Legion
- •2.2.3 Распределенные объектные системы
- •2.3 Современные рвс
- •2.3.1 Одноранговые (peer-to-peer) сети
- •2.3.2 Сервис-ориентированная архитектура
- •2.3.3 Агенты
- •2.3.4 Облачные вычисления
- •2.4 Заключение
- •Архитектура клиент-сервер
- •4.1 Разделение приложений по уровням
- •4.1.1 Уровень представления
- •4.1.2 Уровень бизнес-логики
- •4.1.3 Уровень данных
- •4.2 Типы клиент-серверной архитектуры
- •4.2.1 Методы горизонтального распределения
- •3.1 Классическая двухуровневая архитектура «Клиент – сервер»
- •3.3 Различные модели технологии «Клиент – сервер»
- •5. Объектные распределенные системы
- •5.1 Вызов удаленных процедур.
- •5.1.1 Базовые операции rpc
- •5.2 Организация связи с использованием удаленных объектов
- •5.3 Corba
- •5.3.1 Основные понятия corba
- •5.3.2 Технология corba
- •5.3.3 Разработка на основе corba
- •3.2 Трехуровневая модель
- •3.6 Технология "Клиент-сервер" применительно к Internet
- •3.7 Технология «Клиент-сервер» применительно к Intranet
- •6. Агентные технологии
- •6.1 Понятие программного агента
- •6.2 Мультиагентные системы
- •6.2.1 Агентные платформы
- •6.3 Безопасность в системах мобильных агентов
- •10. Технологии одноранговых сетей
- •10.1 Основы технологии одноранговых сетей
- •10.1.1 Сравнение p2p и клиент-серверной технологий
- •10.1.2 Задачи p2p сетей
- •10.1.3 Основные элементы p2p сетей
- •10.2 Алгоритмы работы p2p сетей
- •10.2.1 Структура p2p сети
- •10.2.2 Алгоритмы работы p2p сетей
- •10.3 Применение технологий p2p
- •10.3.1 Распределенные вычисления
- •10.3.2 Файлообменные сети
- •10.3.3 Приложения для совместной работы
- •10.4 Достоинства и недостатки p2p
2.1.2 Проект I-way
I-WAY – Information Wide Area Year (Год Информации Глобальных Сетей) – экспериментальная высокопроизводительная сеть, которая объединила мно- жество высокопроизводительных компьютеров и передовые средства визуали- зации в США.
Она была спроектирована в начале 1995, с целью объединения высокоскоростных сетей, существующих на тот момент. Данные и компьютер- ные ресурсы были распределены по 17-и локациям в США и объединены 10-ю сетями, с различной пропускной способностью, различными протоколами со- единения и с использованием различных сетевых технологий для их построе- ния [23].
В рамках проекта, была построена аппаратная инфраструктура, посред- ством которой осуществлялся доступ к ресурсам сети I-WAY. Она состояла из базовых рабочих станций под управлением операционной системы UNIX, на которые было установлено специальное ППО (сервер I-POP).
Система I-POP брала на себя функции шлюза к ресурсам сети I-WAY. Каждый такой сервер поддерживал стандартные процедуры аутентификации, резервирования ресур- сов создания процессов и коммуникации. Также, в рамках данного проекта был разработан планировщик ресурсов, известный как «Брокер Вычислительных Ресурсов» (CRB – Computing Resources Broker). Он обеспечивал выполнения функций управления очередями задач, распределения заданий между компьютерами и слежения за ходом реше- ния. Для поддержки пользовательских приложений была адаптирована библио- тека передачи данных Nexus.
В нее были включены механизмы, поддерживаю- щие автоматическое конфигурирование работы пользовательского приложения, в зависимости от методов передачи данных, базовой операционной системы и т. п.
Проект I-WAY использовался для решения следующих задач [23]:
суперкомпьютерные вычисления;
доступ к удаленным ресурсам;
задачи виртуальной реальности.
2.2 Второе поколение систем распределенных вычислений
2.2.1 Грид Проекты высокопроизводительных вычислительных систем, реализован- ные в начале 1990-х годов, выявили основные проблемы, которые необходимо было решить для развертывания стабильных распределенных вычислительных систем.
Для решения всех указанных задач была разработана концепция грид – РВС, обеспечивающей «гибкое, безопасное, координированное распределение ресурсов среди динамических наборов пользователей, организаций и ресурсов».
Основной задачей грид было построение инфраструктуры, обеспечивающей «вычисления по требованию» (utility computing), аналогично тому, как мы сейчас получаем доступ к коммунальным услугам, например, к электричеству.
В конце 1990-х, в результате исследований систем распределенных вычислений, Ян Фостер вывел три основных требования, которым должны соответствовать РВС для того чтобы называться грид [27].
1. Гетерогенность. Вычислительная среда грид может состоять из множе- ства различных ресурсов, обладающих различными характеристиками и параметрами.
2. Масштабируемость. Грид может состоять из сколь угодно большого чис- ла ресурсов. И если поставленная задача решается на 10-и компьютерах за определенное время, существует опасность, что на 100 компьютерах она будет решаться в 100 раз медленнее, в связи с многократным возрастанием расходов на передачу данных между узлами.
3. Приспособляемость. При работе с грид-системами необходимо учитывать, что ошибки при работе с ресурсами – это не исключение, а правило. Среда грид может состоять из сотен компьютеров, и ошибки в работе десятка из них не должны влиять на полученные результаты решения. Дальнейшее развитие грид происходило в рамках определенных Фостером требований. Применение технологии грид позволило объединить крупные ком- плексы обработки и хранения данных, обеспечивая их доступность для различ- ных пользователей, включая правительственные и научные организации.
Для реализации предложенных концепций в 1997 году был запущен проект Globus [20], направленный на разработку и предоставление инфраструктуры для грид-вычислений. Первоначально, Globus был развитием проекта I-WAY, который мы рассмотрели выше. Но в процессе эволюции проекта Globus, ос- новной акцент разработчиков был перенесен с поддержки высокопроизводи- тельных вычислений в сторону сервисов поддержки виртуальных организаций и предоставление возможности приложениям работать с распределенными раз- нородными вычислительными ресурсами как с единой виртуальной машиной. Более подробно о конкретных технологии грид и особенностях их разработки мы поговорим в главе 11 «Технологии Грид».
