• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2023/2024

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

Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Статус: Курс обязательный (Прикладная математика и информатика)
Направление: 01.03.02. Прикладная математика и информатика
Когда читается: 3-й курс, 1, 2 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для всех кампусов НИУ ВШЭ
Преподаватели: Амеличев Константин Вадимович, Балюк Игорь Алексеевич, Новиков Глеб Александрович, Семенов Юрий Дмитриевич, Сухорослов Олег Викторович
Язык: русский
Кредиты: 5
Контактные часы: 56

Программа дисциплины

Аннотация

Дисциплина является вводным курсом по распределенным системам (РС). В нем рассматриваются различные виды РС, их особенности, предъявляемые требования и принципы реализации. Изучаются типовые проблемы, возникающие при построении РС, и способы их решения. В ходе курса студенты знакомятся с технологиями построения РС и развивают навыки практического использования полученных знаний путем реализации различных РС в рамках домашних заданий.
Цель освоения дисциплины

Цель освоения дисциплины

  • Изучение принципов и технологий построения распределенных систем.
  • Знакомство с различными классами распределенных систем и приложений.
  • Получение практических навыков разработки распределенных приложений.
Планируемые результаты обучения

Планируемые результаты обучения

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

Содержание учебной дисциплины

  • Введение в распределенные вычисления.
  • Сетевое взаимодействие, стек TCP/IP и сокеты.
  • Обмен сообщениями между процессами, протоколы и форматы данных.
  • Промежуточное ПО, удаленные вызовы процедур и методов.
  • Протокол HTTP, архитектурный стиль REST и веб-сервисы.
  • Непрямое взаимодействие между процессами (очереди, publish-subscribe, мультикаст, общая память).
  • Базовые механизмы (именование, поиск, обнаружение отказов, распространение информации).
  • Обеспечение безопасности в распределенных системах.
  • Распределенные системы хранения данных, репликация и согласованность данных.
  • Консенсус и координация распределенных процессов.
  • Децентрализованные распределенные системы, одноранговые сети, блокчейн.
  • Параллельные вычисления, распределенные вычислительные системы и приложения.
  • Распределенная обработка данных, MapReduce, модель dataflow.
  • Облачные вычисления.
  • Сервис-ориентированная архитектура, микросервисы.
  • Современные практики и инструменты разработки распределенных систем и приложений.
Элементы контроля

Элементы контроля

  • неблокирующий Проверочные работы
    Проверочные работы проводятся регулярно (раз в 1-2 недели) на лекциях
  • неблокирующий Домашние задания
Промежуточная аттестация

Промежуточная аттестация

  • 2023/2024 учебный год 2 модуль
    0.7 * Домашние задания + 0.3 * Проверочные работы
Список литературы

Список литературы

Рекомендуемая основная литература

  • 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

Авторы

  • Сухорослов Олег Викторович