- •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
1.2 Промежуточное программное обеспечение
Распределенная вычислительная система представляет собой программно- аппаратный комплекс, ориентированный на решение определенных задач. С одной стороны, каждый вычислительный узел является автономным элементом. С другой стороны, программная составляющая РВС должна обеспечивать поль- зователям видимость работы с единой вычислительной системой. В связи с этим выделяют следующие важные характеристики РВС:
возможность работы с различными типами устройств:
с различными поставщиками устройств;
с различными операционными системами,
с различными аппаратными платформами. Вычислительные среды, состоящие из множества вычислительных систем на базе разных программно-аппаратных платформ, называются гетероген- ными;
возможность простого расширения и масштабирования;
перманентная (постоянная) доступность ресурсов (даже если некоторые элементы РВС некоторое время могут находиться вне доступа);
сокрытие особенностей коммуникации от пользователей.
Для обеспечения работы гетерогенного оборудования РВС в виде единого целого, стек программного обеспечения (ПО) обычно разбивают на два слоя. На верхнем слое располагаются распределенные приложения, отвечающие за решение определенных прикладных задач средствами РВС.
Их функциональ- ные возможности базируются на нижнем слое – промежуточном программном обеспечении (ППО) .
ППО взаимодействует с системным ПО и сетевым уров- нем, для обеспечения прозрачности работы приложений в РВС (см. рис. 1).
Для того чтобы РВС могла быть представлена пользователю как единая система, применяют следующие типы прозрачности в РВС:
прозрачный доступ к ресурсам – от пользователей должна быть скрыта разница в представлении данных и в способах доступа к ресурсам РВС;
прозрачное местоположение ресурсов – место физического расположения требуемого ресурса должно быть несущественно для пользователя;
репликация – сокрытие от пользователя того, что в реальности существует более одной копии используемых ресурсов;
параллельный доступ – возможность совместного (одновременного) ис- пользования одного и того же ресурса различными пользователями неза- висимо друг от друга.
При этом факт совместного использования ресурса должен оставаться скрытым от пользователя;
прозрачность отказов – отказ (отключение) каких-либо ресурсов РВС не должен оказывать влияния на работу пользователя и его приложения.
1.3 Терминология рвс
1. Ресурсом называется любая программная или аппаратная сущность, пред- ставленная или используемая в распределенной сети. Например, компью- тер, устройство хранения, файл, коммуникационный канал, сервис и т.п.
2. Узел – любое аппаратное устройство в распределенной вычислительной системе.
3. Сервер – это поставщик информации в РВС (например, веб-сервер).
4. Клиент – это потребитель информации в РВС (например, веб-браузер).
5. Пир – это узел, совмещающий в себе как клиентскую, так и серверную часть (т.е. и поставщик, и потребитель информации одновременно).
6. Сервис – это сетевая сущность, предоставляющая определенные функцио- нальные возможности [30] (например, веб-сервер может предоставлять сервис передачи файлов по протоколу HTTP).
В рамках одного узла могут предоставляться несколько различных сервисов. На рисунке 2 приведена схема, устанавливающая взаимоотношения между данными терминами.
Из схемы видно, что каждый компьютер или устройство представляет собой сущность в распределенной вычислительной системе в виде узла. При этом на каждом узле может располагаться несколько клиентов, сер- веров, сервисов или пиров. Важно заметить, что любой узел, сервер, пир или сервис (но не клиент!) являются ресурсами распределенной вычислительной системы.
Сервис получает запрос на предоставление определенных данных (почти как аргументы, передаваемые при вызове локальной функции) и возвращает от- вет. Таким образом, сервис можно определить как некую замену вызова функ- ции на локальном компьютере. Существует множество технологий, обеспечи- вающих создание и сопровождение сервисов в распределенных вычислитель- ных системах: технология XML веб-сервисов, сервисы REST и др.
