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

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

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

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

Аннотация

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

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

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

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

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

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

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

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

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

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

  • 2022/2023 учебный год 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

Авторы

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