Бакалавриат
2024/2025





Распределенные системы
Статус:
Курс по выбору (Прикладная математика и информатика)
Направление:
01.03.02. Прикладная математика и информатика
Где читается:
Факультет компьютерных наук
Когда читается:
3-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для всех кампусов НИУ ВШЭ
Язык:
русский
Кредиты:
5
Программа дисциплины
Аннотация
Дисциплина является вводным курсом по распределенным системам (РС). В нем рассматриваются различные виды РС, их особенности, предъявляемые требования и принципы реализации. Изучаются типовые проблемы, возникающие при построении РС, и способы их решения. В ходе курса студенты знакомятся с технологиями построения РС и развивают навыки практического использования полученных знаний путем реализации различных РС в рамках домашних заданий.
Цель освоения дисциплины
- Изучение принципов и технологий построения распределенных систем.
- Знакомство с различными классами распределенных систем и приложений.
- Получение практических навыков разработки распределенных приложений.
Планируемые результаты обучения
- Студент владеет базовыми механизмами и технологиями разработки распределенных приложений.
- Студент знает особенности различных классов распределенных систем и используемые при их реализации подходы.
- Студент знает принципы построения распределенных систем, модели программирования и методы решения типовых задач.
- Студент знает проблематику распределенных вычислений, области применения и виды распределенных систем.
- Студент умеет применять полученные знания на практике и обосновывать выбор метода решения поставленной задачи.
Содержание учебной дисциплины
- Введение в распределенные вычисления.
- Сетевое взаимодействие, стек TCP/IP и сокеты.
- Обмен сообщениями между процессами, протоколы и форматы данных.
- Промежуточное ПО, удаленные вызовы процедур и методов.
- Протокол HTTP, архитектурный стиль REST и веб-сервисы.
- Непрямое взаимодействие между процессами (очереди, publish-subscribe, мультикаст, общая память).
- Базовые механизмы (именование, поиск, обнаружение отказов, распространение информации).
- Обеспечение безопасности в распределенных системах.
- Распределенные системы хранения данных, репликация и согласованность данных.
- Консенсус и координация распределенных процессов.
- Децентрализованные распределенные системы, одноранговые сети, блокчейн.
- Параллельные вычисления, распределенные вычислительные системы и приложения.
- Распределенная обработка данных, MapReduce, модель dataflow.
- Облачные вычисления.
- Сервис-ориентированная архитектура, микросервисы.
- Современные практики и инструменты разработки распределенных систем и приложений.
Элементы контроля
- Домашние задания
- Экзамен-1Проводится в формате коллоквиума
- Экзамен-2Проводится в формате письменного экзамена.
Промежуточная аттестация
- 2024/2025 2nd module0.6 * Домашние задания + 0.2 * Экзамен-1 + 0.2 * Экзамен-2
Список литературы
Рекомендуемая основная литература
- Coulouris, G. F. (2012). Distributed Systems : Concepts and Dessign, Fifth Edition (Vol. Fifth edition, International edition). Harlow: Pearson Education. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1418002
- Tanenbaum, A. S., & Steen, M. van. (2014). Distributed Systems: Pearson New International Edition : Principles and Paradigms (Vol. 2nd ed). Harlow, Essex: Pearson. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1418515
Рекомендуемая дополнительная литература
- Burns, B. (2018). Designing Distributed Systems : Patterns and Paradigms for Scalable, Reliable Services (Vol. First edition). Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1713745
- Kleppmann, M. (2017). Designing Data-Intensive Applications : The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1487643
- Petrov, A., & O’Reilly for Higher Education (Firm). (2019). Database Internals : A Deep Dive Into How Distributed Data Systems Work (Vol. First edition). Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=2250514