Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Презентации / Lecture11p

.pdf
Скачиваний:
0
Добавлен:
23.06.2026
Размер:
1 Мб
Скачать
☆

Распределенные программные системы

Основы программной инженерии

Кулямин В.В., ВМК МГУ

Общие замечания

Распределенные системы – системы, компоненты которых размещены на физически разделенных устройствах, а функциональность существенно зависит от взаимодействия этих компонентов

•Позволяют получить доступ большему числу пользователей к большему количеству ресурсов с меньшими затратами

•Одни из наиболее сложных для разработки

•Распределенность существенно влияет на ряд характеристик качества

итребует специфических усилий для их обеспечения

•Производительность

•Надежность

•Защищенность

•Удобство администрирования и развития

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

2

Важнейшие свойства

Эти свойства

•Способствуют получению большей пользы от распределенности

•Служат основой для стабильного развития таких систем

•Прозрачность (transparency)

•Открытость (openness)

•Масштабируемость (scalability)

•Безопасность (safety)

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

3

Прозрачность

Способность скрыть особенности распределенности

•От пользователей – пользователь в идеале не должен чувствовать разницы между распределенной системой и локальной

•От разработчиков – в идеале, большая часть кода должна создаваться независимо от распределенности или локальности системы, в которой он будет работать

•Повышает производительность пользователей – при примерно тех же усилиях пользователь работает с гораздо более широким набором ресурсов

•Основные методы достижения – использование готовой инфраструктуры, генерация обеспечивающих распределенные взаимодействия компонентов

•Недостижима в идеальном виде

•Сбои в сети так или иначе проявляются – обычно в виде задержек

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

4

Открытость

Полнота и точность описания интерфейсов компонентов системы

и предоставляемых ею служб

•Снижает трудоемкость сопровождения и развития системы, а также создания взаимодействующих и включающих ее систем

•Основные методы достижения – полная и точная спецификация контрактов для всех предоставляемых служб

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

5

Масштабируемость

Способность системы увеличивать количественно нужные характеристики (или сохранять неизменными другие) при увеличении числа используемых узлов и устройств

•Повышает эффективность использования аппаратного обеспечения

•Для разных характеристик означает разное

•Производительность, надежность – лучше, чтобы возрастали

•Удобство сопровождения и администрирования – лучше, чтобы не изменялись

•Основные методы достижения – децентрализация и распределение нагрузки, репликация данных и кэширование результатов, асинхронные взаимодействия

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

6

Безопасность

Способность сохранять работоспособность и другие характеристики качества при различных событиях, нарушающих корректность и целостность окружения системы, а также способность предотвращать/снижать угрозы для безопасности пользователей и окружающей среды из-за некорректной работы самой системы

•Предотвращает/снижает возможный вред от внешних и внутренних сбоев

•Включает

•Поддержку сохранности и целостности данных и компонентов системы

•Защищенность данных и коммуникаций от внешних воздействий

•Отказоустойчивость и способность к восстановлению после сбоев

•Основные методы достижения – дупликация данных и компонентов, алгоритмы шифрования и внесения избыточности в данные, протоколы аутентификации, авторизации и поддержки целостности

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

7

Аспекты организации распр. систем

•Связь

Организация взаимодействия между размещенными на разных узлах компонентами

•Именование

Идентификация ресурсов и организация их поиска

•Процессы

Организация работ в отдельные процессы и нити

•Синхронизация

Организация взаимодействия между параллельно выполняемыми работами

•Целостность

Поддержка консистентности данных системы

•Отказоустойчивость

Организация отказоустойчивой работы

•Защита

Организация защиты данных и коммуникаций от несанкционированного доступа

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

8

Связь

•Протоколы передачи данных

•Передача непрерывных данных

•Организация вызовов между процессами и узлами

•Синхронные и асинхронные обращения

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

9

Синхронные и асинхронные вызовы

• Синхронные (блокирующие)

Вызывающий компонент приостанавливает активность до возвращения результатов вызова

•Существенно проще для анализа

•Проще для использования результата в коде

•Хуже производительность

•Асинхронные

Вызывающий компонент может работать, не ожидая результата

•Сложнее для анализа

•Нужны специальные действия для получения результата

•Лучше производительность

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

10

Соседние файлы в папке Презентации