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

Сервис-ориентированные архитектуры

Преподаватели: Глеб Игоревич Радченко, Дмитрий Игоревич Савченко

Модуль: 3

Кредиты: 2

Программа

1 модуль, 8 лекций + 8 практик

2 кредита (ауд. 32 часов, самост. 44 часов)

Занятия

2 занятия в неделю (лекция/практика)

Аннотация

В современном мире IT, кем бы вы ни работали, надо очень постараться, чтобы не столкнуться с сервис-ориентированными системами. Мобильные и веб-разработчики создают фронтенд, работая с API веб-сервисов, в то время как бэк-энд ломает голову над тем, как лучше завернуть возможности своих систем в RPC, REST или GraphQL веб-сервис, чтобы с ним могли работать как внутренние, так и сторонние пользователи. Да что тут говорить, облачные вычисления были бы невозможны, если бы не пришло понимание, как можно эффективно и безопасно предоставлять ресурсы удаленных систем на основе открытых протоколов.

В рамках этого курса вы познакомитесь с ключевыми подходами к организации веб-сервисов, а также ключевыми подходами к формированию API. Также, мы рассмотрим, как развитие сервис-ориентированных систем на базе облачных решений привело к появлению микросервисного подхода.

Для кого этот курс

Для студентов бакалавриата (начиная с 3-го курса) и магистратуры, заинтересованных в изучении наиболее распространенных на сегодняшний день технологий организации глобальных веб-систем. Приоритет отдается студентам 3 курса специализации Распределенные системы.

Требования

Умение программировать хотя бы на одном языке программирования высокого уровня (C++, Python, C#, Java, JavaScript, Go), знание основ организации компьютерных сетей.

Организация курса

Курс продлится 8 недель. Еженедельно нужно будет посетить одно занятие и выполнить домашнее задание. Каждое занятие будет длиться 2 пары - теоретическая и практическая часть. Предполагается, что студенты для выполнения практических заданий будут использовать свои портативные компьютеры. Язык реализации практических заданий не играет существенной роли (единственная просьба - НЕ использовать эзотерические языки программирования, т.к. преподаватель должен иметь возможность за приемлемое время оценить предложенное вами решение). Для выполнения практических заданий можно использовать бесплатные редакторы Atom, Emacs, Vim, VS Code или др.

Предварительный список тем

Понятия распределенной вычислительной системы (РВС), базовые определения, классификации РВС; 

Роль связи в РВС, протоколы передачи данных, форматы сериализации данных;

Базовые технологии организация связи распределенных систем: технология сокетов, технологии RPC и RMI, технология ZeroMQ. 

Понятие сервис-ориентированной архитектуры (СОА). Типы СОА API. Общие принципы организации СОА.

Организация RPC API на примере JSON RPC, gRPC, SOAP XML Веб-сервисов

Организация API Ресурсов на примере REST

Организация API Сообщений, очереди сообщений. 

Организация Графового API на примере GraphQL

Обеспечение безопасности СОА: технологии OAuth, JSON Web Token.

Обзор технологий облачных вычислительных систем. Концепция микросервисов как развитие СОА.Технология Docker.

Как будут выставляться оценки

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

Расписание: суббота 9:30-12:30 с 23 января

Подключиться к занятию