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

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

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

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

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

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

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

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

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

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

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

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

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

Надежность

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

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

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

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

2

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

Эти свойства

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

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

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

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

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

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

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

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

3

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

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

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

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

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

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

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

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

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

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

4

Открытость

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

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

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

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

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

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

5

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

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

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

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

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

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

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

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

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

6

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

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

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

Включает

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

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

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

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

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

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

7

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

Связь

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

Именование

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

Процессы

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

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

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

Целостность

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

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

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

Защита

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

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

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

8

Связь

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

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

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

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

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

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

9

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

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

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

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

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

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

Асинхронные

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

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

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

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

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

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

10

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