Лекция 4. Распределенные системы. ч1

advertisement
Распределённые системы
Определение
Распределенная система — это набор
независимых
компьютеров,
представляющийся их пользователям единой
объединенной системой.
Особенности
• От пользователей скрыты различия между
компьютерами и способы связи между
ними.
• Пользователи и приложения единообразно
работают в распределенных системах,
независимо от того, где и когда происходит
их взаимодействие.
• РС легко поддаются расширению, или
масштабированию.
Система промежуточного уровня
(middleware)
Задачи
• Соединение пользователей с ресурсами
• Прозрачность
• Открытость
• Масштабируемость
Клиент-сервер
• Процессы, реализующие некоторую службу,
например службу файловой системы или базы
данных, называются серверами (servers).
• Процессы, запрашивающие службы у серверов
путем посылки запроса и последующего
ожидания ответа от сервера, называются
клиентами (clients).
• Взаимодействие клиента и сервера, известное
так же под названием режим работы запросответ (request-replybehavi)
Взаимодействие клиент-сервер
Формы организации архитектуры
клиент-сервер
Сервер как клиент
Современные варианты архитектуры
Вертикальное распределение (vertical
distribution).
Характеристической
особенностью вертикального распределения
является
то,
что
оно
достигается
размещением
логически
различных
компонентов на разных машинах.
Современные варианты архитектуры
Горизонтальное
распределение
(horizontal distribution). При таком типе
распределения клиент или сервер может
содержать физически разделенные части
логически однородного модуля, причем
работа с каждой из частей может
происходить независимо.
Одноранговая сеть
Одноранговое распределение (peer-topeer distribution). Отсутствие сервера.
Каждый узел (peer) является как клиентом,
так и сервером.
Связь
Взаимодействие
в
распределенных
системах всегда базируется на низкоуровневом
механизме
передачи
сообщений,
предоставляемом базовой сетью. Современные
распределенные системы часто включают в себя
тысячи или даже миллионы процессов,
разбросанных по не надежной сети, такой как
Интернет. Если не заменить простейшие
средства взаимодействия в компьютерных сетях
чем-то
иным,
разработка
масштабных
приложений будет достаточно сложной.
Протоколы
Удаленный вызов процедур
(Remote Procedure Call, RPC)
Когда процесс, запущенный на машине
А, вызывает процедуру с машины Б,
вызывающий процесс на машине А
приостанавливается,
а
выполнение
вызванной процедуры происходит на машине
В. Информация может быть передана от
вызывающего процесса к вызываемой
процедуре через параметры и возвращена
процессу в виде результата выполнения
процедуры.
Заглушки для клиента и сервера
(server stub, client stub)
Заглушки для клиента и сервера
(server stub, client stub)
1 . Процедура клиента обычным образом
вызывает клиентскую заглушку.
2. Клиентская заглушка создает сообщение и
вызывает локальную операционную систему.
3. Операционная система клиента пересылает
сообщение удаленной операционной системе.
4. Удаленная операционная система передает
сообщение серверной заглушке.
5. Серверная заглушка извлекает из сообщения
параметры и вызывает сервер.
Заглушки для клиента и сервера
(server stub, client stub)
6. Сервер выполняет вызов и возвращает
результаты заглушке.
7. Серверная заглушка запаковывает результаты
в сообщение и вызывает свою локальную
операционную систему.
8. Операционная система сервера пересылает
сообщение операционной системе клиента.
9. Операционная система клиента принимает
сообщение и передает его клиентской заглушке.
10. Заглушка извлекает результаты из сообщения
и передает их клиенту.
Асинхронный вызов RPC
Сохранность и синхронность
При сохранной связи (persis tent
communication) сообщение, предназначенное
для отсылки, хранится в коммуникационной
системе до тех пор, пока его не удастся передать
получателю.
При нерезидентной связи (transient
communication) сообщение хранится в системе
только в течение времени работы приложений,
которые отправляют и принимают это
сообщение.
Характерной чертой асинхронной связи
(asynchronous
communication)
является
немедленное после отправки письма
продолжение работы отправителя.
В случае синхронной связи (synchronous
communication) отправитель блокируется до
того момента пока его сообщение не будет
сохранено
в
локальном
буфере
принимающего хоста или доставлено
реальному получателю.
Сохранная асинхронная связь
Сохранная синхронная связь
Нерезидентная асинхронная связь
Нерезидентная синхронная связь с
синхронизацией по приему
Нерезидентная синхронная связь с
синхронизацией по доставке
Нерезидентная синхронная связь с
синхронизацией по ответу
Download