We use cookies in order to improve the quality and usability of the HSE website. More information about the use of cookies is available here, and the regulations on processing personal data can be found here. By continuing to use the site, you hereby confirm that you have been informed of the use of cookies by the HSE website and agree with our rules for processing personal data. You may disable cookies in your browser settings.

  • A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Distributed Systems

2022/2023
Academic Year
RUS
Instruction in Russian
5
ECTS credits
Course type:
Elective course
When:
4 year, 1, 2 module

Instructors


Новиков Глеб Александрович

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

Аннотация

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

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

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

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

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

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

  • Введение в распределенные вычисления.
  • Сетевое взаимодействие, стек 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

Авторы

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