• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Распределенные вычисления

2022/2023
Учебный год
RUS
Обучение ведется на русском языке
6
Кредиты

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

Аннотация

Настоящая программа учебной дисциплины устанавливает требования к образовательным результатам и результатам обучения студента и определяет содержание и виды учебных занятий и отчетности. Программа предназначена для преподавателей, ведущих дисциплину «Распределенные вычисления», учебных ассистентов и студентов направления подготовки 38.03.05 Бизнес-информатика, обучающихся по образовательной программе «Бизнес информатика».
Цель освоения дисциплины

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

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

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

  • Знает основные характеристики моделей и архитектур распределённых приложений.
  • Способен проектировать распределённые системы и их компоненты.
  • Руководствуется принципами и стандартами при разработке распределенных систем.
  • Способен разрабатывать распределённые системы с различными архитектурами.
  • Знает основные механизмы и средства взаимодействия в распределённых системах.
  • Владеет методами коммуникации
  • Способен использовать различные технологии и интерфейсы.
  • Использует системы управления базами данных.
  • Использует системы управления тиражированием данных.
  • Способен использовать различные технологии и интерфейсы работы с СУБД.
  • Знает GRID - технологии.
  • Применяет инструменты GRID-технологий.
Содержание учебной дисциплины

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

  • Тема 1. Основные понятия
    Эволюция вычислений от "ЭВМ" до приложений с архитектурой "клиент-сервер". Существующие представления об архитектуре "клиент-сервер" (приложения для работы с БД, ООП, сетевые приложения, приложения, разделяющие общий код, и т.п.). Основные понятия: клиент и сервер. Характеристики и возможности приложений с архитектурой "клиент-сервер": - разделение процесса обработки данных между компонентами приложения (между клиентами и серверами); - взаимодействие с сервером по инициативе клиента типа "запрос-ответ"; - двунаправленный обмен данными; - управление ресурсами с помощью сервера; - синхронизация процессов, разрешение конфликтных ситуаций сервером, контролирующим общие ресурсы. Задачи, решаемые при разработке структуры приложения: - разделение функций между клиентом и сервером (критерии разделения и типичное "разделение труда"); - определение способа взаимодействия клиента и сервера (протокола для взаимодействия "запрос-ответ"); - распределение компонентов приложения между узлами сети (для сетевых приложений: где размещать программные модули и где размещать данные – общие правила). Режимы обработки данных в приложениях и критерии распределения вычислений и данных. Возможности и условия. Подходы к реализации.
  • Тема 2. Распределенные системы и модели распределенных вычислений
    Эволюция технологий и моделей распределенных вычислений: - Модель файл-сервера (FS). - Модель удаленного доступа (RDA). - Модель серверов баз данных (DB-серверы). Методы активизации баз данных. Балансировка нагрузки. - Модель серверов приложений (AS). Серверы приложений как основа для создания приложений с многозвенной архитектурой. AS-модель и Web-технологии. Анализ и сравнение моделей. Технологии реализации.
  • Тема 3. Принципы и стандарты создания открытых распределенных систем
    Понятие открытой системы и принципы создания открытых систем: переносимость (возможность создания гетерогенных систем), расширяемость и интероперабельность компонентов, интегрируемость с внешними системами, масштабируемость и унификация интерфейса пользователя и пр. Стандарты создания открытых систем: - стандарты кодирования и представления данных и механизмы доступа к данным; - стандарты и механизмы взаимодействия и средства интеграции.
  • Тема 4. Архитектура распределенных приложений, ориентированных на мультизадачные операционные системы
    Развитее архитектуры распределенных приложений: - прикладные программы с монолитной структурой; - архитектура "клиент-сервер" со связями "один к одному"; - структура приложений "один к одному" для сети; - многопотоковые серверы; - архитектура с виртуальным сервером (диспетчером); - архитектура с несколькими многопотоковыми серверами (multi-threaded, multi-servers architecture) и схемы организации взаимодействия клиентов и серверов. Требования к программированию приложений "клиент-сервер": - не использовать монолитное кодирование (приложения с модульной структурой, разрабатываемые "сверху вниз"); - глобальные переменные неприемлемы; - "поклиентное обслуживание"; - использование архитектуры с "независимыми средствами"; - обеспечить переносимость через устранение зависимости от ОС и СУБД. - Архитектура сервера: коммуникационный модуль, диспетчер, исполнительные (обслуживающие, обрабатывающие) модули. Архитектура клиента: коммуникационный модуль и интерфейс пользователя. Режимы взаимодействия клиента и сервера (синхронный и асинхронный режим). Поддержка технологий распределенных приложений на уровне ОС: средства управления процессами и потоками, синхронизация вычислений.
  • Тема 5. Протоколы и промежуточные среды
    Модель и уровни взаимодействия открытых систем OSI. Стек протоколов. Понятие и сервисы промежуточной среды. Виды промежуточных сред. Гетерогенные и гомогенные распределенные системы. Протоколы прикладного уровня: жесткий и гибкий. Структуры данных при использовании жесткого и гибкого протоколов, структуры заголовков. Преимущества и недостатки видов протоколов прикладного уровня.
  • Тема 6. Управление взаимодействием клиента и сервера
    Варианты распределения взаимодействия между приложениями: - файловая система; - общий сервер, реализующий поклиентское обслуживание; - виртуальный сервер. Преимущества и недостатки каждого варианта. Подходы к формированию каталогов сервисов в сети: - статическое; - динамическое, от клиента по запросу функции; - динамическое, от клиента по отказу сервера; - динамическое, предложение от сервера; - динамическое, с централизованным каталогом на одном узле. Преимущества и недостатки каждого подхода.
  • Тема 7. Методы коммуникаций
    Понятие механизмов коммуникации. Каналы передачи данных. Виды каналов. Реализация каналов в ОС Windows. Сценарий взаимодействия процессов с помощью каналов. Функции для работы с каналами. Датаграммные каналы передачи данных Mailslot. Односторонняя передача данных. Широковещательные запросы. Функции для работы с Mailslot. Передача данных с помощью сокетов. Виды сокетов. Схема взаимодействия клиента и сервера. Функции для работы с сокетами. Вызовы удаленных процедур. Характерные черты RPC. Алгоритм вызова удаленной процедуры.
  • Тема 8. Службы обмена сообщениями
    Технология MSMQ, аналоги. Основные операции, структура сообщения, варианты передачи сообщения, взаимодействие с IBM Websphere MQ. Инфрастуктура, необходимая для использования MSMQ. Интеграция с Active Directory. Общие и частные очереди, отличия, возможности. Применение службы сообщений MSMQ в распределенных системах. Соответствие требованиям, предъявляемым к распределенным системам. Преимущества и недостатки MSMQ. Использование очередей сообщений MSMQ в .NET Framework.
  • Тема 9. Веб-службы
    Понятие веб-службы. Стандарты, используемые веб-службами: SOAP, XML, HTTP, WSDL. Механизм взаимодействия клиента и веб-службы. Возможные схемы реализации веб-служб. Применение веб-служб в распределенных системах. Соответствие требованиям, предъявляемым к распределенным системам. Преимущества и недостатки веб-служб. Использование расширения WSE. Фильтры SOAP. Создание веб-служб в среде .NET Framework.
  • Тема 10. Промежуточная среда .NET Remoting
    Назначение среды .NET Remoting. Сценарии использования среды Remoting. Виды классов среды CLR с точки зрения Remoting. Преимущества и недостатки Remoting. Архитектура среды Remoting. Схема выполнения удаленного вызова. Основные сущности Remoting: сообщения, каналы, посредники, трубы. Маршализация по ссылке в Remoting. Система аренды удаленных объектов. Применение Remoting в распределенных системах. Соответствие требованиям, предъявляемым к распределенным системам. Преимущества и недостатки Remoting. Использование Remoting в .NET Framework.
  • Тема 11. Технология Windows Communication Foundation
    Основные принципы технологии WCF. Преимущества и недостатки WCF. Распределенное исполнение. Сервис-ориентированная архитектура. Предпосылки появления WCF. WCF-сервисы и клиенты. Параметры точки доступа. Конфигурирование WCF-сервисов. Связывание. Виды связывания. Отличия от других промежуточных сред.
  • Тема 12. Методы управления распределенным хранением данных
    Распределенные базы данных, понятия, характеристики, классическая распределенная система БД. Общее с распределенными файловыми системами. Критерии разделения данных между узлами сети. Определение Дэйта, двенадцать свойств Дэйта. Формы и методы проведения занятий по разделу, применяемые учебные технологии:  Обязательное выделение задач, актуальных для данной аудитории, и демонстрация применения изучаемых средств для их решения.  Оперативные опросы по материалам занятий.  Привлечение студентов к постановке задач. Опрос с целью выявления существующих у студентов проблем. Отработка формулирования проблемы в виде, пригодном для анализа и решения (как коллективного, так и индивидуального).
  • Тема 13. Тиражирование данных
    Тиражирование данных: - типы (синхронное, асинхронное, по событиям); - архитектура систем тиражирования (главный-подчиненный, одноранговая схема, гибридный вариант); - методы распространения данных; - способы синхронизации данных при тиражировании. Особенности тиражирования в программных продуктах различного назначения (ОС, СУБД).
  • Тема 14. Корпоративные СУБД. Основные возможности по работе
    Основные возможности по работе с распределенными данными Корпоративные СУБД Microsoft SQL Server и Oracle. Возможности, предоставляемые корпоративными СУБД для - создания распределенных баз данных; - поддержки распределенных запросов; - тиражирования данных; - поддержки XML при работе с РБД; - создания гетерогенных систем и интеграции с внешними системами; - поддержки GRID-технологии. Сравнение возможностей MS SQL Server и Oracle.
  • Тема 15. GRID-технология. Основные понятия. Типы GRID-систем.
    Примеры использования GRID Понятие GRID-технологии. Примеры проектов, созданных с помощью данной технологии. Причины развития GRID. Решаемые с помощью данной технологии задачи: - массовая обработка потоков данных большого объема; - многопараметрический анализ данных; - моделирование на удаленных суперкомпьютерах; - реалистичная визуализация больших наборов данных; - сложные бизнес-приложения с большими объемами вычислений. Типы GRID-систем: - вычислительный GRID; - GRID для интенсивной обработки данных; - семантический GRID для оперирования данными из различных баз данных. Компоненты хранилища данных Amazon.com.
  • Тема 16. Архитектура GRID-систем. Инструментарий для разработки GRID-систем
    Инструментарий Globus Toolkit и его основные компоненты: - Globus Resource Allocation Manager; - Monitoring and Discovery Service; - Globus Security Infrastructure; - Global Access to Secondary Storage. Понятие виртуальной организации (ВО), примеры. Требования к ВО. Интероперабельность. Модель песочных часов. Архитектура GRID-систем: - уровень фабрикатов; - уровень коммуникаций; - уровень ресурсов; - уровень коопераций; - уровень приложений.
