Специальность / Speciality: 6-05-0533-07 Математика и компьютерные науки / Mathematics and computer science
Профилизация / Profiling: Веб-программирование и интернет-технологии / Web Development and Internet Technologies
Учебная дисциплина, модуль / Academic discipline, module: Веб-сервисы / Web services
|
Краткое содержание учебной дисциплины, модуля / Brief summary |
Введение. Знакомство и обзор веб-сервисов и их роли в современных распределенных системах. Основные концепции и технологии, такие как SOAP и REST. Принципы REST и микросервисной архитектур. Рассмотрение и реализация архитектурного стиля REST, с его ограниченими и преимуществами. Рассмотрение и реализация микросервисов как способа построения модульных и легко масштабируемых приложений. Проектирование и документирование API. Проектирование API с учетом лучших практик и стандартов. Использование спецификаций OpenAPI/Swagger для документирования API. Тестирование API(юнит, интеграционные тесты), оптимизация производительности. Методы тестирования веб-сервисов, включая юнит-тесты для отдельных компонентов и интеграционные тесты для проверки взаимодействия между различными сервисами. Применение инструментов и подходов для повышения производительности веб-сервисов. Протокол gRPC и высокопроизводительное межсервисное взаимодействие. Изучение фреймворка gRPC и протокола HTTP/2 как основы для быстрого обмена данными. Использование Protocol Buffers (protobuf) для описания интерфейсов и сериализации данных. Сравнение gRPC с REST-архитектурой, определение сценариев эффективного применения. Разработка и реализация различных типов взаимодействия: unary, server streaming, client streaming и bidirectional streaming. Асинхронный обмен сообщениями и событийно-ориентированная архитектура (Kafka, Redis). Принципы построения распределенных систем на основе очередей сообщений и брокеров событий. Использование Apache Kafka для построения отказоустойчивых потоков данных, изучение концепций топиков, партиций и групп потребителей (Consumer Groups). Применение Redis в качестве легковесного брокера сообщений через механизмы Pub/Sub и Redis Streams. Введение в облачные технологии. GraphQL. Websockets. Основы работы с облачными платформами, облачными вычислениями, предоставляя обзор платформ и инструментов, таких как AWS, Azure и Yandex Cloud. Использование GraphQL для оптимизации запросов к серверу и WebSockets для обеспечения двусторонней связи в реальном времени между клиентом и сервером. |
Introduction. An introduction and overview of web services and their role in modern distributed systems. Basic concepts and technologies such as SOAP and REST. Principles of REST and microservice architectures. Consideration and implementation of the REST architectural style, with its limitations and advantages. Consider and implement microservices as a way to build modular and easily scalable applications. API design and documentation. API design based on best practices and standards. Using OpenAPI/Swagger specifications to document APIs. API testing (unit, integration tests), performance optimization. Web service testing techniques, including unit tests for individual components and integration tests to test interactions between different services. Applying tools and approaches to improve the performance of web services. gRPC Protocol and High-Performance Inter-Service Communication. Study of the gRPC framework and the HTTP/2 protocol as the foundation for fast data exchange. Utilization of Protocol Buffers (protobuf) for interface definition and data serialization. Comparison of gRPC with REST architecture and identification of efficient use cases. Development and implementation of various interaction types: unary, server streaming, client streaming, and bidirectional streaming. Asynchronous Messaging and Event-Driven Architecture (Kafka, Redis). Principles of building distributed systems based on message queues and event brokers. Utilization of Apache Kafka for creating fault-tolerant data streams, including the study of topics, partitions, and Consumer Groups. Application of Redis as a lightweight message broker using Pub/Sub mechanisms and Redis Streams. Introduction to cloud technologies. GraphQL. Websockets. Fundamentals of working with cloud platforms, cloud computing, providing an overview of platforms and tools such as AWS, Azure and Yandex Cloud. Used GraphQL to optimize requests to the server and WebSockets to enable real-time two-way communication between client and server. |
|
Формируемые компетенции / The formed competences |
Специализированная компетенция: Понимание ключевых аспектов веб-сервисов, включая их архитектуру, протоколы и стандарты. Проектирование и реализация масштабируемых и эффективных RESTful интерфейсов, высокопроизводительного межсервисного взаимодействия на базе gRPC и микросервисов. Построение распределенных систем с использованием асинхронного обмена сообщениями и событийно-ориентированной архитектуры (Kafka, Redis). Тестирование веб-сервисов на различных уровнях (юнит и интеграционные тесты). Понимание работы с облачными платформами, а также с GraphQL и WebSockets. |
Specialized competence: Understanding the key aspects of web services, including their architecture, protocols, and standards. Designing and implementing scalable and efficient RESTful interfaces, high-performance inter-service communication based on gRPC, and microservices. Building distributed systems using asynchronous messaging and event-driven architecture (Kafka, Redis). Testing web services at various levels (unit and integration tests). Understanding cloud platforms, as well as GraphQL and WebSockets. |
|
Результаты обучения (знать, уметь, владеть) / Learning outcomes (know, can, be able) |
В результате освоения учебной дисциплины студент должен знать: – Ключевые концепции веб-сервисов – Концепции REST-архитектуры – Концепции микросервисной архитектуры – Принципы высокопроизводительного взаимодействия на базе gRPC и Protocol Buffers – Паттерны асинхронного обмена сообщениями и событийно-ориентированной архитектуры (Kafka, Redis) – Методы тестирования API – Документирование и проектирование API – Основы облачных технологий – GraphQL и WebSockets уметь: – Проектировать и разрабатывать RESTful API – Разрабатывать распределенные системы на основе gRPC-стриминга – Настраивать брокеры сообщений и очереди для асинхронной интеграции сервисов (Kafka, Redis) – Проектировать и разрабатывать микросервисы – Проводить тестирование веб-сервисов на различных уровнях – Оптимизировать производительность веб-сервисов владеть: – Навыками работы с облачными сервисами – Навыками построения потоков данных и работы с технологией WebSockets – Навыками настройки событийно-ориентированного взаимодействия и gRPC-интерфейсов – Навыками для эффективного управления данными и обеспечения высокой производительности веб-приложений. |
As a result of mastering the academic discipline, the student must: know: – Key concepts of web services – REST architecture concepts – Microservice architecture concepts – Principles of high-performance interaction based on gRPC and Protocol Buffers – Patterns of asynchronous messaging and event-driven architecture (Kafka, Redis) – API testing methods – API documentation and design – Fundamentals of cloud technologies – GraphQL and WebSockets can: – Design and develop RESTful API – Develop distributed systems based on gRPC streaming – Configure message brokers and queues for asynchronous service integration (Kafka, Redis) – Design and develop microservices – Conduct testing of web services at various levels – Optimize web services performance be able to: – Skills in working with cloud services – Skills in constructing data streams and working with WebSockets technology – Skills in configuring event-driven interaction and gRPC interfaces – Skills for effective data management and ensuring high performance of web applications. |
|
Семестр изучения учебной дисциплины, модуля / Semester of study |
7 |
7 |
|
Пререквизиты / Prerequisites |
Разработка Веб-приложений Основы облачных технологий Тестирование ПО |
Development Web Application Cloud Basics Software testing |
|
Трудоемкость в зачетных единицах (кредитах) / Credit units |
1 зачетная единица |
1 credit unit |
|
Количество аудиторных часов и часов самостоятельной работы / Academic hour of students’ class work, hours of self-directed learning |
Всего 90 часов, из них 54 аудиторных часа и 36 часов самостоятельной работы. |
A total of 90 hours, of which 54 academic hours of students’ class work and 36 hours of self-directed learning. |
|
Требования и формы текущей и промежуточной аттестации / Requirements and forms of current and interim certification |
Опрос, письменный отчет с устной защитой по лабораторной работе, письменный отчет с устной защитой по домашнему заданию, письменный отчет с устной защитой по решению лабораторных работ. Зачет. |
Survey, written report with oral defense on laboratory work, written report with oral defense on homework, written report with oral defense on laboratory work solutions. Credit. |