Элементы контроля

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

  • неблокирующий лабораторная работа № 1
  • неблокирующий лабораторная работа № 2
  • неблокирующий лабораторная работа № 3
  • неблокирующий лабораторная работа № 4 (самостоятельная работа)
  • неблокирующий экзамен
Промежуточная аттестация

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

  • Промежуточная аттестация (1 модуль)
    0.1 * лабораторная работа № 1 + 0.16 * лабораторная работа № 2 + 0.09 * лабораторная работа № 3 + 0.35 * лабораторная работа № 4 (самостоятельная работа) + 0.3 * экзамен
Список литературы

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

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

  • Малявко А. А.-ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ НА ОСНОВЕ ТЕХНОЛОГИЙ OPENMP, MPI, CUDA 2-е изд., испр. и доп. Учебное пособие для академического бакалавриата-М.:Издательство Юрайт,2019-129-Высшее образование-978-5-534-11827-8: -Текст электронный // ЭБС Юрайт - https://biblio-online.ru/book/parallelnoe-programmirovanie-na-osnove-tehnologiy-openmp-mpi-cuda-446247

Рекомендуемая дополнительная литература

  • Введение в архитектуру программного обеспечения : учеб. пособие / Л.Г. Гагарина, А.Р. Федоров, П.А. Федоров. — М. : ФОРУМ : ИНФРА-М, 2018. — 320 с. — (Высшее образование). - Режим доступа: http://znanium.com/catalog/product/971770